Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I have a home built NAS, and I need to slightly reconfigure some of my drive usage.

I have an mdadm RAID1 composed of two 3TB drives. Each drive has one ext3 partition that uses the entire drive. I need to shrink the ext3 partition on both drives, and add a second 8GB or so ext3 partition to one, and swap partition of equal size to the other. I think I have the steps figured out, but wanted some confirmation.

  1. Resize the mdadm RAID resize2fs /dev/md0 [size] where size is a little larger than the currently used space on the drive
  2. Remove one of the drives from the RAID mdadm /dev/md0 --fail /dev/sda1
  3. Resize the removed drive with parted
  4. Add the new partition to the drive with parted
  5. Restore the drive to the RAID mdadm -a /dev/md0 /dev/sda1
  6. Repeat 2-5 for the other device
  7. Resize the RAID to use the full partition mdadm --grow /dev/md0 -z max

Is there anything I've missed, or haven't considered?

share|improve this question

2 Answers 2

Yes, you missed something very important and I've learned it the hard way. http://www.zdnet.com/blog/storage/why-raid-5-stops-working-in-2009/162 points out that it becomes now statistically unavoidable to have bad sectors on the RAID array.

If you have a degraded RAID array and one of your drives hits a bad sector, mdraid will shut down the array. That will happen during the recovery when you re-add the drive, because every sector of the other drives needs to be read. I've spent quite a bit of time recovering from this, which is really tricky.\

What you should therefore do beforehand is: echo repair > /sys/block/mdX/md/sync_action

(check https://raid.wiki.kernel.org/index.php/Scrubbing)

share|improve this answer

Your steps look good, with two exceptions:

  1. After resize2fs, you need to shrink your mdadm array. E.g. do mdadm --grow --size xxx as step #1a.

  2. I would also suggest doing all this while booted into a rescue CD, like SystemRescueCd, and not while /dev/md0 is mounted. Follow the resize by fsck, just to make sure everything is ok.

share|improve this answer

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.