如何創建和操作服務器群集?
一旦在服務器上安裝并運行了群集服務,該服務器即可加入群集。群集化操作可以減少單點故障數量,并且實現了群集化資源的高可用性。下述各節簡要介紹了群集創建和群集操作中的節點行為。
創建群集
在服務器群集產品中含有用來在服務器上安裝群集軟件和創建新群集的群集安裝實用工具。創建新群集時,首先在選擇作為群集的***個成員的計算機上運行該實用工具。***步是確定群集名稱并創建群集數據庫和初始的群集成員列表來定義新群集。Windowsserver2003群集新增了一個群集管理設置向導以及使用cluster.exe命令行界面創建(包括從遠程創建)群集的功能。
創建群集的第二步是,添加可供所有群集成員使用的共用數據存儲設備。這樣,創建的新群集將帶有一個節點、自己的本地數據存儲設備以及群集共用資源——通常是磁盤或數據存儲和連接介質資源。
創建群集的***一步是,在另外將要成為群集成員的每一臺計算機上運行安裝實用工具。每當將新節點添加到群集中時,新節點都會自動從群集的原始成員獲得現有群集數據庫的副本。當節點加入或形成群集時,群集服務會更新該節點私有的配置數據庫副本。
形成群集
如果服務器運行了群集服務并且無法找到群集中的其它節點,它自己可以形成一個群集。要形成群集,節點必須能夠獲得對仲裁資源的獨占權。
當最初形成群集時,群集中的***個節點將包括群集配置數據庫。每當有新節點加入群集時,新節點都會在本地獲得并保持群集配置數據庫的副本。仲裁資源用恢復日志(其中含有同節點無關的群集配置和狀態數據)的形式存儲配置數據庫的***版本。
在群集運行中,群集服務使用仲裁恢復日志執行以下操作:
- 保證只有一組活動、可相互通訊的節點才能形成群集
- 僅當某個節點可以獲得對仲裁資源的控制權時,才允許它形成群集
- 僅當某個節點可以同控制仲裁資源的節點通訊時,才允許它加入或留在現有群集中
從群集中的其它節點和群集服務管理接口的角度看,當形成群集時,群集中的每個節點可能處于三種不同狀態中的一種。事件處理器會記錄這些狀態,而事件日志管理器會將這些狀態復制到群集的其它節點。群集服務狀態包括:
- 脫機。此時的節點不是完全有效的群集成員。該節點及其群集服務器可能在運行,也可能未運行。
- 聯機。此時的節點是完全有效的群集成員。它遵從群集數據庫的更新、對仲裁算法施加自己的影響、維護心跳通訊,并可以擁有和運行資源組。
- 暫停。此時的節點是完全有效的群集成員。它遵從群集數據庫的更新、對仲裁算法施加自己的影響、維護心跳通訊,但它無法接受資源組。它只能支持它當前已擁有的那些資源組。之所以提供暫停狀態,是為了允許執行某些維護。大多數服務器群集組件會將聯機和暫停視為等價的狀態。
加入群集
如果一個服務器要加入現有群集,則它必須運行群集服務并且必須成功找到群集中的其它節點。在找到其它節點后,加入的服務器必須接受群集成員資格驗證,并獲得群集配置數據庫的副本。
加入現有群集的過程開始于WindowsServer2003或Windows2000ServiceControlManager在節點上啟動群集服務之時。在啟動過程中,群集服務會配置并裝入該節點的本地數據設備。它并不會試圖將共用的群集數據設備作為節點聯機,因為現有群集可能正在使用這些設備。
為了查找其它節點,會啟動一個發現過程。當節點發現任何群集成員時,它將執行身份驗證序列。***個群集成員會對新加入者進行身份驗證,并且在新服務器得到成功驗證后返回成功狀態。如果驗證不成功(未能識別待加入節點的群集成員身份,或者它使用了無效的帳戶密碼),則加入群集的請求會被拒絕。
進行成功驗證后,首先聯機的群集節點會檢查加入節點上的配置數據庫副本。如果該副本已過時,對加入服務器進行驗證的群集節點會為加入的服務器發送該數據庫的更新副本。剛加入群集的節點在收到復制的數據庫后,可以用它查找共享資源并根據需要將它們聯機。
脫離群集
當節點關閉或群集服務被停止時,節點可能脫離群集。但當節點不執行群集操作(比如不向群集配置數據庫提交更新)時,節點也可能被迫脫離(被逐出)群集。
如果節點根據預先的計劃脫離群集,它會向其它所有節點成員發送ClusterExit消息,通知它們它將脫離群集。該節點不等待任何響應就會立即進行關閉資源和所有群集連接的操作。由于其余節點收到了退出消息,因此它們不會執行在節點意外失效或網絡通訊停止時發生的重新分組過程以重新確立群集成員身份。