您好,登錄后才能下訂單哦!
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時,這個節點可以直接加入現有存儲池的容錯,不會對業務產生任何可用性影響。
理解了前提條件之后,繼續往后看,眾所周知,S2D是基于微軟WSFC群集實現的架構,而一旦一個WSFC群集變成了S2D群集之后,每個機器除了作為普通群集節點,還會承擔S2D數據寫入故障域的角色,S2D將各個群集節點本地磁盤匯總起來,在群集里面形成一個虛擬機的盤柜,當數據寫入時,S2D會把數據切分成一個個1GB的extent,按照虛擬磁盤容錯規則進行寫入,如果是鏡像,則確保extent兩個副本始終寫入在兩個不同節點,以此類推,不允許因為單個節點故障影響虛擬磁盤可用。
這樣我們就需要額外考慮一些問題,不能當成單獨的群集滾動升級對待,例如,當我們暫停或刪除一個節點時,對于S2D產生的影響,節點恢復后應該執行那些操作,帶著這些疑問我們走進環境開始實戰
環境介紹,當前有一套三節點S2D2016群集,已經開啟了S2D,已經創建一個鏡像容錯的虛擬磁盤正在使用
我們將通過不停機滾動升級的方式最終將三個節點都升級為2019,關于驗證不停機的方法,老王采用實時寫入腳本進行驗證,腳本如下
for /L %i in (1,1,30000) do fsutil File createnew %i 1024
這段腳本的意思是每隔一秒鐘對S2D卷寫入一個1KB的文件,寫入30000次,如果寫入在升級過程中沒有中斷,可以持續寫入,則說明滾動升級沒有對寫入造成任何影響,腳本可以在一個節點一直跑到最后,直到最后這個節點要升級時,切換到其它節點繼續跑。
在執行S2D滾動升級之前,首先要做的一個步驟是檢查,檢查四樣東西
1.虛擬磁盤是否健康
2.是否有未完成的存儲作業
3.檢查磁盤操作狀態,是否存在Needs Rebalance提示,如果有請執行Optimize-Storagepool操作
4.是否存在CAU或VMM等自動更新任務,如有,請針對群集節點全部關閉,以防止影響手動操作群集升級過程。
確保環境已就緒,我們就要開始執行S2D滾動升級第一個操作,暫停節點,對于一般的群集節點而言,暫停節點意味著按照放置規則排出角色到其它節點,對于S2D意義又多了一點,首先,正常情況下,數據會在三個節點之間隨機找到兩個節點進行鏡像寫入,假設一個群集節點宕機,那么對于虛擬磁盤來說會變成降級狀態,因為在該節點上面的extent副本將不可用,意味著一些數據塊可能此時會是沒有第二個副本可用的,暫停節點后數據再次寫入,extent將不會再次撒在暫停節點,當節點恢復后,暫停期間其它節點寫入的增量數據會自動同步到暫停節點。如果是超融合場景下,此步驟虛擬機中也將一起被排出到其它節點。
暫停節點時S2D將執行刷新和提交數據,因此務必要記得執行暫停節點操作,當節點被置為暫停狀態后,下一個操作是將節點從S2D群集中刪除,我們僅執行逐出操作,這意味著僅在群集中刪除該節點,但并不刪除已經在群集池中注冊的物理磁盤,即便節點被逐出群集,但節點的本地磁盤依然會被記錄在群集池中,只是被標記為丟失狀態,即便是節點重做系統后,只要磁盤還插在節點上,那么就可以重新與群集池中的磁盤關聯。
逐出之后,對節點進行脫域,干凈重裝2019操作系統,機器名可以和原來一樣,也可以重新命名,此過程略
當節點被暫停逐出后,可以看到虛擬磁盤此時的操作狀態為降級,這是因為丟失了一個故障域節點,但并不影響對磁盤的寫入,可通過寫入腳本看出,對于一個故障域的虛擬磁盤來說,此時群集不能再有節點宕機,否則磁盤將不可訪問,如果是三路鏡像,有兩個故障域,則可以再允許宕機一個節點。
在虛擬化環境中執行此操作的朋友可能會遇到一個BUG,即2019節點新做好了之后怎么也加入不到群集里面,根本原因是error 1809的問題,此節點已加入啟用存儲空間直通的群集,但未在當前版本上進行驗證,此節點將被隔離
詳見KB https://support.microsoft.com/en-us/help/4464776/software-defined-data-center-and-software-defined-networking
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項,再新建鍵值即可規避此問題
處理完成后2019節點即可正常加入S2D2016群集
當2019節點加入到群集后,我們可以通過注冊表觀察到當前群集已經進入了混合模式,如下位置的MixedMode數值為1,代表群集當前處于混合模式,如果全部升級為2019,群集FunctionalLevel升級后,則數值為0
通過獲取群集詳細信息可以看到,群集當前功能級別為9,代表著群集當前是Windows Server 2016的群集功能級別,如果群集節點全部升級到2019后,提升群集FunctionalLevel后,群集功能級別將升級為10。
節點正常加入群集后,先前由于重做系統而在群集池中失聯的磁盤,重新聯系上變為正常狀態
獲取存儲作業可以看到,首先,2019節點加入到S2D群集后,S2D先執行Repair作業,此作業目的是將節點不在期間,各虛擬磁盤的增量數據進行重新同步,此操作證明S2D支持跨2016/2019節點撒下數據,此操作不會影響磁盤的正常寫入,但從節點暫停退出后到此修復過程,磁盤性能將有所下降。
你也可能會看到Optimize作業操作,這里解釋下為什么升級過程要留意它,以及為什么開始之前要進行檢查,在S2D運作過程中隨著數據的大量寫入刪除,可能在某一個時間節點,一個物理磁盤的利用率已經達到了百分之90 ,而其它物理磁盤只有百分之60,這樣就有可能出現單個物理硬盤被寫爆,導致影響寫入操作,甚至虛擬磁盤脫機,因此,建議在滾動升級過程中,每做完一個節點就留意下各個磁盤的使用狀況或者群集管理器中的虛擬磁盤狀態,是否出現Needs Rebalance,如果有,立即執行Optimize-Storagepool ,除此之外當新加入節點至S2D群集時,每隔一段時間大概30分鐘,會自動執行Optimize-Storagepool操作,等不及的話也可以直接手動執行。
Repair作業是為了同步節點暫停時其它節點更新的數據,Optimize作業是為了平衡節點添加后各節點物理磁盤使用情況,兩者不要混淆
由于每做一個節點時虛擬磁盤會降級,重做完成后節點需要重新同步數據,平衡負載,因此請務必每次僅執行一個節點的升級操作,如果在一個節點加入群集后還未執行完畢Repair和Optimize作業就執行下一個節點,將會產生宕機的風險。
確認第一個節點執行完畢Repair和Optimize作業,虛擬磁盤操作狀態恢復為OK就可以開始做下一個節點
暫停節點 - 逐出節點 - 節點退域 - 重做系統 - 修改注冊表 - 加入群集 - 等待Repair作業和Optimize作業執行 - 檢查群集虛擬磁盤狀態
第二個節點按照相同步驟執行,所謂滾動升級,意思就是我們每次只重裝故障域允許的節點,確保重裝之后,虛擬磁盤僅為降級,不會影響讀寫,節點重做完成加入群集后 虛擬磁盤又恢復為完整,再重做下一臺,始終通過補上的方式阻止磁盤失去讀寫。操作步驟并不難,關鍵是要理解每一步背后所發生的事情,以及每一個操作執行后應該關注的內容。
按照這樣的滾動思維做到最后一個節點時,最后一個節點執行完所有步驟,檢查群集虛擬磁盤狀態為OK,即代表所有節點已經不停機滾動升級至2019,但目前群集功能級別仍然是Windows Server 2016,升級群集功能級別后群集功能級別將為10,享受WSFC2019所有新功能,此操作不可逆
檢查注冊表位置可以發現MixedMode已經取消為0鍵值
除此之外,如果檢查存儲池可以看到,目前存儲池的版本還是Windows Server 2016
執行命令 Get-StoragePool -FriendlyName "PoolName" | Update-StoragePool 升級存儲池為最新版本,此操作不可逆。
群集功能級別與存儲池升級后,可以發現2019的新功能,和WAC集成實現的性能歷史記錄,通過在S2D創建一個10GB的磁盤以存放歷史數據,此功能為S2D2019專有
最后如果是超融合架構,還需要升級虛擬機配置,此操作需關閉虛擬機才可以升級,需單獨規劃時間進行操作。
需要注意,升級群集功能級別,升級存儲池,升級虛擬機配置,這三個操作都不可逆,一旦敲下命令就沒有后悔藥可以吃,如果舉棋不定,可以在混合模式期間進行觀察回退,升級群集功能級別之后就不能回退了。
升級過程最主要的是要理解執行每個操作步驟對S2D群集會發生的事情,做到思路清晰,心里有數,操作步驟并不繁瑣,按部就班完成各節點升級,每一個步驟都不可以跳躍,每個節點升級完成都應該謹慎檢查再下一個節點,按照順序操作我們就能實現不停機的S2D滾動升級,最終完成操作系統升級,群集功能級別升級,存儲池升級,虛擬機升級。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。