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
  • 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

    These commands did not work for me, I dont know how and should I put computer name there...

    PS C:\Windows\system32> Get-CimInstance -Namespace root\mscluster -ComputerName $hyperv5 -ClassName MScluster_ClusterSer
    vice | Invoke-CimMethod -Name EnableHealth
    Get-CimInstance : Invalid namespace
    At line:1 char:1
    + Get-CimInstance -Namespace root\mscluster -ComputerName $hyperv5 -Cla ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : MetadataError: (root\mscluster:MScluster_ClusterService:String) [Get-CimInstance], CimEx
       ception
        + FullyQualifiedErrorId : HRESULT 0x8004100e,Microsoft.Management.Infrastructure.CimCmdlets.GetCimInstanceCommand


    Please remember to mark my post as an answer, if I really helped you out, or vote if usefull. Thank you!

    Wednesday, February 07, 2018 8:01 AM
  • Thanks stephc_msft! This worked for me as well.

    yannara, just copy and paste the Get-CimInstance commands as is to enable and disable health service on the cluster. I was able to remove the pulled physical disk from Server Manager during the period where I had enabled the health service.

    Monday, February 12, 2018 8:38 PM
  • yannara, just copy and paste the Get-CimInstance commands..

    Tried, same result.

    Please remember to mark my post as an answer, if I really helped you out, or vote if usefull. Thank you!

    Monday, February 12, 2018 9:33 PM
  • Sounds like it might be a separate issue from the disk removal on a 2016 clustered storage space. Are you able to post a screen grab of the EnableHealth command and error and of your entire Storage Pool page from Server Manager?
    Tuesday, February 13, 2018 12:52 AM
  • Sounds like it might be a separate issue from the disk removal on a 2016 clustered storage space. Are you able to post a screen grab of the EnableHealth command and error and of your entire Storage Pool page from Server Manager?

    No, I already solved my issue by putting disks into 2012 server and enabling virtual disks there. Indeed 2016 wasnt capable of doing this, but 2012 did.

    Please remember to mark my post as an answer, if I really helped you out, or vote if usefull. Thank you!

    Tuesday, February 13, 2018 8:33 AM