准备:2台服务器(master:172.16.1.200,bakcup:172.16.1.201)。
1、安装依赖。
sudo apt-get install libssl-dev libpopt-dev daemon
2、登录su账户,在root权限下下载安装keepalived,避免因权限导致的问题。
root@root:~$ cd /root
root@root:~$ wget https://www.keepalived.org/software/keepalived-2.0.20.tar.gz
3、解压安装。(注意此处./configure若出现错误导致make失败,可能原因为权限问题,故最好在su账户下进行操作)
root@root:~$ tar -zxf keepalived-2.0.20.tar.gz
root@root:~$ cd keepalived-2.0.20
root@root:~/root/keepalived-2.0.20# ./configure --prefix=/usr/local/keepalived
root@root:~/root/keepalived-2.0.20# make && make install
4、创建配置文件。
root@root:~/root/keepalived-2.0.20# mkdir /etc/keepalived
root@root:~/root/keepalived-2.0.20# cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf
root@root:~/root/keepalived-2.0.20# mkdir /etc/sysconfig
root@root:~/root/keepalived-2.0.20# cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/keepalived#
root@root:~/root/keepalived-2.0.20# cp /usr/local/keepalived/sbin/keepalived /usr/sbin/keepalived
root@root:~/root/keepalived-2.0.20# cp /root/keepalived-2.0.20/keepalived/etc/init.d/keepalived /etc/init.d/keepalived
5、配置软连接。
root@root:~/root/keepalived-2.0.20# mkdir -p /etc/rc.d/init.d
root@root:~/root/keepalived-2.0.20# ln -s /lib/lsb/init-functions /etc/rc.d/init.d/functions
6、修改配置文件。
root@root:~/root/keepalived-2.0.20# gedit /etc/init.d/keepalived
start()函数中
start() {
daemon keepalived ${KEEPALIVED_OPTIONS}
}
修改为daemon -- keepalived ${KEEPALIVED_OPTIONS} # 加了一个“--”
7、修改keepalived配置文件,配置虚拟IP。
root@root:~/root/keepalived-2.0.20# gedit /etc/keepalived/keepalived.conf
修改为:
vrrp_instance VI_1 {
state MASTER #需为大写MASTER或BACKUP
interface eth0 #ifconfig确定网卡名称,本机为eth0
virtual_router_id 50 #路由标识,MASTER和BACKUP的路由标识必须一致
priority 100 #数字越大则优先级越高,
#MASTER的优先级必须大于BACKUP的优先级,MASTER故障恢复后则可以将虚拟IP重新抢占
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.16.1.88 # 虚拟ip,需与主机配置成同一网段,本服务器主机IP为172.16.1.200
}
}
keepalive抢占式和非抢占式区别如下:
1、默认配置为抢占式:
master服务挂起,backup服务将会接替,待master服务重新启动后则会将虚拟IP重新抢占。
2、非抢占式:
两台服务器state均配置为BACKUP,在优先级上根据数字大小做区分,若master服务挂起,则backup服务接替,此时BACKUP服务变成MASTER,MASTER服务则变为BACKUP。
a.两个节点的state均为BACKUP(官方建议)
b.两个节点都在vrrp_instance中添加nopreempt
c.其中一个节点的优先级要高于另外一个节点
两台服务器角色都启用了nopreempt后,必须修改角色状态统一为backup,唯一的区别就是优先级不同。
8、启动keepalived服务。
root@root:~/root/keepalived-2.0.20# systemctl daemon-reload #重新加载服务
root@root:~/root/keepalived-2.0.20# service keepalived start
root@root:~/root/keepalived-2.0.20# service keepalived status #查看keepalived服务运行状态,为running状态则正常
9、使用其他PC机对虚拟IP进行ping包测试,正常情况下,虚拟IP(172.16.1.88)与主机IP(172.16.1.200)都能正常ping通。
10、备服务器按照上述步骤也安装启动keepalievd服务即可,虚拟IP为配置为172.16.1.88。
11、安装其他服务(tomcat,jetty等web服务)进行热备测试,中断主/从服务器keepalived服务,判断是否能够自动切换。