« HDD入れ替えとLVMの導入 | メイン | データを全てファイル名に!? »
2008年01月20日
RAID(mdadm)のメモ
カテゴリー:
[Linux]
先日、LinuxサーバのHDD交換をしたわけですが、その後、24時間しない内に原因不明のフリーズに陥りました。
仕方ないので強制的に再起動しましたが、結局原因がわからないのでちょっと不安。
ハードウェア的にもソフトウェア的にもいろいろ変更したわけで、思い当たるところがありすぎです。
さて、HDD交換のついでにRAID1を組んだわけですが、そのときの操作をメモを兼ねて書いておくことにします。
mdadmによるRAIDの構築方法は簡単に見つかりますが、はまったのがセットアップ中に一度停止させたRAIDアレイをmdadmで再編成する方法。
RAID構築後に、以下のように、一度RAIDを停止させた場合。
# mdadm -S /dev/md1
次に、再びRAIDとして編成するときにどうするか。
ちゃんと調べないで停止させてしまったので、あわてて調べる羽目に。
最初は、こうやりましたが、うまく行きません。
# mdadm -A /dev/md1
/dev/md1 は編成されたRAIDアレイが使うデバイス名ですが、そのアレイの構成要素となるデバイス(/dev/hda1など)を識別する情報がないということなんでしょう。
結局、以下のようにして、まず、RAIDアレイのUUIDを調べ、
# mdadm -E /dev/hda1
その後、そのUUIDを指定して、一つ一つ編成しました。
# mdadm -A /dev/md1 -u xxxxxxxx:xxxxxxxx:xxxxxxxx:xxxxxxxx
ここまでが、実際の作業で使った方法。
結局、後で調べたらもっとやりやすい方法があったわけです。
まず、/etc/mdadm.conf に以下のように、RAIDアレイを探す対象のデバイスを書きます
DEVICE /dev/hda* /dev/hdb* /dev/hdc* /dev/hdd*
そして、以下を実行すると、既存のRAIDアレイを編成するのに必要な情報が出てきます。
# mdadm -E --scan
ARRAY /dev/md2 level=raid1 num-devices=2 UUID=xxxxxxxx:xxxxxxxx:xxxxxxxx:xxxxxxxx
ARRAY /dev/md1 level=raid1 num-devices=2 UUID=xxxxxxxx:xxxxxxxx:xxxxxxxx:xxxxxxxx
これは、そのままmdadm.confで使える形式なので、以下のように/etc/mdadm.conf に追記します。
# mdadm -E --scan >> /etc/mdadm.conf
この後、以下のようにすれば、既存のRAIDアレイが編成されます。
# mdadm -A --scan
ただ、このやり方は実際には試せてないんですが…
ここまではソフトウェア的な話ですが、ここからはハードウェア的な話。
ミラーリングなのでHDDを2台つなぐわけですがが、HDDを両方ともATA100のプライマリチャネルにつなぎました。
1つのチャネルにミラーリングしているHDDを2つつなげるのはなんとなく遅いような気がしましたが、
手持ちのケーブルの長さが足りないので仕方ありません。
DVD-ROMドライブがケースの上の方に、HDD2台が下の方についてるんで、DVD-ROMとHDDを1つのケーブルのマスターとスレーブにするには、一度ケースの上の方のDVD-ROMドライブにつなげた後、下の方にあるHDDまで降りてこないといけません。
まあ、HDDの取り付け位置をDVD-ROMの近くにすればいいんでしょうけど、冷却の都合もあるわけで。
(そもそも、SATAにすればいいと言う話もあるわけですが(^^;)
でも、マスターとスレーブの間の長さは、15cmのものがほとんどです。
全体もやたら長いものの、マスターとスレーブの間が30cmのケーブルを見つけることが出来たので、つなぎ変えてみました。
さて、これで速度に変化はあるのか。
接続を変更する前後で、bonnie++というソフトを使って、計測しました。
Gentoo では、
emerge bonnie++
でインストールできます。
以下のようにすれば計測できます。
キャッシュやバッファの影響を避けるために、実メモリの2倍のサイズのファイルを作るので、十分な空き容量が必要です。
/usr/sbin/bonnie++ -d (ディレクトリ名)
rootで実行すると警告が出るので、root以外のユーザで実行します。
で、計測してみたんですが、正直あんまり変わってない感じです(^^;
まあ、そんなものでしょう。あんまり、こだわるところではなかったのかもしれません。
今回、RAIDを構築した後で、RAIDを構成するHDDの接続場所を変えてしまいましたが、起動時にRAIDを構成するデバイスを探しに行きますので、問題は起きません。
ただ、mdの初期化時にデバイスが存在しないとまずいので、USBとかでつなぐとだめなようです。
投稿者 shingo : 2008年01月20日 23:16
トラックバック
このエントリーのトラックバックURL:
http://isolinear.info/cgi-bin/mt/mt-tb.cgi/240