web-dev-qa-db-ja.com

ローカルディスクキャッシュを備えた分散ファイルシステム

私のサーバーインフラストラクチャは急速に成長しており、分散ストレージクラスターを作成することにしました。私は自分の要件を満たすこのタスクに適したファイルシステムを探していましたが、ローカルディスクキャッシュ機能をサポートしているものはありません。各サーバーには2つの600GB SASハードドライブがあり、分散ストレージから最も頻繁にアクセスされるファイルのキャッシュストレージとして使用します。

この機能をサポートしているオープンソースファイルシステムはありますか? CephまたはGlusterFSを使用するのが好きですが、ローカルディスクキャッシュについて何も見つかりませんでした。これは、分散ファイルシステムがサポートする必要のある基本機能の1つだと思います。

5
Galmi

チェックアウト OpenAFS ローカルディスクキャッシュがあります。以下を参照してください: http://docs.openafs.org/Reference/5/afs_cache.html

7
Stone

別の候補は XtreemFS です: 機能セット には

XtreemFSは、完全なコピーを含む完全なレプリカに加えて、部分的なレプリカもサポートしています。これらのレプリカは、クライアントがデータにアクセスするときにオンデマンドで入力されます。

5
Andrew

他の場所でのコメントによると、VFSキャッシュを犠牲にしても、gluster I/Oのキャッシュにローカルディスクストレージを使用することは可能ですが、AFSは適切であるようです。ただし、質問の大きな欠落は、フォールトトレランスまたはパフォーマンスを実現しようとしているのかどうか、およびレプリケートされたストレージがトランザクションまたは頻繁な書き込みをサポートする必要があるのか​​どうかです。

その他のオプションは次のとおりです

  • 複製するnosqlデータベースを使用する
  • bcache(パフォーマンスは向上しますが、回復力は向上せず、頻繁な書き込み/キャッシュの一貫性に関する問題が発生します)
  • NAS/SAN
2
symcbean

[〜#〜] ipfs [〜#〜] はまだ比較的新しく、パフォーマンスはまだCephまたはGlusterFSと同等ではありませんが、検討する価値があります。

デザインはまさに効率的なローカルキャッシュに必要なものなので、私はそれをお勧めします。すべてのコンテンツ(ディレクトリ構造を含む)は不変であり、暗号で検証可能なハッシュによってアドレス指定されます。つまり、メモリ、ディスク、信頼されていないピアなど、どこからでもコンテンツを取得できます。さらに、重複排除は無料で利用できます。

ハッシュでファイルを検索する場合、更新を知るためにリモートサーバーに接続する必要はなく、ディスク領域を解放する以外の目的でキャッシュの無効化を処理する必要もありません。 IPNSでは可変アドレスを使用できますが、これらはファイルハッシュへのポインタにすぎません。つまり、更新されたファイルツリーを見つけるために必要なリクエストは1つだけです。

1
slang

OpenAFSにはローカルファイルキャッシュがありますが、適切な構成のNFSv4にもあります。

http://www.cyberciti.biz/faq/centos-redhat-install-configure-cachefilesd-for-nfs/

ただし、ファイルアクセスの大部分が読み取り専用でない限り、キャッシュを使用すると、予想よりもはるかにパフォーマンスが低下する可能性があります。多くのクライアントが同じサーバーに書き込もうとする状況では、実際にパフォーマンスが低下する可能性があります。

1
Matt

MooseFS 分散ファイルシステムを試すことができます。 MooseFSマスターマシンでは、ファイルシステム構造全体がRAMにキャッシュされ、速度が向上します。

1
TechGeek

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 
0
sciurus