web-dev-qa-db-ja.com

ZFSプール上の複数のRAIDタイプ

ZFSのUbuntuWikiページを読む( https://wiki.ubuntu.com/ZFS )ZFSの主張されている機能のいくつかを見つけましたが、ドキュメントを見つけることができません。クレームが実際に可能である場合、私はそれらを行う方法を知りたいです

Ariにはディスクワークステーションが1つあります。彼女は新しいディスクを購入して接続します。ZFSは新しいディスクスペースをプールに自動的に追加します。彼女のホームディレクトリはミラーリングされ、OSと一時スペースはバックグラウンドで自動的にストライプ化されます。

ジャックには、サイズの異なる3つのディスクがあります。賢明なパーティションとRAIDセットアップの構成は、完全に試行錯誤です。 ZFSは、3つのディスクを1つのスペースプールに抽象化し、パフォーマンスとセキュリティの最適なバランスを提供します。ジャックは、一部のメディアディレクトリはフォールトトレラントである必要はないと宣言し、ZFSはそれらをすべてのディスクに透過的にストライプ化します。

これらの引用は両方とも、フォールトトレラント領域と高性能領域をすべて1つのプールに混在させることが可能であることを示しているようです。私が読んだすべての文書からこれは不可能です...他の誰かがこれを行う方法を知っていますか?

2
chew socks

これらの段落は誤解を招き、誤った情報を与えられています。

Ariにはディスクワークステーションが1つあります。彼女は新しいディスクを購入して接続します。ZFSは新しいディスクスペースをプールに自動的に追加します。

ZFSは、新しく挿入されたディスクをプールに自動的に追加しません。 zpoolコマンドを実行して、ディスクの使用方法を指定する必要があります。

彼女のホームディレクトリはミラーリングされています

アリが要求したが文の残りを与えられた場合にのみミラーリングがありますが、そうではありません。

彼女のOSと一時スペースはバックグラウンドで自動的にストライプ化されます。

ミラーリングが選択されている場合、ストライピングはありません。ストライピングが選択されている場合、ミラーリングはできません。後者の場合、ZFSでは「バックグラウンドでのストライピング」や「構成後のストライピング」はありません。ストライピングは書き込み時に1回行われます。

ジャックには、サイズの異なる3つのディスクがあります。賢明なパーティションとRAIDセットアップの構成は、完全に試行錯誤です。

たぶん、しかし従来のボリューム管理よりも簡単です。

ZFSは、3つのディスクを1つのスペースプールに抽象化し、パフォーマンスとセキュリティの最適なバランスを提供します。

トリプルミラーリングは、ここで最高の読み取りパフォーマンスと最高のセキュリティの両方を提供します。

ジャックは、一部のメディアディレクトリはフォールトトレラントである必要はないと宣言し、ZFSはそれらをすべてのディスクに透過的にストライプ化します。

ディレクトリにプロパティを設定することはできません。データセット(ファイルシステムなど)とプールを使用して設定します。ただし、複数のファイルシステムの作成は、ZFSを使用した軽量の操作です。

要約する:

ミラーリングされたファイルシステムとストライプ化されたファイルシステムを単一のプールに含めることはできません。プールに属するすべてのデータセットは、同じ基盤となるプールRAID構成を共有します。

同上ブロックを想定する(例:zfs set copies=2 dataset)はフォールトトレランスを提供するために使用されるものであり、ZFSは最善を尽くしますが、すべてのブロックペアが最終的に異なるディスクになるという100%の保証はありません。

すべてのdittoブロックが物理的に異なるディスクに配置されている場合でも、プールはディスク全体の障害に耐えられません(より正確には、はディスク全体の障害後の再起動に耐えられません)。 ZFSコピーは、限られたメディアエラー(Andreasの段落を参照)から保護しますが、ディスク全体が使用できなくなることはありません。 Ari構成を「ミラーリング」と呼ぶのは誤解を招く恐れがあります。

私はそのような構成をアドバイスすることは決してありません。 Dittoブロックは、ディスクが1つでも、部分的なメディア障害(不良ブロック)に対するある程度の保護が必要な場合、または非冗長プールで重複排除を使用する場合に優れた機能です。それ以外の場合は、期待値を高く設定しすぎないようにする必要があります。ミラーリングまたはraidzのいずれかが、複数のディスクプールを使用する方法です。

3つの異なるサイズのディスクを使用したミラーリング、raidz、およびストライピングの組み合わせは、複数のパーティションベースのプールを作成することでZFSで実行できることに注意してください。たとえば、4TB、3TB、および2TBのディスクがあるとします。すべてのディスクを1TBパーティションに分割し、2 TB raidz with 1 + 1 + 1パーティション、3 TB Stripe with 1 + 1 + 1パーティション、1 TBミラーと1+ 1パーティション、1 TB単一デバイスプールと残りのパーティション。このような優れたパフォーマンスは期待しないでください。ただし、混合レイドセットアップを使用し、アプリケーションがさまざまなプールに同時にアクセスしないように努めます。

zpool configuration

3
jlliagre

ここで彼らがほのめかしているのは、すべてのディスクをプールに追加するだけの構成です(ディスクを制御する親のmirrorまたはraidzグループはありません)。

この構成では、ファイルが配置されるデバイスの数は、zfs setコマンドによって制御されるcopies属性によって決定されます。したがって、プール内の一部のデータ(ZFSファイルシステムによる)には、他のデータよりもフォールトトレランスが高く、混合サイズのデバイス間でフォールトトレランスが可能です。

4
Shane Madden