none
Remove PhysicalDisk from Storage Pool without replacement? RRS feed

  • Question

  • Currently I'm testing the Advantages and Disadvantages of Storage Pools in my Home-Environment. The test server looks like this:

    Windows Server 2012 R2 Datacenter ("Student-Edition")
    2*400 GB HDD
    4*1000 GB HDD
    2*3000 GB HDD

    First, I wanted to test a "replacement" Case: I created a storage Pool of 2*1 + 2*3 added some data to a (mirrored) virtual hard disk, and disconnected one 1 TB drive. The Pool gets reported as unhealty, and with a second Disk i was able to do the regular replacement (Attach new Physical Disk, Remove old & Rebuild)

    Now I wanted to test the case, how I can rebuild full functionality, when no proper replacement-disk is available:

    Therefore I created another Pool of some Harddisks, added some data (arround 200 GB), disconnected one drive and tried various ways to get back to health - nothing worked:

    Using the UI it's impossible to do anything at all. After selecting "remove" on the disconnected drive, it simple keeps telling me, that there is no proper replacement disk found.

    Then I followed some instructions i found elsewhere on technet:

    1. mark the missing disks as "retired":
     Set-PhysicalDisk -FriendlyName <PhysicalDiskxxx> -Usage Retired
    
    2. rebuild each of your virtual disks:
    
    Repair-VirtualDisk -FriendlyName <Virtual Diskxxx>
    
    3. Once everything is finished, try to remove the disk from the pool again:
    
     Remove-PhysicalDisk -FriendlyName <PhysicalDiskxxx>

    1+2 worked fine, and I noted the disconnected disks usage dropping from ~ 30GB to 256MB

    All virtual Disks reporting a "health" state now.

    However, it was not possible to remove the disk: The ui told me, that it's gonna rebuild after clicking "remove" - but simply nothing happened - not after several hours (virtual Drives are "thin", so not much data to move).

    Using the Powershell it keeps telling me, that theres an Issue with the "FriendlyName" Property:

    I noted, that the Disk was prior shown as "PhysicalDisk-14" - but that did not change anyting.

    So I followed another approach, using the following command:

    It looked promising, but finally failed with "Not enough available capacity" - which is ofc. not true. (Only assigned around 1000 GB to the virtual disks, of which I used around 200)

    So, the question is: How do i remove a (disconnected, retired) disk from a storage pool that has enough capacity left WITHOUT replacing the Disk immediately?




    • Edited by dognose Tuesday, April 15, 2014 6:15 PM
    Tuesday, April 15, 2014 5:46 PM

Answers

  • Hi,

    From the description it seems that you are going to remove a physical disk from a storage pool without a replacement - this is not allowed in Windows Server 2012 or R2. 

    By design it requests a replacement - if a mirrored or parity virtual disk is created, they will keep working with a disconnected physical disk and waiting for a replacement - but we will not able to just delete one of them to change the structure once it is created. 


    If you have any feedback on our support, please send to tnfsl@microsoft.com.

    Thursday, April 17, 2014 4:10 AM
    Moderator

