Storage Pool Read-Only Unhealthy

1

Okay, I've gotten myself into a pickle. Situation:

  1. I had a 4-disk, mirrored storage pool
  2. I wanted to remove 2 disks, so I retired them (prepared them for removal)
  3. I waited until the process was done and Get-PhysicalDisk reported "retired"
  4. I PHYSICALLY removed them and formatted them without completing the final "remove" step.

SO, now I have a very odd situation. I have a 4-drive pool with two "retired" drives that have "lost communication". All data is on the two remaining drives, but they are inaccessible because the pool is "unhealthy". The pool is in a read-only OperationalStatus, so I can't modify the pool configuration.

I have tried to set the pool's -IsReadOnly flag to $false. Works. BUT the operational status remains read-only, perhaps because the health status is unhealthy? I even physically reattached the missing disks. But because the disks had been reset, they aren't recognized by the pool.

Anyway, the current relevant status of pools, physical and virtual disks is as follows:

PS C:\Windows\system32> Get-StoragePool

FriendlyName OperationalStatus HealthStatus IsPrimordial IsReadOnly     Size AllocatedSize
------------ ----------------- ------------ ------------ ----------     ---- -------------
Storage pool Read-only         Unhealthy    False        False      10.91 TB       3.18 TB
Primordial   OK                Healthy      True         False      11.79 TB       5.46 TB

PS C:\Windows\system32> Get-PhysicalDisk

FriendlyName         SerialNumber                   MediaType CanPool OperationalStatus  HealthStatus Usage            Size
------------         ------------                   --------- ------- -----------------  ------------ -----            ----
WDC WD30EFRX-68EUZN0 WD-WMC4N0381258                HDD       True    OK                 Healthy      Auto-Select   2.73 TB
WDC WD30EFRX-68EUZN0                                HDD       False   Lost Communication Warning      Retired       2.73 TB
WDC WD30EFRX-68N32N0 WD-WCC7K3NJ49H4                HDD       False   OK                 Healthy      Auto-Select   2.73 TB
WDC WD30EFRX-68EUZN0                                HDD       False   Lost Communication Warning      Retired       2.73 TB
ST3000DM001-1CH166   Z1F29FQX                       HDD       False   OK                 Healthy      Auto-Select   2.73 TB
ADATA SX8200NP       2I3020079406        _00000001. SSD       False   OK                 Healthy      Auto-Select 894.25 GB
WDC WD30EFRX-68EUZN0 WD-WMC4N0437933                HDD       True    OK                 Healthy      Auto-Select   2.73 TB

The two "Can Pool" drives are the ones that I removed and reattached (*58 and *33). The two that are part of the pool are (probably obviously) *H4 and *QX.

PS C:\Windows\system32> Get-StoragePool -IsPrimordial $false | Get-PhysicalDisk

FriendlyName         SerialNumber    MediaType CanPool OperationalStatus  HealthStatus Usage          Size
------------         ------------    --------- ------- -----------------  ------------ -----          ----
WDC WD30EFRX-68EUZN0                 HDD       False   Lost Communication Warning      Retired     2.73 TB
WDC WD30EFRX-68N32N0 WD-WCC7K3NJ49H4 HDD       False   OK                 Healthy      Auto-Select 2.73 TB
WDC WD30EFRX-68EUZN0                 HDD       False   Lost Communication Warning      Retired     2.73 TB
ST3000DM001-1CH166   Z1F29FQX        HDD       False   OK                 Healthy      Auto-Select 2.73 TB


PS C:\Windows\system32> Get-VirtualDisk

FriendlyName  ResiliencySettingName FaultDomainRedundancy OperationalStatus HealthStatus  Size FootprintOnPool StorageEfficiency
------------  --------------------- --------------------- ----------------- ------------  ---- --------------- -----------------
Storage space Mirror                1                     Detached          Unhealthy    50 TB         3.18 TB         1,571.76%

Anybody have any ideas? At least short of doing a relatively expensive recovery? All I need to do is remove the two "retired" drives from the pool. Seems like it's just a database issue. Certainly no data should be lost or corrupt.

Oh, Windows 10, not server, if it matters.

paul

Posted 2018-09-18T13:16:41.553

Reputation: 11

Answers

0

Try to repair the storage space using an elevated PowerShell shell.

One needs first to retrieve the names of the physical and virtual disks :

Get-PhysicalDisk
Get-VirtualDisk

Assuming that the friendly name of a failed physical disk is PhysicalDisk-1 and the virtual disk is named Prod1 Virtual Disk (the first command may be superfluous here) :

Set-PhysicalDisk –FriendlyName 'PhysicalDisk-1' –Usage Retired
Repair-VirtualDisk –FriendlyName 'Prod1 Virtual Disk'
Remove-PhysicalDisk –FriendlyName 'PhysicalDisk-1'

The problem seems to resist all standard repair methods. It therefore becomes necessary to recover the data and rebuild from scratch.

Below are three free RAID data recovery products :

harrymc

Posted 2018-09-18T13:16:41.553

Reputation: 306 093

Thanks. Yeah, I did try that. Should have mentioned it. The Repair-VirtualDisk operation seems not to have any impact at all. Just returns with no status message and Get-VirtualDisk still gives an operational status of detached. Get-StorageJob returns nada. – paul – 2018-09-18T14:46:55.423

Also tried to do a remove:

PS C:\Windows\system32> $DiskToRemove = Get-PhysicalDisk | Where-Object { $_.Usage -eq ‘Retired’} PS C:\Windows\system32> Remove-PhysicalDisk -PhysicalDisks $DiskToRemove -StoragePoolFriendlyName "Storage pool" Remove-PhysicalDisk : The storage pool could not complete the operation because its configuration is read-only. – paul – 2018-09-18T14:50:03.267

Are you using an elevated PowerShell? Try also on the Storage Pools page of Server Manager, right-click the storage pool, click Set Read-Write Access, and then select the appropriate server. Another try is to have the database reconstructed before removing the defective disk by adding a new disk first. – harrymc – 2018-09-18T19:07:19.443

Yes on the elevated shell. Unfortunately I can't do the server manager bit on Windows 10 (unless there's some backdoor here I don't know about). Re: having the database reconstructed by adding a new disk, I think I'm out of luck there, as well. Tried and I get the message that the pool is read-only. Somehow I have to force the pool to repair itself...get out of the "starting" ReadOnlyReason status. – paul – 2018-09-18T19:35:46.043

1Seems like this is the same issue you would have if you just lost one of two drives in a mirrored pool. Is a single loss from a 2-way mirror recoverable (kind of hope so since that's the whole point). – paul – 2018-09-18T19:37:53.620

You retired them, so hopefully the data is there. Is the data accessible and can you do a backup? It might be simpler to destroy and rebuild the pool. – harrymc – 2018-09-18T19:41:35.610

It's "there" as in I can see it all using the free version of ReclaiMe. No doubt there are two perfectly good copies of everything there just waiting to be "got". I'm just really trying to avoid paying the $80 to recover data that SHOULD not need to be recovered. Especially since there's only about 1% that I care even a smidge about. :( – paul – 2018-09-18T21:28:01.643

I added some free recovery options. – harrymc – 2018-09-19T06:47:05.493