Ceph RGW + lvs vip导致集群通信问题处理

1. 问题描述
服务 IP
LVS VIP 172.26.2.6016
rgw 所在osd服务器ip 172.26.2.5216
CEPH public network 172.26.0.0/16
CEPH cluster network 172.30.0.0/16

在lvs + rgw的实践中,rgw 部署在ceph osd 服务器中,lvs 配置过程中需要在RealServer lo接口上设置 VIP,因为VIP 跟public network 是同个网段,也就是说ceph 服务器有两个 172.26.0.0/16网段的IP,一个在lo:0 , 一个在eth0,在通讯的时候,ceph 所有的进程都会使用vip去跟其他服务器的osd通讯,但是因为这是个环回接口,根本无法进行通讯,导致所有的进程都无法通讯。

2.解决

可以肯定的是,这个vip的使用是ceph决定的,可能的获取逻辑是,符合public network 的第一个IP,因为vip是第一个所以就拿vip来通讯了。

# netstat -anp | grep "172.26.2.60"
tcp        0      0 172.26.2.60:45752       172.26.2.60:6822        ESTABLISHED 990602/ceph-osd
tcp        0      0 172.26.2.60:21585       172.26.2.60:6821        ESTABLISHED 990602/ceph-osd
tcp        0      0 172.26.2.60:58544       172.26.2.60:6813        ESTABLISHED 990627/ceph-osd
参考文档