庞大的文件系统?

庞大的文件系统?

假设有 100 台机器(每台都有 2TB 硬盘),全部连接在网络中。

有没有办法(在 Linux 中)将这 200TB 的磁盘空间合并到一个文件夹中,以便网络中的所有机器可以使用 NFS 共享?

通过这种方式,所有机器都可以读取/写入同一个文件夹,这样 I/O 就会均匀分布在它们之间。如果需要大型文件系统来存储数百 TB 的数据,这是一个好主意吗?(注意:数据将被分割成许多较小的文件,每个文件大小约为 500GB)。

是否有一个现成的解决方案(最好是开源的)可以实现这一点?

答案1

我想到两个选择集群文件系统Hadoop HDFS

答案2

IBM 的通用文件系统可以做到这一点(注意:非开源)。

使用 GPFS,您可以创建由任何类型的块存储(例如本地或通过 iSCSI 或 FC 呈现)组成的网络共享磁盘 (NSD)。完全有可能创建一个由 NSD 组成的 GPFS 文件系统(设备),这些 NSD 横跨 100 台服务器的每个 2TB 硬盘。

我不会假装记住所有疯狂的营销数字,但 GPFS 是“500 强”列表中超级计算机最受欢迎的集群文件系统之一,因为它支持极大容量的数据和极高的并行 I/O。维基百科有一些数字。

GPFS 可以跨文件系统复制数据和元数据块。创建 NSD 时,您会定义一个“故障组”,这样做是为了让 GPFS 将您的块副本写入其他地方(也就是说,您不希望块的两个副本都位于同一个故障组中)。您还可以使用“存储池”概念对存储进行分层,通过该概念,您可以定义行为,例如...上周访问的文件在我的 Fusion IO 或 SSD 驱动器上实时存储,但之后将块移动到更便宜的存储中。

集群中的所有节点都可以访问设备(如 /dev/gpfs0),它们可以挂载和访问该设备,因为整个文件系统对于每个节点来说都是本地的。您提到了 NFS;但是,在此模型中,除非您有 100 个节点集群之外的系统充当数据的消费者/客户端,并且您不希望将它们变成 GPFS 客户端/NSD 服务器(通过加载 GPFS 内核模块),否则无需引入附加协议。但是,您可以通过 NFS 轻松导出 GPFS 文件系统,甚至在必要时利用 Clustered-NFS (CNFS)。

  • 我不是 IBM 的员工,但是我玩过一点 GPFS,并且我很喜欢它。

答案3

我还没有机会试用它,所以我不能给出完整的评论,但我想说的是看看 Openstack 云的东西 ->http://www.openstack.org/projects/storage/

答案4

有一个完整列表在维基百科上。

相关内容