DR实验存在的隐患
- DR可能会挂,单点故障
- RS可能会挂
解决方案:
-
解决单点故障
- 主备:准备多个DR备用机,做好配置,主机挂掉备用机顶上
- 主主
-
解决RS会挂的问题
给RS发送请求,如果收到200 ok回复则说明RS正常
keepalived
keepalived就是实现了上述解决方法的工具,检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器。
主要用途:
- 高可用:监控主机,主动替换备用机
- RS的健康检测
只需要给主机DR和备用机装keepalived监控DR,并且向RS发送请求检测RS。
keepalived的使用:
-
安装
yum install keepalived ipvsadm -y
-
备份和修改keepalived配置文件
DR配置文件:
cp keepalive.conf keepalived.conf.bak cat /etc/keepalived.conf global_defs { notification_email { #设置报警邮件地址,可多行每行一个。 xxxxxxx@qq.com } notification_email_from keepalived@localhost #设置邮件的发送地址 smtp_server 127.0.0.1 #设置SMTP server地址 smtp_connect_timeout 30 #设置SMTP 超时时间 router_id LVS_DEVEL #运行keepalived机器的一个标识 } vrrp_instance VI_1 { #定义一个vrrp实例,不同实例的实例编号不一样。 state MASTER #定义在keepalived的角色MASTER表示为主服务器,BACKUP为备服务器。 interface eth0 #指定HA检测的网络接口 virtual_router_id 50 #虚拟路由标示,同一个实例里的路由标示相同,且唯一。MASTER和BACKUP的路由标识一样,且唯一。 priority 100 #定义此服务器在此虚拟路由器中的优先级,优先级大权限高 advert_int 1 #检测时间间隔 authentication { #设置验证类型和密码,主从的密码必须相同,要不两者不通讯。 auth_type PASS auth_pass 1111 } virtual_ipaddress { #设置虚拟IP地址,可以设置多个虚拟IP地址。 192.168.233.100/24 dev ens33 label ens33:3 } } //配置DR主机lvs,代替使用ipvsadm配置lvs virtual_server 192.168.233.100 80 { delay_loop 6 lb_algo rr lb_kind DR //模式,NAT,DR,TUN nat_mask 255.255.255.0 //子网掩码 persistence_timeout 0 // protocol TCP real_server 192.168.150.12 80 {//负载机配置 weight 1 HTTP_GET {//对后端机进行健康检查的配置 url { path / status_code 200 } connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } //配置RS real_server 192.168.233.129 80 { weight 1 HTTP_GET { url { path / status_code 200 } connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } }
备用DR配置:
global_defs { notification_email { xxxxxx@qq.com } notification_email_from keepalive@localhost smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id LVS_DEVEL } vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 51 priority 50 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.233.100 } } //配置DR主机lvs,代替使用ipvsadm配置lvs virtual_server 192.168.233.100 80 { delay_loop 6 lb_algo rr lb_kind DR //模式,NAT,DR,TUN nat_mask 255.255.255.0 //子网掩码 persistence_timeout 0 // protocol TCP real_server 192.168.150.12 80 {//负载机配置 weight 1 HTTP_GET {//对后端机进行健康检查的配置 url { path / status_code 200 } connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } //配置RS real_server 192.168.233.129 80 { weight 1 HTTP_GET { url { path / status_code 200 } connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } }
-
启动keepalived服务
service keepalived start
最后,如果keepalived进程挂掉呢?
使用zookper集群解决这个问题。