一总 发表于 2018-12-28 14:09:12

RHEL5.5下的Keepalived双机热备

RHEL5.5下的Keepalived双机热备
Linux操作系统的Keepalived的双机热备不像基于共享存储的高可用集群(HA),它不需要用到共享存储,只是单纯基于TCP/IP协议的热备机制,其工作过程有些像VRRP,其实它的配置文件就很像VRRP的配置,作过路由器VRRP配置的同学应该很了解,呵呵。Keepalived通常和LVS一起使用,做负载均衡主机的热备和调度功能,我在这方案里只用到keepadlived这一个软件,不做负载均衡处理,只使用同一个虚拟IP的服务应用(两台服务器的提供的应用要一模一样)。
呵呵,其实在做之前参考了很多人的配置方法,在做的过程中不断出现问题,毕竟是别人的文档~照着做都能有问题~现在我写下来的是RHEL5.5下的配置方法,keepalived版本为keepalived-1.2.1.tar(可以在官网下载到)。
首先第一步肯定是装操作系统了~最好把软件定制那的开发工具和服务器都勾上,免得少软件,我的Centos5.4安装时候就少了很多东西,解决依赖性都弄了很久。通常这个keepalived要求有两个前置的软件,一个是gcc,一个是openssl-devel。
解压keepalived-1.2.1.tar到/usr/local/src
打开控制台 cd /usr/local/src/keepalived-1.2.1
./configure --prefix=/usr/local/keepalive
make
make install
不出意外,安装过程就完毕了,接下来要手动复制一些东西…
可以看到/usr/local/keepalive下面有几个文件,我们需要复制一些文件到其他文件夹里面,下面为操作方法:
cp /usr/local/keepalive/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/

cp /usr/local/keepalive/etc/sysconfig/keepalived /etc/sysconfig/

mkdir /etc/keepalived

cp /usr/local/keepalive/etc/keepalived/keepalived.conf /etc/keepalived/

cp /usr/local/keepalive/sbin/keepalived /usr/sbin/

在系统—>管理—>服务器设置—>服务添加keepalived(对,输入名称),然后找到keepalived这个服务打上勾就能随机启动了。手动启动或停止服务是service keepalived start|stop|restart
接下来是配置conf文件,只有配置/etc/keepalived/keepalived.conf才生效。
假设服务器A地址是172.31.0.1   服务器B地址是172.31.0.2,对外提
供服务的虚拟IP是172.31.0.100。
服务器A(master):我们只需配置下面几行
vrrp_instance VI_1 {
    state MASTER          #备机要改成BACKUP#
    interface eth0         
    virtual_router_id 51#这里的ID,主备要一致,如果在一个广播域内有另外一组热备组,这里需要更改另外的ID,且同样主备要保持一致#
    priority 100            #备机要小于100#
    advert_int 1
    nopreempt               #默认是抢占模式,这里设置不抢占,初始配置文件没有这行#
    authentication {
      auth_typePASS
      auth_pass 1111
    }
    virtual_ipaddress {
      172.31.0.100       #要在这里设置的对外提供服务的虚拟IP#
      
    }
notify_master /root/master.sh    #这里是调用脚本,成为master时,调用的脚本
notify_backup /root/backup.sh   #这里是调用脚本,成为backup时,调用的脚本
}
服务器B(BACKUP):
vrrp_instance VI_1 {
    state BACKUP          #备机要改成BACKUP#
    interface eth0         
    virtual_router_id 51#这里的ID,主备要一致,如果在一个广播域内有另外一组热备组,这里需要更改另外的ID,且同样主备要保持一致#
    priority 90            #备机要小于100
    advert_int 1
    nopreempt               #默认是抢占模式,这里设置不抢占
    authentication {
      auth_typePASS
      auth_pass 1111
    }
    virtual_ipaddress {
      172.31.0.100       #要在这里设置对外提供服务的虚拟IP
      
    }
notify_master /root/master.sh    #这里是调用脚本,成为master时,调用的脚本

notify_backup /root/backup.sh   #这里是调用脚本,成为backup时,调用的脚本}
验证:在一台PC ping 172.31.0.100看是否能ping通,再输入ip a这个命令,看eth0是不是有两个IP地址,Master会有172.31.0.100这个地址,BACKUP正常情况下只有一个网卡地址。关掉Master的网卡eth0,正常情况下ping会掉2个包后会重新连接上。这时在BACKUP输入ip a,看eth0是否有两个IP地址,有172.31.0.100表示已经变成MASTER。如果是默认的抢占模式,重新激活MASTER的eth0后,正常情况下也会掉两个包,然后ping重新连上,这时MASTER重新抢占了MASTER角色。
  



wx_OwIHdFDb 发表于 2018-12-28 21:27:20

1111111111111111111111
页: [1]
查看完整版本: RHEL5.5下的Keepalived双机热备