昨日はサーバーメンテナンスを少ししたかったです。電源ボタンを1回押してオフにすると、毎回完璧に動作します。
10分後もサーバーの電源が切れていたため、1日1回電源ボタンを使用してサーバーを強制的にオフにします。 (強制終了前にSSH接続を試みましたが、SSHサービスが停止しました。)
メンテナンスを完了し、サーバーを再起動した後、2TBディスク7台で構成された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
使用されるハードドライブは最高ではありませんが、動作します。から までのsda
すべてのドライブのスマート出力sdg
hastebin.comでも利用可能です。
この事実のため二つ私のRAID5ディスクでエラーが発生し、すべてのデータが失われたとします。 ...
編集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
?
ここで無効な主張は何ですか?
どのようにさらにデバッグできますか?
答え1
警告:この答えは定義された症状に対する答えですが、実際の答えは私が提案したものとは異なります。
しかし、これが起こった可能性があります。問題は次のとおりです。
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進エディタを使用して問題を解決する必要があります。
dd
おそらく、他のディスクの1つから関連部分をコピーできます。そのバイトがどこにあるかを「ただ」調べます。
少し面白いのはそうです。
Checksum : 85f67f98 - correct
Checksum : 6a4fb921 - correct
Checksum : 92db2c10 - correct
Checksum : ad5c81b8 - correct
Checksum : a657023 - correct
Checksum : 6880d6c7 - correct
Checksum : c0c31cf - correct
したがって、メタデータを変更するとチェックサムが破損する可能性があります。これが実際の問題かどうかはわかりませんが、この時点で新しい質問をするのが合理的かもしれません。