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.
- Resize the mdadm RAID
resize2fs /dev/md0 [size]where size is a little larger than the currently used space on the drive - Remove one of the drives from the RAID
mdadm /dev/md0 --fail /dev/sda1 - Resize the removed drive with parted
- Add the new partition to the drive with parted
- Restore the drive to the RAID
mdadm -a /dev/md0 /dev/sda1 - Repeat 2-5 for the other device
- Resize the RAID to use the full partition
mdadm --grow /dev/md0 -z max
Is there anything I've missed, or haven't considered?
2 Answers
Yes, you missed something very important and I've learned it the hard way. 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 )
3Your steps look good, with two exceptions:
After
resize2fs, you need to shrink your mdadm array. E.g. domdadm --grow --size xxxas step #1a.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.