WSFC 2019 Cluster Set探索

Cluster Set是WSFC 2019中新的技術,將它翻譯成集羣集不太合適,我認爲應該叫它羣集橫向擴展,Cluster Set功能能夠幫助咱們跨多個羣集實現虛擬機的流動,將虛擬化,S2D的規模從羣集擴展至數據中心,統一管理數據中心羣集生命週期,結合本地端可用性集技術實現虛擬機跨羣集故障轉移node


Cluser Set主要應用場景以下跨域


  1. 羣集規模擴展,單個羣集內的虛擬機限制沒法知足企業需求,所以構建多個2019羣集,組成Cluster Set,解除單個羣集限制,仍然能夠統一管理緩存

  2. S2D規模擴展,S2D最多每一個羣集16個節點,能夠經過Clueter Set技術,將4個4節點的S2D羣集組合起來,更好的彈性容許更多計算節點出現故障服務器

  3. 虛擬機跨羣集手動遷移,跨羣集故障轉移,當虛擬機建立放置時能夠評估各羣集負載,選擇合適的羣集放置網絡

  4. 兼容不一樣架構羣集,能夠不一樣成員羣集配置爲不一樣的存儲架構,例如1個羣集爲SAN架構,1個羣集爲S2D架構,實現虛擬機跨域不一樣存儲架構的羣集遷移,Cluster Set技術與CPU兼容技術整合,虛擬機能夠在相同廠商可是不一樣代數的羣集之間遷移架構

  5. 改變羣集生命週期管理,在Cluster Set技術中,若是咱們要替換一個羣集,能夠直接將該羣集中的虛擬機所有遷移至其它羣集,而後從Cluster Set中移除該羣集,卸載掉該羣集角色,羣集主機得以釋放。運維

  6. 帶來可用性集技術,將Azure上面的可用性集技術帶到本地,有專門用於Cluster Set的可用性集新技術,能夠將多個羣集添加到一個故障域中,而後再建立邏輯可用性集技術,凡是放置在可用性集的虛擬機,均會被放置到不一樣的FD故障域,一個FD域是能夠是一個羣集或者是多個羣集,進而實現跨FD故障域的故障轉移,進一步提升高可用性。ide



Cluster Set 新概念及技術核心
工具

群集解决方案视图

看圖說話,Cluster Set技術要想獲得實現,引入的新核心技術有兩個優化


基於WSFC 2019 新SOFS的統一命名空間,全部虛擬機都在一個大的統一命名空間下面跨羣集流動


在WSFC 2019中,SOFS有了新的改變,利用此文咱們進行簡單介紹


  1. 改變CSV數據流嘗試邏輯


      橫向擴展文件服務器(SOFS)依賴於DNS循環來發送到羣集節點的入站鏈接。在Windows Server 2016及更早版本上使用存儲空間時,此行爲可能效率低下:若是鏈接路由到不是羣集共享卷協調節點的羣集節點,則全部數據都會經過網絡重定向到返回客戶端以前的另外一個節點,SMB Witness服務檢測到缺乏直接I / O再將鏈接移動到協調器,這可能會致使延誤。


    在Windows Server 2019中效率更高,SMB服務器服務肯定捲上的直接I / O是否可行。若是能夠直接進行I / O,則會經過鏈接。若是重定向I / O,它將在I / O啓動以前將鏈接移動到協調器。並同步客戶端重定向須要SMB客戶端中的更改,所以只有Windows Server 2019和Windows 10 Fall 2017客戶端在與Windows 2019故障轉移羣集通訊時才能使用此新功能。


2.SMB繞過CSV文件系統


在Windows Server 2016中,SOFS使用存儲空間,客戶端鏈接到SMB服務器與CSV文件系統通訊,CSV文件系統與NTFS通訊。來自遠程SMB客戶端的全部I / O都經過SMB服務器,CSVFS,NTFS和存儲堆棧的其他部分。因爲沒法在REFS上進行直接I / O,所以CSV文件系統僅有助於隱藏存儲故障。這一樣適用於SMB連續可用性。咱們在Windows Server 2019中進行了更改,咱們仍然能夠保留一個隱藏存儲故障的層,但也繞過了CSV文件系統。爲此,SMB服務器從CSVFS路徑查詢REFS/NTFS並直接在REFS/NTFS上打開文件。這些打開的全部I / O將繞過CSVFS並從SMB服務器直接轉到REFS/NTFS


3.新橫向擴展文件服務器角色


