Re: Can't reshape RAID1 to RAID5 due to chunk size
flat view
From: NeilBrown <hidden>
Date: 2012-09-19 06:20:58
On Wed, 12 Sep 2012 10:59:56 +0600 Roman Mamedov [off-list ref] wrote:
Hello,
# mdadm --detail /dev/md1
/dev/md1:
Version : 1.2
Creation Time : Fri May 27 09:50:54 2011
Raid Level : raid1
Array Size : 488372863 (465.75 GiB 500.09 GB)
Used Dev Size : 488372863 (465.75 GiB 500.09 GB)
Raid Devices : 2
Total Devices : 3
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Wed Sep 12 10:54:33 2012
State : active
Active Devices : 2
Working Devices : 3
Failed Devices : 0
Spare Devices : 1
Name : avdeb:1 (local to host avdeb)
UUID : e29a222d:e6245302:5ff3f834:ad471a01
Events : 26
Number Major Minor RaidDevice State
0 8 82 0 active sync /dev/sdf2
1 8 34 1 active sync /dev/sdc2
2 8 50 - spare /dev/sdd2
# mdadm --grow /dev/md1 --chunk=64K --level=5 --raid-devices=3
mdadm: New chunk size does not divide component size
-----
Shouldn't mdadm be able to figure out a way to somehow proceed in this case? :)
So what if it does not divide, I am increasing the array size by 33%, it
has plenty of new space, why not leave a bit of it in the end of all devices so
the chunk size does divide...
Also I heard of cases (on #linux-raid IRC, I think) when people reshaped like
this without specifying the chunk size explicitly, and ended up with something
like a 4K chunk, which is certainly less than optimal.
Yes, there is room for improvement here.
The difficulty is that the RAID1 must be converted to a 2-device RAID5 before
devices can be added, and the RAID5 must have a chunk size that is a multiple
of 4K.
Your array cannot even manage 1K.
Newer versions of mdadm will create raid1 arrays to be a multiple of 64K (I
think) so this will be less of a problem.
What you need to do is:
- make sure the filesystem in /dev/md1 doesn't use the last 3k (it probably
uses a 4K block size, so cannot use that last bit
- resize the array down to 488372860K (mdadm -G /dev/md0 --size 488372860)
- convert to a 2-device RAID5 with a 4K chunk size:
mdadm -G /dev/md1 -c 4K -l5 -n2
- convert to a 3-device RAID5 with a 64K chunk size:
mdadm -G /dev/md1 -c 64k -n3
NeilBrown Attachments
- signature.asc [application/pgp-signature] 828 bytes