I have a ThinkServer RD230-4011 in hosting which initially had 4x 300Gb drives divided into 2 RAID 1 arrays using the built-in SAS 8708EM2 card, such as this:

DISK 0 (300 Gb) |  VD 0 (RAID 1, 300 Gb)
DISK 1 (300 Gb) |

DISK 2 (300 Gb) |  VD 1 (RAID 1, 300 Gb)
DISK 3 (300 Gb) |

Now eventually I needed more space so I went in and one by one replaced all the drives with 600 Gb ones and let the VDs rebuild. This went without a hitch. The next step I had planned was to put drive #2 offline and then add it to VD 0 and migrate to RAID 5, such as this:

DISK 0 (600 Gb) |  VD 0 (RAID 5, 1200 Gb)
DISK 1 (600 Gb) |
DISK 2 (600 Gb) |

DISK 3 (600 Gb) |  VD 1 (RAID 1, 300 Gb, degraded)

Then migrate the data from VD 1 to VD 0 and proceed to another expansion such as this:

DISK 0 (600 Gb) |  VD 0 (RAID 5, 1800 Gb)
DISK 1 (600 Gb) |
DISK 2 (600 Gb) |
DISK 3 (600 Gb) |

I found out a bit too late that my RAID controller does not support OCE, so although I was able to rebuild by adding the drives, I am now stuck with this:

DISK 0 (600 Gb) |  VD 0 (RAID 5, 900 Gb)
DISK 1 (600 Gb) |
DISK 2 (600 Gb) |
DISK 3 (600 Gb) |

Notice the missing capacity in the virtual drive. So how do I get to use this new capacity in the drives? Am I SOL? This is the only server in hosting I cannot easily migrate all the data off to start from a clean VD. I could plan some downtime if I need to do it from the webbios but of course a live solution maybe using megacli would be preferred.

Thanks gurus.


Here's what LSI support suggests.

Remove one of the 600 GB disks from the RAID 5. The RAID 5 will then go into degraded state and you can use the drive you removed to create a new single disk RAID 0 VD with 600 GB capacity. Now copy all your data from the degraded RAID 5 to the newly created RAID 0. After that you can delete the RAID 5 VD and use them to migrate the single disk RAID 0 VD into a 4 disk RAID 5 VD.

I'm not too keen on copying data from 1 RAID volume to another (first will be degraded and 2nd will be a single disc) and relying on that to boot my XenServer instance. Then deleting the VD and creating a new one, again migrating all data.

No other ways, huh?


In your case there's no way without copying. For raid1(!!!!!) there is a way, needing downtime(!!!!) and also at least unplugging the SR, which could not be the boot volume(!!!).

If you boot off SSD, or at least have multiple luns that aren't raid0/5/6/10 or any offspring of that, you can delete the lun and create a new one without initializing it(!!!). If it's initialized you lose all data.

In your case, the sane way is to replace the controller with a up tier one that can do the expansion. That drops you to a few minutes of downtime.

XenServer's storage stack is just too messed up by devs for any sysadmin to be able to fix this. On a "normal" system one could just do other things that would work online like i.e. doing a lvm mirror between two degraded raid5 or pvmove to a temporary iSCSI volume. No love here.

If it ever comes up again, replace the controller and ebay the old one.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.