gmirror

ソフトウェアRAID1(ミラーリング)をするためのアプリケーションです。 5.3-RELEASE では vinum は kernel panic を起こしましたが、 gmirror ならうまく動くようです。 disklabel をいじらなくてもいいので、設定も vinum より簡単です。

ここでは、個人用のホームディレクトリバックアップ用のディスクを ミラーすることを考えます。 ブートできるディスクをミラーするときは、 そのうちの一つが起動中のときは設定をできないので、 フロッピーブートをしてから設定するなどの工夫をする必要があります。

参考サイト


RAID1 を作る

2台のハードディスクがあって、 デバイス名が /dev/da0 と /dev/da1 となっているとします。 これらはすでに Fdisk,disklabel,newfs などを済ませてあるとします。 そして、パーティション /dev/da0c と /dev/da1c をミラーリングするための 設定をしましょう。

gmirror のコマンドいろいろ

gmirror にはいろいろなサブコマンドがあります。 下で name と書いてあるのはミラーの名前(上の例では mrr)で、 prov とあるのはディスクのデバイス名です。 オンラインマニュアルの書き方に則りました。 デバイス名では /dev/da0 などを省略して da0 と書いても構いません。

なお、providers とはミラー(上の例では mrr)のことで、 consumers とはミラーに参加しているディスク/パーティションのことです。 上では prov でディスクを表すと言ってるのにややこしいです。

サブコマンド 説明
status ミラーの状態を見る。
label name prov ミラーを作成する。オプションあり。 新しい
insert name prov ミラーにディスクを追加する。オプションあり。
list providersとconsumersの情報を出す。
stop name name を止める。
activate name prov name prov を動かす。
deactivate name prov name prov を止める。
forget name name に参加してるが接続されてない prov を無視する。
rebuild name prov name prov をミラーに同期させる
clear prov prov に関する metadata を消去する。
remove name prov name prov に関する metadata を消去する。
なお、サブコマンド共通オプションとして詳細な情報を表示するための -v があります。

stop でミラーを止めれば /dev/da0c や /dev/da1c は通常通りマウントできます。
# gmirror stop mrr
# mount /dev/da0c /mnt
片肺が壊れても、残りの片肺からデータを吸い上げるのは簡単ですね。 再びミラーを動かすときは、activate して、 どちらかを(例えば da1c を da0cに)同期させたいときは rebuild します。
# gmirror activate mrr da0c
# gmirror activate mrr da1c
# gmirror rebuild mrr da1c

トラブル発生時の対処

例えば、da0c と da1c のうち、da1c が壊れたとしましょう。 このときは、forget コマンドで壊れたディスクのことを一旦忘れさせて、 新しいディスクを認識、format した上で新たにミラーに組み込んでやります。
# gmirror forget mrr
(壊れたディスクと新しいディスクを交換)
(新しいディスクをフォーマット)
(新しいディスクが再び da1c となっていれば)
# gmirror insert mrr da1c

FreeBSD の部屋


Last modified: Thu Nov 10 17:35:47 2005