« HDD入れ替えとLVMの導入 | メイン | データを全てファイル名に!? »

2008年1月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年1月20日 23:16

トラックバック

このエントリーのトラックバックURL:
http://isolinear.info/cgi-bin/mt/mt-tb.cgi/240

コメント

コメントしてください

コメントスパム等の対策のために,大量のURLを含むコメント,古いエントリーに対するコメント,連続したコメントなどは,一旦保留されます.




保存しますか?