安装依赖
sudo apt-get install libssl-dev
sudo apt-get install openssl
sudo apt-get install libpopt-dev
sudo apt-get install daemon
sudo apt-get install gcc
sudo apt-get install make
sudo apt-get install make-guile
下载Keepalived
cd /usr/local/
sudo wget http://www.keepalived.org/software/keepalived-1.2.18.tar.gz
安装Keepalived
sudo tar zxvf keepalived-1.2.18.tar.gz
sudo cd keepalived-1.2.18
sudo ./configure --prefix=/usr/local/keepalived
sudo make & make install
系统服务配置
sudo mkdir /etc/sysconfig
sudo cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
sudo cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
sudo cp /usr/local/keepalived/sbin/keepalived /sbin/
#修改启动配置
sudo vi /etc/init.d/keepalived
#找到
daemon keepalived ${KEEPALIVED_OPTIONS}
#修改为
daemon keepalived start
VIP配置
sudo mkdir /etc/keepalived/
sudo vi /etc/keepalived/keepalived.conf
#添加如下内容
vrrp_instance VI_ERP_MYSQL_1 {
#设置服务器模式,需要大写,备用机可以写 state BACKUP
state MASTER
#实例网卡,也就是提供服务的网卡,可以通过“cat /etc/network/interfaces”查看
interface ens160
#VRRP组名,多节点的设置必须一样,以指明各个节点属于同一VRRP组
virtual_router_id 60
#节点优先级(1-254之间),值越大优化级最高
priority 100
#组播信息发送间隔,多节点设置必须一样
advert_int 1
#设置验证信息,多节点必须一致
authentication {
auth_type PASS
auth_pass 123456
}
#配置虚拟IP, 多节点必须设置一样
virtual_ipaddress {
192.168.8.201/24
}
#配置状态监听
notify_master "/etc/keepalived/notify.sh master"
notify_backup "/etc/keepalived/notify.sh backup"
notify_fault "/etc/keepalived/notify.sh fault"
}
#虚拟IP服务配置
virtual_server 192.168.8.201 13306 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 50
protocol TCP
real_server 192.168.8.74 13306{
weight 100
TCP_CHECK {
connect_port 13306
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.8.108 13306{
weight 100
TCP_CHECK {
connect_port 13306
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.8.91 13306{
weight 100
TCP_CHECK {
connect_port 13306
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
Keepalived状态监听
sudo /etc/keepalived/notify.sh
#内容按需求自行配置
#!/bin/bash
STATUS=$1
if [ "$STATUS" = "backup" ] ; then
#干点啥吧
echo $(date) "I am backup now." >> /etc/keepalived/status.log
elif [ "$STATUS" = "master" ] ; then
#干点啥吧
echo $(date) "I am master now." >> /etc/keepalived/status.log
else
echo $(date) "There are something wrong." >> /etc/keepalived/status.log
fi
exit 1
服务启动
sudo chmod +x /etc/keepalived/notify.sh
sudo mkdir -p /etc/rc.d/init.d/
sudo ln -s /lib/lsb/init-functions /etc/rc.d/init.d/functions
#服务启动
sudo service keepalived start
#服务关闭
sudo service keepalived stop
#服务重启
sudo service keepalived restart
开机启动
sudo mkdir /var/lock/subsys
sudo vi /etc/rc.local
#添加如下内容
service keepalived start
exit 0
清ARP缓存
sudo ip neigh flush dev [网卡名称]
异常情况
#异常
Can't open /etc/rc.d/init.d/functions
#解决方法
sudo mkdir -p /etc/rc.d/init.d/
sudo ln -s /lib/lsb/init-functions /etc/rc.d/init.d/functions