WSFC2016 VM順序組與管理組

  在我們管理虛擬化場景或羣集應用場景時,可能經常會碰見一個需求,即依賴性順序,開發人員可能會需要保證一系列聯合工作虛擬機或羣集應用的啓動順序,確保最底層需要的資源啓動後,再按照順序陸續啓動其它資源。


  針對於依賴性啓動的需求,如果是在沒有羣集的單機Hyper-V場景下,我們可以通過設置虛擬機的自動啓動屬性來解決此問題,例如,一套sharepoint環境,有DC,DB,AP,WEB,我們可以依次設置各虛擬機自動啓動的延遲時間,0,30,50,80。這樣做了之後,在單機情況下,當宿主機重新啓動,可以按照延遲順序逐步啓動虛擬機以達到依賴性啓動的需求,但這項設置僅限單機使用,當我們將虛擬機移動至其它節點,則自動啓動延遲設置失效,需要每次重新設置

wKiom1mr13HgQVQjAAFTCvIpp1s365.jpg

虛擬機遷移至其它節點後設置失效

wKiom1mr2CPQICICAAFW0lCD4v4289.jpg

WSFC2012時代優化了羣集優先級功能,我們在2012時代,通過羣集優先級也可以完成控制羣集應用的依賴性啓動,針對於羣集優先級老王在日常管理操作篇博客做了詳細介紹,大家感興趣可以去看,在羣集中點擊VM或其它羣集角色,可以看到更改啓動優先級的選項,設置之後,羣集角色會按照高中低順序啓動,針對於不自動啓動,則在故障轉移後需要管理員手動啓動。


優先級設置在節點冷啓動,移動至最佳節點,故障轉移,維護模式下都會生效,優先級設置幫助確定好遷移或啓動順序,羣集依據放置規則執行操作,優先級設置是羣集級別,不會因爲羣集角色遷移到其它節點而失效,不僅可以針對虛擬機設置,也可以針對需要聯合工作的羣集角色設置

wKioL1mr2OvgviQhAADk7ZSUXHI312.jpg

本場景中,我們設置四個虛擬機的優先級別,分別爲,高,中,低,低。

wKioL1mr2gDxMDE6AABrlbic8ko448.jpg

直接關閉HV02,可以看到虛擬機已經被遷移至HV01

wKiom1mr27vyXjqNAACDVpGj2l4743.jpg

直接看cluster log可以看到優先級處理過程

wKioL1mr3cvSs_ocAAKRR3hrj24196.jpg


wKioL1mr30jjprETAAGDFVBA_tA422.jpg


wKiom1mr39vCqFjgAAEXdK6PG9A564.jpg


wKioL1mr4Jjy4QDsAAiAkkPZ5x4536.jpg

通過查看clusterlog我們可以看出,優先級設置是生效的,當故障轉移時,會按照我們給定的優先級順序,進行聯機處理虛擬機虛擬機,這在一些場景下是有作用的。


但是也有它所做不到的地方,例如,當我們的依賴關係達到四層的時候,像我們這種DC,DB,AP,WEB的場景下,就只好設置WEB和AP都爲低,這樣兩個應用就會隨機起來,而不能完全滿足我們對於依賴性啓動的需求。


而且在2012時代開始,如果我們對於虛擬機設置爲低優先級還是有一定風險的,例如,如果我們發生故障轉移,高優先級的虛擬機如果因爲沒有資源而無法被放置啓動,是會關機回收低優先級虛擬機資源的,如果您的環境資源很足夠,當然不會發生這種問題,但如果服務器資源有限就需要注意了。


