Moving a RAID array from one machine to another

If you have a dedicated RAID controller that plugs into a PCI port, then you should be fine. All of the RAID data will be stored on the controller, with matching meta-data on the drives. Then you can just move the whole thing into another server. Some controllers will even let you shuffle the drives around so that they don't need to go back in the same order that they came out in (particularly useful when you have 14 disks).

If you are using software-based RAID (i.e. in Windows or Linux), then this too can be transported between machines. With Windows, when you put all the new disks in, it will ask you to import them and they should just start running without a hitch. With Linux I don't know the procedure but I suspect it would be something similar.

If you are using an on-board RAID controller, this is where things can get tricky. You have specified that you will be moving between different hardware, so if you were moving from say an Adaptec RAID controller to a 3Ware controller, then the chances of survival are minimal. If both the boards have the same brand of controller, they may be able to read the meta-data off the disks and re-create the array.

If you're VERY brave, you can create a new array on the new controller, and make sure that you use the exact same settings as the previous controller used (same stripe size, etc), and when it asks you if you want to initialise the array, say no, and hope for the best. I've had this work with a RAID0 and a RAID10, but never with a RAID5.

So the short answer is - if you want to be able to move it around easily, invest a hundred bucks into a proper RAID controller and just move the whole thing over in one hit.


I've done it, but only on nearly identical RAID cards. And on RAID cards that store RAID info on the disks. This is so the foreign RAID card can detect that these new disks are in fact a set and will treat it as such. Firmware levels on the RAID cards can affect how possible these kinds of moves are. Some cards just won't allow this at all.