微軟S2D2016滾動升級2019

Storage Space Direct(簡稱S2D)是微軟在Windows Server 2016數據中心版集成的第三代軟件定義存儲技術,S2D技術能夠將工業標準X86服務器的本地磁盤彙總構建出具備高可用、高性能和易擴展的軟件定義存儲架構。S2D的優勢在於和自家產品如Hyper-V/WAC/SCVMM/SCOM整合較好,適用於那些已經廣泛使用微軟企業級產品的用戶,微軟不僅有成熟企業級產品,也有成熟的OEM生態圈,微軟不僅在今年發佈了Windows Server 2019,同時還宣佈了WSSD產品的路線圖。隨着Windows Server 2019功能的不斷優化與增強,S2D的性能與可靠性已經得到企業用戶認可,相信會有部分已經在使用2016版本S2D用戶會選擇將原有環境升級至最新版本,故本文老王將爲大家介紹如何在不停機的情況下將2016環境的S2D滾動升級2019


本文老王將不會過多介紹S2D相關概念原理,我們將主要專注於S2D滾動升級的過程思考

本文老王以S2D融合架構爲例主要講解,對於超融合場景會進行簡單提示

由於目前網絡上面還沒有相關文章,老王會將S2D滾動升級細節全部呈現,以供日後國內用戶升級時參考


滾動升級之前老王曾經寫過一篇Hyper-V 2012滾動升級2016的文章,滾動升級的概念能夠得以實現,即在同一個羣集內完成不停機的升級,前提條件有二,一 羣集支持混合模式,二 虛擬化軟件支持向下兼容。來到S2D同樣是這個道理,只不過不是2012到2016,而是2016到2019支持滾動升級,由於2012存儲空間與2016S2D架構不同,所以2012存儲空間升級到2016S2D時只有在2012節點重裝2016,然後升級存儲池,因此當中一定會產生宕機時間,但是2016到2019就不同了,由於2016和2019採用的是相同的S2D架構,因此我們可以在升級過程中,實現數據同時在2016節點與2019節點撒下,意味着當我們重做了一臺2016節點裝成2019時,這個節點可以直接加入現有存儲池的容錯,不會對業務產生任何可用性影響。

2018-10-23_214058.png

理解了前提條件之後,繼續往後看,衆所周知,S2D是基於微軟WSFC羣集實現的架構,而一旦一個WSFC羣集變成了S2D羣集之後,每個機器除了作爲普通羣集節點,還會承擔S2D數據寫入故障域的角色,S2D將各個羣集節點本地磁盤彙總起來,在羣集裏面形成一個虛擬機的盤櫃,當數據寫入時,S2D會把數據切分成一個個1GB的extent,按照虛擬磁盤容錯規則進行寫入,如果是鏡像,則確保extent兩個副本始終寫入在兩個不同節點,以此類推,不允許因爲單個節點故障影響虛擬磁盤可用。


這樣我們就需要額外考慮一些問題,不能當成單獨的羣集滾動升級對待,例如,當我們暫停或刪除一個節點時,對於S2D產生的影響,節點恢復後應該執行那些操作,帶着這些疑問我們走進環境開始實戰


環境介紹,當前有一套三節點S2D2016羣集,已經開啓了S2D,已經創建一個鏡像容錯的虛擬磁盤正在使用

2018-10-22_180033.png

我們將通過不停機滾動升級的方式最終將三個節點都升級爲2019,關於驗證不停機的方法,老王採用實時寫入腳本進行驗證,腳本如下

for /L %i in (1,1,30000) do fsutil File createnew %i 1024 

這段腳本的意思是每隔一秒鐘對S2D卷寫入一個1KB的文件,寫入30000次,如果寫入在升級過程中沒有中斷,可以持續寫入,則說明滾動升級沒有對寫入造成任何影響,腳本可以在一個節點一直跑到最後,直到最後這個節點要升級時,切換到其它節點繼續跑。

2018-10-22_180131.png

在執行S2D滾動升級之前,首先要做的一個步驟是檢查,檢查四樣東西


1.虛擬磁盤是否健康

2018-10-22_181546.png

2.是否有未完成的存儲作業

2018-10-22_181533.png

3.檢查磁盤操作狀態,是否存在Needs Rebalance提示,如果有請執行Optimize-Storagepool操作

2018-10-23_182608.png

4.是否存在CAU或VMM等自動更新任務,如有,請針對羣集節點全部關閉,以防止影響手動操作羣集升級過程。


