出于测试目的,我安装了四个 GlusterFS 节点并创建了一个复制数为 4 的复制卷。
两个 Gluster 节点位于 DC A 中,而其他 Gluster 节点位于 DC B 中。
现在让我们假设四个 Gluster 节点具有以下主机名:
- gluster01 - 位于 DC A
- gluster02 - 位于 DC A
- gluster03 - 位于 DC B
- gluster04 - 位于 DC B
在我的测试场景中,我将一个文件写入位于 DC A 中的 gluster01。现在,DC B 中的其他 Gluster 节点从 gluster01 复制有多聪明?DC B 中的两个 Gluster 节点会从 gluster01 复制还是仅 DC B 中的一个 Gluster 节点复制而 DC B 中的第二个节点从 DC B 中的另一个节点复制?
我问这个问题的原因是我想避免我的 DC 之间不必要的复制流量。
我在 Gluster 官方文档中找到了一些提示;但是,我发现的东西并没有为我解决问题。
gluster 客户端同时向所有 AFR 副本服务器发出写入。(http://blog.gluster.org/2010/06/video-how-gluster-automatic-file-replication-works/)。redhat 的这个家伙写了一些他称之为“新样式复制”的东西,它实现了你想发生的事情,但这并没有在 glusterfs git repo 中实现。虽然 NSR 很有趣,但与此答案相关的部分是他对 AFR 现在所做的事情的讨论。
节省两个站点之间带宽的最简单方法是使用异地复制,但这在您的应用程序中可能没有用(例如,您需要多主机设置)。