微軟Windows Server 2019超融合

在部署之前還是需要了解下硬件要求:

https://docs.microsoft.com/zh-cn/windows-server/storage/storage-spaces/storage-spaces-direct-hardware-requirements

其中重點是:

  • 最少 2 臺服務器,最多 16 臺服務器

  • 對於Storage Spaces Direct元數據,每個服務器上每TB緩存磁盤容量爲4 GB RAM,換言之每臺服務器上SSD是每1TB需要耗費4G內存

  • 系統磁盤大小不低於200G,一般都是300G作爲系統磁盤

  • 小規模測試環境2-3臺服務器,用於生產環境4臺服務器起

  • SSD必須提供電源中斷保護

  • 緩存設備大於等於32GB

  • S2D磁盤鏈接方式:

    • 直接連接 SATA 驅動器

    • 直連 NVMe 驅動器

    • SAS 驅動器的 SAS 主機總線適配器 (HBA)

    • SATA 驅動器的 SAS 主機總線適配器 (HBA)

    • 不支持: RAID 控制器卡或 SAN (光纖通道、 iSCSI、 FCoE) 存儲。 主機總線適配器 (HBA) 卡必須實現簡單的傳遞模式

  • 用於緩存的SSD每臺至少2個;容量的SAS每臺至少4個

在這裏我的測試環境是2臺服務器(這裏我是利用物理機創建的2臺Hyper-V虛擬機,故這2臺虛擬機我開啓了嵌套虛擬化),每臺服務器1個系統磁盤127G,每臺配置了2個SSD磁盤和4個HDD磁盤(每一個SSD磁盤爲10G大小;每一個HDD磁盤爲20G大小)

爲每一臺服務器完成了如下準備工作:

  • 加域

  • 安裝角色或功能如下:

Install-WindowsFeature -Name "Hyper-V", "Failover-Clustering", "Data-Center-Bridging", "RSAT-Clustering-PowerShell", "Hyper-V-PowerShell", "FS-FileServer"

  • 故障轉移羣集

  • Hyper-V

  • 文件服務器 (如果您想要託管任何文件共享,例如,針對聚合部署)

  • Data-Center-Bridging(如果正在使用 RoCEv2,而不是 iWARP 網絡適配器)

  • RSAT-Clustering-PowerShell

  • Hyper-V-PowerShell

clip_image001

  • 清空磁盤驅動器

在其中一臺S2D服務器上執行如下腳本:

備註:此腳本將永久刪除操作系統啓動驅動器以外的任何驅動器上的任何數據 !

# Fill in these variables with your values

$ServerList = "Server01", "Server02", "Server03", "Server04"

Invoke-Command ($ServerList) {

Update-StorageProviderCache

Get-StoragePool | ? IsPrimordial -eq $false | Set-StoragePool -IsReadOnly:$false -ErrorAction SilentlyContinue

Get-StoragePool | ? IsPrimordial -eq $false | Get-VirtualDisk | Remove-VirtualDisk -Confirm:$false -ErrorAction SilentlyContinue

Get-StoragePool | ? IsPrimordial -eq $false | Remove-StoragePool -Confirm:$false -ErrorAction SilentlyContinue

Get-PhysicalDisk | Reset-PhysicalDisk -ErrorAction SilentlyContinue

Get-Disk | ? Number -ne $null | ? IsBoot -ne $true | ? IsSystem -ne $true | ? PartitionStyle -ne RAW | % {

$_ | Set-Disk -isoffline:$false

$_ | Set-Disk -isreadonly:$false

$_ | Clear-Disk -RemoveData -RemoveOEM -Confirm:$false

$_ | Set-Disk -isreadonly:$true

$_ | Set-Disk -isoffline:$true

}

Get-Disk | Where Number -Ne $Null | Where IsBoot -Ne $True | Where IsSystem -Ne $True | Where PartitionStyle -Eq RAW | Group -NoElement -Property FriendlyName

} | Sort -Property PsComputerName, Count

例如:

# Fill in these variables with your values

$ServerList = "S2D1", "S2D2"

