keepalived使用VRRP(虚拟路由冗余协议) 以软件的方式来实现多机热备份。

一、双机热备keepalived (热备份调度器)

1.安装这4个软件包

kernel-devel、openssl-devel、popt-devel、ipvsadm

2.编译安装keepalived软件包

root@localhost keepalived-1.2.2]# ./configure --prefix=/ --with-kernel-dir=/usr/src/kernels/2.6.32-131.0.15.el6.i686

[root@localhost keepalived-1.2.2]# make && make install

[root@localhost ~]# ls -l /etc/init.d/keepalived

-rwxr-xr-x 1 root root 1288 11月 8 16:23 /etc/init.d/keepalived

[root@localhost ~]# chkconfig --add keepalived

[root@localhost ~]# chkconfig keepalived on

3.修改keepalived的朱配置文件  把所有的东西都删掉 自己写 拷贝以下内容就可以

vim /etc/keepalived/keepalived.conf

virtual_server 192.168.1.254 80 {

    delay_loop 15

    lb_algo rr

    lb_kind DR

! persistence 60

    protocol TCP

    real_server 192.168.1.3 80 {

                weight 1

        TCP_CHECK {

            connect_port 80

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 4

        }

    }

    real_server 192.168.1.4 80 {

            weight 1

        TCP_CHECK {

            connect_port 80

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 4

        }

    }

    }

解释以上内容:

global_defs {

    router_id HA_TEST_R1        //本服务器的名称

}

vrrp_instance VI_1 {        //定义VRRP热备实例

    state MASTER        //MASTER表示主服务器

    interface eth0        //承载VIP地址的物理接口

    virtual_router_id 1        //虚拟路由器的ID

    priority 100        //优先级,数值越大优先级越高

    advert_int 1        //通告间隔秒数(心跳频率)

    authentication {        //认证信息

        auth_type PASS        //认证类型

        auth_pass 123456        //密码字串

    }

    virtual_ipaddress {

        172.16.16.172        //指定漂移地址(VIP

    }

}

4.第二个调度器 也就是备份用的调度器也重复相同步骤 

重复第1 2 步  第3步的主配置文件有些不同 只是routeID和优先级不同了而已

引用配置文件请自行删除中文文本

vim /etc/keepalived/keepalived.conf

global_defs {

    router_id HA_TEST_R2        //本服务器的名称

}

vrrp_instance VI_1 {

    state SLAVE        //SLAVE表示从服务器

    interface eth0

    virtual_router_id 1

    priority 99        //优先级,低于主服务器

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 123456

    }

    virtual_ipaddress {

        172.16.16.172

    }

}

5.重启服务

可以测试了 

ip addr show dev eth0  这条命令可以查看当前的网卡信息

优先级是100的有两个IP 低的只有一个 禁用掉优先级高的网卡以后 低的会变成两个网卡说明实验成功了

二、keepalived+LVS 实现调度器和节点服务器的双备份 

1.在主调度器的主配置文件下加上以下内容

[root@localhost ~]# vi /etc/keepalived/keepalived.conf

……

virtual_server 172.16.16.172 80 {

    delay_loop 15  //健康检查间隔

    lb_algo rr  //使用轮询调度算法

    lb_kind DR  //DR模式的群集

!    persistence 60  //连接保持时间

    protocol TCP

    real_server 172.16.16.177 80 {

        ……

    }

    real_server 172.16.16.178 80 {

        ……

    }

    ……

}

其中“……” 中的内容是以下内容

        weight 1  //节点权重

        TCP_CHECK {  //状态检查方式

            connect_port 80  //检查的目标端口

            connect_timeout 3  //连接超时(秒)

            nb_get_retry 3  //重试次数

            delay_before_retry 4  //重试间隔(秒)

        }

请务必全部复制!包括括号 

然后删除注释

2.第二步配置备份调度器

配置与主调度器配置一样 也是在后面加上以上内容

3(选).

可以配置邮件通知 

[root@localhost ~]# vi /etc/keepalived/keepalived.conf

global_defs {

   notification_email {

     root@localhost.localdomain

   }

   notification_email_from TsengYia root@localhost.localdomain

   smtp_server 127.0.0.1

   smtp_connect_timeout 30

   router_id LVS_HA_R1

}

……

[root@localhost ~]# service keepalived restart

但本机必须启动SENDMAIL服务

4.配置WEB节点

配置DR模式的网卡  就是把ifcfg-lo 复制成 ifcfg-lo:0

然后配置这块网卡子网掩码255.255.255.255 IP是本次试验的VIP 

重启network服务

加载proc参数

[root@localhost ~]# vi /etc/sysctl.conf

……

net.ipv4.conf.all.arp_ignore = 1

net.ipv4.conf.all.arp_announce = 2

net.ipv4.conf.default.arp_ignore = 1

net.ipv4.conf.default.arp_announce = 2

net.ipv4.conf.lo.arp_ignore = 1

net.ipv4.conf.lo.arp_announce = 2

[root@localhost ~]# sysctl -p

启动httpd服务

客户机测试访问VIP 断一个调度器 再断一个WEB节点都没事