<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.wingeav.de/index.php?action=history&amp;feed=atom&amp;title=Storage_Spaces_Direct_%28S2D%29_Migration_auf_neuen_Cluster</id>
	<title>Storage Spaces Direct (S2D) Migration auf neuen Cluster - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.wingeav.de/index.php?action=history&amp;feed=atom&amp;title=Storage_Spaces_Direct_%28S2D%29_Migration_auf_neuen_Cluster"/>
	<link rel="alternate" type="text/html" href="https://wiki.wingeav.de/index.php?title=Storage_Spaces_Direct_(S2D)_Migration_auf_neuen_Cluster&amp;action=history"/>
	<updated>2026-04-17T19:28:22Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in MyWiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wiki.wingeav.de/index.php?title=Storage_Spaces_Direct_(S2D)_Migration_auf_neuen_Cluster&amp;diff=274&amp;oldid=prev</id>
		<title>Rueling: Die Seite wurde neu angelegt: „Hier wird die Einrichtung bzw. Migration eines Storage Spaces Direct (S2D) Clusters beschrieben  == Einrichtung Windows Server ==  Install-WindowsFeature -Name &quot;Hyper-V&quot;, &quot;Failover-Clustering&quot;, &quot;Data-Center-Bridging&quot;, &quot;RSAT-Clustering-PowerShell&quot;, &quot;Hyper-V-PowerShell&quot;, &quot;FS-FileServer&quot;,&quot;Hyper-V-Tools&quot;,&quot;RSAT-Clustering-Mgmt&quot;   Test-Cluster -Node server-s2d-p1, server-s2d-p2, server-s2d-p3, server-s2d-p4 -Include &quot;Storage Spaces Direct&quot;,&quot;inventory&quot;,&quot;Network&quot;…“</title>
		<link rel="alternate" type="text/html" href="https://wiki.wingeav.de/index.php?title=Storage_Spaces_Direct_(S2D)_Migration_auf_neuen_Cluster&amp;diff=274&amp;oldid=prev"/>
		<updated>2025-10-10T14:31:44Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „Hier wird die Einrichtung bzw. Migration eines Storage Spaces Direct (S2D) Clusters beschrieben  == Einrichtung Windows Server ==  Install-WindowsFeature -Name &amp;quot;Hyper-V&amp;quot;, &amp;quot;Failover-Clustering&amp;quot;, &amp;quot;Data-Center-Bridging&amp;quot;, &amp;quot;RSAT-Clustering-PowerShell&amp;quot;, &amp;quot;Hyper-V-PowerShell&amp;quot;, &amp;quot;FS-FileServer&amp;quot;,&amp;quot;Hyper-V-Tools&amp;quot;,&amp;quot;RSAT-Clustering-Mgmt&amp;quot;   Test-Cluster -Node server-s2d-p1, server-s2d-p2, server-s2d-p3, server-s2d-p4 -Include &amp;quot;Storage Spaces Direct&amp;quot;,&amp;quot;inventory&amp;quot;,&amp;quot;Network&amp;quot;…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Hier wird die Einrichtung bzw. Migration eines Storage Spaces Direct (S2D) Clusters beschrieben&lt;br /&gt;
&lt;br /&gt;
== Einrichtung Windows Server ==&lt;br /&gt;
 Install-WindowsFeature -Name &amp;quot;Hyper-V&amp;quot;, &amp;quot;Failover-Clustering&amp;quot;, &amp;quot;Data-Center-Bridging&amp;quot;, &amp;quot;RSAT-Clustering-PowerShell&amp;quot;, &amp;quot;Hyper-V-PowerShell&amp;quot;, &amp;quot;FS-FileServer&amp;quot;,&amp;quot;Hyper-V-Tools&amp;quot;,&amp;quot;RSAT-Clustering-Mgmt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 Test-Cluster -Node server-s2d-p1, server-s2d-p2, server-s2d-p3, server-s2d-p4 -Include &amp;quot;Storage Spaces Direct&amp;quot;,&amp;quot;inventory&amp;quot;,&amp;quot;Network&amp;quot;,&amp;quot;System Configuration&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 New-VMSwitch -Name VMNetwork -AllowManagementOS $false -NetAdapterName &amp;quot;VMNetwork1&amp;quot;,&amp;quot;VMNetwork2&amp;quot; -EnableEmbeddedTeaming $true&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Auf SWITCH-S2D-P1 und P2 auf den jeweiligen Ports MTU auf 9000 setzen und den Port korrekt benennen&amp;lt;br&amp;gt;&lt;br /&gt;
