Keepalived配置和测试过程for linux

Keepalived配置和测试过程for linux

安装环境:

两台server:System x3650 M3

Node1:硬盘:130G   CPU:2颗E5620  @ 2.40GHz     内存:4G

Node2:硬盘:130G   CPU:2颗E5620  @ 2.40GHz     内存:8G

1、  安装redhat 6.4系统

用U盘安装rhel-server-6.4-x86_64-dvd.iso

分区:

/boot        200M

/boot/efi     200M

Swap        4096M

/            13000M

只安装Basic版本,不要安装桌面

需要在language里面选择chinese包

安装系统完成后设置网卡eth0


2、  设置keepalived

Node1:


! Configuration File for keepalived

global_defs {

   router_id 234567       #router_id,配置一个网络唯一的ID

}

vrrp_instance VI_3 {        #为keeplived实例号,一般一台服务器只有1个实例,不用更改

    state BACKUP         #为keepalived初始状态,此处需要设置成BACKUP

    nopreempt           #配置为非抢占模式,在node1切到node2,vip从node1飘到node2后,node1恢复后,服务不会再切回node1,而是继续让node2做MASTER,服务在node2上面继续跑

    interface eth0          #为启用keepalived的接口,根据实际情况设置

    virtual_router_id 40    #为keepalived虚拟ID,同一集群必须相同

    priority 100          #服务优先级,MASTER设置为100,BACKUP设置为90

    advert_int 1          #心跳区间设置为1秒

    authentication {

        auth_type PASS

        auth_pass 10101010       #设置验证密码,同一集群必须相同

    }

    virtual_ipaddress {

        172.16.0.120 dev eth0 label eth0:0   #设置服务IP,dev label可省略

    }

    notify_master "/etc/keepalived/notify.sh master"    #切换成master,执行一次脚本

    notify_backup "/etc/keepalived/notify.sh backup"    #切换成backup,执行一次脚本

    notify_fault "/etc/keepalived/notify.sh fault"        #切换成fault,执行一次脚本

}

Node2


! Configuration File for keepalived

global_defs {

   router_id 123456

}

vrrp_instance VI_3 {

    state BACKUP

    nopreempt

    interface eth0

    virtual_router_id 40

    priority 90

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 10101010

    }

    virtual_ipaddress {

        172.16.0.120 dev eth0 label eth0:0

    }

    notify_master "/etc/keepalived/notify.sh master"

    notify_backup "/etc/keepalived/notify.sh backup"

    notify_fault "/etc/keepalived/notify.sh fault"

}

3、  设置notify. sh

Node1:


#!/bin/bash

#

case $1 in

    master)

        service httpd restart      #此行为应用启动脚本,根据应用更改

    echo "master" >>/etc/keepalived/log

        ;;

    backup)

        service httpd stop        #此行为应用启动脚本,根据应用更改

        echo "backup" >>/etc/keepalived/log

        ;;

    fault)

        service httpd stop        #此行为应用启动脚本,根据应用更改

        echo "fault" >>/etc/keepalived/log

        ;;

esac
Node2:



#!/bin/bash

#

case $1 in

    master)

        service httpd restart

    echo "master" >>/etc/keepalived/log

        ;;

    backup)

        service httpd stop

        echo "backup" >>/etc/keepalived/log

        ;;

    fault)

        service httpd stop

        echo "fault" >>/etc/keepalived/log

        ;;

esac

4、  其他设置

关闭两个系统的防火墙


设置keepalived服务开机启动:chkconfig keepalived on

5、  进行keepalived服务切换试验

初始状态:

Node1:


Node2



重启Node1上的keepalived服务:Vipnode1漂移到了node2





VIP掉了一个包(advert_int 1          #心跳区间设置为1秒)间隔是1

Node1上的httpd服务停止,Node1变成backup


Node2上的httpd服务启动,Node2变成master

 

重启Node2上的keepalived服务:

Vipnode2漂移到了node1



在重启keepalived的时候,每个节点的VIP会进行漂移,在VIP漂移到某个节点的时候,这个节点的httpd服务也相应会起来。而没有VIP节点的httpd服务会关闭。

比如:

Node1IP172.16.0.121

Node2IP172.16.0.122

VIP172.16.0.120

Httpd的服务在哪个节点,那么就可以通过那个节点的IPVIP共同访问Apache的测试网页。


6、  用插拔网线来测试服务漂移情况

拔出Node1上的网线:


服务漂到Node2


插上Node1上的网线:






Node2VIP没有漂回到Node1,因为在Node1上设置了非抢占模式

拔出Node2的网线



VIP漂到了Node1


插上Node2的网线




VIP仍然在node1上,没有漂到node2

测试OK

表示keepalived的非抢占模式成功

如果遇到非抢占模式不成功的话,因为这两台服务器都是通过交换机连接的,可以把连接交换机的端口设置为快速转发即可

int eth 1/0/1
stp disable
stp edged-port enable

因为可能是网络端口的延迟导致了非抢占不生效,比如说拔下node1的网线再插上,可能系统认为网络端口已经起来了,但是因为stp的存在,导致两台服务器网络之间的互信有延迟,node1可能认为node2是非存活状态,就把自己当做master拉起来了,等两端网络互信完成,就没有通过非抢占,而是直接比较优先级,node1优先级高,继续维持master状态。

所以这里加快了网络端口的转发速度,使网络端口在第一时间实现互通,node1第一时间认为node2是存活的,就应用了非抢占模式,node1变成了backupnode2还是做master


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22996654/viewspace-2121215/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/22996654/viewspace-2121215/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值