だから私は現在ホームサーバーに接続されているmdadm RAID5アレイを構築しています。ハードウェアは、Mediasonic Probox 4ベイケースに付属のOdroid N2 SBCです。アレイは現在再構築中であり、数日間進行しているが、進捗状況は安定している。私は以前の4.9.180カーネルでarmbianstretchを使用しています。
昨夜、私はシステム(ドライブを除く)作業中に別のUSBドライブにあるファイルに対してチェックサムを実行していました。現在、N2のUSBドライバには、高いI / Oアクティビティによって悪化する未解決のバグがあります。 N2はその後昨夜11時40分頃に死亡しました。
N2はほぼすぐに戻り、朝まで気づかなかった。ただし、mdadm配列の再構築は75%で一時停止されます。再構築を再開し、うまくいったが、新しいアレイに継続的な損傷を与えていないことを確認したかった。
パリティデータにエラーがないことを確認するために使用できるmdadmユーティリティはありますか?アレイにファイルシステムがないため、この場合fsckは使用できないようです。
答え1
(現在の再構築が完了した後)チェックを実行できます。
mdadm --wait /dev/mdX # wait for rebuild to finish
mdadm --action=check /dev/mdX
# or if mdadm is too old:
echo check > /sys/block/mdX/md/sync_action
それから見てくださいmismatch_cnt
。
watch cat /sys/block/mdX/md/mismatch_cnt
ゼロのままである限り、パリティは大丈夫です。
を見ることもできますman md
。SCRUBBING AND MISMATCHES
A count of mismatches is recorded in the sysfs file md/mismatch_cnt.
This is set to zero when a scrub starts and is incremented whenever a
sector is found that is a mismatch. md normally works in units much
larger than a single sector and when it finds a mismatch, it does not
determine exactly how many actual sectors were affected but simply adds
the number of sectors in the IO unit that was used. So a value of 128
could simply mean that a single 64KB check found an error (128 x
512bytes = 64KB).
このプロセスは再構築自体と同じくらい時間がかかります。基本的には再構築と同じことをするからです。進行状況を参照してください/proc/mdstat
。
75%しかチェックしない場合は、特定の領域のみをテストすることもできますが、コマンドオプションがないため、より複雑ですmdadm
。を設定して範囲を決定できますmd/sync_min
(デフォルトの範囲はデバイス全体に適用されます)。md/sync_max
0-max
固定パリティが必要な場合は、純粋な情報を提供する代わりに固定パリティをcheck
使用してください。repair
ただし、データが正しいこと、パリティが正しくないことを確認する必要があります。そうでなく、間違ったデータ(データまたはパリティ)を含む単一のディスクを識別できる場合は、そのディスクを削除して新しいディスクとして追加して再構築する必要があります。
残念ながら、矛盾を処理するための正しい処置プロセスを決定することは非常に複雑な場合があります。