Guides Bulletproof Deployments #1 – Hyper-V

Teil 3 von 6

Teil 3: Network ATC

Network ATC für standardisierte und automatisierte Netzwerkkonfiguration im Hyper-V Cluster.

Voraussetzung

Network ATC erfordert mindestens Windows Server 2022.

Network ATC konfiguriert alle Nodes automatisch und einheitlich: Management, Compute und Storage. Den Intent einmal definieren, der Rest läuft selbst. In den meisten Fällen teilen sich Management und Compute die gleichen Adapter. Für RDMA Storage (S2D) empfehle ich dedizierte physische Adapter. Möglich sind auch separate Intents sowie eine Full-Converged-Konfiguration.

Network ATC – Disaggregated: Management, Compute und Storage auf getrennten Adaptern

Quelle: Microsoft Learn – Network ATC

Management und Compute Intent

Network Intent erstellen
# ===================== ANPASSEN =====================
$IntentName = "Management_Compute" # Name des Intents
$AdapterNamen = "SLOT 3 Port 1","SLOT 6 Port 1" # Adapter-Namen (Get-NetAdapter zur Ermittlung)
$VlanId = "123" # Management VLAN (optional, nur wenn getaggt)
# =================== NICHT ANPASSEN =================
# NetworkDirect deaktivieren falls kein RDMA auf den Management-Adaptern
$AdapterOverride = New-NetIntentAdapterPropertyOverrides
$AdapterOverride.NetworkDirect = 0
Add-NetIntent `
-ClusterName $ClusterName `
-Name $IntentName `
-Management `
-Compute `
-AdapterName $AdapterNamen `
-AdapterPropertyOverrides $AdapterOverride `
-Verbose
# Status prüfen – kann einige Minuten dauern bis alle Nodes konfiguriert sind
Get-NetIntentStatus -ClusterName $ClusterName
Management VLAN setzen (optional)
# Nur erforderlich wenn der Management-Adapter in einem getaggten VLAN betrieben wird
Set-VMNetworkAdapterIsolation `
-ManagementOS `
-VMNetworkAdapterName "vManagement($IntentName)" `
-IsolationMode Vlan `
-DefaultIsolationID $VlanId `
-AllowUntaggedTraffic $true

Storage Intent

Hinweis

Der Storage Intent ist nur erforderlich wenn Storage Spaces Direct (S2D) eingesetzt wird. Bei SAN-Anbindung entfällt dieser Schritt.

Der Storage Intent übernimmt die gesamte RDMA Konfiguration (QoS, VLANs, PFC, ETS, usw.)

Storage Intent erstellen
# ===================== ANPASSEN =====================
$StorageAdapter1 = "SLOT 3 Port 2" # Erster Storage-Adapter (Get-NetAdapter zur Ermittlung)
$StorageAdapter2 = "SLOT 6 Port 2" # Zweiter Storage-Adapter
# =================== NICHT ANPASSEN =================
Add-NetIntent `
-ClusterName $ClusterName `
-Name Storage `
-Storage `
-AdapterName $StorageAdapter1,$StorageAdapter2 `
-Verbose
Get-NetIntentStatus -ClusterName $ClusterName

QoS-Prioritäten anpassen (optional)

Die Standard-QoS-Werte sind für die meisten Umgebungen geeignet. Eine Anpassung ist nur dann erforderlich, wenn der Switch abweichende DSCP/802.1p-Prioritäten oder eine andere Bandbreitenverteilung vorgibt.

QoS-Prioritäten und Bandbreite anpassen
# ===================== ANPASSEN =====================
$PrioritySMB = 3 # 802.1p-Priorität für SMB/Storage-Traffic
$PriorityCluster = 5 # 802.1p-Priorität für Cluster-Heartbeat
$BandwidthSMB = 50 # Bandbreitenanteil SMB in Prozent
$BandwidthCluster = 1 # Bandbreitenanteil Cluster-Heartbeat in Prozent
# =================== NICHT ANPASSEN =================
$QosOverride = New-NetIntentQosPolicyOverrides
$QosOverride.PriorityValue8021Action_SMB = $PrioritySMB
$QosOverride.PriorityValue8021Action_Cluster = $PriorityCluster
$QosOverride.BandwidthPercentage_SMB = $BandwidthSMB
$QosOverride.BandwidthPercentage_Cluster = $BandwidthCluster
Set-NetIntent -Name Storage -QosPolicyOverrides $QosOverride -ClusterName $ClusterName

Storage VLANs setzen (optional)

Ohne explizite Konfiguration vergibt Network ATC automatisch VLANs. Nur setzen, wenn bestimmte VLAN-IDs von der Netzwerkinfrastruktur vorgegeben sind.

Storage VLANs konfigurieren
# ===================== ANPASSEN =====================
$StorageVLAN1 = 101 # VLAN für erstes Storage-Netzwerk
$StorageVLAN2 = 102 # VLAN für zweites Storage-Netzwerk
# =================== NICHT ANPASSEN =================
Set-NetIntent -Name Storage -StorageVLANs $StorageVLAN1,$StorageVLAN2 -ClusterName $ClusterName

Storage IPs manuell zuweisen (optional)

Standardmäßig vergibt Network ATC Storage-IPs automatisch. Manuelle Adressen sind nur erforderlich wenn das Storage-Netzwerk nicht exklusiv für dieses Cluster verwendet wird.

Storage IPs manuell zuweisen
# ===================== ANPASSEN =====================
$SMBNet1 = "198.51.100." # Netzwerk-Präfix Storage 1 (ohne letzte Stelle)
$SMBNet2 = "203.0.113." # Netzwerk-Präfix Storage 2 (ohne letzte Stelle)
$StartIP = 21 # Erste Host-Adresse. Wird pro Node hochgezählt
$ClusterName = "Cluster1" # Name des Clusters
# =================== NICHT ANPASSEN =================
$StorageOverride = New-NetIntentStorageOverrides
$StorageOverride.EnableAutomaticIPGeneration = $false
Set-NetIntent `
-Name Storage `
-StorageOverrides $StorageOverride `
-StorageVLANs $StorageVLAN1,$StorageVLAN2 `
-QosPolicyOverrides $QosOverride `
-ClusterName $ClusterName
$ClusterNodes = (Get-ClusterNode -Cluster $ClusterName).Name
foreach ($Server in $ClusterNodes) {
New-NetIPAddress -IPAddress ($SMBNet1 + $StartIP.ToString()) -InterfaceAlias "vSMB(Storage#$StorageAdapter1)" -CimSession $Server -PrefixLength 24
New-NetIPAddress -IPAddress ($SMBNet2 + $StartIP.ToString()) -InterfaceAlias "vSMB(Storage#$StorageAdapter2)" -CimSession $Server -PrefixLength 24
$StartIP++
}

Die Konfiguration hier deckt das, was in der Praxis am häufigsten vorkommt. Für abweichende Setups wie separate Compute-Intents lohnt sich ein Blick in die offizielle Dokumentation: Network ATC – Microsoft Learn


Storage Anbindung

Je nach Infrastruktur erfolgt die Storage-Anbindung auf zwei unterschiedlichen Wegen. Wähle den passenden Teil: