私はmdadm
を利用してRAID(ミラーリング)の作成に成功しました。ただし、起動するたびに次のコマンドを実行する必要があります。
mdadm --stop --scan // to stop /dev/md127 - I don't know where the number 127 even comes from
mdadm --assemble --scan // to start /dev/md0
何が間違っているのですか/なぜ起動時にこれらのコマンドを実行する必要があるのですか?起動するたびにRAIDを自動起動する正しい方法は何ですか?
注意:rootでログインするか、Sudoを使用してこれらすべてを実行する必要があります。
ファイルが存在しない場合は、次のファイルを新しい空のファイルに貼り付けます。
# mdadm.conf
#
# Please refer to mdadm.conf(5) for information about this file.
#
DEVICE partitions
# auto-create devices with Debian standard permissions
CREATE owner=root group=disk mode=0660 auto=yes
# automatically tag new arrays as belonging to the local system
HOMEHOST <system>
# instruct the monitoring daemon where to send mail alerts
MAILADDR root
# definitions of existing MD arrays
ファイルを保存する
次のコマンドを実行して、ファイルの末尾に配列設定への参照を追加します。
mdadm --detail --scan >> /etc/mdadm/mdadm.conf
これにより、mdadm.confの最後に次のような行が追加されます。
ARRAY/dev/md0レベル= raid5 num-devices = 3メタデータ= 00.90 UUID = a44a52e4:0211e47f:f15bce44:817d167c
MdadmコマンドがARRAY行の上に他のものを追加している場合は、それを削除します。たとえば、私のマシンの1つでは、コマンドは「mdadm:metadata format 00.90 unknown、ignored」を返します。 ARRAY行の前に。
これでアレイは起動時に自動構築されるはずです。したがって、マウントするために/ etc/fstabにエントリを追加できます(まだ存在していない場合)。
私はこれがより古い質問であることを理解しています、しかし私はUbuntu Server 12.04の32ビットバージョンでこれにイライラする時間を過ごしました。
mdadm --detail --scan >> /etc/mdadm/mdadm.conf
を実行して行を追加した
ARRAY/dev/md0メタデータ= 1.2 name = ubuntu:0 UUID = a8a570c6:96f61865:05abe131:5c2e2f7e
再起動後、/ dev/md0が表示されませんでした。 mdadm --detail --scan
をもう一度実行すると(結果をファイルに入れずに)、
ARRAY/dev/md/ubuntu:0メタデータ= 1.2 name = ubuntu:0 UUID = a8a570c6:96f61865:05abe131:5c2e2f7e
手動で/dev/md/ubuntu:0
をマウントしてもうまくいきます。結局、それは私もfstabファイルに入れたものでした。
これがUbuntu 12.04でどのように機能するのか、またはこれが悪い習慣であるのであれば、私は何が問題なのかわかりません。ちょうど私のために働いたことを共有したいと思いました。
Sudo mdadm -Es >> /etc/mdadm/mdadm.conf
/etc/mdadm/mdadm.confに追加された行を次のように編集します。基本部分以外はすべて削除します。それはように見えるはずです
ARRAY /dev/md5 UUID=031cea92:50a7a28c:6b077fe7:8817092a
ARRAY /dev/md6 UUID=53454954:4044eb66:9169d1ed:40905643
注:あなたの都合に合わせてmdXでXを選ぶことができます。
今すぐ再起動
Sudo update-initramfs -u
Sudo reboot
編集:コマンドを修正しました。
Raspbian GNU/Linux 8(jessie)を実行しているRaspberry Pi 2でこの問題が発生しました。 /dev/sda1
および/dev/sdb1
にRAIDアレイがあり、起動時にアセンブルできませんでした。 /etc/mdadm/mdadm.conf
ファイルにエントリがありました
ARRAY /dev/md/0 metadata=1.2 UUID=53454954:4044eb66:9169d1ed:40905643 name=raspberrypi:0
(番号は異なります。これを取得する方法については、他の回答を参照してください。)
/etc/fstab
ファイルにエントリがありました
/dev/md0 /data ext4 defaults 0 0
(そしてもちろん/data
は実際に存在していました)
OPのように、ブート後にRAIDアレイを手動で組み立ててマウントすることはできましたが、明らかに正しくセットアップされているにもかかわらず、ブート中にRAIDアレイを自動的に実行することはできませんでした。
次のようにして問題を解決することができました。 /etc/init.d/mdadm-raid
でスクリプトを調査し、デバッグコードの行を挿入しました
ls /dev > /home/pi/devices.txt
このファイルを再起動して確認すると、/dev/sda
初期化が行われたときにデバイス/dev/sdb
およびmdadm-raid
が存在したが、パーティション/dev/sda1
および/dev/sdb1
が欠落していることがわかりました。 /etc/init.d/mdadm-raid
ファイルを編集し、次の行を挿入しました
partprobe
ヘッダーの後(つまり、### END INIT INFO
の後、ただしスクリプトの開始前)。これによりパーティションが検出されたため、mdadm-raid
スクリプトがRAIDアレイを組み立てることができ、問題が解決しました。これが誰かを助けることを願っています!
Debian wheezyではもう1つのステップが必要です:/etc/default/mdadm
setでautostartをfalseからtrueにする
#AUTOSTART: #ブート中に/etc/mdadm/mdadm.confにリストされているアレイを自動的にmdadm起動する必要がありますか? AUTOSTART = true
また、mdadm -Es >>/etc/mdadm/mdadm.conf
オプションの代わりに--scan
を使用しなければなりませんでした。
私が試した
mdadm --create /dev/md/abcdef ...
私はソフトリンク/dev/md/abcdef
が再起動後も持続しているのを見ています、そしてもし必要ならソフトリンクを通して装置にアクセスしてください。
それは許容できる解決策ですか?
私はRaspberry Pi上でいくつかの外付けUSB HDDを使ってRaspbianでこれと戦っています。 USBドライブがudevによって認識された後、checkfs.sh(起動時にファイルシステムをチェックする)の前にmdadm-raidが確実に起動するように、サービスの起動順序を乱す必要がありました。 mdadm-raidの起動が早すぎると、ドライブが使用できなくなったため、アレイは組み立てられませんでした。これは、その後fsckが失敗し、ブートプロセスがメンテナンスプロンプトにドロップしたことを意味します(RAIDアレイは他のサービスに必要です)。
Checkroot.shの後でcheckfs.shを実行してupdate-rc.d mdadm-raid defaults
を実行する前にmdadm-raidを起動するようにブートの依存関係を変更し、続いてupdate-initramfs -uv -k `uname -r`
(uname
に関するバックノートに注意してください)を修正しました。とにかく、私にとっては、YMMV。
ラズベリーパイ3を持っていて、rootdelay=5
に/boot/cmdline.txt
を追加することは私にとってこの問題を解決しました。
クレジットはここ になります 。