Keepalived是一个免费开源的,用C编写的相似于layer3, 4 & 7交换机制软件,具有咱们平时说的第3层、第4层和第7层交换机的功能。主要提供loadbalancing(负载均衡)和 high-availability(高可用)功能,负载均衡实现须要依赖Linux的虚拟服务内核模块(ipvs),而高可用是经过VRRP协议实现多台机器之间的故障转移服务。html
Keepalived的全部功能是配置keepalived.conf文件来实现的。linux
将从官网下载的keepalived-1.3.4.tar.gz包,上传到/tmp目录下。ios
tar -zxvfkeepalived-1.3.4.tar.gz服务器
cd keepalived-1.3.4网络
./configure --prefix=安装路径负载均衡
make && make installurl
安装完成后,进入安装目录的etc目录下,将keepalived相应的配置文件拷贝到系统相应的目录当中。keepalived启动时会从/etc/keepalived目录下查找keepalived.conf配置文件,若是没有找到则使用默认的配置。/etc/keepalived目录安装时默认是没有安装的,须要手动建立。配置文件目录结构以下所示:.net
-- keepalivedrest
| |-- keepalived.confcode
| `-- samples
| |-- keepalived.conf.status_code
| |-- keepalived.conf.track_interface
| |-- keepalived.conf.vrrp
| |-- 。。。
|-- rc.d
| `-- init.d
| `-- keepalived
`-- sysconfig
`-- keepalived
分别对应系统目录:
/etc/keepalived/keepalived.conf
/etc/rc.d/init.d/keepalived
/etc/sysconfig/keepalived
将配置文件拷贝到系统对应的目录下:
mkdir /etc/keepalived
cp /usr/local/keepalived/etc/keepalived.conf /etc/keepalived/keepalived.conf
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/keepalived
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/keepalived
keepalived服务控制
systemctl enable keepalived.service #设置开机自动启动
systemctl disable keepalived.service #取消开机自动启动
systemctl start keepalived.service #启动服务
systemctl restart keepalived.service #重启服务
systemctl stop keepalived.service #中止服务
systemctl status keepalived.service #查看服务状态
设置防火墙打开
firewall-cmd --permanent–-add-service=keepalived
firewall-cmd --reload
再次强调:Keepalived的全部功能是配置keepalived.conf文件来实现的。
2.2 配置文件的详细说明
keepalived.conf的配置
以下图所示:
主机配置:
备机配置:
全局定义块
一、email通知(notification_email、smtp_server、smtp_connect_timeout):用于服务有故障时发送邮件报警,可选项,不建议用。须要系统开启sendmail服务,建议用第三独立监控服务,如用nagios全面监控代替。
二、lvs_id:lvs负载均衡器标识,在一个网络内,它的值应该是惟一的。
三、router_id:用户标识本节点的名称,一般为hostname
四、花括号{}:用来分隔定义块,必须成对出现。若是写漏了,keepalived运行时不会获得预期的结果。因为定义块存在嵌套关系,所以很容易遗漏结尾处的花括号,这点须要特别注意。
VRRP实例定义块
在keepalived.conf配置文件中加入如下内容
1.notify_master“想要执行的脚本路径” #表示当切换到master状态时,要执行的脚本
2.notify_backup “想要执行的脚本路径”#表示当切换到backup状态时,要执行的脚本
3.notify_fault“想要执行的脚本路径”#表示切换出现故障时要执行的脚本
转载自:https://www.cnblogs.com/liyasen/p/6611079.html