Thread (10 messages) 10 messages, 4 authors, 2011-04-29

Re: Growing 6 HDD RAID5 to 7 HDD RAID6

From: Mathias Burén <hidden>
Date: 2011-04-22 09:39:07

On 13 April 2011 12:44, John Robinson [off-list ref] wrote:
(Subject line amended by me :-)

On 12/04/2011 17:56, Mathias Burén wrote:
[...]
quoted
I'm approaching over 6.5TB of data, and with an array this large I'd
like to migrate to RAID6 for a bit more safety. I'm just checking if I
understand this correctly, this is how to do it:

* Add a HDD to the array as a hot spare:
mdadm --manage /dev/md0 --add /dev/sdh1

* Migrate the array to RAID6:
mdadm --grow /dev/md0 --raid-devices 7 --level 6
You will need a --backup-file to do this, on another device. Since you are
keeping the same number of data discs before and after the reshape, the
backup file will be needed throughout the reshape, so the reshape will take
perhaps twice as long as a grow or shrink. If your backup-file is on the
same disc(s) as md0 is (e.g. on another partition or array made up of other
partitions on the same disc(s)), it will take way longer (gazillions of
seeks), so I'd recommend a separate drive or if you have one a small SSD for
the backup file.

Doing the above with --layout=preserve will save you doing the reshape so
you won't need the backup file, but there will still be an initial sync of
the Q parity, and the layout will be RAID4-alike with all the Q parity on
one drive so it's possible its performance will be RAID4-alike too i.e.
small writes never faster than the parity drive. Having said that, streamed
writes can still potentially go as fast as your 5 data discs, as per your
RAID5. In practice, I'd be surprised if it was faster than about twice the
speed of a single drive (the same as your current RAID5), and as Neil Brown
notes in his reply, RAID6 doesn't currently have the read-modify-write
optimisation for small writes so small write performance is liable to be
even poorer than your RAID5 in either layout.

You will never lose any redundancy in either of the above, but you won't
gain RAID6 double redundancy until the reshape (or Q-drive sync with
--layout=preserve) has completed - just the same as if you were replacing a
dead drive in an existing RAID6.

Hope the above helps!

Cheers,

John.
Hi,

Thanks for the replies. Allright, here we go;

 $ mdadm --grow /dev/md0 --bitmap=none
 $ mdadm --manage /dev/md0 --add /dev/sde1
 $ mdadm --grow /dev/md0 --verbose --layout=preserve  --raid-devices 7
--level 6 --backup-file=/root/md-raid5-to-raid6-backupfile.bin
mdadm: level of /dev/md0 changed to raid6

$ cat /proc/mdstat

                                                             Fri Apr
22 10:37:44 2011

Personalities : [raid6] [raid5] [raid4]
md0 : active raid6 sde1[7] sdg1[0] sdh1[6] sdf1[5] sdc1[3] sdd1[4] sdb1[1]
      9751756800 blocks super 1.2 level 6, 64k chunk, algorithm 18
[7/6] [UUUUUU_]
      [>....................]  reshape =  0.0% (224768/1950351360)
finish=8358.5min speed=3888K/sec

unused devices: <none>

And in dmesg:


 --- level:6 rd:7 wd:6
 disk 0, o:1, dev:sdg1
 disk 1, o:1, dev:sdb1
 disk 2, o:1, dev:sdd1
 disk 3, o:1, dev:sdc1
 disk 4, o:1, dev:sdf1
 disk 5, o:1, dev:sdh1
RAID conf printout:
 --- level:6 rd:7 wd:6
 disk 0, o:1, dev:sdg1
 disk 1, o:1, dev:sdb1
 disk 2, o:1, dev:sdd1
 disk 3, o:1, dev:sdc1
 disk 4, o:1, dev:sdf1
 disk 5, o:1, dev:sdh1
 disk 6, o:1, dev:sde1
md: reshape of RAID array md0
md: minimum _guaranteed_  speed: 1000 KB/sec/disk.
md: using maximum available idle IO bandwidth (but not more than
200000 KB/sec) for reshape.
md: using 128k window, over a total of 1950351360 blocks.

IIRC there's a way to speed up the migration, by using a larger cache
value somewhere, no?

Thanks,
Mathias
--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help