私は完全に信頼していませんが、まだ使用したいハードドライブを持っています(バーストコインマイニング、ファイル内の不良ブロックを見つけた場合は数セントしか失われません)。
特定のブロックを不良として表示するようにbtrfsにどのように指示しますか(badblocks
出力で)。
ブロックを不良として事前に表示できない場合、そのbtrfs scrub
ブロックを使用するファイルを削除すると、後で識別された不良ブロックを防ぐことができますか?
答え1
残念ながらそうではありません。
btrfsは不良ブロックを追跡せず、btrfs scrub
次のファイルで同じ不良ブロックが発生するのを防ぎません。
このbtrfsメーリングリストの投稿ext4を使用することをお勧めしますmkfs.ext4 -c
(これは「不良ブロックリストを作成してからそのセクタを使用しないでください」)。推奨事項btrfs と RAID0 は mdadm 3.1 以降では動作しません。。
解決策は、既知の不良ブロックを除外するデバイスを構築することです。dmsetupによるBtrfs。
宣言されていません - まだパッチがありません - まだカーネルに含まれていません
現在、btrfsは記録されたデータが失われる可能性があるディスクブロックである不良ブロックを追跡しません。 Btrfsは、不良ブロック出力形式のリストを受け入れ、それを新しいbtree(または新しいフラグを使用して現在のスコープツリー)に保存し、ブロックに含まれるすべてのデータを再配置し、配布で使用できないようにブロックを保存する必要があります。未来。また、チェックサムエラーが見つかった場合は、不良ブロックをテストするためにスクラブを学習することもできます。これにより、スクラブがより便利になります。通常、チェックサムエラーはディスクによって引き起こされますが、スクラビングによって影響を受けたファイルを検出している間(バックアップの場合はそのファイルを再生成する機会を提供します)、不良ブロックを持つファイルは次回再利用されます。エラーが表示され始めます。これら2つの項目は、ext4機能(e2fsckを通じて使用されます)と一致します。
ステータスが変更されたらコメントを残していただければ回答を更新します。
答え2
これがこの制限を解決したい方法です。不完全な解決策。
- ログなしでファイルシステムでext4を作成する(不良ブロックとして表示)
- ext4の上にbtrfsファイルイメージを作成します。
- ループデバイスを使用してbtrfsイメージをマウントします。
わずかな追加のオーバーヘッドが予想されます。