Binding glusterfs地理复制-具有两个接口的服务器-专用IP

Binding glusterfs地理复制-具有两个接口的服务器-专用IP,binding,glusterfs,geo-replication,Binding,Glusterfs,Geo Replication,我一直在尝试使用glusterfs服务器设置地理复制。在我的测试环境中,在我的登台环境中,一切都按预期工作,但后来我尝试了生产,结果卡住了 假设我有 gluster fs服务器位于公共ip 1.1.1.1上 gluster fs slave位于公共2.2.2.2上,但此IP位于接口eth1上 gluster fs从属服务器上的eth0为192.168.0.1 因此,当我在1.1.1.1上启动命令时(防火墙和ssh密钥设置正确) 我犯了一个错误 无法获取从属卷详细信息。请检查从属群集和从属卷。 地

我一直在尝试使用glusterfs服务器设置地理复制。在我的测试环境中,在我的登台环境中,一切都按预期工作,但后来我尝试了生产,结果卡住了

假设我有

gluster fs服务器位于公共ip 1.1.1.1上

gluster fs slave位于公共2.2.2.2上,但此IP位于接口eth1上 gluster fs从属服务器上的eth0为192.168.0.1

因此,当我在1.1.1.1上启动命令时(防火墙和ssh密钥设置正确)

我犯了一个错误

无法获取从属卷详细信息。请检查从属群集和从属卷。 地理复制命令失败

在这种情况下,错误并不重要,问题在于从属IP地址

2015-03-16T11:41:08.101229+00:00 xxx kernel: TCP LOGDROP: IN= OUT=eth0 SRC=1.1.1.1 DST=192.168.0.1 LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=24243 DF PROTO=TCP SPT=1015 DPT=24007 WINDOW=14600 RES=0x00 SYN URGP=0 
正如您在上面的防火墙删除日志中所看到的,从gluster守护程序的端口24007在从服务器上接口eth0的私有IP上公布,并且应该是eth1私有IP的IP。因此,主机无法连接,将超时

有没有办法强制gluster服务器公布接口eth1或仅绑定到它

我使用cfengine和ansible来推送配置,所以绑定到接口可能是比IP更好的解决方案,但任何解决方案都可以


提前谢谢。

GlusterFS没有网络层的概念。检查你的路线。如果地理复制从机的下一个跃点位于eth1上,那么gluster将在该接口上为从机IP地址打开一个端口


另外,请确保您的防火墙已配置为转发此端口上的地理复制流量。

我遇到了此问题,但情况不同。 我试图对两个节点进行地理复制,这两个节点都位于NAT(不同地区的AWS实例)后面

当主机通过公共IP连接到从机以检查卷兼容性/大小和其他详细信息时,它会检索从机的主机名,该主机名通常解析为仅在该远程区域有意义的内容

然后,当稍后设置会话时,它使用该主机名拨回从机,会话失败,因为该主机名解析为不同区域中的私有IP

我的解决方法是在创建卷、探测对等方和建立地理复制时使用主机名,然后添加/etc/hosts条目映射从属主机名,该主机名通常解析为其私有IP到其公共IP,而不是其私有IP

这会让你建立一个会话,但我没有任何运气让它真正同步,因为它在很长的一段时间内使用了错误的IP

编辑:

实际上,我已经通过在两侧添加/etc/hosts hack来运行它

2015-03-16T11:41:08.101229+00:00 xxx kernel: TCP LOGDROP: IN= OUT=eth0 SRC=1.1.1.1 DST=192.168.0.1 LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=24243 DF PROTO=TCP SPT=1015 DPT=24007 WINDOW=14600 RES=0x00 SYN URGP=0