還有一點,根據老王的觀察,優先級啓動這個功能很好,它在幫助我們編排羣集資源的處理順序方面很好,可以幫助我們很好的解決啓動風暴的問題,可以在資源有限的情況下確保高優先級的資源始終優先啓動,這項功能它可以工作的很好,但是對於依賴性啓動,老王認爲優先級設置還有待提升,其一是隻有三層依賴關係可以設置,其二是依賴性啓動處理的不夠明顯,大家看clusterlog就能看出,各個虛擬機的聯機處理時間挨着很近,即是說可能會發生一種情況,DC可能沒完全啓動起來,只是虛擬機資源聯機了,但是系統沒完全啓動起來,SQL就開始聯機啓動了,這樣依賴性啓動意義也就不大了,因爲優先級設置沒辦法控制依賴性啓動的間隔,例如沒辦法控制高優先級啓動多長時間後,再啓動中優先級。


優先級設置這項功能,在老王看來,屬於羣集的一種附屬功能,它是在維持羣集可用性的情況下的一種策略設置,只是負責確定一個順序,但是當計劃內,計劃外移動轉移發生時,它做的只是快速確定順序,然後羣集快速按照它確定好的順序進行放置處理羣集資源。


在WSFC2016時代,針對於羣集資源管理,推出了順序組的功能,簡單來說,我們現在可以自己定義羣集虛擬機或羣集角色之間的依賴關係了,想創建多少層依賴關係,就創建多少層,每層依賴關係對應的是一個個的順序組,每個順序組裏面可以有多個虛擬機或羣集應用,當我們創建依賴關係,是基於順序組的級別去創建依賴關係,一項重要的改變是,當我們使用新的順序組功能時,每個順序組啓動後,默認會等待20秒的時候,當一個依賴順序組啓動後,等待20秒再啓動下一個順序組,這個等待時間可以更改,此功能爲羣集級別,不論虛擬機遷移到其它任何節點都會生效,因此我們可以說,這是項真正的依賴性啓動處理解決方案。


整理下思路,我們現在有了順序組功能,我們可以手動去創建順序組,每個組裏面可以包括多個虛擬機或羣集角色。構建完成順序組後,我們可以在羣集上手動創建依賴關係,指定一層一層的順序組依賴關係,最終,應該當我們要啓動最底層依賴關係的一臺虛擬機,會檢測到上一個依賴順序組虛擬機還沒啓動,上層虛擬機要啓動又需要最上層順序組,結果所有虛擬機按照順序啓動,每一層虛擬機啓動後,默認都會等待20秒再啓動下一層順序組中虛擬機,該時間可控。


wKiom1mr5X7hA2EoAABoChDWZJ4731.png

VM順序組配置相關Powershell命令



創建管理順序組

New-ClusterGroupSet: 創建一個順序組

Get-ClusterGroupSet: 獲取當前順序組

Set-ClusterGroupSet: 配置順序組設置

Remove-ClusterGroupSet: 刪除一個順序組

Add-ClusterGroupToSet: 添加VM或其它羣集角色至順序

Remove-ClusterGroupFromSet: 從順序組中刪除VM或其它羣集角色


配置順序組內依賴關係

Add-ClusterGroupDependency: 添加順序組內虛擬機的依賴關係

Get-ClusterGroupDependency: 獲取順序組內虛擬機的依賴關係

Remove-ClusterGroupDependency: 刪除順序組內虛擬機的依賴關係


配置順序組間依賴關係

Add-ClusterGroupSetDependency: 添加跨順序組之間的依賴關係

Get-ClusterGroupSetDependency: 獲取跨順序組之間的依賴關係

Remove-ClusterGroupSetDependency: 刪除跨順序組之間的依賴關係




#創建順序組

$Cluster = "pecluster.oa.com"

New-ClusterGroupSet -CimSession $Cluster -Name "DC"

New-ClusterGroupSet -CimSession $Cluster -Name "SharepointDB"

New-ClusterGroupSet -CimSession $Cluster -Name "SharepointApp"

New-ClusterGroupSet -CimSession $Cluster -Name "SharepointWeb"

wKiom1mr6WGRWH1hAAGTcKIijs4894.jpg