Windows Server 2019中有一個名爲Infrastructure File Server的新擴展文件服務器角色。建立基礎結構文件服務器時,它將自動爲CSV驅動器建立單個命名空間共享(即\\ InfraSOFSName \ Volume1)。在超融合配置中,Infrastructure SOFS容許SMB客戶端(Hyper-V主機)與基礎設施SOFS SMB服務器的有保證的連續可用性(CA)進行通訊。故障轉移羣集上最多隻能有一個基礎架構SOFS羣集角色。在Windows Server 2019中使用SOFS時,咱們如今在Infrastructure共享上進行「身份隧道」。從同一羣集或Cluster Set訪問基礎架構共享時,應用程序令牌將被序列化並經過隧道傳輸到服務器,並使用該令牌完成VM磁盤訪問。即便身份是本地系統,服務或虛擬機賬戶也能夠適用


該基礎架構擴展文件服務器角色能夠手動建立 Add-ClusterScaleOutFileServerRole -Cluster MyCluster -Infrastructure -Name InfraSOFSName


或者當咱們建立ClusterSet管理羣集,成員羣集時,將自動建立該角色,此角色是咱們Cluster Set架構的核心

舉例來講,當咱們建立Cluster set管理羣集時,會輸入一個NamespaceRoot名稱,此名稱將做爲整個ClusterSet裏面的總命名空間,當咱們添加成員羣集進來時,也會爲成員羣集自動建立這樣的infrastucture角色,可是命令參數就是InfraSOFSName,每一個被添加進來的羣集InfraSOFSName都不同,可是在整套ClusterSet體系裏面,當咱們在羣集中建立虛擬機時,若是但願虛擬機可以跨羣集流動,那麼虛擬機的路徑必定是\\NamespaceRoot\每一個成員羣集的InfraSOFSName名稱,所以管理羣集上的Namespaceroot扮演的是一個引用做用,不實際存儲虛擬機 全部羣集的虛擬機想要調用存儲都是訪問這個總命名空間,再由總命名空間指向各個羣集名稱,經過這樣的跨羣集命名空間技術,以實現虛擬機的跨羣集遷移。


須要思考的是每一個羣集的都是各自的存儲,並不是整個ClusterSet使用的是一套存儲,若是一套成員羣集掛了,虛擬機能夠故障轉移到成員羣集,可是其它羣集上面沒有到存儲的權限,也沒辦法聯機上線虛擬機,所以考慮到存儲的跨羣集容錯,能夠在跨羣集之間使用存儲複製,這樣能夠徹底作到虛擬機放心的跨羣集流動。


雖然是統一的命名空間,但這不是DFSN,是SOFS新的羣集命名空間技術,它是一種輕量級引用機制,在此預覽版本中新引入的類型爲「SimpleReferral」。此引用容許SMB客戶端訪問成員集羣SOFS上託管的目標SMB共享,管理羣集NamspaceRoot不參與IO路徑,SMB引用將永久緩存在每一個客戶端節點上,而且Cluster Sets命名空間基礎結構會根據須要動態自動更新這些引用


SOFS說完了,老王認爲這是ClusterSet架構中最很差理解的一塊,官網的資料對這裏沒有進行過仔細的說明,若是你們直接去看官網的ClusterSet可能會有點暈,所以老王將這最很差理解的一塊拿來和你們掰開揉碎


ClusterSet技術得以實現 一方面是經過SOFS實現全部羣集在一個跨羣集的命名空間下面流動

另一點是實現了羣集與羣集之間的管理控制


引入管理羣集與成員羣集概念


管理羣集,負責管理協調各個成員羣集資源,各個成員羣集向管理羣集彙報資源狀況,管理羣集偵測各個成員羣集健康情況,負責運營掌管羣集命名空間頂級架構

咱們建立ClusterSet的羣集就做爲管理羣集,除了運營命名空間,每一個管理羣集上面還將維護Scaleout Master的羣集類型,管理羣集經過master角色協調各個成員羣集,例如檢測各個成員羣集健康狀態,控制虛擬機的跨羣集故障轉移,各個成員羣集會將自身羣集資源彙報給管理羣集master角色,以供管理羣集斷定資源合適羣集,同時也將控制管理羣集內的故障轉移,管理羣集一般不實際承載VM,S2D工做負載。



成員羣集,Cluster Set中的成員羣集一般是運行VM和S2D工做負載的傳統超融合羣集,多個成員集羣參與單個Cluster Set部署,造成更大規模的SDDC結構,成員集羣參與故障域和可用性集構造,成員羣集使用Scaleout Worker充當羣集中惟一的聯絡人,以根據Master的要求協調本地羣集交互,此類交互的示例包括虛擬機放置和羣集本地資源清點,每一個成員集羣只有一個Scaleout Worker實例


