| 原作者 | ニール・ブラウン |
|---|---|
| 開発者 | コミュニティ貢献者、 Mariusz Tkaczyk [1] |
| 初回リリース | 2001 |
| 安定リリース | 4.3 [2]
/ 2024年2月15日 |
| リポジトリ | github.com/md-raid-utilities/mdadm/ |
| 書かれた | C |
| オペレーティング·システム | リナックス |
| 利用可能 | 英語 |
| タイプ | ディスクユーティリティ |
| ライセンス | GNU GPL |
| Webサイト | raid.wiki.kernel.org |
mdadm はソフトウェア RAIDデバイスの管理と監視に使用されるLinuxユーティリティです。これは、raidtools2 や raidtools などの古いソフトウェア RAID ユーティリティの代わりに、最近のLinux ディストリビューションで使用されています。 [3] [4] [5]
mdadmは元々[6] SUSEのNeil Brown氏によって保守され、著作権が付与されたフリーソフトウェアであり、 GNU General Public Licenseバージョン2以降の条項に基づいてライセンスされています。
名前
名前は、管理するmd (複数デバイス) デバイス ノードに由来し、以前のユーティリティmdctlに代わるものです。[引用が必要]元の名前は「Mirror Disk」でしたが、機能が追加されたため変更されました。[引用が必要]現在、この名前は Multiple Disk and Device Management の略であると理解されています。[3]
概要
Linux ソフトウェア RAID 構成には、Linux カーネルにブロック デバイスとして提示されるあらゆるものを含めることができます。これには、ハード ドライブ全体 (例: /dev/sda ) とそのパーティション(例: /dev/sda1) が含まれます。
RAID構成
- RAID 0 – ブロックレベルのストライピング。MD はさまざまな長さのデバイスを処理できますが、大きいデバイスの余分なスペースはストライピングされません。
- RAID 1 – ミラー。
- RAID 4 – RAID 0 と同様ですが、パリティ用の追加デバイスがあります。
- RAID 5 – RAID 4 と同様ですが、パリティがすべてのデバイスに分散されます。
- RAID 6 – RAID 5 と同様ですが、ストライプごとに 2 つのパリティ セグメントがあります。
- RAID 10 – 複数の RAID 1 ミラーセットを取得し、それらを RAID 0 スタイルでストライプ化します。
RAID 10 は、物理ハード ディスク全体にわたる高性能 RAID 0 ストライプで構成された最上位レベルの RAID 1 ミラーで構成される RAID 0+1とは異なります。RAID 10 構成で 1 台のドライブに障害が発生すると、下位レベルのミラーの 1 つが劣化モードになりますが、最上位レベルのストライプは正常に動作します (パフォーマンスの低下を除く)。RAID 0+1 構成で 1 台のドライブに障害が発生すると、下位レベルのストライプの 1 つが完全に機能しなくなり、最上位レベルのミラーが劣化モードになります。2 つの設定のどちらが適しているかは、スペア ディスクが使用可能かどうか、またどのようにスピンアップするかなど、対象のアプリケーションの詳細によって異なります。
非RAID構成
- リニア– 複数のデバイスを1つの大きなMDデバイスに連結する – (2021年以降非推奨となり、2023年以降Linuxカーネルから削除された[7])
- マルチパス– 単一デバイスへのフェイルオーバーを備えた複数のパスを提供します
- 障害– テストと開発のために、複数のディスク障害シナリオをエミュレートする単一のデバイス
- コンテナ– 単一のデバイスとして管理されるデバイスのグループ。RAIDシステムを構築できる。
特徴
md デバイスの元の (標準の) 形式の名前は/dev/md<n>です。ここで、<n>は 0 から 99 までの数字です。最近のカーネルでは、 /dev/md/Homeなどの名前がサポートされています。2.4.x カーネル以前では、これら 2 つが唯一のオプションでした。どちらもパーティション分割できません。
2.6.x カーネル以降、新しいタイプの MD デバイスであるパーティション化可能なアレイが導入されました。デバイス名はmd をmd_dに変更することで変更されました。パーティションはp<n>を追加することで識別されました。ここで<n>はパーティション番号です。したがって、たとえば/dev/md/md_d2p3のようになります。Linux カーネル メインラインのバージョン 2.6.28 以降、パーティション化不可能なアレイをパーティション化できるようになり、パーティションはパーティション化可能なアレイと同じように参照されます。たとえば、/dev/md/md1p2のようになります。
Linuxカーネルメインラインのバージョン3.7以降、mdは、リニア、RAID 0、RAID 1、RAID 5、RAID 10レイアウトの基盤となるソリッドステートドライブ(SSD)のTRIM操作をサポートしています。 [8]
起動中
MD のサポートはカーネル内にあるため、カーネルの実行前にこれを使用すると問題が発生します。特に、ブート ローダーが(e)LiLoまたはGRUB legacy の場合は存在しません。通常は存在しますが、 GRUB 2 の場合は存在しない可能性があります。この問題を回避するには、/bootファイルシステムを md サポートなしで使用するか、RAID1 とともに使用する必要があります。後者の場合、システムは RAID1 デバイスを通常のファイルシステムとして扱って起動し、システムが実行中になると、md として再マウントして 2 番目のディスクを追加できます。これによりキャッチアップが発生しますが、/bootファイルシステムは通常は小さいです。
最近のブートローダでは、 initramfsメカニズムを通じて MD サポートをカーネル モジュールとしてロードすることが可能です。このアプローチにより、複雑な手動構成を必要とせずに、 /bootファイルシステムを任意の RAID システム内に配置できます。
外部メタデータ
LinuxソフトウェアRAIDは、RAIDボリュームメタデータの独自の形式に加えて、Linuxカーネルのバージョン2.6.27およびmdadmユーザースペースユーティリティのバージョン3.0以降、外部メタデータ形式もサポートしています。これにより、LinuxはさまざまなファームウェアベースまたはドライバーベースのRAIDボリューム(「偽RAID 」とも呼ばれる)を使用できます。[9]
2013 年 10 月現在[アップデート]、外部メタデータのサポートされている形式は 2 つあります。
- DDF(ディスクデータフォーマット)は、相互運用性の向上を目的としてストレージネットワーキング業界協会によって定義された業界標準です。[10]
- 多くのコンシューマーレベルのマザーボードに実装されているIntel Rapid Storage Technology (RST)(旧Intel Matrix RAID)で使用されるボリュームメタデータ形式。 [9]
mpd
mdmpdは[11] Linuxカーネル2.6.10-rc1までのMDマルチパスデバイスを監視するために使用されていたデーモンであり、 Red Hatによってmdadmパッケージの一部として開発されました。[12]このプログラムはマルチパス( RAID )デバイスを監視するために使用され、通常は起動時にサービスとして起動され、その後デーモンとして実行されます。
エンタープライズ ストレージの要件には、多くの場合、1 つのディスク ドライブと通信する方法を複数用意して、1 つのコントローラ経由でディスク ドライブと通信できない場合に、システムが自動的に別のコントローラに切り替えて処理を継続できるようにすることが求められます。これは、マルチパス ディスク アクセスと呼ばれます。Linux カーネルは、md (Multiple Devices) ドライバーと呼ばれるソフトウェア RAID スタックを介してマルチパス ディスク アクセスを実装します。md マルチパス ドライバーのカーネル部分は、I/O 要求を適切なデバイスにルーティングし、アクティブ パスの障害を処理することだけを処理します。以前に障害が発生したパスが再び機能するかどうかを調べようとはしません。それがこのデーモンの役割です。起動時に、デーモンは md raid アレイの現在の状態を読み取り、その状態を保存してから、カーネルから何か興味深いことが起こったことを通知されるのを待ちます。その後、デーモンは起動し、マルチパス デバイス上のパスに障害が発生していないかどうかを確認します。障害が発生している場合は、障害が発生したパスを 15 秒ごとにポーリングして、再び機能し始めます。再び動作を開始すると、デーモンはパスを、新しいスペア パスとして、元々含まれていたマルチパス md デバイスに再度追加します。
/ procファイルシステムを使用している場合、/proc/mdstatはすべてのアクティブなmdデバイスとその情報を一覧表示します。mdmpdは、パスを監視するアレイを見つけたり、興味深いイベントの通知を取得したり、モニターモードでアレイの再構築を監視したりするためにこれを必要とします。[13]
技術詳細 RAID 1
RAID 1 ボリューム上のデータは、通常のパーティション上のデータと同じです。RAID 情報は、パーティションの最後の 128kB に保存されます。つまり、RAID 1 ボリュームを通常のデータ パーティションに変換するには、パーティション サイズを 128kB 減らし、パーティション ID を fd から 83 (Linux の場合) に変更することができます。
参照
- OpenBSD/NetBSD 上のbioctl
参考文献
- ^ 「お知らせ: mdadm メンテナーの更新」. marc.info. 2023-12-14 . 2024-05-17閲覧。
- ^ 「mdadm-4.3 をリリース」。 2024 年 2 月 15 日。
- ^ ab Bresnahan, Christine; Blum, Richard (2016). LPIC-2: Linux Professional Institute 認定試験学習ガイド. John Wiley & Sons . pp. 206–221. ISBN 9781119150817。
- ^ Vadala, Derek (2003). Linux での RAID の管理. O'Reilly Media, Inc. p. 140. ISBN 9781565927308.
mdadm Linux。
- ^ Nemeth, Evi (2011). UNIX および Linux システム管理ハンドブック. Pearson Education. pp. 242–245. ISBN 9780131480056。
- ^ “Mdadm”. 2013年5月3日時点のオリジナルよりアーカイブ。2007年8月25日閲覧。
- ^ 「md :非推奨の CONFIG_MD_LINEARを削除」。GitHub。2023-12-19。2024-04-30取得。
- ^ 「Linuxカーネル3.7、セクション5.ブロック」。kernelnewbies.org 。 2012年12月10日。 2014年9月21日閲覧。
- ^ ab "外部メタデータ". RAID セットアップ. kernel.org. 2013-10-05 . 2014-01-01取得。
- ^ 「DDF Fake RAID」。RAID セットアップ。kernel.org。2013 年 9 月 12 日。2014年 1 月 1 日閲覧。
- ^ 「117498 – md コードにイベント インターフェイスがありません」。
- ^ 「更新され たmdadm パッケージにはマルチパス デバイスの拡張機能が含まれています」。RHEA -2003:397-06。Redhat。2004年1 月 16 日。
- ^ 「Mdadm(8): MDデバイス(別名ソフトウェアRAID)の管理 - Linuxマニュアルページ」。
外部リンク
- mdadm ソースコードリリース
- 「インストール/SoftwareRAID」。Ubuntuコミュニティ ドキュメント。2012-03-01 。
- Lonezor (2011-11-13) 「Linux で 2TB を超えるディスクを持つ RAID ボリュームを設定する」。2011-11-19 にオリジナルからアーカイブされました。