可以看到老王之前說過的20秒等待時間,即當前順序組啓動20秒後,再啓動其它順序組,例如,如果您知道,某些順序組啓動時間會很長,例如SharepointDB虛擬機,那麼您就可以單獨設置它的等待時間長一些,例如我們手動設置爲30秒,即依賴於SharepointDB的順序組,需要等待30秒,SharepointDB啓動後,再啓動下一層。

wKioL1mr6kqBn-UuAACglHv3-Zk548.jpg

其它參數介紹


StartupDelayTrigger 定義了當開始依賴關係處理時,對於順序組的處理方式


Online :不進行等待時間,只要資源狀態變爲聯機就啓動下個順序組

Delay:默認設置,等待StartupDeplay設置的時間到了才啓動下個順序組


StartupCount  定義開始處理依賴關係之前,順序組內必須已經經過延遲上線的角色數量

只有組內所有角色都經過延遲上線後才處理後面(默認)

0 只要組中大部分角色都上線就處理後面順序組

N 用戶自行定義順序組中啓動多少角色可以處理後面順序組


IsGlobal :有趣的參數,假設您構建了很多個順序組,您的羣集裏面有DHCP,Fileserver,DC虛擬機等基礎架構角色,那麼您可以把它們順序組設置爲IsGlobal=1,這樣設置之後,依賴關係將always always 第一聯機IsGlobal=1的順序組,再處理其它的,適用於羣集裏面多個基礎架構服務,其它順序組都對它們有所依賴的場景。


#示例:Set-ClusterGroupSet -name ServerInfra -IsGlobal 1



當前我們創建完了順序組,羣集知道你有這樣一個規劃了,但是順序組裏面沒有資源,現在是空的,我們需要把對應的虛擬機或其它羣集角色添加進去


#添加虛擬機至順序組


#DC

Add-ClusterGroupToSet -CimSession $Cluster -Name DC -Group "DC"


#SharepointDB

Add-ClusterGroupToSet -CimSession $Cluster -Name SharepointDB -Group "SPDB"

 

#SharepointApp

Add-ClusterGroupToSet -CimSession $Cluster -Name SharepointApp -Group "SPAP"

 

#SharepointWeb

Add-ClusterGroupToSet -CimSession $Cluster -Name SharepointWeb -Group "SPWEB"


這裏的Name是順序組的名稱,後面Group是虛擬機名稱,如果是其它羣集角色則也添加羣集角色名稱,這裏每一個順序組中可以添加多個虛擬機或羣集角色,老王這裏只添加一臺作爲測試,如果您在一個順序組中添加了多臺虛擬機或羣集角色,那麼您還可以配置順序組內的依賴關係。

wKioL1mr663ScHN0AACgvdGc7yA505.jpg

#查看順序組,可以看到順序組中各成員

wKioL1mr7F3DcQvsAADmgDBxClQ625.jpg

OK,三步走,創建順序組,添加各順序組成員,接下來該創建順序組之間依賴關係了


#創建順序組之間依賴關係

 

Add-ClusterGroupSetDependency -CimSession $Cluster -Name SharepointWeb -Provider SharepointApp

Add-ClusterGroupSetDependency -CimSession $Cluster -Name SharepointApp -Provider SharepointDB

Add-ClusterGroupSetDependency -CimSession $Cluster -Name SharepointDB -Provider DC

wKiom1mr7SHTow9bAACWh3H-WWE010.jpg

#獲取羣集內順序組之間依賴關係

wKioL1mr7VHiadULAADwkcoeLPQ139.jpg

根據老王的測試,發現順序組依賴功能僅在羣集節點冷啓動下生效,即是說,只有在節點關機開機時,我們創建的這套依賴關係纔會生效。本例中,我們將虛擬機全部關機,然後啓動SharepointWEB,看看會不會根據依賴關係自動把其它虛擬機都啓動起來

關閉所有虛擬機

wKiom1mr7k_Cssd8AADUuZiGXsY263.jpg

啓動SPWEB

