RAID を組んでみる - SAPARAID-PCI

 7月に節電でお亡くなりになった基幹システムサーバ。

 復旧に当たって耐久性というか復旧性を上げようってことで、RAID を組むことに。

 当初はRAID 組んだサーバマシンをDELL に注文しようって話だったが、予算の関係で余ったマシンで再構築することになったので、玄人志向SAPARAID-PCI を購入して実装してみた。

マシン
DELL DIMENSION 8200
Kernel
Linux 2.6.35 gentoo r4

 とりまRAID ボードに同容量のHDD をぶっさして起動。起動画面で Ctrl-Z を3連打*1して、「手動」でミラーリング設定。ブートフラグはつけない。じゃないとなぜかうまくいかない。

 Gentoo インストールCD を入れて再起動。コマンド gentoo dodmraid 。

 インストールの手順はほぼ従来通り

 ただしデバイスが /dev/hda とか /dev/sda とかじゃなくて、/dev/mapper/* になる。このマシンでは /dev/mapper/via_cdfajgcjga ってのが、RAID ボードの認識。

fdisk /dev/mapper/via_cdfajgcjga

 デバイスのパスが特殊な以外は、いつもと同じようにパーティションを切れる。ちなみにこのとき、/dev/dm-0 とか /dev/dm-1 とか言うデバイスがあるが、これは dmraid 用のエイリアスみたいなものらしく、ここをいじるとおかしくなるので注意。

 パーティションを切ったらフォーマット。ここでもデバイス指定は /dev/mapper/* になる。

mkfs.ext2 /dev/mapper/via_cdfajgcjga1
mkfs.ext3 -b 1024 -i 1024 /dev/mapper/via_cdfajgcjga3
mkswap /dev/mapper/via_cdfajgcjga2

 ブロックサイズや inode の指定が上記みたいになるのは、これがサーバマシンだから。デフォルトのままでフォーマットすると、大抵 inode が枯渇する。

 続いてさくさくインストールを進めていくと、次の特記事項になるのは dmraid のインストール。これがないとインストールしたカーネルが dmraid を利用できない。

emerge -pv dmraid

 そしてカーネルコンパイル。一々が面倒なので genkernel 1択。dmraid を指定する。

genkernel --dmraid all

 /etc/fstab でも、上記のように /dev/mapper/* を指定。

/dev/mapper/via_cdfajgcjga1   /boot   ext2   noauto,noatime  1 2
/dev/mapper/via_cdfajgcjga2   none    swap   sw               0 0
/dev/mapper/via_cdfajgcjga3   /       ext2   defaults         0 1

 最後に GRUB の設定。カーネルオプションに dodmraid をつける。また grub-install がうまくいかないのでGRUB コンソールを立ち上げて、/dev/mapper/via_cdfajgcjga にちまちま設定していく。

 GRUB インストールが終わったら再起動。

 これでなにもかもうまくいくはずだった。

だが起動しない

 というかBIOSRAID ボードをbootable として認識しない。

 色々調べていくと、そもそもDELL に発注した際に RAID オプションを指定していないと、BIOS も対応していないものになるらしい。

 はははのは。

そもそも boot は RAID じゃなくてヨクネ?

 というわけで、お亡くなりになったマシンのHDD を挿して boot することに。

 サーバマシンというか Web サーバマシンなので、データは /var に集約されている。

 だから /var に RAID をマウントすればよい。boot やシステムファイルは hda で十分。

  1. インストールCD で起動。
  2. hda のルートパーティションを /mnt/gentoo にマウント
  3. RAID を適当にマウント
  4. hda の /var を RAID にまるっとコピー
  5. RAID アンマウント
  6. hda の /etc/fstab で /var に RAID をマウントするよう指定
  7. インストール時と同様に各種 boot/var/proc/dev をマウント
  8. chroot /mnt/gentoo /bin/bash
  9. dmraid をインストールして genkernel --dmraid all
  10. GRUBカーネルオプションに dodmraid を追加して、/dev/hda に再インストール

 所要2時間。問題なく起動して稼動して運用中。

 はじめっからこうしときゃよかった。

 boot 用のHDD が近々お亡くなりになる可能性もあるが、データはRAID で保護しているのでクリティカルではなかろう。基幹システムとはいえ3ヶ月止まってても問題なかった会社だし。

 gentoo のインストールだけなら1日もかからない。

参考文献

すけすけ。[http
//d.hatena.ne.jp/pideno/20080624/1214340620:title=GentooオンボードRAIDを使ってみる] : http://d.hatena.ne.jp/pideno/20080624/1214340620

 非常に助かりました。Special Thanks!

おまけ - tar でまるっとコピー

cd /mnt/gentoo/var
tar cf - . | (cd /mnt/gentoo/mnt/RAIDforVAR; tar vxf -)

*1:Please って言われた瞬間に3連打。それ以外の方法ではなぜか起動しない