パフォーマンスに深刻な影響を与えずに予測できない将来のワークロードを管理するためにzfsファイルシステムを階層化するための良い方法は何ですか?

パフォーマンスに深刻な影響を与えずに予測できない将来のワークロードを管理するためにzfsファイルシステムを階層化するための良い方法は何ですか?

私はzfsツールの使い方を学ぶためにZFSを実験し、スパースファイルを仮想デバイスとして使用しました。

他のデバイスのJBODファイルシステムの上にスパースファイルを使用してRAIDプールを作成すると、パフォーマンスに大きな影響を与えないようです。

したがって、zfsファイルシステムを縮小することは不可能であるため、これが柔軟なシステムを前進させる良い方法であるかどうか疑問に思います。

たとえば、4つのディスクがあります。すべてのデバイスにはデバイスファイルシステムがあります。各ファイルシステムに1つずつ、つまりディスクに1つずつ4つのスパースファイルを作成しました。負荷はデバイス全体に分散され、冗長性も提供されます。

RAIDアレイがいっぱいになる前に、一時的な大容量ファイルなど、RAIDを必要としないエントリのディスク容量が残ります。

2種類のファイルシステムが同時に使用されている場合、パフォーマンスが大幅に低下すると予想されます。

このアプローチには他の利点と欠点がありますか?

答え1

1つの問題は、重複キャッシュを含む2つのネストされたファイルシステム層があることです。

または、作成したデータが更新または削除されない限り、ZFSの書き込み時にコピー属性は予想よりも速くすべてのファイルバックエンド領域を徐々に使用します。これにより、希薄性が低下し、シンプロビジョニングの目標が失われます。

答え2

最初からパフォーマンスの問題を予想しました。これは主に他のファイルシステムの上にあるZFSファイルシステムにファイルを書き込むためです。

各書き込みごとに必要なI / Oの2倍以上を実行します。一時的な大容量ファイルは除外されます。

それにもかかわらず、データを分割すると、異なるブロックサイズを持つさまざまなZFSデータセットを持つことができます。圧縮と重複排除に加えて、少し多くのCPUを消費します。しかし、他のFSの上に1つのFSを置くよりも優れています。

関連情報