vinum(8) FreeBSD 一般コマンドマニュアル

vinum

前のページ 上に戻る 次のページ

vinum




コマンド

     attach plex volume [rename]

     attach subdisk plex [offset] [rename]
             プレックスをボリュームに、またはサブディスクをプレックスに結合し
             ます。

     checkparity plex [-f] RAID-4 または RAID-5 のプレックスのパリティブロック
             を検査します。

     concat [-f] [-n name] [-v] drives
             指定したドライブからコンカチネート化ボリュームを作成します。

     create [-f] description-file
             description-file の記述に従ってボリュームを作成します。

     debug   ボリュームマネージャをカーネルデバッガに移行させます。

     debug flags
             デバッグフラグを設定します。

     detach [-f] [plex | subdisk]
             結合されていたボリュームやプレックスから、プレックスやサブディス
             クを分離します。

     dumpconfig [drive ...]
             指定されたドライブに格納されている設定情報を表示します。ドライブ
             名を指定しないと、システムの全ドライブの情報を表示します。

     info [-v] [-V]
             ボリュームマネージャの状態を表示します。

     init [-S size] [-w] plex | subdisk
             サブディスクまたはプレックスの全サブディスクの内容をすべて 0 に初
             期化します。

     label volume
             ボリュームラベルを作成します。

     l | list [-r] [-s] [-v] [-V] [volume | plex | subdisk]
             指定したオブジェクトの情報を表示します。

     ld [-r] [-s] [-v] [-V] [volume]
             ドライブの情報を表示します。

     ls [-r] [-s] [-v] [-V] [subdisk]
             サブディスクの情報を表示します。

     lp [-r] [-s] [-v] [-V] [plex]
             プレックスの情報を表示します。


     quit    対話モード時に、 vinum プログラムを終了します。通常 EOF 文字を入
             力することにより実現できます。

     read disk ...
             指定したディスクから vinum の設定を読み出します。

     rename [-r] [drive | subdisk | plex | volume]
             指定したオブジェクトの名前を変更します。

     rebuildparity plex [-f] [-v] [-V]
             RAID-4 または RAID-5 のプレックスのパリティブロックを再構築しま
             す。

     resetconfig
             すべての vinum の設定をリセットします。

     resetstats [-r] [volume | plex | subdisk]
             指定したオブジェクトの統計情報をリセットします。指定がない場合は
             すべてのオブジェクトが対象です。

     rm [-f] [-r] volume | plex | subdisk
             オブジェクトを削除します。

     saveconfig
             設定失敗後に、 vinum の設定をディスクへ保存します。

     setdaemon [value]
             デーモンの設定を与えます。

     setstate state [volume | plex | subdisk | drive]
             他のオブジェクトに影響を与えずに状態を設定します。診断のためだけ
             に使用します。

     start   全 vinum ドライブから設定を読み込みます。

     start [-i interval] [-S size] [-w] volume | plex | subdisk
             システムがオブジェクトへアクセスできるようにします。

     stop [-f] [volume | plex | subdisk]
             オブジェクトへのアクセスを終了させます。パラメータを指定しない
             と、 vinum を停止させます。

     stripe [-f] [-n name] [-v] drives
             指定したドライブからストライプ化ボリュームを作成します。


解説

     vinumvinum(4) 論理ボリュームマネージャと通信するためのユーティリティ
     プログラムです。 vinum は対話形式と、単独のコマンドを実行する形式のいずれ
     も実行可能になっています。コマンドライン引数を伴わずに vinum を起動すると
     対話形式になる一方、コマンドラインでコマンドを指定するとそのコマンドだけ
     を実行します。対話モードでは、 vinum はコマンドラインヒストリを保持しま
             は myvolume がオープンされていたとしても削除します。以降、このボ
             リュームにアクセスすると、ほぼ確実にパニックを起こします。

     -i millisecs
             init または start のコマンドを実行時、各ブロックのコピーの間に
             millisecs ミリ秒待ちます。これにより、システム負荷を軽減できま
             す。

     -n name
             ボリューム名を指定するために -n オプションを使用します。単純な設
             定コマンド concat, mirror, stripe 用です。

     -r      -r (``recursive: 再帰的'') オプションは表示系のコマンドで使い、指
             示したオブジェクトだけでなく、下位のオブジェクトの情報も表示しま
             す。例えば、 lv コマンドとともに使われる場合、 -r オプションは対
             象のボリュームに属するプレックスとサブディスクの情報も表示しま
             す。

     -s      -s (``statistics: 統計'') オプションは表示系のコマンドで統計情報
             を表示するために使います。 mirror コマンドもこのオプションを使用
             し、ストライプ化プレックスを作成すべきことを示します。

     -S size
             -S オプションは、 initstart コマンドのための転送サイズを指定
             します。

     -v      -v (``verbose: 冗長'') オプションは、さらに詳細な情報を要求するた
             めに使用します。

     -V      -V (``Very verbose: とても冗長'') オプションは、 -v オプションが
             提供するものよりもさらに詳細な情報を要求するために使用します。こ
             のフラグは init コマンドではベリファイを意味します。

     -w      -w (``wait: 待ち'') オプションは、 init のように通常はバックグラ
             ウンドで実行するコマンドの完了を、 vinum に待たせます。


