對于特定的服務器(例如文件服務器,Web服務器等),使用故障轉移群集,可以避免因為單點故障影響正常運作。在故障轉移群集中,多臺節點服務器安裝同樣的服務組件,相關的數據是保存在共享存儲之中。即使某臺服務器出現問題后,也可以保證群集正常對外部提供服務。在Windows Server 2012中僅僅搭建了故障轉移群集是不夠的,還需要采取各種方法,使其順暢運行。這里就從更新機制和文件擴展服務等方面,介紹相關的實現方法。
為了便于說明,首先介紹如何創建故障轉移群集。故障轉移群集中的配置信息(例如配置數據庫等)的副本保存在每一臺節點主機上,在群集數據庫中包含有群集的名稱、網絡的配置信息、節點主機的數量、當前活動的主機以及共享存儲的路徑等內容。當管理員對該數據庫進行修改后,修改信息會自動同步到所有的節點主機上。
注意,在群集中只有一臺節點主機處于活動狀態,其余的主機全部處于熱備用狀態。當活動主機發送心跳信息給其他主機后,如果其他主機對其產生回應信息,當前主機就認為其他主機處于可用狀態。如果有節點主機無法回應的話,就會被排除在群集之外。
仲裁對于故障轉移群集是很重要的,仲裁分為節點仲裁、動態仲裁、磁盤仲裁和文件共享等模式。每臺節點主機都擁有投票的權利,每臺主機可以投一票,仲裁磁盤也具有投票權。例如,對于擁有六臺節點主機的群集來說,當出現網絡隔斷的情況,造成兩邊各有三臺主機可以通訊,但是兩邊彼此之間無法通訊。如果一邊存在仲裁磁盤,那么該邊就可以投4票,大于另一邊的投票數,這樣,票數多的一邊就可以為外界提供服務。
如果主機的數量是奇數(例如三臺),是沒有必要使用仲裁磁盤的。因為不管如何隔斷,一邊的主機數量一定大于另一邊。對于節點主機數量為偶數的群集來說,就需要使用仲裁磁盤。對于動態仲裁來說,當主機數量為奇數(例如三臺)的群集中某臺主機發生故障,就會出現只有兩臺主機擁有投票權的情況。動態仲裁功能可以取消其中一臺主機投票權,只允許剩下的一臺主機擁有投票權,保證群集處于正常狀態,讓群集可以正常運行,并通知管理員即使對群集進行維護。當然,該功能只是為了維護群集的穩定而采取的臨時舉措。
故障轉移群集必須依托域環境,在本例中,存在DC域控制器、網路存儲服務器,可以按照上述方法在其上創建存儲池,并發布網絡虛擬磁盤,這樣,節點主機就可以利用iSCSI發起程序來連接和使用網絡存儲資源。在群集中某臺節點主機(例如節點1)上打開服務器管理器,可以將其配置的多塊網卡分別配置為多個NIC組合,其中包括心跳網絡、管理網絡、連接網絡等,并使該機連接到網絡存儲服務器上,并聯機使用其發布的虛擬磁盤,這些磁盤分別用戶數據存儲和仲裁之用。
點擊“添加角色和功能”鏈接,安裝故障轉移群集組件。在其他的節點主機上分別執行同樣的配置,為群集的創建做好準備。在節點1上打開故障轉移群集管理器,點擊“驗證配置”鏈接,在向導界面中輸入群集名稱,點擊“瀏覽”按鈕,導入所有的節點主機。在下一步窗口中選擇“運行所有測試”項,執行測試操作。完畢后,在測試報告中如果顯示“測試已成功完成,該配置適合進行群集”的信息,說明測試成功,當前環境可以配置群集。

