再起動後にmdadmに問題があり、再アセンブルできません/dev/md0
。
私はdebianwheezyに取り組んでいます。
私は次の手順を実行しました::
Sudo mdadm --create --verbose /dev/md0 --level=6 --raid-devices=4 /dev/sd[b-e]
cat /proc/mdstat
Sudo mdadm --readwrite /dev/md0
Sudo mdadm --detail --scan >> /etc/mdadm/mdadm.conf
echo check > /sys/block/md0/md/sync_action
Sudo pvcreate /dev/md0
Sudo pvdisplay
Sudo vgcreate vgraid6 /dev/md0
Sudo lvcreate -l 100%FREE -n lvHD vgraid6
Sudo mkfs.ext4 -v /dev/vgraid6/lvHD
ここではすべて正常に動作します。
RAIDをマウントした後、RAIDを使用したり、ファイルを作成したり、他のPCからアクセスしたりできます...
問題が発生しました:
サーバーを再起動した後(今すぐ再起動)、RAIDはもう存在しません。/dev/md0
なくなっている。
最初にチェックしました/etc/mdadm/mdadm.conf
:
# mdadm.conf
#
# Please refer to mdadm.conf(5) for information about this file.
#
#DEVICE partitions containers
...
CREATE owner=root group=disk mode=0660 auto=yes
MAILADDR root
ARRAY /dev/md0 metadata=1.2 name=media:0 UUID=cb127a0b:ad4eb61d:e0ba8f82:db4b062d
私が試した後:
$ mdadm --stop --scan
$ mdadm --assemble --scan
または:
$ Sudo mdadm --assemble /dev/md0 /dev/sd[b-e]
mdadm: Cannot assemble mbr metadata on /dev/sdb
mdadm: /dev/sdb has no superblock - Assembly aborted
$ Sudo mdadm --examine /dev/sd[b-e]
/dev/sdb:
MBR Magic : aa55
Partition[0] : 4294967295 sectors at 1 (type ee)
/dev/sdc:
MBR Magic : aa55
Partition[0] : 4294967295 sectors at 1 (type ee)
/dev/sdd:
MBR Magic : aa55
Partition[0] : 4294967295 sectors at 1 (type ee)
/dev/sde:
MBR Magic : aa55
Partition[0] : 4294967295 sectors at 1 (type ee)
Mdadmデーモンが実行されています(ps aux | grep mdadm
)
空の/ proc/mdstat
$ cat /proc/mdstat
Personalities :
unused devices: <none>
どうしましたか?
その理由は2つあります。
(new)mdadm.conf
は、配列がアセンブルされるまでに読み取られていません。
これは、ルートファイルシステムがマウントされる前に発生するため(明らかに、アクセスするには動作中のRAIDデバイスが必要です)、このファイルは、いわゆるプリブート環境を含むinitramfsイメージから読み取られます。
したがって、これを機能させるには、構成を更新した後、
# update-initramfs -u
initramfsを更新します。
RAIDデバイスが検出されておらず、起動時に自動的に組み立てられていません。
これを提供するには、メンバーパーティションのタイプを0xfd
(Linux RAID自動検出)に変更します—MBRスタイルのパーティションテーブルの場合は00FD
(同じ)に変更します。これを行うには、それぞれfdisk
またはgdisk
を使用できます。
mdadm
は起動時に(initramfsから)実行され、使用可能なパーティションをスキャンし、タイプ0xfd
のすべてのパーティションからメタデータブロックを読み取り、可能なすべてのRAIDデバイスをアセンブルして起動します。これには、initramfsイメージ内の最新のmdadm.conf
のコピーは必要ありません。
どの方法を好むかはあなた次第です。私は個人的には2番目のようですが、複数の(多くの)RAIDデバイスがあり、起動時にそれらのいくつかを起動し(ルートファイルシステムが機能している必要があります)、残りを後でアクティブにしたい場合は、最初のアプローチまたは組み合わせそれらの中で行く方法です。
答えてくれてありがとう。
私はすでにinitranfdを更新しようとしましたが、成功しませんでした。
2番目のヒントで、問題を修正します。
以下を使用して、各ディスクにパーティションを作成します。
gdisk /dev/sd[b-e] \n \ \fd00\w\y
デバイスのいずれかのパーティションにmdadmを作成します(最後に1をチェックしてください)
Sudo mdadm --create --verbose /dev/md0 --level=6 --assume-clean --raid-devices=4 /dev/sd[b-e]1
私はそれが古い投稿であることを知っています、しかし私はこの問題に苦労していました、そしてこれは私の結果です:
私のディスクは「凍結」されていました-Seagateディスク。コマンドを入力して、同じ問題があるかどうかを確認できます。
hdparm -I /dev/sdb
示した:
Security:
Master password revision code = 65534
supported
not enabled
not locked
**frozen**
not expired: security count
supported: enhanced erase
この設定を変更できませんでした。ディスクは通常のパーティションで正常に機能しましたが、Linux RAIDとしてフォーマットしていると、パーティションテーブルが失われ、再起動後に「空」になりました。
デバイスではなく、パーティションにレイドを作成しました。
mdadm --create --verbose /dev/md1 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1
そして今、それらは再起動後に問題なく、すべてが期待どおりに機能します。