私のサーバーインフラストラクチャは急速に成長しており、分散ストレージクラスターを作成することにしました。私は自分の要件を満たすこのタスクに適したファイルシステムを探していましたが、ローカルディスクキャッシュ機能をサポートしているものはありません。各サーバーには2つの600GB SASハードドライブがあり、分散ストレージから最も頻繁にアクセスされるファイルのキャッシュストレージとして使用します。
この機能をサポートしているオープンソースファイルシステムはありますか? CephまたはGlusterFSを使用するのが好きですが、ローカルディスクキャッシュについて何も見つかりませんでした。これは、分散ファイルシステムがサポートする必要のある基本機能の1つだと思います。
チェックアウト OpenAFS ローカルディスクキャッシュがあります。以下を参照してください: http://docs.openafs.org/Reference/5/afs_cache.html
他の場所でのコメントによると、VFSキャッシュを犠牲にしても、gluster I/Oのキャッシュにローカルディスクストレージを使用することは可能ですが、AFSは適切であるようです。ただし、質問の大きな欠落は、フォールトトレランスまたはパフォーマンスを実現しようとしているのかどうか、およびレプリケートされたストレージがトランザクションまたは頻繁な書き込みをサポートする必要があるのかどうかです。
その他のオプションは次のとおりです
[〜#〜] ipfs [〜#〜] はまだ比較的新しく、パフォーマンスはまだCephまたはGlusterFSと同等ではありませんが、検討する価値があります。
デザインはまさに効率的なローカルキャッシュに必要なものなので、私はそれをお勧めします。すべてのコンテンツ(ディレクトリ構造を含む)は不変であり、暗号で検証可能なハッシュによってアドレス指定されます。つまり、メモリ、ディスク、信頼されていないピアなど、どこからでもコンテンツを取得できます。さらに、重複排除は無料で利用できます。
ハッシュでファイルを検索する場合、更新を知るためにリモートサーバーに接続する必要はなく、ディスク領域を解放する以外の目的でキャッシュの無効化を処理する必要もありません。 IPNSでは可変アドレスを使用できますが、これらはファイルハッシュへのポインタにすぎません。つまり、更新されたファイルツリーを見つけるために必要なリクエストは1つだけです。
OpenAFSにはローカルファイルキャッシュがありますが、適切な構成のNFSv4にもあります。
http://www.cyberciti.biz/faq/centos-redhat-install-configure-cachefilesd-for-nfs/
ただし、ファイルアクセスの大部分が読み取り専用でない限り、キャッシュを使用すると、予想よりもはるかにパフォーマンスが低下する可能性があります。多くのクライアントが同じサーバーに書き込もうとする状況では、実際にパフォーマンスが低下する可能性があります。
Flashcacheとcephはどうですか?
http://www.sebastien-han.fr/blog/2012/11/15/make-your-rbd-fly-with-flashcache/
MooseFS 分散ファイルシステムを試すことができます。 MooseFSマスターマシンでは、ファイルシステム構造全体がRAMにキャッシュされ、速度が向上します。
Glusterがローカルファイルキャッシュを実行しているようです。 調整可能な値 のいくつかは
Option Description Default Value Available Options
performance.cache-size Size of the read cache. 32 MB size in bytes
performance.cache-max-file-size Sets the maximum file size cached by the io-cache translator. Can use the normal size descriptors of KB,MB,GB,TB or PB (ie. 6GB). Maximum size uint64. 2 ^ 64 -1 bytes size in bytes
performance.cache-min-file-size Sets the minimum file size cached by the io-cache translator. Values same as "max" above. 0B size in bytes
performance.cache-refresh-timeout The cached data for a file will be retained till 'cache-refresh-timeout' seconds, after which data re-validation is performed. 1 sec 0 < cache-timeout < 61