linux测试机配置,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

f680c86e9bc3613ebc365deeee4a8847.png

ba920121798efd0b0849d02f306497d3.png

2、设置keepalived

Node1:

f6c798d68d568e4fedd544a40eb8f88f.png

! 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:

985cea20cdc0fbdf8fbb72884d68352f.png

! 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:

ab3e57a85ca4d8b46cc453f789bb7b28.png

#!/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

;;

esacNode2:

a713f85eb37b6a927daf906fa7e3b1bc.png

#!/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、其他设置

关闭两个系统的防火墙

8d68c45b8004af6f4d96009af8658e97.png

6e15fb5eb921b03c55dd8961c734b1b7.png

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

5、进行keepalived服务切换试验

初始状态:

Node1:

7b1ed9fe8a50159e290fde4a7f8fce65.png

91e0fac61f18ed0bbfbd43d25ce68ed2.png

Node2:

e27cf87fcb789502115f3aa9571c1ffc.png

2f5a20fc22f29fdeb262f662e55e5e43.png

重启Node1上的keepalived服务:Vip从node1漂移到了node2

b98f7ac46a98a31860b7cc063b3890f3.png

33694ede656332fa1b176980363d1e4b.png

97bfda10a2dc84033bbad96d834783ab.png

1b3a7ac2d925cf6ccbbaf93dc88a9fe7.png

VIP掉了一个包(advert_int

1          #心跳区间设置为1秒)间隔是1秒

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

a0733feb187457fb1a20abbc7a406166.png

30d4d618b7fef20d93920510ea9b9a07.png

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

重启Node2上的keepalived服务:

Vip从node2漂移到了node1

d27a5df3d2d812e8cae4ea1cce8a8a51.png

c8c1d776cfb3fec6ce16ce2a971d6659.png

7276a2e68453f533961d869af0f1f045.png

d861dc32b59f27f9af9d36f3ed4ade9b.png

在重启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的测试网页。

e8bd98b2038500e50fc6dffb995c6920.png

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

拔出Node1上的网线:

6f867cf8438ba10a192da19c218b5b39.png

d591854f5f331e7d24f891f195234a0f.png

服务漂到Node2上

3021a3b3459c448b17bdace4f132d808.png

插上Node1上的网线:

d89bb0cd342fd0979c431764a057e812.png

789b54059d5a0b204b0f279a25aaffca.png

737a316cddaf8ef50e9ef02621af4239.png

8082c7be9b9443037bac66765e50701f.png

13e50ae1e53e20d50eb43000fb3dd43e.png

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

拔出Node2的网线

f760ccb394170b701a669c6df0ddbed4.png

9f56e56c543923583fc9d93fd033de1c.png

VIP漂到了Node1上

3313994ec87727befc5a184c25c71f86.png

插上Node2的网线

e00d2a1f76f9d58c8487f55fa3427da2.png

32edd231d2d3e5d3c9e67f8877c6ccde.png

f37f1fb2f74bb57dc94f25a8bffcb264.png

70e58ad845f357c4149a003f3690b1ce.png

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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值