keepalived高可用服务工作原理
keepalived高可用对之间是通过VRRP协议通信的,VRRP协议是通过竞选机制来确定主备的,主的优先级高于备,因此,工作时主会获得所有的资源,备节点处于等待状态,当主挂了时候,备节点,接管主节点的资源,然后顶替主节点对外提供服务。
VRRP协议是通过IP多播包的方式(224.0.0.18)发送的。
在keepalived之间,只有作为主的服务器会一直发送VRRP广播包,告诉备他还活着,此时备不会抢占主,当主不可用时,即备监听不到主发送的广播包时,就会启动相关服务接管资源,保证业务的连续性。接管速度可以小于1秒。VRRP使用加密协议加密发送广播包。
VRRP介绍
VRRP(Virtual Router Redundancy Protocol)协议是用于实现路由器冗余的协议,VRRP协议将两台或多台路由器设备虚拟成一个设备,对外提供虚拟路由器IP(一个或多个),而在路由器组内部,如果实际拥有这个对外IP的路由器如果工作正常的话就是MASTER,或者是通过算法选举产生,MASTER实现针对虚拟路由器IP的各种网络功能,如ARP请求,ICMP,以及数据的转发等;其他设备不拥有该IP,状态是BACKUP,除了接收MASTER的VRRP状态通告信息外,不执行对外的网络功能。当主机失效时,BACKUP将接管原先MASTER的网络功能。
VRRP协议使用多播数据来传输VRRP数据,VRRP数据使用特殊的虚拟源MAC地址发送数据而不是自身网卡的MAC地址,VRRP运行时只有MASTER路由器定时发送VRRP通告信息,表示MASTER工作正常以及虚拟路由器IP(组),BACKUP只接收VRRP数据,不发送数据,如果一定时间内没有接收到MASTER的通告信息,各BACKUP将宣告自己成为MASTER,发送通告信息,重新进行MASTER选举状态。
keepalived部署
keepalived软件安装部署
lb01 lb02负载服务器上均安装
yum install -y keepalived #两台设备
配置文件
cat /etc/keepalived/keepalived.conf
global_defs {
notification_email {
acassen@firewall.loc 填写管理员的邮箱信息
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from xxxxxxx@163.com 定义利用什么邮箱发送邮件
smtp_server smtp.163.com 定义邮件服务器信息
smtp_connect_timeout 30 定义邮件发送超时时间
router_id lb01 (重点参数)局域网keppalived主机身份标识信息(每台唯一)
vrrp_skip_check_adv_addr 跳过相邻地址
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 { VRRP协议相关配置
state MASTER keepalived角色描述信息,可配置参数(MASTER,BACKUP)
interface eth0 将虚拟ip用于那块网卡
virtual_router_id 55 表示keepalived家族表示信息
priority 150 keepalved服务竞选主备服务器优先级设置(数字越大越优先)
advert_int 1 主服务器组播包发送间隔时间
authentication { 主备主机之间的认证表示信息
auth_type PASS 采用明文认证机制
auth_pass 1111 编写明文密码
}
virtual_ipaddress { 设置虚拟ip地址信息
10.0.0.3/24 dev eth0 label eth0:1
#虚拟ip,即VIP为10.0.0.88,子网掩码为24位,绑定接口为eth0,别名为eth0:1,此参数备节点设置和主节点相同
}
}
搭建基础的keepalived配置文件 (lb01)
cat /etc/keepalived/keepalived.conf
global_defs {
router_id LVS_01
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.0.3/24 dev eth0 label eth0:1
}
}
systemctl start keepalived
systemctl enable keepalived
搭建基础的keepalived配置文件 (lb02)
cat /etc/keepalived/keepalived.conf
global_defs {
router_id LVS_02
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.0.3/24 dev eth0 label eth0:1
}
}
systemctl start keepalived
systemctl enable keepalived
请登录后查看评论内容