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