GVIRSTOR(8) | FreeBSD System Manager's Manual | GVIRSTOR(8) |
名称
gvirstor — 仮想のデータ記憶デバイスのための制御ユーティリティ書式
gvirstor | label [ -hv][ -s virsize][ -m chunksize] name prov ... |
gvirstor | stop [ -fv] name ... |
gvirstor | destroy [ -fv] name ... |
gvirstor | add [ -vh] name prov ... |
gvirstor | remove [ -v] name prov ... |
gvirstor | clear [ -v] prov ... |
gvirstor | dump prov ... |
gvirstor | list |
gvirstor | status |
gvirstor | load |
gvirstor | unload |
解説
gvirstor ユーティリティは、仮想サイズ以下の合計サイズで物理的な記憶デイバスの任意の数から成る、任意の大きなサイズ (例えば、数 TB) の記憶デバイスをセットアップするために使用されます。仮想デバイスのためのデータは、オンデマンドで物理デバイスから割り付けられます。 gvirstor の裏の考えは、オペレーティングシステムにおける仮想メモリ (Virtual Memory) の概念と同様です、事実上、ユーザが記憶域 (空きファイルのシステム空間) で以上の割り当てができます。また、概念は、仮想化された環境で "薄いプロビジョニング (provisioning)"として知られていて、ここだけ、物理的メモリデバイスのレベルで実装されています。gvirstor への最初の引数は、実行される動作を示します:
- label
- 指定された name で与えられた構成要素から仮想デバイスをセットアップします。メタデータは、あらゆる構成要素の最後のセクタに格納されます。引数 -s virsize は、2 TiB (2097152 MiB) がデフォルトの新しい仮想デバイスのサイズです。引数 -m chunksize は、4 MiB (4096 KiB) がデフォルトのチャンク (塊) サイズです。したがって、デフォルトは、“ -s 2097152 -m 4096”です。
- stop
- 与えられた name にで既存の仮想デバイスをオフに切り替えます。このコマンドは、ディスク上のメタデータをタッチ (変更) していません。他の GEOM クラスのように、停止している geom は、直ちに開始することができません。
- destroy
- stop と同じです。
- add
- 与えられた name で既存の仮想デバイスに新しい構成要素を追加します。指定された virstor デバイスは、存在していて、アクティブでなければなりません (すなわち、ロードされたモジュール、 /dev に存在するデバイス。) virstor デバイスが使用中 (“hot”操作) である間に、安全にこの動作を実行することができます。
- remove
- 与えれた name で既存の仮想デバイスから構成要素を削除します。割り付け解放されたプロバイダしか削除することはできません。
- clear
- 与えられたプロバイダでメタデータをクリアします。
- dump
- 与えられたプロバイダに格納されたメタデータをダンプします。
- list
- geom(8) を参照してください。
- status
- geom(8) を参照してください。
- load
- geom(8) を参照してください。
- unload
- geom(8) を参照してください。
追加オプションは、次の通りです:
- -f
- 指定された仮想デバイスの削除を強制します。
- -h
- メタデータの決めうちされたプロバイダの名前。
- -v
- より冗長にします。
使用例
次の例は、補助記憶装置のための 2 つの物理的なデバイスで、デフォルトサイズ (2 TiB)、デフォルトチャンク (拡張) サイズ (4 MiB) の仮想のデバイスをどのように作成するかを示しています。
gvirstor label -v mydata /dev/ada4 /dev/ada6 newfs /dev/virstor/mydata
これから先は、仮想デバイスは、 /dev/virstor/mydata デバイスエントリを通して利用可能となります。アクティブな virstor デバイスに新しい物理的なデバイス / 構成要素を追加するためは、次の通りです:
gvirstor add mydata ada8
これは、 /dev/virstor/mydata デバイスに ada8 の物理的な記憶域を追加します。
(どのくらいの物理的な記憶域がまだ仮想デバイスで利用可能であるかを含む)、デバイス状態情報を見るためには、次を使用します:
gvirstor list
すべての標準の geom(8) サブコマンド (例えば、 status, help) もサポートされています。
SYSCTL 変数
gvirstor には、いくつかの sysctl(8) 調整変数があります。
int kern.geom.virstor.debug
この sysctl は、範囲 1 から 15 でカーネルモジュールの冗長性を制御します。これより高い冗長性のレベルでマークされるメッセージは、抑制されます。レベル 1 メッセージは、エラーイベントであり、レベル 2 メッセージは、システムの警告であるので、デフォルト値は、5 であり、それは、2 未満にこの調整変数を設定することは、推奨されません。
int kern.geom.virstor.chunk_watermark
この sysctl の値は、単一の構成要素で物理的なチャンクの使用のために警告ウォータマーク (水位標) レベルを設定します。警告は、virstor の構成要素がこの多くの空きチャンク (デフォルトは、100) 以下のとき、出力されます。
int kern.geom.virstor.component_watermark
この sysctl の値は、構成要素の使用に警告ウォータマーク (水位標) レベルを設定します。警告は、それらが、この多くの構成要素 (デフォルトは、1) 以下のとき、出力されます。
また、これらのすべての sysctl は、 loader(8) 調整変数として利用可能です。
診断
The gvirstor utility exits 0 on success, and >0 if an error occurs.gvirstor カーネルモジュールは、ログメッセージフィルタリングとディスパッチの役に立つ、標準化された形式の接頭辞でログメッセージを出力します。各メッセージ行は、次で始まります。
GEOM_VIRSTOR[%d]:
数 (%d) は、範囲 1 から 15 でメッセージの冗長性 / 重要性レベルです。メッセージフィルタリング、ディスパッチ、またはオペレータ警戒システムが、使用されているなら、レベル 1 と 2 があるメッセージが (例えば、ウォータマーク sysctl によって設定されるように容量不足を捕らえるために) 重大に取られることをお勧めします。
歴史
gvirstor ユーティリティは、 FreeBSD 7.0 ではじめて登場しました。バグ
コマンド add と remove は、それらの実行の間に停電 (または、他の破壊的な出来事) が起こるなら、 virstor デバイスを使用不可能にするかもしれない不可避なクリティカルセクションを含みます。システムが静かであるときに、それらを実行することをお勧めします。ファイルシステムでの仮定と相互作用 (ASSUMPTIONS AND INTERACTION)
gvirstor が動作中に存在する、いくつかの仮定があります: 仮想記憶デバイスのサイズは、それがいったん設定されると、変更されず、個々の物理記憶構成要素のサイズは、それらが存在する間に、常に一定のままとなります。仮想または、サイズ変更可能なファイルシステムを実装する代替の方法については、 zfs(1M), gconcat(8) と growfs(8) を参照してください。gvirstor には、newfs の間に多数のディスク構造を初期化する、ファイルシステムとの重要な相互作用があることに注意してください。そのようなファイルシステムが、 (UFS/UFS2 で行うような) ドライブメディアに渡ってそれらの構造を拡大することを試みるなら、事実上、それらの取り組みは、 gvirstor のチャンクの連続した割り付けによって失敗され、それらのすべての構造は、最初の virstor 構成要素の始めに物理的に割り付けられます。これは、 (たとえ肯定的ないくつかのまれに場合さえ)、ファイルシステム性能で重要な影響を与えるかもしれません。
作者
<ivoras@FreeBSD.org>Google Summer of Code 2006 によって後援されました。
October 1, 2013 | FreeBSD |