All replies

  • Heres a Screenshot of the current State:

    Each Virtual Disk is Healty, but cannot remove the (barely empty) disconnected physical drive:

    (hyperv1 is just the hostname, cause it runs VMs - Disks are all physical and attached to that host)


    • Edited by dognose Tuesday, April 15, 2014 6:04 PM
    Tuesday, April 15, 2014 6:04 PM
  • Hi,

    From the description it seems that you are going to remove a physical disk from a storage pool without a replacement - this is not allowed in Windows Server 2012 or R2. 

    By design it requests a replacement - if a mirrored or parity virtual disk is created, they will keep working with a disconnected physical disk and waiting for a replacement - but we will not able to just delete one of them to change the structure once it is created. 


    If you have any feedback on our support, please send to tnfsl@microsoft.com.

    Thursday, April 17, 2014 4:10 AM
    Moderator
  • Hi,

    From the description it seems that you are going to remove a physical disk from a storage pool without a replacement - this is not allowed in Windows Server 2012 or R2. 

    By design it requests a replacement - if a mirrored or parity virtual disk is created, they will keep working with a disconnected physical disk and waiting for a replacement - but we will not able to just delete one of them to change the structure once it is created. 


    If you have any feedback on our support, please send to tnfsl@microsoft.com.

    Hmm, this does not seem to make sence: I mean, using the PowerShell one is able to "rebuild" all Virtual Disks and get back to full health even with one missing Disk (if sufficent space and disks is available) - So why is there no option to remove a "dead" disk, after rebuilding?

    I completly understand, that you cannot remove a disk without replacement, if 1 of 3 (on a 3-way-mirror-hdd) dies - but in this case I have 4 healty physical disks remaining with plenty of space to replace the missing one 20 times... (That would not even change the desired layout of any virtual disk - it just would remove a physical drive from the pool, and rebalance the missing mirrors on one of the 3 other hard disks)

    So, the missing Harddisk is "just" a freaking entry in the listview  - It is no longer coupled to any functionality.

    Even if it's "by design": This raises the question about maintainability of a Storage Pool: Imagine One adds 10 Disks and decides to use one for other purpose later one: Why can't he simple detach that disk again after rebuilding? The Storage Pool would stick with "one missing disk" forever while beeing in a healty state after rebuilding...

    Cute Dog btw :-)








    • Edited by dognose Thursday, April 17, 2014 10:14 PM
    Thursday, April 17, 2014 10:02 PM
  • Hi, what properties does your get-virtualdisk |fl show for numberofcolumns and numberofdatacopies (or so)? For a 4 disk setup, ms recomends 2 and 2, but you also need at least 4 disks to be fully operable. If you set up a columns 1 and datacopies 2 mirrored drive, you can use any number of disks with enough space, starting with at least 2 disks.

    Try it. Cheers

    Friday, April 18, 2014 11:07 AM
  • Hi,

    I understand your concern.

    If we have 10 disks and removing 1 of them will not damage the data - but the structure is changed while the ninth disk do not have a mirror disk. But - it sounds fine if we remove a pair of disks - so we have 8 disks with 4x2 mirrored - however it is just not supported in current version of storage pool settings.

    and thank you :)


    If you have any feedback on our support, please send to tnfsl@microsoft.com.


    Thursday, April 24, 2014 2:50 AM
    Moderator
  • Hi,

    I understand your concern.

    If we have 10 disks and removing 1 of them will not damage the data - but the structure is changed while the ninth disk do not have a mirror disk. But - it sounds fine if we remove a pair of disks - so we have 8 disks with 4x2 mirrored - however it is just not supported in current version of storage pool settings.


    If you have any feedback on our support, please send to tnfsl@microsoft.com.


    hmm, to my understanding Disks aren't paired to have an exact mirror like it would be in a Raid-1. And if the Storage Pool is decoupled from any physial-pairing of the disks, it shouldn't mind of removing a disk without replacement as long as you keep at least 3 disks for the 3-way-mirrored virtual disks. and have enough space left.

    Any way, not possible means not possible :) Thx for your help.

    Saturday, April 26, 2014 8:44 AM
  • So my post will just be ignored?
    Saturday, April 26, 2014 2:17 PM
  • I know this tread is old, but is there any solution, walk around?
    I'm in a similar situation.

    I have disks that are Retired, and I can not remove them.

    PS C:\> Remove-PhysicalDisk -StoragePoolFriendlyName s2d -PhysicalDisks (Get-PhysicalDisk -UniqueId 5000A72030066804)
    
    Confirm
    Are you sure you want to perform this action?
    Removing a physical disk will cause problems with the fault tolerance capabilities of the following storage pool:
    "S2D".
    [Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): y
    Remove-PhysicalDisk : Not enough available capacity
    
    Extended information:
    The storage pool does not have sufficient capacity to relocate data from the specified physical disks.
    
    Recommended Actions:
    - Add more physical disks to the storage pool.
    - Free capacity by deleting unneeded virtual disks.
    
    Activity ID: {a6db04cc-25a5-40bd-b84e-495d390faa8c}
    At line:1 char:1
    + Remove-PhysicalDisk -StoragePoolFriendlyName s2d -PhysicalDisks (Get- ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : NotSpecified: (StorageWMI:ROOT/Microsoft/..._StorageCmdlets) [Remove-PhysicalDisk], CimE
       xception
        + FullyQualifiedErrorId : StorageWMI 40000,Remove-PhysicalDisk

    There is a lot of free space in pool.

    Friday, January 20, 2017 9:03 AM
  • I know this tread is old, but is there any solution, walk around?
    I'm in a similar situation.

    I have disks that are Retired, and I can not remove them.

    PS C:\> Remove-PhysicalDisk -StoragePoolFriendlyName s2d -PhysicalDisks (Get-PhysicalDisk -UniqueId 5000A72030066804)
    
    Confirm
    Are you sure you want to perform this action?
    Removing a physical disk will cause problems with the fault tolerance capabilities of the following storage pool:
    "S2D".
    [Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): y
    Remove-PhysicalDisk : Not enough available capacity
    
    Extended information:
    The storage pool does not have sufficient capacity to relocate data from the specified physical disks.
    
    Recommended Actions:
    - Add more physical disks to the storage pool.
    - Free capacity by deleting unneeded virtual disks.
    
    Activity ID: {a6db04cc-25a5-40bd-b84e-495d390faa8c}
    At line:1 char:1
    + Remove-PhysicalDisk -StoragePoolFriendlyName s2d -PhysicalDisks (Get- ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : NotSpecified: (StorageWMI:ROOT/Microsoft/..._StorageCmdlets) [Remove-PhysicalDisk], CimE
       xception
        + FullyQualifiedErrorId : StorageWMI 40000,Remove-PhysicalDisk

    There is a lot of free space in pool.

    I am running into the exact same issue - has there been a solution to this ? I have ~ 2TB used but 20 TB free in my storage pool. Still get the error:

    Remove-PhysicalDisk -StoragePoolFriendlyName s2d -PhysicalDisks $baddisks[0]
    Remove-PhysicalDisk : Not enough available capacity
     
    Extended information:
    The storage pool does not have sufficient capacity to relocate data from the specified physical disks.
     
    Recommended Actions:
    - Add more physical disks to the storage pool.
    - Free capacity by deleting unneeded virtual disks.
     
    Activity ID: {be1fc99c-d24f-45fe-bde2-63093a2e892e}
    At line:1 char:1
    + Remove-PhysicalDisk -StoragePoolFriendlyName s2d -PhysicalDisks $badd ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : NotSpecified: (StorageWMI:ROOT/Microsoft/..._StorageCmdlets) [Remove-PhysicalDisk], CimException
        + FullyQualifiedErrorId : StorageWMI 40000,Remove-PhysicalDisk

    Tuesday, April 18, 2017 3:54 PM
  • This thread is indeed old.

    My two cents...

    The way Storage Spaces works is to create volumes that have a number of "columns". Think of these as corresponding (loosely) to the number of disks installed in a storage space (by default, which is important). For example, if a mirrored space in Storage Spaces Direct contains eight disks in total, then the number of columns will be by default four (four disks, mirrored). If you try and remove a disk from this example space then Windows will not let you. There needs to be four disks to stripe data across, so it'll want a replacement disk.

    Had the volume been created on the same space with, say two specified "columns", then Windows will let you remove four disks, leaving two, plus their mirror, with no replacement disks required.

    I did this tonight (Windows 2019). My configuration, fourteen disks in the pool I had, spread over two servers: twelve active, two hot spare, one volume that had been created with columns=4. I was able to remove a total of four disks just fine, leaving four active disks per server (total eight), along with the two hot spares. This equals the columns/mirrors configured for the one volume living on the pool. I would not be able to remove any more disks (apart from the spares), because the volume was created with columns=4.

    Example commands I used to remove one of the disks, which I repeated for the four removed in total:

    $disk = Get-PhysicalDisk -SerialNumber WD-WMAY01182480

    Remove-PhysicalDisk -StoragePoolFriendlyName S2D-Black -PhysicalDisks $disk

    Windows 2019 even kindly balanced the allocations during the removal process.

    The key is the number of columns and mirrors, as @BlackLiner calls out. It works really well once you get your head around what is actually going on (and put the GUI away, which annoyingly won't let you do it).

    • Edited by SSAtMap59 Monday, February 4, 2019 2:47 PM
    Monday, February 4, 2019 2:37 PM