我正在尝试在三个站点上配置复制存储 - 每个站点都有一个文件系统的完整副本,使用 GlusterFS 或 XtreemeFS。此副本必须可读 - 非常快 - 在每个站点本地,而无需访问任何远程节点(我们打算使用存储集群来存储大量第三方头文件和大型 C++ 项目的库)。必须可以从任何站点进行写入,但性能并不那么重要。同步写入是可以接受的。不幸的是,我似乎遇到了一个问题,即如何配置这些文件系统以选择站点本地的副本以实现高性能读取。我也研究过 DRBD,并创建了环形拓扑或双主复制,但拒绝了这个想法,因为它似乎太复杂了。我是软件工程师,不是 IT 人员,所以请原谅我在这方面的任何无知。我知道这是一个非常技术难题,并希望有一个好的解决方案来正确处理写入的锁定语义。对于 Gluster,我看不出有任何实际的方法来实现这一点。对于 XtreemeFS,我假设我可以分配一个“数据中心地图”,并使用存储策略 WqRq,但不幸的是,这似乎不起作用。似乎如果我有三个副本,我必须有三个副本可供任何尝试写入的服务器使用(对于 Gluster,似乎所有三个砖块也将同步写入,无论站点如何......)。我是否需要为 XtreemeFS 设置复制的元数据服务器,每个服务器都有不同的数据中心地图顺序(以优先考虑本地复制)来实现这一点?如何强制在每个站点上使用本地副本?安装似乎需要目录服务器的 URL,因此似乎没有任何简单的方法可以强制特定的副本选择顺序。是否有其他方法可以让我进行多主写入,并选择合适的本地副本,以获得良好的读取性能?
答案1
您需要的是一个真正昂贵的 SAN... 我们在上一份工作中使用了一堆 SSD 作为缓存,大多数时间都在访问它们。 并使用一堆 SATA 磁盘作为真正的存储... 我们用它来存储文件 + vdi + esxi 上的 200 个虚拟机。 所有这些存储都通过光纤通道传输到其他裸机。http://searchstorage.techtarget.com/tip/Clustering-in-a-SAN-environment-for-high-availability
答案2
无需访问远程站点即可实现主/主,同时仍需要数据完整性?
如果我理解正确的话,我很确定那是不可能的。
您可以设置主/从(无多主),或者可以使用多个池留出一些时间进行复制延迟(再次强调,访问远程站点不是主-主,并且在任何给定时间都无法保证整个池的状态)。同样,有许多解决方案可以满足您的用例,但没有一个能满足所有这些要求。
主/主文件系统无法直接连接到其他节点,这根本行不通。如果文件系统无法轻松与其存储通信,则无法拥有单一、一致的文件系统。