起動時に mdadm はどのように実行されますか?

起動時に mdadm はどのように実行されますか?

ドキュメントやインターネットを左から右に読んだと思いますが、システムの起動時に mdadm がどのように呼び出されるかに関する情報がどこにも見つかりません。 には何も表示されず/etc/rcX.d、systemd サービスも表示されませんが、アレイは起動時に組み立てられます。どうやってですか? また、実行されたコマンドをチェックして、何が起こっているのか、監視が動作しているかどうかを確認したいと思います。

ディストリビューションは fedora/ubuntu です。

ありがとう。

答え1

mdadm は、デバイスの検出時にトリガーされる udev ルールのセットをいくつかインストールします。

/usr/lib/udev/rules.d/01-md-raid-creating.rules
/usr/lib/udev/rules.d/63-md-raid-arrays.rules
/usr/lib/udev/rules.d/64-md-raid-assembly.rules
/usr/lib/udev/rules.d/69-md-clustered-confirm-device.rules

これらのルールは、mdadm を増分アセンブリ モードで実行します。

[64-md-raid-assembly.rules]
31: # 自動/増分アセンブルの対象を制限できることに注意してください
32: # mdadm.conf(5) の 'AUTO' と 'ARRAY' を使用した選択的なホワイトリスト
33: ACTION=="add|change", IMPORT{program}="/usr/bin/mdadm --incremental --export $devnode --offroot $env{DEVLINKS}"

また、ヘルス イベント用に mdmonitor.service (mdadm --monitor) も起動します。

[63-md-raid-arrays.rules]
35: ENV{MD_LEVEL}=="raid[1-9]*", ENV{SYSTEMD_WANTS}+="mdmonitor.service"

関連情報