Vor der Installation und Konfiguration der Nodes sollte auf die folgenden Punkte geachtet, und die Anforderungen erfüllt werden
Anforderungen:
Praxistipps:
- S2D / HCI Ready Nodes (Herstellersupport)
- Windows Datacenter Lizenz wird benötigt
- Installation der neuesten Firmwareupdates
- Installation der neuesten Treiber
- Witness wird benötigt (z.B. NAS / 3. Host mit SMB Freigabe)
- SSDs -> Es wird nicht zwangsweise eine Cache-Disk benötigt, ist aber dennoch empfohlen
- Zusätzliche Cache-Disks können konfiguriert werden
- Netzwerkadapter müssen ROCE oder IWARP können:
- Mellanox unterstützt RoCEv2 oder iWARP
- Intel unterstützt RoCEv2 oder iWARP
- Die Energiespareinstellungen auf maximum (BIOS & OS)
- RAID nur für OS, nicht für die Clusterdisks (internal oder JBOD ist supported, RAID nicht supported)
Wenn diese Anforderungen erfüllt wurden und die Server richtig verkabelt wurden (DAC), dann können diese installiert werden.
Schritt 1: Bitte achten Sie auf die folgenden Punkte & die Erfüllung der Anforderungen
Folgende Schritte müssen durchgeführt werden, um ein funktionierendes S2D Cluster zu haben:
Grundkonfiguration der Hosts
-
- Remotemanagement (IDRAC, XClarity etc.)
- BIOS Settings (Herstellerangaben beachten)
- Windows-Installation
- Bevorzugt mit GUI
- Computernamen setzen
Schritt 2: Installation der benötigten Rollen und Features
Installation auf allen Hosts
Install-WindowsFeature -Name File-Services Install-WindowsFeature -Name Data-Center-Bridging # Optional for Intel E810 NICs / iWARP NICs Install-WindowsFeature -Name Failover-Clustering -IncludeManagementTools Install-WindowsFeature -Name Hyper-V -IncludeManagementTools -Restart
Schritt 3: Status überprüfen der installierten Rollen und Features
Installation auf allen Hosts
Get-WindowsFeature | ? installstate -eq installed | ? name -Like *File* Get-WindowsFeature | ? installstate -eq installed | ? name -Like *Cluster* Get-WindowsFeature | ? installstate -eq installed | ? name -Like Hyper-V* Get-WindowsFeature | ? installstate -eq installed | ? name -Like *Bridging*
Schritt 4: Netzwerkkonfiguration durchführen
Netzwerkkartennamen müssen angepasst werden! (Installation auf allen Hosts)
# Block DCBX protocol between switches and nodes (for future node expansion) Set-NetQosDcbxSetting -InterfaceAlias "pNIC1-Port1" -Willing $False Set-NetQosDcbxSetting -InterfaceAlias "pNIC1-Port2" -Willing $False # Configure QoS policies for SMB-Direct (RoCE), Cluster Heartbeat and Default (all other) traffic New-NetQosPolicy -Name "SMB" -NetDirectPortMatchCondition 445 -PriorityValue8021Action 3 New-NetQosPolicy -Name "Cluster-HB" -Cluster -PriorityValue8021Action 7 New-NetQosPolicy -Name "Default" -Default -PriorityValue8021Action 0 # Enable flow control for SMB-Direct (RoCE) Enable-NetQosFlowControl -Priority 3 # Disable flow control for all other traffic Disable-NetQosFlowControl -Priority 0,1,2,4,5,6,7 # Apply QoS policy to Mellanox pNIC ports Enable-NetAdapterQos -Name "pNIC1-Port1" Enable-NetAdapterQos -Name "pNIC1-Port2" # Set minimum bandwidth - 50% for SMB-Direct, 1% for Cluster-HB New-NetQosTrafficClass "SMB" -Priority 3 -BandwidthPercentage 50 -Algorithm ETS New-NetQosTrafficClass "Cluster-HB" -Priority 7 -BandwidthPercentage 1 -Algorithm ETS # Disable flow control on physical adapters Set-NetAdapterAdvancedProperty -Name "pNIC1-Port1" -RegistryKeyword "*FlowControl" -RegistryValue 0 Set-NetAdapterAdvancedProperty -Name "pNIC1-Port2" -RegistryKeyword "*FlowControl" -RegistryValue 0 # Create SET-enabled vSwitch for Hyper-V using 2 LOM/OCP ports New-VMSwitch -Name "S2DSwitch" -NetAdapterName "LOM-Port1", "LOM-Port2" -EnableEmbeddedTeaming $true ` -AllowManagementOS $false # Note: Run the next command only if using 4 LOM ports # Create SET-enabled vSwitch for Hyper-V using 4 LOM ports #New-VMSwitch -Name "S2DSwitch" -NetAdapterName "LOM-Port1", "LOM-Port2", "LOM-Port3", "LOM-Port4" `-EnableEmbeddedTeaming $true -AllowManagementOS $false # Add host vNIC to the vSwitch just created Add-VMNetworkAdapter -SwitchName "S2DSwitch" -Name "vNIC-Host" -ManagementOS # Enable RDMA on Mellanox pNIC ports Enable-NetAdapterRDMA -Name "pNIC1-Port1" Enable-NetAdapterRDMA -Name "pNIC1-Port2" # Disable RDMA on LOM/OCP pNIC ports Disable-NetAdapterRDMA -Name "LOM-Port1" Disable-NetAdapterRDMA -Name "LOM-Port2"
Schritt 6: Prüfen ob RDMA aktiviert ist
#command to verify that RDMA is enabled on the Storage interfaces Get-NetAdapterRdma | ? Name -Like *pNIC* | Format-Table Name, Enabled
Schritt 7: Domainjoin durchführen (alle Hosts)
#command to add system to an Active Directory Domain Add-Computer -DomainName "domain.int" -Restart
Schritt 8: Failover Cluster testen und erstellen
#PowerShell commands to test and create a failover cluster Test-Cluster -Node HOST-S2D01.domain.int,HOST-S2D02.domain.int -Include Inventory, Network, "Storage Spaces Direct", "System Configuration" New-Cluster -Node HOST-S2D01,HOST-S2D02 -NoStorage
Schritt 9: Storage überprüfen
# command to check the status of cluster storage Get-StorageSubSystem *CLUSTERNAME
Schritt 10: Clusteranpassung durchführen
NUR AUF EINEM HOST AUSFÜHREN
#run command on only one node # Update the cluster networks that were created by default # First, look at what's there Get-ClusterNetwork | ft Name, Role, Address # Change the cluster network names so they're consistent with the individual nodes (Get-ClusterNetwork -Name "Cluster Network 1").Name = "Storage1" (Get-ClusterNetwork -Name "Cluster Network 2").Name = "Storage2" (Get-ClusterNetwork -Name "Cluster Network 3").Name = "Host" # Enable Cluster Only traffic on the Storage networks (Get-ClusterNetwork -Name "Storage1").Role = 1 (Get-ClusterNetwork -Name "Storage2").Role = 1 # Enable Cluster and Client traffic on the Host network (Get-ClusterNetwork -Name "Host").Role = 3 # Check to make sure the cluster network names and roles are set properly Get-ClusterNetwork | ft Name, Role, Address
Schritt 11: Witness erstellen
a. SMB-Freigabe muss erstellt werden
b. Set-ClusterQuorum -FileShareWitness \\Beispiel\Freigabe\s2d -Credential $(Get-Credential)#create clusterquorum
\\Beispiel\Freigabe\s2d
Schritt 12: S2D aktiveren
NUR AUF EINEM HOST AUSFÜHREN
Enable-ClusterStorageSpacesDirect Enable-ClusterStorageSpacesDirect S2D-Cluster -PoolFriendlyName S2D-Pool
Schritt 13: Clustervolume erstellen
#Add new Cluster Shared Volume
New-Volume -FriendlyName „CSV1“ -FileSystem ReFS -StoragePoolFriendlyName S2D* -ResiliencySettingName Mirror -Size 100GB #NTFS kann ebenfalls verwendet werden. Es kommt auf die Anforderungen an (z.B. Dedup)
Das Volume muss ggf. in der Datenträgerverwaltung aktiviert werden
Schritt 14: RDMA testen
RDMA testen: https://www.dell.com/support/kbdoc/de-de/000113009/konfigurieren-von-gast-rdma-auf-windows-server-2019
Zusammenfassung
Hier wurde ein switchless 2-Node S2D Cluster konfiguriert. Die Konfiguration ist fast ausschließlich in Powershell. Die Durchführung sollte für den Produktivbetrieb nur von Spezialisten durchgeführt werden.
Quellen:
https://lenovopress.lenovo.com/lp0064-microsoft-storage-spaces-direct-s2d-deployment-guide
https://learn.microsoft.com/de-de/windows-server/storage/storage-spaces/deploy-storage-spaces-direct
https://www.windowspro.de/marcel-kueppers/anleitung-storage-spaces-direct-2-knoten-einrichten