« 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

コメント

It's actually a great and useful piece of info. I'm glad that
you just shared this helpful info with us. Please keep us informed like this.
Thank you for sharing.

投稿者 låssmed jour göteborg : 2023年11月11日 04:15

コメントしてください

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




保存しますか?