圖1 創建故障轉移群集
在管理控制臺中點擊“創建群集”鏈接,在創建向導(如圖1)中輸入群集名稱,先不要添加所有的節點主機,而只添加少量的主機,跳過測試提示,在用于管理群集的訪問點窗口中輸入群集名稱,在DC上的Active Directory數據庫中會為其創建對應的計算機賬戶。在“地址”列中輸入訪問點地址,當客戶端訪問群集時,使用的就是該地址。依次點擊下一步按鈕,完成群集的創建操作。在控制臺窗口上部顯示群集的域名、當前主服務器、仲裁配置模式等信息。在左側選擇群集名稱,會顯示節點、存儲、網絡等信息。
打開對應的存儲盤,在其中會發現“Cluster”文件夾,其中保存著群集的配置文件。點擊“群集域名→網絡”項,在右側顯示所有的網絡連接項目,其中就包括用于心跳檢測對外網絡、數據通訊網絡以及管理網絡。打開某個網絡項目,在屬性窗口中可以更改名稱,如果只選擇“允許在此網絡上進行群集網絡通訊”項,表示用于心跳檢測。心跳網絡連接默認使用的是UDP 3343端口。如果還選擇了“允許客戶端通過該網絡連接”項,說明這是管理網絡,允許管理員管理群集。如果只選擇“不允許在此網絡上進行群集網絡通訊”項,表示這是數據傳輸網絡。
當配置無誤后,點擊控制臺右側的“添加節點”鏈接,將其他的節點主機全部添加進來。如果節點主機數量變為奇數,可以在群集域名項的右鍵菜單上點擊“更多操作→配置群集仲裁”項,在下一步窗口中點擊“添加更改仲裁見證”項,點擊下一步按鈕,選擇“不配置仲裁見證”項(如圖2),取消仲裁機制。如果某臺節點主機出現故障,使節點主機數量由奇數變為偶數,在默認情況下,系統是沒有任何提示的,對于這種情況,可以使用動態仲裁進行控制。打開上述仲裁配置向導,選擇“配置磁盤見證”項,在下一步窗口中選擇某塊磁盤,之后完成配置操作。
搭建了故障轉移群集之后,需要運行各種角色,來發揮群集的威力。在控制臺左側選擇“群集域名→角色”項,在右側點擊“配置角色”鏈接,在向導界面中列出所有可以綁定的角色,例如選擇“DHCP服務器”角色,在下一步窗口中輸入器名稱、設置訪問點IP,之后設置所需的共享存儲,就可以為當前群集配置DHCP服務器角色了。這樣,該角色就可以在群集中正常運行,DHCP服務器角色就擁有了高可用性。在群集中添加角色和服務后,在運行過程中,需要根據情況對群集進行調控。例如對于SQL Server群集來說,在運作過程中,可能對數據的存儲提出更高的要求,這就需要對其進行更加合理的配置。

圖2 配置群集仲裁向導界面

圖3 群集感知更新管理器窗口
對群集的更新同樣不可忽視,應該及時為系統打上最新的補丁包。在通常情況下,是先在群集中的熱備節點主機上安裝補丁包,之后將活動主機上的服務遷移到熱備主機上,因為活動主機就變成了熱備用節點,就可以在上面安裝補丁包了。這種方法不僅操作起來比較繁瑣,而且無法讓管理員及時了解群集整體更新狀態。利用Windows Server 2012提供的群集感知更新功能,可以很好地解決該問題。
群集感知更新功能支持遠程更新和自我更新兩種方式,利用前者,可以在客戶端或者管理主機上安裝群集管理工具,來完成配置和更新操作。利用后者,可以實現群集的自動更新功能,通過設置合適的周期,讓群集中的所有主機自動實現更新操作。上述兩種模式采用的同樣是先更新熱備用主機,再更新活動節點主機的方式,只是可以自動實現服務的切換和遷移操作。
在管理主機上打開服務器管理器,點擊“添加角色和功能”鏈接,在功能列表中選擇“遠程服務器管理工具→功能管理工具→故障轉移群集工具→故障轉移群集管理工具”項,完成組件的安裝。打開群集感知更新管理器(如圖3),在“連接到故障轉移群集”列表中選擇目標群集,點擊“連接”按鈕,連接到該群集中。在“群集節點”列表中顯示該群集中的節點主機信息,包括名稱、上次執行更新的狀態和時間等內容。點擊“分析群集更新就緒情況”鏈接,通過節點主機進行分析,來判斷是否滿足自動更新的條件。
只有所有的檢測條件都通過后,才可以進行群集的更新操作。點擊“預覽此群集的更新”鏈接,來了解節點主機需要更新的補丁包信息。點擊“管理此群集”鏈接,在群集管理器中查看各節點主機的運行狀態。明確了所需的更新包后,點擊“將更新應用于此群集”鏈接,在向導界面中的“高級選項”窗口(如圖4)中,可以根據需要自定義各種更新參數。點擊下一步,選擇“推薦更新的接收方式和重要更新的接收方式相同”項,在下一步窗口中點擊“更新”按鈕,就可以為群集中的各節點主機執行更新操作。在群集感知更新管理窗口中,可以查看更新的狀態信息,包括更新包的下載和安裝情況等。
在更新過程中,節點服務的暫停、重啟以及切換等動作均自動完成。更新完畢后,在“正在進行的更新的日志”面板中會顯示全部的更新記錄。點擊“生成更新運行報告”鏈接,在彈出窗口中點擊“生成報告”按鈕,創建完整的網頁類型更新日志報告文件。除了執行遠程更新外,還可以在群集感知更新窗口中點擊“配置群集自我更新選項”鏈接,實現群集自動更新模式。

