WSFC 狀態操作指南
首先我們先從節點操作講起
以WSFC 2012R2為例,當我們在故障轉移管理器,節點界面下,點擊任意一個節點,右鍵可以看到以下操作
暫停
恢復
遠程桌面
信息詳細信息
顯示關鍵事件
首先來看暫停,自2012開始,暫停不僅僅只是宣告節點為維護狀態,而是可以根據放置策略,自動把被暫停節點上的負載移至其它節點,此操作主要適用於節點維護場景,例如,節點OS不穩定需要進行排錯,為了避免影響上面的群集應用,先把應用飄走,再進行排錯,或者需要關機加硬件配置,也可以先將節點置為暫停,應用移走,關機加配置,加好之後再開機解除暫停狀態,依次操作各節點
總結來說,暫停操作主要用於計劃內維護場景,即是說,我們知道將要發生維護操作,節點將要不可用,那麽我通過暫停操作,就可以以最小停機時間的方式把資源遷移走,再執行維護
默認情況下2012時代開始,暫停模式有兩個選擇,一為排出角色,二為不排出角色,排出角色為2012新功能,即按照放置策略將節點上面應用放置到合適節點,不排出角色為2008舊選項,即只宣告節點為暫停,不接受資源遷移到本節點,上面資源不會被移走
排出角色,在2012時代開始,默認情況下暫停節點針對於虛擬機執行實時遷移操作,群集角色執行在線移動操作,上篇文章老王曾經講過,群集維護,暫停模式可以和優先級相整合,例如,節點暫停維護,高和中優先級虛擬機獲得實時遷移,低優先級虛擬機獲得實時遷移,在資源不足的場景下,通過此配置,可以始終確保更主要的虛擬機獲得最高的可用性和遷移性能,參考老王博客
說完暫停我們再來看下恢復,恢復同暫停正好相對應,當我們置為暫停,維護完成後,勢必需要節點重新正常提供服務,在2008時代,恢復僅意味著解除節點的暫停狀態,讓節點可以接受資源被遷移過來,2012之後此舊操作顯示為不故障回復角色。2012時代開始,恢復操作新增故障回復角色,恢復和暫停相互粘合,當我們把節點置為暫停後,資源會被遷移至其它節點,當節點完成後,我們可以選擇故障回復角色,讓被遷移走的資源回到原來的節點正常運作,此暫停故障回復,也參考放置策略,會考慮首選所有者,反相關性,可能所有者等策略,如果節點當前正在首選所有者則不會回復,如果節點上面已有反相關性資源則不會回復,如果維護後原節點從資源的可能所有者剔除,則不會回復。
在一些場景下,開發人員或業務人員可能會對群集角色或虛擬機有所要求,例如某個資源只能在某個節點上面運行,對於一些重要的資源,當然還是穩定為好,能在原來的節點運作就繼續回到原來節點運作,此場景下適用恢復角色功能,2012時代開始,大家作為群集管理員,只要有這種意識就好,計劃內維護,就點一下暫停節點,遷移角色,維護完成後點一下恢復節點,遷移回群集角色
遠程桌面其實也是個有用的功能,例如群集節點很多,可能16個節點,32個節點,群集管理員每天會打開群集管理器進行配置,巡檢,如果發現節點有問題,可以直接在故障轉移管理器中對節點發起一個遠程桌面,只要節點遠程端口正常工作就可以直接遠程過去
信息詳細信息,主要顯示對於資源或節點執行操作失敗,失敗的原因是什麽
顯示關鍵事件,主要用於聚合當前節點或資源的關鍵事件,2008開始,群集對於大部分資源都會置備這種資源特定的事件管理器篩選,我們點擊某個節點,或某個資源,顯示關鍵事件,顯示的就是僅當前節點或當前資源的事件。
針對於節點操作除了上述之外,還有一個更多操作,裏面分別是啟動群集服務,停止群集服務,逐出節點
啟動群集服務,通常用於之前由於某些操作,例如要進行排錯,手動停止了群集服務,排錯完成後可以通過GUI啟動群集服務,或通過命令行
net start clussvc啟動
停止群集服務,也是用於一些特殊場景,正常情況下我們不需要用到它,例如群集應用如果轉移到某個節點無法正常工作,我們可以通過取消可用所有者,或在這裏停掉該節點的群集服務,在WSFC 2016之前,群集服務的停止,即意味著故障轉移,如果一個節點的群集服務停止,下次運行狀況檢測將報告該節點不可用,上面的所有應用或虛擬機將執行計劃外故障轉移操作。WSFC 2016開始,群集推出VM防瞬斷功能,可以防止瞬斷情況導致虛擬機快速遷移,例如如果是一個網絡瞬斷,或群集服務崩潰停止,只要在一定時間內可以恢復,則不會觸發快速遷移操作,因為快速遷移會為虛擬機帶來停機時間,如果您不需要VM瞬斷功能
關閉即可 (Get-Cluster).ResiliencyDefaultPeriod =0
逐出節點,則意味著將節點徹底從群集的可用節點中剔除,已逐出節點永遠不建議再重新加入群集,逐出節點通常用於以下場景
重命名群集節點
用不同硬件替換節點
節點重新安裝操作系統
永久在群集中刪除節點
通常來說,逐出節點是一個簡單粗暴的解決問題方式,但它絕不是一個排錯的途徑,如果你能確認,就是因為這臺節點的OS不穩定有問題,那麽您可以把它從群集中逐出,新加一個節點進來,或者逐出之後重做系統,再以一個新的節點名稱加入進來。
這種方式雖好,但有時並不能真正的解決問題,有時候我們以為是一個節點的問題,但其實是群集資源的問題,可能我們即便逐出了節點,再新加節點還是會遇到此問題,因此建議不輕易做逐出節點,除非我們判定問題原因,最後執行逐出操作,還是應該先對問題進行判定分析
常見的逐出誤區
群集服務不能啟動,逐出了節點2,但是群集服務仍然不能啟動
資源不轉移到節點2,每次發生故障轉移時,磁盤都不會聯機,無法返回到節點1,其中一個節點被逐出再添加一個節點仍然有此問題
一旦發生這種排錯情況,建議查看cluster.log及dump文件進行分析,找到問題真正所在,也許根源是因為RHS死鎖或某個第三方軟件兼容性的問題,在真正判定問題之前不要輕易執行逐出節點操作,否則排錯時可能無法完整重現問題
以上為GUI界面上針對於節點的所有操作,還有一些場景下的操作,幫助大家熟悉下流程
節點開關機
暫停節點 2.關閉操作系統 3.開機操作系統 4.恢復節點
以上為的群集節點開關機標準正常流程,還有一些意外情況,例如群集上面可能跑了一些特殊角色,開機後需要執行一段程序,才可以正常跑群集角色,那這個步驟可以在第4個步驟前做掉
WSFC 2012R2開始,針對於群集虛擬機新增了一個屬性DrainOnshutdown
如果我們忘記執行暫停節點,直接關閉虛擬機,WSFC2012R2開始,會自動按照維護模式操作策略,幫助我們自動將虛擬機實時遷移或快速遷移至其它節點,群集其它角色則采用移動掛起操作,所有資源都移走後,操作系統才正常完成關閉操作,該功能也被稱為“懶人幫手”,一旦我們忘了暫停節點,背後也會有一個這樣的幫手,幫助我們去完成維護操作。
節點故障轉移
1.節點宕機 2.其它節點檢測註冊表 掛載共享存儲聯機上線 3.節點恢復 4.故障回復群集角色
對於群集故障轉移,這裏特別要說的是故障回復,這是個老古董了,從2003時代就看到它,故障回復必須和首選所有者功能相配合,這點和最初一模一樣,即是說如果應用當前在節點1,節點1宕機,應用去節點2,如果希望節點1恢復後應用回到節點1,則應用必須設置首選所有者為節點1,故障回復操作可以為立即或某一時刻,如果應用對於宿主有要求,需要始終在某一節點運作,可以配置故障回復,以便在計劃外故障轉移後故障回復,2008時代對於虛擬機故障回復采用快速遷移,2012時代開始故障回復采用實時遷移。
看過節點級別的操作後,我們再來看下群集級別的操作,老王將主要介紹以下操作
關閉連接,無實際操作效果,點擊關閉連接後,只是在當前故障轉移群集管理器中,刪除顯示已連接的群集,假設這時一個群集節點,會有不懂的人來碰你的群集,那麽為了避免它誤操作,你可以在他操作之前關閉群集連接
關閉連接之後,如果再想連接到群集,點擊連接到群集即可
關閉群集,關閉所有群集角色,關閉所有群集節點的群集服務,如果群集中有很多節點,可以通過此操作幫助我們關閉全部,關閉後群集對外不可用,如果希望群集各節點暫時失去群集作用可以執行此操作
針對於虛擬機群集資源,自2008開始,可以設置虛擬機在群集關閉的情況下要執行的操作,默認為保存虛擬機
數值 | 效果 |
0 | VM直接斷電 |
1(默認) | VM保存 |
2 | VMOS正常關機 |
3 | VMOS強行正常關機 |
Get-ClusterResource "虛擬機資源群集名稱" | Set-ClusterParameter OfflineAction 2
若要恢復群集工作,點擊啟動群集即可,群集虛擬機默認會從保存狀態中還原,群集角色會從脫機中聯機
銷毀群集,拆掉整個群集,刪除掉群集所有角色和元數據信息,通常用於測試環境,或重新部署群集,和關閉群集一樣,輕易不建議使用,一旦群集被銷毀後,如果需要在該節點再次搭建群集,有時需重新安裝群集功能
在執行銷毀群集之前,請確保群集所有角色已被刪除,虛擬機已經導出到其它位置,需要註意,在銷毀群集過程,虛擬機如果是存放在共享磁盤和CSV,則會被徹底關閉,但不會丟失數據,虛擬機的數據會存放在CSV中,重建群集之後,虛擬機可以被重新掛載上線,但是銷毀後,重建前,虛擬機將不可用。
如果銷毀群集時,群集內仍有未被刪除的虛擬機或角色,將提示以下錯誤
關於銷毀群集的註意事項
銷毀群集時所有節點需要在線,如果銷毀群集時有1節點不在線,隨後該節點又加入其它群集,將顯示該節點已屬於其它群集,這時需在節點上執行命令
cluster node hv01 /forcecleanup
這將在該節點上面清理掉所有群集舊信息的註冊表,以允許群集加入新的群集
銷毀群集過程幕後會逐出節點群集資格,刪除各節點上關於群集的配置信息註冊表,如果銷毀群集後希望重建群集,重建不成功,請嘗試檢查註冊表配置單元,看是否有殘留舊群集信息,如果有,請清理後再嘗試重建群集。
銷毀之後群集CNO默認在AD中處於禁用狀態,如果希望銷毀群集後直接從AD刪除CNO,可使用PowerShell操作
Remove-Cluster -CleanupAD
移動群集核心資源
群集中的資源大體可分為兩種,一種為群集運作資源,一種為基於群集的應用資源,核心資源也是指群集運作資源,一個群集要想運作起來,需要群集名稱,群集IP,還會有見證資源,在WSFC 2016之前,大體就是這些內容,這些群集運作資源也被放置在一個群集資源組裏面,成為核心資源組,群集過程中會被放置在其中一個群集節點上,我們可以通過圖形界面移動核心資源組至其它群集節點,2012之前僅能通過命令執行,2012之後支持GUI界面執行,2008時代開始群集核心資源組會被單獨放置在RHS監視進程中,放置因為群集其它資源的RHS進程崩潰,而影響整個群集。
群集核心資源通常我們沒必要管它,除非是排錯時會需要移動,或考慮到群集負載平衡的場景,如果一個節點承載了很多應用,則可以把它上面的核心資源移動至其他節點以減輕負擔
WSFC 2016中,群集核心組多出存儲QOS資源和 Virtual Machine Cluster WMI
2012之前,使用命令移動群集核心資源
cluster group “Cluster Group” /Move:NodeName
移動群集可用存儲資源
cluster group “Available Storage” /move
WSFC 狀態操作指南