13

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?

kyork
  • 261

2 Answers2

8

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)

Jarmund
  • 6,277
  • 5
  • 38
  • 60
Dirk
  • 81
3

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.

haimg
  • 23,153
  • 17
  • 83
  • 117