Ubuntu – Removing mdadm array and converting to regular disks while preserving data

mdadmraidserver

I have a 6 disk (2TB each) mdadm RAID 5 volume created in Ubuntu 12.04 Server. However, I'm moving to a different solution and want to "unraid" my disks but keep the data. Only 50% is in use.

From what I can surmise I basically have to do this recursively for each physical disk.

  1. Fail the disk
  2. Format the failed disk
  3. Move a portion of files to the new disk.
  4. Reshape the array
  5. Shrink the logical volume md0

This seems like a very time consuming process. Is there an easier way to do this (automatically perhaps) without buying new disks to temporarily hold the data?

I am also aware that during this processing my RAID volume will be degraded and vulnerable the entire time. I am not too concerned about this and will be using battery backup and moving the most important files off first.

Thank you for your help!

Best Answer

What I ended up doing was repeating this procedure until I had all of the files off.

  1. mdadm /dev/md0 --fail /dev/sd... --remove /dev/sd...
  2. mdadm --zero-superblock /dev/sd...
  3. mkfs.ext4 /dev/sd...
  4. resize2fs /dev/md0 (disk size)
  5. Copying 2TB of data to /dev/sd...
  6. Go to step 1 until all of data is off of md0.

After this is all done I did the following:

  1. mdadm --stop /dev/md0
  2. mdadm --remove /dev/md0

All went well and I didn't even loose any data. Obviously you should back up your data, but in my case backing up 6TB isn't really feasible. Therefore, I was willing to take the risk. There were a lot of vulnerability points to this process and it takes a long time. I'd urge you to only do this with data you either have backed up or can easily recreate.

Related Question