EN JA
GMIRROR(8)
GMIRROR(8) FreeBSD System Manager's Manual GMIRROR(8)

名称

gmirrorミラーデバイスのための制御ユーティリティ

書式

gmirror label [ -Fhnv][ -b balance][ -s slice] name prov ...

gmirror clear [ -v] prov ...

gmirror configure [ -adfFhnv][ -b balance][ -s slice] name

gmirror configure [ -v] -p priority name prov

gmirror rebuild [ -v] name prov ...

gmirror insert [ -hiv][ -p priority] name prov ...

gmirror remove [ -v] name prov ...

gmirror activate [ -v] name prov ...

gmirror deactivate [ -v] name prov ...

gmirror forget [ -v] name ...

gmirror stop [ -fv] name ...

gmirror dump prov ...

gmirror list

gmirror status

gmirror load

gmirror unload

解説

gmirror ユーティリティは、ミラー (RAID1) 設定に使用されます。ミラーの作成の後に、すべてのコンポーネントは、自動的に検出されて、設定されます。また、失敗検出、古いコンポーネント検出、古いコンポーネントの再構築などのようなすべての操作は、自動的に行われます。 gmirror ユーティリティは、すべての必要な情報を格納するために、 (プロバイダの最後のセクタに格納される) ディスク上のメタデータを使用します。最後のセクタがこのために使用されるので、ミラーに関してルートファイルシステムを位置付けることは可能です。

gmirror への最初の引数は、実行される動作を示します:

label
ミラーを作成します。コンポーネントの優先順位が (0 から始まり 255 まで) 位置に基づいているので、コンポーネントの順序は、重要です。最も大きい優先順位があるコンポーネントは、 prefer バランスアルゴリズムを選ぶことによって使用され、例えば、デバイスが書き込みのためにオープンされるとき、停電した後、再同期が必要であるときに、マスタコンポーネントとしても使用されます。

追加オプションは、次を含みます:

-b balance
次の 1 つの使用するバランスアルゴリズムを指定します。
load
最も低い負荷でコンポーネントから読み込みます。これは、デフォルトのバランスアルゴリズムです。
prefer
最も大きい優先順位があるコンポーネントから読み込みます。
round-robin
読み込むためのコンポーネントを選ぶとき、ラウンドロビンアルゴリズムを使用します。
split
N 個の断片で切り取りサイズが等しいか大きい、読み込み要求を分割します。ここで N は、活動的なコンポーネントの数です。
-F
停電またはシステムクラッシュの後に同期しません。デバイスが、一貫した状態であると仮定します。
-h
メタデータのプロバイダの名前を決め打ちします。
-n
古いコンポーネントの自動同期をオフにします。
-s slice
split バランスアルゴリズムと I/O READ 要求を使用することが、この値と等しいかより大きいときに、I/O 要求は、N 個の断片に分割されます。ここで N は、活動的なコンポーネントの数です。デフォルトは、4096 バイトです。
clear
与えられたプロバイダでメタデータをクリアします。
configure
与えられたデバイスを設定します。

追加オプションは、次を含みます:

-a
古いコンポーネントの自動同期をオンにします。
-b balance
使用するバランスアルゴリズムを指定します。
-d
メタデータのプロバイダの名前を決め打ちしません。
-f
停電またはシステムクラッシュの後にデバイスを同期します。
-F
停電またはシステムクラッシュの後に同期しません。デバイスが、一貫した状態であると仮定します。
-h
メタデータのプロバイダの名前を決め打ちします。
-n
古いコンポーネントの自動同期をオフにします。
-p priority
与えられたコンポーネント prov のための優先順序を指定します。
-s slice
split バランスアルゴリズムのための切り取りサイズを指定します。
rebuild
強制的に与えられたミラーコンポーネントを再構築します。自動同期が与えられたデバイスのためにオフにされないなら、このコマンドは、不要のはずです。
insert
与えられた (複数の) コンポーネントを既存のミラーに追加します。

追加オプションは、次を含みます:

