• R/O
  • HTTP
  • SSH
  • HTTPS

Tags
Keine Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

private knowhow


File Info

Rev. 40901d4de83c5f5e08ebff7dfd1f905fb667dae1
Größe 26,589 Bytes
Zeit 2024-11-04 23:14:31
Autor hyperoga
Log Message

add trouble shoot

Content

LinuxソフトウェアRAIDノウハウ


http://rdt17.blogspot.jp/2010/05/mdadmraid.html
---------------------------
 mdadmでRAID構築(まとめ)
---------------------------
* RAIDの構築
* fdisk等を用いてパーティションを作成
(このときのパーティションタイプは0xfd(Linux RAID(auto detect))にしておくと分かりやすい)

* RAIDの構築

    # mdadm -C /dev/md0 -l5 -n3 /dev/hdd[123]

* -Cは新規作成時に指定するオプションで--createと同じ意味
* /dev/md0は最終的に出来上がるRAIDデバイスを指定する(無くても勝手に作ってくれる)
* -l5はRAIDレベルを表す 0,1,5,6が指定可能 --level=raid5と指定しても同じ意味
* -n3はデバイスの数(HDDの数) --raid-devices=3と指定しても同じ
* /dev/hdd[123]はRAIDを構成するHDD この例では単一のHDDで構成しているが本当は/dev/hd[bcd]1みたいに物理的に違うデバイスを指定する

* スペアディスクの追加

    # mdadm /dev/md0 --add /dev/hdd4

mdadm -D /dev/md0でスペアディスクが存在することを確認できる

* RAIDの監視
* procから見る

    cat /proc/mdstat 

(watch -n 1 cat /proc/mdstat みたいにやると1秒ごとにこのコマンドを発行してくれるので便利)

* 詳細に見る

    mdadm -D /dev/md0



* RAIDの再構築(HDD故障時の対処)
* 故障マークを付ける

    # mdadm /dev/md0 -f /dev/hdd1 

スペアディスクがあるなら再構築が始まるないなら交換する

* RAIDアレイから削除する

    # mdadm /dev/md0 -r /dev/hdd1

この後ディスクを交換する

* アレイに追加

    # mdadm /dev/md0 -a /dev/hdd1



* RAIDの解除
* アレイの停止

    # mdadm -S /dev/md0


* スーパーブロックの削除

    # mdadm --zero-superblock /dev/hdd1



* その他
* 以前存在していたRAIDデバイスを再構築しデータをサルベージこの辺(KNOPPIXでの認識)を参考にした

    # mdadm -A /dev/md0 /dev/hd[efgh]1 


* /etc/mdadm/mdadm.confファイル

    # mdadm -E --scan >> /etc/mdadm.conf

こうしてアレイ情報を書き込むといいらしい
カーネルから自動起動の場合は意味なし

* Debian Lennyの場合カーネルから自動で読み込むモードとか指定できる

    # dpkg-reconfigure mdadm 

これで再設定する
(カーネルで自動起動した場合は/etc/mdadm/mdadm.confは必要ない)

*2ディスク壊れたら強制的に起動させる
mdadm -A /dev/md0 -u 3fee8ddc:fc710c65:daa5f7c5:4109bf44 --run --force

参考リンク
・mdadm(8) ver.1.5 man page [日本語]
  http://www.ioss.jp/sohodiy/mdadm8-1_5.html
・福岡大学 mdadm wiki
  http://okkun-lab.rd.fukuoka-u.ac.jp/wiki/?Tips%2FLinux%2Fmdadm
・「mdadm」によるRAID5の構築
  http://www.crimson-snow.net/tips/linux/mdadm_raid5.html


{ ------------------------------------------------------------------------
資料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 は元のアレイからこの余剰スペアドライブを削除し、不足しているアレイに追加しようとする。 削除が成功しても追加に失敗した場合は、元のアレイのスペアドライブとして戻される。
使用例

    あるデバイスがRAIDアレイかまたはその一部かを調べ、それについての概要を表示する。

        mdadm -Q /dev/デバイス名

    標準コンフィグファイルに記述されているすべてのアレイを編成し、起動する。 これは通常システムのスタートアップファイル内に書かれる。

        mdadm -As

    停止可能な (現在使われていないなど) すべてのアレイ停止する。 これは通常システムのシャットダウンスクリプトに書かれる。

        mdadm --stop --scan

    メールアドレスか外部プログラムがコンフィグファイルに記述されている前提で、すべてのアレイを監視する。ただしポーリング周期は 2 分とする。

        mdadm -Fs --delay=120

    /dev/hda 1 と /dev/hdc 1 を使って RAID 1 アレイ /dev/md0 を作成する。

        mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/hd['ac']1

    現在アクティブな IDE または SCSI ドライブパーティションで構成された既存のアレイを基準とし、コンフィグファイルの雛形を作成する。

        echo 'DEVICE /dev/hd*['0-9'] /dev/sd*['0-9']' > mdadm.conf
        mdadm --detail --scan >> mdadm.conf

    ここで作成されたファイルには不要な詳細情報も含まれるため、実際に使用する前に編集する必要があることに注意。
    すべての IDE,SCSI ドライブ (パーティションではない) から編成可能なアレイを探し、その情報を適切なフォーマットでコンフィグファイルに書き出す。

        echo 'DEVICE /dev/hd['a-z'] /dev/sd*['a-z']' > mdadm.conf
        mdadm --examine --scan --config=mdadm.conf >> mdadm.conf

    ここで作成されたファイルには不要な詳細情報も含まれるため、実際に使用する前に編集する必要があることに注意。 特に device= のエントリは要チェック。
    /proc/partitions を読んでデバイスリストを作成し、 md スーパブロックが検出されればその概要を表示する。

        mdadm --examine --brief --scan --config=partitions
        mdadm -Ebsc partitions

    /proc/partitions を読んでデバイスリストを作成し、md スーパブロックのマイナー番号が 0 のデバイスのみを使って /dev/md0 を編成する。

        mdadm -Ac partitions -m 0 /dev/md0

    コンフィグファイルにメールアドレスかアラート(外部)プログラムが指定されていれば mdadm をモニタモードにしてバックグラウンドで走らせ、全ての md デバイスを監視させる。 またこのときの mdadm の pid (プロセス ID) を /var/run/mdadm に書き出す。

        mdadm --monitor --scan --daemonise > /var/run/mdadm

    Create モードに関するヘルプを表示する。

        mdadm --create --help

    コンフィグファイルの書式についてのヘルプを表示する。

        mdadm --config --help

    通常のヘルプを表示する。

        mdadm --help

関連ファイル

/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日

v1.5.0 	                                                               MDADM(8)