資料4: mdadm(8) ver.1.5 man page [日本語]
|
MDADM(8)
名 称
mdadm - Linux ソフトウェア RAID md デバイスの管理
書 式
mdadm [モード] <RAIDデバイス> [オプション] <アレイ構成デバイス(のリスト)>
概 要
RAID デバイスは 2 つ以上の実ブロックデバイスを用いて作られた仮想デバイスである。
複数のディスクドライブやパーティションをまとめて 1 つのファイルシステムとして利用することができる。
RAID のレベルによるが、データの記録を冗長化させることができるためディスクの故障によるデータ損失を回避できることが期待できる。
Linux のソフトウェアRAIDは md (Multiple Devices) デバイスドライバとして実装されている。
現状 Linux ではリニアmd デバイス,RAID 0 (ストライピング),RAID 1 (ミラーリング),RAID
4,RAID 5,RAID 6 そしてマルチパス(MULTIPATH) がサポートされている。
マルチパスというのはソフトウェア RAID ではく、物理的に 1 つの記憶装置を複数のパスでアクセスできるようにしたものであり、
複数のデバイスから構成される点が RAID と共通している。
mdadm は MD デバイスの作成,管理,そしてモニタを行うためのプログラムである。
機能的には既存の raidtools と似ているが、mdadm には次のような特徴がある。
- mdadm はコマンドの集合ではなく 1 つのプログラムである。
- mdadm ではほとんどの機能がコンフィグファイル無しで実行でき、デフォルトではコンフィグファイルを使わないようになっている。
一方で mdadm はコンフィグファイル管理を支援する機能も備えている。
- mdadm は raidtools では得られないアレイに関する様々な情報を表示することができる。
(Query,Detail,Examine などによる)
mdadm は raidtools のコンフィグファイルである /etc/raidtab を全く使わない。
代わりに別のコンフィグファイルを用いるが、書式や目的は /etc/raidtab とは異なる。
モード
mdadm には次の 6 つの主操作モードがある
- Assemble
- 以前に作成されたアレイの構成情報を元に 1 つのアクティブアレイを編成する。
アレイ構成デバイスは明示的に指定することもできるし検索させることもできる。
mdadm はそれぞれのデバイスをチェックした上で完全なアレイを編成するが、必要に応じて偽のスーパブロックを使って不完全なアレイを編成することもできる。
- Build
- デバイスごとのスーパブロックをもたない古いタイプのアレイ(レガシーアレイ)を作る。
- Create
- デバイスごとのスーパブロックをもつアレイを作る。
- Manage
- 既にあるアレイについて、スペアデバイスを追加したり欠陥のあるデバイスをアレイから外すなどの管理を行う。
- Misc
- このモードは個々のデバイスに対して様々な操作を行う。 例えば MD スーパブロックの検査,古いスーパブロックの消去,アクティブアレイの停止など。
- Follow or Monitor
- 1 つ以上の md デバイスをモニタし、状態変化を検出して指定したアクションを起こさせる。
このモードは対象となる状態変化をもつ RAID 1,4,5,6 またはマルチパスでのみ意味がある。
RAID 0 や リニア ではスペアデバイスや不良デバイスという概念がないため、モニタする意味がない。
オプション
オプションは次の通り。
-A, --assemble
- 以前存在していたアレイを編成する。
-B, --build
- スーパブロックをもたないアレイ(レガシーアレイ)を作る。
-C, --create
- アレイの新規作成を行う。
-Q, --query
- md デバイスや md アレイの構成デバイスについての情報を表示する。
-D, --detail
- 1 つまたは複数の md デバイスの詳細な情報を表示する。
-E, --examine
- 1 つまたは複数のデバイスの md スーパブロックの内容を表示する。
-F, --follow, --monitor
- モニタモードを選択する。
-h, --help
- ヘルプメッセージを表示する。 このオプションに続いてモードを付加することで、そのモードについてのヘルプメッセージを表示する。
--help-options
- コマンドラインの解釈や、よく使われるオプションについて詳細なヘルプを表示する。
-V, --version
- mdadm のバージョンを表示する。
-v, --verbose
- バーボーズ表示。 より多くの情報を表示する。
-b, --brief
- 概要表示。 これは
--detail や --examine と共に用いられる。
-f, --force
- 特定の操作をより強制的に行う。 実際の意味はモードによって異なるため、各モードの説明を参照のこと。
-c, --config=
- コンフィグファイルの指定。 デフォルトは /etc/mdadm.conf 。 引数として “partitions”
という単語が指定されると、ファイルとしてではなく /proc/partitions から得られる情報をもとに、対象となるデバイスのリストを自動的に取得する。
また “none” という単語が指定されるとコンフィグファイルは空とみなす (つまり
/etc/mdadm.conf が存在してもその内容は読まれない) 。
-s, --scan
- 不足情報を補うためにコンフィグファイルか /proc/mdstat をスキャンする。
このオプションは不足する情報・・・例えばアレイを構成するデバイス,アレイデバイス(/dev/md*),アレイの
ID,アラート通知先などをコンフィグファイルである /etc/mdadm.conf から得ることを
mdadm に許可する。
ただし MISC モードにおいて--detail または --stop オプションと一緒に用いられたときは、アレイのリストを /proc/mdstat から得る。
Create またはBuildモードのオプション:
-c, --chunk=
- 処理単位(チャンクサイズ)をキロバイトで指定する。デフォルトは 64。
--rounding=
- リニアアレイにおける丸め係数を指定 (=チャンクサイズ) する。
-l, --level=
- RAID のレベルを指定する。
--create において指定できる値は次の通り。
linear, raid0, 0, stripe, raid1, 1, mirror, raid4, 4, raid5, 5, raid6,
6, multipath, mp
これらのいくつかは同じ意味である。 なお --build では linear, raid0, 0, stripe のみが有効である。
-p, --parity=
- RAID 5 のパリティ生成アルゴリズムを指定する。 指定できる値は次の通り。
left-asymmetric, left-symmetric, right-asymmetric, right-symmetric, la,
ra, ls, rs
デフォルトは left-symmetric である。
--layout=
--parity と同じ。
-n, --raid-devices=
- アレイ内のアクティブなデバイスの数。 この数に(後述の)スペアデバイスの数を足したものが、コマンドラインで指定した構成デバイスの数と一致しなければならない。
これが 1 になることは本来ありえないが、
--force オプションを付加すれば linear,multipath,raid0,raid1 では指定可能となる。
raid4 と raid5 では許されない。
一度作アレイが作られると、この数値は変更できないことに注意。
-x, --spare-devices=
- 元のアレイに対するスペア(剰余)デバイスの数。スペアは後から追加したり外したりできる。
この数と RAID 編成に使われているデバイスの数を足したものは、コマンドラインで指定した
アレイ構成デバイスの数と一致しなければならない。
-z, --size=
- RAID 1/4/5 における各ドライブの使用容量をキロバイトで指定。 これはチャンクサイズの倍数でなければならない。またドライブの最終部に作られる
RAID スーパブロックのためのエリア約 128Kb を残しておく必要がある。
もしこれが指定されないとドライブの中の最小のサイズが用いられる。 またドライブ間のサイズの差異が1%以上あると警告が出される。
Assembleモードのオプション:
-u, --uuid=
- 編成するアレイの uuid を指定する。 この uuid をもたないデバイスはアレイ作成の対象外となる。
-m, --super-minor=
- 作成されるアレイのマイナーデバイス番号を指定する。 この番号を持たないデバイスはアレイ作成の対象外となる。アレイが
/dev/md1 として作られると、そのアレイを構成するデバイスのスーパブロックのマイナー番号は
1 となる。これは後でアレイが /dev/md2 として編成されたとしても変わらない。
これに対し、--super-minor= の引数に “dev” という単語を指定すると、編成しようとする md デバイスのマイナー番号番号と同じ番号をもつデバイスが使われる。
例えば /dev/md0 を編成する場合、mdadm はマイナー番号 0 のデバイスを探す。
-f, --force
- スーパブロックが古くてもアレイの作成を行う。
-R, --run
- アレイを構成するドライブの数が必要数に満たなくてもアレイを起動させる。
通常ドライブの数が足りない場合で
--scan が指定されない場合はアレイは編成されても起動はしない。 このオプションにより、とにかく起動させようとする。
-U, --update=
- アレイ編成時、各デバイスのスーパブロックを更新する。 有効な引数は
sparc2.2 ,summaries ,super-minor のいずれかである。
sparc2.2 オプションは RAID パッチが施された Linux 2.2 を Sparc マシンで走らせて作成されたアレイのスーパブロックを補正する。
このカーネルで作られたアレイのスーパブロックにはアライメントの問題があることがわかっている。
--examine --sparc2.2 とすることでこの問題の有無を調べることができる。
super-minor オプションは各デバイスのスーパブロックのマイナー番号を、編成されるアレイのマイナー番号に変更する。
カーネル 2.6 以上ではこれが自動的に行われるため、このオプションを指定する必要は無い。
summaries オプションはアレイのスーパブロック内のサマリ情報を訂正する。
サマリ情報とはそのアレイを構成するデバイスの状況を示すもので、トータル,稼動中,アクティブ,不良,スペアの各個数のことである。
Manage modeモードのオプション:
-a, --add
- 指定されたデバイス(群)をアレイを止めずに追加 (hotadd) する。
-r, --remove
- 指定されたデバイス(群)を削除する。 対象デバイスはアクティブであってはならない。
つまり異常が見つかって不良とされたデバイスかスペアデバイスなどに限る。
-f, --fail
- 指定されたデバイス(群)に対し、不良であることを示すマークを付ける
--set-faulty
--fail と同じ。
Examine modeモードのオプション:
--sparc2.2
- RAID パッチを当てた Linux 2.2 カーネルカーネルでは、アレイ作成において不正なスーパブロックが作られることがある。
少なくとも 2.4 カーネルとの互換性はない。
--sparc2.2 と -examine オプションを同時に与えることで、その問題の有無を確認することができる。
この問題が検出された場合は、--assemble --update=sparc2.2 とすることでアレイ編成時にこれを修正することができる。
Misc modeモードのオプション:
-R, --run
- 部分的に構成されたアレイを起動させる。
-S, --stop
- アレイを非アクティブにし、すべてのリソースを開放する。
-o, --readonly
- アレイに読取り専用マークを付ける。
-w, --readwrite
- アレイに読書き可マークを付ける。
--zero-superblock
- デバイスが有効な md スーパブロックをもつ場合、その内容をゼロで上書きする。
--force オプションを付けると、スーパブロックの正常・異常にかかわらずスーパブロックに相当する部分をゼロで上書きする。
-t, --test
--detail と同時に用いた場合、mdadm の終了コードにデバイスの状態を反映させる。
Monitor modeモードのオプション:
-m, --mail
- アラートメールの送付先を指定する。
-p, --program, --alert
- イベントを検出した時に起動するプログラムを指定する。
-d, --delay
- mdadm が md アレイの状態をポーリングする周期を秒で指定する。 デフォルトは
60 秒。
-f, --daemonise
- mdadm がモニタ動作を行う場合、バックグラウンドデーモンとする。 つまり mdadm
は端末との接続を切り離した子プロセスとして起動される。 そのプロセス ID
は標準出力に出力される。 この機能は
--scan と共に用いることを想定している。 その場合、コンフィグファイル内にアラートメールの送付先アドレスが書かれているか、アラート時に起動されるプログラムが定義されている場合のみデーモンとなってモニタを継続する。
-1, --oneshot
- アレイのチェックを 1 回だけ行う。 これにより NewArray イベントが発行され、DegradedArray
(縮退アレイ) イベントが確実に発行される。 つまり cron スクリプトにより、
mdadm --monitor --scan -1
のようにすることで、定期的にアレイの状態をチェックし、いかなる縮退が発生しても確実にイベントを発行させることができる。
-t, --test
- mdadm 起動時、アレイが検出される度に TestMessage アラート (イベント) を発生させる。
このアラート (イベント) によりアラートメールが送信されると共に、イベントはアラートプログラムに届く。
このオプションはアラート機能が正しく動作するかどうかをテストするのに用いられる。
ASSEMBLE モード
書式1: mdadm --assemble <RAIDデバイス> <オプション>及び<アレイ構成デバイス(群)>...
書式2: mdadm --assemble --scan <RAIDデバイス(群)>及び<オプション>...
書式3: mdadm --assemble --scan options...
既存のアレイ構成デバイスからアレイ(群)を編成する。 このためにはそれぞれのアレイについて
md デバイス,アレイの ID,そして構成デバイスの数を知る必要がある。それにはいくつかの方法がある。
書式 1 のように --scan オプションを付けない場合、最初に指定されたデバイスのみが md デバイス (RAID
デバイス) となり、その他のデバイスはアレイを構成するデバイスとみなされる。
書式 2 では指定されたデバイスはすべて md デバイスとみなされ、編成が行われる。
書式 3 のようにデバイスが一切指定されない場合は、コンフィグファイルに記述されているすべての
md デバイスの編成が行われる。
もしデバイスが 1 つだけで --scan オプションは付けない場合、mdadm は --scan が与えられたものとして動作し、ID 情報はコンフィグファイルから得る。
ちなみに ID 情報を得る方法としては、
--uuid オプションで指定する
-super-minor オプションで指定する
- コンフィグファイルに記述する
- コマンドラインに記述された構成デバイス群の最初のデバイスのスーパブロックから得る
がある。
デバイスはコマンドラインで与えられるか、コンフィグファイルに記述されている必要がある。
各構成デバイスは正しい md スーパブロックをもっていることが前提で、そうでない場合は編成の対象とならない。
コンフィグファイルは --config で明示的に指定するか、--scan を与えることで暗黙的に指定する。 後者の場合はデフォルトの /etc/mdadm.conf
が参照される。
ASSMBLE モードで編成されたアレイは自動的に起動される。 しかし --scan を付けない場合でコマンドラインで指定したアレイ構成デバイスの数が不足し、縮退運転を余儀なくされる場合は、エラーの発生を防止するために起動されない。
それでも起動したい場合は --run をつける。 RAID 1,4,5,6 ではこういうケースがありうる。
BUILD モード
書式: mdadm --build <RAIDデバイス> --chunk=X --level=Y --raid-devices=<アレイ構成デバイス(群)>
この使い方は --create と似ている。 異なるのは --build では古いタイプのアレイ・・・すなわちスーパブロックをもたないアレイを作ることである。
このようなアレイは最初にアレイを作った場合も後からアレイを編成した場合も全く変わらない。
単にデータの有無の差だけである。 つまり後者の場合は貴重なデータが入っているのであろうということだけである。
RAIDレベルは 0,raid0,linear のいずれかである。 全てのデバイスはコマンドラインで与えられなければならない。アレイの作成が完了すると自動的に起動する。
CREATE モード
書式: mdadm --create <RAIDデバイス> --chunk=X --level=Y --raid-devices=<アレイ構成デバイス(群)>
新しい md アレイを初期化し、デバイス群を編成し、起動する。 加えられるデバイスは
RAID スーパブロックかファイルシステムがあるかどうかがチェックされる。 またデバイスの容量の差異が
1 % を超えていないかどうかもチェックされる。
何らかの矛盾が見つかるとアレイは起動しない。 ただし --run が与えらた場合は起動がかかる。
アレイを縮退状態(デバイスの数が不足した状態)で生成したい場合は、missing
という単語をデバイス名の代わりに与える。 これにより mdadm はアレイの対応するスロットを空にしたままにする。
RAID 4 と RAID 5 の場合は 1 スロットの不足のみ許され、RAID 6 の場合は 2
スロットまでとなる。 また RAID 1 の場合は最低 1 台の実デバイスがあれば良く、他は不足していても良い。
RAID 5 アレイの作成の際、mdadm は余ったスペアデバイスを使った縮退状態のアレイを自動的に作る。
理由は、縮退状態のアレイでスペアを作る方が、クリーンでない非縮退状態のアレイのパリティを同期化するより通常高速だからである。
ただし -I オプションか --force オプションをつけた場合はこの機能は働かない。
--create と共に用いられる一般的な管理オプションは次の通りである。
--run
- いくつかのデバイスが使用中の可能性があってもアレイを起動する。
--readonly
- アレイを読込み専用で起動する。 ただしこれはまだサポートされていない。
MANAGE モード
書式: mdadm <RAIDデバイス> <オプション>... <アレイ構成デバイス>...
個々のデバイスに対し、削除,追加,そして不良と認識させたりすることができる。
1 つのコマンドラインで複数の操作を指定できる。例えば、
mdadm /dev/md0 -f /dev/hda1 -r /dev/hda1 /a /dev/hda1
は、最初にアレイ /dev/md0 を構成するデバイス /dev/hda1 に不良マークを付け、アレイから削除し、最後にスペアとして再追加する。
1回のコマンドで操作できるのは 1つの md アレイに限る。
MISC モード
書式: mdadm <オプション>... デバイス(群) ...
MISCモードでは異なるデバイスに対する操作を識別するための番号を含むことがある。
可能な操作は次の通り。
--query
- 指定されたデバイスがアクティブな md アレイか、md アレイの構成デバイスの場合、それに関する情報が調べられ表示される。
--detail
- 指定されるデバイスはアクティブな md デバイスであること。 mdadm はそのアレイについての詳細情報を表示する。
--brief か --scan が与えられると、表示される情報は少なくなるが、/etc/mdadm.conf に記述するのに都合が良い形式となる。
mdadm が所望の情報を得られた場合の終了コードは 0 となる。 ただし --test オプションが与えられた場合の終了コードは次のようになる。
0 |
そのアレイは正常に動作している。 |
1 |
そのアレイには少なくとも 1 台の不良デバイスが含まれる。 |
2 |
そのアレイには複数の不良デバイスが含まれているため使用できない (RAID 4
または RAID 5) |
4 |
デバイスからの情報取得に失敗した。 |
--examine
- 指定されるデバイスは md デバイスではなく、アレイの構成デバイスであること。
mdadm はその md スーパブロックを読取り、内容を表示する。
--brief か --scan が与えられると、1 つのアレイを構成する複数のデバイスが 1 つのエントリとしてグループ化された形で報告される。
これは /etc/mdadm.conf に記述するのに都合の良い形式である。
デバイスを指定せずに --scan を与えると、コンフィグファイルに記述された全てのデバイスに対する調査が行われる。
--stop
- 指定された md デバイスが現在使われていない場合に限り、指定されたアクティブな
md デバイスを非アクティブにする。
--run
- 部分的に構成されたアレイをフルにアクティブにする。
--readonly
- 指定されたデバイスが現在使われていない場合に限り、指定されたアクティブなアレイを読取り専用とする。
--readwrite
- 読取り専用となっているアレイを読書き可能とする。
--scan
--examine を除く全ての操作においては、操作の対象は /proc/mdstat から読取ったすべてのアレイとなる。
--examine の場合は、コンフィグファイルに記述された全てのデバイスについて検査が行われる。
MONITOR モード
書式: mdadm --monitor <オプション>... <RAIDデバイス>...
すべての md アレイに対するポーリングを行うことで異常等を検出し、報告させる。
このモードにおいて mdadm は監視対象となるアレイが存在する限り、1 度起動すると終了しない。
通常はバックグランドプロセスとして実行される。
また mdadm は故障したドライブをもつアレイにスペアドライブが無い場合、他の同一スペアグループに属するアレイのスペアドライブを流用させるようにすることもできる。
コマンドラインにデバイスのリストが与えられた場合は、mdadm は指定されたデバイスのみの監視を行う。
デバイスの指定が無い場合はコンフィグファイルに記載されたすべてのデバイスが監視対象となる。
更に--scan が与えれられると /proc/mdstat から見つけたデバイスも対象として加える。
モニタリング中に何らかのイベントが発生すると、外部プログラムが指定されている場合はそれを起動し、メールアドレスが指定されている場合はそこへアラートメールを送信する。
外部プログラムはイベントが発生するたびに 2 つないし 3 つの引数を与えられて起動される。
1つ目の引数はイベントの名称(下記参照),2 つ目は影響を受けた md デバイス名、そして
3 つ目は対象となるデバイス名である。 3 つ目の引数は、例えばアレイの構成要素であるブロックデバイスの
1 つが故障した場合などに付加される。
--scan が与えられた場合は、外部プログラムかメールアドレスが mdadm のコマンドラインかコンフィグファイルで指定されている必要がある。
どちらにも指定されていない場合は mdadm は監視を行わない。 これに対し、--scan が与えられていない場合は、プログラムやメールアドレスが指定されていなくても監視は行われる。
イベントが起きた場合はその内容を単に標準出力に出力する。
イベントの種類は次の通り:
DeviceDisappeared
- いままで組み込まれていたはずの md アレイが無くなった。
RebuildStarted
- md アレイの再構築が始まった。
RebuildNN
- md アレイの再構築が NN パーセント終わった。 NN は 20,40,60,80 のいずれか。
Fail
- アクティブなアレイ構成デバイスの 1 つが不良とマークされた。
FailSpare
- スペアデバイスによる不良ドライブの置換えが失敗した。
SpareActive
- スペアデバイスによる不良ドライブの置換え・再構築が完了しアクティブとなった。
NewArray
- 新しいmdアレイが /proc/mdstat 内に検出された。
DegradedArray
- 縮退状態の新たなアレイが見つかった。 このイベントは mdadm が既に把握しているアレイが縮退状態になった場合には発生しない。
新たに見つかったアレイが縮退状態だった場合にのみ発生する。
MoveSpare
- スペアドライブが同一スペアグループ内で別のアレイの不良ドライブの置換えに使用された。
TestMessage
--test オプショ付きで起動され、アレイを検出した。
メール送信の対象となるイベントは Fail,FailSpare,DegradedArray,TestMessage
の 4 つである。 また外部プログラムの起動は全てのイベントが対象となる。
外部プログラムには 2 ないし 3 つの引数が渡される。 それらは順にイベント名,アレイデバイス名,そして場合によって第
3 引数である第 2 デバイス名が続く。
それぞれのイベントはアレイデバイス (/dev/md1 など) と、(場合よるが) 第
2 デバイスが関連付けられる。 Fail,FailSpare,SpareActive では第 2 デバイスはアレイ構成デバイスとなり、MoveSpare
ではスペアドライブの移動元アレイデバイスとなる。
mdadm がスペアを本来のアレイから別のアレイに流用できるようにするためには、それらのアレイは、コンフィグファイル内で同じスペアグループ名をもたなければならない。
スペアグループ名はどんな文字列でも良く、単に他のスペアグループと区別できる名前であれば良い。
mdadm が、あるアレイの必要アクティブデバイス数が不足していることを検出し、そのアレイ用のスペアデバイスが無い場合、同一スペアグループ内の余剰スペアドライブがないかどうか調べる。
余剰スペアドライブとは、アレイが正常な状態でかつスペアドライブが待機している状態である。
mdadm は元のアレイからこの余剰スペアドライブを削除し、不足しているアレイに追加しようとする。
削除が成功しても追加に失敗した場合は、元のアレイのスペアドライブとして戻される。
使用例
関連ファイル
/proc/mdstat
- /proc ファイルシステムが利用できる場合、/proc/mdstat はすべてのアクティブなmdデバイスの情報を表示する。
mdadm では Misc モードで
--scan オプションを付加した場合にこの情報を使ってアレイを探す。 またモニタモードではアレイの再構築を監視する際にも用いられる。
/etc/mdadm.conf
- このコンフィグファイルには MD スーパブロック検出のためのスキャンを行うべきデバイスが記述される。
また既知の MD アレイについての UUID などの識別情報も記述される。
詳細は mdadm.conf(5) を参照のこと。
注意
mdadm は以前は mdctl という名前であった。
SEE ALSO
RAID の各レベルについて知りたい人は次を参照のこと。
http://ostenfeld.dk/~jakob/Software-RAID.HOWTO/
RAID ドライバの最新版は次のサイトから入手できる。
ftp://ftp.kernel.org/pub/linux/kernel/people/mingo/raid-patches
または
http://www.cse.unsw.edu.au/~neilb/patches/linux-stable/
mdadm.conf(5), md(4)
raidtab(5), raid0run(8), raidstop(8), mkraid(8)
日本語訳
石川泰光 (ishikawa@ioss.jp )
本ドキュメントの再配布は自由とする。ただし本翻訳物に関する著作権は放棄しない。
2004年5月19日
|
|
|
|
- 本記事の無断転載を禁止します。
- 本記事の内容を実践されることは各人の責任のもとで行なって下さい。いかなる結果についても当社では関知しません。
|


日本の情報発信 バイリンガルブログ Bridge Japan Blog

|