mdadmでのRAID構築までの記録1

前回の更新が8月なので、ほぼ3ヶ月更新できませんでした。ちょうどその頃Twitterって奴を始めてしまい、お手軽なせいもあってついついそちらばかりになってしまいました。
Ubuntu 10.04LTSを用いた録画サーバですが、現在のところ安定して運用できています。構成も前回書いたものから少々変更になりましたが、備忘録も兼ねて書き出しておきます。

CPUIntel Core i3 2100T
CPUクーラーサイズ KABUTO
Mother BoardASUSTek P8H67M-Pro
Memory4GB x2 計8GB
HDD HGST HTS543225A7A(2.5" 250GB): システム用
Western Digital WD20EARS(3.5" 2TB): 一次録画用
Western Digital WD30EZRX(3.5" 3TB) x 6台: RAID6 データ倉庫用
拡張カード類 玄人志向 SATA2I2-PCIe(システム・一次録画用HDDを接続)
アースソフト PT2
電源ユニットCorsair AX650
ケースLian-Li PC-A04B

ツッコミどころ多々あるかと思います…この構成で650Wの電源はいらないだろう…とかTDP35WのCPUにそんなクーラーいらないだろう…とか。一応弁解しておきますと、KABUTOについては前録画サーバとして使っていたものから流用です。オークションで売って処分しようかとも思いましたが、相場価格を見たら手間がかかる割にたいした金額になりそうもないので使ってしまおうと思った次第です。
電源については、プラグイン式で24時間稼働させるので高効率のもの…と思って色々検討した結果これになりました。動作音も静かで良好です。電源電卓で計算してもHDDが全て動いても恐らくは300W以下だろうと思いますのでマージンを見ても400Wクラスの電源で十分だったんですが、SATAの端子が足りなすぎたり(まぁ分岐ケーブル使えば良いんですが数が多くなるとそれも結構な金額になるし)、プラグインじゃ無かったり、色んな所のレビュー見たら音がうるさいとかだったりで、これになりました。将来使い回しもきくでしょうし良いかなと思います。CPUより高かったけど。

本題のRAID5からRAID6へのレベル変更なんですが、RAIDについてはmdadmを用いたソフトウェアRAIDで運用しています。
3ヶ月ほど前まではWD30EZRX を3台でのRAID5のストレージを構築していました。経済的な理由からです。後に3台増やして現在の形に使用と目論んでおり、このサイトを見て可能だろうと判断していましたが、失敗もしましたので記録しておきます。

接続したHDDにパーティションを作るのですが、3TBのHDDの場合アラインメントというやつがあり、ブロックサイズが合っていないと読み込むスピードが半分くらいまで低下する事があるなどという記述を見たため参考サイト2の記述を元にパーティションを作成していきます。HDDのデバイス指定の際、/dev/sdX と指定する事になるかと思いますが、認識した順番によってパーティションを作りたいディスクで無いものだったりする事があり得ますので注意しましょう。

# parted /dev/sdX
(parted) print
とすると、既にパーティションがあれば表示されます。新品であればパーティションは有りませんので、続けて
(parted) mklabel gpt
としておきます。一旦partedを終了します。
(parted) quit
そして通常のコンソールで

# parted --align=min --script /dev/sdX mkpart primary ext4 0 100%
とします。最小のアラインメントで、/dev/sdXというデバイスファイルのHDDにext4フォーマット向けの先頭から最大の容量までのプライマリ・パーティションを作るというような事をします。その後、先ほどの
# parted /dev/sdX

(parted) print

とすると、HDDの先頭の0からでは無くパーティションの先頭が0ではなく、0.02と表記されているかと思います。

RAIDではなく単独のディスクとして使用する場合はこの後、
# mkfs.ext4 /dev/sdX1
としてフォーマットした後マウントすれば良いかと思います。このままですと、管理者用の予約領域を5%も確保されてしまいます。3TBのHDDであれば、約150GBにもなります。女子高生の絶対領域が大好きなブログ主ですが、/homeとかデータ保管用のHDDにそんな大容量の予約領域はいらないかと思います。「-m 1」というオプションを付けておくと1%に変更できます。(フォーマット後にtune2fsコマンドを用いて変更する事も可能です)

RAIDの場合は上記の作業を台数分行います。(私が2ヶ月前に行ったのは3台分です)
/dev/sda1, /dev/sdb1, /dev/sdc1 という空のパーティションが出来ているものとします。
参考サイト3を元に、
$ sudo mdadm –create /dev/md0 –raid-device=3 –level=5 –metadata=1.0 –chunk=128 –layout=left-symmetric –bitmap=internal  /dev/sd[abc]1

各オプションの解説については文末のリンクよりご覧下さい。チャンクサイズのオプションについては、色々と検索してみましたが、RAID5やRAID6では128kが最もパフォーマンスが良いようです。
時間はかかりますが、その後はフォーマットします。今回はLVMは使用しませんでした…このRAIDに置くデータはそのまま別のNASに丸ごとコピーしてバックアップしているので、スナップショットの機能以外にメリットもないかなと思ったので。

RAIDの構築が終わったらフォーマットします。
sudo mkfs.ext4 -b 4096 -R stride=32 /dev/md0 
 ブロックサイズは通常 4096B
 -R stride = チャンクサイズ(128k) ÷ ブロックサイズ(4k) = ここでは32


あとは、/etc/mdadm/mdadm.conf(ディストリビューションによっては/etc/mdadm.conf)を記述しておきます。
sudo -i
echo "DEVICE partitions" > /etc/mdadm/mdadm.conf
echo "HOMEHOST fileserver" >> /etc/mdadm/mdadm.conf
echo "MAILADDR root@localhost" >> /etc/mdadm/mdadm.conf
mdadm --detail --scan >> /etc/mdadm/mdadm.conf

最初のsudo -i が判らずちょっとハマりました。
sudo echo "DEVICE partitions" > /etc/mdadm/mdadm.conf

としても、"Permission Denied"となります。同様の質問が海外のフォーラム(参考サイト5)でされていて解決しました。
あとは、/etc/fstabを編集してマウントできるようにします。





参考にしたサイトは以下の通りです。
1: http://hellokitty68.main.jp/wiki/Linux_Software_RAID5
2: 3TB HDD/4Kセクタ に関するえとせとら (Hanzubon.jp)
3: Ubuntu 10.04 Lucid LynxでRAID6構築
4: 福岡大学 奥村研究室
5: Ubuntu Forum [SOLVED] Cant write mdadm.conf to /etc/mdadm. Please help

コメント

このブログの人気の投稿

オルテガの 「大衆の反逆」

Ultr@VNCの設定でハマる

DREMEL ルータービットのちょっとした改造