2312123www 发表于 2016-5-26 10:32:29

keepalived 主备模式(centos 7)

* 在centos 7上:
把做准备两台主机(直接yum 安装keepalived),先做时间同步:
```
]# ntpdate 172.18.0.1
向时间服务器同步;
```

* 创建自动计划任务,向时间服务器每5分钟同步一次时间
```
]# crontab -e
*/5 * * * * /usr/sbin/ntpdate 172.18.0.1 &> /dev/null
指定每过5分钟向时间服务器同步同步一次
```

* 安装keepalived
    ```
    ]# yum -y install keepalived
    ]# rpm -ql keepalived
    ]# cd /etc/keepalived/
    ]# cp keepalived.conf{,.bak}
    ```
```
]# vim /etc/keepalived/keepalived.conf
----------------------------------------------------------------------------------------------------
:set nohlsearch【去除vim脚本中的高亮,此处不解释】
:.,$s/^/#/g【从当前行到最后一行,查找所有的行首加上# 号】
```


* 先只配置全局段和虚拟路由实例段,其它都注释;
    ```
    ]# vim /etc/keepalived/keepalived.conf
    ----------------------------------------------------------------------------------------------------------------------------------
    global_defs {       【全局配置段】
      notification_email {【 此处填写接收通告邮件的地址,收件人】
            root@localhost【此处演示填写自己的】
      }
      notification_email_from kaadmin@magedu.com 【发件人】
      smtp_server 127.0.0.1 【配置邮件服务器,要求能在互联网上正反解析;】
      smtp_connect_timeout 30【邮件服务器的超时时长】
      router_id node1    【定义当前路由器设备的ID号,一般为主机名;】
      vrrp_mcast_group4224.0.11.18   【组播地址,默认为224.0.0.18,但是集群里的所有节点都有使用此地址;表示同一个组播域;】
    }

    vrrp_instance VI_1 { 虚拟路由器配置段,实例名称为VI_1,也可自定义;
      state MASTER【当前节点在此虚拟路由器中的初始状态;MASTER表示为主节点;】取值为:MASTER|BACKUP;
      interface eno16777736    【表示vrrp发送通告的接口;】
      virtual_router_id 11   【虚拟路由器ID,范围0-255;】
      priority 100   【当前物理节点在此虚拟路由器中的优先级;】
      advert_int 1    【表示vrrp的通告的时间间隔;为1秒;】

      authentication {    【认证方式】
            auth_type PASS    【使用简单密码认证】
            auth_pass vHFHLlTA   【随机字符串,可使用openssl rand -base64 8生成,因为最多只有8位字符有效;】
      }

      virtual_ipaddress { 定义虚拟IP,不指明则为前面的interface指明的接口地址;
                #定义172.18.11.66 网卡别名地址,
      【可写为】 172.18.11.66 dev eno16777736 label eno16777736:0
          }
    }


    ]# scp keepalived.conf root@172.18.11.121:/etc/keepalived
      配置文件复制到另一调度器172.18.11.121上


      在172.18.11.121编辑该配置文件:
   ]# vim /etc/keepalived/keepalived.conf
    ---------------------------------------------------------------------------------
      修改:
    state BACKUP 修改为备用
    priority 50 修改小优先级;
      密码、router_id、vrrp_mcast_group4要保存一致;

      在两个调度器上开启keepalived服务:
    ]# systemctl start keepalived.service
    ]# systemctl status keepalived.service
    ]# systemctl -l status keepalived.service【-l 表示显示更多的信息】


      【分别查看两个调度器,VIP地址是否自动在主服务器的接口别名上:】
    ]# ip addr l
    ]# tail /var/log/messages
      手动使172.18.11.111主用服务器停止keepalived服务,再查看;
    ]# systemctl stop keepalived.service

      用另一终端查看日志信息不退出:
      显示部分内容:
    ]# tail -f /var/log/messages
    May 10 05:25:01 localhost systemd: Stopping LVS and VRRP High Availability Monitor...
    May 10 05:25:01 localhost Keepalived_vrrp: VRRP_Instance(VI_1) sending 0 priority 发送优先级为0的报文;
    May 10 05:25:01 localhost Keepalived_vrrp: VRRP_Instance(VI_1) removing protocol VIPs. 移除VIP的协议
    May 10 05:25:01 localhost Keepalived_healthcheckers: Netlink reflector reports IP 172.18.11.66 removed 移除VIP
    May 10 05:25:01 localhost systemd: Stopped LVS and VRRP High Availability Monitor

      在另一调度器172.18.11.121上,查看日志:
      显示内容:
    ]# tail /var/log/messages
    May 9 08:09:21 localhost Keepalived_vrrp: VRRP_Instance(VI_1) Transition to MASTER STATE 称为主用服务器
    May 9 08:09:22 localhost Keepalived_vrrp: VRRP_Instance(VI_1) Entering MASTER STATE 确认主用状态
    May 9 08:09:22 localhost Keepalived_vrrp: VRRP_Instance(VI_1) setting protocol VIPs. 设置
    May 9 08:09:22 localhost Keepalived_vrrp: VRRP_Instance(VI_1) Sending gratuitous ARPs on eno16777736 for 172.18.11.66 发送免费ARP报文
    May 9 08:09:22 localhost Keepalived_healthcheckers: Netlink reflector reports IP 172.18.11.66 added 获得VIP地址
    May 9 08:09:27 localhost Keepalived_vrrp: VRRP_Instance(VI_1) Sending gratuitous ARPs on eno16777736 for 172.18.11.66
    May 9 08:10:01 localhost systemd: Started Session 58 of user root.
    May 9 08:10:01 localhost systemd: Starting Session 58 of user root.
    May 9 08:10:01 localhost systemd: Started Session 59 of user root.
    May 9 08:10:01 localhost systemd: Starting Session 59 of user root.

      再手动使172.18.11.111主用服务器上线:
    ]# systemctl start keepalived.service
      默认工作在抢占模式;优先级高的会自动成为主用服务器;
    这就是keepalived自动完成地址浮动;

      修改两个调度器的VIP别名:
    ]# vim /etc/keepalived/keepalived.conf
    --------------------------------------------------------------------------------
    virtual_ipaddress{
      172.18.11.66 dev eno16777736 label eno16777736:0
    }

      把两个调度器停止keepalived服务;


      先启动优先级低的服务器:172.18.11.121:
    ]# systemctl start keepalived.service

      此时使用ifconfig命令,engine查看网卡别名,已经自动加上了;
    ]# ifconfig

      再启动优先级高的服务器:172.18.11.111:
    ]# systemctl start keepalived.service

      此时使用ifconfig命令,engine查看网卡别名,已经自动抢占上了VIP地址;
    ]# ifconfig
    ```

页: [1]
查看完整版本: keepalived 主备模式(centos 7)