
要するに
ガイドに従ってくださいGNU/LinuxでRAID 1を設定する方法、RAID 1を設定しました。さまざまな方法でRAIDアレイを検証するのは通常のようです。
ただし、システムを再起動した後、RAIDアレイは機能しません。問題のパーティションがの指示に従ってマウントされていません/etc/fstab
。アレイはデータを失うことなく手動で組み立てられました。
新しく追加された内部/外部ディスクによってディスクデバイス名が変更される(つまり、システムはディスク名を「変更」sdd
)、この名前が変更されたという事実に関連する問題であることを認めました。sde
ただし、RAIDアレイは一意のUUIDを使用して構成されているため、これは関係ありません。
実際の問題は起動時にアレイが組み立てられないのはなぜですか?そうでなければ、処理中にFuntoo(すべてのプロットが発生するオペレーティングシステム)の起動スクリプトは何をしますかmdadm -assemble
?
物語はとても長いです。
上記のステップバイステップガイドに従って、FuntooでRAID 1を設定しました。 RAID 1アレイの検証は、主にmdadm
ツール自体の機能を使用してさまざまな方法で実行できます。
特に、配列の詳細はフラグ付きmdadm
ツール-D
を使用して検索されます。このアレイに属するディスクを確認するには、このフラグを使用します-E
。mdadm.conf
その設定ファイルに正しい指示(たとえば、どのmdデバイス、UUIDが何であるかなど)が含まれていると、読みやすくなります。最後に、/proc/mdadm
両方のディスクがアクティブで「同期」されていることを確認するには、ファイルを監視することが重要です。
以下は、直面している状況の詳細情報です。
mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Thu Jul 18 00:25:05 2013
Raid Level : raid1
Array Size : 1953382208 (1862.89 GiB 2000.26 GB)
Used Dev Size : 1953382208 (1862.89 GiB 2000.26 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Thu Jul 18 10:33:37 2013
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Name : Resilience:0 (local to host Resilience)
UUID : 73bf29ca:89bff887:79a26531:b9733d7a
Events : 6455
Number Major Minor RaidDevice State
2 8 33 0 active sync /dev/sdc1
1 8 49 1 active sync /dev/sdd1
コマンド履歴に基づいて、以下を行いました。
# trying to follow the guide -- various tests...
...
979 18.Jul.13 [ 00:09:07 ] mdadm --zero-superblock /dev/sdd1
980 18.Jul.13 [ 00:09:17 ] mdadm --create /dev/md0 --level=1 --raid-disks=2 missing /dev/sdd1
990 18.Jul.13 [ 00:15:58 ] mdadm --examine --scan
# creating/checking the configuration file
992 18.Jul.13 [ 00:16:17 ] cat /etc/mdadm.conf
993 18.Jul.13 [ 00:16:33 ] mdadm --examine --scan | tee /etc/mdadm.conf
994 18.Jul.13 [ 00:16:35 ] cat /etc/mdadm.conf
# after some faulty attempts, finally it goes
997 18.Jul.13 [ 00:24:45 ] mdadm --stop /dev/md0
998 18.Jul.13 [ 00:24:54 ] mdadm --zero-superblock /dev/sdd1
999 18.Jul.13 [ 00:25:04 ] mdadm --create /dev/md0 --level=1 --raid-disks=2 missing /dev/sdd1
1005 18.Jul.13 [ 00:26:39 ] mdadm --examine --scan | sudo tee /etc/mdadm.conf
1046 18.Jul.13 [ 03:42:57 ] mdadm --add /dev/md0 /dev/sdc1
構成ファイルの内容は/etc/mdadm.conf
次のとおりです。
ARRAY /dev/md/0 metadata=1.2 UUID=73bf29ca:89bff887:79a26531:b9733d7a name=Resilience:0
次のように、すべてがうまく機能します/proc/mdadm
。
Personalities : [raid6] [raid5] [raid4] [raid1] [raid0] [raid10] [linear] [multipath]
md0 : active raid1 sdc1[2] sdd1[1]
1953382208 blocks super 1.2 [2/2] [UU]
unused devices: <none>
その後、ディスクが同期され、アクセスが正常です。システムをシャットダウンし、別のディスク(外部(USB経由)または内部)を追加してシステムを再起動すると、RAID1の動作が停止します!私の記憶が正しい場合、その理由はディスクデバイス番号が変更されたためです。
この例では、前者はsdd1
「新しい」内部ディスクまたは接続されている外部USB HDDによってsde1
予約されており、sdd1
システムを起動する前に自動マウントを示します。
「失敗した」アレイは、他のすべてのディスクを取り出し、アレイを停止してから再組み立てすると、非常に簡単に「回復」する可能性があります。 ARRAYを試して最終的に正常に検索している間に実行されたコマンドのいくつかは次のとおりです。
# booting and unsuccessfully trying to add the "missing" disk
1091 18.Jul.13 [ 10:22:53 ] mdadm --add /dev/md0 /dev/sdc1
1092 18.Jul.13 [ 10:28:26 ] mdadm --assemble /dev/md0 --scan
1093 18.Jul.13 [ 10:28:39 ] mdadm --assemble /dev/md0 --scan --force
1095 18.Jul.13 [ 10:30:36 ] mdadm --detail /dev/md0
# reading about `mdadm`, trying to "stop", incomplete command though
1096 18.Jul.13 [ 10:30:45 ] mdadm stop
1097 18.Jul.13 [ 10:31:12 ] mdadm --examine /dev/sdd
1098 18.Jul.13 [ 10:31:16 ] mdadm --examine /dev/sdd1
1099 18.Jul.13 [ 10:31:20 ] mdadm --examine /dev/sdc
1100 18.Jul.13 [ 10:31:21 ] mdadm --examine /dev/sdc1
# reading again, stop it -- the right way
1101 18.Jul.13 [ 10:33:19 ] mdadm --stop /dev/md0
# assemble & check
1102 18.Jul.13 [ 10:33:25 ] mdadm --assemble /dev/md0 --scan
1111 18.Jul.13 [ 10:34:17 ] mdadm --examine /dev/sd[cd]1
# does the Array have a UUID?
1112 18.Jul.13 [ 10:37:36 ] UUID=$(mdadm -E /dev/sdd1|perl -ne '/Array UUID : (\S+)/ and print $1')
# below, learning how to report on the Array
1115 18.Jul.13 [ 10:42:26 ] mdadm -D /dev/md0
1116 18.Jul.13 [ 10:45:08 ] mdadm --examine /dev/sd[cd]1 >> raid.status
1197 18.Jul.13 [ 13:16:59 ] mdadm --detail /dev/md0
1198 18.Jul.13 [ 13:17:29 ] mdadm --examine /dev/sd[cd]1
1199 18.Jul.13 [ 13:17:41 ] mdadm --help
1200 18.Jul.13 [ 13:18:41 ] mdadm --monitor /dev/md0
1201 18.Jul.13 [ 13:18:53 ] mdadm --misc /dev/md0
しかし、これが起こらなかったことを願って、UUIDおよび/またはタグに基づいてマウントするときに、他のディスク/パーティションと同じくらい安全に機能できることを願っています。
読書の対応する項目/etc/fstab
(ノート、オプションをスキップしましたnosuid,nodev
)
/dev/md0 geo xfs defaults 0 2
の詳細はsdc1
次のとおりです。mdadm -E /dev/sdc1
/dev/sdc1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : 73bf29ca:89bff887:79a26531:b9733d7a
Name : Resilience:0 (local to host Resilience)
Creation Time : Thu Jul 18 00:25:05 2013
Raid Level : raid1
Raid Devices : 2
Avail Dev Size : 3906764800 (1862.89 GiB 2000.26 GB)
Array Size : 1953382208 (1862.89 GiB 2000.26 GB)
Used Dev Size : 3906764416 (1862.89 GiB 2000.26 GB)
Data Offset : 262144 sectors
Super Offset : 8 sectors
State : clean
Device UUID : 5552ba2d:8d79c88f:c995d052:cef0aa03
Update Time : Fri Jul 19 11:14:19 2013
Checksum : 385183dd - correct
Events : 6455
Device Role : Active device 0
Array State : AA ('A' == active, '.' == missing)
パーティションの詳細
の詳細はsdd1
次のとおりです。mdadm -E /dev/sdd1
/dev/sdd1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : 73bf29ca:89bff887:79a26531:b9733d7a
Name : Resilience:0 (local to host Resilience)
Creation Time : Thu Jul 18 00:25:05 2013
Raid Level : raid1
Raid Devices : 2
Avail Dev Size : 3906764800 (1862.89 GiB 2000.26 GB)
Array Size : 1953382208 (1862.89 GiB 2000.26 GB)
Used Dev Size : 3906764416 (1862.89 GiB 2000.26 GB)
Data Offset : 262144 sectors
Super Offset : 8 sectors
State : clean
Device UUID : 076acfd8:af184e75:f83ce3ae:8e778ba0
Update Time : Fri Jul 19 11:14:19 2013
Checksum : c1df68a0 - correct
Events : 6455
Device Role : Active device 1
Array State : AA ('A' == active, '.' == missing)
「新しい」内部ディスクを再追加して再起動した後も同じ問題が発生しました。
mdadm -E /dev/sdd1
レポート
mdadm: No md superblock detected on /dev/sdd1.
しかし、mdadm -E /dev/sde1
/dev/sde1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : 73bf29ca:89bff887:79a26531:b9733d7a
Name : Resilience:0 (local to host Resilience)
Creation Time : Thu Jul 18 00:25:05 2013
Raid Level : raid1
Raid Devices : 2
Avail Dev Size : 3906764800 (1862.89 GiB 2000.26 GB)
Array Size : 1953382208 (1862.89 GiB 2000.26 GB)
Used Dev Size : 3906764416 (1862.89 GiB 2000.26 GB)
Data Offset : 262144 sectors
Super Offset : 8 sectors
State : clean
Device UUID : 076acfd8:af184e75:f83ce3ae:8e778ba0
Update Time : Fri Jul 19 11:34:47 2013
Checksum : c1df6d6c - correct
Events : 6455
Device Role : Active device 1
Array State : AA ('A' == active, '.' == missing)
そしてmdadm --detail /dev/md0
mdadm: md device /dev/md0 does not appear to be active.
cat /proc/mdstat
読みながら
Personalities : [raid6] [raid5] [raid4] [raid1] [raid0] [raid10] [linear] [multipath]
md0 : inactive sde1[1](S)
1953382400 blocks super 1.2
unused devices: <none>
によると参考にしてください。ザイルズArray Size : 1953382208
上(または下)に示すように、この時点で報告されたブロック(1953382400)が報告されたブロックと一致しないことを確認してください。明らかにここに何か問題があります。
(部分)出力は次のとおりmdadm -Evvvvs
です。
/dev/sde1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : 73bf29ca:89bff887:79a26531:b9733d7a
Name : Resilience:0 (local to host Resilience)
Creation Time : Thu Jul 18 00:25:05 2013
Raid Level : raid1
Raid Devices : 2
Avail Dev Size : 3906764800 (1862.89 GiB 2000.26 GB)
Array Size : 1953382208 (1862.89 GiB 2000.26 GB)
Used Dev Size : 3906764416 (1862.89 GiB 2000.26 GB)
Data Offset : 262144 sectors
Super Offset : 8 sectors
State : clean
Device UUID : 076acfd8:af184e75:f83ce3ae:8e778ba0
Update Time : Fri Jul 19 11:34:47 2013
Checksum : c1df6d6c - correct
Events : 6455
Device Role : Active device 1
Array State : AA ('A' == active, '.' == missing)
/dev/sde:
MBR Magic : aa55
Partition[0] : 3907026944 sectors at 2048 (type fd)
/dev/sdc1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : 73bf29ca:89bff887:79a26531:b9733d7a
Name : Resilience:0 (local to host Resilience)
Creation Time : Thu Jul 18 00:25:05 2013
Raid Level : raid1
Raid Devices : 2
Avail Dev Size : 3906764800 (1862.89 GiB 2000.26 GB)
Array Size : 1953382208 (1862.89 GiB 2000.26 GB)
Used Dev Size : 3906764416 (1862.89 GiB 2000.26 GB)
Data Offset : 262144 sectors
Super Offset : 8 sectors
State : clean
Device UUID : 5552ba2d:8d79c88f:c995d052:cef0aa03
Update Time : Fri Jul 19 11:34:47 2013
Checksum : 385188a9 - correct
Events : 6455
Device Role : Active device 0
Array State : AA ('A' == active, '.' == missing)
/dev/sdc:
MBR Magic : aa55
Partition[0] : 3907026944 sectors at 2048 (type fd)
fdisk -l
以前のディスクのsdc
合計が合計であることを確認します(残りのドライブのサイズに基づいてm個のディスクを識別します)。 "それ"はまだ探しているようですか?sdd
sdb
sde
sdc1
sdd1
コメントセクションの提案に基づいて詳細を追加しました。
~によるとドロバートコメントで示唆したように、ARRAYは正常に停止して再アセンブルされました。
# stop it!
mdadm --stop /dev/md0
mdadm: stopped /dev/md0
# re-assemble -- looks good!
mdadm --assemble -v --scan
mdadm: looking for devices for /dev/md/0
mdadm: no RAID superblock on /dev/sdf1
mdadm: no RAID superblock on /dev/sdf
mdadm: no RAID superblock on /dev/sde
mdadm: no RAID superblock on /dev/sdd1
mdadm: no RAID superblock on /dev/sdd
mdadm: no RAID superblock on /dev/sdc
mdadm: no RAID superblock on /dev/sdb
mdadm: no RAID superblock on /dev/sda6
mdadm: no RAID superblock on /dev/sda5
mdadm: no RAID superblock on /dev/sda4
mdadm: no RAID superblock on /dev/sda3
mdadm: no RAID superblock on /dev/sda2
mdadm: no RAID superblock on /dev/sda1
mdadm: no RAID superblock on /dev/sda
mdadm: /dev/sde1 is identified as a member of /dev/md/0, slot 1.
mdadm: /dev/sdc1 is identified as a member of /dev/md/0, slot 0.
mdadm: added /dev/sde1 to /dev/md/0 as 1
mdadm: added /dev/sdc1 to /dev/md/0 as 0
mdadm: /dev/md/0 has been started with 2 drives.
# double-check
mdadm --detail --scan
ARRAY /dev/md/0 metadata=1.2 name=Resilience:0 UUID=73bf29ca:89bff887:79a26531:b9733d7a
新しい質問、データを失うことなくこの問題を解決するには?コメントの議論と提案に基づいて、創業プロセスに関連していますか? マウントポイントの権限に問題があるのでしょうか?
mdadm
スタートサービスとして登録されていません。追加して再起動しましたが、問題は解決されませんでした。これが失敗した部分に関するdmesg
潜在的に興味深い詳細もあります。
[ 25.356947] md: raid6 personality registered for level 6
[ 25.356952] md: raid5 personality registered for level 5
[ 25.356955] md: raid4 personality registered for level 4
[ 25.383630] md: raid1 personality registered for level 1
[ 25.677100] md: raid0 personality registered for level 0
[ 26.134282] md: raid10 personality registered for level 10
[ 26.257855] md: linear personality registered for level -1
[ 26.382152] md: multipath personality registered for level -4
[ 41.986222] md: bind<sde1>
[ 44.274346] XFS (md0): SB buffer read failed
[ 55.028598] ata7: sas eh calling libata cmd error handler
[ 55.028615] ata7.00: cmd ef/05:fe:00:00:00/00:00:00:00:00/40 tag 0
[ 55.046186] ata7: sas eh calling libata cmd error handler
[ 55.046209] ata7.00: cmd ef/c2:00:00:00:00/00:00:00:00:00/40 tag 0
[ 55.278378] ata8: sas eh calling libata cmd error handler
[ 55.278406] ata8.00: cmd ef/05:fe:00:00:00/00:00:00:00:00/40 tag 0
[ 55.349235] ata8: sas eh calling libata cmd error handler
[ 55.349290] ata8.00: cmd ef/c2:00:00:00:00/00:00:00:00:00/40 tag 0
[ 105.854112] XFS (md0): SB buffer read failed
問題のあるXFSパーティションの追加チェックsde1
xfs_check /dev/sde1
xfs_check: /dev/sde1 is not a valid XFS filesystem (unexpected SB magic number 0x00000000)
xfs_check: WARNING - filesystem uses v1 dirs,limited functionality provided.
xfs_check: read failed: Invalid argument
cache_node_purge: refcount was 1, not zero (node=0x22a64a0)
xfs_check: cannot read root inode (22)
bad superblock magic number 0, giving up
問題のXFSパーティションが異常であることがわかりました。
XFSファイルシステムは不可能ではありませんが、問題の原因ではない可能性があります。 Gillesのコメントによると、RAIDアレイの一部であるパーティションは、XFSファイルシステムではありません!ファイルシステムは最初にRAIDヘッダーを使用してオフセットから始まります。
質問)
最初に
ディスクデバイス名に関係なく、特定のディスク/パーティションでのみ機能するようにRAID 1アレイを「ロック」することは可能ですか?
/etc/fstab
たとえば、ディスクデバイス名の変更を防ぐのに十分なアレイのUUIDを使用していますか?
問題をもう一度見つけた後
- Funtooブートプロセスのどの段階でRAIDアレイを組み立てたいですか?正確にはどうですか?変更/調整はどこでできますか?
答え1
わかりました。箱に何の問題があるのかよくわかりませんが、何が起こっているのかを簡単にまとめてみましょう。しなければならないトラブルシューティングに役立つよう努めています。
永続的なスーパーブロック(非常に合理的なデフォルト値と実行方法)を持つ配列を作成すると、mdadmは各ディスクにさまざまなメタデータを保存します。このメタデータには、アレイUUID、アレイ名、およびスロット番号が含まれています。各ディスクは同じUUIDと名前を格納します。スロット番号はディスクによって異なります。 (メタデータを見たいときに使用mdadm -E
)
アレイは、次の3つの方法で起動時に組み立てることができます。
- カーネルはそれを行うことができます。これは0xFDがパーティションタイプを自動的に検出する操作です。このアプローチは残念です。
- ディストリビューションのスクリプトは、
udev
このプロセスの一部として増分アセンブリを使用して、mdadm
デバイスに表示されるように渡すことができます。これが最新の方法です。正しく機能すると、USBなどのさまざまな非同期プロービングデバイスを問題なく処理できます。 - 展開スクリプトは、
mdadm --assemble --scan
すべてのデバイスが認識されたと見なされた後に呼び出されます。たとえば、USBにはKluges(デフォルトでデバイスノードが作成されたことを確認するためにスリープモード)が必要です。このモードでは、デフォルトでmdadm
システム内/proc/partitions
のすべてのブロックデバイスを確認し、各ブロックデバイスでスーパーブロックを検索します。
リリーススクリプトはinitramfs以降でこれを行うことができます。あるいは、時にはいくつかの配列がinitramfs(ルートファイルシステムを取得するために必要な配列)で実行され、他の配列は起動後に実行されます。
どのような方法で行われても、mdadmはUUID、名前、およびスロット番号を確認してデバイスを一致させます。 2つのディスクアレイに対して#0と#1を見つける必要があります。実際にどのデバイスなのかは関係ありません(デフォルトではmdadm.confで気にするように設定できます)。
答え2
ディスクデバイス名に関係なく、特定のディスク/パーティションでのみ機能するようにRAID 1アレイを「ロック」することは可能ですか?
以下のエイリアスを使用して/dev/disk/by-*
これを行うことができます。これらの/dev/disk/by-id/*
情報は物理ディスクに直接マッピングされるため、情報を簡単に表示できるはずですが、両方のディレクトリにシナリオに役立つシンボリックリンクを含める必要があります。どのようなものを使用するかは、主に好みによって異なります。
たとえば、私のシステムでは、/dev/disk/by-id/scsi-SATA_ST31000340NS_9QJ26FT9-part1 が /dev/sdb1 にマップされます。それはバス、モデル、TVシリーズそして分割関連付けられたパーティションを作成する番号。アレイのドライブに障害が発生した場合は、mdadm
問題のコマンドなどのコマンドを使用して、どの物理ドライブが問題であるかを具体的に確認できます。
たとえば、/etc/fstabでアレイのUUIDを使用すると、ディスクデバイス名の変更を防ぐのに十分ですか?
私はMD RAIDについて知りません。しかし、これはアレイ全体への参照にのみ影響しませんか? /dev/md0 が突然 /dev/md1 と表示されることが心配な場合は、配列自体への固定参照を提供する別の方法がありますか?