假设有一台有100台机器(每台机器都有2TB硬盘),都连接在一个networking中。
有没有一种方法(在Linux中)将这个组合的200TB磁盘空间合并到一个文件夹中,可以在networking中的所有机器上使用NFS共享?
走这条路,所有的机器都可以读/写同一个文件夹,这样I / O就会在它们之间均匀分布。 如果需要一个大文件系统来存储100个数据TB,这是一个好主意吗? (注意:数据将被分割成许多较小的文件,每个文件大小〜500GB)。
有没有一个现成的解决scheme(prefereable,一个开放源码的),实现这一目标?
想到两个选项是GlusterFS和Hadoop HDFS 。
IBM的GPFS可以做到这一点(注意:不是开源的)。
使用GPFS,您可以创build由任何types的块存储(本地或通过iSCSI或FC呈现)组成的networking共享磁盘(NSD)。 完全可以创build一个GPFS文件系统(设备),该文件系统由NSD组成,跨越100台服务器,跨越每个2TB硬盘。
我不会假装回想起所有疯狂的营销数字,但GPFS是超级计算机最受欢迎的集群文件系统之一,因为它支持极大量的数据和极高的并行I / O。 维基百科有一些数字。
GPFS可以跨文件系统复制数据和元数据块。 在创buildNSD时,您需要定义一个“故障组”,这样GPFS才能在其他位置写入您的块副本(也就是说,您不希望在同一个故障组中同时包含两个副本)。 您还可以使用他们的“存储池”概念对存储进行分层,通过这个概念您可以定义像上周在我的Fusion IO或SSD驱动器上访问的文件,但之后会将块移到更便宜的存储中。
群集中的所有节点都可以访问设备(如/ dev / gpfs0),因为整个文件系统对于每个节点都是本地的,所以可以挂载和访问该设备。 你提到NFS; 但是在这个模型中,没有必要引入额外的协议,除非你有100个节点集群之外的系统充当数据的消费者/客户端,而你不希望使它们成为GPFS客户端/ NSD服务器(通过加载GPFS内核模块)。 但是,您可以通过NFS简单地导出GPFS文件系统,并在必要时使用群集NFS(CNFS)。
我还没有机会玩它,所以我不能全面审查,但我可以看看OpenStack云的东西 – > http://www.openstack.org/projects/storage/
你可能想要像PVFS的东西。
维基百科上有一个完整的列表 。
Ceph是另一个,但尚未准备好。 http://ceph.newdream.net/wiki/Main_Page