RAID を組んでみる - SAPARAID-PCI
7月に節電でお亡くなりになった基幹システムサーバ。
復旧に当たって耐久性というか復旧性を上げようってことで、RAID を組むことに。
当初はRAID 組んだサーバマシンをDELL に注文しようって話だったが、予算の関係で余ったマシンで再構築することになったので、玄人志向のSAPARAID-PCI を購入して実装してみた。
とりま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 インストールが終わったら再起動。
これでなにもかもうまくいくはずだった。
だが起動しない
というかBIOS がRAID ボードをbootable として認識しない。
色々調べていくと、そもそもDELL に発注した際に RAID オプションを指定していないと、BIOS も対応していないものになるらしい。
はははのは。
そもそも boot は RAID じゃなくてヨクネ?
というわけで、お亡くなりになったマシンのHDD を挿して boot することに。
サーバマシンというか Web サーバマシンなので、データは /var に集約されている。
だから /var に RAID をマウントすればよい。boot やシステムファイルは hda で十分。
- インストールCD で起動。
- hda のルートパーティションを /mnt/gentoo にマウント
- RAID を適当にマウント
- hda の /var を RAID にまるっとコピー
- RAID アンマウント
- hda の /etc/fstab で /var に RAID をマウントするよう指定
- インストール時と同様に各種 boot/var/proc/dev をマウント
- chroot /mnt/gentoo /bin/bash
- dmraid をインストールして genkernel --dmraid all
- 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連打。それ以外の方法ではなぜか起動しない