要するに

要するに

要するに

ガイドに従ってください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を使用して検索されます。このアレイに属するディスクを確認するには、このフラグを使用します-Emdadm.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個のディスクを識別します)。 "それ"はまだ探しているようですか?sddsdbsdesdc1sdd1

コメントセクションの提案に基づいて詳細を追加しました。

~によるとドロバートコメントで示唆したように、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つの方法で起動時に組み立てることができます。

  1. カーネルはそれを行うことができます。これは0xFDがパーティションタイプを自動的に検出する操作です。このアプローチは残念です。
  2. ディストリビューションのスクリプトは、udevこのプロセスの一部として増分アセンブリを使用して、mdadmデバイスに表示されるように渡すことができます。これが最新の方法です。正しく機能すると、USBなどのさまざまな非同期プロービングデバイスを問題なく処理できます。
  3. 展開スクリプトは、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 と表示されることが心配な場合は、配列自体への固定参照を提供する別の方法がありますか?

関連情報