wKiom1mr7oXgP3_fAAA9ous-ApU795.jpg

可以看到,已經按照我們構建的依賴關係進行逐步喚醒各個依賴順序組,並喚醒各個順序組中虛擬機,每喚醒一個依賴順序組後,都會按照該順序組設定的開機等待時間,等待時間到了纔會繼續喚醒下個順序組。

wKioL1mr7ozhoI7bAADcpPero3U300.jpg

確保所有依賴關係順序組都已經啓動完成,最終SPWEB纔會啓動

wKioL1mr7qaB2ubhAAB9QJSm9cg800.jpg

wKiom1mr7x_x8tnkAADJeqsT3Fg772.jpg

查看clusterlog可以看到順序組依賴工作過程


設置順序組及依賴關係,羣集DM記錄信息進入羣集數據庫,並通過GUM同步至所有節點

wKiom1mr-fixdSxZAAUYJPAiQIE603.jpg

wKiom1mr-fiwTKfvAAL6eI-O5g0203.jpg

羣集通過RCM操作處理順序組依賴啓動功能


wKiom1mr-iCSUmX_AACnKF7W3l0773.jpg


wKiom1mr-iCTNsyLAAGBv3Pvu98896.jpg


wKioL1mr-gaSul45AAFCSwJR1j0705.jpg


wKioL1mr-rSx9pncAACwfwPh19s290.jpg

通過以上實驗相信大家可以看出順序組依賴關係這項功能是怎麼回事了,可以說這是一項真正解決羣集應用依賴啓動問題的功能,我們自己構建順序組及依賴關係,虛擬機關機再開機時,RCM遵照我們的構建進行操作處理,實質上,RCM處理依賴關係,首先看的是順序組,我們實現這樣一套自己構建的東西后,實際羣集操作的依賴關係是按照順序組爲單位進行操作,然後幕後順序組再對應到虛擬機或羣集角色,我們完成虛擬機到順序組的映射,順序組到依賴關係的映射,最後使本來不具備依賴關係功能的虛擬機應用上依賴關係功能


總結下順序組依賴功能的利與弊


  1. 羣集級別功能,單臺配置,全羣集生效,配置信息記錄至羣集數據庫同步至全羣集節點及仲裁磁盤

  2. 不僅可以應用於虛擬機,還可以應用於其他羣集角色

  3. 可以任意構建依賴關係模型,支持跨順序組之間構建依賴關係,也支持順序組內構建依賴關係,可以手動調整順序組延遲啓動時間,依賴延遲操作,較爲靈活,適用於真正有依賴啓動需求的場景

  4. 缺點,只能是節點冷啓動,或虛擬機關機開機時依賴關係纔會生效,手動移動至最佳節點,維護模式不會生效,希望以後維護模式,手動移動至最佳節點也可以用上就厲害了,這樣如果跨站點遷移的話,當我們遷移Web,就會也把DB,AP也一起遷移過去


2016裏面除了針對於羣集的順序組,還有個針對於虛擬機的管理組功能,老王特定把這兩個功能拿到一起來講,怕大家給它們兩個弄混


首先,兩者最大的一個區別,順序組是2016羣集的功能,VM管理組是2016Hyper-V的功能,順序組主要爲了解決資源啓動時的依賴關係問題,VM管理組主要是解決虛擬機批量管理的問題


簡單來講,VM管理組,是我們在Hyper-V 2016上面創建出來的一個邏輯的組,它的主要作用


  1. 同一個VM管理組內虛擬機可以一起進行Hyper-V複製

  2. VM管理組支持嵌套管理組進行管理操作

  3. Hyper-V 2016中使用Shared Drive的虛擬機支持Hyper-V複製,但需要依賴於VM管理組功能


#創建VM管理組

New-VMGroup -Name "DC" -GroupType VMCollectionType

New-VMGroup -Name "SPDB" -GroupType VMCollectionType

New-VMGroup -Name "SPWEB" -GroupType VMCollectionType

