稼働中のシステムに1台HDDを追加してRAID1にする方法

スポンサーリンク

ここしばらくうちのサーバが極端に重くてご迷惑をおかけしました。

今まで1ドライブでやりくりしてきたのですが、急に不安に襲われてRAID1構成にすることにしました。
あと、2年以上かかりましたがやっとアマゾンアフィリエイトで2TBのHDDが買える金額がたまりました。
ご協力いただいた方々、感謝いたします。ありがとうございました。
うちのドメインでの売り上げは保守に全部突っ込んでますので、たまに買ってあげてくださいw

注意

というわけで難航続きだったのですが、一応何とかなりましたのでまとめてみます。
ちなみにLVMとかMDADMとかそういったのがわからないって人は手を出さないでください。ぼんやりとわかるだけの私でも出来たりはしますが一応^^;
その為、基本的にコピペで出来るようにしてません。それっぽいのも自分の環境に合わせて書き換えてください。
いちばん最後まで読んでみて、わからないことがあるようなら手を出さないほうが無難です。
ディストリビューションによっては結構手順が違ったりしますしね。
16あたりからのUbuntuとか8とか9あたりからのDebian、またはそのファミリーならここの手順で行けると思います。間違ってたら教えて^^;
ここに書いてあることを実行してデータが飛んでも私は責任持ちません。
ついでに言うと、RAID1は冗長化というだけでバックアップがとれてるという事ではないので、ちゃんとバックアップはとってくださいね?
そのうちそこらへんの記事も書きます。(たぶん^^;)

RAID1ってなに?

ミラーリングと言ってHDDがひとつ壊れても、もうひとつが動いているから安心。そんな感じのものです。
バックアップとは違って内容が壊れたときには対応できませんので、そこらへんはちゃんと定期的にやらないと痛い目にあいます。
あくまでHDDの物理的トラブルに対する備えです。

手順

目指したのは、RAIDなしSDA一発のみの構成からRAID1にするってこと。
再インストールした方が早いのは言うまでもないのですが、ここは天性の面倒くさがりが災いして横着して遠回りするといういつもの結末なわけです。

とりあえずHDDを繋ぐ

これやらないと始まりませんw
うちではsdbになるので以後その表記です。

パーティションを切る

今までがsdaに単発で/boot、lvmでスワップと/があったので、そんな感じにします。
2TBなのでfdiskでboot用に同じ要領で切って(n)起動属性(a)つけてタイプ(t)がraid(fdかな?)。
残りはLVM用にすべて。こっちもraid(fdのはず)にしてください。

mdadmで片肺RAID1作る

mdadm –create /dev/md0 –auto=md –level=1 –raid-devices=2 missing /dev/sdb1
mdadm –create /dev/md1 –auto=md –level=1 –raid-devices=2 missing /dev/sdb2
こんな感じです。
sdaのメンバーディスクが無くなってますって登録にしてください。

ファイルシステム作るよ!

LVM先に作っちゃいましょう。vgcreateで適当な名前のLVMグループを作って、lvcreateでLVM作ります。
SWAPの大きさはどのくらいが良いのかは各自調べてみてください。
次にmkfsでbootパーティションをEXT2にします。
/はEXT4、スワップは当然SWAPです。

rsync

今までsdaに入ってたブツをsdbにコピーします。
まず/を/mnt/raidにマウントして、次にbootを/mnt/raid/bootにマウント
rsync -avxHAXS –delete –progress / /mnt/raid/
で一気に移しちゃいましょう。容量によってはものすごい時間がかかります。念のためnohupで実行したほうがいいと思います。なんかこれ帯域絞っても負担がすごいみたいでWebサーバとか反応が悪くなります。niceで優先度下げてもだめだし…ここらへん詳しい人教えていただけると嬉しいです(^^;
とまぁ、これが終わったら
rsync -avxHAXS –delete –progress /boot /mnt/raid/
こっちはすぐ終わりますね。

grub作るよ!

そしたら–bindつけて/devを/mnt/raid/devにマウントしてください。/procと/sysも同様にマウント。
準備ができたら/mnt/raidにchrootしてください。
忘れないうちに/etc/fstabを書き換えてください。UUIDはblkidで確認のこと。
で、mdadm –detail –scan >> /etc/mdadm/mdadm.confしてください。
次にupdate-initramfs -uでRAMファイルシステムを作り直します。
そんでもってgrub-install /dev/sdb
update-grub。
これで一度シャットダウンしてからsdaのケーブル引っこ抜いて起動。一応起動するはず。
1分半待たされるメッセージが出るときはfstabをミスってます。たぶんswapかbootがマウント出来てないんじゃないかと思います。一番躓くのはここかな?わからないけど。
だめなら適当にググってください^^;

RAID1構成にするよ!

ちゃんと起動して今あるサーバがちゃんと動いているかとか色々チェックしてからRAIDの修復に入ります。
バックアップはとりましたか?以前稼働していたHDDを消すことになりますから、ここからは後戻りできません。だめになったら諦めてください^^;
sdaをfdiskで切って(ここでは2つ)
mdadm /dev/md0 –add /dev/sda1とmdadm /dev/md1 –add /dev/sda2ってやれば同期が始まるはずです。

参考にさせていただいたサイト様

株式会社アクセンス・テクノロジー様(raid化)
Netsphere Laboratories様(raid化)
nabeの雑記帳様(grub関連)
ubuntu JapaneseTeam様(grub関連)
ありがとうございました。

コメント