遅ればせながらFreeBSDのファイルサーバのRAID化に挑戦。安い玄人志向の古いRAIDカード ATA133RAIDPCIが発掘されたのでそれを利用。チップはSil0680。
最初はBIOSでRAIDを構築しようとしたが、どうも構築してくれている様子がない。そもそもLEDがボードに接続されていないのでHDDアクセスの様子がわからないのも問題。どうせ構築されていないだろうと思い途中でリセットして再起動させたら、やはりカードのBIOS画面でRAIDが壊れているという表示が出た。無視してFreeBSDを起動したら、ar0が壊れている、というブートメッセージが出た。一応manにあるとおり、Sil0680のmeta dataは読めるらしい。
結局役に立たないし、万一ボードが壊れたときに一緒にデータが消えるのは困るので、FreeBSDのPsuedo RAIDを使うことにする。
FreeBSD-6.0でのRAID構築の手順は以下の通り。ただし、これはsystemが入っているドライブではない場合の方法。
ata3-masterのad6に元のデータが入っているドライブで、ata2-masterのad4が空のドライブとする。
- 最初はまずドライブの接続状況チェックをした方が良いね。
- # atacontrol list
- RAID1(mirror)の設定をする
- # atacontrol create raid1 ad6 ad4
- # atacontrol detach ata2
- ここで再起動
- なぜか ad6とad4が独立のRAIDとして認識されてしまう。仕方がないので、ad4が属するRAID(ar0)を削除する
- # atacontrol status ar0
- # atacontrol delete ar0
- ad6はar1のRAIDを構成するので、ad4をar1のspareとして登録
- # atacontrol addspare ar1 ad4
- 再構築する。ここで初めてad6の中身がad4にコピーされる
- # atacontrol rebuild ar1
- バックグランドで再構築が始まる。かなり時間がかかるので要注意。進捗の様子は以下のコマンドで確認出来る
- # atacontrol status ar1
伊藤さんのFreeBSD Tipsを参考にしました。