我有一个在Ubuntu服务器(9.04)和Eucalyptus上运行的基本云。 Walrus(Eucalyptus的API兼容S3实现)通过云控制器存储文件。 但是其他4台服务器都有1TB的存储空间,而这个存储空间大部分是未使用的。 我正在寻找将所有存储集中在一起的方法,以便利用所有可用的资源。 我一直喜欢各种选项,包括PVFS,Lustre,HDFS(Hadoop)。
我唯一需要的是它需要可扩展性,它在Ubuntu上运行良好。 我希望能听到任何有这方面技术经验的人,我期待听到您的build议。
虽然我没有在我们的系统中的任何地方亲自实现过,但我已经在Gluster上进行了相当广泛的研究。 我知道一些使用这个网站的大型网站的人,它显然工作得很好。 他们将其用于一些重型HPC应用的生产。
你有没有看过mogileFS? http://danga.com/mogilefs/
这不是传统意义上的文件系统,而是在整个群集中分配文件数据(考虑到复制和冗余)。
如果您正在为Web应用程序提供文件,则需要提供某些文件。 我会build议一个PHP脚本,它使用HTTP请求作为search关键字,用于在mogile FS中查找所需的文件。 然后,您可以将文件的内容读入缓冲区并回显/打印出来。
MogileFS已经很快了,但是你可以将mogileFS和memcache结合起来,以加速对最常用文件的访问。
有了Lustre,你必须在服务器上有一个特殊的内核,而且我只有服务器是服务器,而不是别的。
奇怪的是,最理智的答案就是NFS。 我们在亚马逊的云上使用了NFS。 它可能不能像一些文件系统一样扩展,但简单性不应忽视。 单个名称空间可能不值得花费在实现上。
你还在研究HDFS吗? 其中一位Cloudera家伙今年在VelocityConf上发表了一个关于Hadoop的演讲,HDFS着重于pipe理大数据集群,所以他谈论了HDFS。 幻灯片是相当丰富的。 我没有亲自使用过HDFS,但是我和Velocity的一些随机人员讨论了在Ubuntu上使用它进行各种数据分析。
将某种共享文件系统置于虚拟化环境之后是非常普遍的。 你有很多select,取决于你想要完成什么。
最简单的解决scheme可能是NFS,因为无论您正在运行的是什么发行版本,它都会得到本地支持。 NFS可以很好地执行虚拟化后端文件系统,尽pipe这不会是最快速的事情。
如果您正在运行RedHat(或衍生)集群,那么您将拥有对Red Hat集群文件系统GFS2的开箱即用支持。 这不会扩展到数百个节点,但是对于较小的群集来说也没有问题。
除此之外,你开始进入Lustre,Glusterfs,GPFS等等的范围。 这些都是高性能的并行文件系统,但是这里需要比其他选项更多的工作来设置。 如果你有一个很大的环境,他们可能值得一看。
我同意@larsks在NFS是最好的select; 设置一些iSCSI目标,NFS,完成。 这将扩大到约5-10个节点; 基于I / O,networking能力等的YMMV(或者,设置支持多pathI / O的iSCSI)。
如果你需要20多个节点,你可能需要调查Ceph 。 Lustre是有希望和稳定的,但是(F / OSS)Oracle产品,我个人不喜欢甲骨文。 🙂
Ceph也相当活跃; 最近的发布是5天前。
GlusterFS对我来说似乎是理想的解决scheme。 对于声称Gluster需要付出很大努力的人来说,我必须说他可能从来没有尝试过。 从Gluster 3.2开始,configuration实用程序非常棒,需要2或3个命令才能在networking上获得一个gluster的音量和共享。 安装gluster卷同样简单。
另一方面,它也给了你比NFS更多的灵活性。 它做条带,复制,地理复制,当然是POSIX兼容等等。 有一个名为HekaFS的扩展,它也增加了SSL和更高级的authentication机制,这对于云计算来说可能是有趣的。 它也秤! 这是F / OSS,由最近刚购买Gluster的RedHat开发。
XtreemFS可以成为你的解决scheme。 安装和configuration相当简单,也有Ubuntu的软件包。
不知道你在做什么,但这听起来像是一个可能有趣的CouchDB应用程序。
你可以试试PVFS2 。 比Lustre更容易设置,一般比Gluster更快。