Win 2k19 StorageJob suspended during repair

dd 6 Reputation points
2021-07-05T11:50:29.667+00:00

I am trying to upgrade some HDDs from 4TB to 8TB. I followed the steps in various articles...

  1. Insert new disk
  2. Add to pool
  3. Retire old disk
  4. Repair Virtual disks

The pool has some Mirror and some Parity Virtual Disks. All the Mirrors got repaired (I could see the jobs complete and looking at the PDs associated with the VDs the old disk is not listed). However, the Parity repair jobs are all marked as suspended (0% complete). Nothing I can think of has helped.
A few things I have tried:

  • Set the old disk back to AutoSelect and repaired the VDs -- new jobs complete, but old ones still suspended
  • Optimise Pool -- moves Mirror data around, but does not touch the Parity disks
  • Repeat from beginning (having set old disk to AutoSelect and retired and removed the new disk before re-adding), but remove old (instead of repair VDs). This gave a helpful(?) error saying there was not sufficient capacity and I needed to add a new disk. Having just added an 8TB disk I was surprised, but added another 8TB disk but still the same error and still suspended repairs.

Anything else I can try?

Just to be clear, before I started the Pool, all Virtual Disks and all Physical Disks were healthy. This has remained the case throughout. I can also back-out my changes (i.e. return the old disk to AutoSelect and retire and remove the new disk(s), after repairing al VDs).

Windows Server Storage
Windows Server Storage
Windows Server: A family of Microsoft server operating systems that support enterprise-level management, data storage, applications, and communications.Storage: The hardware and software system used to retain data for subsequent retrieval.
651 questions
{count} votes

3 answers

Sort by: Most helpful
  1. dd 6 Reputation points
    2021-07-08T06:36:04.383+00:00

    Hi,

    Thanks for the new suggestions. My procedure is very similar, the only difference is (having set the variables) I did:

    $oldDisk | Set-PhysicalDisk -Usage Retired
    $pool  | Get-VirtualDisk | Repair-VirtualDisk
    

    This created a repair storage job for each VirtualDisk. I watched the output of these with:

    Get-StorageJob
    

    All the mirror disks repair jobs completed and all the Parity disk repair jobs ended up as Suspended. I could examine the virtual disks:

    Get-VirtualDisk -FriendlyName 'Name' | Get-PhysicalDisk
    

    I could see that the Mirror Virtual Disks now used the new disk (and not the old disk). Not surprisingly the Parity disks were still using the old disk and not the new disk.

    I could then restore the situation by running:

    $oldDisk | Set-PhysicalDisk -Usage AutoSelect
    $newDisk | Set-PhysicalDisk -Usage Retired
    $pool  | Get-VirtualDisk | Repair-VirtualDisk
    $pool | Remove-PhysicalDisk -PhysicalDisk $newDisk
    

    This moved all the data back to the old disk and emptied the new disk and allowed it to be moved back to the Primordial pool, so I could start again. Staring again allowed me to try

    $pool | Optimize-StoragePool
    

    and (without ant attempt at repair first)

    $pool | Remove-PhysicalDisk -PhysicalDisk $oldDisk
    

    I have already read the forum post (and many others), but with no success. I had hoped things would have improved in the last 4 years (as the MS representative said "the product team is currently making efforts to improve the product and we may see some improvements in future release".)

    I realise using the new disks to build a new pool and copy all the data across is an option (which I am seriously considering), but it is really disappointing that a trivial operation like replacing a (non failed) disk does not just work and does not give any meaningful indication why. The only helpful(?) error was that I did not have sufficient capacity and I should add more disks. This was after I had added one and then two new 8TB disks. I am considering finding a 5-bay USB enclosure I have and trying to do it in one hit, add all five new disks to the pool, retire all five old disks then repair all the virtual disks!!!

    1 person found this answer helpful.

  2. JiayaoZhu 3,911 Reputation points
    2021-07-06T05:32:40.213+00:00

    Hi,

    Thanks for posting on this forum!

    It seems that you have already solved your issue! Good for you! I would appreciate it if you can share your solution with us in this blog. Besides, do not forget to Accept Answer of your own answer. An accepted blog can be put on top of our forum, so that people who have a similar issue can get access to their solution more quickly. I would really appreciate it if you could support my work.

    Thanks for your support! Have a nice day! : )

    BR,
    Joan


    If the Answer is helpful, please click "Accept Answer" and upvote it.

    Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.


  3. JiayaoZhu 3,911 Reputation points
    2021-07-08T05:17:47.77+00:00

    Hi,

    Thanks for your reply!

    Based on your description, I suppose your issue is that you cannot remove your old disk. Firstly, I would like to check if you have formatted your new disk after you mounted it on your computer. Then please compare the procedures for repairing your VDs with your own approach to completing the same task:
    Open PowerShell in admin mode (PowerShell ISE is better)
    To get the names of the disks, type the following command:
    Get-PhysicalDisk
    To get the names of the virtual disks, type the following command:
    Get-Virtual-Disk
    First mark the disk you want to remove as "retired" by the following command:
    Set-PhysicalDisk -FriendlyName 'PhysicalDiskXX' -Usage Retired
    Now your disk is mark to be removed. You need to rebuild each of your virtual disks with the following command:
    Repair-VirtualDisk -FriendlyName 'My Virtual Disk'
    You can monitor the progression of the process by typing the following command:
    Get-StorageJob
    Once everything is done, just remove the disk from the pool with this command:
    Remove-PhysicalDisk -FriendlyName 'PhysicalDiskXX'

    If your operation is correct, then try to look through the suggestions in this case whose issue is similar to yours:
    https://social.technet.microsoft.com/Forums/en-US/b7c3fc4f-4712-4442-baa6-4fd004e28c13/storage-spaces-repairvirtualdisk-storagejob-stuck-on-0?forum=winserver8gen

    In addition, after my research, you can try to strip down your storage pool, if you can restore the recent image without a working Storage Pool in operation, then add into the new drive, remove the old one and create a new storage pool. It's going to take six days, but at least it will be up and running again eventually.

    If this rebuilding is not helpful as well, I would suggest you contact Microsoft Customer Support and Services where you can gain a deeper insight over your log information. Analyzing logs is beyond our forum's scope, while in your situation, I think you need to investigate into relevant log information.

    If the issue has been proved as system flaw, the consulting fee would be refund. You may find phone number for your region accordingly from the link below.
    Global Customer Service phone numbers:

    https://support.microsoft.com/en-us/help/13948/global-customer-service-phone-numbers

    Thanks for your support!

    BR,
    Joan


    If the Answer is helpful, please click "Accept Answer" and upvote it.

    Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.

    0 comments No comments

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.