keepalived—>vrrp(虚拟路由冗余协议)—>实现路由器的高可用(一个master,多个backup vip)
keepalived是什么
keepalived是集群管理中保证集群高可用的一个服务软件(防止单点故障)
它能够保证当个别节点宕机时,整个网络可以不间断的运行,所以,keepalived一方面也可以实现系统网络服务的高可用功能
是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Prorocol,即,虚拟路由冗余协议
虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同的路由器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master。这样的话就可以保证路由器的高可用了
Keepalived高可用服务对之间的故障切换转移,是通过 VRRP (Virtual Router Redundancy Protocol ,虚拟路由器冗余协议)来实现的。
在 Keepalived服务正常工作时,主 Master节点会不断地向备节点发送(多播的方式)心跳消息,用以告诉备Backup节点自己还活看,当主 Master节点发生故障时,就无法发送心跳消息,备节点也就因此无法继续检测到来自主 Master节点的心跳了,于是调用自身的接管程序,接管主Master节点的 IP资源及服务。而当主 Master节点恢复时,备Backup节点又会释放主节点故障时自身接管的IP资源及服务,恢复到原来的备用角色。
那么,什么是VRRP呢?
VRRP ,全 称 Virtual Router Redundancy Protocol ,中文名为虚拟路由冗余协议 ,VRRP的出现就是为了解决静态踣甶的单点故障问题,VRRP是通过一种竞选机制来将路由的任务交给某台VRRP路由器的
server1和server4,server4做主用,server1做备用
server2和server3是后端服务器,配置http服务
server1–server4的ip分别为
172.25.23.1
172.25.23.2
172.25.23.3
172.25.23.4
tar zxf keepalived-2.0.6.tar.gz
vim /etc/yum.repos.d/rhel-source.repo
yum install openssl-devel -y
yum instal libnl libnl-devel -y
yum install libnfnetlink-devel-1.0.0-1.el6.x86_64.rpm ##此包需要官网下载
yum install gcc -y
cd keepalived-2.0.6
./configure --with-init=SYSV --prefix=/usr/local/keepalived ##编译源码,--prefix是安装路径
make && make install
cd /usr/local/
scp -r keepalived/ [email protected]:/usr/local/ ##将server4中的文件发送到server1中
du -sh keepalived/ ##查看keepalived/大小,此步实验不用做
chmod +x /usr/local/keepalived/etc/rc.d/init.d/keepalived ##给权限
ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
ln -s /usr/local/keepalived/etc/keepalived/ /etc/
ln -s /usr/local/keepalived/sbin/keepalived /sbin/
yum install ipvsadm -y
vim /etc/keepalived/keepalived.conf
3 global_defs {
4 notification_email {
5 root@localhost ##宕机给谁发邮件
6 }
7 notification_email_from keepalived@localhost ##keepalived发邮件
8 smtp_server 127.0.0.1 ##发送邮件到本机
9 smtp_connect_timeout 30 ##缓冲30s
10 router_id LVS_DEVEL
11 vrrp_skip_check_adv_addr
12 #vrrp_strict
13 vrrp_garp_interval 0
14 vrrp_gna_interval 0
15 }
16
17 vrrp_instance VI_1 {
18 state MASTER ##状态是MASTER
19 interface eth0 ##接口
20 virtual_router_id 74 ##虚拟路由节点地址
21 priority 100 ##权重是100
22 advert_int 1
23 authentication {
24 auth_type PASS
25 auth_pass 1111
26 }
27 virtual_ipaddress {
28 172.25.23.100
29 }
30 }
31
32 virtual_server 172.25.23.100 80 {
33 delay_loop 3 ##循环检测3次后才会报错
34 lb_algo rr
35 lb_kind DR ##DR模式
36 #persistence_timeout 50 ##注释掉,此句是保持连接,不注释就会影响轮询效果
37 protocol TCP
38
39 real_server 172.25.23.2 80 {
40 TCP_CHECK
41 weight 1
42 connect_timeout 3
43 retry 3
44 delay_before_retry 3
45 }
46 }
47
48
49 real_server 172.25.23.3 80 {
50 TCP_CHECK
51 weight 1
52 connect_timeout 3
53 retry 3
54 delay_before_retry 3
55 }
56 }
57
58 }
yum install mailx -y ##安装邮件软件
scp /etc/keepalived/keepalived.conf [email protected]:/etc/keepalived/ ##把server4中的配置文件发送给server1
/etc/init.d/keepalived start
tail -f /var/log/messages ##查看日至,看启动是否正常
ipvsadm -l
(配置与server4同,配置文件修改成备用,权重修改到小于主用)
chmod +x /usr/local/keepalived/etc/rc.d/init.d/keepalived
ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
ln -s /usr/local/keepalived/etc/keepalived/ /etc/
ln -s /usr/local/keepalived/sbin/keepalived /sbin/
/etc/init.d/ldirectord stop
chkconfig ldirectord off
ipvsadm -l
ipvsadm -C
ipvsadm -l
ip addr show
ip addr del 172.25.23.100/24 dev eth0
ip addr show
ipvsadm -l
vim /etc/keepalived/keepalived.conf
18 state BACKUP ##装态,备用
19 interface eth0
20 virtual_router_id 74
21 priority 50 ##权重值
22 advert_int 1
yum install mailx -y
/etc/init.d/keepalived start
tail -f /var/log/messages ##查看日至,看启动是否正常
关掉server2的http服务
在真机多次访问
server4 mail查看邮件
主机下线,备机服务,主机上线,切换回主机
Keepalived的工作原理:
Keepalived高可用对之间是通过VRRP通信的,因此,可以从 VRRP开始了解起:
1) VRRP,全称 Virtual Router Redundancy Protocol,中文名为虚拟路由冗余协议,VRRP的出现是为了解决静态路由的单点故障。
2) VRRP是通过一种竟选协议机制来将路由任务交给某台 VRRP路由器的。
3) VRRP用 IP多播的方式(默认多播地址(224.0_0.18))实现高可用对之间通信。
4) 工作时主节点发包,备节点接包,当备节点接收不到主节点发的数据包的时候,就启动接管程序接管主节点的开源。备节点可以有多个,通过优先级竞选,但一般 Keepalived系统运维工作中都是一对。
5) VRRP使用了加密协议加密数据,但Keepalived官方目前还是推荐用明文的方式配置认证类型和密码。
介绍完 VRRP,接下来再介绍一下 Keepalived服务的工作原理:
Keepalived高可用对之间是通过 VRRP进行通信的, VRRP是通过竞选机制来确定主备的,主的优先级高于备,因此,工作时主会优先获得所有的资源,备节点处于等待状态,当主挂了的时候,备节点就会接管主节点的资源,然后顶替主节点对外提供服务。
在 Keepalived服务对之间,只有作为主的服务器会一直发送 VRRP广播包,告诉备它还活着,此时备不会枪占主,当主不可用时,即备监听不到主发送的广播包时,就会启动相关服务接管资源,保证业务的连续性.接管速度最快可以小于1秒。