Cluster Set先決條件


  1. 各個羣集節點必須使用2019 17650及以上版本

  2. 每一個羣集必須有CSV

  3. 建議至少一個管理羣集,兩個成員羣集

  4. 爲全部節點添加跨羣集節點的CIFS與VM委派

  5. 設置各節點Hyper-V遷移使用Kerberos

  6. 添加管理羣集計算機對象BJMGMT至各成員羣集節點本地管理員組


環境介紹


老王在這裏假設的是一個數據中心的場景,有一個SDDC數據中心叫DC01-BJ,裏面有三套羣集,一套管理,兩套成員,實現虛擬機在SDDC內跨成員羣集流動


管理羣集 


羣集名稱:BJMGMT Cluster Set名稱 : DC01-BJ 羣集命名空間:VMFILE

19server1 :LAN 10.0.0.10 ,Storage 30.0.0.10,CLUS 18.0.0.10

19server2 :LAN 10.0.0.11 ,Storage 30.0.0.11,CLUS 18.0.0.11


成員羣集1


羣集名稱:HA01     羣集InfraSOFSName共享名稱:HA01

19server3 :LAN 10.0.0.12,Storage 30.0.0.12,CLUS 18.0.0.12

19server4:LAN 10.0.0.13 ,Storage 30.0.0.13,CLUS 18.0.0.13


成員羣集2


羣集名稱:HA02    羣集InfraSOFSName共享名稱:HA02

19server5:LAN 10.0.0.14,Storage 30.0.0.14,CLUS 18.0.0.14

19server6:LAN 10.0.0.15 ,Storage 30.0.0.15,CLUS 18.0.0.15



建立全部羣集,併爲每一個羣集配置CSV,步驟略


建立ClusterSet,管理羣集,羣集命名空間

New-ClusterSet -Name DC01-BJ -NamespaceRoot VMFILE -CimSession BJMGMT -StaticAddress 10.0.0.88

2018-07-12_140027.png

建立完成後產生ClusterSet VCO角色,自動建立Infrastructure File Server類型橫向擴展文件服務器角色,名稱爲NamespaceRoot名稱

2018-07-12_140441.png

自動建立master角色,名稱爲ClusterSet名稱

2018-07-12_140457.png

管理羣集更新資源類型

2018-07-12_142155.png


添加各成員羣集進入Cluster Set


 Add-ClusterSetMember  - ClusterName HA01 - CimSession DC01-BJ - InfraSOFSName HA01

 Add-ClusterSetMember  - ClusterName HA02 - CimSession DC01-BJ - InfraSOFSName HA02

2018-07-12_154801.png


自動建立Infrastructure File Server類型橫向擴展文件服務器角色,名稱爲InfraSOFSName名稱

2018-07-12_154119.png

自動建立ScaleOut Worker角色,無名稱

2018-07-12_154230.png


Cluster Set 查看管理


#獲取Cluster Set 成員羣集狀態

get-clustersetmember  - CimSession DC01-BJ


#獲取每一個Cluster Set 成員羣集狀態+每一個羣集內成員狀態+管理羣集狀態

get-clusterset -CimSession DC01-BJ | get-cluster | get-clusternode


#獲取每一個成員羣集節點狀態

Get-ClusterSetNode -CimSession DC01-BJ


#集中彙總Cluster Set內管理羣集與成員羣集的羣集日誌

Get-ClusterSetLog -ClusterSetCimSession DC01-BJ -IncludeClusterLog -IncludeManagementClusterLog -DestinationFolderPath <path>




Cluster Set搭建完成後,下一步考慮上面的應用,咱們須要虛擬機可以在Cluster Set環境中,跨羣集實現虛擬機遷移,故障轉移

要實現這一點須要配置四個內容


1.配置各個成員羣集Hyper-V主機,使用Kerberos做爲遷移協議

2018-07-12_162716.png

2.爲各個成員羣集內每一個Hyper-V主機,添加跨羣集主機的Kerberos委派,CIFS以及VM遷移服務

2018-07-12_172144.png

3.添加管理羣集計算機帳號進入各個成員羣集本地管理員組,能夠手動,使用腳本,或者使用組策略,把全部成員羣集放在一個OU下,而後下發組策略

2018-07-12_162037.png


完成步驟後建立虛擬機,虛擬機路徑指定爲羣集命名空間下的成員羣集共享

2018-07-12_164155.png

