對(duì)于特定的服務(wù)器(例如文件服務(wù)器,Web服務(wù)器等),使用故障轉(zhuǎn)移群集,可以避免因?yàn)閱吸c(diǎn)故障影響正常運(yùn)作。在故障轉(zhuǎn)移群集中,多臺(tái)節(jié)點(diǎn)服務(wù)器安裝同樣的服務(wù)組件,相關(guān)的數(shù)據(jù)是保存在共享存儲(chǔ)之中。即使某臺(tái)服務(wù)器出現(xiàn)問題后,也可以保證群集正常對(duì)外部提供服務(wù)。在Windows Server 2012中僅僅搭建了故障轉(zhuǎn)移群集是不夠的,還需要采取各種方法,使其順暢運(yùn)行。這里就從更新機(jī)制和文件擴(kuò)展服務(wù)等方面,介紹相關(guān)的實(shí)現(xiàn)方法。
為了便于說明,首先介紹如何創(chuàng)建故障轉(zhuǎn)移群集。故障轉(zhuǎn)移群集中的配置信息(例如配置數(shù)據(jù)庫等)的副本保存在每一臺(tái)節(jié)點(diǎn)主機(jī)上,在群集數(shù)據(jù)庫中包含有群集的名稱、網(wǎng)絡(luò)的配置信息、節(jié)點(diǎn)主機(jī)的數(shù)量、當(dāng)前活動(dòng)的主機(jī)以及共享存儲(chǔ)的路徑等內(nèi)容。當(dāng)管理員對(duì)該數(shù)據(jù)庫進(jìn)行修改后,修改信息會(huì)自動(dòng)同步到所有的節(jié)點(diǎn)主機(jī)上。
注意,在群集中只有一臺(tái)節(jié)點(diǎn)主機(jī)處于活動(dòng)狀態(tài),其余的主機(jī)全部處于熱備用狀態(tài)。當(dāng)活動(dòng)主機(jī)發(fā)送心跳信息給其他主機(jī)后,如果其他主機(jī)對(duì)其產(chǎn)生回應(yīng)信息,當(dāng)前主機(jī)就認(rèn)為其他主機(jī)處于可用狀態(tài)。如果有節(jié)點(diǎn)主機(jī)無法回應(yīng)的話,就會(huì)被排除在群集之外。
仲裁對(duì)于故障轉(zhuǎn)移群集是很重要的,仲裁分為節(jié)點(diǎn)仲裁、動(dòng)態(tài)仲裁、磁盤仲裁和文件共享等模式。每臺(tái)節(jié)點(diǎn)主機(jī)都擁有投票的權(quán)利,每臺(tái)主機(jī)可以投一票,仲裁磁盤也具有投票權(quán)。例如,對(duì)于擁有六臺(tái)節(jié)點(diǎn)主機(jī)的群集來說,當(dāng)出現(xiàn)網(wǎng)絡(luò)隔斷的情況,造成兩邊各有三臺(tái)主機(jī)可以通訊,但是兩邊彼此之間無法通訊。如果一邊存在仲裁磁盤,那么該邊就可以投4票,大于另一邊的投票數(shù),這樣,票數(shù)多的一邊就可以為外界提供服務(wù)。
如果主機(jī)的數(shù)量是奇數(shù)(例如三臺(tái)),是沒有必要使用仲裁磁盤的。因?yàn)椴还苋绾胃魯?,一邊的主機(jī)數(shù)量一定大于另一邊。對(duì)于節(jié)點(diǎn)主機(jī)數(shù)量為偶數(shù)的群集來說,就需要使用仲裁磁盤。對(duì)于動(dòng)態(tài)仲裁來說,當(dāng)主機(jī)數(shù)量為奇數(shù)(例如三臺(tái))的群集中某臺(tái)主機(jī)發(fā)生故障,就會(huì)出現(xiàn)只有兩臺(tái)主機(jī)擁有投票權(quán)的情況。動(dòng)態(tài)仲裁功能可以取消其中一臺(tái)主機(jī)投票權(quán),只允許剩下的一臺(tái)主機(jī)擁有投票權(quán),保證群集處于正常狀態(tài),讓群集可以正常運(yùn)行,并通知管理員即使對(duì)群集進(jìn)行維護(hù)。當(dāng)然,該功能只是為了維護(hù)群集的穩(wěn)定而采取的臨時(shí)舉措。
故障轉(zhuǎn)移群集必須依托域環(huán)境,在本例中,存在DC域控制器、網(wǎng)路存儲(chǔ)服務(wù)器,可以按照上述方法在其上創(chuàng)建存儲(chǔ)池,并發(fā)布網(wǎng)絡(luò)虛擬磁盤,這樣,節(jié)點(diǎn)主機(jī)就可以利用iSCSI發(fā)起程序來連接和使用網(wǎng)絡(luò)存儲(chǔ)資源。在群集中某臺(tái)節(jié)點(diǎn)主機(jī)(例如節(jié)點(diǎn)1)上打開服務(wù)器管理器,可以將其配置的多塊網(wǎng)卡分別配置為多個(gè)NIC組合,其中包括心跳網(wǎng)絡(luò)、管理網(wǎng)絡(luò)、連接網(wǎng)絡(luò)等,并使該機(jī)連接到網(wǎng)絡(luò)存儲(chǔ)服務(wù)器上,并聯(lián)機(jī)使用其發(fā)布的虛擬磁盤,這些磁盤分別用戶數(shù)據(jù)存儲(chǔ)和仲裁之用。
點(diǎn)擊“添加角色和功能”鏈接,安裝故障轉(zhuǎn)移群集組件。在其他的節(jié)點(diǎn)主機(jī)上分別執(zhí)行同樣的配置,為群集的創(chuàng)建做好準(zhǔn)備。在節(jié)點(diǎn)1上打開故障轉(zhuǎn)移群集管理器,點(diǎn)擊“驗(yàn)證配置”鏈接,在向?qū)Ы缑嬷休斎肴杭Q,點(diǎn)擊“瀏覽”按鈕,導(dǎo)入所有的節(jié)點(diǎn)主機(jī)。在下一步窗口中選擇“運(yùn)行所有測(cè)試”項(xiàng),執(zhí)行測(cè)試操作。完畢后,在測(cè)試報(bào)告中如果顯示“測(cè)試已成功完成,該配置適合進(jìn)行群集”的信息,說明測(cè)試成功,當(dāng)前環(huán)境可以配置群集。
圖1 創(chuàng)建故障轉(zhuǎn)移群集
在管理控制臺(tái)中點(diǎn)擊“創(chuàng)建群集”鏈接,在創(chuàng)建向?qū)Вㄈ鐖D1)中輸入群集名稱,先不要添加所有的節(jié)點(diǎn)主機(jī),而只添加少量的主機(jī),跳過測(cè)試提示,在用于管理群集的訪問點(diǎn)窗口中輸入群集名稱,在DC上的Active Directory數(shù)據(jù)庫中會(huì)為其創(chuàng)建對(duì)應(yīng)的計(jì)算機(jī)賬戶。在“地址”列中輸入訪問點(diǎn)地址,當(dāng)客戶端訪問群集時(shí),使用的就是該地址。依次點(diǎn)擊下一步按鈕,完成群集的創(chuàng)建操作。在控制臺(tái)窗口上部顯示群集的域名、當(dāng)前主服務(wù)器、仲裁配置模式等信息。在左側(cè)選擇群集名稱,會(huì)顯示節(jié)點(diǎn)、存儲(chǔ)、網(wǎng)絡(luò)等信息。
打開對(duì)應(yīng)的存儲(chǔ)盤,在其中會(huì)發(fā)現(xiàn)“Cluster”文件夾,其中保存著群集的配置文件。點(diǎn)擊“群集域名→網(wǎng)絡(luò)”項(xiàng),在右側(cè)顯示所有的網(wǎng)絡(luò)連接項(xiàng)目,其中就包括用于心跳檢測(cè)對(duì)外網(wǎng)絡(luò)、數(shù)據(jù)通訊網(wǎng)絡(luò)以及管理網(wǎng)絡(luò)。打開某個(gè)網(wǎng)絡(luò)項(xiàng)目,在屬性窗口中可以更改名稱,如果只選擇“允許在此網(wǎng)絡(luò)上進(jìn)行群集網(wǎng)絡(luò)通訊”項(xiàng),表示用于心跳檢測(cè)。心跳網(wǎng)絡(luò)連接默認(rèn)使用的是UDP 3343端口。如果還選擇了“允許客戶端通過該網(wǎng)絡(luò)連接”項(xiàng),說明這是管理網(wǎng)絡(luò),允許管理員管理群集。如果只選擇“不允許在此網(wǎng)絡(luò)上進(jìn)行群集網(wǎng)絡(luò)通訊”項(xiàng),表示這是數(shù)據(jù)傳輸網(wǎng)絡(luò)。
當(dāng)配置無誤后,點(diǎn)擊控制臺(tái)右側(cè)的“添加節(jié)點(diǎn)”鏈接,將其他的節(jié)點(diǎn)主機(jī)全部添加進(jìn)來。如果節(jié)點(diǎn)主機(jī)數(shù)量變?yōu)槠鏀?shù),可以在群集域名項(xiàng)的右鍵菜單上點(diǎn)擊“更多操作→配置群集仲裁”項(xiàng),在下一步窗口中點(diǎn)擊“添加更改仲裁見證”項(xiàng),點(diǎn)擊下一步按鈕,選擇“不配置仲裁見證”項(xiàng)(如圖2),取消仲裁機(jī)制。如果某臺(tái)節(jié)點(diǎn)主機(jī)出現(xiàn)故障,使節(jié)點(diǎn)主機(jī)數(shù)量由奇數(shù)變?yōu)榕紨?shù),在默認(rèn)情況下,系統(tǒng)是沒有任何提示的,對(duì)于這種情況,可以使用動(dòng)態(tài)仲裁進(jìn)行控制。打開上述仲裁配置向?qū)?,選擇“配置磁盤見證”項(xiàng),在下一步窗口中選擇某塊磁盤,之后完成配置操作。
搭建了故障轉(zhuǎn)移群集之后,需要運(yùn)行各種角色,來發(fā)揮群集的威力。在控制臺(tái)左側(cè)選擇“群集域名→角色”項(xiàng),在右側(cè)點(diǎn)擊“配置角色”鏈接,在向?qū)Ы缑嬷辛谐鏊锌梢越壎ǖ慕巧?,例如選擇“DHCP服務(wù)器”角色,在下一步窗口中輸入器名稱、設(shè)置訪問點(diǎn)IP,之后設(shè)置所需的共享存儲(chǔ),就可以為當(dāng)前群集配置DHCP服務(wù)器角色了。這樣,該角色就可以在群集中正常運(yùn)行,DHCP服務(wù)器角色就擁有了高可用性。在群集中添加角色和服務(wù)后,在運(yùn)行過程中,需要根據(jù)情況對(duì)群集進(jìn)行調(diào)控。例如對(duì)于SQL Server群集來說,在運(yùn)作過程中,可能對(duì)數(shù)據(jù)的存儲(chǔ)提出更高的要求,這就需要對(duì)其進(jìn)行更加合理的配置。
圖2 配置群集仲裁向?qū)Ы缑?/p>
圖3 群集感知更新管理器窗口
對(duì)群集的更新同樣不可忽視,應(yīng)該及時(shí)為系統(tǒng)打上最新的補(bǔ)丁包。在通常情況下,是先在群集中的熱備節(jié)點(diǎn)主機(jī)上安裝補(bǔ)丁包,之后將活動(dòng)主機(jī)上的服務(wù)遷移到熱備主機(jī)上,因?yàn)榛顒?dòng)主機(jī)就變成了熱備用節(jié)點(diǎn),就可以在上面安裝補(bǔ)丁包了。這種方法不僅操作起來比較繁瑣,而且無法讓管理員及時(shí)了解群集整體更新狀態(tài)。利用Windows Server 2012提供的群集感知更新功能,可以很好地解決該問題。
群集感知更新功能支持遠(yuǎn)程更新和自我更新兩種方式,利用前者,可以在客戶端或者管理主機(jī)上安裝群集管理工具,來完成配置和更新操作。利用后者,可以實(shí)現(xiàn)群集的自動(dòng)更新功能,通過設(shè)置合適的周期,讓群集中的所有主機(jī)自動(dòng)實(shí)現(xiàn)更新操作。上述兩種模式采用的同樣是先更新熱備用主機(jī),再更新活動(dòng)節(jié)點(diǎn)主機(jī)的方式,只是可以自動(dòng)實(shí)現(xiàn)服務(wù)的切換和遷移操作。
在管理主機(jī)上打開服務(wù)器管理器,點(diǎn)擊“添加角色和功能”鏈接,在功能列表中選擇“遠(yuǎn)程服務(wù)器管理工具→功能管理工具→故障轉(zhuǎn)移群集工具→故障轉(zhuǎn)移群集管理工具”項(xiàng),完成組件的安裝。打開群集感知更新管理器(如圖3),在“連接到故障轉(zhuǎn)移群集”列表中選擇目標(biāo)群集,點(diǎn)擊“連接”按鈕,連接到該群集中。在“群集節(jié)點(diǎn)”列表中顯示該群集中的節(jié)點(diǎn)主機(jī)信息,包括名稱、上次執(zhí)行更新的狀態(tài)和時(shí)間等內(nèi)容。點(diǎn)擊“分析群集更新就緒情況”鏈接,通過節(jié)點(diǎn)主機(jī)進(jìn)行分析,來判斷是否滿足自動(dòng)更新的條件。
只有所有的檢測(cè)條件都通過后,才可以進(jìn)行群集的更新操作。點(diǎn)擊“預(yù)覽此群集的更新”鏈接,來了解節(jié)點(diǎn)主機(jī)需要更新的補(bǔ)丁包信息。點(diǎn)擊“管理此群集”鏈接,在群集管理器中查看各節(jié)點(diǎn)主機(jī)的運(yùn)行狀態(tài)。明確了所需的更新包后,點(diǎn)擊“將更新應(yīng)用于此群集”鏈接,在向?qū)Ы缑嬷械摹案呒?jí)選項(xiàng)”窗口(如圖4)中,可以根據(jù)需要自定義各種更新參數(shù)。點(diǎn)擊下一步,選擇“推薦更新的接收方式和重要更新的接收方式相同”項(xiàng),在下一步窗口中點(diǎn)擊“更新”按鈕,就可以為群集中的各節(jié)點(diǎn)主機(jī)執(zhí)行更新操作。在群集感知更新管理窗口中,可以查看更新的狀態(tài)信息,包括更新包的下載和安裝情況等。
在更新過程中,節(jié)點(diǎn)服務(wù)的暫停、重啟以及切換等動(dòng)作均自動(dòng)完成。更新完畢后,在“正在進(jìn)行的更新的日志”面板中會(huì)顯示全部的更新記錄。點(diǎn)擊“生成更新運(yùn)行報(bào)告”鏈接,在彈出窗口中點(diǎn)擊“生成報(bào)告”按鈕,創(chuàng)建完整的網(wǎng)頁類型更新日志報(bào)告文件。除了執(zhí)行遠(yuǎn)程更新外,還可以在群集感知更新窗口中點(diǎn)擊“配置群集自我更新選項(xiàng)”鏈接,實(shí)現(xiàn)群集自動(dòng)更新模式。
圖4 群集感知更新向?qū)Ы缑?/p>
在向?qū)Ы缑嬷羞x擇“在啟用自我更新模式的情況下向此群集中添加CAU群集角色”項(xiàng),CAU即群集感知更新,點(diǎn)擊下一步,在“自我更新的頻率”欄中選擇更新的周期,包括每天、每周、每月等,默認(rèn)為每月。選擇具體的日期和時(shí)間,在下一步窗口中點(diǎn)擊“瀏覽”按鈕,選擇更新配置文件,可以選擇默認(rèn)的配置文件或者自定義的配置文件。其余的操作與上述向?qū)Щ鞠嗤|c(diǎn)擊“應(yīng)用”,激活自動(dòng)更新模式。這樣,到達(dá)預(yù)設(shè)的時(shí)間后,系統(tǒng)就會(huì)自動(dòng)對(duì)群集中的所有節(jié)點(diǎn)主機(jī)執(zhí)行更新操作。
搭建了故障轉(zhuǎn)移群集后,要想發(fā)揮器能力,需要在上面配置各種角色,為外界提供可靠性很高的各種服務(wù)。例如,在群集中可以配置文件共享服務(wù),讓客戶機(jī)可以訪問共享數(shù)據(jù)。在群集中,實(shí)際上只有一臺(tái)節(jié)點(diǎn)主機(jī)處于活動(dòng)狀態(tài),其余的節(jié)點(diǎn)主機(jī)處于熱備用狀態(tài)。只有當(dāng)活動(dòng)主機(jī)出現(xiàn)故障時(shí),才會(huì)將相應(yīng)的角色轉(zhuǎn)移到其他節(jié)點(diǎn)上運(yùn)行。因?yàn)橄嚓P(guān)數(shù)據(jù)是存儲(chǔ)在后臺(tái)存儲(chǔ)服務(wù)器上的,所以不會(huì)對(duì)數(shù)據(jù)安全和完整性造成影響。
在群集中除了活動(dòng)主機(jī)外,其余的節(jié)點(diǎn)主機(jī)實(shí)際上處于閑置狀態(tài),而活動(dòng)主機(jī)卻很忙碌,這就造成了設(shè)備利用率不高的問題。對(duì)于文件服務(wù)器,可以使用Scale-Out文件擴(kuò)展服務(wù),讓所有的節(jié)點(diǎn)主機(jī)都處于活動(dòng)狀態(tài),通過自適應(yīng)功能,可以合理地優(yōu)化訪問操作。例如,某臺(tái)節(jié)點(diǎn)主機(jī)處于高負(fù)荷運(yùn)轉(zhuǎn)狀態(tài),當(dāng)客戶機(jī)對(duì)群集進(jìn)行訪問時(shí),會(huì)自動(dòng)連接到工作符負(fù)荷相對(duì)較輕的節(jié)點(diǎn)主機(jī)上。因?yàn)樗泄?jié)點(diǎn)主機(jī)都處于活動(dòng)狀態(tài),可以通過各自的網(wǎng)絡(luò)鏈路為外界提供服務(wù),所以,整個(gè)群集的網(wǎng)絡(luò)帶寬也成倍增加。
Scale-Out服務(wù)對(duì)應(yīng)的是應(yīng)用程序(例如數(shù)據(jù)庫群集、SMB共享虛擬機(jī)等)的數(shù)據(jù)存儲(chǔ)。首先在網(wǎng)絡(luò)存儲(chǔ)服務(wù)器上添加并發(fā)布iSCSI虛擬磁盤,之后連接到現(xiàn)有的iSCSI目標(biāo)上。在群集中節(jié)點(diǎn)1上打開服務(wù)器管理器,選擇“文件和存儲(chǔ)服務(wù)→卷→磁盤”項(xiàng),按照上面談到的方法,將虛擬盤進(jìn)行聯(lián)機(jī)和分區(qū)格式化分配盤符操作,該虛擬磁盤主要用于Scale-Out服務(wù)。在該節(jié)點(diǎn)主機(jī)上打開服務(wù)器管理器,點(diǎn)擊“添加角色和功能”項(xiàng),在向?qū)Т翱谥羞x擇“從服務(wù)器池中選擇服務(wù)器”項(xiàng),選擇該節(jié)點(diǎn)主機(jī),在角色列表中選擇“文件和存儲(chǔ)服務(wù)→文件和iSCSI服務(wù)→文件服務(wù)器”項(xiàng)安裝該角色。注意,在所有的節(jié)點(diǎn)主機(jī)上都必須添加該角色。
在節(jié)點(diǎn)1上打開群集管理器,在左側(cè)選擇“群集域名→存儲(chǔ)”項(xiàng),在右側(cè)顯示可用的磁盤信息,其中保存存儲(chǔ)盤或者仲裁磁盤。要想實(shí)現(xiàn)Scale-Out功能,必須添加對(duì)應(yīng)的磁盤。點(diǎn)擊“添加磁盤”鏈接,選擇上述設(shè)置好的虛擬磁盤。在磁盤列表中選擇該磁盤,在其右鍵菜單上點(diǎn)擊“添加到群集共享卷”項(xiàng),將其指派給群集共享卷。選擇“群集域名→角色”項(xiàng),點(diǎn)擊“配置角色”鏈接,在向?qū)Ы缑嬷械倪x擇角色窗口中選擇“文件服務(wù)器”項(xiàng),點(diǎn)擊下一步按鈕,選擇“應(yīng)用程序數(shù)據(jù)的橫向擴(kuò)展文件服務(wù)器”項(xiàng)(如圖5),針對(duì)應(yīng)用程序服務(wù)器(例如SQL Server服務(wù)器等)提供高可用性。
圖5 選擇文件服務(wù)器類型
圖6 為共享選擇配置文件
默認(rèn)選擇“文件服務(wù)器的常規(guī)使用”項(xiàng),表示針對(duì)普通用戶提供文件服務(wù)的高可用性。在下一步窗口中設(shè)置客戶訪問點(diǎn)名稱,點(diǎn)擊“完成”按鈕,就可以為文件服務(wù)器角色配置橫向擴(kuò)展的高可用性。同時(shí),在DC服務(wù)器上的活動(dòng)目錄數(shù)據(jù)庫中會(huì)創(chuàng)建與之對(duì)應(yīng)的安全對(duì)象,在DNS服務(wù)器中也會(huì)創(chuàng)建相應(yīng)的記錄信息。當(dāng)這些工作全部完成后,選擇“角色”項(xiàng),在右側(cè)可以看到該角色。在該角色的右鍵菜單上點(diǎn)擊“添加文件共享”項(xiàng),在向?qū)Ы缑嬷械摹拔募蚕砼渲梦募绷斜碇酗@示所有的配置文件項(xiàng)目(如圖6),包括SMB共享-快速、SMB共享-高級(jí)、SMB共享-應(yīng)用程序,NFS共享-快速、NFS共享-高級(jí)等。
選擇合適的配置文件后,在下一步窗口中選擇擴(kuò)展服務(wù)角色,輸入共享名稱和描述信息,其余設(shè)置保持默認(rèn),這樣就實(shí)現(xiàn)了具有擴(kuò)展功能的文件服務(wù)。在該服務(wù)的管控下,群集中的所有節(jié)點(diǎn)主機(jī)都處于活動(dòng)狀態(tài),都可以響應(yīng)應(yīng)用程序服務(wù)器的連接請(qǐng)求。例如,當(dāng)多臺(tái)SQL Server數(shù)據(jù)庫服務(wù)器執(zhí)行數(shù)據(jù)庫創(chuàng)建等操作時(shí),就可以選擇該高可用性角色,群集中的所有節(jié)點(diǎn)主機(jī)都可以為其提供服務(wù),在其中選擇合適的共享存儲(chǔ)即可。