# mdadm --detail /dev/md5
/dev/md5:
Version : 1.2
Raid Level : raid5
Array Size : 1953381888 (1862.89 GiB 2000.26 GB)
Used Dev Size : 1953381888 (1862.89 GiB 2000.26 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Number Major Minor RaidDevice State
0 8 67 0 active sync /dev/sde3
2 8 81 1 active sync /dev/sdf1
ふむふむ。いい感じです。この状態だと前のRAID 1と(サイズ的にも、冗長性的にも)同等の状態なのでこれを再びLVMに戻して他のディスクをあけます。
# pvcreate /dev/md5 Physical volume "/dev/md5" successfully createdこの時点では、まだVGに属してないボリュームとして見えます。
早速追加します。
# vgextend vg_data /dev/md5 Volume group "vg_data" successfully extendedpvdisplay等でも正しく追加されたことが確認できますが、GUIでも
のように確認できます。あとはここに次に移行したいアレイから extent を移動します。今度は /dev/md4 をあけました(ってさらって書いてますがこれも5、6時間は放置してたかなw)。同じようにすべて"Unused Space"になっているのを確認して"Remove Volume from Volume Group"してからアレイを停止します。
その外したディスクについて新しくパーティションを切ります。切ったパーティションを今度は前回作ったRAID 5のアレイに追加します。
# mdadm --add /dev/md5 /dev/sdc3 /dev/sdd1
mdadm: added /dev/sdc3
mdadm: added /dev/sdd1
# cat /proc/mdstat
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4]
md5 : active raid5 sdd1[4](S) sdc3[3](S) sdf1[2] sde3[0]
1953381888 blocks super 1.2 level 5, 512k chunk, algorithm 2 [2/2] [UU]
# mdadm --detail /dev/md5
/dev/md5:
Version : 1.2
Creation Time : Fri Jan 24 09:11:13 2014
Raid Level : raid5
Array Size : 1953381888 (1862.89 GiB 2000.26 GB)
Used Dev Size : 1953381888 (1862.89 GiB 2000.26 GB)
Raid Devices : 2
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Sat Jan 25 16:20:44 2014
State : clean
Active Devices : 2
Working Devices : 4
Failed Devices : 0
Spare Devices : 2
Layout : left-symmetric
Chunk Size : 512K
Number Major Minor RaidDevice State
0 8 67 0 active sync /dev/sde3
2 8 81 1 active sync /dev/sdf1
3 8 35 - spare /dev/sdc3
4 8 49 - spare /dev/sdd1
この状態ではRAID 5(2台+スペア2台)になります。これをRAID 5(3台+スペア1台)に変更します。(再起動した関係でデバイス名が変わっています。)# mdadm --grow /dev/md127 --raid-devices=3
mdadm: Need to backup 1024K of critical section..
# mdadm --detail /dev/md127
/dev/md127:
Version : 1.2
Creation Time : Fri Jan 24 09:11:13 2014
Raid Level : raid5
Array Size : 1953381888 (1862.89 GiB 2000.26 GB)
Used Dev Size : 1953381888 (1862.89 GiB 2000.26 GB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Sat Jan 25 17:57:44 2014
State : clean, reshaping
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 512K
Reshape Status : 0% complete
Delta Devices : 1, (2->3)
Number Major Minor RaidDevice State
0 8 67 0 active sync /dev/sde3
2 8 81 1 active sync /dev/sdf1
3 8 35 2 active sync /dev/sdc3
4 8 49 - spare /dev/sdd1
無事3台構成のRAID 5としてreshapeのプロセスに入ったようですね。いつもの /proc/mdstat も見てみましょう。
# cat /proc/mdstat
Personalities : [raid1] [raid0] [raid6] [raid5] [raid4]
md125 : active raid1 sdb1[1] sde1[2] sdc1[3]
524276 blocks super 1.0 [3/3] [UUU]
md126 : active raid1 sdb4[1] sda4[0]
1676161496 blocks super 1.2 [2/2] [UU]
md127 : active raid5 sde3[0] sdc3[3] sdf1[2] sdd1[4](S)
1953381888 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
[>....................] reshape = 0.1% (2117632/1953381888) finish=1676.8min speed=19393K/sec
えええっ! 1676分!27時間じゃないですか!w ディスク2本のときは6時間だったので1本増えた分で9時間ぐらいかなと思ってたんですが甘かったですね・・・。これ6本になったら3週間ぐらいかかっちゃう!?今さらだけど、RAID5/2 -> RAID6/4 にするのはエラーになったので、RAID5/2 -> RAID5/3 -> RAID 6/4 という道で行くことにしたんだけど、もしかしてRAID5/2 -> RAID5/4 なら一度で行けたのかな?もしできるなら RAID5/2 -> RAID5/4 -> RAID6/6 としたほうが reshape の数が少なくてよかったのかな・・・。それともやっぱりRAID5/2 -> RAID5/4 もエラー?
まあはじめてしまったのは仕方ないので、27時間待ちますw 問題は定期的に行われる resync? もこのぐらいかかるのだと一日では到底終わらないので困るんですがどうなんだろう。あとやっぱりこんなにかかるとなると、degradeしたときのRAID 5ってやっぱりこわいですね。冗長性を復活させるのに丸一日かかってたら、その間にもう一本やられちゃうこともありそうです。なのでRAID 6の安心にコストを払うのが正解という判断で。
そう思って一晩置いたところ、開始後15時間ほどでまだ50%ぐらいだったんですが、なぜか残り時間が220分とかになってますね。
# cat /proc/mdstat
md127 : active raid5 sde3[0] sdc3[3] sdf1[2] sdd1[4](S)
1953381888 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
[==========>..........] reshape = 53.5% (1045575200/1953381888) finish=220.5min speed=68608K/sec
その後もちょくちょくチェックしてたらスピードが最初のころの5倍とかのままでどんどん進んでいます。何か2フェーズにわかれてるのかな?最終的に23時間ほどで完了しました。
# mdadm --detail /dev/md127
/dev/md127:
Version : 1.2
Creation Time : Fri Jan 24 09:11:13 2014
Raid Level : raid5
Array Size : 3906763776 (3725.78 GiB 4000.53 GB)
Used Dev Size : 1953381888 (1862.89 GiB 2000.26 GB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Sun Jan 26 16:38:19 2014
State : clean
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
Number Major Minor RaidDevice State
0 8 67 0 active sync /dev/sde3
2 8 81 1 active sync /dev/sdf1
3 8 35 2 active sync /dev/sdc3
4 8 49 - spare /dev/sdd1
ちゃんとサイズが4TBになっているのがわかりますね。すばらしい。さあいよいよRAID 6です。# mdadm --grow /dev/md127 --level=6 --raid-devices=4 --backup-file=/root/raid.back
mdadm: level of /dev/md127 changed to raid6
# cat /proc/mdstat
md127 : active raid6 sde3[0] sdc3[3] sdf1[2] sdd1[4]
3906763776 blocks super 1.2 level 6, 512k chunk, algorithm 18 [4/3] [UUU_]
[>....................] reshape = 0.0% (96256/1953381888) finish=3719.6min speed=8750K/sec
わははw 3719分ということは61時間、約3日かかる計算ですw 実際はまた途中から早くなるかもしれないですけど。これは気長に待つしかないですね。そして1日経過、まだまだw
2日経過、60%は越えましたが途中から早くなるかもという希望は打ち砕かれましたw
開始から2日半でようやく80%台を越え、残り976分と1000分を切りました!w
そして開始から3日と6時間ぐらいたったころ、ようやく完了しました。長かった・・・けどまだ2本追加するんですがw
終わる直前↓w
# cat /proc/mdstat
md127 : active raid6 sde3[0] sdc3[3] sdf1[2] sdd1[4]
3906763776 blocks super 1.2 level 6, 512k chunk, algorithm 18 [4/3] [UUU_]
[===================>.] reshape = 99.9% (1952316928/1953381888) finish=3.3min speed=5360K/sec





