Linux Kernel 2.6 Documentation:
/usr/src/linux/Documentation/md.txt
md.txt
MD デバイス
[プレインテキスト版]
- 原著作者: unknown
- 翻訳者: 川崎 貴彦 <takahiko(a)hakubi.co.jp>
- バージョン: 2.6.5
- 翻訳日時: 2004/04/22
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 付属文書一覧へ戻る