-h
メタデータのプロバイダの名前を決め打ちします。
-i
挿入直後に不活発であると (複数の) コンポーネントをマークします。
-p priority
与えられたコンポーネントの優先順位を指定します。
remove
ミラーから与えられた (複数の) コンポーネントを取り除き、それに関するメタデータをクリアします。
activate
以前、不活発であるとマークされていた与えられたコンポーネントを活性化します。
deactivate
自動的にミラーに接続されないので、与えられた (複数の) コンポーネントを不活発であるとマークします。
forget
接続されていないコンポーネントを忘れます。 remove コマンドがそれを取り除くために使用されることを防いで、ディスクが失敗して、再接続されることができないとき、このコマンドは、役に立ちます。
stop
与えられたミラーを停止します。

追加オプションは、次を含みます:

-f
それがオープンされていても、与えられたミラーを停止します。
dump
与えられたプロバイダで格納されたメタデータをダンプする。
list
geom(8) 参照。
status
geom(8) 参照。
load
geom(8) 参照。
unload
geom(8) 参照。

追加オプションは、次を含みます:

-v
より冗長にします。

終了ステータス

終了ステータスは、成功すれば 0、コマンドが失敗するなら 1 です。

使用例

ミラーをセットアップするために 3 個のディスクを使用します。 2kB に等しいか大きい要求だけを分割する、分割バランスアルゴリズムを選びます。ファイルシステムを作成し、それをマウントし、次に、それをアンマウントして、デバイスを停止します:

gmirror label -v -b split -s 2048 data da0 da1 da2 
newfs /dev/mirror/data 
mount /dev/mirror/data /mnt 
... 
umount /mnt 
gmirror stop data 
gmirror unload

有効データでディスクにミラーを作成します (ディスクの最後のセクタは、上書きされることに注意してください)。それが既存のディスクに同期するようにこのミラーに別のディスクを追加します:

gmirror label -v -b round-robin data da0 
gmirror insert data da1

ミラーを作成しますが、自動同期機能を使用しません。別のディスクを追加して、それを再構築します:

gmirror label -v -n -b load data da0 da1 
gmirror insert data da2 
gmirror rebuild data da2

あるディスクは、失敗しました。それを新しいものに取り替えます:

gmirror forget data 
gmirror insert data da1

ミラーを作成して、1 つのコンポーネントを非活性化して、バックアップを行い、そして、もう一度それを接続します。 (それまでの間に書き込みがなく) そうする必要がないなら、再同期しません:

gmirror label data da0 da1 
gmirror deactivate data da1 
dd if=/dev/da1 of=/backup/data.img bs=1m 
gmirror activate data da1

gmirror プロバイダにカーネルダンプを行います。

これは、可能ですが、いくつかの条件が満たされなければなりません。まず、カーネルダンプは、単に 1 つのコンポーネントのみで、 gmirror は、常に最も高い優先順序でコンポーネントを選びます。ブートのミラーからダンプを読み込むことは、 prefer バランスアルゴリズムが使用される場合のみ動作します (そのように、 gmirror は、最も高い優先順序でコンポーネントからのみ読み込みます)。異なったバランスアルゴリズムを使用するなら、利用者は、次を追加するべきです:

gmirror configure -b prefer data

は、 /etc/rc.early スクリプトにためです、そして:

gmirror configure -b round-robin data

は、 /etc/rc.local スクリプトのためです。どのコンポーネントをダンプするかを選んだらよいかという決定は、 dumpon(8) が呼び出されるとき、行われます。次のブートでより高い優先順位のコンポーネントが利用可能であるなら、好みのアルゴリズムは、それから読み込むことを選び、 savecore(8) は、何も見つけません。次のブートでより高い優先順位のコンポーネントが同期されるなら、好みのバランスアルゴリズムは、次のものから読み込み、その結果そこで何も見つかりません。

歴史

gmirror ユーティリティは、 FreeBSD 5.3 で登場しました。

作者

Pawel Jakub Dawidek <pjd@FreeBSD.org>

バグ

走行中のミラーの中にコンポーネントの優先順位を変更する方法があるべきです。

実装の説明のセクションがあるべきです。

sysctl kern.geom.mirror.* のための文書が不足しています。

December 8, 2009 FreeBSD