我的服务器基础架构正在快速增长,我决定创build一个分布式存储集群。 我一直在寻找一个合适的文件系统来满足我的要求,但是它们都不支持本地磁盘cachingfunction。 我的每个服务器都有两个600GB SAS硬盘驱动器,我喜欢将它们用作caching存储器,以便从分布式存储中访问最常访问的文件。
任何开源文件系统是否支持这个function? 我喜欢使用Ceph或GlusterFS,但我没有发现任何有关本地磁盘caching的信息。 我认为这是分布式文件系统应该支持的基本function之一。
查看OpenAFS它有本地磁盘caching,请参阅: http : //docs.openafs.org/Reference/5/afs_cache.html
另一个竞争者是XtreemFS : function集包括
除了包含完整副本的完整副本之外,XtreemFS还支持部分副本。 当客户端访问数据时,这些副本按需填充。
根据其他地方的评论 – 尽pipe以VFScaching为代价,但仍可以使用本地磁盘存储来cachinggluster I / O,AFS似乎是合适的。 但是,从你的问题的大的遗漏是你是否试图实现容错或性能,复制存储是否应支持事务或频繁写入。
其他选项包括
OpenAFS确实有一个本地文件caching,但NFSv4也有相应的configuration。
http://www.cyberciti.biz/faq/centos-redhat-install-configure-cachefilesd-for-nfs/
但是,除非您的文件访问大部分是只读的,否则caching可能会比您预期的要less得多。 在许多客户端尝试写入相同服务器的情况下,实际上可能会降低性能。
IPFS值得研究,尽pipe它还比较年轻,性能还不及Ceph或GlusterFS。
我推荐它,因为devise正是你所需要的一个有效的本地caching。 所有的内容(包括目录结构)都是不可改变的,并且通过encryption可validation的散列来解决。 这意味着内容可以从任何地方获取 – 在内存中,在磁盘上,甚至是不受信任的对等体。 另外,你可以免费获得重复数据删除。
当通过散列查找文件时,不需要联系远程服务器来获取更新,也不需要为释放磁盘空间以外的任何事情处理caching失效。 IPNS可以使用不同的地址,但这些地址只是指向文件散列的指针,这意味着只需要一个请求就可以find更新的文件树。
它看起来像gluster执行本地文件caching。 一些可调值是
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