RAMディスクの使用を回避するようにZFSを構成することは可能ですか?
次のシナリオでは:
ディスクIOはほとんどありません。ディスクIOは、空きRAMがなくなった場合、またはキャッシュが明示的にフラッシュされた場合(再起動/シャットダウン前)、またはキャッシュ内のデータが十分に古い場合(数時間)に発生するはずです-キャッシュが時々フラッシュされますが、あまり頻繁ではありません(1時間に1回は問題ありません)。データの整合性よりもパフォーマンスの方が重要です。
そのためにramdiskを使用することもできますが、そのようにzfsを構成できればはるかに便利です。
RAMdiskを使用する方が良いでしょう。それを維持するには少し余分な労力が必要ですが、これを行うために必要なだけZFSと戦うには、おそらくもっと時間がかかります。
これは基本的に、ZFSが機能したい方法とは完全に反対です。 ZFSは、データを安全に保つためにできる限りのことを行い、その後、データを高速化します。
ZFSでこれを本当に実行したい場合、それは本当に危険であり、実際に機能するかどうかはわかりません。これを処理するには、完全に別個のZpoolを作成する必要があり、実装後はおそらく非常に迅速に完全に機能しなくなります。基本的に、大量のダーティデータ(キャッシュにのみ存在する)を保持するようにZFSを構成する必要があり、そのデータの信頼性を維持したいというZFSの要望と戦うことになります。
めちゃくちゃ高いzfs_dirty_data_max制限を設定し、プール全体でzfs_delay_min_dirty_percentを100に設定する必要があります。 1トンのRAMをスローします。すべての書き込み操作と特定の時間に実行できる書き込みの量についてI/Oキューを大幅に調整します。
これらはすべて、基本的に、何が起こってもデータを安全に保つというZFSの要望を打ち破るでしょう。さらに、これらの制限に達してZFSが100 GBの小さな書き込みを多数行うのではなく、一度に100 GBのバッファーデータをディスクにコミットしようとすると、パフォーマンスが完全に低下する可能性があります。
本当に機能させたい場合は、ZoLの調整可能なパラメーター(Oracle/Solaris ZFSではなく使用していると想定しています)を確認してください。 http://fibrevillage.com/ storage/171-zfs-on-linux-performance-tuning