WSFC 維護模式操作粒度控制
回顧一下WSFC的維護模式運作流程,此處以WSFC 2012開始為例,在WSFC 2012之前,群集的維護模式僅能暫停節點,但無法自動移動負載
1.手動放置節點為暫停模式
2.節點根據群集角色優先級,參考放置策略,依次排水處理群集負載至合適節點
3.負載都排水到該去的節點後,節點宣告為暫停,不接受任何負載的遷移
4.維護完成後參考放置策略故障回復負載至合適節點
知識補遺
如果在排水過程中,單臺虛擬機無法執行移動,不會影響整體排水的進度,其它虛擬機和負載會繼續正常執行排水,當排水結束後,報告排水失敗狀態
一旦節點被置為暫停模式,重啟之後也依然會是暫停狀態,除非管理員手動解除暫停
如果排水過程很長,或勿操作了節點,支持取消排水操作,取消排水後,已排水出去的負載,可以通過暫停模式故障回復至原節點
我們今天主要關註的是維護模式下的優先級粒度控制,自WSFC 2012開始,維護模式開始和放置策略深度整合,包括優先級,首選所有者,默認所有者,可能所有者,反相關性等,不論是暫停排水或是故障回復,都會參考上述放置策略進行完整的評估,進而選擇合適的節點。
其中比較有趣的一點是維護模式和優先級的整合
默認情況下,WSFC 2012開始優先級設置在以下場景生效
1.群集節點關機開機時,優先聯機上線高優先級應用
2.節點置為維護模式時,優先遷移處理高優先級應用
3.節點故障轉移時,優先轉移高優先級應用
這是大多數人都知道的,但事實上在WSFC 2012開始優先級和維護模式還有個有意思的整合,事實上優先級的設置竟然可以決定維護模式時候虛擬機的排水操作
自WSFC 2012開始,虛擬機資源類型開始多了一個MoveTypeThreshold屬性,通過該全局群集屬性,即可以決定排水時虛擬機的排水操作,默認群集全局策略,是針對於高優先級虛擬機 和 中優先級虛擬機 執行實時遷移,針對低優先級虛擬機執行快速遷移,這樣做的目的是為了確保更高優先級的虛擬機首先獲得遷移,正常提供服務,而不會因為低優先級虛擬機影響進度
WSFC 2012中MoveTypeThreshold默認值為2000,即意味著,當發生維護排水時,大於等於
#查看全局策略
Get-ClusterResourceType “Virtual Machine” | Get-ClusterParameter MoveTypeThreshold | fl *
默認情況下,如果我們不對優先級做任何設置,所有虛擬機的優先級都為中,即意味著不區分所有虛擬機優先級,這就可能當維護時候,可能優先遷移處理了不重要的角色,如果希望區分出群集負載優先級,建議針對重要的負載設置優先級為高,中,不重要的設置為低,有序排列群集負載,這樣當發生維護或故障轉移時,高優先級的資源首選會被處理上線提供服務,當我們設置了優先級後,維護模式操作控制則有意義
如果是虛擬化群集的話,上面托管了很多虛擬機,一些是重要的,一些是不重要的,我們就可以控制那些虛擬機在維護模式下獲得實時遷移,那些虛擬機獲得快速遷移,實時遷移能夠保證遷移時不中斷提供服務,完整內存頁和增量內存頁都會被傳遞,快速遷移只是把虛擬機保存,然後發送到另外節點再開啟,相對來說,如果實時在用的虛擬機,快速遷移更改,因為不需要等待所有增量內存頁同步完成,實時遷移雖然可以保證最高可用時間,但是一旦虛擬機實時再用,遷移過程有時會很慢。
我們通過這樣的粒度控制,可以讓低優先級虛擬機通過,快速遷移快速的完成維護排水,更多網絡帶寬留給實時遷移虛擬機使用,避免資源爭搶。
#修改全局策略
Get-ClusterResourceType “Virtual Machine” | Set-ClusterParameter MoveTypeThreshold 1000
群集全局的維護排水操作支持以下四種配置策略
如設置為1000,則除設置為不自動啟動虛擬機外,所有低中高優先級都將獲得實時遷移
如設置為2000,則高和中優先級虛擬機獲得實時遷移,低優先級虛擬機獲得快速遷移
如設置為3000,則高優先級虛擬機獲得實時遷移,中和高優先級獲得快速遷移
如設置為3001,則維護模式下所有虛擬機都將執行快速遷移
以上我們介紹的群集維護模式操作策略是針對於全局的設置,即群集內所有虛擬機默認都需遵守此策略
我們也可以針對某個虛擬機單獨設置排水操作策略,WSFC 2012開始,所有群集虛擬機多出一個DefaultMoveType屬性
DefaultMoveType參數值及其行為:
-1(4294967295) | 使用全局設置(MoveTypeThreshold) |
0 | 關閉虛擬機 |
1 | 保存虛擬機(快速遷移) |
2 | 關閉虛擬機 |
3 | 關閉虛擬機(強制) |
4 | 實時遷移虛擬機 |
#獲取虛擬機默認DefaultMoveType值
Get-ClusterResource "虛擬機 HQ-SPDB” | Get-ClusterParameter | ft Name,Value
可以看到,默認虛擬機設置為4294967295,即遵守群集維護模式操作全局策略,由群集根據全局策略自主分配虛擬機維護模式操作
我們也可以打破這層繼承關系,針對某個虛擬機單獨設置粒度的排水操作,設置完成不需重啟節點,下次維護即生效
Get-ClusterResource "虛擬機 HQ-SPDB” | Set-ClusterParameter DefaultMoveType 4
WSFC 維護模式操作粒度控制