在Linux群集中跨机器共享大型数据文件

假设我有一个从“主”linux系统的本地安装的hdd文件系统读/写的1TB数据文件到在同一“主”系统上运行的进程的虚拟地址空间。

我有20个专用的“奴隶”linux服务器通过一个千兆交换机连接到“主”系统。 我想通过在这些“从属”服务器上随机读访问这个1TB,把它只读地写入它们的进程地址空间。

我的问题是什么是从主系统到从系统同步数据集的最有效方式(可能是懒惰的)? (例如,是否可以通过NFS挂载文件,然后从那里映射它?如果是的话,这是最好的解决scheme吗?如果不是,那么解决scheme是什么?)

最近我在工作中一直在玩这个想法(当然,这个文件大小要小得多)。 我相信NFS可以正常读取,但可能会遇到并发写入问题。 如果你只有一个“作家”,那么你的想法应该工作得很好。 如果数据文件是结构化的,我建议去分布式缓存的一些描述,并允许多个数据副本散布整个集群(为了冗余)。

最后,我们选择了SAN和集群文件系统解决方案(在我们的例子中是Symantec VCS,但是任何通用的集群文件系统都可以)。 我们这样做的原因是因为我们无法获得使用纯NFS所需的性能。 您选择的集群文件系统需要正确支持mmap和分布式缓存。