接上篇文章。
VIP简单介绍完了,下面讲解如何配置keepalived的,从而实现高可用。
这里我用一句话来概括keepalived实现高可用的原理:两台机器之间(也可以多台)之间轮流提供VIP,从而让web服务不间断。
当一台服务器挂掉之后,VIP进行漂移,而这个过程是自动由keepalived帮我们完成的,我们要做的就是维护出问题的web服务器。
这里假设有两台机器A和B,他们的ip地址分别为192.168.1.8和192.168.1.9,而VIP我们设定为192.168.1.10。
先来配置机器A,我的目的是尽可能直白简单的介绍配置,从而让大家更容易理解。。。。
先vi /etc/keepalived/keepalived.conf这个文件
! Configuration File for keepalived
global_defs {
router_id LVS_DEVEL
}
vrrp_instance VI_1 { #一个keepalived实例
state MASTER #表明这是主机
interface eth0 #绑定的网卡
virtual_router_id 51 #两台机器要一致,表明他们是同一组
mcast_src_ip 192.168.1.8 #发送多播包的地址,就是本机的ip地址(如果本机有多个ip地址的话,这个很有用)
priority 200 #本机的竞争优先级,一般主的比从的高
advert_int 1
authentication {
auth_type PASS #认证类型
auth_pass 1111 #认证密码
}
virtual_ipaddress {
192.168.1.10 #提供的虚拟ip地址
}
notify_master "/1.sh" #在keepalived切换到本机时会执行此脚本
notify_backup "/2.sh" #在keepalived从本机切换走时会执行此脚本
notify_fault "/2.sh" #在keepalived停止时会执行此脚本
#注意下notify_backup和notify_fault的区别,比如从机,当VIP从从机切换到主机时,从机上的notify_backup脚本会执行;当从机的keepalived服务停止时(不仅仅是VIP漂移走了,而是keepalived的进程停止了),notify_fault的脚本会执行。
}
机器B
! Configuration File for keepalived
global_defs {
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state BACKUP #表明是从机
interface eth0
virtual_router_id 51
mcast_src_ip 192.168.1.9
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.10
}
}
ok,配置完成。在两台机器的root用户下分别执行:
service keepalived start
然后ping一下VIP:
ping 192.168.1.10
发现有返回。
然后我们关掉A机器或者停止A机器的keepalived(service keepalived stop),然后ping一下VIP,发现有返回,这是VIP已经票已到B机器了。
最后我们恢复A机器上的keepalived服务,然后ping一下VIP,也有返回,其实这时VIP已经漂移到机器A了。
大家可以在两台机器上安装一个web服务器或者直接使用linux的apache服务器,然后在浏览器里测试一下。
至于两个启动/停止脚本,大家有兴趣的可以自己测试下。