圖4 群集感知更新向導界面
在向導界面中選擇“在啟用自我更新模式的情況下向此群集中添加CAU群集角色”項,CAU即群集感知更新,點擊下一步,在“自我更新的頻率”欄中選擇更新的周期,包括每天、每周、每月等,默認為每月。選擇具體的日期和時間,在下一步窗口中點擊“瀏覽”按鈕,選擇更新配置文件,可以選擇默認的配置文件或者自定義的配置文件。其余的操作與上述向導基本相同。點擊“應用”,激活自動更新模式。這樣,到達預設的時間后,系統就會自動對群集中的所有節點主機執行更新操作。
搭建了故障轉移群集后,要想發揮器能力,需要在上面配置各種角色,為外界提供可靠性很高的各種服務。例如,在群集中可以配置文件共享服務,讓客戶機可以訪問共享數據。在群集中,實際上只有一臺節點主機處于活動狀態,其余的節點主機處于熱備用狀態。只有當活動主機出現故障時,才會將相應的角色轉移到其他節點上運行。因為相關數據是存儲在后臺存儲服務器上的,所以不會對數據安全和完整性造成影響。
在群集中除了活動主機外,其余的節點主機實際上處于閑置狀態,而活動主機卻很忙碌,這就造成了設備利用率不高的問題。對于文件服務器,可以使用Scale-Out文件擴展服務,讓所有的節點主機都處于活動狀態,通過自適應功能,可以合理地優化訪問操作。例如,某臺節點主機處于高負荷運轉狀態,當客戶機對群集進行訪問時,會自動連接到工作符負荷相對較輕的節點主機上。因為所有節點主機都處于活動狀態,可以通過各自的網絡鏈路為外界提供服務,所以,整個群集的網絡帶寬也成倍增加。
Scale-Out服務對應的是應用程序(例如數據庫群集、SMB共享虛擬機等)的數據存儲。首先在網絡存儲服務器上添加并發布iSCSI虛擬磁盤,之后連接到現有的iSCSI目標上。在群集中節點1上打開服務器管理器,選擇“文件和存儲服務→卷→磁盤”項,按照上面談到的方法,將虛擬盤進行聯機和分區格式化分配盤符操作,該虛擬磁盤主要用于Scale-Out服務。在該節點主機上打開服務器管理器,點擊“添加角色和功能”項,在向導窗口中選擇“從服務器池中選擇服務器”項,選擇該節點主機,在角色列表中選擇“文件和存儲服務→文件和iSCSI服務→文件服務器”項安裝該角色。注意,在所有的節點主機上都必須添加該角色。
在節點1上打開群集管理器,在左側選擇“群集域名→存儲”項,在右側顯示可用的磁盤信息,其中保存存儲盤或者仲裁磁盤。要想實現Scale-Out功能,必須添加對應的磁盤。點擊“添加磁盤”鏈接,選擇上述設置好的虛擬磁盤。在磁盤列表中選擇該磁盤,在其右鍵菜單上點擊“添加到群集共享卷”項,將其指派給群集共享卷。選擇“群集域名→角色”項,點擊“配置角色”鏈接,在向導界面中的選擇角色窗口中選擇“文件服務器”項,點擊下一步按鈕,選擇“應用程序數據的橫向擴展文件服務器”項(如圖5),針對應用程序服務器(例如SQL Server服務器等)提供高可用性。

圖5 選擇文件服務器類型

圖6 為共享選擇配置文件
默認選擇“文件服務器的常規使用”項,表示針對普通用戶提供文件服務的高可用性。在下一步窗口中設置客戶訪問點名稱,點擊“完成”按鈕,就可以為文件服務器角色配置橫向擴展的高可用性。同時,在DC服務器上的活動目錄數據庫中會創建與之對應的安全對象,在DNS服務器中也會創建相應的記錄信息。當這些工作全部完成后,選擇“角色”項,在右側可以看到該角色。在該角色的右鍵菜單上點擊“添加文件共享”項,在向導界面中的“文件共享配置文件”列表中顯示所有的配置文件項目(如圖6),包括SMB共享-快速、SMB共享-高級、SMB共享-應用程序,NFS共享-快速、NFS共享-高級等。
選擇合適的配置文件后,在下一步窗口中選擇擴展服務角色,輸入共享名稱和描述信息,其余設置保持默認,這樣就實現了具有擴展功能的文件服務。在該服務的管控下,群集中的所有節點主機都處于活動狀態,都可以響應應用程序服務器的連接請求。例如,當多臺SQL Server數據庫服務器執行數據庫創建等操作時,就可以選擇該高可用性角色,群集中的所有節點主機都可以為其提供服務,在其中選擇合適的共享存儲即可。