- VLAN konfigurieren&lt;br /&gt;
&lt;br /&gt;
SMB1 Interface als Management und als Cluster SMB verwenden. Das wird erreicht, in den es als virtueller Switch konfiguriert wird und noch ein MGMT Adapter hinzugefügt wird&lt;br /&gt;
 New-VMSwitch -Name SMB1 -AllowManagementOS $true -NetAdapterName &amp;quot;SMB1&amp;quot;&lt;br /&gt;
 Add-VMNetworkAdapter –ManagementOS –Name &amp;quot;MGMT&amp;quot; –SwitchName &amp;quot;SMB1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 Enable-NetAdapterRdma -Name &amp;quot;vEthernet (SMB1)&amp;quot;&lt;br /&gt;
 Enable-NetAdapterRdma -Name SMB2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Set-NetQosDcbxSetting -Willing 0 -Confirm:$false&lt;br /&gt;
 New-NetQosPolicy &amp;quot;SMBDirect&amp;quot; -NetDirectPortMatchCondition 445 -PriorityValue8021Action 3&lt;br /&gt;
 Enable-NetQosFlowControl -Priority 3&lt;br /&gt;
&lt;br /&gt;
 Set-NetAdapterAdvancedProperty -Name &amp;quot;SMB2&amp;quot; -RegistryKeyword &amp;quot;*JumboPacket&amp;quot; -RegistryValue 9014 &lt;br /&gt;
 Set-NetAdapterAdvancedProperty -Name &amp;quot;SMB2&amp;quot; -RegistryKeyword &amp;quot;*FlowControl&amp;quot; -RegistryValue 3 # = RoCEv1&lt;br /&gt;
 Set-NetAdapterAdvancedProperty -Name &amp;quot;SMB2&amp;quot; -RegistryKeyword &amp;quot;VlanID&amp;quot; -RegistryValue 72&lt;br /&gt;
 Set-NetAdapterAdvancedProperty -Name &amp;quot;SMB2&amp;quot; -RegistryKeyword &amp;quot;*NetworkDirectTechnology&amp;quot; -RegistryValue 3&lt;br /&gt;
&lt;br /&gt;
 Set-NetAdapterAdvancedProperty -Name &amp;quot;vEthernet (SMB1)&amp;quot; -RegistryKeyword &amp;quot;*JumboPacket&amp;quot; -RegistryValue 9014 &lt;br /&gt;
 Set-NetAdapterAdvancedProperty -Name &amp;quot;vEthernet (SMB1)&amp;quot; -RegistryKeyword &amp;quot;*NetworkDirect&amp;quot; -RegistryValue 1&lt;br /&gt;
 Set-NetAdapterAdvancedProperty -Name &amp;quot;SMB1&amp;quot; -RegistryKeyword &amp;quot;*JumboPacket&amp;quot; -RegistryValue 9014 &lt;br /&gt;
 Set-NetAdapterAdvancedProperty -Name &amp;quot;SMB1&amp;quot; -RegistryKeyword &amp;quot;*FlowControl&amp;quot; -RegistryValue 3 # = RoCEv1&lt;br /&gt;
 Set-NetAdapterAdvancedProperty -Name &amp;quot;SMB1&amp;quot; -RegistryKeyword &amp;quot;*NetworkDirectTechnology&amp;quot; -RegistryValue 3&lt;br /&gt;
&lt;br /&gt;
 Set-VMNetworkAdapterVlan -ManagementOS -VlanId 11 -VMNetworkAdapterName SMB1 -Access&lt;br /&gt;
&lt;br /&gt;
 New-NetIPAddress -InterfaceIndex (Get-NetAdapter -Name &amp;quot;vEthernet (SMB1)&amp;quot;).ifIndex -IPAddress 192.168.11.90 -AddressFamily IPv4 -PrefixLength 24&lt;br /&gt;
 New-NetIPAddress -InterfaceIndex (Get-NetAdapter -Name &amp;quot;SMB2&amp;quot;).ifIndex             -IPAddress 192.168.12.90 -AddressFamily IPv4 -PrefixLength 24&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 New-Cluster -Name cluster-s2d-p3 -Node server-s2d-p5, server-s2d-p6, server-s2d-p7, server-s2d-p8 -NoStorage -StaticAddress 192.168.100.129&lt;br /&gt;
