mdadmのRAID5にディスクを追加した

PCの買い替えに伴ってディスクが余ったので、サーバーのmdadm(RAID5)に加えてみることにした。 調べながらだと面倒くさいので今後のために手順をメモ。

過去に書いた linuxのmdadmで作ったRAID5を壊したり直したり。 という記事のちょっと詳しい版的な内容です。てゆかほぼ一緒ですごめんなさい。

まず、fdiskで使わなくなったパーティションを削除。dコマンドね。 gpartedとかでも問題ないはず。 古いディスクだからやるのであって、新しいディスクの場合は必要ありません。パーティション切る必要もなし。

で、mdadmの管理下に置く。ここでは/dev/sde/dev/md1に追加することにします。

# mdadm --add /dev/md1 /dev/sde

これで登録(?)完了。

これをやったあとで

# mdadm --detail /dev/md1

とやると、ディスク一覧の一番下、/dev/sdeのところにspareとか書かれているはず。 この状態で他のディスクにエラーが起こると自動的にスペアと交換してくれるようです。

今回はディスク容量を増やしたいので、

# mdadm --grow /dev/md1 --size=4

とやって付け足したHDDを合わせて4台のディスクをすべて使うように伝えます。台数はもちろん環境に合わせてください。 size=maxでも行けるらしいのですが、何かうまくいかなかったので4としてみたら動いた。うーん?

# cat /proc/mdstat

を見てみると、処理の進行状況が見えるはず。 ちなみにこの処理、ものすごい時間がかかります。うちの場合だと1T*3から1T*4に増やすのに26時間かかりました。長い!!

で、一日経って作業完了。

# mdadm --detail /dev/md1

を確認して、Stateがcleanになっていることを確認します。 ついでにArray Sizeが増えていることも確認。

大丈夫なら、ディスクをリサイズすればおっけー。 うちの場合はext4を使っているので、resize2fsで・・・

# resize2fs /dev/md1
resize2fs 1.42.10 (18-May-2014)
Please run 'e2fsck -f /dev/md1' first.

怒られた。

ファイルシステムチェックを先にしろ、らしいです。 言われたとおりに

# e2fsck -f /dev/md1

ファイルチェック。これは結構早かった。

問題無さそうなら改めてリサイズ。

# resize2fs /dev/md1

問題無し。これもわりと早い。

以上、こんな感じ。 結構簡単に追加できました。 問題をあげるとすれば、ものすごい時間がかかることかな・・・。

余談。 アンマウントしようとしたときにtarget is busyと言われたときは、

# lsof /dev/md1

のようにして使用中のプロセスを探して、適当に止めてあげれば何とかなります。 便利だ、このコマンド。


参考: