keepalived

keepalived_第1张图片
keepalived软件架构

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时间服务器。
keepalived_第2张图片
同步两台IBM主机时间

3. 安装keepalived软件包(当前版本keepalived-1.2.13-7.el7.x86_64)
keepalived_第3张图片
安装keepalived软件包

4. 配置IBM 与IBM2 主机中keepalived配置文件/etc/keepalived/keepalived.conf(记得先备份原本)

keepalived_第4张图片
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
  • [ ] <<开放的智力>>
keepalived_第5张图片
将上面的配置复制给IBM2
keepalived_第6张图片
IBM2上需要修改的地方

5. 启动IBM主节点的keepalived.service

启动IBM主机的keepalived服务

服务成功没问题的话,可以得到下图结果,看到虚拟ip10.1.1.80/32已加添加了。
keepalived_第7张图片
Paste_Image.png

同样对IBM2上已启动keepalived服务(避免重复这里就不放截图了)·

keepalived_第8张图片
IBM2中服务启动后看/var/log/message看到进入BACKUP状态

这时好玩的来了:我们把IBM上的keepalived服务给关了,然后会看到IBM2上日志信息里马上会出现如下的内容,反之重启IBM上的keepalived服务亦然:

IBM2把虚拟ip抢过来了

6. 在keepalived配置文件里添加追踪script的功能(关闭selinux)

keepalived_第9张图片
追踪脚本功能

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
keepalived_第10张图片
在配置文件里可以这样调用通知脚本

8. 如何配置IPVS
9. 对某特定服务做高可用

你可能感兴趣的:(keepalived)