keepalived官网
Keepalived是一款优秀的实现高可用的软件,它运行于LVS之上,它的主要功能是实现真实机的故障隔离及负载均衡器间的失败切换。Keepalived是一个类似于Layer3、Layer4、Layer5交换机制的软件,也就是我们说的3层(网络)、4层(传输)、5层(会话)交换。Keepalived的作用是检测Web服务器的状态,如果有一台Web服务器死机,或者出故障,Keepalived将检测到,并将其从系统中剔除,当Web服务器工作正常后Keepalived会自动将其加入到服务器群中。这此工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的Web服务器。
Keepalived特点
(1)Keepalived是LVS的扩展项目,因此它们之间具备良好的兼容性。尤其相对于同为HA软件的Heartbeat而言。
(2)通过对服务器池对象的健康检查,实现对失效机器/服务的故障隔离。
(3)负载均衡之间的失败切换,是通过VRRPv2(Virtual Router Redundancy Protocol)stack实现的,VRRP当初被设计出来就是为了解决静态路由器的单点故障问题。
(4)iptables虽然不会影响Keepalived的运行。但为了更好的性能,我们通常将整套系统内所有主机的iptables都停用。
(5)Keepalived产生的VIP就是整个系统对外的IP,如果最外端的防火墙采用的是路由模式,那就映射此内网IP为公网IP。
CentOS6.4后收录进base包
vrrp协议 vrrp白皮书
virtual server
vrrp_script
/etc/
实验准备
1. 两台CentOS7.2的虚拟机 IBM(10.1.1.78) 与 IBM2(10.1.1.79)
2. 将IBM 与 IBM2时间同步一下,以保证一致。10.1.0.1是本地的ntpdate时间服务器。
同步两台IBM主机时间
3. 安装keepalived软件包(当前版本keepalived-1.2.13-7.el7.x86_64)
安装keepalived软件包
4. 配置IBM 与IBM2 主机中keepalived配置文件/etc/keepalived/keepalived.conf(记得先备份原本) keepalived配置文件组成部分
IBM与IBM2都需要配置,但其只能有一个MASTER,例如下面是IBM的keepalived配置文件的配置
! Configuration File for keepalived
global_defs {
notification_email {
root@localhost # 这部分设置为需要接收邮件的人员邮箱地址
uangianlap@localhost
boss@localhost
}
notification_email_from kaadmin@localhost # 这个随意设置
smtp_server 127.0.0.1 # 本机只能使用这个
smtp_connect_timeout 30 # 默认30秒连接超时
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER
interface eth0 # 接口名应该与真实主机保持一致我的实验机这里叫enp0s3
virtual_router_id 51 # 虚拟路由id
priority 100 # 优先级 小于255
advert_int 1 # 通告时间间隔
authentication { # 认证方式,这里用的是密码认证
auth_type PASS
auth_pass 1111 # 这个密码可以自己设置
}
virtual_ipaddress {
10.1.1.80 # 设定的虚拟ip
}
}
2017-2-7
- [ ] 马哥Linux架构第一天
- [ ] 新概念英语第2册 Lesson 1
- [ ] 健身30分钟(100个深蹲,100个小角度卧撑)
- [x] vmware安装MacOS
- [ ] <<开放的智力>>
5. 启动IBM主节点的keepalived.service
服务成功没问题的话,可以得到下图结果,看到虚拟ip10.1.1.80/32已加添加了。
Paste_Image.png
同样对IBM2上已启动keepalived服务(避免重复这里就不放截图了)· IBM2中服务启动后看/var/log/message看到进入BACKUP状态
这时好玩的来了:我们把IBM上的keepalived服务给关了,然后会看到IBM2上日志信息里马上会出现如下的内容,反之重启IBM上的keepalived服务亦然:
IBM2把虚拟ip抢过来了6. 在keepalived配置文件里添加追踪script的功能(关闭selinux)
追踪脚本功能7. 在节点状态发生改变时通知用户
在IBM:/etc/keepalived/目录中编辑脚本notify.sh
#!/bin/bash
# Author:
# Description:
vip=10.1.1.80
contact="root@localhost"
notify() {
mailsubject="`hostname` to be $1: $vip floating"
mailbody="`date +%F %H:%M:%S` : vrrp transition, `hostname` changed to be $1"
echo $mailbody | mail -s ${mailsubject} $contact
}
case $1 in
master)
notify master
exit 0;;
backup)
notify backup
exit 0;;
fault)
notify fault
exit 0;;
*)
echo "Usage: `basename $0` [master|backup|fault]"
exit 1
;;
esac
在配置文件里可以这样调用通知脚本
8. 如何配置IPVS
9. 对某特定服务做高可用
网友评论