- Witness zum Witness Fileserver verbinden&lt;br /&gt;
&lt;br /&gt;
 Enable-ClusterStorageSpacesDirect -CacheState Disabled -PoolFriendlyName &amp;quot;FMB-NVME-Pool&amp;quot; -CollectPerformanceHistory $true&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 New-ClusterFaultDomain -Name &amp;quot;Rack 1&amp;quot; -FaultDomainType Rack&lt;br /&gt;
 New-ClusterFaultDomain -Name &amp;quot;Rack 2&amp;quot; -FaultDomainType Rack&lt;br /&gt;
 Set-ClusterFaultDomain -Name &amp;quot;server-s2d-p5&amp;quot; -FaultDomain &amp;quot;Rack 1&amp;quot;&lt;br /&gt;
 Set-ClusterFaultDomain -Name &amp;quot;server-s2d-p6&amp;quot; -FaultDomain &amp;quot;Rack 1&amp;quot;&lt;br /&gt;
 Set-ClusterFaultDomain -Name &amp;quot;server-s2d-p7&amp;quot; -FaultDomain &amp;quot;Rack 2&amp;quot;&lt;br /&gt;
 Set-ClusterFaultDomain -Name &amp;quot;server-s2d-p8&amp;quot; -FaultDomain &amp;quot;Rack 2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Replica: ===&lt;br /&gt;
 New-Volume  -FriendlyName SRLogs -FileSystem ReFS -Size 150GB -ResiliencySettingName Mirror -NumberOfDataCopies 3 -AccessPath L:\&lt;br /&gt;
!!! Achtung: Die Volumes inkl. Log Volume müssen identisch sein. Selbe Größe, selbe Mirror (2-way oder 3-way) usw. &lt;br /&gt;
Hinweis: mit &amp;gt;&amp;gt;&amp;gt;Move-ClusterGroup -Name &amp;quot;Available Storage&amp;quot; -Node &amp;quot;SERVER-S2D-P5&amp;quot;&amp;lt;&amp;lt;&amp;lt; kann man den Knoten festlegen auf dem neue Volumes erstellt werden&lt;br /&gt;
 Move-ClusterGroup -Name &amp;quot;Available Storage&amp;quot; -Node &amp;quot;SERVER-S2D-P1&amp;quot;&lt;br /&gt;
 Move-ClusterGroup -Name &amp;quot;Available Storage&amp;quot; -Node &amp;quot;SERVER-S2D-P5&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
 Grant-SRAccess -ComputerName server-s2d-p1 -Cluster cluster-s2d-p2&lt;br /&gt;
 Grant-SRAccess -ComputerName server-s2d-p5 -Cluster cluster-s2d-p1&lt;br /&gt;
Prüfen mit:&lt;br /&gt;
 Get-SRAccess --&amp;gt; auf beiden Clustern&lt;br /&gt;
&lt;br /&gt;
 Test-SRTopology -SourceComputerName server-s2d-p1 -SourceVolumeName C:\ClusterStorage\VM1 -SourceLogVolumeName L: -DestinationComputerName server-s2d-p5 -DestinationVolumeName C:\ClusterStorage\VM1 -DestinationLogVolumeName L: -ResultPath C:\Temp\ -DurationInMinutes 5&lt;br /&gt;
