ファイルシステムのオーバーヘッドを最小限に抑える方法

ファイルシステムのオーバーヘッドを最小限に抑える方法

本質的にキャッシュされたデータとして多くのスペースを使用するアプリケーションがあります。使用可能なキャッシュが多いほど、アプリケーションのパフォーマンスが向上します。私たちは何百から何千テラバイトについて話しています。ブロックが破損した場合、アプリケーションはすぐにデータを再生成できるため、私の主な目的は、ファイルシステムでキャッシュされたデータに使用できるサイズを最大化し、ファイルシステムのオーバーヘッドを最小限に抑えることです。

私はすべての信頼性と柔軟性、そして「多様性」要件を喜んで犠牲にします。最も重要なのは、アプリケーションが固定サイズのキャッシュファイルを書き込むため、特定のボリュームにキャッシュデータファイルがいくつあるかを正確に知ることができることです。場合によっては、ブロックが破損した場合は、ファイルを新しいファイルで上書きできるようにしたいと思います。珍しい周囲に予備のinodeがあり、必要に応じてボリューム全体を再フォーマットできます。これらのファイルは、ファイルシステムの1つのディレクトリの深さに保存されます。たとえば、ディレクトリ名は単一文字に制限される可能性があり、そのディレクトリも必要ありません。すべてのファイルは、ボリュームルートの最上位レベルにも保存できます。キャッシュされたデータが書き込まれると、ファイルは読み取り専用になり、ボリュームは読み取り専用としてマウントできます。キャッシュは次に有効です。長い時間(年)。

それでは、固定されたファイルサイズを正確に知っていて、信頼性、チェックサム、ロギングなどに問題がない場合は、どのファイルシステムを使用する必要がありますか。

ベストアンサー1

以前のファイルシステムでは、ポインタページのポインタを使用して各クラスタを参照していました。その後、32ビットポインタを使用すると、4KBあたりほぼ4バイトが「無駄」になります(0.1%)。多くの人がそれを余裕ができます。

最新のファイルシステムはスコープを使用するため、連続ブロックを持つファイルを割り当てると単一のスコープ(N到着)。これでオーバーヘッドはほとんどありません。私たちが知っているように、Ext4、Reiserfs、XFSはすべてスコープベースです。しかし、100,000TBの場合、ext4はあまりにも制限的です。 XFS制限は8エクサバイトです。しかし、非常に大きなRAID0を持つことは良い考えではないようです。たぶん、アプリケーションに複数のファイルシステムを処理させる必要があるかもしれません。

おすすめ記事