コマンドの詳細

     vinum コマンドは以下の機能を実行します。

     attach plex volume [rename]
     attach subdisk plex [offset] [rename]
             vinum attach vinum attach は指定されたプレックスやサブディスクを
             それぞれボリュームやプレックスに組み込みます。サブディスクについ
             ては、プレックス中の始点 (オフセット) を指定することができます。
             指定がない場合、サブディスクは有効な最初の位置に結合されます。空
             でないボリュームにプレックスが結合されると、 vinum はそのプレック
             スを再統合します。

             rename キーワードが指定されると、 vinum はオブジェクトの (プレッ
             クスの場合には下位のサブディスクの) 名前を変更してデフォルトの
             vinum 命名規則に合わせます。オブジェクトを他の名前に変更するに
             は、 rename コマンドを使用します。

             o   コンカチネート化プレックスに対しては、 offset パラメータが、
                 プレックスの先頭からのブロック単位のオフセットを指定します。
                 ストライプ化プレックスおよび RAID-5 プレックスに対しては、本
                 パラメータは、サブディスクの最初のブロックのオフセットを指定
                 します。別の表現をするなら、オフセットは、サブディスクの数値
                 指定による位置とストライプの大きさとの積になります。例えば、
                 ブロックの大きさが 271k のプレックスでは、最初のサブディスク
                 はオフセット 0 に、2 番目のオフセットは 271k に、 3 番目は
                 542k に、などとなります。この計算では、RAID-5 プレックスのパ
                 リティブロックは無視されます。

     checkparity plex [-f] [-v]
             指定した RAID-4 または RAID-5 プレックスのパリティブロックを
             チェックします。この操作はプレックス中のポインタを維持しますの
             で、望むならば、一時停止して後で同じ場所から再開可能です。さら
             に、このポインタは rebuildparity コマンドも使用します。最初にパリ
             ティの問題が検出された箇所から、パリティブロックの再構築を開始可
             能です。

             -f フラグが指定されると、 checkparity はプレックスの先頭から
             チェックを開始します。 -v フラグが指定されると、 checkparity は進
             捗報告を表示します。

     concat [-f] [-n name] [-v] drives
             concat コマンドは、単一のコンカチネート化プレックスからなるボリュ
             ームを作成する create コマンドの、単純な代替手段です。各ドライブ
             中の最大の連続空間が、プレックスのサブディスク作成のために使用さ
             れます。

             通常、 concat コマンドは任意の名前をボリュームと構成要素に付けま
             す。名前はテキスト ``vinum'' および小さな整数からなり、例えば
             ``vinum3'' となります。ボリュームに対して指定した名前を割り当てる
             -n name オプションで、上書きすることが可能です。プレックスとサブ
             ディスクの名前は、通常の作法で、ボリューム名からとられます。

             ドライブの名前には選択の余地はありません。ドライブが既に vinum ド
             ライブとして初期化されていた場合、名前はそのままになります。そう
             でない場合、ドライブにはテキスト ``vinumdrive'' と小さな整数から
             始まる名前が与えられ、例えば ``vinumdrive7'' となります。 create
             コマンドと同様、 -f オプションを使用して、以前の名前の上書きを指
             定可能です。 -v オプションは、冗長な出力のために使用します。

             このコマンドの例は、後述の 単純な設定の節を参照してください。

     create [-f] description-file
             vinum create はどのオブジェクトの作成にも使われます。相互の関連性
             が比較的複雑で vinum オブジェクトの作成には潜在的に危険があること
             を考慮して、この機能には対話的なインタフェースはありません。ファ
             イル名を指定しないと、 vinum は一時ファイルに対してエディタを起動
             します。環境変数 EDITOR が設定されている場合、 vinum はこのエディ
             タを起動します。設定されていない場合のデフォルトは vi です。詳細
             用します。これは vinum が VINUMDEBUG オプション付きで作成されてい
             る場合にのみ実行可能です。このオプションはカーネルデバッガから抜
             け出るまでオペレーティングシステムの実行を停止させます。リモート
             デバッグが設定されており、カーネルデバッガへのリモートコネクショ
             ンがないと、デバッガから抜け出るためにはシステムをリセットしてリ
             ブートすることが必要になります。

     debug flags
             内部デバッグフラグのビットマスクを設定します。本製品が改良される
             につれ、このビットマスクは警告無しに変更されるでしょう。確認のた
             めに、ヘッダファイル <sys/dev/vinumvar.h> を見てください。ビット
             マスクは次の値から構成されます:

             DEBUG_ADDRESSES (1)
                     リクエスト中のバッファ情報を表示します。

             DEBUG_RESID (4)
                     complete_rqe() においてデバッガに移行します。

             DEBUG_LASTREQS (8)
                     最新のリクエストのリングバッファを保存します。

             DEBUG_REVIVECONFLICT (16)
                     再生における衝突に関する情報を表示します。

             DEBUG_EOFINFO (32)
                     ストライププレックスで EOF を返すとき、内部状態の情報を表
                     示します。

             DEBUG_MEMFREE (64)
                     最後にメモリアロケータが解放したメモリ領域に関する循環リ
                     ストを管理します。

             DEBUG_REMOTEGDB (256)
                     debug コマンドが発行されたときに、リモート gdb に移行しま
                     す。

             DEBUG_WARNINGS (512)
                     実装内のミラーの問題に関する警告を表示します。

     detach [-f] plex
     detach [-f] subdisk
             vinum detach は指定されたプレックスやサブディスクを、結合されてい
             るボリュームやプレックスから分離します。分離するとボリュームのデ
             ータが欠ける可能性のある場合、この操作は -f オプションを指定しな
             い限り実行されません。オブジェクトが上位のオブジェクトに従った名
             前になっている場合 (例えば、プレックス vol1.p7 に結合されているサ
             ブディスク vol1.p7.s0 の場合)、その名前は頭に ``ex-'' がついたも
             のに変更されます (例えば ex-vol1.p7.s0 に変更されます)。その後の
             処理で必要であれば、その名前から頭の部分が外されます。

             ストライプ化プレックスおよび RAID-5 プレックスにおいては、 detach
             主にデバッグのためのものです。 -v オプションを付けると、使用中の
             メモリ領域についての詳細な情報を表示します。

             -V オプションを付けると、 vinum ドライバが扱った最大 64 個までの
             最近の I/O リクエストに関する情報を、 info は表示します。この情報
             は、デバッグフラグ 8 が設定されているときのみ収集されます。書式は
             次のようになります:

             vinum -> info -V
             Flags: 0x200    1 opens
             Total of 38 blocks malloced, total memory: 16460
             Maximum allocs:       56, malloc table at 0xf0f72dbc

             Time             Event       Buf        Dev     Offset          Bytes   SD      SDoff   Doffset Goffset

             14:40:00.637758 1VS Write 0xf2361f40    91.3  0x10            16384
             14:40:00.639280 2LR Write 0xf2361f40    91.3  0x10            16384
             14:40:00.639294 3RQ Read  0xf2361f40    4.39   0x104109        8192    19      0       0       0
             14:40:00.639455 3RQ Read  0xf2361f40    4.23   0xd2109         8192    17      0       0       0
             14:40:00.639529 3RQ Read  0xf2361f40    4.15   0x6e109         8192    16      0       0       0
             14:40:00.652978 4DN Read  0xf2361f40    4.39   0x104109        8192    19      0       0       0
             14:40:00.667040 4DN Read  0xf2361f40    4.15   0x6e109         8192    16      0       0       0
             14:40:00.668556 4DN Read  0xf2361f40    4.23   0xd2109         8192    17      0       0       0
             14:40:00.669777 6RP Write 0xf2361f40    4.39   0x104109        8192    19      0       0       0
             14:40:00.685547 4DN Write 0xf2361f40    4.39   0x104109        8192    19      0       0       0
             11:11:14.975184 Lock      0xc2374210    2      0x1f8001
             11:11:15.018400 7VS Write 0xc2374210           0x7c0           32768   10
             11:11:15.018456 8LR Write 0xc2374210    13.39  0xcc0c9         32768
             11:11:15.046229 Unlock    0xc2374210    2      0x1f8001

             Buf フィールドは、ユーザバッファヘッダのアドレスを常に含みます。
             ユーザリクエストに関連付けられるリクエスト (複数可) を識別するた
             めに使用できますが、100% 信頼できるものというわけではありません:
             理論的には、シーケンス中の 2 個のリクエストが同じバッファヘッダを
             使い得ますが、これは一般的ではありません。リクエストの先頭は、イ
             ベント 1VS または 7VS で識別可能です。前述の 1 番目の例は、ユーザ
             要求に関連するリクエストを示しています。 2 番目は、ロックを伴うサ
             ブディスク I/O リクエストです。前記の例では、複数のリクエストが単
             一のユーザリクエストに含まれています。

             Event フィールドは、リクエストチェーン中のイベントシーケンスに関
             連する情報を含みます。 1 から 6 までの数字はイベントの大まかなシ
             ーケンスを示し、 2 文字の省略形は位置のニーモニックです。

             1VS       (vinum の strategy) vinumstrategy() の入口にある、ユー
                       ザリクエストに関する情報を表示します。デバイス番号は
                       vinum デバイスであり、オフセットと長さはユーザパラメー
                       タです。本ニーモニックは、常にリクエストシーケンスの先
                       頭になります。

             2LR       (リクエスト発行) 関数 launch_requests() において低レベ
                       ル vinum リクエストを発行する直前の、ユーザリクエストを

             4DN       (完了) complete_rqe() から呼ばれ、リクエストの完了を表
                       示します。この完了は、ステージ 4DN において
                       launch_requests() から発行されたリクエストか、またはス
                       テージ 5RD6RPcomplete_raid5_write() から発行さ
                       れたリクエストにマッチするはずです。

             5RD       (RAID-5 データ) complete_raid5_write() から呼ばれ、パリ
                       ティ計算後に RAID-5 データストライプへ書き込まれたデー
                       タを表現します。

             6RP       (RAID-5 パリティ) complete_raid5_write() から呼ばれ、パ
                       リティ計算後に RAID-5 パリティストライプへ書き込まれた
                       データを表現します。

             7VS       サブディスク I/O リクエストを表示します。通常、これらの
                       リクエストは vinum 内部のものであり、プレックスの初期化
                       や再構築といった操作に使用します。

             8LR       サブディスク I/O リクエストのために生成した、低レベル操
                       作を表示します。

             Lockwait  プロセスがレンジロックを待っていることを示します。パラ
                       メータは、リクエストに関連付けられたバッファヘッダと、
                       プレックス番号と、ブロック番号です。内部的な理由で、ブ
                       ロック番号は、ストライプ開始アドレスよりも 1 個大きく
                       なっています。

             Lock      レンジロックを取得済みであることを示します。パラメータ
                       はレンジロックと同じです。

             Unlock    レンジロックを解放済みであることを示します。パラメータ
                       はレンジロックと同じです。

     init [-S size] [-w] plex | subdisk
             vinum init は指定したサブディスクに 0 を書き込んで初期化します。
             プレックスが指定された場合はプレックス内の全サブディスクを初期化
             できます。これはプレックス中のデータに矛盾のないことを確実にする
             唯一の方法です。 RAID-5 プレックスの使用前には、この初期化が必要
             です。他の新規プレックスに対しても、この初期化を推奨します。
             vinum はプレックス中のすべてのサブディスクを並行して初期化しま
             す。この操作には長い時間がかかるため、通常バックグラウンドで実行
             されます。このコマンドの完了を待ちたい場合、 -w (待ち) オプション
             を使用してください。

             -S オプションでデフォルト値の 16 kB と異なるサイズの書き込みブ
             ロックを指定できます。 vinum は初期化が完了するとコンソールメッセ
             ージを出力します。

     label volume
             label コマンドは、ボリュームに ufs 形式のボリュームラベルを書き込
             みます。これは適切に disklabel を呼び出すことに対しての、単純な代
             が省略されると vinum が認識しているすべてのオブジェクトについての
             情報が表示されます。 l コマンドは list と同じものです。

             -r オプションはボリュームとプレックスに関連します。指定されると、
             そのオブジェクト下位のサブディスクと (ボリュームに対しては) プ
             レックスの情報を再帰的に表示します。 lv, lp, ls, ld のコマンド
             は、それぞれボリューム、プレックス、サブディスク、そしてドライブ
             の情報だけを表示します。これはパラメータを指定しないで使う場合に
             特に有用です。

             -s オプションで vinum は装置の統計情報を出力するようになり、 -v
             (verbose: 饒舌な) オプションはいくらかの付加情報を出力させ、そし
             て -V は数多くの付加情報を出力させます。

     makedev
             makedev コマンドは、ディレクトリ /dev/vinum を除去した上で、現在
             の設定を反映するようなデバイスノードと共にこのディレクトリを再作
             成します。本コマンドは、通常の場合に使用されることを意図していま
             せん。非常時にのみ使用するために提供しています。

     mirror [-f] [-n name] [-s] [-v] drives
             mirror コマンドは、ミラー化ボリュームを作成する create コマンド
             の、単純な代替手段です。オプションを指定しないと、RAID-1 (ミラー
             化) ボリュームを、 2 つのコンカチネート化ボリュームで作成します。
             各ドライブ中の最大の連続空間が、プレックスのサブディスク作成のた
             めに使用されます。 1 番目のプレックスは、リストの奇数番号のドライ
             ブから構築され、 2 番目のプレックスは、リストの偶数番号のドライブ
             から構築されます。ドライブの大きさが異なる場合、プレックスの大き
             さは異なるでしょう。

             -s オプションを指定すると、 mirror はストライプの大きさが 256 kB
             のストライプ化プレックスを構築します。各プレックスのサブディスク
             の大きさは、プレックスを構成するドライブの中で、最小の連続ストレ
             ージの大きさです。ここでもまた、プレックスの大きさは異なるかもし
             れません。

             通常、 mirror コマンドは任意の名前をボリュームと構成要素に付けま
             す。名前はテキスト ``vinum'' および小さな整数からなり、例えば
             ``vinum3'' となります。ボリュームに対して指定した名前を割り当てる
             -n name オプションで、上書きすることが可能です。プレックスとサブ
             ディスクの名前は、通常の作法で、ボリューム名からとられます。

             ドライブの名前には選択の余地はありません。ドライブが既に vinum ド
             ライブとして初期化されていた場合、名前はそのままになります。そう
             でない場合、ドライブにはテキスト ``vinumdrive'' と小さな整数から
             始まる名前が与えられ、例えば ``vinumdrive7'' となります。 create
             コマンドと同様、 -f オプションを使用して、以前の名前の上書きを指
             定可能です。 -v オプションは、冗長な出力のために使用します。

             このコマンドの例は、後述の 単純な設定の節を参照してください。

     mv -f drive object ...
             ます。

     quit    対話モードで実行中のときに、 vinum プログラムを終了します。通常
             は、文字 EOF を入力することで実現できます。

     read disk ...
             read コマンドは、指定したディスクを走査し、作成済の設定情報を含む
             vinum パーティションを探します。そして、最近更新されたものから過
             去に更新されたものの順番で、設定を読み込みます。 vinum は最新のす
             べての設定情報を各ディスクパーティションに保持しています。このコ
             マンドのパラメータとして、設定の中の全スライスを指定する必要があ
             ります。

             read コマンドは、他の vinum パーティションを持つシステム上で、
             vinum 設定を選択的にロードすることを意図しています。システム上の
             全パーティションを起動したい場合、 start コマンドを使用する方が簡
             単です。

             本コマンド実行時に vinum がエラーになると、ディスク上のコピーが壊
             れないようにするため、自動的な設定更新を無効にします。これは、
             ディスク上の設定が、設定エラーを示す (例えば、有効な空間指定を持
             たないサブディスク) 場合にも同様です。再度更新をオンにするには、
             setdaemonsaveconfig のコマンドを使用してください。デーモンオ
             プションマスクのビット 2 をリセットして、設定保存を再度有効にして
             ください。

     rebuildparity plex [-f] [-v] [-V]
             指定した RAID-4 または RAID-5 プレックスのパリティブロックを再構
             築します。この操作はプレックス中のポインタを維持しますので、望む
             ならば、一時停止して後で同じ場所から再開可能です。さらに、このポ
             インタは checkparity コマンドも使用します。最初にパリティの問題が
             検出された箇所から、パリティブロックの再構築を開始可能です。

             -f フラグが指定されると、 rebuildparity はプレックスの先頭から再
             構築を開始します。 -v フラグが指定されると、 rebuildparity はまず
             既存のパリティブロックをチェックし、再構築前に、不整合情報を表示
             します。 -V フラグが指定されると、 rebuildparity は進捗報告を表示
             します。

     rename [-r] [drive | subdisk | plex | volume] newname
             指定したオブジェクトの名前を変更します。 -r オプションが指定され
             ると、下位のオブジェクトがデフォルトの規則に従って命名されます。
             プレックスの名前はボリューム名に .pnumber を付加して作られ、サブ
             ディスクの名前はプレックス名に .snumber を付加して作られます。

     resetconfig
             resetconfig コマンドはシステム内の vinum 設定を完全に削除します。
             設定を完全に消去したい場合にだけ使って下さい。 vinum は確認を求め
             ます。 NO FUTURE (前途なし) という語句を以下の通りに入力する必要
             があります。

                   # vinum resetconfig
                   を入力して下さい。
                   入力してください -> NNOO FFUUTTUURREE
                   vinum の設定は削除されました。
                   (訳注: ここまで上記テキストの翻訳です)


             メッセージが示すように、どたん場のコマンドです。既存の設定をもう
             見たくもないとき以外は、このコマンドを使わないでください。

     resetstats [-r] [volume | plex | subdisk]
             vinum は各オブジェクトについて多数の統計カウンタを保持していま
             す。詳細はヘッダファイル <sys/dev/vinumvar.h> を参照して下さい。
             これらのカウンタをリセットするためには resetstats コマンドを使っ
             て下さい。 -r オプションも共に指定すると、 vinum は下位のオブジェ
             クトのカウンタもリセットします。

     rm [-f] [-r] volume | plex | subdisk
             rm はオブジェクトを vinum 設定から消去します。ひとたびオブジェク
             トが消去されるとそれを復旧する方法はありません。通常 vinum はオブ
             ジェクトを消去する前に数多くの一貫性確認を行います。 -f オプショ
             ンを指定すると、 vinum はこの確認を省略し、オブジェクトを無条件に
             消去します。このオプションは細心の注意を払って使用して下さい。ボ
             リューム上のすべてのデータを失うこともあり得ます。

             通常、 vinum は下位にプレックスを持つボリュームや、下位にサブディ
             スクを持つプレックスを消去することを拒否します。 -f フラグを指定
             すると、 vinum は無条件にオブジェクトを消去します。または -r
             (recursive: 再帰的) フラグを使うことで、同様に下位のオブジェクト
             を消去することができます。 -r フラグを付けてボリュームを消去する
             と、プレックスとそれに属するサブディスクも消去します。

     saveconfig
             現在の設定をディスクに保存します。 vinum は自動的に設定変更を保存
             するので、通常これは不要です。起動時にエラーが発生した場合、更新
             は無効化されます。 setdaemon コマンドで再度有効化しても、 vinum
             は設定を自動的にはディスクへ保存しません。このコマンドを使用して
             設定を保存してください。

     setdaemon [value]
             setdaemonvinum デーモンの変数ビットマスクを設定します。本コマ
             ンドは一時的なものであり、将来置き換えられます。現在、ビットマス
             クにはビット 1 (全アクションを syslog へ記録する) とビット 4 (設
             定を更新しない) があります。オプションビット 4 はエラー回復時に有
             用かもしれません。

     setstate state [volume | plex | subdisk | drive]
             setstate は、指定したオブジェクトの状態を指定した状態に設定しま
             す。 vinum の通常の一貫性機構はバイパスされます。回復の目的でのみ
             使用すべきです。このコマンドを誤って使用すると、システムを破壊す
             る可能性があります。

     start [-S size] [-w] [plex | subdisk]
             setdaemonsaveconfig のコマンドを使用してください。デーモンオ
             プションマスクのビット 4 をリセットして、設定保存を再度有効にして
             ください。

             オブジェクト名が指定されると、 vinum はそれらを起動します。通常、
             この操作はサブディスクに対してのみ行います。動作はオブジェクトの
             現在の状態に依存します:

             o   オブジェクトが既に up 状態の場合、 vinum はなにもしません。

             o   オブジェクトがサブディスクであり、 down または reborn の状態
                 の場合、 vinumup 状態に変更します。

             o   オブジェクトがサブディスクであり、 empty 状態の場合、変更はサ
                 ブディスクに依存します。サブディスクがプレックスの一部であり
                 このプレックスが他のプレックスを含むボリュームの一部である場
                 合、 vinum はサブディスクを reviving 状態にし、データをボリュ
                 ームからコピーしようとします。操作完了時に、サブディスクは up
                 状態に設定されます。サブディスクがプレックスの一部でありこの
                 プレックスが他のプレックスを含まないボリュームの一部である場
                 合、またはサブディスクがプレックスの一部ではない場合、 vinum
                 は即時にサブディスクを up 状態にします。

             o   オブジェクトがサブディスクであり、 reviving 状態である場合、
                 vinum は再生操作をオフラインにて継続します。操作完了時に、サ
                 ブディスクは up 状態に設定されます。

             サブディスクが up 状態になると、 vinum は自動的に、サブディスクが
             属す可能性のあるプレックスとボリュームの状態をチェックし、これら
             の状態を適切に更新します。

             オブジェクトがプレックスの場合、 start は下位のサブディスクの (ボ
             リュームの場合にはこれに加えてプレックスの) 状態をチェックし、起
             動可能なサブディスクを起動します。

             マルチプレックスボリュームの中の 1 つのプレックスを起動するには、
             ボリューム中の他のプレックスからデータをコピーする必要がありま
             す。これにはしばしば長い時間がかかるため、バックグラウンドで実行
             されます。この操作が完了することを待ちたい場合 (例えば、この操作
             をスクリプト中で実行している場合)、 -w オプションを使用してくださ
             い。

             データのコピーにはたいして時間がかかりません。それは、さらに重大
             な負荷をシステムにかけ得ます。 -S オプションで転送サイズを、 -i
             オプションで各ブロックを転送する間隔を (ミリ秒で) 指定可能です。
             どちらもシステム負荷を軽減します。

     stop [-f] [volume | plex | subdisk]
             パラメータを指定しないと、 stopvinum KLD を削除し、 vinum(4)
             を停止します。活動状態のオブジェクトが存在しない場合のみ、行うこ
             とが可能です。特に、 -f オプションはこの要求に優先しません。通
             常、 stop コマンドは、終了前に現在の設定をディスクへ書き戻しま
             の後で再度アクセスができるようになります。

             デフォルトでは vinum は動作中のオブジェクトは停止しません。例え
             ば、動作中のボリュームに結合されているプレックスは停止できない
             し、オープン中のボリュームは停止できません。 -f オプションは
             vinum にこの確認を省略して無条件に削除するよう指示します。このオ
             プションは大いに注意し、よく理解した上で使って下さい。もし間違っ
             て使うとひどいデータ破壊を起こすことがあります。

     stripe [-f] [-n name] [-v] drives
             stripe コマンドは、単一のストライプ化プレックスからなるボリューム
             を作成する create コマンドの、単純な代替手段です。サブディスクの
             大きさは、全ドライブで利用可能な最大の連続空間の大きさです。スト
             ライプの大きさは 256 kB に固定されています。

             通常、 stripe コマンドは任意の名前をボリュームと構成要素に付けま
             す。名前はテキスト ``vinum'' および小さな整数からなり、例えば
             ``vinum3'' となります。ボリュームに対して指定した名前を割り当てる
             -n name オプションで、上書きすることが可能です。プレックスとサブ
             ディスクの名前は、通常の作法で、ボリューム名からとられます。

             ドライブの名前には選択の余地はありません。ドライブが既に vinum ド
             ライブとして初期化されていた場合、名前はそのままになります。そう
             でない場合、ドライブにはテキスト ``vinumdrive'' と小さな整数から
             始まる名前が与えられ、例えば ``vinumdrive7'' となります。 create
             コマンドと同様、 -f オプションを使用して、以前の名前の上書きを指
             定可能です。 -v オプションは、冗長な出力のために使用します。

             このコマンドの例は、後述の 単純な設定の節を参照してください。