4.在ClusterSet中註冊虛擬機,只有被註冊的虛擬機才能跨羣集遷移,只有使用羣集命名空間的虛擬機才能被成功註冊

#Register all existing VMs

$ClusterSet="DC01-BJ"

Get-ClusterSetMember -CimSession $ClusterSet | Register-ClusterSetVM -RegisterAll



#跨羣集移動VM存儲

Move-VMStorage -DestinationStoragePath \\VMFILE\HA02 -Name HQ-SP-DB01


#跨羣集移動VM

Move-ClusterSetVM -CimSession DC01-BJ -VMName HQ-SP-DB01 -ClusterName HA02


ClusterSet故障域,可用性集


相信你們都有了解過Azure上面的可用性集功能,用戶能夠建立一個可用性集,以後凡是被放置在同一個可用性集的虛擬機,都會被放置在不一樣的FD,Azure上面記得保證的是不一樣機架,如今這個技術拿到了WSFC 2019本地,只不過FD是羣集單位,


#建立故障域,一個故障域內能夠包括多個成員羣集

New-ClusterSetFaultDomain -Name FD1 -FdType Logical -CimSession DC01-BJ -MemberCluster HA01,HA02 -Description "ChangPing Fault Domain"

New-ClusterSetFaultDomain -Name FD2 -FdType Logical -CimSession DC01-BJ  -MemberCluster HA03,HA04 -Description "ChaoYang Fault Domain"


#將故障域加入可用性集DC01-BJ-AS建立的可用性集將生效於初始放置,計劃內維護,計劃外故障轉移。

New-ClusterSetAvailabilitySet -Name DC01-BJ-AS -FdType Logical -CimSession DC01-BJ -ParticipantName FD1,FD2


#建立虛擬機時指定 -AvailabilitySet參數


最終實現效果將是被放置在同一個可用性集內的虛擬機 始終被放在不一樣的FD,當一個FD失去,可用性集虛擬機將故障轉移至另外FD


能夠看出這是ClusterSet新有的故障域和可用性集功能,它與WSFC 2016的站點感知,故障域功能還不太一致,能夠說ClusterSet是更貼近雲數據中心環境的,將可用性從羣集擴展到邏輯FD,同時能夠整合Azure Stack


ClusterSet能夠說是老王期待已久的一項技術,從去年年末知道它的消息,就一直盼望它能出來,可一直沒有消息,只好本身去摸索,剛好7月10日cluster的technet blog更新了這項技術,老王馬上研究,並及時與你們分享,在老王看來這是一項高大上的技術,高大上到通常的企業也許根本用不上。。。 除非是有意構建SDDC的企業,或運營商,可能會對這項技術感興趣,基本上它的主要功能就是跨羣集突破擴展限制,即使是沒有SCVMM的狀況下也能實現虛擬機跨羣集實時遷移,故障轉移


在老王看來這項技術對於我來講,最大的意義在於可以實現虛擬機跨羣集的故障轉移,經過管理羣集上面的Master機制偵聽各成員羣集狀態,而且協調完成應用跨羣集的故障轉移,這是項不錯的革新技術,將微軟虛擬化的可用性邊界真正向前走了一步


等它正式發佈的時候老王認爲跨羣集故障轉移,以及可用性集實現跨FD故障轉移必將是一大亮點


對於這項及技術的預測和看法,老王認爲目前的版本仍是麻煩一點,對於通常的管理員存在必定的配置門檻,須要仔細理解架構後才能運維,將來我對這個產品的建議

1.管理羣集不要浪費,最好可以讓管理羣集也能承載必定的VM資源

2.目前這項產品的部署管理只能經過PS和WMI,仍是過於麻煩,將來但願能夠經過WAC或者GUI工具進行管理

3.建議可以向下兼容2012R2 2016 SOFS

4.能夠直接考慮S2D和ClusterSet的集成,跨多個羣集構建S2D存儲池

5.建議優化羣集命名空間架構

6.優化可用性集架構,確保被放置在同一可用性集的虛擬機始終不在同一個故障域內,除非該故障域崩潰且沒有其它故障域可用,則放置相同故障域,提供與Azure Pack或Azure Stack對接接口,實現租戶建立可用性集

7.建議優化部署架構,目前ClusterSet限制全部節點必須位於同一AD林

8.建議提供界面上面的負載預估功能,例如我能夠建立一個虛擬機,在管理羣集上面,可是由管理羣集根據各個成員羣集的負載去幫我放置,目前這個功能還須要經過PS完成,建議將來整合至SCVMM或WAC

相關文章
相關標籤/搜索