JF Linux Kernel 2.6 Documentation: /usr/src/linux/Documentation/md.txt

md.txt

MD デバイス [プレインテキスト版]


md デバイスを管理するツールは次の場所にあります。

   http://www.<country>.kernel.org/pub/linux/utils/raid/....



下記のカーネルコマンドで、md デバイスからブートすることができます。

  永続的スーパーブロックのない、古い RAID アレイの場合:
    md=<md デバイス番号>,<RAID レベル>,<チャンクサイズ係数>,<フォールトレベル>,dev0,dev1,...,devn

  永続的スーパーブロックのある RAID アレイの場合:
    md=<md デバイス番号>,dev0,dev1,...,devn

    <md デバイス番号>
        0 は md0 を意味します。以下、
        1 は md1,
        2 は md2,
        3 は md3,
        4 は md4

    <RAID レベル>
        -1 はリニアモード
         0 はストライプモード
        その他のモードは、永続的スーパーブロックがある場合のみサポートされます。

    <チャンクサイズ係数> (RAID-0 と RAID-1 のみ)
        4K << n でチャンクサイズとなるようにセットしてください。

    <フォールトレベル>
        完全に無視されます。

    dev0-devn
        例: /dev/hda1,/dev/hdc1,/dev/sda1,/dev/sdb1

loadlin のコマンドライン (Harald Hoyer <HarryH@Royal.Net>) は、次のように
なるでしょう。

    e:\loadlin\loadlin e:\zimage root=/dev/md0 md=0,0,4,0,/dev/hdb2,/dev/hdc3 ro


-------------------------------
md ドライバは、多種多様な異なるスーパーブロック・フォーマットをサポート
できます (まだやってはいませんが、できます)。

カーネルは、スーパーブロックでどのフォーマットが使われているかを自動検出は
*しません*。教えてやる必要があります。

昔からの事情のため、スーパーブロック・フォーマット '0' は、他のものとは
異なる扱われ方をします。


一般的な規則 - 全てのスーパーブロック・フォーマットに適合
---------------------------------------------------------

アレイは、全てのデバイスに適切なスーパーブロックを書き込むことにより「作成
されます」。特定の md 仮想デバイスと、これらの各デバイスを関連付けることに
より、アレイは「アセンブルされます」。完全にアセンブルされれば、アレイに
アクセスすることができます。

どのアレイもユーザ空間のツールを使って作成します。ツールは全てのデバイスに
スーパーブロックを書き込みます。ツールは通常、アレイを 'unclean' とマーク
するか、もしくは、カーネル md ドライバが適切な冗長性を生成 (RAID-1 では
コピー、RAID-4/5 ではパリティ計算) できるように幾つかのデバイスを missing
とします。

アレイがアセンブルされるとき、最初に SET_ARRAY_INFO ioctl で初期化されます。
特に、これにはメジャーバージョン番号とマイナーバージョン番号が含まれます。
メジャーバージョン番号は、どのスーパーブロック・フォーマットを使用するかを
選択するものです。マイナー番号は、例えば各デバイス上のどこを探せばスーパー
ブロックがあるかを示すなどといった、そのフォーマットの扱いを調整するのに
使われることがあります。

そのあと、ADD_NEW_DISK ioctl により各デバイスが追加されます。ADD_NEW_DISK は
特に、追加するデバイスを識別するメジャー番号とマイナー番号を提供します。

アレイは、RUN_ARRAY ioctl で開始します。

開始すれば、新しいデバイスを追加することができます。追加するデバイスには
適切なスーパーブロックが書き込まれている必要があり、ADD_NEW_DISK のときに
一緒に渡します。

エラーを起こしたか、または、まだアクティブにされていないデバイスは、
HOT_REMOVE_DISK でアレイから取り外すことができます。


フォーマット 0 のスーパーブロックのアレイと、スーパーブロックを
持たない (非永続的) アレイに適合する固有規則
---------------------------------------------------------------

SET_ARRAY_INFO ioctl でアレイの記述をおこなうことにより (レベル、チャンク
サイズ等)、アレイは「作成されます」。これは、major_version==0 かつ、
raid_disks != 0 である必要があります。その後、初期化されていないデバイスを
ADD_NEW_DISK で追加できます。ADD_NEW_DISK に渡される構造体では、デバイスの
状態とアレイにおける役割を指定する必要があります。

RUN_ARRAY で開始すれば、初期化されていないスペアを HOT_ADD_DISK で追加する
ことができます。

Linux カーネル 2.6 付属文書一覧へ戻る