Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

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!

share|improve this question
    
Anyone have any ideas? –  Jeffrey Kevin Pry Oct 12 '12 at 18:30
    
What is this new solution? Why is leaving the RAID set not an option? Indeed reshaping an array is time consuming. –  jippie Oct 21 '12 at 19:07
    
What I ended up doing was marking one disk as faulty, resizing the filesystem, and then reshaping the array. When the disk was removed I then formatted it as ext4 and moved 2TB of data to the drive... etc etc. Took forever... But all data intact :) –  Jeffrey Kevin Pry Oct 25 '12 at 13:12

2 Answers 2

up vote 2 down vote accepted

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.

share|improve this answer

Well, you have RAID5 on 6 2TB disks which gives you 10TB usable space, 50% of which is used by data - that's 5TB you have to put somewhere. I don't think you can do this any other way without having additional disks. Which doesn't really help you.

However I wanted to note one thing - you'll be moving part of this dataset to a single disk, which gives you no redundancy and after that you'll be resizing the raid5 set which may result in its corruption in the process.

From what you plan to do and the constraints you described I understood you do not have a backup of this dataset. Are you sure you want to do it this way without first moving the data somewhere else? This sounds like an overly optimistic approach :)

share|improve this answer
    
No sense in letting the bounty go to waste. Here you go :) –  Jeffrey Kevin Pry Oct 25 '12 at 13:24
    
That's generous :) Thank you very much. I see you like the adrenaline, but I'm glad you got lucky. This time :> –  Marcin Kaminski Oct 26 '12 at 11:56

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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