问题
- 1.lvs宕机,单点故障;
- 2.RS服务下线,部分用户请求异常,lvs存有RS负载信息。
解决方案
- lvs一台服务器,增加为多台,主备模式;由master发送通告消息(VRRP),backup监听消息;当master不可用,多台backup中优先级高的会抢占,抢占效率非常快,以保证服务的可用性。
- 向服务器发送请求,返回值200,服务可用。
Master路由器状态的通告
Master路由器周期性地发送VRRP报文,在虚拟路由器中公布其配置信息(优先级等)和工作状况。Backup路由器通过接收到VRRP报文的情况来判断Master路由器是否工作正常。
- Master路由器主动放弃Master地位(如Master路由器退出虚拟路由器)时,会发送优先级为0的VRRP报文,致使Backup路由器快速切换变成Master路由器。这个切换的时间称为Skew time,计算方式为:(256-Backup路由器的优先级)/256,单位为秒。
- 当Master路由器发生网络故障而不能发送VRRP报文的时候,Backup路由器并不能立即知道其工作状况。Backup路由器等待一段时间之后,如果还没有接收到VRRP报文,那么会认为Master路由器无法正常工作,而把自己升级为Master路由器,周期性发送VRRP报文。
- 当多个Backup路由器竞争Master路由器的位置,将通过优先级来选举Master路由器。Backup路由器默认等待的时间称为Master_Down_Interval,取值为:(3×VRRP报文的发送时间间隔)+Skew time,单位为秒。
Master路由器的选举
VRRP根据优先级来确定虚拟路由器中每台路由器的角色(Master路由器或Backup路由器)。优先级越高,则越有可能成为Master路由器。
- 如果VRRP报文中Master路由器的优先级高于自己的优先级,则路由器保持在Backup状态;
- 如果VRRP报文中Master路由器的优先级低于自己的优先级,采用抢占工作方式的路由器将抢占成为Master状态,周期性地发送VRRP报文,采用非抢占工作方式的路由器仍保持Backup状态;
- 如果在一定时间内没有收到VRRP报文,则路由器切换为Master状态。
keepalived 实战配置
-
1.node01如果有路由信息清掉
ipvsadm -ln
ipvsadm -C
ifconfig 卸掉VIP
ifconfig eth0:8 down
-
2.node01/node04安装配置keepalived
yum install keepalived -y ipvsadmcd/etc/keepalived
cp keepalived.conf keepalived.conf.bak
编辑配置文件
复制1192.168.150.12 修改为13的信息,然后,复制node01下的配置到node04。
scp ./keepalived.conf root@node04:/etc/keepalived/ -
2.启动keepalived
service keepalived start
node04启动不会出现VIP配置,但是会有路由信息,如果RS下线,backup同时下线RS条目,如果node01不可用,backup会抢占master 提供服务。但是,keepalived如果异常退出,node01VIP没有卸掉,会造成数据包混乱的现象,通过zookeeper高可用集群解决keepalived单点问题。