md Raid6 アレイが再起動時に消える

md Raid6 アレイが再起動時に消える

拡張した後、再起動すると RAID6 アレイが消えてしまいました。問題は、パーティションではなくディスク全体が 2 倍に拡張されたことだと思います。ドライブが正しく認識されなかった別の理由として、新しいアレイに再追加する前にスーパーブロックをゼロにしなかったことが挙げられます。両方の組み合わせである可能性がありますか? 発行されたコマンドは次のとおりです (履歴から取得し、一貫したドライブ文字を持つようにフォーマットされています)。

mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/sd[b-c]1

#これらのドライブに ROC raid 10 の完全バックアップを作成し、ほとんどのファイルを他のドライブにコピーした後、再起動しても機能することを確認します。

mdadm --create /dev/md1 --level=6 --raid-devices=4 /dev/sd[d-g]1

#ドライブを同期するのに時間がかかり、その後 md0 からデータを rsync し、正常に再起動します。

mdadm -S /dev/md0
mdadm /dev/md0 -r /dev/sd[b-c]

#以下のパーティション番号が欠落していることに注意してください。

mdadm /dev/md1 --add /dev/sdb
mdadm /dev/md1 --add /dev/sdc
mdadm -list
mdadm --detail /dev/md1
mdadm --grow --raid-devices=6 --backup-file=/media/FastRaid/md1_grow.bak /dev/md1

再起動後、raid6 は消え、2 つの raid0 アレイに置き換えられます。1 つはアクティブ (sdb/sdc)、もう 1 つは非アクティブ (sdd-sdg) です。スーパーブロックを調べた結果は次のとおりです。

/dev/sdb1:
        Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
    Array UUID : 501c08da:5069a3d8:b2982a5d:ab56c37c
        Name : tim-server:0  (local to host tim-server)
Creation Time : Tue Dec 13 22:01:10 2022
    Raid Level : raid0
Raid Devices : 2

Avail Dev Size : 7813770895 (3725.90 GiB 4000.65 GB)
    Data Offset : 264192 sectors
Super Offset : 8 sectors
Unused Space : before=264112 sectors, after=0 sectors
        State : clean
    Device UUID : e8db27d6:0dbd1ac5:4456c304:0b43f09c

    Update Time : Tue Dec 13 22:01:10 2022
Bad Block Log : 512 entries available at offset 8 sectors
    Checksum : dfd187c0 - correct
        Events : 0

    Chunk Size : 512K

Device Role : Active device 0
Array State : AA ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdc1:
        Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
    Array UUID : 501c08da:5069a3d8:b2982a5d:ab56c37c
        Name : tim-server:0  (local to host tim-server)
Creation Time : Tue Dec 13 22:01:10 2022
    Raid Level : raid0
Raid Devices : 2

Avail Dev Size : 7813770895 (3725.90 GiB 4000.65 GB)
    Data Offset : 264192 sectors
Super Offset : 8 sectors
Unused Space : before=264112 sectors, after=0 sectors
        State : clean
    Device UUID : 3ce84b05:607f8565:456e7f83:88b83052

    Update Time : Tue Dec 13 22:01:10 2022
Bad Block Log : 512 entries available at offset 8 sectors
    Checksum : e35ce3e5 - correct
        Events : 0

    Chunk Size : 512K

Device Role : Active device 1
Array State : AA ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdd1:
        Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
    Array UUID : 929a14c9:adaf502a:53658e03:90a19fce
        Name : tim-server:0  (local to host tim-server)
Creation Time : Wed Dec 14 11:18:57 2022
    Raid Level : raid6
Raid Devices : 6

Avail Dev Size : 7813770895 (3725.90 GiB 4000.65 GB)
    Array Size : 15627540480 (14903.58 GiB 16002.60 GB)
Used Dev Size : 7813770240 (3725.90 GiB 4000.65 GB)
    Data Offset : 264192 sectors
Super Offset : 8 sectors
Unused Space : before=264112 sectors, after=655 sectors
        State : clean
    Device UUID : eaf10189:940aeaf8:947efe82:5d0e4aea

