私の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つのディスクにメタデータを上書きしました。失われたメタデータを回復することは通常不可能です。たとえば、parted
sはmklabel gpt
mdadm 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
アクセスする前にそのアレイにアクセスする必要があります。 (以前にドライブが実際に欠落している場合は、増分アセンブリを続行してください。)