none
Remove-PhysicalDisk fails with Failover Clustering and Storage Spaces in Windows Server 2016

    Question

  • Does Remove-PhysicalDisk in a Failover Cluster work in Windows Server 2016?  Has anyone else been able to get this command to work in 2016?

    I have multiple systems running Windows 2016, Failover Clustering and Storage Spaces.  But when a PhysicalDisk is set to retired and the replacement drive is added, the Remove-PhysicalDisk command fails with the following VERBOSE message:

    VERBOSE: Removing a physical disk will cause problems with the fault tolerance capabilities of the following storage pool: "pool_hdd".

    The old PhysicalDisk has been set to Retired and the Mirror VirtualDisks show as OperationalStatus of OK and Healthy as well as the StoragePool shows as OK and Healthy.  I had no issues with this command Windows 2012 R2, only Windows 2016.  Get-VirtualDisk | Repair-VirtualDisk shows as Completed in Get-StorageJob.

    Test Scenario:
    Two Compute nodes running Windows 2016 Standard with or without GUI/Desktop, running Failover Clustering in 2016 mode, single Storage Spaces StoragePool in 2016 Version, three VirtualDisks formatted ReFS, Mirror, one for quorum, two others as Failover Clustering File Shares.  Set-StoragePool to RetireMissingPhysicalDisks Always, then pull drive, replace with new drive.  Watch for Repair to complete and VirtualDisks to go from InService to OK, then run Remove-PhysicalDisk on the retired drive.

    Here is the full error that I get:

    PS C:\> Remove-PhysicalDisk -PhysicalDisks $PDToRemove -StoragePoolFriendlyName "pool_hdd" -Confirm:$false -Verbose
    VERBOSE: Removing a physical disk will cause problems with the fault tolerance capabilities of the following storage pool: "pool_hdd".
    Remove-PhysicalDisk : Failed
    Activity ID: {176b6129-043d-46df-b8ee-597a3ba9beb1}
    At line:1 char:1
    + Remove-PhysicalDisk -PhysicalDisks $PDToRemove -StoragePoolFriendlyNa ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : NotSpecified: (StorageWMI:ROOT/Microsoft/..._StorageCmdlets) [Remove-PhysicalDisk], CimException
        + FullyQualifiedErrorId : StorageWMI 4,Remove-PhysicalDisk

    Thursday, January 05, 2017 10:08 PM

Answers

  • Note this is shared storage spaces on 2016

    A work around is to start the health resource on the cluster before attempting to remove the retired disk (the health resource isn't normally running in shared storage configurations)

    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

    • Marked as answer by Chad Beutler Friday, June 30, 2017 1:32 AM
    Thursday, June 22, 2017 6:49 PM

All replies

  • Hi,

    Please run get-physicalDisk to make sure the disk is retired.

    And is there enough space on the remaining disks for the Mirror data of your Resilient storage?

    The replacement drive you add must have sufficient space to allow for reallocation of all data.

    You could also check the thread discussed before to do a check.

    https://social.technet.microsoft.com/Forums/en-US/3a7e2a7d-4ad7-48cc-8165-0d6673e37436/degraded-storage-spaces-storage-pool-after-single-hdd-failure?forum=winserveressentials

    Best Regards,

    Mary


    Please remember to mark the replies as answers if they help.
    If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com.

    Friday, January 06, 2017 7:21 AM
    Moderator
  • Thanks for your response.

    The replacement drives have already been added to the StoragePool and I have 21.3 TB Free Space.   The old drives are set to Retired.  VirtualDisks shows as Healthy and OK and Repair runs without issues.

    This appears to be a bug in Windows 2016 as I can do the same in 2012 R2 with NTFS without problems.

    PhysicalDiskSlot42      Z4D2FMAD0000R544N2YY False   Lost Communication Warning      Retired       5.46 TB

    Friday, January 06, 2017 4:54 PM
  • Hi Chad Beutler,

    >This appears to be a bug in Windows 2016 as I can do the same in 2012 R2 with NTFS without problems

    For this, I'm afraid you might need to contact  Microsoft Customer Support Services (CSS) to confirm.

    To obtain the phone numbers for specific technology request, please refer to the website listed below:

    https://www.microsoft.com/en-us/worldwide.aspx

    In addition, submit your issue on the "To improve Windows Server I suggest you " on server feedback site.

    https://windowsserver.uservoice.com/forums/295047-general-feedback

    Appreciate your support and understanding.

    Best Regards,

    Mary


    Please remember to mark the replies as answers if they help.
    If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com.

    Monday, January 09, 2017 8:52 AM
    Moderator
  • Hello!

    We have same problem. Did you find some issue?

    Best Regards,

    Mark

    Saturday, April 15, 2017 12:21 AM
  • Same problem here!
    Thursday, April 27, 2017 2:59 PM
  • Unfortunately, I have been unable to get it working.  I opened the case with Microsoft in January and the problem still remains unfixed.  I test it every month with the latest WS2016 Cumulative Update and still have the same issues. This is holding me back from ever implementing Storage Spaces on WS2016.

    The latest from Microsoft is that it is with the Product Team.  Maybe if we get additional tickets we can increase the priority?

    1) The latest CU does not fix the problem of repairing a virtualdisk when the pool and virtualdisk are on different nodes.
    2) The latest CU does not fix the problem of removing a retired disk from the pool, even when it shows the retired physicaldisk is not part of the virtualdisk.

    Remove-PhysicalDisk works fine on an unpatched WS2016 installation, but obviously that is not a solution.  Also, uninstalling a Cumulative Update results in a cluster node that will no longer will boot.  If anyone gets this to work, let me know.  Thanks.
    Wednesday, May 24, 2017 6:13 PM
  • Note this is shared storage spaces on 2016

    A work around is to start the health resource on the cluster before attempting to remove the retired disk (the health resource isn't normally running in shared storage configurations)

    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

    • Marked as answer by Chad Beutler Friday, June 30, 2017 1:32 AM
    Thursday, June 22, 2017 6:49 PM
  • stephc_msft,

    Thanks for the response.  It is very helpful.  I can confirm that the EnableHealth workaround allows me to run the Remove-PhysicalDisk successfully and remove the failed drive from the StoragePool.  Thanks.

    Friday, June 30, 2017 1:35 AM