最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

Keepalived HA配置和测试过程for linux

来源:动视网 责编:小OO 时间:2025-09-24 11:05:24
文档

Keepalived HA配置和测试过程for linux

Keepalived配置和测试过程forlinux安装环境:两台server:Systemx3650M3Node1:硬盘:130GCPU:2颗E5620@2.40GHz内存:4GNode2:硬盘:130GCPU:2颗E5620@2.40GHz内存:8G1、安装redhat6.4系统用U盘安装rhel-server-6.4-x86_-dvd.iso分区:/boot200M/boot/efi200MSwap4096M/13000M只安装Basic版本,不要安装桌面需要在language里面选择
推荐度:
导读Keepalived配置和测试过程forlinux安装环境:两台server:Systemx3650M3Node1:硬盘:130GCPU:2颗E5620@2.40GHz内存:4GNode2:硬盘:130GCPU:2颗E5620@2.40GHz内存:8G1、安装redhat6.4系统用U盘安装rhel-server-6.4-x86_-dvd.iso分区:/boot200M/boot/efi200MSwap4096M/13000M只安装Basic版本,不要安装桌面需要在language里面选择
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_-dvd.iso

分区:

/boot        200M

/boot/efi     200M

Swap        4096M

/            13000M

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

需要在language里面选择chinese包

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

Node1:

Node2:

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服务:Vip从node1漂移到了node2

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

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

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

重启Node2上的keepalived服务:

Vip从node2漂移到了node1

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

比如:

Node1的IP:172.16.0.121

Node2的IP:172.16.0.122

VIP:172.16.0.120

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

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

拔出Node1上的网线:

服务漂到Node2上

插上Node1上的网线:

Node2的VIP没有漂回到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变成了backup,node2还是做master。

文档

Keepalived HA配置和测试过程for linux

Keepalived配置和测试过程forlinux安装环境:两台server:Systemx3650M3Node1:硬盘:130GCPU:2颗E5620@2.40GHz内存:4GNode2:硬盘:130GCPU:2颗E5620@2.40GHz内存:8G1、安装redhat6.4系统用U盘安装rhel-server-6.4-x86_-dvd.iso分区:/boot200M/boot/efi200MSwap4096M/13000M只安装Basic版本,不要安装桌面需要在language里面选择
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top