1
Okay, I've gotten myself into a pickle. Situation:
- I had a 4-disk, mirrored storage pool
- I wanted to remove 2 disks, so I retired them (prepared them for removal)
- I waited until the process was done and Get-PhysicalDisk reported "retired"
- 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.
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.267Are 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