==&amp;gt; Hinweis: Volume VM1 und das Volume L: müssen auf dem gleichen Knoten liegen. Der Befehl muss auch von dem Knoten ausgeführt werden und als Source muss dieser Knoten angegeben werden. Das gleiche gilt für das Ziel. Auch da müssen Volume VM1 und L: auf dem selben Knoten liegen der als Ziel angegeben wird&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 New-SRGroup -ComputerName cluster-s2d-p1.fm.db.de -Name &amp;quot;SRGroupA&amp;quot; -VolumeName &amp;quot;C:\ClusterStorage\VM1&amp;quot; -LogVolumeName &amp;quot;L:\&amp;quot;&lt;br /&gt;
 New-SRGroup -ComputerName cluster-s2d-p2.fm.db.de -Name &amp;quot;SRGroupB&amp;quot; -VolumeName &amp;quot;C:\ClusterStorage\VM1&amp;quot; -LogVolumeName &amp;quot;L:\&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 New-SRPartnership `&lt;br /&gt;
  -SourceComputerName cluster-s2d-p1.fm.db.de `&lt;br /&gt;
  -SourceRGName &amp;quot;SRGroupA&amp;quot; `&lt;br /&gt;
  -DestinationComputerName cluster-s2d-p2.fm.db.de `&lt;br /&gt;
  -DestinationRGName &amp;quot;SRGroupB&amp;quot; `&lt;br /&gt;
  -ReplicationMode Synchronous &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Replikation umdrehen:&lt;br /&gt;
 Set-SRPartnership -NewSourceComputerName cluster-s2d-p2-SourceRGName SRGroupB -DestinationComputerName cluster-s2d-p1 -DestinationRGName SRGroupA&lt;br /&gt;
&lt;br /&gt;
Volume hinzufügen:&lt;br /&gt;
 Invoke-CimMethod -Namespace &amp;#039;root/Microsoft/Windows/StorageReplica&amp;#039; `&lt;br /&gt;
    -ClassName &amp;#039;MSFT_WvrAdminTasks&amp;#039; `&lt;br /&gt;
    -MethodName &amp;#039;SetPartnershipAddVolumes&amp;#039; `&lt;br /&gt;
    -Arguments @{&lt;br /&gt;
        SourceComputerName = &amp;quot;cluster-s2d-p1&amp;quot;&lt;br /&gt;
        SourceRGName = &amp;quot;SRGroupA&amp;quot;&lt;br /&gt;
        DestinationComputerName = &amp;quot;cluster-s2d-p2&amp;quot;&lt;br /&gt;
        DestinationRGName = &amp;quot;SRGroupB&amp;quot;&lt;br /&gt;
        SourceAddVolumePartnership = @(&amp;quot;C:\ClusterStorage\Mirror&amp;quot;)&lt;br /&gt;
        DestinationAddVolumePartnership = $asd&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn es Probleme gibt, hilft ggf. folgendes&lt;br /&gt;
* Ziel Offline nehmen&lt;br /&gt;
* Clear-SRMetadata -ComputerName cluster-s2d-p2.fm.db.de -AllPartitions -AllLogs -Force&lt;br /&gt;
* Clear-SRMetadata -ComputerName cluster-s2d-p1.fm.db.de -AllPartitions -AllLogs -Force&lt;br /&gt;
* &amp;lt;b&amp;gt;Restart-Service -Name StorageReplica (auf allen Knoten)&amp;lt;/b&amp;gt;&lt;br /&gt;
* Danach SRGroup und Partnership neu erstellen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Partitionen für Storage Replica erstellen: ====&lt;br /&gt;
 # Sammelt die Virtual Disk bzw. StoargeTier Größen ein&lt;br /&gt;
 $storageTable = @()&lt;br /&gt;
 Get-VirtualDisk | % {&lt;br /&gt;
 	$Mirror=0&lt;br /&gt;
 	$Parity=0&lt;br /&gt;
 	$Name=$_.FriendlyName&lt;br /&gt;
 	if ($_.ResiliencySettingName -eq &amp;quot;Mirror&amp;quot;) {&lt;br /&gt;
 		$Mirror=$_.Size&lt;br /&gt;
 	} else {&lt;br /&gt;
 		$tiers = $_ | Get-StorageTier&lt;br /&gt;
 		foreach ($tier in $tiers) {&lt;br /&gt;
 			if ($tier.TierClass -eq &amp;quot;Capacity&amp;quot;) {$Parity = $tier.size}&lt;br /&gt;
 			if ($tier.TierClass -eq &amp;quot;Performance&amp;quot;) {$Mirror = $tier.size}&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	$object = [pscustomobject]@{Name = $name;Mirror = $Mirror;Parity=$Parity}&lt;br /&gt;
 	$storageTable += $object&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
erstellt die Virtual Disks auf dem Ziel Cluster mit 10GB weniger Speicherplatz. Grund ist, dass bei der Erstellung nicht die komplette Größe der Virtual Disk verwendet wird, sondern ein paar MB/GB weniger. Das erweitern um 1GB funktioniert (mit Powershell?) nicht sauber, daher ziehe ich 10GB ab und mach danach ein Resize auf die volle Größe. Das muss bei Mirror und bei Mirror Accelerated gemacht werden&lt;br /&gt;
&lt;br /&gt;
 $table = Import-Csv C:\Temp\StorageTable.csv -Delimiter &amp;quot;;&amp;quot;&lt;br /&gt;
 foreach ($disk in $table) {&lt;br /&gt;
 	if ($disk.Parity -eq 0) {&lt;br /&gt;
 		New-Volume -StoragePoolFriendlyName &amp;quot;FMB-S2D-Pool&amp;quot; -FriendlyName $disk.Name -Size $($disk.Mirror - 10GB) -FileSystem CSVFS_ReFS -ResiliencySettingName Mirror -NumberOfDataCopies 3&lt;br /&gt;
 		Get-VirtualDisk $disk.Name |Resize-VirtualDisk -Size $disk.Mirror&lt;br /&gt;
 	} else 	{&lt;br /&gt;
 		New-Volume -FriendlyName $disk.Name -FileSystem CSVFS_ReFS -StoragePoolFriendlyName &amp;quot;FMB-S2D-Pool&amp;quot; -StorageTierFriendlyNames MirrorOnSSD, ParityOnSSD -StorageTierSizes $disk.Mirror, $($disk.Parity - 10GB)&lt;br /&gt;
 		Get-StorageTier &amp;quot;$($disk.Name)-ParityOnSSD&amp;quot; | Resize-StorageTier -Size $disk.Parity&lt;br /&gt;
 	}&lt;br /&gt;
 	$partition = Get-VirtualDisk $disk.name  | Get-Disk | Get-Partition | where PartitionNumber -eq 2&lt;br /&gt;
 	Start-Sleep -Seconds 2&lt;br /&gt;
 	$partition | Resize-Partition -Size ($partition | Get-PartitionSupportedSize).SizeMax&lt;br /&gt;
   }&lt;/div&gt;</summary>
		<author><name>Rueling</name></author>
	</entry>
</feed>