Invoke-Command ($ServerList) {

Update-StorageProviderCache

Get-StoragePool | ? IsPrimordial -eq $false | Set-StoragePool -IsReadOnly:$false -ErrorAction SilentlyContinue

Get-StoragePool | ? IsPrimordial -eq $false | Get-VirtualDisk | Remove-VirtualDisk -Confirm:$false -ErrorAction SilentlyContinue

Get-StoragePool | ? IsPrimordial -eq $false | Remove-StoragePool -Confirm:$false -ErrorAction SilentlyContinue

Get-PhysicalDisk | Reset-PhysicalDisk -ErrorAction SilentlyContinue

Get-Disk | ? Number -ne $null | ? IsBoot -ne $true | ? IsSystem -ne $true | ? PartitionStyle -ne RAW | % {

$_ | Set-Disk -isoffline:$false

$_ | Set-Disk -isreadonly:$false

$_ | Clear-Disk -RemoveData -RemoveOEM -Confirm:$false

$_ | Set-Disk -isreadonly:$true

$_ | Set-Disk -isoffline:$true

}

Get-Disk | Where Number -Ne $Null | Where IsBoot -Ne $True | Where IsSystem -Ne $True | Where PartitionStyle -Eq RAW | Group -NoElement -Property FriendlyName

} | Sort -Property PsComputerName, Count

輸出結果中計數是每個模型中的每個服務器的磁盤數

clip_image002

  • 驗證羣集

在每一臺S2D服務器補充安裝如下管理工具

clip_image003

在其中一臺S2D服務器上執行驗證:

clip_image004

clip_image005

clip_image006

clip_image007

  • 創建羣集

在其中一臺S2D的服務器上執行:

New-Cluster -Name S2D01 -Node "S2D1","S2D2" -StaticAddress 10.20.30.60 -NoStorage

clip_image008

  • 配置羣集見證

配置在羣集的見證服務器,以便具有三個或多個服務器羣集可以承受兩臺服務器發生故障或處於脫機狀態。雙服務器部署需要羣集見證,否則進入脫機狀態的任一服務器會導致另一個也變得不可用

在這裏我是2節點的S2D測試環境,因此我在DC服務器上創建一個共享文件夾

clip_image009

clip_image010

clip_image011

clip_image012

clip_image013

clip_image014

在DC的共享見證文件夾裏就自動生成了見證文件了

clip_image015

  • 啓用S2D

Enable-ClusterStorageSpacesDirect -CimSession <ClusterName>

在其中一臺S2D服務器上執行:

例如:

Enable-ClusterStorageSpacesDirect -CimSession S2D01

出現如下報錯:

clip_image016

在Windows Server 2019中禁用了Enable-ClusterStorageSpacesDirect功能。其原因在於Microsoft正在爲硬件供應商提供Windows Server 2019的硬件認證,但是您可以添加到羣集節點的簡單註冊表項通過開啓S2D(當然微軟不建議這樣操作)

在每臺S2D的服務器上用powershell執行

New-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\ClusSvc\Parameters" -Name S2D -Value 1 -PropertyType DWORD -Force

clip_image017

執行完成後註冊表會新增如下一條記錄

clip_image018

接下來再啓用S2D

Enable-ClusterStorageSpacesDirect -CimSession S2D01

可通過Get-ClusterStorageSpacesDirect檢查S2D狀態

clip_image023

 

  • 創建卷

可以參考https://docs.microsoft.com/zh-cn/windows-server/storage/storage-spaces/create-volumes

在這裏我使用Windows Admin Center來創建卷

clip_image026

添加好後點擊進入超聚合羣集管理器

clip_image027

clip_image028

clip_image029

clip_image030

clip_image031

也可以打開卷,添加上傳文件等操作

clip_image032

這就等於創建好了羣集共享卷

clip_image033

剩下的就是按照傳統方式可以在這個羣集共享卷裏去創建虛擬機來跑了

接下來要給大家介紹一個新特性,是Windows Server 2019針對雙節點保證數據可用性的新功能:

S2D的嵌套復原能力:

參考自:https://docs.microsoft.com/en-us/windows-server/storage/storage-spaces/nested-resiliency

羣集裏的兩個服務器能夠承受多個硬件故障時不會丟失存儲可用性,因此用戶、應用、 Windows Server 2019和虛擬機繼續運行而不發生中斷

