前面主要和大家介紹了一下群集的種類,以及一些群集通用的基本知識,本章開始我們將專注于微軟故障轉(zhuǎn)移群集的深入研究與理論解析
專注于為中小企業(yè)提供成都網(wǎng)站制作、網(wǎng)站建設(shè)服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)香坊免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了1000多家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。微軟故障轉(zhuǎn)移群集即是我們上篇文章介紹的,一個典型的高可用性群集解決方案,它內(nèi)置在Windows Server的角色與功能里面,不需要安裝額外工具,故障轉(zhuǎn)移群集通常情況下都是主從工作的模式,即一個群集應(yīng)用同時只有一個節(jié)點對外提供服務(wù),然后故障轉(zhuǎn)移群集利用心跳檢測機制檢測節(jié)點存活狀態(tài),一旦檢測到節(jié)點宕機,會通過查詢?nèi)杭瘮?shù)據(jù)庫,來講宕機節(jié)點承載的群集應(yīng)用進行上線
同時故障轉(zhuǎn)移群集也具備了完善的群集應(yīng)用健康感知,節(jié)點健康狀態(tài)感知,群集健康狀態(tài)感知,這在2008時代之后開始得到增強,12R2時趨于成熟。
有的群集應(yīng)用可以和DNS輪詢相配合,或者群集應(yīng)用本身具備的輪詢技術(shù),則可以基于故障轉(zhuǎn)移群集來實現(xiàn)雙活的群集應(yīng)用工作模式,例如SOFS,SQL Server Always On等技術(shù)
微軟故障轉(zhuǎn)移群集于NT4時代就被引入,那時它叫做 MSCS(Microsoft Cluster Service),2003時代正式全面提供使用,更多企業(yè)開始采用MSCS搭建群集,但2003時代的群集,雖說2003是個出色的系統(tǒng),上面跑業(yè)務(wù)也相對穩(wěn)定,但是2003時代的MSCS群集配置也確實麻煩了一些,讓很多人望而卻步,不過話說回來,2003時代的群集,老王認為是最便于IT人員理解群集運作原理的版本之一
到了2008時,群集開始發(fā)生了改變,它改名叫做WSFC (Windows Server Failover Clustering),提供了群集創(chuàng)建向?qū)В瑤椭嚓P(guān)人員可以更快更簡單的創(chuàng)建使用高可用群集,以前2003時代可以能創(chuàng)建一個群集要花費一小天的時間,到了2008時代規(guī)劃好了開始做可能也就1-2小時就可以完成
2008時代老王可以算是WSFC的一個轉(zhuǎn)折點,這個時代,群集摒棄了2003時代的UI,換了新的群集UI,把原有的群集組等技術(shù)細節(jié)進行了屏蔽,換成了看起來更容易的添加群集角色,新增了全新的群集驗證報告
2008R2,這個版本微軟發(fā)布了大量的更新,其中針對于群集,微軟推出了CSV群集文件系統(tǒng),改變了群集虛擬化的運作模式,原來2008如果在群集上面跑虛擬機,都是以傳統(tǒng)群集組的方式運作,假設(shè)10臺虛擬機運行在一個群集磁盤上面,如果要遷移其中一臺虛擬機,只能把其余9臺一起遷移,因為他們是一個整體的傳統(tǒng)群集組,到了2008R2有了CSV之后,這個做法發(fā)生了一些改變,所有節(jié)點都可以同時讀取CSV文件系統(tǒng),虛擬機也有了新的群集組模式,可以一次遷移一臺虛擬機。
2012,2012R2時代是微軟WSFC大放光彩的一代,2012時代微軟推出了動態(tài)投票的概念,2012R2時代更新為動態(tài)仲裁,即群集可以自動幫助我們調(diào)整節(jié)點和見證的投票數(shù),確保群集始終是奇數(shù)的投票,這在以前,是需要我們管理人員實現(xiàn)設(shè)計好的,群集可不會自動幫助我們做這些事
同時,2012時代,還對群集在少數(shù)投票,平等投票場景上面新增了很多新的屬性,例如Lowerquorumprioritynodeid,可以幫助我們在分區(qū)兩端投票數(shù)一致的情況下選擇其中一方關(guān)閉,2012 2012R2時代的群集,針對于群集仲裁,群集節(jié)點維護,推出了很多很棒,很智能化的功能,例如
DrainOnShutdown,CAU等
簡單說,2012 2012R2時代的群集,在成熟化的基礎(chǔ)上更趨于智能化,群集可以自己進行一部分自我化的維護管理,來保證群集的持續(xù)高可用,也新增了一些智能化的功能,讓管理員可以根據(jù)業(yè)務(wù)場景做更多的群集設(shè)計。
到了2016時代,老王認為群集更靠近了云端化,借助了部分云端的功能來幫助群集,也針對當前熱門的超融合技術(shù)進行了支援,2016時代,群集仲裁可以使用Azure上面blob進行仲裁,這在之前,可能架構(gòu)管理人員在設(shè)計仲裁位置的時候,可能會和其中一個站點的群集放在一起,或者單獨放在第三個站點中,現(xiàn)在借助Azure上面的blob實現(xiàn)可以節(jié)省一部分成本,還可以利用Azure上面存儲的冗余技術(shù),2016群集也開始支援SDS技術(shù),類似于VSAN,可以把多個服務(wù)器上面節(jié)點肚子里面的存儲,貢獻出來形成群集的存儲池,然后基于這個貢獻的群集存儲池,上面再跑群集應(yīng)用。
總結(jié)來說,2016時代的群集,借助了云的功能來優(yōu)化群集,也針對于當下熱門的技術(shù),瞬時防斷,滾動更新,SDS超融合,存儲復(fù)制,延伸群集等技術(shù)進行了更新,可以看到WSFC不斷在跟著時代的腳步進步,不斷更新,可以滿足更多場景的需求
以上老王簡單的對微軟故障轉(zhuǎn)移群集的發(fā)展歷史做了個基本介紹,其中涉及到了一些概念,例如群集組,仲裁,見證,我將在接下來為大家進行講解,涉及到的2012及2016新功能,后續(xù)有時間也將寫出博客與大家探討,下文將對微軟故障轉(zhuǎn)移群集統(tǒng)一簡稱為WSFC
在正式介紹群集細節(jié)概念之前,我們先來看下WSFC對于硬件軟件的要求
1.確保多個節(jié)點可以訪問到相同內(nèi)容的共享存儲,不論是SAS,ISCSI,F(xiàn)COE,JBOD,RBOD,或是SDS出來的都可以,確保同一個共享存儲可以被所有群集內(nèi)節(jié)點訪問,以便發(fā)生故障轉(zhuǎn)移時其它節(jié)點可以從共享存儲上線資源
2.確保群集節(jié)點OS是正版,非盜版,否則可能會遇見一些奇奇怪怪的問題
3.確保群集節(jié)點是域成員,在2012時×××始發(fā)生了一些改變,2012時代提出了不依賴AD的群集架構(gòu),即是說,群集應(yīng)用可以不創(chuàng)建VC0,但仍然需要節(jié)點加入域,2016時×××始支持真正的工作組群集,跨域,跨林架構(gòu)的群集。
4.確保群集節(jié)點硬件相同,這個并非硬性要求,但是強烈建議各節(jié)點硬件采用完全一致的服務(wù)器,否則會出現(xiàn)虛擬機無法遷移等情況,老王還建議針對群集節(jié)點服務(wù)器采用模塊化便于擴展的架構(gòu),充分利用例如冗余交換機,熱拔插,RAID,MPIO,網(wǎng)卡組合,LBFO,ODX,RDMA,RSS等高可用技術(shù)和硬件卸載技術(shù),消除單一故障點。
5.確保創(chuàng)建群集的賬戶是群集節(jié)點本機的本地管理員權(quán)限,同時也在AD具備一定的寫入權(quán)限,或者是預(yù)先被AD管理員設(shè)置好的權(quán)限。
6.確保群集節(jié)點至少一塊可用網(wǎng)卡,即使群集節(jié)點只有一個卡你也可以安裝起一個群集,但是建議至少兩塊,原因之前博客已經(jīng)說過,傳送門:http://wzde2012.blog.51cto.com/6474289/1947451,如果不做虛擬化,最好三塊卡,做虛擬化建議4塊,群集對外的管理地址,可以是IPv6或者IPV4,可以是DHCP或者靜態(tài),到了2008時代之后微軟并沒有嚴格限制,但是通常我們都是采用靜態(tài)IP地址,不過在多站點場景下DHCP有時候會減少一部分宕機時間,后續(xù)博客會提到。
針對于群集網(wǎng)絡(luò)的設(shè)置這里多說幾句,針對于群集通訊網(wǎng)卡,建議禁止netbios注冊查找,這樣做了之后群集名稱就會僅解析到對外的網(wǎng)絡(luò),并不會在心跳網(wǎng)絡(luò)上面試圖進行netbios解析,DNS解析,防止進行干擾
建議調(diào)整網(wǎng)卡順序?qū)⑷杭瘜ν饩W(wǎng)卡設(shè)置優(yōu)先級高,其次是心跳卡或存儲卡,微軟也曾說過,2012時代之后網(wǎng)卡順序開始不再重要,但還是建議遵守下
在2003時代,只有企業(yè)版和數(shù)據(jù)中心版可以安裝MSCS群集功能,2008時代也是只有企業(yè)版,數(shù)據(jù)中心版可以安裝WSFC功能,標準版和Web版只可以安裝NLB群集,在2008時×××始有Core版本,Core版本也可以安裝群集功能,但同樣只有企業(yè)版和數(shù)據(jù)中心版可以,到了2012時代,只有標準版和數(shù)據(jù)中心版,兩個版本功能一致都可以安裝群集功能,區(qū)別只在于虛擬化OS授權(quán),2016同2012一樣。
WSFC群集支持節(jié)點是虛擬機也支持節(jié)點是物理機,你可以一個節(jié)點是物理機一個節(jié)點是虛擬機,也可以兩個節(jié)點都是虛擬機,也可以在物理機群集上面再搭建虛擬群集,WSFC群集并不care你到底是物理還是虛擬,只要系統(tǒng),網(wǎng)絡(luò),存儲配置符合群集標準即可
以上為群集安裝時的一些硬性要求,以及建議,實際操作的時候建議大家去看下technet,按照technet的文檔進行執(zhí)行,老王這里只選出安裝要求
要點作為介紹,下面將開始介紹WSFC群集的工作原理和細部概念
首先我們先來看一下WSFC故障轉(zhuǎn)移簡單的工作原理,有個大概的印象
1.首先按照要求部署配置群集節(jié)點,確保群集服務(wù)器利用了冗余技術(shù)消除了服務(wù)器,網(wǎng)絡(luò),存儲的單一故障點
2.保證群集內(nèi)所有節(jié)點都可以訪問到共享存儲
3.群集應(yīng)用將應(yīng)用數(shù)據(jù)寫入到群集共享存儲
4.管理員新增節(jié)點1服務(wù)器上面功能角色,新增完成后節(jié)點1服務(wù)器群集數(shù)據(jù)庫記錄新增的角色功能以及相關(guān)聯(lián)的信息,稍后會把信息同步至其它節(jié)點2,及群集仲裁磁盤
5.群集節(jié)點之間按照預(yù)定的心跳檢測頻率進行全網(wǎng)握手檢測
6.節(jié)點1出現(xiàn)故障服務(wù)器忽然關(guān)機,這時節(jié)點2心跳檢測頻率達到閾值,判定節(jié)點1已經(jīng)離線
7.節(jié)點2判定節(jié)點1已經(jīng)離線后,會根據(jù)已經(jīng)同步的群集數(shù)據(jù)庫信息,查看節(jié)點1服務(wù)器當前承載的群集應(yīng)用,重新將群集應(yīng)用與關(guān)聯(lián)IP地址,群集磁盤在節(jié)點2進行上線
8.客戶端正常訪問群集名稱,使用群集服務(wù),但原有節(jié)點1的群集應(yīng)用,現(xiàn)已由節(jié)點2提供,故障轉(zhuǎn)移結(jié)束
總結(jié)下這里關(guān)鍵的兩個點
1.共享存儲一定要確保是所有節(jié)點都可以訪問,都可以做正常掛載卸載的,因為一個傳統(tǒng)的群集應(yīng)用數(shù)據(jù)一定是寫入共享存儲里面,共享存儲成了權(quán)威的存儲源,當其中節(jié)點宕機,其它節(jié)點會查看群集數(shù)據(jù)庫的信息,然后掛載上共享存儲,重新上線應(yīng)用,因此共享存儲的訪問一定要確保
2.群集數(shù)據(jù)庫是WSFC的運作的主要概念之一,群集數(shù)據(jù)庫里面會記載著群集應(yīng)用當前的狀態(tài),例如當前節(jié)點1運行了一個DHCP角色,狀態(tài)是上線,運行了一個文件服務(wù)器角色,狀態(tài)是離線,以及群集配置,群集成員配置,群集資源的添加,創(chuàng)建,啟動,刪除,停止,下線等狀態(tài)變化,群集數(shù)據(jù)庫就是為了幫助各個節(jié)點知道對方上面運行了什么樣的群集服務(wù),一旦對方宕機之后,將按照群集數(shù)據(jù)庫里面的進行的狀態(tài)信息連接上共享存儲進行故障轉(zhuǎn)移上線操作
說起群集的細部概念呢,老王想先從CNO和VCO講起,因為經(jīng)過考慮先講這兩個會便于后面概念的理解起來更順暢
那么什么是CNO呢,之前還記得老王在寫群集介紹的時候曾經(jīng)和大家說過,群集就是讓一組計算機協(xié)作工作,對外感覺就好像一臺計算機在提供服務(wù)一樣,這臺讓人感覺是一臺對外提供的計算機,就是CNO了,也叫群集管理對象,當我們運行群集創(chuàng)建向?qū)r會提示讓我們輸入一個群集名稱和群集IP地址,實際上群集創(chuàng)建向?qū)梦覀冞\行這個群集創(chuàng)建向?qū)У馁~號,去群集中創(chuàng)建一個計算機對象,計算機對象的名稱就是我們輸入的群集名稱,同時也會創(chuàng)建出相對的DNS記錄,有計算機對象了,有DNS記錄了,也有IP地址了,像是一臺計算機了對不對。
這里關(guān)鍵的點,要確保運行群集創(chuàng)建向?qū)У馁~戶,有權(quán)限在AD中寫入計算機對象,默認需要在AD域級別賦予權(quán)限,也可以采用實現(xiàn)創(chuàng)建好計算機對象的方式,創(chuàng)建好對應(yīng)名稱的CNO計算機對象,即創(chuàng)建向?qū)з~戶對其具備完全控制權(quán)限,然后將賬戶加入到群集節(jié)點本地管理員組,這就是該賬戶所需要的權(quán)限
當創(chuàng)建出CNO后 , CNO即作為群集管理點,以后我們管理群集,直接輸入CNO群集名稱即可,除了作為群集管理點,一些不需要創(chuàng)建VCO的群集角色也可以直接使用CNO作為對外訪問名稱,CNO具備一定的自我管理特性,當CNO被正常創(chuàng)建出來之后,CNO就會維護群集角色虛擬計算機VCO,及VCO的DNS記錄
所謂VCO,即是說,一些基于WSFC群集上面跑的應(yīng)用,需要有自己單獨計算機對象和名稱的,例如SQL,文件服務(wù)器角色,當它們需要使用Kerberos 身份驗證的時候就需要計算機對象,我們在群集中添加角色和功能的時候,VCO實際上是由CNO去AD里面相同OU中幫忙創(chuàng)建,因此也需要確保CNO在OU下面具備創(chuàng)建計算機對象的權(quán)限,VCO的DNS記錄也會由CNO去幫忙建立,有些時候可能會出現(xiàn)群集資源名稱無法連接,這時候就要看看是不是CNO VCO計算機對象離線了,或者是CNO沒有權(quán)限創(chuàng)建DNS記錄或VCO對象。
CNO或是VCO的DNS記錄 IP地址實際運作時都會被綁定在一個節(jié)點上,該節(jié)點對于VCO CNO來說就是主節(jié)點,例如CNO的主節(jié)點可以是節(jié)點1,VCO的主節(jié)點可以是節(jié)點2,當節(jié)點1出現(xiàn)故障時候,CNO的IP地址和域名就會故障轉(zhuǎn)移到節(jié)點2進行綁定,如果節(jié)點1活了,這時候節(jié)點2又掛掉,那么CNO和VCO的IP地址和域名都會轉(zhuǎn)移至節(jié)點1綁定,這里的綁定可以理解為hosting
說完了CNO和VCO的概念之后,再來談群集組的概念相對就更好理解了一些
群集組大家可以把它理解為群集最小故障轉(zhuǎn)移單位,在2003時代,我們創(chuàng)建群集之后就可以直觀的看到群集組的工作狀態(tài),這也就是上面我說2003時代的群集更便于大家理解群集工作狀態(tài),2003時代我們創(chuàng)建好了一個群集后,就會有一個群集組,群集組里面有群集IP地址,群集名稱,群集見證磁盤,這就是群集所需要的最基本最重要的信息,這些東西活著,群集也就可以對外提供服務(wù),這個概念一直延續(xù)至今,直至2016,群集創(chuàng)建完成后默認群集背后都會產(chǎn)生一個群集組,也叫做群集核心資源,它可以理解為其它群集角色群集組之父,一切的群集應(yīng)用都是要因為已經(jīng)已由群集核心資源組才可以被建立出來,我們打開群集管理控制臺可以看到有個主服務(wù)器,核心資源組在那臺機器上,那臺機器就是群集主服務(wù)器。
當我們在群集中添加角色的時候,傳統(tǒng)的群集應(yīng)用都會讓我們輸入應(yīng)用名稱,應(yīng)用IP地址,與可以用的群集磁盤,用于存放群集應(yīng)用數(shù)據(jù),這里的群集應(yīng)用名稱,應(yīng)用IP地址,選擇的群集磁盤,就構(gòu)成了一個群集組
例如當前我們建立了個傳統(tǒng)的文件服務(wù)器角色,要向把它進行計劃內(nèi)的故障轉(zhuǎn)移,實質(zhì)上我們會按照整體的一個群集組來進行遷移,將群集應(yīng)用IP地址,群集應(yīng)用DNS名稱從節(jié)點1轉(zhuǎn)移到節(jié)點2上面hosting,然后把掛載在節(jié)點1上面的共享磁盤,掛載到節(jié)點2。
在傳統(tǒng)群集組中單個群集磁盤通常只能被一個群集應(yīng)用占用,例如如果文件服務(wù)器使用了這塊群集磁盤,那么其他群集應(yīng)用則不能重復(fù)使用這塊磁盤,而且要遷移只能整個群集組一起遷移
這對于虛擬機來說就很不方便,既然你一個群集應(yīng)用只能用一個群集磁盤,那在2008時代,群集用虛擬化,如果虛擬機都創(chuàng)建在一個群集組中,虛擬機都在同一塊群集磁盤上,即是說當你要遷移其中一臺虛擬機,只能把上面的其它和你用同一個群集組的虛擬機都一起遷移走,很快微軟發(fā)現(xiàn)這種傳統(tǒng)群集組的方式并不太適合虛擬化,于是在2008R2開始,微軟推出了CSV群集文件系統(tǒng),同時也對群集虛擬機的運作方式做了改變,摒棄傳統(tǒng)群集組的故障轉(zhuǎn)移做法,針對于群集上面的虛擬機有了新的群集組模型,和傳統(tǒng)的群集組都不一樣,新的虛擬機群集組里面只包含單臺虛擬機的虛擬機配置信息,虛擬機磁盤,虛擬機狀態(tài)等單臺虛擬機特定的信息,每次每臺虛擬機的計劃內(nèi)或計劃外遷移將只涉及到這些信息,再不需要被迫遷移所有虛擬機。
以上為群集組的簡要介紹,只要大家知道群集組是群集最小的故障轉(zhuǎn)移單位就可以,當我們計劃內(nèi)或計劃外遷移一個傳統(tǒng)群集應(yīng)用的時候,實際上后臺會發(fā)生把應(yīng)用整體群集組一并遷移到其它節(jié)點進行hosting,針對于虛擬機2008R2開始我們則可以只遷移單虛擬機相關(guān)信息的群集組。
說完群集組之后,我們來看下群集驗證報告的概念,在2003時代并沒有這種東西,2003只是群集安裝完成后會產(chǎn)生安裝log,在2008時×××始,群集換了新的UI,也推出了群集驗證報告,時至今日,群集驗證報告也是很多微軟支持員工的排錯利器。
簡單來說,群集驗證報告是什么呢,可以把它理解為一個群集的私人醫(yī)生,當我們創(chuàng)建群集的時候,強烈建議運行一次群集驗證報告,它會幫助我們從系統(tǒng)配置,網(wǎng)絡(luò),存儲等多個角度來診斷,當前環(huán)境是否適合創(chuàng)建群集,如果創(chuàng)建群集,那些條件是已經(jīng)滿足的,已經(jīng)滿足的會顯示一片綠色的對勾,那些條件是沒有遵守微軟最佳實踐,但是不會影響到群集建立的,這類報告會顯示為×××的驚嘆號,那些條件如果不滿足群集的要求,會導(dǎo)致群集創(chuàng)建出現(xiàn)錯誤的,會顯示紅色的叉叉,一定要進行處理才行。
通常老王建議創(chuàng)建群集的時候群集驗證報告是一定要運行的,然后當針對于群集環(huán)境,例如變更了網(wǎng)絡(luò),存儲,新增了節(jié)點,都建議運行一下群集驗證報告,確保變更不會為現(xiàn)有群集帶來故障
需要特別注意的是群集驗證報告中的存儲,在進行群集驗證報告的時候我們可以選擇,要驗證什么,可以是系統(tǒng)配置,網(wǎng)絡(luò),或存儲等,其中當驗證存儲的時候,可能會導(dǎo)致群集磁盤出現(xiàn)暫時的離線,如果上面跑了業(yè)務(wù),也許會出現(xiàn)短暫的停機時間,因此當進行群集驗證報告時勾選了存儲一定要謹慎,如果不勾選存儲驗證,則不會導(dǎo)致宕機時間,一起都正常執(zhí)行著。
群集驗證報告是群集重要的的私人醫(yī)生,它告訴我們那些是正確的,那些是不正確的,那些是可以改進的,當我們因為一個群集的問題給微軟開case,微軟的支持工程師可能首先就會叫你把群集驗證報告導(dǎo)出生成,發(fā)給他一份,群集驗證報告本身已經(jīng)針對很多群集內(nèi)容進行了驗證,對WSFC感興趣的朋友有時間可以好好看下群集驗證報告。
接下來也是本文的重中之重,我們要講解WSFC中的仲裁,見證,投票的概念,坦白說,之前剛做微軟的產(chǎn)品的時候老王對于這些概念是一頭霧水的,做可以,但從來搞不清楚真正含義,我相信很多剛踏入微軟世界的朋友可能也會有同樣的問題,接下來老王會試著把這些東西講清楚
提到見證投票概念之前我們先來看下仲裁,群集到底為什么需要仲裁,仲裁到底起到什么作用,你有沒有去思考過呢,最初老王就是總也搞不清仲裁到底起到一個什么作用,經(jīng)過一段時間的學(xué)習(xí)研究,我有了一點自己的體會
仲裁,在老王看來,是一種群集用于維護群集持續(xù)可用的機制,例如,當群集里面宕機了一個節(jié)點,仲裁要根據(jù)仲裁模型決定宕機了一個節(jié)點,是否違背群集仲裁模型的要求,如果群集宕機節(jié)點超過了一定數(shù)量,違背了仲裁模型的要求,仲裁會認為,群集當前已經(jīng)無法正常對外提供服務(wù),而將群集關(guān)閉
因此,仲裁的第一個作用,老王認為是在群集節(jié)點發(fā)生狀態(tài)變化下,根據(jù)預(yù)定的仲裁模型,來決定群集是否可以繼續(xù)存活下去
第二個作用,則是當群集發(fā)生分區(qū)時,維持保證群集多數(shù)節(jié)點一方的分區(qū)正常運行,舉個例子,例如當前群集在北京廣州兩個站點,北京站點有三臺群集節(jié)點,廣州站點有兩臺,當前他們使用的仲裁模型是多數(shù)節(jié)點,這時,北京廣州直接出現(xiàn)一個網(wǎng)絡(luò)故障,北京沒辦法訪問廣州,這時群集仲裁會去判斷,阿,群集一共兩個站點,北京站點還剩下三個節(jié)點,它是多數(shù),它可以活下來,這時由北京三個節(jié)點重新組成群集,當廣州節(jié)點網(wǎng)絡(luò)恢復(fù)正常,群集將重新形成繼續(xù)
除了維護多數(shù),仲裁還需要解決處理腦裂的問題,例如當前群集在北京廣州兩個站點,北京有兩個節(jié)點,廣州也有兩個節(jié)點,它們采用了多數(shù)節(jié)點仲裁模型,這時候如果北京與廣州直接出現(xiàn)網(wǎng)絡(luò)故障沒辦法聯(lián)系,那么北京的節(jié)點和廣州的節(jié)點都會試圖去爭取寫入數(shù)據(jù)到共享磁盤,北京廣州各自都以為自己活著,自己才是主節(jié)點,結(jié)果就會導(dǎo)致群集數(shù)據(jù)損壞,群集不正常工作,這種情況在2008R2的時代經(jīng)常會遇到,可能兩個站點之間節(jié)點數(shù)一致,忽然忘了不通,或者使用了見證磁盤,但是見證磁盤聯(lián)系不上了,就會導(dǎo)致這種腦裂的情況發(fā)生
因此,仲裁的目的,就是要始終確保,群集分區(qū)情況下是由多數(shù)的節(jié)點負責(zé)運作,少數(shù)節(jié)點一方應(yīng)該關(guān)閉,即應(yīng)該始終確保群集投票數(shù)是奇數(shù),因為一旦出現(xiàn)偶數(shù)投票,就又會出現(xiàn)腦裂各自為政的情況,怎么確保群集投票數(shù)始終是奇數(shù)呢,一方面我們可以利用群集現(xiàn)有的技術(shù),一方面是架構(gòu)設(shè)計人員的設(shè)計理念要準確,如果是四個節(jié)點,那么你就一定要設(shè)計成磁盤見證或共享見證,否則腦裂一觸即發(fā)。
那么什么是見證呢,大家可能常常會聽見仲裁盤,見證盤,其實所謂的見證,就是WSFC 2008時代為了幫助我們在偶數(shù)節(jié)點下避免腦裂而推出的一項技術(shù)
默認情況下,群集內(nèi)每個節(jié)點都會有自己的投票,當節(jié)點可以通過網(wǎng)絡(luò)狀況檢測,切當前與共享存儲連接正常,系統(tǒng)也正常可用,則該節(jié)點的投票有效,假設(shè)當前是一個四個節(jié)點的群集,如果每個節(jié)點都工作正常的話,那么應(yīng)該是有四個投票,如果是兩個站點,即每個站點兩票,當發(fā)生一個網(wǎng)絡(luò)分區(qū)的時候群集就會出現(xiàn)腦裂,這時如果引入了見證磁盤的話,當出現(xiàn)一個50/50分區(qū)時,那一端可以聯(lián)系到見證,就可以獲取見證的票數(shù),即見證磁盤也會具備自己分區(qū)的投票數(shù),當發(fā)生50/50分區(qū)時,那一端可以先和見證磁盤建立連接,那一端就會獲勝,繼續(xù)運行群集,沒能聯(lián)系到見證磁盤的一方則會被關(guān)閉。
磁盤見證和共享文件夾都是同樣的目的,是微軟最初用于解決腦裂問題的方案,雖然可以解決一部分腦裂的問題,但有時還是會存在腦裂的情況,雖說磁盤見證和共享文件夾是做同樣的目的,但是它們有些地方還是不太相同,磁盤見證和共享文件夾都可以處理腦裂的問題,但是一旦出現(xiàn)一個時間分區(qū)的時候,磁盤見證就可以很好的處理,而共享文件夾不行,例如,當前節(jié)點1 節(jié)點2 使用了共享文件夾,當節(jié)點1上面添加了DHCP角色,然后節(jié)點1宕機,這時只有節(jié)點2活著,我們在上面添加了文件服務(wù)器角色,然后節(jié)點2也宕機,這時我們開啟節(jié)點1,會在群集中看到節(jié)點1群集無法啟動對外提供服務(wù)
原因是節(jié)點1不具備最新的群集數(shù)據(jù)庫,因為共享文件夾見證中沒有存放群集數(shù)據(jù)庫,因此群集檢測到節(jié)點1沒有最新的群集數(shù)據(jù)庫,將會阻止該節(jié)點的啟動,如果是使用磁盤見證則不會,因為磁盤見證中也存在群集數(shù)據(jù)庫,群集節(jié)點的數(shù)據(jù)庫也會同步至見證磁盤,如果使用磁盤見證的話,節(jié)點1開機會聯(lián)系到磁盤見證,與磁盤見證同步最新的群集數(shù)據(jù)庫,然后上線群集資源,因此,建議如果可以選擇磁盤見證,盡量選擇磁盤見證,磁盤見證是黃金法則!
到了2012時代,群集做出了重要的更新,推出了動態(tài)投票,動態(tài)見證的智能化方式,簡單來說,你可以4個節(jié)點用磁盤見證了,3個節(jié)點也可以用磁盤見證,因為群集會自己動態(tài)的為你去調(diào)整見證的票數(shù),例如,現(xiàn)在群集是3個節(jié)點加見證磁盤,那么會自動去掉見證磁盤的一票,群集現(xiàn)在是3票,如果又新增了一個節(jié)點進來,當前四個節(jié)點,又會重新加上見證的一票,群集現(xiàn)在是5票,因此在2012時代及之后,WSFC群集是始終建議大家針對群集配置磁盤見證的,不論是奇數(shù)或是偶數(shù)節(jié)點都可以,因為群集會自動幫我們?nèi)フ{(diào)整票數(shù),通過動態(tài)仲裁可以幾乎幫我們處理百分之80的腦裂場景。
在一些極端情況下,例如第三個站點的見證磁盤無法聯(lián)系,我們也可以通過強制啟動群集,或Lowerquorumprioritynodeid等技術(shù),來在50/50的情況下處理腦裂,利用強制啟動也可以在群集分區(qū)少數(shù)的一方將群集進行啟動,例如當前5個節(jié)點的群集,四個節(jié)點都在站點1,1個站點在站點2,站點1全部崩潰,站點2還活著,但由于仲裁算法默認不會讓少的票數(shù)一方提供服務(wù),但有時少不少,能提供服務(wù)就行,我們也可以通過強制啟動技術(shù)將站點2的一個節(jié)點強制啟動起來提供服務(wù),因此現(xiàn)在的WSFC已經(jīng)可以很好的處理腦裂,50/50場景,以及少數(shù)節(jié)點存活場景。
以目前中國最多使用的2008R2群集為例,在2008R2中WSFC仲裁模型一共有四種
節(jié)點多數(shù):每個群集節(jié)點具備自己的投票數(shù),要求多數(shù)節(jié)點投票,群集才可以正常運行,例如5節(jié)點至少要有3個有效票,3節(jié)點至少要有2個有效票,低于有效票默認群集不會對外提供服務(wù)。
節(jié)點和磁盤多數(shù):每個節(jié)點具備自己的投票數(shù),見證磁盤也具備一票,當見證磁盤活著的時候,允許群集壞掉節(jié)點的半數(shù),例如6節(jié)點群集,見證磁盤活著,則可以允許壞掉3個節(jié)點,加上見證磁盤的一票,群集依然可以正常活著,當見證磁盤掛掉,則節(jié)點必須有多數(shù)投票,群集才可以活著,例如,如果見證磁盤掛掉,5個節(jié)點的群集,最多只能壞兩臺,要至少保證3個可用票
節(jié)點和共享多數(shù):同磁盤多數(shù)一致,不通點在于共享見證里面沒有群集數(shù)據(jù)庫,不會處理時間分區(qū)的問題,適用于沒有見證存儲的場景
僅硬盤:在這種仲裁模型下,只有見證磁盤具有一票,所有節(jié)點都會試圖去爭取到見證磁盤,當發(fā)生分區(qū)時能夠和見證磁盤連接的節(jié)點即可以存活,例如如果是一個8節(jié)點的群集,那怕壞掉7個節(jié)點,只剩下一個節(jié)點,但是它可以和磁盤聯(lián)系,那么群集也可以活下去,群集應(yīng)用會盡可能的在這臺節(jié)點上托管,這時最早2003時代引入的仲裁模型,優(yōu)點是在磁盤可用的情況下,能夠在群集只有一個節(jié)點的情況下存活。缺點是磁盤成為了單一故障點,在2003之后的版本微軟已經(jīng)不再推薦這種仲裁模型
以上我們介紹了仲裁,見證,投票,仲裁模型,下面我們把這些概念串起來看下是否會更加容易理解
群集需要仲裁來判定群集是否可以存活,仲裁根據(jù)仲裁模型的要求來評測群集內(nèi)的投票數(shù),當投票數(shù)按照仲裁模型設(shè)定,達到最少容許存活及以上,則仲裁判定群集可以存活,若超過仲裁模型的最少容許存活,則群集關(guān)閉,當出現(xiàn)腦裂分區(qū)時,仲裁會去利用見證的投票數(shù),來選擇其中一方分區(qū)繼續(xù)提供服務(wù),另外一方關(guān)閉
至于仲裁為什么默認會判定票數(shù)多的一方可以作為權(quán)威方存活,為什么不是選少的一方,老王認為微軟可能是思考,多的一方可以承擔更多的群集應(yīng)用,隨著技術(shù)的不斷更新,仲裁也可以在50/50,或少數(shù)節(jié)點存活的情況下強制選擇其中一方啟動,另外一方關(guān)閉。
老王又想到一個形象的例子,來闡述仲裁,投票,我們以酒店的例子來說
誠意酒店要開張,首先得去工商部門注冊,我們要開一個酒店,工商部門說,這里有幾種運作模式,你們選一下吧,最少要有幾個服務(wù)員一起干活才能算是合理的酒店,這個就是仲裁模型,比如老王選了我們酒店一共五個服務(wù)員,最少也應(yīng)該提供3個服務(wù)員對外服務(wù),工商部門說那好吧,記住哦,你們最少應(yīng)該有3個服務(wù)員的時候才可以以酒店身份正常對外營業(yè)。
辦完工商注冊老王回店里開店,掛牌子,牌子就是群集對外名稱,大家看到你這個名稱,就都進來吃飯了,每個員工上班的時候都會自動打卡報告,我今天是健康的,我可以正常和別人溝通,我可以工作,這個就是投票,這時候服務(wù)員小李有病請假了,四個服務(wù)員仍然可以干活,然后又有一個服務(wù)員小黃要結(jié)婚也請假了,還剩下三個服務(wù)員,也可以干活,只是每個人干的活比以前多了一點,這時候小紅又請假了,哎呀經(jīng)理啊,我生病了不能來干活了,這時候只剩下兩個服務(wù)員干活,這時候工商局立馬就來了,說你們酒店當初不是說至少三個人提供服務(wù)嗎,現(xiàn)在就剩下兩個人了,你們酒店不能開了先關(guān)了吧,等人來了再開,這時候酒店雖然關(guān)了,但是內(nèi)部裝修什么的都沒動,不過牌子暫時不能訪問進來吃飯了,但是當服務(wù)員又齊了,就又可以恢復(fù)對外提供服務(wù)了。
不知道這個例子大家是否可以理解,仲裁就可以理解為你與群集簽訂的一個協(xié)議,群集會遵守這個協(xié)議來判斷你這個群集是否可以存活
如果出現(xiàn)腦裂的情況呢,舉個例子,比如誠意酒店在北京和天津都設(shè)有分公司,兩個分公司都需要和工商部門報告工作,只有匯報了工作才可以正常對外提供服務(wù),工商部門正常情況下只對應(yīng)一個分公司,只有當這個分公司出現(xiàn)問題,才是另外分公司和它報告,然后呢,天津酒店有兩個服務(wù)員,北京酒店也有兩個服務(wù)員,正常情況下每天他們都要電話溝通,今天到底是你匯報還是我匯報。
這天忽然電話線路出故障了,北京聯(lián)系不上天津,天津也聯(lián)系不上北京,那怎么辦,但是也得匯報啊,于是兩邊就都以為我應(yīng)該匯報,我應(yīng)該提供服務(wù),于是兩邊就都給工商部打電話匯報工作,但是匯報的又都不一致,工商部領(lǐng)導(dǎo)一會聽北京的,一會聽天津的,于是工商部領(lǐng)導(dǎo)也蒙了,你們酒店到底怎么回事今天,能不能干了,一會這樣一會那樣,于是這就是腦裂了
如果有見證呢,那就是相當于兩家分公司和工商部談好了,領(lǐng)導(dǎo),我們正常情況下都是通過通電話來確認是誰和您報告工作,一旦電話出現(xiàn)故障,我們就以人為準,您看這個大胖子,他是我們公司的專家,它在哪個分公司,您就聽哪個分公司的就行,工商部領(lǐng)導(dǎo)說好的,然后過兩天電話線路又壞了,但是大胖子在北京,和工商部領(lǐng)導(dǎo)一說,阿,大胖子在你們分公司,你們分公司人多,那就你們先對外提供服務(wù)把,天津那邊等他線路修好再說
如果是強制仲裁呢,那就是說北京分店和天津分店又出現(xiàn)線路故障了,但是北京分店這邊和工商部領(lǐng)導(dǎo)談話了,領(lǐng)導(dǎo)啊,我們這邊今天比較重要,您聽我們的吧,于是工商部領(lǐng)導(dǎo)說,那好吧,既然你們著急今天就聽你們的,然后北京分店和領(lǐng)導(dǎo)匯報完工作,好啦,北京分店現(xiàn)在可以正常提供服務(wù)了,但是天津那邊我回頭也要通知它一下呢,告訴他我今天聽了北京的了,明天你們先休息一天。
到了2012R2之后呢,一旦發(fā)生這種強制仲裁,是不用再通知天津,告訴他明天你們先不要開的,等通知,2012R2之后一旦天津檢測到北京這面發(fā)生了強制仲裁,天津自動就不會啟動,它會知道北京這面已經(jīng)存在了強制仲裁操作,我應(yīng)該遵守它的操作。
如果是使用Lowerquorumprioritynodeid屬性,或者2016里面的Site preferred屬性呢,就是說,事先工商局那邊已經(jīng)訂好規(guī)則了,當出現(xiàn)北京天津都是兩個人,沒有大胖子的時候,我應(yīng)該不聽誰的,例如設(shè)置了Lowerquorumprioritynodeid是天津的節(jié)點,那即是說當出現(xiàn)腦裂情況,直接北京的自動被提升對外提供服務(wù)。
以上為老王對于WSFC的基礎(chǔ)知識簡要介紹,希望看到的朋友都能夠有自己的收獲,理論奠基篇已經(jīng)結(jié)束,下篇老王將使用一套2008R2的環(huán)境帶大家實作群集仲裁發(fā)生時的真實形態(tài),以及應(yīng)對的正確方式。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
當前名稱:WSFC基礎(chǔ)知識奠基-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://m.newbst.com/article30/dihgso.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、面包屑導(dǎo)航、移動網(wǎng)站建設(shè)、網(wǎng)站排名、手機網(wǎng)站建設(shè)、云服務(wù)器
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容