形状の変更と再起動後にmdadm RAIDアレイが消える

形状の変更と再起動後にmdadm RAIDアレイが消える

私のmdadm RAID5アレイは5> 8ディスクの成長と再構成を行いました。何日も休まないで続きました。完了したとマークされたときにcat /proc/mdstatシステムを再起動しましたが、アレイは表示されなくなりました。

私が見つけた潜在的な問題の1つは、新しいドライブを追加するときにディスク全体を使用していることです(つまり、/dev/sda使用しない)/dev/sda1。ただし、これらのドライブには、ドライブ全体に渡る必要があるパーティションがあります。

私は試した:

$ sudo mdadm --assemble --scan
mdadm: No arrays found in config file or automatically

新しく追加された3つのドライブにはmdスーパーブロックがないようです。

$ sudo mdadm --examine /dev/sd[kln]
/dev/sdk:
   MBR Magic : aa55
Partition[0] :   4294967295 sectors at            1 (type ee)
/dev/sdl:
   MBR Magic : aa55
Partition[0] :   4294967295 sectors at            1 (type ee)
/dev/sdn:
   MBR Magic : aa55
Partition[0] :   4294967295 sectors at            1 (type ee)

$ sudo mdadm --examine /dev/sd[kln]1
mdadm: No md superblock detected on /dev/sdk1.
mdadm: No md superblock detected on /dev/sdl1.
mdadm: No md superblock detected on /dev/sdn1.

他の5人がこれを行い、アレイに関する正しい統計を表示します。

$ sudo mdadm --examine /dev/sd[ijmop]1
/dev/sdi1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
     Array UUID : 7399b735:98d9a6fb:2e0f3ee8:7fb9397e
           Name : Freedom-2:127
  Creation Time : Mon Apr  2 18:09:19 2018
     Raid Level : raid5
   Raid Devices : 8

 Avail Dev Size : 15627795456 (7451.91 GiB 8001.43 GB)
     Array Size : 54697259008 (52163.37 GiB 56009.99 GB)
  Used Dev Size : 15627788288 (7451.91 GiB 8001.43 GB)
    Data Offset : 254976 sectors
   Super Offset : 8 sectors
   Unused Space : before=254888 sectors, after=7168 sectors
          State : clean
    Device UUID : ca3cd591:665d102b:7ab8921f:f1b55d62

Internal Bitmap : 8 sectors from superblock
    Update Time : Tue Jul 14 11:46:37 2020
  Bad Block Log : 512 entries available at offset 72 sectors
       Checksum : 6a1bca88 - correct
         Events : 401415

         Layout : left-symmetric
     Chunk Size : 512K

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

...待つ

強制アセンブリは機能しません。

$ sudo mdadm /dev/md1 --assemble --force /dev/sd[ijmop]1 /dev/sd[kln]
mdadm: /dev/sdi1 is busy - skipping
mdadm: /dev/sdj1 is busy - skipping
mdadm: /dev/sdm1 is busy - skipping
mdadm: /dev/sdo1 is busy - skipping
mdadm: /dev/sdp1 is busy - skipping
mdadm: Cannot assemble mbr metadata on /dev/sdk
mdadm: /dev/sdk has no superblock - assembly aborted

どのように進むべきかわかりません。

すべての助けに心から感謝します。

答え1

私が見つけた潜在的な問題の1つは、新しいドライブを追加するときにディスク全体を使用していることです(つまり、/dev/sda使用しない)/dev/sda1。ただし、これらのドライブには、ドライブ全体に渡る必要があるパーティションがあります。

パーティションテーブル以外の目的でディスク全体を使用することは危険です。パーティションテーブルに他の内容が書き込まれるとすぐに、ディスク全体のRAID / LUKS / LVM /ファイルシステムメタデータは消えます。ユーザーエラーは避けて、実際に尋ねることなくパーティションテーブルを作成できるツールと環境がたくさんあります。

これがまさにあなたに起こったことのようです。あなたまたは他の人がパーティションテーブルを持つ3つのディスクにメタデータを上書きしました。失われたメタデータを回復することは通常不可能です。たとえば、partedsはmklabel gptmdadm 1.2メタデータ(開始から4K)を完全にゼロにします。

したがって、唯一の希望はRAIDを再構築することです最初から新しいメタデータを構築してください。

また、同じ方法で再作成する必要があるため、パーティションの代わりにディスク全体を使用したい場合でも、ディスク全体を使用して正しい順序で再作成する必要があります。データを回復したら、ディスク装置全体ではなくパーティションにマイグレーションすることを検討してください。


ドライブの順序はアルファベット順ではなく、mdadm --examineアレイの4番目のドライブ(0から計算、デバイスロール3)への出力のみが表示されます。/dev/sdi1再生を成功させるためには、検査出力を注意深く読み、正しい設定を推測してください。また、データオフセットが異常です(--grow変更されたため)。

そして記録中にコピーを上書きする現在探しているコマンドは次のようになります。

mdadm --create /dev/md100 --assume-clean \
      --level=5 --chunk=512 --data-offset=127488 --layout=left-symmetric \
      --raid-devices=8 /dev/mapper/sd{?,?,?,i,?,?}1 /dev/mapper/sd{k,l,n}

(ドライブの順序がわからないので、?正しいドライブ文字に置き換えて、構文{c,b,a}は順序を維持せずに順序を維持することに注意してください。[cba]疑わしい場合は、シェル拡張を使用する代わりに作成してください。)


既存のGPTパーティションテーブルが再び干渉しないようにするには、それを削除する必要がありますwipefs(フルディスクメンバーのみ)。これにより、ディスクの始まりと終わりからGPTが削除されるため、GPTを探してディスクの終わりにあるソフトウェアは、プロセスからメタデータを削除してディスクの先頭からGPTを復元する必要があると感じていません。

# wipefs --no-act --all --types gpt,PMBR /dev/loop0
/dev/loop0: 8 bytes were erased at offset 0x00000200 (gpt): 45 46 49 20 50 41 52 54
/dev/loop0: 8 bytes were erased at offset 0x7ffffe00 (gpt): 45 46 49 20 50 41 52 54
/dev/loop0: 2 bytes were erased at offset 0x000001fe (PMBR): 55 aa

--no-act実際に消去を実行するために削除されました。)

幸運...パーティションテーブルが唯一の問題であれば、成功する可能性が高くなります。他のデータも変更されると(パーティションが作成され、一部のコンテンツがフォーマットされている)、RAID自体でデータ破損が発生します。


添付:

$ sudo mdadm /dev/md1 --assemble --force /dev/sd[ijmop]1 /dev/sd[kln]
mdadm: /dev/sdi1 is busy - skipping

このメッセージ(Busy Skip)は、通常、mdデバイスが組み立てられたことを意味します(増分アセンブリ方法のためにアレイが不完全な場合に発生します)。

この場合、mdadm --stop非アクティブアレイにmdadm --assembleアクセスする前にそのアレイにアクセスする必要があります。 (以前にドライブが実際に欠落している場合は、増分アセンブリを続行してください。)

関連情報