Internal Bitmap : 8 sectors from superblock
    Update Time : Sun Dec 18 06:31:11 2022
Bad Block Log : 512 entries available at offset 24 sectors
    Checksum : e38a1bd9 - correct
        Events : 26630

        Layout : left-symmetric
    Chunk Size : 512K

Device Role : Active device 1
Array State : AAAAAA ('A' == active, '.' == missing, 'R' == replacing)
/dev/sde1:
        Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
    Array UUID : 929a14c9:adaf502a:53658e03:90a19fce
        Name : tim-server:0  (local to host tim-server)
Creation Time : Wed Dec 14 11:18:57 2022
    Raid Level : raid6
Raid Devices : 6

Avail Dev Size : 7813770895 (3725.90 GiB 4000.65 GB)
    Array Size : 15627540480 (14903.58 GiB 16002.60 GB)
Used Dev Size : 7813770240 (3725.90 GiB 4000.65 GB)
    Data Offset : 264192 sectors
Super Offset : 8 sectors
Unused Space : before=264112 sectors, after=655 sectors
        State : clean
    Device UUID : 5c34a9c7:bcc3f190:d1719a9c:8aa2b722

Internal Bitmap : 8 sectors from superblock
    Update Time : Sun Dec 18 06:31:11 2022
Bad Block Log : 512 entries available at offset 24 sectors
    Checksum : c429edf - correct
        Events : 26630

        Layout : left-symmetric
    Chunk Size : 512K

Device Role : Active device 3
Array State : AAAAAA ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdf1:
        Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
    Array UUID : 929a14c9:adaf502a:53658e03:90a19fce
        Name : tim-server:0  (local to host tim-server)
Creation Time : Wed Dec 14 11:18:57 2022
    Raid Level : raid6
Raid Devices : 6

Avail Dev Size : 7813770895 (3725.90 GiB 4000.65 GB)
    Array Size : 15627540480 (14903.58 GiB 16002.60 GB)
Used Dev Size : 7813770240 (3725.90 GiB 4000.65 GB)
    Data Offset : 264192 sectors
Super Offset : 8 sectors
Unused Space : before=264112 sectors, after=655 sectors
        State : clean
    Device UUID : 12d1e3a8:b8749f59:654bcca4:4f4750df

Internal Bitmap : 8 sectors from superblock
    Update Time : Sun Dec 18 06:31:11 2022
Bad Block Log : 512 entries available at offset 24 sectors
    Checksum : 7af56ae7 - correct
        Events : 26630

        Layout : left-symmetric
    Chunk Size : 512K

Device Role : Active device 0
Array State : AAAAAA ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdg1:
        Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
    Array UUID : 929a14c9:adaf502a:53658e03:90a19fce
        Name : tim-server:0  (local to host tim-server)
Creation Time : Wed Dec 14 11:18:57 2022
    Raid Level : raid6
Raid Devices : 6

Avail Dev Size : 7813770895 (3725.90 GiB 4000.65 GB)
    Array Size : 15627540480 (14903.58 GiB 16002.60 GB)
Used Dev Size : 7813770240 (3725.90 GiB 4000.65 GB)
    Data Offset : 264192 sectors
Super Offset : 8 sectors
Unused Space : before=264112 sectors, after=655 sectors
        State : clean
    Device UUID : 72085967:835efe92:cb268a64:4d192b52

Internal Bitmap : 8 sectors from superblock
    Update Time : Sun Dec 18 06:31:11 2022
Bad Block Log : 512 entries available at offset 24 sectors
    Checksum : a5623977 - correct
        Events : 26630

        Layout : left-symmetric
    Chunk Size : 512K

Device Role : Active device 2
Array State : AAAAAA ('A' == active, '.' == missing, 'R' == replacing)

ある時点で md0 を無効にしてしまったので、 で再作成しましたmdadm -A -o /dev/md0 /dev/sdb1 /dev/sdc1。これが/proc/mdstat現在です:

cat /proc/mdstat

