btrfs Generation_errsとは何ですか?

btrfs Generation_errsとは何ですか?

btrfsファイルシステムを数回スクラブしていくつかのエラーを見つけました。デバイスの状態を確認すると、Generation_errsがあることがわかります。

$ sudo btrfs device stats /dev/nvme0n1p5
[/dev/nvme0n1p5].write_io_errs   0
[/dev/nvme0n1p5].read_io_errs    0
[/dev/nvme0n1p5].flush_io_errs   0
[/dev/nvme0n1p5].corruption_errs 0
[/dev/nvme0n1p5].generation_errs 3

これらのGeneration_errsは何ですか?気になることはありますか?

FWIW、クリーンアップ後にカーネルログに見つかったエラーメッセージは次のとおりです。

5/22/16 12:00 AM BTRFS warning (device nvme0n1p5): checksum/header error at logical 343949312 on dev /dev/nvme0n1p5, sector 671776: metadata leaf (level 0) in tree 321435615232
5/22/16 12:00 AM BTRFS warning (device nvme0n1p5): checksum/header error at logical 343949312 on dev /dev/nvme0n1p5, sector 671776: metadata leaf (level 0) in tree 321376649216
5/22/16 12:00 AM BTRFS warning (device nvme0n1p5): checksum/header error at logical 343949312 on dev /dev/nvme0n1p5, sector 671776: metadata leaf (level 0) in tree 109330432
5/22/16 12:00 AM BTRFS warning (device nvme0n1p5): checksum/header error at logical 343949312 on dev /dev/nvme0n1p5, sector 671776: metadata leaf (level 0) in tree 109330432
5/22/16 12:00 AM BTRFS error (device nvme0n1p5): bdev /dev/nvme0n1p5 errs: wr 0, rd 0, flush 0, corrupt 0, gen 2
5/22/16 12:00 AM BTRFS error (device nvme0n1p5): unable to fixup (regular) error at logical 343949312 on dev /dev/nvme0n1p5

答え1

これBtrfs Wiki用語集これは何ですか?世代例:

  • 世代

    すべての取引ごとに内部カウンタが更新されます。メタデータブロックが記録されると(記録中にコピーを使用)、現在の世代がブロックに保存され、新しい(したがって一貫性がない可能性がある)ブロックを識別できます。

その他のアイテム話す

通常、コード名は一致する必要があります。矛盾は、クラッシュ後の書き込み損失(たとえば、ぶら下がっているブロック「ポインタ」、ソフトウェアエラー、ハードウェアエラー)、誤った書き込み(ブロックがその場所に書き込まれていない、ソフトウェアエラー、ハードウェアエラー)によって発生する可能性があります。

それは私に多くを教えてくれません。他の人が尋ねています。このメールスレッド

実際、過去の記事このスレッドでは、役に立つことが言及されました。 「生成エラー」は、「ブロックがまだ作成されていないことを示す表示」であり、基本的にWikiが何を言っているのかを反映しています。

したがって、この情報に基づいて、私たちはいくつかの結論を下すことができます。

  • ファイルシステムはbtrfs完全に文書化されておらず(ユーザー側)、そのツールの出力記述(wikiまたは説明する「現在、ほとんどの情報は人々の頭の中に存在します。」)

  • メタ情報をディスクに書き込むと、いくつかのエラーが発生し、これが問題を示す可能性があります。

btfsこの質問に答えることで、私はどの専門家が来て、「私は何をすべきですか?」という質問に対する正しい答えを与えることができることを願っています。

次の電話番号はbtrfsメーリングリストから尋ねることができます。ウィキペディアで言及(私があなたなら今すぐこの仕事をします。)

答え2

私は専門家ではありませんが、btrfs dev stats -c定期的な毎月の清掃の後に同様の報告を受けました。

4000 corruption_errs on sda
14 generation_errs on sdd

で述べたようにbtrfs出荷書類ビーチ

破損エラー ブロックチェックサムの不一致または破損したメタデータヘッダーが見つかりました。

エラー発生 生成されたブロックが予想値と一致しません(たとえば、親ノードに保存されます)。

私はraid 10を実行しているので、スクラブは誤ったヘッダーを別のコピーの通常のヘッダーに置き換えてこれらのチェックサムエラーを修正する必要があると思いましたが、スクラブはそうしません(または少なくとも自動的にエラーカウンターをリセットしません)。もしそうなら)実際に問題を解決します。

とにかく、代わりにバランスを実行してからディスクをスクラブすることにしました。これにより、破損したチェックサムが正常なチェックサムに変わり、エラーが消えました。

  • 残高が推奨されますか、それとも必須ですか?わかりません。
  • 破損エラーのある状態でバランスを実行すると、破損したヘッダーが別のディスクに伝播する可能性はありますか?わかりません。
  • 私の問題は解決しましたか?はい、YMMVです。

関連情報