双机热备heartbeat和keepalived

一、heartbeat安装配置

  用heartbet搭建nginx服务高可用

环境:两台Centos6.5_x64系统下的高可用,每一台都需要两块网卡。

      两台机器上都需要安装 nginx 


主服务器 master

ip(可以访问外网)172.18.9.89  ip(用于心跳检测):192.168.8.200

从服务器 slave

ip(可以访问外网)172.18.9.99  ip(用于心跳检测):192.168.8.100

 分别在两个机器上的hosts文件中加入两行:master 172.18.9.89

                                      slave  172.18.9.99

1.安装heartbeat(同时也需要安装libnet,因为需要libnet的支持

   主、从服务器上都运行 yum install -y heartbeat libnet

2.复制配置文件

   cd /usr/share/doc/heartbeat-3.04/

   cp authkeys ha.cf haresources /etc/ha.d/

3.配置authkeys(该文件是权限级别的控制)

  配置如下: auth3

            3 ma5 Hello

        设置authkeys的读写权限     chmod 600 authkeys

4.配置haresources

   只需要在该配置文件中加入一行即可:

     master 172.18.9.250/24/eth0:0 nginx  

     //意思是使用虚拟250这个ip做代理nginx服务,外部访问nginx服务只能访问到172.18.9.250这个ip;


5.配置ha.cf(这个配置文件配置的最多)

    配置如下: debugfile /var/log/ha-debug

               logfile /var/log/ha-log

               logfacility    local0

               keepalive 2

               deadtime 30

               warntime 10

               initdead 60

               udpport  694

               ucast eth0 192.168.8.100(用于心跳检测)

               auto failback on

               node  master

               node  slave

               ping 172.18.2.2 (检测网络是否有问题,最好找一个稳定的ip)

               respawn hacluster /usr/lib64/heartbeat/ipfail(若是32位系统需要把lib64改成lib

6.拷贝 

    cd /etc/ha.d

    scp authkeys ha.cf haresources slave:/etc/ha.d/

7.修改从服务器上的配置文件

   vim /etc/ha.d/ha.cf      //从服务上只需要修改此处一个地方即可

   把ucast eth0 192.168.8.100 改为 ucast eth0 192.168.8.200

8.启动服务

   先主后从 service heartbeat start 

    服务的日志是在/var/log/ha-log


9.测试

   把主服务器上的网卡禁用或者heartbeat服务关闭

 查看172.18.9.250是否在从服务器上。

  日志路径:/var/log/ha-log


二、keepalived安装和配置

  两台Centos6.4_X64系统下的高可用

   主ip: 172.18.9.99

   备ip: 172.18.9.89

    vip(虚拟):172.18.9.250

1.安装

  在主备上分别执行: yum install keepalived

2.配置

 vim /etc/keepalived/keepalived.conf

     state MASTER       #设置主备

     interface eth0     #提供服务的网卡名

     priority 100       #优先级别,数值大的优先级别高,是主

     virtual_ipaddress{

       172.18.9.250  }  #设置提供web服务的虚拟ip,用户最终访问到的是此ip


 备上配置:

      state BACKUP     #设置主备

      interface eth0   #服务的网卡名

      priority 90      #备上的优先级别要小于主

      virtual ipaddress{

       172.18.9.250}   #虚拟ip(vip)


3.启动

 先主后备运行: /etc/init.d/keepalived start


4.测试

   禁用主上的网上或者关闭keepalived

查看备服务器上是否增加172.18.9.250这个ip.

      

三、源码安装keepalived

   从 www.keepalived.org 官网下载keepalived-1.2.7版本的源码包

  在主备上操作如下:

1.解压

     tar zxvf keepalived-1.2.7.tar.gz

     cd keepalived-1.2.7.tar.gz

2.编译安装

   ./configure --prefix=/usr/local/keepalived

    make && make install (中间可能出现缺少依赖包,可根据报错提示安装)

3.配置

 cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d

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

 mkdir /etc/keepalived

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

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

 vim /etc/keepalived/keepalived.conf

     state MASTER       #设置主备

     interface eth0     #提供服务的网卡名

     priority 100       #优先级别,数值大的优先级别高,是主

     virtual_ipaddress{

       172.18.9.250  }  #设置提供web服务的虚拟ip,用户最终访问到的是此ip


   备上配置:

      state BACKUP     #设置主备

      interface eth0   #服务的网卡名

      priority 90      #备上的优先级别要小于主

      virtual ipaddress{

       172.18.9.250}   #虚拟ip(vip)

4.启动

 先主后备运行: /etc/init.d/keepalived start


5.测试 

  禁用主上的网上或者关闭keepalived

查看备服务器上是否增加172.18.9.250这个ip.