mdadm raid10上のBtrfs、またはベアデバイス上のbtrfs raid10?


9

で管理されているRAID10があり、そのmdadm上にEXT4ファイルシステムがあります。しかし、私はBTRFSが好きで、EXT4ファイルシステムをBTRFSに変換したいのですが、パフォーマンスと保守性について考えていました。BTRFSの例では、mdadmでできるように、アレイから別のディスクを削除または追加したときに、ステータスを簡単に確認できません(または、おそらく方法がわからないだけです-BTRFSドキュメントを検索してこれを見つけることができませんでした) )。

だから、あなたの経験から、より良い選択は何ですか:

  1. 単にEXT4ファイルシステムを変換し、mdadmにRAID10を管理させるだけですか?

  2. mdadmを取り除き、BTRFSにすべてを実行させるには?

回答:


11

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最初に行うことができます。


3

BTRFSはまだ実験的なものであり、何かがクラッシュした場合に「興味深い」機能が得られる可能性があります。本当にbtrfsを実行する必要がある場合は、直接実行するよりも、ソフトウェアRAIDの上で実行する方がはるかに安全です。btrfsが成熟して本番環境に入ると、これはもう当てはまりません。


約1年前、VMでbtrfsセットアップを実験しました。rebalanceコマンドをいじることによって、カーネル(!)を一貫してロックすることができました。時間は進んでおり、うまくいけばこれは修正されました。
Avery Payne
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.