3連休でディスクアレイを構築すべくHDDを組み込んだのだが、これが悪態の4・5発もつきたくなるような実に忌まわしい作業だった。
このケースは一応3.5インチHDDを6台積めることになっているのだが、フルにHDDを実装するとSerialATAでもケーブルの取り回しが面倒くさくていけない。当方では80 + 500 + 250×4(RAID5)で計6台の割とアホな構成でファイルサーバを構築したわけなんだが、ケーブルの取り回しが大変で、コネクタの抜けとか破損の恐怖に怯えながらPCを組む羽目になり精神衛生上非常によろしくない。アホみたいにディスクを積み込みまくりたい御仁にはこのケースは不向き。専用の外付けケースを使うか、さもなくば5インチベイがたくさんあるケースにエンクロージャを組み込むのが良いかと思われる。
さて、ビクビクしながら組み上げたPCは(HDDの認識順がSATAアダプタのポートと一致していないなど不安でいっぱいだが)一応動くようになったので、まずは時間節約のため4台並列でHDDの検査を行う。/sbin/badblocks -s -w -f デバイスファイル
を立て続けに4回実行してしばらく待つ。この際screenを使うと、検査中にログアウトしてどこかに遊びにいけるというのが便利だ。250GBのディスクの検査には半日くらいかかるようなので、その間洗濯などしつつチンタラ待つ。
半日待ってディスクに問題が無いことを確認したら、まずは各HDDにfdiskでパーティションを切る。このときパーティションタイプは0xfd(Linux RAID autodetect)にしておく。最後にfdisk -l /dev/sd[c-f]などとして、アレイを組むディスク全部にパーティションを切ったことを確認してアレイを作成する。うちではファイルサーバにDebian GNU/Linux 4.0(etch)を使っているので、アレイはmdadmで組むことになる。mkadm /dev/md/0 -l5 -n4 /dev/sd[cedf]1
とかタイプするとデバイスファイル/dev/md/0でアクセスできるアレイが構築され、いきなりパリティの計算がおっ始まる。パリティの計算中でも一応ディスクに書き込みはできるのだが、ここは我慢して待つことにした。パリティ計算の進行状況は/proc/mdstatに書いてあるので、catなどで適宜状況を確認しつつ、他のことでもしていると良いだろう。今回750GBの初期化には130分ほどかかったので、そのあいだじゅう18歳の老犬と戯れておりました。なお、mdadmに対してうっかり/dev/sd[c-f]などとディスク全体を与えてしまうと、せっかく作ったパーティションテーブルが破壊され、後々何かと厄介なことになるので注意すること(私は何度かしくじった)。
つつがなくアレイのパリティ計算が終わったら、普通はファイルシステムの作成へとなだれ込むのだが、今回はxfs_copyで500GBのHDDからデータをコピーすればことが足りるので、コピー元のHDDをアンマウントしてxfs_copy /dev/sdb /dev/md/0
でコピー。ちなみに、この方法はddと違い未使用ブロックはコピーされないので時間の節約にはなるのだが、困ったことにファイルシステムのサイズがコピー元と同じ500GBになってしまう。そこでまずはmount -t xfs /dev/md/0 /mnt
としてアレイをマウント後、xfs_growfs /mnt
でファイルシステムが750GBに拡張される。めでたしめでたし。
ここまできたら後は簡単。/etc/fstabを書き換えて、アレイを起動時にマウントできるようにするだけ。アレイを起動時に自動認識するのは、Debianのmdadmを使っているのであれば自動でやってくれる。
今後の目標は、まずは障害対応のために「アダプタのポート番号とデバイスファイル名の対応を固定する」というのがある。これは切実なので気合を入れて調査しなくてはいけない。その次はお遊びでアクセスランプを4つ装備して、分散パリティ付きストライピングしているところを見えるようにすること。最後にディスクを1台追加してアレイに追加し、オンライン領域拡張を試すことかな?もっとも、次にディスクを足す方法が大問題なのだが。とりあえず4台まではPCIでなんとかなったが、この上を目指すとなるとものすごく頭が痛い……。
0 件のコメント:
コメントを投稿