概述
高可用:多台业务系统启动着相同的服务,如果有一台故障,另一台自动接管,我们将将这个称之为高可用。
Keepalived 以 VRRP 协议为实现基础,用 VRRP 协议来实现高可用性(HA)。
VRRP(Virtual RouterRedundancy Protocol)协议是用于实现路由器冗余的协议, VRRP 协议将两台或多台路由器设备虚拟成一个设备,对外提供虚拟路由器 IP(一个或多个),而在路由器组内部,如果实际拥有这个对外 IP 的路由器如果工作正常的话就是 MASTER,或者是通过算法选举产生, MASTER 实现针对虚拟路由器 IP 的各种网络功能,如 ARP 请求, ICMP,以及数据的转发等;其他设备不拥有该虚拟 IP,状态是 BACKUP,除了接收 MASTER 的VRRP 状态通告信息外,不执行对外的网络功能。当主机失效时, BACKUP 将接管原先 MASTER 的网络功能。
keepalive结构
安装keepalived
以centos为例子
yum install -y lvsadm keepalived
keepalived 工作方式
抢占式简介
当master宕机后,backup 接管服务。后续当master恢复后,vip漂移到master上,master重新接管服务,这是抢占式
抢占式配置
master配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| [root@lb01 ~]# cat /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs { router_id lb02 #标识信息,一个名字而已; } vrrp_instance VI_1 { state MASTER #角色是master interface eth0 #vip 绑定端口 virtual_router_id 50 #让master 和backup在同一个虚拟路由里,id 号必须相同; priority 150 #优先级,谁的优先级高谁就是master ; advert_int 1 #心跳间隔时间 authentication { auth_type PASS #认证 auth_pass 1111 #密码 } virtual_ipaddress { 10.0.0.3 #虚拟ip } }
|
back up配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| [root@lb02 ~]# cat /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs { router_id lb02 }
vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 50 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 10.0.0.3 } }
[root@lb02 ~]#
|
非抢占式简介
当master宕机后,backup 接管服务。当原先的master恢复后,状态变为backup,不接管服务,这是非抢占模式。
非抢占式配置
非抢占式不再有主从之分,全部都为BACKUP,并且配置文件中添加nopreempt,用来标识为非抢占式;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
| global_defs { notification_email { root@peter.com } notification_email_from root@peter.com smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id s1.peter.com vrrp_skip_check_adv_addr #vrrp_strict vrrp_iptables vrrp_garp_interval 0 vrrp_gna_interval 0 }
vrrp_instance VI_1 { state BACKUP #状态都配置为BACKUP interface eth0 virtual_router_id 66 priority 100 advert_int 2 nopreempt #配置不抢占 authentication { auth_type PASS auth_pass 1111 } unicast_src_ip 192.168.99.130 label eth0:0 unicast_peer { 192.168.99.140 } virtual_ipaddress { 192.168.99.188 dev eth0 label eth0:0 192.168.99.189 dev eth0 label eth0:1 } }
vrrp_instance VI_2 { state BACKUP #改为BACKUP interface eth0 virtual_router_id 77 priority 80 advert_int 2 nopreempt #同样配置 authentication { auth_type PASS auth_pass 1111 } unicast_src_ip 192.168.99.130 label eth0:0 unicast_peer { 192.168.99.140 }
virtual_ipaddress { 192.168.99.200 dev eth0 label eth0:2 192.168.99.201 dev eth0 label eth0:3 } }
|
最后更新时间: