永続的なZFSエラーは何を示していますか?


18

permanent errors今日、いくつかが私のzpoolで報告されました。

  pool: seagate3tb
 state: ONLINE
status: One or more devices has experienced an error resulting in data
        corruption.  Applications may be affected.
action: Restore the file in question if possible.  Otherwise restore the
        entire pool from backup.
   see: http://zfsonlinux.org/msg/ZFS-8000-8A
  scan: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        seagate3tb  ONLINE       0     0    28
          sda       ONLINE       0     0    56

errors: Permanent errors have been detected in the following files:

        /mnt/seagate3tb/Install.iso
        /mnt/seagate3tb/some-other-file1.txt
        /mnt/seagate3tb/some-other-file2.txt

編集:これらのCKSUM値が正確かどうかは確信しています。私はデータを編集していたので、誤ってそれらを破壊した可能性があります。残念ながら、私はメモで決定的な答えを見つけることができず、エラーは現在解決されているのでわかりませんが、他のすべては正確であり、zpoolが報告したものを反映しています。

/mnt/seagate3tb/Install.iso 永続的なエラーがあると報告されている1つのサンプルファイルです。

ここで私は混乱します。「永久エラー」Install.isoを別のファイルシステム上のまったく同じファイルのバックアップと比較すると、それらは同一に見えます。

shasum "/mnt/seagate3tb/Install.iso"
1ade72fe65902b2a978e5504aaebf9a3a08bc328  /mnt/seagate3tb/Install.iso
shasum "/mnt/backup/Install.iso"
1ade72fe65902b2a978e5504aaebf9a3a08bc328  /mnt/backup/Install.iso
cmp /mnt/seagate3tb/Install.iso /mnt/backup/Install.iso
diff /mnt/seagate3tb/Install.iso /mnt/backup/Install.iso

ファイル同一のようです。さらに、ファイルは完全に正常に機能します。アプリケーションで使用すると、期待どおりに動作します。

ドキュメントの状態として:

データ破損エラーは常に致命的です。

しかし、私の初歩的なファイル検証に基づいて、の定義を理解しているかどうかはわかりませんfatal

status:1つ以上のデバイスでエラーが発生し、データが破損しています。アプリケーションが影響を受ける可能性があります。

アクション:可能であれば、問題のファイルを復元します。それ以外の場合は、プール全体をバックアップから復元します。

たぶん何かが足りないかもしれませんが、ZFSからの推薦にもかかわらず、ファイルは私が知る限り完全に正常であり、復元を必要とせず、破損も表示しません。

同じエラーを含む他の記事を見たことがありますが、私の質問に対する答えはまだ見つかりません。

ファイルの永続的なエラーですか?ファイルに低レベルの問題はありますか?もしそうなら、なぜshasumファイルの違いとしてそれが検出されないのですか?

素人の観点からは、このファイルのエラーを示すものは何もありません。


スナップショットはありますか?
ewwhite

3
誰も言っていないので、ServerFaultに歓迎してもらえますか?これは私にとっては素晴らしい最初の質問のように見えますが、引き続き有益な答えが集められることを願っています。SFにこだわって、さらに貢献してください。
MadHatterは

ありがとう@MadHatter!どういたしまして、ありがとうございます。間違いなくSFにこだわるでしょう。SEコミュニティの簡単なリストに既に追加しています。
ウィル・ヘイリー

回答:


22

の言い回しzpool statusは少し誤解を招くです。(このコンテキストでの)永続エラーは、I / Oエラーが発生し、そのプールのSPA(ストレージプールアロケーター)エラーログに記録されたことを示します。これは、回復不能なデータ破損があることを必ずしも意味しませ

あなたがすべきことはzpool scrub、プールで実行することです。スクラブが完了すると、SPAエラーログがローテーションされ、スクラブ前のエラーは表示されなくなります。スクラブがエラーを検出しない場合、zpool status「永続的な」エラーは表示されなくなります。

ドキュメントに関しては、「致命的なエラー」のみがこの方法で記録されると言っています。致命的なエラーは、ZFSによって自動的に修正できなかったI / Oエラーであり、したがって、失敗したI / Oとしてアプリケーションに公開されました。対照的に、I / Oがすぐに正常に再試行された場合、または論理I / Oが冗長デバイスから満たされた場合、致命的なエラーとは見なされないため、データ破損エラーとして記録されません。

致命的なエラーは、必ずしも永続的なデータ損失を意味するわけではなく、アプリケーションに伝播する前に修正できなかったことを意味します。たとえば、ケーブルの緩みやコントローラの不良は、ZFSが「永続的」と表現する一時的な致命的なエラーを引き起こす可能性があります。それが本当に問題であるかどうかは、I / Oの性質と、アプリケーションがI / Oエラーから回復できるかどうかによって異なります。

編集:できるだけ早く冗長性に投資する必要があるという@bahamatに完全に同意します。


これを「永続的」として報告するSPAエラーログは、実際には少し誤解を招くように見えます。zpool scrubあなたはトム・ショー@提案を正確に何をした、とあなたの説明は完璧な理にかなっています。スクラブ後、このアレイに「永続的なエラー」は表示されなくなりました。失敗した読み取りのコンテキストで致命的なエラーについて考えていませんでした。あなたが提案したように、それは一時的なI / Oエラーだったに違いないと思います。また、冗長性の必要性にも完全に同意します。
ウィル・ヘイリー

トム、しばらく会ってないよ。お帰りなさい。
ワビット16

7

永続的なエラーは、ファイルにチェックサムエラーがあり、修復するのに十分なレプリカがなかったことを意味します。これは、I / Oエラーにより、少なくとも1回の読み取りで破損したデータが返されたことを意味します。読み取りを受け取ったものが同じディスクファイルに書き戻した場合、回復不可能なデータ破損が発生します。

プール構成を見ると、冗長性がないように見えます。これは非常に危険です。あなたはZFSの自己修復の利益のいずれかを得ることはありませんが、しますデータの破損があったとき、あなたを伝えることができます。通常、ZFSは破損した読み取りを自動的かつサイレントに修正しますが、場合によってはできません。またzpool clearCKSUMカウントは0両方のドライブのためであるため、すでに実行しているように見えます。

残念ながら、レプリカがないため、知る方法はありません。


2
zpool clearエラーカウントだけでなく、エラーメッセージ自体もクリアしませんか?メッセージが持続するのは奇妙ですが、エラーは表示されません。
user121391

2
謝罪いたします。私はプライバシーのために永続的なエラーのリストからファイルを省略していました。その出力を編集する際に、CKSUMのカウントを破壊し、貴重なコンテキストを失いました。現実を反映するように質問を編集しました。@ user121391
ウィル・ヘイリー

その場合、表示する数値が正しい場合は、どこかにハードウェアエラーがある可能性があります。両方のディスクが示すCKSUM countsように、それはコントローラー、ケーブル、または2つのディスク間の共有ハードウェアである可能性があります。両方のディスクに障害が発生している可能性もあります。いずれにせよ、これはできるだけ早く冗長性を追加し、示されたファイルの破損を検査する必要性を強調します。
バハマ

OPには冗長性がないようです。vdevには56個のCKSUMエラーがあり、プールには28個のCKSUMエラーがあります。したがって、前のコメントで「両方のディスク」が何を参照していたのかわかりません。冗長性の価値に関するあなたの意見に同意します。
からCVn

あなたが正しい。別のディスクであるかのようにプール名を読み違えました。それを指摘してくれてありがとう。
バハマ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.