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

Jan Kappen
 

Jan Kappen ist ausgebildeter Fachinformatiker in der Richtung Systemintegration. Er hat seine Ausbildung im Sommer 2008 abgeschlossen und arbeitete bis August 2018 bei der Rachfahl IT-Solutions GmbH & Co. KG. Seit September 2018 arbeitet er als Senior Netzwerk- und Systemadministrator bei einem großen mittelständischen Unternehmen im schönen Sauerland. Jan Kappen ist unter anderen MCITP Server Administrator, Enterprise Administrator und Enterprise Messaging Administrator 2010 sowie MCTS für System Center Virtual Machine Manager 2008, Windows Server 2008 Active Directory, Windows Server Virtualization und Windows Server 2008 Network Infrastructure. Seit 2015 wird Jan Kappen im Bereich "File System Storage" bzw. "Cloud & Datacenter Management" für seine Expertise und seine Community-Arbeit mit dem MVP Award von Microsoft ausgezeichnet.