停電/ランダム再起動後にmdadm RAID5の整合性を確認する方法

停電/ランダム再起動後にmdadm RAID5の整合性を確認する方法

だから私は現在ホームサーバーに接続されている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 mdSCRUBBING 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_max0-max

固定パリティが必要な場合は、純粋な情報を提供する代わりに固定パリティをcheck使用してください。repairただし、データが正しいこと、パリティが正しくないことを確認する必要があります。そうでなく、間違ったデータ(データまたはパリティ)を含む単一のディスクを識別できる場合は、そのディスクを削除して新しいディスクとして追加して再構築する必要があります。

残念ながら、矛盾を処理するための正しい処置プロセスを決定することは非常に複雑な場合があります。

おすすめ記事