Shared Storage Spaces mit Windows Server 2016: Datenträger können nicht aus dem Storage Pool entfernt werden
Bei einem Scale-Out File Server Failover Cluster mit drei SAS JBODs unter Windows Server 2016 ist aufgefallen, dass sich Datenträger, die durch einen Defekt ausgetauscht werden mussten, nicht aus dem Storage Pool entfernen.
In einem Storage Pool mit 84 Datenträgern (sowohl SSDs als auch HDDs) sollten mehrere Datenträger, die defekt waren und ausgetauscht werden sollen, aus dem Pool entfernt werden. Grundlage für das Entfernen ist (weiterhin, auch wenn es primär um Server 2012 R2 geht) der folgende Artikel:
Replace Failed Disks and Repair JBODs for Storage Spaces in Windows Server

Die Datenträger wurden nun eingelesen, gespeichert und versucht, aus dem Pool zu entfernen.
$FailedDisk = Get-PhysicalDisk | Where-Object –Property HealthStatus –ne Healthy
$FailedDisk | Set-PhysicalDisk –Usage Retired
$Pool = $FailedDisk | Get-StoragePool
Remove-PhysicalDisk –StoragePool $Pool -PhysicalDisks $FailedDisk
Unter Windows Server 2012 R2 führten die Befehle dazu, dass die als "Retired" markierten Datenträger aus dem Pool entfernt wurden. Unter Windows Server 2016 kam allerdings sofort eine Fehlermeldung und die Datenträger wurden nicht aus dem Pool entfernt.
PS C:\> Remove-PhysicalDisk -PhysicalDisks $FailedDisk -StoragePoolFriendlyName <Name> -Confirm:$false -Verbose
VERBOSE: Removing a physical disk will cause problems with the fault tolerance capabilities of the following storage pool: <Name>.
Remove-PhysicalDisk : Failed
At line:1 char:1
+ Remove-PhysicalDisk -PhysicalDisks $FailedDisk -StoragePoolFriendlyNa …
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (StorageWMI:ROOT/Microsoft/…_StorageCmdlets) [Remove-PhysicalDisk], CimException
+ FullyQualifiedErrorId : StorageWMI 4,Remove-PhysicalDisk
Die Lösung in diesem Fall ist die folgende:
Ein Windows Server 2016 Failover Cluster in einem Shared JBOD Design hat standardmäßig keinen "Health Service" aktiv. Wegen dieser fehlenden Ressource kann die Disk nicht entfernt werden. Im Failover Cluster muss nun dieser "Health Service" aktiviert werden, dann kann der Datenträger entfernt werden und danach kann der "Health Service" wieder entfernt werden. Dies geschieht am einfachsten per Windows PowerShell:
$Clustername = „<Clustername>“
Get-CimInstance -Namespace root\mscluster -ComputerName $ClusterName -ClassName MScluster_ClusterService | Invoke-CimMethod -Name EnableHealth
Remove-PhysicalDisk -PhysicalDisks (Get-PhysicalDisk | ? OperationalStatus -eq ‚Lost Communication‘) -StoragePoolFriendlyName Pool1
Get-CimInstance -Namespace root\mscluster -ComputerName $ClusterName -ClassName MScluster_ClusterService | Invoke-CimMethod -Name DisableHealth
Gefunden habe ich die Lösung im Microsoft Forum:
Remove-PhysicalDisk fails with Failover Clustering and Storage Spaces in Windows Server 2016