New-VMGroup -Name "SPAP" -GroupType VMCollectionType

wKiom1msBX3x2FEwAAEjMN_QmAc308.jpg

#添加虛擬機進入VM管理組 ,可以添加多個虛擬機進入同一個管理組,()後面逗號隔開繼續輸入即可

Add-VMGroupMember -Name "DC" -VM (Get-VM "DC")

Add-VMGroupMember -Name "SPDB" -VM (Get-VM "SPDB")

Add-VMGroupMember -Name "SPAP" -VM (Get-VM "SPAP")

Add-VMGroupMember -Name "SPWEB" -VM (Get-VM "SPWEB")

wKioL1msBhvTQ62bAACD291M9Iw671.jpg

#獲取VM管理組中虛擬機

(Get-VMGroup -Name "SPDB").VMMembers

wKiom1msByXhAPnAAABUz43rLA8472.jpg

#獲取宿主機所有虛擬機的管理組信息

Get-VM | FT Name, Groups

wKiom1msB0fDJq0PAABUz43rLA8089.jpg

同一個VM管理組中可以有多個虛擬機,同一個虛擬機可以屬於多個管理組


由於Hyper-V複製不允許羣集內,只允許單機對單機,單機對羣集,或羣集對羣集,所以老王暫時把HV02退出羣集節點,勾選允許作爲複製副本,羣集開啓hyper-v replica boker角色,允許作爲複製副本


#基於組級別創建VM複製關係

Enable-VMReplication -VM (Get-VMGroup SPDB).VMMembers -ReplicaServerName HV02 -ReplicaServerPort 80 -AuthenticationType Kerberos -CompressionEnabled 1 -ReplicationFrequencySec 30 -AutoResynchronizeEnabled 1


wKioL1msDZDyuBqZAABlvWrazxM485.jpg

#查看複製狀態

wKiom1msDkmBWPs8AAE29nQuUD4211.jpg

VM管理組除了VMCollectionType這種組類型,還有一種ManagementCollectionType組類型,當我們如果需要嵌套管理組資源則需要創建這種VM管理組類型


#創建VM管理組ManagementCollectionType類型

wKioL1msDvmiSFZdAAB9zdjKx_k857.jpg

#嵌套添加VM管理組至新類型管理組中

Add-VMGroupMember -VMgroup (Get-VMGroup "MGroup") -VMGroupMember (Get-VMGroup "DC"),(Get-VMGroup "SPDB"),(Get-VMGroup "SPAP"),(Get-VMGroup "SPWEB")

wKioL1msEFyBSeSrAABkIvPKqUc018.jpg

#獲取嵌套VM管理組架構

wKiom1msEI-ChHrtAAE2BOG7Bgk073.jpg

#嘗試針對於嵌套VM管理組啓動複製,發現不成功,也在意料之內,Hyper-V複製應該是隻支直接組內就是虛擬機的類型,否則獲取不到VM參數即不成功。

wKiom1msElrQIQ1iAAEpb8vLxwo929.jpg

至此,老王爲大家簡單介紹了下VM管理組功能,這是一項Hyper-V 2016的功能,只不過都是和組相關,特地拿出來說下,可以看到VM管理組的功能,主要定位於Hyper-V層面,可以針對於組級別進行復制操作,可以進行嵌套組管理,目前看來功能還不是很多,老王看來目前爲止,主要的意義在於,針對於組級別做Hyper-V複製,可以解決原來share vhdx虛擬機不能複製的問題,期待日後更多Hyper-V的管理操作也可以通過這種管理組的方式批量操作,這項功能英文叫VM Group,老王將它翻譯爲VM管理組,因爲老王這項功能更側重與管理,如果單說組過於抽象,也和順序組功能區別開,本篇文章就到這裏,希望看到的朋友都會有收穫,後續幾篇還將繼續微軟WSFC 2016管理操作方面的新功能進行講解,一切都是剛剛開始

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章