Personalities : [raid0] [linear] [multipath] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active (read-only) raid0 sdb1[0] sdc1[1]
  7813770240 blocks super 1.2 512k chunks

md1 : inactive sdf1[0](S) sde1[3](S) sdd1[1](S) sdg1[2](S)
    15627541790 blocks super 1.2

unused devices: <none>

試すとmount /dev/md0 /media/tmp_md_raid次のようになります:mount: /media/tmp_md_raid: wrong fs type, bad option, bad superblock on /dev/md126, missing codepage or helper program, or other error.試すとmdadm -A -o /dev/md1 /dev/sdf1 /dev/sde1 /dev/sdd1 /dev/sdg1次のようになります:

mdadm: /dev/sdf1 is busy - skipping
mdadm: /dev/sde1 is busy - skipping
mdadm: /dev/sdd1 is busy - skipping
mdadm: /dev/sdg1 is busy - skipping

すべての smartctl は、すべてのドライブが正常であることを示しています。最初に mdadm --assemble --force を試すべきか、最初に mdadm --create --assume-clean を試すべきかわかりません。2 番目に -o を設定して試して、アレイを再作成し、リカバリを破壊せずにデータを表示できるかどうかを確認すべきでしょうか? アドバイスをいただければ幸いです。

答え1

6 デバイスのアレイ (AAAAAA) があるようですが、使用可能なコンポーネント デバイスは 4 つだけです ( /dev/sd[defg]1)。容量計算により、これが確認できます。16TB の RAID6 アレイを作成するには、4TB のディスクが 6 つ必要です。

これはRAID6であり、利用可能な4つのデバイスはすべて同期しているように見えるため、実行できますが、いわゆる完全に劣化したモード。このモードでは、ブロックを読み取るには、すべてのドライブからストライプを読み取り (I/O 集約型)、再構築 (CPU 集約型のガロア体計算を含む両方のパリティ シンドロームを使用) を実行する必要があり、ブロックを書き込むには、ストライプ全体を読み取り、新しいパリティ シンドロームを計算し、少なくとも 3 つのデバイスに書き込む必要があります (全体的に I/O 集約型がさらに増加し​​ます)。

Linux では、アレイの実行中にデバイスに障害が発生した場合、これにフォールバックする以外に方法はありません。これが RAID アレイの重要な点です。ご想像のとおり、この状態ではパフォーマンスが非常に悪く、データ損失のリスクが非常に高くなります。そのため、アレイをこの状態で長時間実行しないでください。理想的には、動作中のデバイスに加えてホット スペアを用意して、コンポーネントの障害を検出するとすぐに再構築を開始できるようにします。

しかし、起動中は、一部のデバイスが恒久的に欠落しているのか、それともスピンアップのずれやその他の初期化の遅延のためにまだ利用できないだけなのかはわかりません。アレイを早期にアクティブ化すると、遅れて現れたデバイスが同期から外れ、長時間の再同期が強制されます。その間、アレイは上記のように最悪のパフォーマンス特性を経験します。これにより、遅れて現れたデバイスを待つことになります。Linux は、少なくとも何らかの劣化モードで実行できるだけのデバイスがある場合でも、部分的に利用可能なアレイをデフォルトで自動的にアクティブ化しません。

しかし、管理者であるあなたはそうするためには、配列を再構成する--force:

mdadm --stop /dev/md1
mdadm --force --assemble /dev/md1 /dev/sd[defg]1

より正確には、現在のデバイスのスーパーブロックに記録されているよりも利用可能なデバイスが少ない場合、配列は自動的に組み立てられません(あなたのケースでは、すべてのデバイスが前回利用可能だったことが記録されています)。/シーケンスでデバイスを適切に削除するかmdadm -fmdadm -r強制的に組み立てると、それが記録され、配列は自動的に組み立てられます。同じ自動的に劣化状態になります。

この配列に価値あるデータが含まれていない場合は、再作成する方がよいでしょう。初期化はもっと早くデバイスを追加して再構築に苦労するよりも。

関連情報