Keepalived是一个基于VRRP协议来实现的WEB服务高可用方案,可以利用其来避免单点故障。一个WEB服务至少会有2台服务器运行Keepalived,一台为主服务器(MASTER),一台为备份服务器(BACKUP),但是对外表现为一个虚拟IP,主服务器会发送特定的消息给备份服务器,当备份服务器收不到这个消息的时候,即主服务器宕机的时候,备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。
假设两台机器,服务器一 : 10.1.1.10 服务器二: 10.1.1.11 ,虚拟ip为 10.1.1.12 系统为 linux rhel 5.9
keepalived 安装与配置
./configure --prefix=/usr/local/keepalived
make
make install
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
mkdir -p /etc/keepalived
cd /etc/keepalived/
# 配置
vi keepalived.conf #/usr/local/keepalived/etc/keepalived/keepalived copy
在服务器一上:
global_defs {
notification_email {
# 邮箱配置,略
}
}
vrrp_instance VI_1 {
state MASTER #备用服务器上改为 BACKUP
interface eth0 # 使用 ifconfig 查看ip 属于哪个网卡号
virtual_router_id 51 #主备必须一直
priority 100 #备用服务器上改为99 优先级,越大越高
advert_int 1
authentication { #主从服务器验证方式主备的keepalived这2个配置要一样。
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.1.1.12 # 虚拟 IP 主从使用相同的虚拟 ip
}
}
lvs 相关配置,假设 10 和 11 上有 mysql 服务
virtual_server 10.1.1.12 3306 {
delay_loop 6 #每隔6秒检查一次real_server状态
lb_algo rr
lb_kind NAT
nat_mask 255.255.255.0
persistence_timeout 50 #回话保持时间
protocol TCP
real_server 10.1.1.10 3306 {
weight 1
notify_down "/usr/local/keepalived/mysql.sh" #新建这个mysql.sh文件,输入 pkill keepalived
TCP_CHECK {
connect_timeout 3
connect_port 3306
}
}
}
使用:
chkconfig keepalived on
service keepalived start
验证:可以简单的 ping 真实IP和虚拟 ip检查配置是否成功,可以使用虚拟ip 访问真实IP部署的程序
查看虚拟在哪个 ip 上
ip a
参考:Keepalived配置与使用
安装keepalived
Linux下keepalived+mysql实现高可用
【大型网站技术实践】初级篇:借助LVS+Keepalived实现负载均衡
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。