web-dev-qa-db-ja.com

btrfs:jbodとしてのデータとミラーリングされたメタデータを使用してbtrfsファイルシステムを作成できますか?

NAS /メディアサーバーおよびXBMCフロントエンドとなるサーバーを構築しようとしています。 NASの一部にbtrfsを使用してUbuntuを使用することを計画しています。現在のセットアップは、OSなどに1TBのhddとデータに2つの2TBのhddで構成されています。2TBのhddを使用する予定です。後で必要に応じてhddを追加できるJBODbtrfsシステムとして、基本的にファイルシステムをオンラインで拡張します。テスト用にファイルシステムをセットアップした方法は、OSのインストール中にHDDの1つを接続し、btrfsを/としてマウントすることでした。データ。後でこのファイルシステムに別のhddを追加します。2番目のディスクが追加されたときにRAID0として作成されたbtrfsで、メタデータはRAID 1です。ただし、これには問題があります。ディスクの1つに障害が発生しても、すべてのデータが失われます(また、ほとんどの場合、サーバーはディスクアクセスを行わずに実行されます。つまり、現在のRAID 0セットアップでアクセス要求が来ると、両方のディスクがスピンアップします。 JBODを管理するには、ファイルを含むディスクのみをスピンアップする必要があります。これにより、MTBFディスクごとに。だからメタデータがミラーリングされてもデータがJBODフォーメーションにとどまるようにbtrfsを設定する方法はありますか

私が持っているもう1つの質問は、これです。JBODでドライブ全体に障害が発生すると、ドライブ上のデータが失われることを理解していますが、メタデータがすべてのドライブにミラーリングされているため、ファイルシステムが忍び寄る可能性のあるエラー(ビット腐敗など)を修正するのに役立ちますか?これを行うことができるbtrfs。

1
Yogi

あなたの質問はここで最もよく答えられるように思われるでしょう:

https://serverfault.com/a/438181/89037

基本的に、はい、「単一の」データプロファイルでは、さまざまなサイズのディスクが許可され、JBOD方式でそれらが組み合わされます。メタデータを変更せず、RAID1のままにします。

2
bobpaul

Btrfswikiから

現在のステータス

Btrfsは、デバイスをオンラインで追加および削除できます。 mkfs時にデバイスを追加すると、使用するRAIDレベルを最大限に制御できます。

Btrfsはraid0、raid1、raid10を実行でき、単一のスピンドルでメタデータを複製できます。ブロックが読み込まれると、チェックサムが検証され、エラーがある場合、Btrfsは代替コピーからの読み込みを試みます。

RAID1スタイルのセットアップでサイズの異なる複数のボリュームでbtrfsを使用する場合の現在の問題については、Gotchasページを参照してください。

マルチデバイスFSの作成

mkfs.btrfsは、コマンドラインで複数のデバイスを受け入れます。データとメタデータのRAID構成を制御するオプションがあります。有効な選択肢は、raid0、raid1、raid10、およびsingleです。単一とは、メタデータの複製が行われないことを意味します。これは、ハードウェアRAIDを使用する場合に必要になることがあります。

したがって、データに対してJBODを実行することはできません(またはWikiが更新されておらず、Btrfsは大幅に開発中です)。

私はBtrfsがデータとメタデータをチェックサムするのが大好きです。サイレントデータの破損からあなたを救います(ファイルが破損していることを通知しますが、メタデータの破損を防ぐ必要があります)。それでも、私はまだ残しておきたいものでそれを信用しません。個人的には、3つのディスクとソフトウェアRAID 5を使用します。必要に応じて、後でアレイを拡張できます。ファイルシステムの場合、ext4やXFSなどのより成熟したものを選択します。

データの永続性よりもディスクのスピンアップに関心がある場合は、LVMを使用して両方のディスクから論理ボリュームを作成し、その上にBtrfsファイルシステムを作成できます。 LVMでは線形モードが可能であり、関連するドライブだけがスピンアップする場合としない場合があります(データとメタデータの両方が同じスピンドルにある場合)が、ドライブに障害が発生した場合はすべてのデータが失われます。

1
Paweł Brodacki

次のようなものを実行できます。

mkfs.btrfs -L data /dev/sdc /dev/sdd

btrfsを複数のディスクにまたがる。必ず正しいデバイス名を使用してください。このような設定では冗長性が失われ、データが安全ではないことに注意してください。

0
erimar77