単純な設定

     この節では、 concat, mirror, stripe コマンドを使用する、 vinum 設定の単純
     なインタフェースを説明します。これらのコマンドは、大概の通常状況では便利
     な設定を作成しますが、 create コマンド程の柔軟性はありません。

     コマンドの解説は前述を参照してください。ここでは例を示します。どれも同じ
     ディスクを使用しています。最初のドライブ /dev/da1h は他のドライブよりも小
     さいことに注意してください。各サブディスクの大きさに影響があります。

     次に示す例ではすべて -v オプションを使用することにより、システムに渡すコ
     マンドを見せ、ボリュームの構造を列挙します。 -v オプションを使用しない
     と、これらのコマンドは何も出力しません。

   B>単B>一B>コB>ンB>カB>チB>ネB>ーB>トB>化B>プB>レB>ッB>クB>スB>のB>ボB>リB>ュB>ーB>ム
     単一コンカチネート化プレックスのボリュームを使用し、最大のストレージ容量
     を得ます。ただし、ドライブ故障への耐性はありません。

     vinum -> concat -v /dev/da1h /dev/da2h /dev/da3h /dev/da4h
     volume vinum0
       plex name vinum0.p0 org concat
     drive vinumdrive0 device /dev/da1h
         sd name vinum0.p0.s0 drive vinumdrive0 size 0

     なります。

   B>単B>一B>スB>トB>ラB>イB>プB>化B>プB>レB>ッB>クB>スB>のB>ボB>リB>ュB>ーB>ム
     単一ストライプ化プレックスのボリュームはコンカチネート化プレックスよりも
     性能が良いかもしれません。しかし、ストライプ化プレックスの制約により、ボ
     リュームは小さいかもしれません。これもまたドライブ故障の耐性はありませ
     ん。

     vinum -> stripe -v /dev/da1h /dev/da2h /dev/da3h /dev/da4h
     drive vinumdrive0 device /dev/da1h
     drive vinumdrive1 device /dev/da2h
     drive vinumdrive2 device /dev/da3h
     drive vinumdrive3 device /dev/da4h
     volume vinum0
       plex name vinum0.p0 org striped 256k
         sd name vinum0.p0.s0 drive vinumdrive0 size 849825b
         sd name vinum0.p0.s1 drive vinumdrive1 size 849825b
         sd name vinum0.p0.s2 drive vinumdrive2 size 849825b
         sd name vinum0.p0.s3 drive vinumdrive3 size 849825b
     V vinum0                State: up       Plexes:       1 Size:       1659 MB
     P vinum0.p0           S State: up       Subdisks:     4 Size:       1659 MB
     S vinum0.p0.s0          State: up       PO:        0  B Size:        414 MB
     S vinum0.p0.s1          State: up       PO:      256 kB Size:        414 MB
     S vinum0.p0.s2          State: up       PO:      512 kB Size:        414 MB
     S vinum0.p0.s3          State: up       PO:      768 kB Size:        414 MB

     この場合、サブディスクの大きさは利用できるディスクの最小に制限され、ボ
     リュームの大きさは 1659 MB になります。

   2 B>つB>のB>コB>ンB>カB>チB>ネB>ーB>トB>化B>プB>レB>ッB>クB>スB>のB>ミB>ラB>ーB>化B>ボB>リB>ュB>ーB>ム
     信頼性を向上するため、ミラー化およびボリューム化を使用します:

     vinum -> mirror -v -n mirror /dev/da1h /dev/da2h /dev/da3h /dev/da4h
     drive vinumdrive0 device /dev/da1h
     drive vinumdrive1 device /dev/da2h
     drive vinumdrive2 device /dev/da3h
     drive vinumdrive3 device /dev/da4h
     volume mirror setupstate
       plex name mirror.p0 org concat
         sd name mirror.p0.s0 drive vinumdrive0 size 0b
         sd name mirror.p0.s1 drive vinumdrive2 size 0b
       plex name mirror.p1 org concat
         sd name mirror.p1.s0 drive vinumdrive1 size 0b
         sd name mirror.p1.s1 drive vinumdrive3 size 0b
     V mirror                State: up       Plexes:       2 Size:       1146 MB
     P mirror.p0           C State: up       Subdisks:     2 Size:        988 MB
     P mirror.p1           C State: up       Subdisks:     2 Size:       1146 MB
     S mirror.p0.s0          State: up       PO:        0  B Size:        414 MB
     S mirror.p0.s1          State: up       PO:      414 MB Size:        573 MB
     S mirror.p1.s0          State: up       PO:        0  B Size:        573 MB
     S mirror.p1.s1          State: up       PO:      573 MB Size:        573 MB

     drive vinumdrive3 device /dev/da4h
     volume raid10 setupstate
       plex name raid10.p0 org striped 256k
         sd name raid10.p0.s0 drive vinumdrive0 size 849825b
         sd name raid10.p0.s1 drive vinumdrive2 size 849825b
       plex name raid10.p1 org striped 256k
         sd name raid10.p1.s0 drive vinumdrive1 size 1173665b
         sd name raid10.p1.s1 drive vinumdrive3 size 1173665b
     V raid10                State: up       Plexes:       2 Size:       1146 MB
     P raid10.p0           S State: up       Subdisks:     2 Size:        829 MB
     P raid10.p1           S State: up       Subdisks:     2 Size:       1146 MB
     S raid10.p0.s0          State: up       PO:        0  B Size:        414 MB
     S raid10.p0.s1          State: up       PO:      256 kB Size:        414 MB
     S raid10.p1.s0          State: up       PO:        0  B Size:        573 MB
     S raid10.p1.s1          State: up       PO:      256 kB Size:        573 MB

     この場合、使用可能なボリュームはより小さくなります。なぜなら、最小のドラ
     イブに適合するように、第 1 プレックスが小さくなったためです。


