gvinumの捨て方を書いた直後に 「gvinumとの付き合い方」だとさ。
結果的に、「論理ボリュームマネージャ」としてのvinumの魅力は 褪せていないわけで、ミラーリング(RAID1)機構を別のところで 賄いつつgvinumを使うのが良さそう、という結論に達した。
個人的に、PCなんかの安物のレベルの「ハードウェアRAID」は好かん。 なぜならそのハードウェアの製品的価値の寿命に左右されるから。 ハードウェアRAIDのボードが故障して、そのメーカーの製品が 手軽に入手できなくなったらどうすんのさ。ということで、 「ふつーソフトウェアRAID」なのだ。
前口上は置いといて、これまでFreeBSDではVinumを使うことで、 ソフトウェアRAIDが手軽に実現できた。なおかつ、確保するパーティションの 名前に好きなものを付けられるので、用途ごとに適切なサイズのパーティションを 何個でも作れて御便利だったのだ。が、gvinumはRAID機構は見捨てられたと 判断して良さそうだ。
で、GEOM_mirrorだ
man gmirror してみよう。みりゃ一目瞭然。ソフトウェアRAID1を組むには gmirror便利でっせ。gmirrorでは、用意した2つ(以上)の同一サイズのパーティ ションで御手軽にミラーリングが行なえる。って、じつはパーティションは 1個でもいいし、無駄を気にしなければ違うサイズのパーティションでも良い。
GEOM_mirror のいいところ
では使い方。
事前準備として、/boot/loader.conf
に下記を追加。
geom_mirror_load=YES
はい、やってみよう。ここでは、
/dev/ad0s1h と /dev/ad2s1h
でミラーリングしたいものとする。
構築するミラー化パーティションの名前を hoge とする。さあどうやるか。
って、簡単。
# gmirror label -v -b split hoge /dev/ad0s1h # gmirror insert hoge /dev/ad2s1h
1個目のコマンド起動で /dev/mirror/hoge
というデバイスファ
イルが作成されるのでもうこの時点で mount して利用できる。もちろん
最初の時点で /dev/ad0s1h
がnewfsしてあればの話だが。
一点注意。gmirrorによって既存デバイスファイルをmirrorデバイスに
組み込んだ後は、/dev/mirror/hoge
というデバイスファイルでし
かアクセスできない。つまり、/dev/ad0s1h
ではアクセスできな
い。
ということで、gmirrorでミラー化したら即座に fstab を書き換えておこう。 忘れるとマウントできなくてはまる。
かつてvinumでミラー化パーティションを作っていたが、もはや gvinumに detach, attach などのミラー化復旧に必要なサブコマンドが 実装されないので、vinumでミラーを考えるのはあきらめ。
んが、vinumの論理ボリューム管理機能は使いたい。じゃ、gmirror と組み合わせよう。というのが、FreeBSD 5.3R 以降のやり方。
2台のHDDに各々gvinum用のパーティションを同じサイズで確保する。 で、それらが /dev/ad0s1g, /dev/ad2s1g だとする。それをgvinumの driveとして登録する。
# gvinum create
して、
drive d0 device /dev/ad0s1g drive d2 device /dev/ad2s1g
てな感じ。さて、ここから5GBのミラー化パーティション foo を作りたい。
gvinum的ボリュームを2個作る。名前は、d0foo と d2foo にしよう。
gvinum create
して、
volume d0foo plex org concat sd drive d0 len 5g volume d2foo plex org concat sd drive d2 len 5g
これで2つの5GBパーティションができる。
/dev/gvinum/d0foo
/dev/gvinum/d2foo
これらを gmirror でRAID1統合して foo パーティションにする。
# gmirror label -v -b split foo /dev/gvinum/d{0,2}foo # newfs -U /dev/mirror/foo
ってな具合。
まあmanみてくれ。ちゅても、
# gmirror list foo
とかでなんとなく分かる出力が得られる。
叱咤激励感想ツッコミはゲストブックへ
Generated with mkdiary.rb