確保環境已就緒,我們就要開始執行S2D滾動升級第一個操作,暫停節點,對於一般的羣集節點而言,暫停節點意味着按照放置規則排出角色到其它節點,對於S2D意義又多了一點,首先,正常情況下,數據會在三個節點之間隨機找到兩個節點進行鏡像寫入,假設一個羣集節點宕機,那麼對於虛擬磁盤來說會變成降級狀態,因爲在該節點上面的extent副本將不可用,意味着一些數據塊可能此時會是沒有第二個副本可用的,暫停節點後數據再次寫入,extent將不會再次撒在暫停節點,當節點恢復後,暫停期間其它節點寫入的增量數據會自動同步到暫停節點。如果是超融合場景下,此步驟虛擬機中也將一起被排出到其它節點。

2018-10-22_180229.png

暫停節點時S2D將執行刷新和提交數據,因此務必要記得執行暫停節點操作,當節點被置爲暫停狀態後,下一個操作是將節點從S2D羣集中刪除,我們僅執行逐出操作,這意味着僅在羣集中刪除該節點,但並不刪除已經在羣集池中註冊的物理磁盤,即便節點被逐出羣集,但節點的本地磁盤依然會被記錄在羣集池中,只是被標記爲丟失狀態,即便是節點重做系統後,只要磁盤還插在節點上,那麼就可以重新與羣集池中的磁盤關聯。

2018-10-22_182258.png


2018-10-22_184442.png

逐出之後,對節點進行脫域,乾淨重裝2019操作系統,機器名可以和原來一樣,也可以重新命名,此過程略

2018-10-22_182536.png

當節點被暫停逐出後,可以看到虛擬磁盤此時的操作狀態爲降級,這是因爲丟失了一個故障域節點,但並不影響對磁盤的寫入,可通過寫入腳本看出,對於一個故障域的虛擬磁盤來說,此時羣集不能再有節點宕機,否則磁盤將不可訪問,如果是三路鏡像,有兩個故障域,則可以再允許宕機一個節點。

2018-10-23_093107.png

在虛擬化環境中執行此操作的朋友可能會遇到一個BUG,即2019節點新做好了之後怎麼也加入不到羣集裏面,根本原因是error 1809的問題,此節點已加入啓用存儲空間直通的羣集,但未在當前版本上進行驗證,此節點將被隔離

詳見KB  https://support.microsoft.com/en-us/help/4464776/software-defined-data-center-and-software-defined-networking


2018-10-22_210113.png

WSSD是微軟的一個全新計劃,微軟和DELL/Dataon/HPE等廠商合作,推出合作解決方案,廠商提供設備,經過微軟認證後即可在上面出色的運行微軟最新的SDDC技術,S2D/SDN/WAC等等,但是有的客戶可能就是虛擬化環境,或者沒有買WSSD認證設備,那就會遇見這個問題,經過研究得知是2019節點加入S2D羣集時會經過一個判斷,檢查註冊表的一個鍵值,如果已存在則可以運行加入S2D羣集

位置在HKEY_LOCAL_MECHINE\SYSTEM\CurrentControlSet\Services\ClusSvc\Parameters下面,管理員需要在S2D羣集裏面每個節點鍵入該鍵值,DWORD類型,名稱S2D,數值爲1,針對於2019節點,需事先建Parameters項,再新建鍵值即可規避此問題

2018-10-23_103751.png

處理完成後2019節點即可正常加入S2D2016羣集

2018-10-22_202854.png

當2019節點加入到羣集後,我們可以通過註冊表觀察到當前羣集已經進入了混合模式,如下位置的MixedMode數值爲1,代表羣集當前處於混合模式,如果全部升級爲2019,羣集FunctionalLevel升級後,則數值爲0

2018-10-22_215008.png

通過獲取羣集詳細信息可以看到,羣集當前功能級別爲9,代表着羣集當前是Windows Server 2016的羣集功能級別,如果羣集節點全部升級到2019後,提升羣集FunctionalLevel後,羣集功能級別將升級爲10。

2018-10-22_214807.png

節點正常加入羣集後,先前由於重做系統而在羣集池中失聯的磁盤,重新聯繫上變爲正常狀態

2018-10-23_220458.png