設定ファイル

     vinum では、 create コマンドに渡すすべての引数は設定ファイルに入っている
     必要があります。設定ファイルのエントリは、ボリュームやプレックスやサブ
     ディスクを定義します。エントリは 1 行に 1 つということ以外には決まった書
     式はありません。

   B>スB>ケB>ーB>ルB>フB>ァB>クB>タ
     これらの値は、バイトで指定しても良いですし、次のスケールファクタのいずれ
     か 1 つを後に付けても良いです:

     s       値が 512 バイトのセクタ数であることを示します。

     k       値がキロバイト数であることを示します (1024 バイト)。

     m       値がメガバイト数であることを示します (1048576 バイト)。

     g       値がギガバイト数であることを示します (1073741824 バイト)。

     b       VERITAS との互換性のために使用します。これは、512 バイトのブロッ
             ク数を意味します。 ``ブロック'' という語を別の意味で使用していま
             すので、この短縮形は混乱させるものです。この短縮形の価値は低下し
             ています。

     例えば、16777216 バイトという値は、 16m, 16384k, 32768s のいずれの表記も
     可能です。

     設定ファイルには以下のエントリを記述することができます。

     drive name devicename [options]
           ドライブを定義します。オプションは次の通りです:

           device devicename   ドライブが乗るデバイスを指定します。 devicename
                               は、例えば /dev/da1e/dev/ad3s2h といったパ

           ります。

           plex plexname

           plex plexname       指定したプレックスをボリュームに追加します。
                               plexname* として指定されると、 vinum は設定
                               ファイル中のボリューム定義の後で、次の妥当なエ
                               ントリとなり得るプレックスの定義を捜します。

           readpol policy      ボリュームの read policy (読み込み方針) を定義
                               します。 policyroundprefer plexname の
                               どちらかです。 vinum は読み込み要求を、ただ 1
                               つのプレックスによって満たします。 round 読み込
                               み方針は、読み込みを別々のプレックスから ラウン
                               ドロビン方式で行うように指定します。 prefer 読
                               み込み方針では、指定したプレックスから毎回読み
                               込みを行います。

           setupstate          マルチプレックスボリュームを作成する際に、すべ
                               てのプレックスの内容に一貫性があると仮定しま
                               す。通常こうなることはないため、デフォルトで
                               は、最初のプレックスを除いたすべてのプレックス
                               を faulty 状態に設定します。 start コマンドを
                               使って、最初に一貫性のある状態にする必要があり
                               ます。しかしストライプ化プレックスとコンカチネ
                               ート化プレックスの場合には、普通は一貫性がない
                               ままでも問題にはなりません。ボリュームをファイ
                               ルシステムやスワップパーティションとして使う場
                               合にはディスク上の以前の内容はどうでもよいた
                               め、それは無視されます。この危険を受け入れる場
                               合には、 setupstate キーワードを使って下さい。
                               設定ファイル中でボリュームの直後で定義されるプ
                               レックスに対してのみ適用されます。後でプレック
                               スをボリュームに追加する場合には、これらのプ
                               レックスを start コマンドで統合する必要がありま
                               す。

                               RAID-5 プレックスには init を使うことが 必要な
                               ことに注意して下さい。さもないと 1 つのサブディ
                               スクに障害が起きた時、大きくデータが破壊されま
                               す。

     plex [options]
           プレックスを定義します。ボリュームとは違い、名前は不要です。オプ
           ションには次のものを指定可能です:

           name plexname       プレックスの名前を指定します。プレックスやサブ
                               ディスクに名前をつける場合には name キーワード
                               が必要になることに注意して下さい。

           org organization [stripesize]
                               プレックスの編成を指定します。 organization は
                               最適な性能のためには、ストライプの大きさは少な
                               くとも 128kB であるべきです。これより小さくする
                               と、個々のリクエストが複数のディスクに対して割
                               り当てられることにより、 I/O のアクティビティが
                               非常に増加します。本マッピングによる並行転送数
                               増加に起因する性能向上は、レイテンシ増加に起因
                               する性能劣化を引き起しません。ストライプの大き
                               さの目安は、256 kB から 512 kB の間です。 2 の
                               羃乗は避けるべきです。 2 の羃乗を使用すると、す
                               べてのスーパブロックを最初のサブディスクに置く
                               傾向があるからです。

                               ストライプ化プレックスは最低 2 つのサブディスク
                               を持つ必要がありますし (そうでないとコンカチネ
                               ート化プレックスになります)、それぞれは同じ大き
                               さである必要があります。 RAID-5 プレックスは最
                               低 3 つのサブディスクを持つ必要があり、それぞれ
                               は同じ大きさである必要があります。実際には
                               RAID-5 プレックスは最低 5 つのサブディスクから
                               構成されるべきです。

           volume volname      プレックスを、指定したボリュームに追加します。
                               volume キーワードが指定されないと、プレックスは
                               設定ファイル中の最後に記述されたボリュームに追
                               加されます。

           sd sdname offset    指定したサブディスクをプレックスの offset の位
                               置に追加します。

     subdisk [options]
           サブディスクを定義します。オプションには次のものを指定可能です:

           name name           サブディスクの名前を指定します。これは必ずしも
                               指定する必要はありません。上記の オブジェクトの
                               命名を参照してください。サブディスクに名前をつ
                               ける場合には name キーワードを指定する必要があ
                               ることに注意して下さい。

           plexoffset offset   プレックス内のサブディスクの始点を指定します。
                               指定がないと、 vinum はすでにサブディスクがあれ
                               ばその直後の領域を割り当て、なければプレックス
                               の先頭から割り当てます。

           driveoffset offset  ドライブ内のサブディスクの始点を指定します。指
                               定がないと、 vinum はドライブ中で最初の length
                               バイト連続の空き領域を割り当てます。

           length length       サブディスクの大きさを指定します。このキーワー
                               ドは必須です。デフォルト値はありません。値 0 を
                               指定すると、 ``ドライブ上で最大限利用可能な連続
                               空き領域を使用'' という意味になります。ドライブ
                               が空の場合、サブディスクとしてドライブ全体を使

     # ドライブ
     drive drive1 device /dev/da1h
     drive drive2 device /dev/da2h
     drive drive3 device /dev/da3h
     drive drive4 device /dev/da4h
     drive drive5 device /dev/da5h
     drive drive6 device /dev/da6h
     # 1 つのストライプ化プレックスをもつボリューム
     volume tinyvol
      plex org striped 512b
       sd length 64m drive drive2
       sd length 64m drive drive4
     volume stripe
      plex org striped 512b
       sd length 512m drive drive2
       sd length 512m drive drive4
     # 2 つのプレックス
     volume concat
      plex org concat
       sd length 100m drive drive2
       sd length 50m drive drive4
      plex org concat
       sd length 150m drive drive4
     # 1 つのストライプ化プレックスと 1 つのコンカチネート化プレックスを持つボリューム
     volume strcon
      plex org striped 512b
       sd length 100m drive drive2
       sd length 100m drive drive4
      plex org concat
       sd length 150m drive drive2
       sd length 50m drive drive4
     # 1 つの RAID-5 プレックスと 1 つのストライプ化プレックスを持つボリューム
     # RAID-5 ボリュームの方が 1 つのサブディスク分だけ大きいことに注意
     volume vol5
      plex org striped 64k
       sd length 1000m drive drive2
       sd length 1000m drive drive4
      plex org raid5 32k
       sd length 500m drive drive1
       sd length 500m drive drive2
       sd length 500m drive drive3
       sd length 500m drive drive4
       sd length 500m drive drive5


