Btrfsにすべてを任せましょう。
1つには、Btrfsには独自の統合ミラーリングコードがあり、これはmadmよりも優れています。
もちろん、ディスクがmadm raid10のミラーリングされたペアでハードに障害を起こした場合は、不良ディスクを交換して、(シェルコマンドの厄介な複雑なセットの後ではありますが)生活を続けることができます。問題は、ディスクが少しソフトに故障した場合です。いくつかのブロックが不良ブロックに適切なエラーコードを返すのではなく、間違ったビットを返すだけの場合、データを読み取るときにランダムに不良データが取得されます。Btrfsはそれよりも賢く、データのすべてのビットをチェックサムします。正直に言うと、「BTreeノードごと」または「ブロックごと」と言ったほうが正しいかどうかはわかりませんが、ポイントは、ミラーリングされた配列からデータを読み取るときに、チェックサムをチェックしてから、ユーザーランドプロセス。チェックサムが一致しない場合は、最初にアレイ内の他のミラーを調べ、それが正しいチェックサムを与える場合、
Btrfs wikiはあなたの質問に特に言及しています:
BtrfsがミラーリングをデバイスマッパーまたはMDに依存する場合、ミラーリングされたコピーをチェックしてチェックサムエラーを解決することはできません。下位層は、ファイルシステムブロックのチェックサムまたは粒度を認識していないため、返されるデータを検証できません。
最後に、この実質的な利点がなくても、削除または追加されたBtrfsデバイスを処理するためのコマンドラインワークフローは非常にシンプルです。degraded-mount-then-fix-your-filesystemシェルコマンドを正しく取得できるかどうかさえわかりませんが、Btrfsの場合、複数デバイスのページに次のように明確に記載されています。
mount -o degraded /dev/sdb /mnt
btrfs device delete missing /mnt
この時点で、残りのディスクに十分なスペースがある場合は、いつでもそれで十分btrfs rebalance
です。madmで絶対に行う必要があるように、ミラーを交換する必要はありません!そして、それを交換したい場合は、btrfs device add
最初に行うことができます。