文章目录

  • 简介
  • 安装
  • 安装软件
  • 启动与停止
  • 开机自启动
  • 配置
  • 基本配置
  • keepalived主配置
  • keepalived之间的通信


简介

  • keepalived是一个能实现高可用的软件
  • 什么是高可用?
  • 你可以理解为是当系统中的某个组件发生故障后,系统依旧处于可用状态的一种特性
  • keepalived如何实现高可用?
  • 一种方式是热备(建议百度)
  • 举个例子,现有数据一模一样的服务器A和B

图1 keepalived, 正常情况下



vip

服务器A

服务器B待机

用户


  • 稍微解释下
  • vip是由keepalived生成的一个virtual ip
  • 正常情况下,访问vip就是访问服务器A(一般我们叫服务器A叫
  • 正常情况下,服务器B不对外提供服务(一般我们叫服务器B叫
  • 此时keepalived正在不停地对服务器A和B进行侦查,看看哪台有问题
  • 当服务器A宕机后,keepalived会自动让B来对用户服务

keepalived, 服务器A宕机



vip

服务器B

服务器A宕机

用户


  • 稍微解释下
  • 当keepalived检测到服务器A宕机后,自动让B对用户进行服务
  • 此时,访问vip就是访问服务器B
  • 当我们修好服务器A后,keepalived会自动地让服务器A对用户进程服务

安装

安装软件

yum install -y keepalived

启动与停止

  • 以centos7为例
systemctl start keepalived
systemctl stop keepalived

开机自启动

systemctl enable keepalived

配置

基本配置

  • keepalived默认配置文件是/etc/keepalived/keepalived.conf

keepalived主配置

vrrp_instance VI_1 {
    state MASTER    # keepalived启动时,把此设备当做主
    interface bond0 # vip绑定的网口,你可以理解为,访问vip就是访问这个ip
    virtual_router_id 51    # 一个身份标识,简称vrid
    priority 100    # 权重,权重高的为主,主机的权重要比备机高
    advert_int 1    # 检查间隔,默认为1秒
    authentication {    # 认证,主备要一致
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress { # vip
        192.168.1.100
    }
}
  • keepalived备配置
  • state MASTER–>state BACKUP
  • priority 100–>priority 90
  • 好,我们在来看下图

VI_1



vip 192.168.1.100

服务器A 主 权重100

服务器B 备 权重90

用户


  • 再来解释下
  • vip来自配置文件的virtual_ipaddress
  • 正常情况下,访问vip就是访问服务器A,因为A的权重比B大

keepalived之间的通信

  • keepalived之间通过vrrp协议通信
  • 那么可以通过抓包方式查看,如下
  • 在服务器A上运行tcpdump -s0 -i bond0 -n vrrp可以看到
15:09:38.559031 IP 服务器A的IP > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 100, authtype simple, intvl 1s, length 20
  • 意思是在vrid为51的虚拟路由中,服务器A为主,权重为100
  • 想要看得在详细点可以用tcpdump -s0 -i bond0 -n vrrp -vvv
15:31:27.908882 IP (tos 0xc0, ttl 255, id 40522, offset 0, flags [none], proto VRRP (112), length 40)
    服务器A的IP > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 100, authtype simple, intvl 1s, length 20, addrs: 192.168.1.100 auth "1111^@^@^@^@"