ドライブレイアウト上の考慮点

     現在、 vinum ドライブは BSD ディスクパーティションです。それは他の用途で
     使用されているデータの上書きを避けるために vinum タイプである必要がありま
     す。 disklabel -e を使用して、パーティションタイプ定義を編集してくださ
     い。次の表示は、 disklabel(8) が示す典型的なパーティションレイアウトです:

     8 partitions:
     #        size   offset    fstype   [fsize bsize bps/cpg]
     ブディスクの最大の大きさはドライブよりも 265 セクタ小さくなります。


ログファイル

     vinum はログファイルを管理します。ログファイルは、デフォルトでは
     /var/tmp/vinum_history であり、 vinum に対して発行したコマンドの履歴を保
     持します。環境変数 VINUM_HISTORY をファイルの名前に設定することにより、こ
     のファイルの名前をオーバライド可能です。

     ログファイル中のメッセージの前には日付が付きます。デフォルトの書式は "%e
     %b %Y %H:%M:%S" です。書式の文字列に関するさらなる詳細については
     strftime(3) を参照してください。これは環境変数 VINUM_DATEFORMAT でオーバ
     ライド可能です。


VINUM 設定法

     本節では、 vinum システムの実装方法に関する、現実的なアドバイスを行いま
     す。

   B>デB>ーB>タB>をB>何B>処B>にB>置B>くB>か
     まず決定が必要な選択は、データを何処に置くかです。 vinum 専用のディスクパ
     ーティションが必要です。これらは、デバイスやパーティション ``c'' ではな
     く、パーティションであるべきでです。例えば、適切な名前とは、 /dev/da0e/dev/ad3s4a です。不適切な名前とは、パーティションではなくデバイスを表現
     する /dev/da0, /dev/da0s1 や、ディスク全体を表現しタイプ unused であるべ
     き /dev/ad1c です。前述の、 ドライブレイアウト上の考察点下にある使用例を
     参照してください。

   B>ボB>リB>ュB>ーB>ムB>のB>デB>ザB>イB>ン
     vinum ボリュームの設定方法は、あなたの意図に依存します。次のように多くの
     可能性があります:

     1.   多くの小さなディスクを結合して、適切な大きさのファイルシステムを作成
          したいと考えるかもしれません。例えば、小さなディスクを 5 個持ってい
          て、全空間を単一ボリュームとして使用したい場合、次のような設定ファイ
          ルを書きます:

                drive d1 device /dev/da2e
                drive d2 device /dev/da3e
                drive d3 device /dev/da4e
                drive d4 device /dev/da5e
                drive d5 device /dev/da6e
                volume bigger
                 plex org concat
                   sd length 0 drive d1
                   sd length 0 drive d2
                   sd length 0 drive d3
                   sd length 0 drive d4
                   sd length 0 drive d5

          この場合、サブディスクの長さを 0 と指定します。これは、 ``ドライブ上
          にある空き空間のうち、最大領域を使用する'' ことを意味します。指定す
          るサブディスクが、ドライブ上の唯一のサブディスクである場合、このサブ
          ディスクは使用可能な空間全体を使用します。
                 plex org concat
                   sd length 2g drive d2

          ミラー化ドライブを作成するときには、各プレックスからのデータが、違う
          物理ディスク上にあることを保証することが重要です。これにより、単一ド
          ライブ故障においても、 vinum はボリュームの完全なアドレス空間にアク
          セス可能となります。各プレックスが、完全なボリュームと同じだけのデー
          タを必要とすることに注意してください: この例では、ボリュームは 2 GB
          の大きさですが、各プレックス (と各サブディスク) は 2 GB を必要としま
          すので、全体のディスクストレージ要求は 4 GB となります。

          RAID-5 の設定をするには、タイプ raid5 の単一プレックスを作成します。
          例えば、回復力を持つ 2 GB に相当するボリュームを作成するには、次のよ
          うな設定ファイルを使用します:

                drive d1 device /dev/da2e
                drive d2 device /dev/da3e
                drive d3 device /dev/da4e
                drive d4 device /dev/da5e
                drive d5 device /dev/da6e
                volume raid
                 plex org raid5 512k
                   sd length 512m drive d1
                   sd length 512m drive d2
                   sd length 512m drive d3
                   sd length 512m drive d4
                   sd length 512m drive d5

          RAID-5 プレックスは、最低 3 個のサブディスクを必要とします。これらの
          うち 1 個には、パリティ情報を格納するので、データストレージとしては
          使用しません。より多くのディスクを使用すると、より多くの割合のディス
          クストレージを、データストレージとして使用可能となります。この例で
          は、総ストレージ使用量は 2.5 GB です。これに対し、ミラー設定での総ス
          トレージ使用量は 4 GB です。最小の 3 個のディスクだけを使用する場
          合、情報格納のために次のように 3 GB を必要とします:

                drive d1 device /dev/da2e
                drive d2 device /dev/da3e
                drive d3 device /dev/da4e
                volume raid
                 plex org raid5 512k
                   sd length 1g drive d1
                   sd length 1g drive d2
                   sd length 1g drive d3

          ミラー化ドライブを作成するときには、各サブディスクからのデータが、違
          う物理ディスク上にあることを保証することが重要です。これにより、単一
          ドライブ故障においても、 vinum はボリュームの完全なアドレス空間にア
          クセス可能となります。

     3.   また、 vinum の設定により、ファイルシステムへのアクセスの並行性を増
          したいと考えるかもしれません。多くの場合、単一のファイルシステムへの
                drive d2 device /dev/da3e
                drive d3 device /dev/da4e
                drive d4 device /dev/da5e
                volume raid
                 plex org striped 512k
                   sd length 512m drive d1
                   sd length 512m drive d2
                   sd length 512m drive d3
                   sd length 512m drive d4

          ストライプ化プレックスの最低サブディスク数は 2 個です。多くのディス
          クを使用するほど、性能が向上します。

     4.   両方の最良点を得ることにより、回復力と性能の両方を得ることを考えま
          す。これは、RAID-10 (RAID-1 と RAID-0 の組み合わせ) と呼ばれることが
          あります。この名称もまた誤解を生じさせるものです。 vinum では、次の
          ような設定ファイルを使用可能です:

              drive d1 device /dev/da2e
              drive d2 device /dev/da3e
              drive d3 device /dev/da4e
              drive d4 device /dev/da5e
              volume raid setupstate
               plex org striped 512k
                 sd length 512m drive d1
                 sd length 512m drive d2
                 sd length 512m drive d3
                 sd length 512m drive d4
               plex org striped 512k
                 sd length 512m drive d4
                 sd length 512m drive d3
                 sd length 512m drive d2
                 sd length 512m drive d1

          ここでは、プレックスはストライプ化され、性能を向上しています。そし
          て、このようなプレックスが 2 個あり、回復力を向上しています。この例
          で、2 番目のプレックスのサブディスクの順番が、 1 番目のプレックスの
          逆になっていることに注意してください。これは性能のためであり、後で議
          論します。更に、ボリューム指定にキーワード setupstate を含み、全プ
          レックスが作成後に up となることを保証しています。

   B>ボB>リB>ュB>ーB>ムB>のB>作B>成
     ひとたび設定ファイルを作成した後は、 vinum を起動し、ボリュームを作成しま
     す。この例では、設定ファイルは configfile です:

       # vinum create -v configfile
          1: drive d1 device /dev/da2e
          2: drive d2 device /dev/da3e
          3: volume mirror
          4:  plex org concat
          5:    sd length 2g drive d1
          6:  plex org concat
                       State: up
                       Last error: none
       Drive d2:       Device /dev/da3e
                       Created on vinum.lemis.com at Tue Mar 23 12:30:32 1999
                       Config last updated Tue Mar 23 14:30:33 1999
                       Size:      60105216000 bytes (57320 MB)
                       Used:       2147619328 bytes (2048 MB)
                       Available: 57957596672 bytes (55272 MB)
                       State: up
                       Last error: none

       Volume mirror:  Size: 2147483648 bytes (2048 MB)
                       State: up
                       Flags:
                       2 plexes
                       Read policy: round robin

       Plex mirror.p0: Size:   2147483648 bytes (2048 MB)
                       Subdisks:        1
                       State: up
                       Organization: concat
                       Part of volume mirror
       Plex mirror.p1: Size:   2147483648 bytes (2048 MB)
                       Subdisks:        1
                       State: up
                       Organization: concat
                       Part of volume mirror

       Subdisk mirror.p0.s0:
                       Size:       2147483648 bytes (2048 MB)
                       State: up
                       Plex mirror.p0 at offset 0

       Subdisk mirror.p1.s0:
                       Size:       2147483648 bytes (2048 MB)
                       State: up
                       Plex mirror.p1 at offset 0

     -v フラグは、設定に従ってファイルをリストするよう、 vinum に指示します。
     その後、 list -v コマンドと同じ書式で、現在の設定をリストします。

   B>よB>りB>多B>くB>のB>ボB>リB>ュB>ーB>ムB>をB>作B>成B>すB>る
     ひとたび vinum ボリュームを作成した後は、 vinum はこれらの情報を内部の設
     定ファイルにて管理します。再度作成する必要はありません。特に、 create コ
     マンドを再実行すると、追加のオブジェクトを作ることになります:

     # vinum create sampleconfig
     Configuration summary

     Drives:         2 (4 configured)
     Volumes:        1 (4 configured)
     Plexes:         4 (8 configured)
     S mirror.p2.s0          State: up       PO:        0  B Size:       2048 MB
     S mirror.p3.s0          State: up       PO:        0  B Size:       2048 MB

     この例では (今回は -f フラグを付けています)、 create の再実行により 4 個
     の新規プレックスを作成し、それぞれが新規サブディスクを持ちます。他のボ
     リュームを追加したい場合、これらのための新規設定ファイルを作成します。
     vinum が既に知っているドライブを参照する必要はありません。例えば、ボリュ
     ーム raid を 4 個のディスク /dev/da1e, /dev/da2e, /dev/da3e, /dev/da4e 上
     に作成するには、他の 2 個についてのみ記述するだけで良いです:

           drive d3 device /dev/da1e
           drive d4 device /dev/da4e
           volume raid
             plex org raid5 512k
               sd size 2g drive d1
               sd size 2g drive d2
               sd size 2g drive d3
               sd size 2g drive d4

     この設定ファイルでは、次のようになります:

     # vinum create newconfig
     Configuration summary

     Drives:         4 (4 configured)
     Volumes:        2 (4 configured)
     Plexes:         5 (8 configured)
     Subdisks:       8 (16 configured)

     D d1                    State: up       Device /dev/da2e        Avail: 51176/57320 MB (89%)
     D d2                    State: up       Device /dev/da3e        Avail: 53220/57320 MB (89%)
     D d3                    State: up       Device /dev/da1e        Avail: 53224/57320 MB (92%)
     D d4                    State: up       Device /dev/da4e        Avail: 53224/57320 MB (92%)

     V mirror                State: down     Plexes:       4 Size:       2048 MB
     V raid                  State: down     Plexes:       1 Size:       6144 MB

     P mirror.p0           C State: init     Subdisks:     1 Size:       2048 MB
     P mirror.p1           C State: init     Subdisks:     1 Size:       2048 MB
     P mirror.p2           C State: init     Subdisks:     1 Size:       2048 MB
     P mirror.p3           C State: init     Subdisks:     1 Size:       2048 MB
     P raid.p0            R5 State: init     Subdisks:     4 Size:       6144 MB

     S mirror.p0.s0          State: up       PO:        0  B Size:       2048 MB
     S mirror.p1.s0          State: up       PO:        0  B Size:       2048 MB
     S mirror.p2.s0          State: up       PO:        0  B Size:       2048 MB
     S mirror.p3.s0          State: up       PO:        0  B Size:       2048 MB
     S raid.p0.s0            State: empty    PO:        0  B Size:       2048 MB
     S raid.p0.s1            State: empty    PO:      512 kB Size:       2048 MB
     S raid.p0.s2            State: empty    PO:     1024 kB Size:       2048 MB
     S raid.p0.s3            State: empty    PO:     1536 kB Size:       2048 MB

     に、ほとんどのシステムで使用しているストライプの大きさは、小さ過ぎます。
     以降の議論は、 vinum だけでなく、全 RAID システムにあてはまります。

     FreeBSD のブロック I/O システムは、.5 kB から 128 kB までの要求を発行しま
     す; 典型的なミックスでは、ほぼ 8 kB です。どんなストライピングシステムに
     おいても、ある要求が 2 個の物理要求に分割されることを避けることはできませ
     んし、ストライプを十分細かくするならばより多くに分割されてしまいます。こ
     れにより、甚大な性能劣化となります: ディスクあたりの転送時間の削減は、よ
     り大きなオーダで増加するレイテンシによって相殺されてしまいます。

     最近のディスクの大きさと FreeBSD のブロック I/O システムでは、ストライプ
     の大きさを 256 kB から 512 kB にすると、適度に少数な要求に分割されること
     を期待できます; 正しい RAID の実装では、大きなディスクでのストライプの大
     きさを 2 または 4 MB に増さない明確な理由はありません。

     ストライプサイズを選択するときには、最新の UFS ファイルシステムのシリンダ
     グループの大きさは 32 MB であることを認識していてください。ストライプサイ
     ズとディスク数が共に 2 の累乗の場合、すべてのスーパブロックと inode が同
     一のサブディスクに置かれる可能性があります。これは、性能に重大な影響を与
     えます。代りに奇数、例えば 479 kB を選択してください。

     複数アクセスシステムでの転送のインパクトを考えるためのもっとも容易な方法
     は、潜在的なボトルネック、すなわちディスクサブシステムの観点から見ること
     です: つまり、転送に要するディスク時間の総計はいくらか?です。ほとんどす
     べてがキャッシュされているので、要求と完了との時間的な関係はそれほど重要
     ではありません: 重要なパラメータは、要求がディスクを活動状態にする総時間
     であり、この間ディスクは他の転送ができなくなります。この結果、転送が同時
     に発生しても違う時に発生しても、実際には問題とはなりません。実際的には、
     我々が見ている時間は、レイテンシの総和 (位置決定時間と回転遅延、言い替え
     るとデータがディスクヘッド下に来るまでの時間) と総転送時間です。同じ速度
     のディスクへの転送においては、転送時間は転送の大きさの合計のみに依存しま
     す。

     24 kB の典型的なニュースの記事やウェブページを考えると、これは 1 回の I/O
     で読み込めます。ディスクが転送レート 6 MB/s で平均位置決定時間 8 ms であ
     り、ファイルシステムを 4 kB ブロックであるとします。 24 kB ですから、断片
     化を考慮する必要はなく、ファイルは 4 kB 境界から開始します。必要な転送回
     数はブロック開始位置に依存します: 式は (S + F - 1) / S となり、 S はファ
     イルシステムブロック数でのストライプの大きさ、 F はファイルシステムブロッ
     ク数でのファイルの大きさです。

     1.   ストライプの大きさは 4 kB。転送回数は 6 回。サブシステムの負荷: レイ
          テンシ 48 ms、転送 2 ms、合計 50 ms。

     2.   ストライプの大きさは 8 kB。転送回数は 3.5 回。サブシステムの負荷: レ
          イテンシ 28 ms、転送 2 ms、合計 30 ms。

     3.   ストライプの大きさは 16 kB。転送回数は 2.25 回。サブシステムの負荷:
          レイテンシ 18 ms、転送 2 ms、合計 20 ms。

     4.   ストライプの大きさは 256 kB。平均転送回数は 1.08 回。サブシステムの
          負荷: レイテンシ 8.6 ms、転送 2 ms、合計 10.6 ms。

     これらのことを考えると、次の事項が vinum ボリュームの性能に影響します:

     o   ストライピングは、複数アクセスのみの性能を向上します。各要求が違う
         ディスク上にある確率が増加するからです。

     o   複数ドライブにまたがるコンカチネート化 UFS ファイルシステムもまた、複
         数ファイルアクセスの性能を向上します。 UFS は、ファイルシステムをシリ
         ンダグループに分割し、ファイルを単一のシリンダグループに置こうとする
         からです。一般的に、ストライピングほどは効果がありません。

     o   ミラーリングは、読み込み複数アクセスの性能を向上可能です。デフォルト
         では vinum は、連続する複数の読み込みを、連続する複数のプレックスに対
         して発行するからです。

     o   ミラーリングは、複数アクセスか単一アクセスかに関わらず、すべての書き
         込みの性能を劣化させます。両方のプレックスに対し、データを書き込む必
         要があるからです。これが、前述のミラーリング設定におけるサブディスク
         のレイアウトの説明です: 各プレックス中の対応するサブディスクが別の物
         理ディスクにある場合、書き込みコマンドは並列に発行可能です。しかし、
         同じ物理ディスクにある場合、逐次的に実行されてしまいます。

     o   RAID-5 の読み込みは、ストライプ化の読み込みと本質的に同じ考慮すべき点
         があります。ただし、ストライプ化プレックスがミラー化ボリュームの一部
         である場合を除きます。この場合、ミラー化ボリュームの方が性能が良くな
         ります。

     o   RAID-5 の書き込みは、ストライプ化の書き込みの約 25% の速度です: 書き
         込みを行うには、 vinum はまずデータブロックと対応するパリティブロック
         を読み込み、いくばくかの計算を行い、パリティブロックとデータブロック
         を書き戻す必要がありますので、ストライプ化プレックスに対する書き込み
         の 4 倍の転送回数となります。一方、これはミラーリングのコストにより相
         殺されますので、単一 RAID-5 プレックスのボリュームへの書き込みは、 2
         個のストライプ化プレックスからなる正しく設定されたボリュームへの書き
         込み速度の半分となります。

     o   vinum の設定が変わると (例えば、オブジェクトの追加や削除、またはオブ
         ジェクトの状態変更)、 vinum は 128 kB までの更新された設定を各ドライ
         ブに書き込みます。ドライブ数が増加すると、この時間が長くなります。

   Vinum B>ボB>リB>ュB>ーB>ムB>上B>にB>フB>ァB>イB>ルB>シB>スB>テB>ムB>をB>作B>成B>すB>る
     vinum ボリューム上にファイルシステムを作成する前に disklabel(8) を実行す
     る必要はありません。 newfs(8) だけを実行してください。 -v オプションを使
     用して、デバイスがパーティションに分割されないようにしてください。例え
     ば、ボリューム mirror 上にファイルシステムを作成するには、次のコマンドを
     入力します:

           # newfs -v /dev/vinum/mirror

     vinum の設定に関係する数個のその他のことがらがあります:

     o   複数のドライブを単一ディスク上に作成しても、利益はありません。各ドラ
         イブは 131.5 kB のデータをラベルと設定情報に使用し、設定変更時に性能

     アがアクセス可能であるけれども、サブディスク上のデータは不正であることを
     示す empty 状態に設定されるでしょう。この状態の結果として、プレックスは
     faulty 状態に設定されるでしょう。

   `reviving' B>状B>態
     多くの場合、あなたがサブディスクを起動する時に、システムはサブディスクに
     データをコピーしなければなりません。サブディスクの大きさによりますが、こ
     れは長い時間かかります。この間、サブディスクは reviving 状態に設定されま
     す。コピー操作が正しく終了すれば、それは自動的に up 状態に設定されます。
     プロセスが、回復 (revive) を停止させ、そして再開させることがあります。シ
     ステムはサブディスクの回復の進み具合を保持し、そして start コマンドが再発
     行された時、その時点からコピーを再開します。

     ボリュームのプレックスが一つ以上が回復している間はボリュームの整合性を保
     つために、 vinum は書き込む場所まで回復させたサブディスクに書きます。もし
     読みとる領域がすでに回復しているならば、プレックスから読み出すことができ
     ます。


分かりにくい仕様 (GOTCHAS)

     次の事柄はバグではありませんし、存在する理由があるのですが、混乱を引き起
     こすものです。各項目は適切な節において議論されています。

     1.   vinum ドライブは UNIX ディスクパーティションであり、パーティションタ
          イプ vinum であることが必要です。これは、パーティションタイプが
          4.2BSD であることを期待する ccd(4) とは異なります。この ccd の動作
          は、自分の足元をすくうことになります: ccd では、用意にファイルシステ
          ムを上書きできてしまいます。 vinum ではそのようなことは許しません。

          同様の理由で、 vinum start コマンドは、パーティション ``c'' 上のドラ
          イブを受け付けません。パーティション ``c'' は、ディスク全体を表現す
          るためにシステムが使用し、タイプ unused である必要があります。ここに
          は明確な矛盾があるので、 ``c'' パーティションを使用しないことにより
          vinum は問題を解決しています。

     2.   複数のプレックスからなるボリューム作成時に、 vinum はプレックスを自
          動的には初期化しません。これは、内容については分からなくても、これら
          の間には確かに一貫性がないということを意味しています。その結果デフォ
          ルトでは、新規作成されたプレックスのうち最初のものを除いたすべての状
          態を、 vinumfaulty (誤り) 状態に設定します。これらを最初のプレッ
          クスと同期させるには、これらのサブディスクを start させる必要があり
          ます。これにより、 up 状態のプレックスから vinum にデータをコピーさ
          せます。関係するサブディスクの大きさに依存して、必要な時間は長くなり
          得ます。

          実際上は、プレックス作成時にその内容に多大な興味を持つ人はいないの
          で、他のボリュームマネージャはどんなときでも up に設定して騙します。
          vinum は、新規作成されたプレックスが up 状態であることを保証するため
          に、2 つの方法を提供します:

          o   プレックスを作成し、それらを vinum start で同期します。

          o   キーワード setupstate 付きでボリューム (プレックスではありませ
          くいかなくて、これが唯一の回復手段である場合、その状況を報告してくだ
          さい。

     5.   カーネルモジュールを -DVINUMDEBUG オプション付きで構築した場合、
          vinum もまた -DVINUMDEBUG オプション付きで構築する必要があります。な
          ぜなら、両方のコンポーネントで使用されるデータオブジェクトに、大きさ
          が本オプションに依存しているものがあるからです。前記のようにしない
          と、 Invalid argument というメッセージを表示してコマンドは失敗し、次
          のようなコンソールメッセージが記録されます:

          vinumioctl: invalid ioctl from process 247 (vinum): c0e44642

          古いバージョンの KLD やユーザランドプログラムを使うと、このエラーが
          発生することがあります。

     6.   vinum read コマンドの文法は、吐き気を催すものです。これが唯一の
          vinum 起動のためのコマンドでしたが、今の好ましい方法は vinum start
          です。 vinum read は整備のみに使用すべきです。文法が変更されたので、
          引き数が /dev/da0 のようなディスクスライスであり /dev/da0e のような
          パーティションではないことに注意してください。


関連ファイル

     /dev/vinum          vinum オブジェクトのデバイスノードがあるディレクトリ
     /dev/vinum/control  vinum の制御デバイス
     /dev/vinum/plex     vinum プレックスのデバイスノードがあるディレクトリ
     /dev/vinum/sd       vinum サブディスクのデバイスノードがあるディレクトリ


環境変数

     VINUM_HISTORYログファイルの名前です。デフォルトでは /var/log/vinum_his-
             tory です。

     VINUM_DATEFORMATログファイル中の日付の書式です。デフォルトは %e %b %Y
             %H:%M:%S です。

     EDITOR  設定ファイルの編集に使用するエディタの名前です。デフォルトは vi
             です。


関連項目

     strftime(3), vinum(4), disklabel(8), newfs(8)

     http://www.vinumvm.org/vinum.html,
     http://www.vinumvm.org/vinum-debugging.html


作者

     Greg Lehey <grog@lemis.com>


歴史

     vinum コマンドは FreeBSD 3.0 から登場しました。 vinum の RAID-5 コンポー
     ネントは、 NetMAX 製品のために Cybernet Inc. (www.cybernet.com) が開発し
     ました。

FreeBSD 4.4                    December 20, 2000                   FreeBSD 4.4

ABELNET VPSサービス