獲取存儲作業可以看到,首先,2019節點加入到S2D羣集後,S2D先執行Repair作業,此作業目的是將節點不在期間,各虛擬磁盤的增量數據進行重新同步,此操作證明S2D支持跨2016/2019節點撒下數據,此操作不會影響磁盤的正常寫入,但從節點暫停退出後到此修復過程,磁盤性能將有所下降。

2018-10-22_181407.png

你也可能會看到Optimize作業操作,這裏解釋下爲什麼升級過程要留意它,以及爲什麼開始之前要進行檢查,在S2D運作過程中隨着數據的大量寫入刪除,可能在某一個時間節點,一個物理磁盤的利用率已經達到了百分之90 ,而其它物理磁盤只有百分之60,這樣就有可能出現單個物理硬盤被寫爆,導致影響寫入操作,甚至虛擬磁盤脫機,因此,建議在滾動升級過程中,每做完一個節點就留意下各個磁盤的使用狀況或者羣集管理器中的虛擬磁盤狀態,是否出現Needs Rebalance,如果有,立即執行Optimize-Storagepool ,除此之外當新加入節點至S2D羣集時,每隔一段時間大概30分鐘,會自動執行Optimize-Storagepool操作,等不及的話也可以直接手動執行。


Repair作業是爲了同步節點暫停時其它節點更新的數據,Optimize作業是爲了平衡節點添加後各節點物理磁盤使用情況,兩者不要混淆

2018-10-22_215057.png

由於每做一個節點時虛擬磁盤會降級,重做完成後節點需要重新同步數據,平衡負載,因此請務必每次僅執行一個節點的升級操作,如果在一個節點加入羣集後還未執行完畢Repair和Optimize作業就執行下一個節點,將會產生宕機的風險。


確認第一個節點執行完畢Repair和Optimize作業,虛擬磁盤操作狀態恢復爲OK就可以開始做下一個節點

2018-10-22_181546.png

暫停節點 - 逐出節點 - 節點退域 - 重做系統 - 修改註冊表 - 加入羣集 - 等待Repair作業和Optimize作業執行 - 檢查羣集虛擬磁盤狀態 

第二個節點按照相同步驟執行,所謂滾動升級,意思就是我們每次只重裝故障域允許的節點,確保重裝之後,虛擬磁盤僅爲降級,不會影響讀寫,節點重做完成加入羣集後 虛擬磁盤又恢復爲完整,再重做下一臺,始終通過補上的方式阻止磁盤失去讀寫。操作步驟並不難,關鍵是要理解每一步背後所發生的事情,以及每一個操作執行後應該關注的內容。

按照這樣的滾動思維做到最後一個節點時,最後一個節點執行完所有步驟,檢查羣集虛擬磁盤狀態爲OK,即代表所有節點已經不停機滾動升級至2019,但目前羣集功能級別仍然是Windows Server 2016,升級羣集功能級別後羣集功能級別將爲10,享受WSFC2019所有新功能,此操作不可逆

2018-10-23_131536.png

檢查註冊表位置可以發現MixedMode已經取消爲0鍵值

2018-10-23_132013.png

除此之外,如果檢查存儲池可以看到,目前存儲池的版本還是Windows Server 2016 

2018-10-23_124809.png

執行命令 Get-StoragePool -FriendlyName "PoolName" | Update-StoragePool 升級存儲池爲最新版本,此操作不可逆。

2018-10-23_131856.png

羣集功能級別與存儲池升級後,可以發現2019的新功能,和WAC集成實現的性能歷史記錄,通過在S2D創建一個10GB的磁盤以存放歷史數據,此功能爲S2D2019專有

2018-10-23_131934.png

最後如果是超融合架構,還需要升級虛擬機配置,此操作需關閉虛擬機纔可以升級,需單獨規劃時間進行操作。

需要注意,升級羣集功能級別,升級存儲池,升級虛擬機配置,這三個操作都不可逆,一旦敲下命令就沒有後悔藥可以吃,如果舉棋不定,可以在混合模式期間進行觀察回退,升級羣集功能級別之後就不能回退了。


升級過程最主要的是要理解執行每個操作步驟對S2D羣集會發生的事情,做到思路清晰,心裏有數,操作步驟並不繁瑣,按部就班完成各節點升級,每一個步驟都不可以跳躍,每個節點升級完成都應該謹慎檢查再下一個節點,按照順序操作我們就能實現不停機的S2D滾動升級,最終完成操作系統升級,羣集功能級別升級,存儲池升級,虛擬機升級。

2018-10-24_122009.png




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