web-dev-qa-db-ja.com

mdadmRAID5をアセンブルできません

昨日、サーバーのメンテナンスをしたいと思いました。電源ボタンを1回押すとシャットダウンしますが、毎回問題なく動作します。

サーバーが10分経ってもシャットダウンし続けた後、私は1日電話をかけ、電源ボタンを使用してサーバーを強制的にオフにしました。 (強制的にオフにする前にsshでアクセスしようとしましたが、sshサービスはすでに停止しています)。

メンテナンスを行ってサーバーを再起動した後、7x2TBディスクで構成されるRAID5が機能しなくなったことに気付きました。これは、5つのディスクと2つのディスクで構成される2つのRAIDに分割され、すべて(S)モード(スペア)で非アクティブになっています。

mdadm --assemble --scan --run -fを試しましたが、役に立ちませんでした。

mdadm: Merging with already-assembled /dev/md/128
mdadm: failed to add /dev/sdc1 to /dev/md/128: Invalid argument
mdadm: failed to add /dev/sde1 to /dev/md/128: Invalid argument
mdadm: failed to RUN_ARRAY /dev/md/128: Input/output error
mdadm: No arrays found in config file or automatically

それは物事を半分組み立てているようでした:

cat /proc/mdstat 
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md128 : inactive sda1[0] sdg1[6] sdf1[5] sdd1[7] sdb1[1]
      9766891962 blocks super 1.2

unused devices: <none>

また、mdadm --assemble --run /dev/md0 /dev/sd[abcdefg]1 --verboseを使用して手動で再組み立てしてみました。

mdadm: looking for devices for /dev/md0
mdadm: /dev/sda1 is identified as a member of /dev/md0, slot 0.
mdadm: /dev/sdb1 is identified as a member of /dev/md0, slot 1.
mdadm: /dev/sdc1 is identified as a member of /dev/md0, slot 2.
mdadm: /dev/sdd1 is identified as a member of /dev/md0, slot 4.
mdadm: /dev/sde1 is identified as a member of /dev/md0, slot 3.
mdadm: /dev/sdf1 is identified as a member of /dev/md0, slot 6.
mdadm: /dev/sdg1 is identified as a member of /dev/md0, slot 5.
mdadm: added /dev/sdb1 to /dev/md0 as 1
mdadm: failed to add /dev/sdc1 to /dev/md0: Invalid argument
mdadm: failed to add /dev/sde1 to /dev/md0: Invalid argument
mdadm: added /dev/sdd1 to /dev/md0 as 4
mdadm: added /dev/sdg1 to /dev/md0 as 5
mdadm: added /dev/sdf1 to /dev/md0 as 6
mdadm: added /dev/sda1 to /dev/md0 as 0
mdadm: failed to RUN_ARRAY /dev/md0: Input/output error

今、すべてのディスクを調べるとmdadm --examine /dev/sd[abcdefg]1はこの出力を持っています hastebin.comでそれを見てください これは私にはすべてがうまくいくように見えます。

これがlsblkを使用しているディスクです

NAME                      MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                         8:0    0   1,8T  0 disk 
└─sda1                      8:1    0   1,8T  0 part 
sdb                         8:16   0   1,8T  0 disk 
└─sdb1                      8:17   0   1,8T  0 part 
sdc                         8:32   0   1,8T  0 disk 
└─sdc1                      8:33   0   1,8T  0 part 
sdd                         8:48   0   1,8T  0 disk 
└─sdd1                      8:49   0   1,8T  0 part 
sde                         8:64   1   1,8T  0 disk 
└─sde1                      8:65   1   1,8T  0 part 
sdf                         8:80   1   1,8T  0 disk 
└─sdf1                      8:81   1   1,8T  0 part 
sdg                         8:96   1   1,8T  0 disk 
└─sdg1                      8:97   1   1,8T  0 part 

使用中のHDDは最高ではありませんが、機能します。 SMART sdaからsdgまでのすべてのドライブの出力 hastebin.comにもあります。

RAID5の2つのディスクでエラーが発生するため、すべてのデータがすでに失われていると思います。 .。

編集1:

dmesg -Tは以下を返します:

[Sa Okt  7 15:41:08 2017] md/raid:md128: device sda1 operational as raid disk 0
[Sa Okt  7 15:41:08 2017] md/raid:md128: device sdf1 operational as raid disk 6
[Sa Okt  7 15:41:08 2017] md/raid:md128: device sdb1 operational as raid disk 1
[Sa Okt  7 15:41:08 2017] md/raid:md128: device sdd1 operational as raid disk 4
[Sa Okt  7 15:41:08 2017] md/raid:md128: device sdg1 operational as raid disk 5
[Sa Okt  7 15:41:08 2017] md/raid:md128: not enough operational devices (2/7 failed)
[Sa Okt  7 15:41:08 2017] md/raid:md128: failed to run raid set.
[Sa Okt  7 15:41:08 2017] md: pers->run() failed ...
[Sa Okt  7 15:41:12 2017] md: md127 stopped.
[Sa Okt  7 15:41:15 2017] md: md128 stopped.
[Sa Okt  7 15:41:20 2017] md: md0 stopped.
[Sa Okt  7 15:41:20 2017] md: sdc1 does not have a valid v1.2 superblock, not importing!
[Sa Okt  7 15:41:20 2017] md: md_import_device returned -22
[Sa Okt  7 15:41:20 2017] md: sde1 does not have a valid v1.2 superblock, not importing!
[Sa Okt  7 15:41:20 2017] md: md_import_device returned -22

スーパーブロックを修復するにはどうすればよいですか?


私はここで何か間違ったことをしていますか?

なぜ私は得るのですか:

mdadm: failed to add [...] to [...]: Invalid argument

ここで無効な引数は何ですか?

これをさらにデバッグするにはどうすればよいですか?

3
Flatron

警告:この回答は決定的な症状に関するものですが、実際の回答は私が提案したものとは異なることが判明しました。

ただし、これが発生した可能性があります。問題はおそらくこれです。

Unused Space : before=262056 sectors, after=177 sectors
Unused Space : before=262056 sectors, after=177 sectors
Unused Space : before=262056 sectors, after=18446744073709289480 sectors
Unused Space : before=262056 sectors, after=177 sectors
Unused Space : before=262056 sectors, after=18446744073709289480 sectors
Unused Space : before=262056 sectors, after=177 sectors
Unused Space : before=262056 sectors, after=177 sectors

私はそれを修正する楽しい方法を提供することはできません。 sdc1のMDメタデータのバックアップを作成してから、ディスク上のフォーマットを確認し、16進エディターを使用してこれを修正する必要があります。

たぶん、他のディスクの1つからddを使用して関連する部分をコピーすることができます。あなたは「ただ」これらのバイトがどこにあるかを見つけなければなりません。

面白いのはこれです:

   Checksum : 85f67f98 - correct
   Checksum : 6a4fb921 - correct
   Checksum : 92db2c10 - correct
   Checksum : ad5c81b8 - correct
   Checksum : a657023 - correct
   Checksum : 6880d6c7 - correct
   Checksum : c0c31cf - correct

したがって、メタデータを修正するとチェックサムが破壊される可能性があります。それが本当の問題かどうかはわかりませんが、その時点で新しい質問をするのはおそらく理にかなっています。

1
Hauke Laging