與經典雙向鏡像復原能力不同的是:使用嵌套的復原能力的卷即使多個硬件故障發生在同一時間也將保持聯機和可訪問。例如,如果兩個磁盤故障一次或一臺服務器出現故障時,使用嵌套復原能力的卷將保持聯機和可訪問。對於超聚合基礎結構,這將增加應用和虛擬機;的運行的時間,對於文件服務器工作負載意味着用戶享有不間斷地的訪問他們的文件能力

clip_image034

弊端是比經典的雙向鏡像而言,具有該嵌套復原能力會進一步降低可用容量空間。

使用此功能,將擁有比傳統雙向鏡像更低的容量,但可以獲得更高的可靠性,這是超融合基礎架構的基礎,克服了以前版本的Windows Server中存在的羣集環境限制:只有兩節。不需要特定的硬件實現兩個新的選項:

嵌套雙向鏡像:在每個服務器中,本地使用雙向鏡像,兩個服務器之間的雙向鏡像保證了進一步的彈性。實際上它是一個四向鏡像,每個服務器有兩個數據副本。

嵌套鏡像加速奇偶校驗:前面描述的雙向鏡像與嵌套奇偶校驗相結合

clip_image035

先決條件:

  • 可用使用嵌套復原能力

羣集中運行的是Windows Server 2019且羣集裏只有2個服務器節點

  • 不能使用嵌套復原能力

羣集中運行的是Windows Server 2016或羣集裏有3個或3個以上的服務器節點

具體的容量消耗保證數據可用性的嵌套復原能力可用空間算法請參看上面鏈接,我大概總結下就是:

嵌套復原能力也分爲2種

  • 嵌套雙向鏡像:可用空間爲總磁盤可用空間的25%

  • 嵌套的鏡像加速奇偶校驗:可用空間爲總磁盤可用空間的35%~40%

傳統的雙向鏡像可用空間爲總磁盤可用空間的50%

  • 在這裏我創建一個嵌套雙向鏡像存儲模板和一個嵌套的鏡像加速奇偶校驗存儲模板

    • 嵌套雙向鏡像存儲模板

New-StorageTier -StoragePoolFriendlyName S2D* -FriendlyName NestedMirror -ResiliencySettingName Mirror -MediaType HDD -NumberOfDataCopies 4

clip_image036

  • 嵌套的鏡像加速奇偶校驗存儲模板

New-StorageTier -StoragePoolFriendlyName S2D* -FriendlyName NestedParity -ResiliencySettingName Parity -MediaType HDD -NumberOfDataCopies 2 -PhysicalDiskRedundancy 1 -NumberOfGroups 1 -FaultDomainAwareness StorageScaleUnit -ColumnIsolation PhysicalDisk

clip_image037

備註:如果容量磁盤是固態硬盤 (SSD),設置-MediaType爲SSD即可,不要修改其他參數

驗證是否創建成功:Get-StorageTier

clip_image038

  • 接下來創建嵌套的雙向鏡像卷

New-Volume -StoragePoolFriendlyName S2D* -FriendlyName Volume02 -StorageTierFriendlyNames NestedMirror -StorageTierSizes 10GB

  • 最後再創建一個嵌套的鏡像加速奇偶校驗卷

若要使用嵌套的鏡像加速奇偶校驗,可以同時引用NestedMirror和NestedParity層模板並指定兩個大小,用於不同的卷(首先是鏡像部分大小,其次是奇偶校驗部分大小)。 例如,若要創建一個是 20%嵌套雙向鏡像和 80%的 10GB 卷嵌套奇偶校驗

New-Volume -StoragePoolFriendlyName S2D* -FriendlyName Volume03 -StorageTierFriendlyNames NestedMirror, NestedParity -StorageTierSizes 2GB, 8GB

clip_image039

除了這些好的功能外,當然還有其他類似Azure公有云上的故障感知域功能,在本地也可以實現了,從站點機櫃刀片服務器刀箱刀片服務器都可以做不同的容錯域級別,如果對這塊感興趣,可以參看:https://docs.microsoft.com/zh-cn/windows-server/failover-clustering/fault-domains

好了,這麼好的功能就介紹到這了,更多精彩內容期待您的關注,謝謝。

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