目录

通过KeepalivedLVS搭建DR模式的高可用集群系统保姆级教程

通过Keepalived+LVS搭建DR模式的高可用集群系统保姆级教程

https://i-operation.csdnimg.cn/images/cf31225e169b4512917b2e77694eb0a2.pngKeepalived+LVS DR模式高可用集群搭建

一、ipvs与ipvsadm

1.1、ipvs与ipvsadm是什么

LVS 由2部分程序组成【ipvs】 和【 ipvsadm】:
        《1》ipvs(ip virtual server):是一段代码工作在内核空间netfilter的PREROUTING后面,INPUT前面的框架,叫ipvs,是真正生效实现调度的代码。
        《2》 ipvsadm:是工作在用户空间,负责为ipvs内核框架编写规则,定义谁是集群服务,而谁是后端真实的服务器(Real Server)
        简单的说:ipvsadm是Linux下的LVS虚拟服务器的管理工具,LVS工作于内核空间,而ipvsadm则提供了用户空间的接口。

1.2、安装部署ipvsadm

        IPVS的官方网站为【http://www.linuxvirtualserver.org/software/ipvs.html】, 提供的软件包有源码方式的也有rpm方式的,这里介绍通过yum方式安装IPVS,这里采用的操作系统为Almalinux9.3版本,因此,在服务器上直接执行如下操作进行安装:

#使用yum安装IPVS
yum install ipvsadm -y

#验证IPVS是否安装成功(若执行该命令后会显示一长串的语法提示则表示成功,否则失败)
ipvsadm --help

https://i-blog.csdnimg.cn/direct/73ba3118a7f6449e90c6444083512bf0.png

#使用IPVS源码进行安装

#1-下载IPVS的源码包到/data目录下
wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.26.tar.gz -c 0 -P /data

#2-进入/data目录下解压IPVS源码压缩包,并进入IPVS的源码目录内
cd /data
tar -zxvf ipvsadm-1.26.tar.gz
cd ipvsadm-1.26/

#3-编译IPVS源码
make

#3.1-当编译IPVS源码时出现错误,是由于当前系统环境缺少了编译IPVS的依赖包,需要安装这些依赖包
yum install -y gcc-c++ libnl* libpopt* popt-static

#4-安装IPVS
make install

#5-验证IPVS是否安装成功(若执行该命令后可以显示一大串使用语法内容则表示IPVS安装成功,否则失败)
ipvsadm -h

注意:在使用源码进行安装IPVS的时候可能会出现的错误有:

《1》“ip_vs.h:15:29: 致命错误:netlink/netlink.h:没有那个文件或目录”。

《2》“ake[1]: gcc:命令未找到   make[1]: *** [libipvs.o] 错误 127”。

 当出现这些类似的编译错误时,是由于当前系统缺失了编译IPVS源码所需的依赖包导致的,此时只需要执行【yum install -y gcc-c++ libnl libpopt popt-static**】命令将所需依赖包全部安装上后再次编译就可以正常编译成功了。

https://i-blog.csdnimg.cn/direct/93478c14c7944ae299f4ed26ac6c94c0.png

https://i-blog.csdnimg.cn/direct/e1fb7fd7d4404a308a3cbd90880eb325.png

https://i-blog.csdnimg.cn/direct/f639c677ce7b4e59b9017d0692559b3c.png

二、使用Keepalived搭建LVS高可用性集群系统

2.1、应用环境准备

        准备四台物理机或虚拟机,使⽤RHEL9/Almalinux9.3及其更高系统(192.168.1.9、192.168.1.36、192.168.1.37、192.168.1.38)。

应用环境准备

序号节点类型IP地址规划类型
1主Director Server (即LVS)ens33:192.168.1.9Public IP
VIP:    192.168.1.226Virtual IP
2备Director Serverens33:192.168.1.36Public IP
3Real Server 1ens33:192.168.1.37Public IP
lo:       192.168.1.226Virtual IP
4Real Server 2ens33:192.168.1.38Public IP
lo:       192.168.1.226Virtual IP

,可以对WWW服务、FTP服务、MAIL服务等进行负载均衡。下面通过3个实例详细讲述如何搭建WWW服务的高可用LVS集群系统,以及基于DR模式的LVS集群配置。地址规划如下表所示。

https://i-blog.csdnimg.cn/direct/f956018378d54affa67ce1a308310670.png

2.2、在Real Server服务器上安装部署Apache的Web服务

        现在两台Real Server服务器(192.168.1.37、192.168.1.38)上安装部署最基础的Apache的Web服务,详细操作流程如下:

#在Real Server服务器上安装部署Apache的Web流程

#1-快捷安装Apache Web服务
yum install httpd -y

#2-启动Apache Web服务
systemctl start httpd
systemctl status httpd

#3-进入httpd的默认网站目录(/var/www/html/)创建一个名为index.html的文件
#(且直接将该文件的内容设置为该服务器的IP地址)
#【Apache的默认配置路径是(/etc/httpd);默认配置文件是(/etc/httpd/conf/httpd.conf)】
cd /var/www/html/
ip addr
echo "192.168.1.38" >> index.html

#4-永久放开服务器的80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-port

#5-在浏览器中分别输入Real Server服务器的IP地址查看是否可以显示自己服务器的IP地址内容(建议使用浏览器的无痕标签,防止有缓存影响)
192.168.1.37
192.168.1.38

https://i-blog.csdnimg.cn/direct/d55e0b565188468ab0b003e5e5781a67.png

https://i-blog.csdnimg.cn/direct/b96661428c7842929c8f10166549895f.png

https://i-blog.csdnimg.cn/direct/76e34dbe1acc432ab7b0b20330a26b16.gif

2.3、在Director Server服务器上安装Keepalived

        我们先在【192.168.1.9】服务器上配置,让后再将配置好的内容复制一份传输到另外一台服务器【192.168.1.36】上修改即可,详细的操作流程如下:

2.4、在Director Server服务器上解析Keepalived配置内容

        Keepalived的配置非常简单,仅需要一个配置文件即可完成对HA cluster和LVS服务节点监控。在通过Keepalived搭建高可用的LVS集群实例中(主、备Director Server都需要安Keepalived软件),安装成功后,默认的配置文件路径为/etc/Keepalived/Keepalived.conf。一个完整的keepalived配置文件由三个部分组成,分别是全局定义部分、vrrp实例定义部分以及虚拟服务器定义部分,下面详细介绍这个配置文件中每个选项的详细含义和用法。

2.4.1、Keepalived【全局配置】模块及其说明

#Keepalived的全局配置内容

global_defs {
   notification_email {
     #设置报警邮件地址,可以设置多个;每行设置一个邮件地址(注意,如果要开启邮件报警,需要开启本机的Sendmail服务)
     dba.ck@gmail.com    	
     ck@163.com
   }
   notification_email_from Keepalived@localhost    	#设置邮件的发送地址
   smtp_server 192.168.200.1						#设置smtp server地址
   smtp_connect_timeout 30						    #设置连接smtp server的超时时间
   router_id LVS_DEVEL					            #表示运行Keepalived服务器的一个
    #标识。发邮件时显示在邮件主题中的信息
}

2.4.2、Keepalived【vrrp实例配置】模块及其说明

#Keepalived的vrrp实例配置内容

vrrp_instance VI_1 {
    state MASTER            #指定Keepalived的角色,MASTER表示此主机是主服务器,BACKUP表示此主机是备用服务器
    interface eth0	        #指定HA监测网络的接口(可通过ip addr查看服务器的物理网卡名称)
    virtual_router_id  51	#虚拟路由标识,这个标识是一个数字(同一个vrrp实例使用唯一的标识)即同一个vrrp_instance下,MASTER和BACKUP必须是一致的
    priority 100	        #定义优先级,数字越大,优先级越高。在一个vrrp_instance下,MASTER的优先级必须大于BACKUP的优先级
    advert_int 1  	        #设定MASTER与BACKUP负载均衡器之间同步检查的时间间隔(单位是:秒)
    authentication {	    #设定验证类型和密码(MASTER与BACKUP必须使用相同的密码,才能正常通信)
        auth_type PASS	    #设置验证类型,主要有PASS和AH两种
        auth_pass 1111	    #设置验证密码,在一个vrrp_instance下,
    }
    virtual_ipaddress {	    #设置虚拟IP地址,可以设置多个虚拟IP地址,每行一个。
        192.168.1.226
    }
}

2.4.3、Keepalived【虚拟服务器配置】模块及其说明

#Keepalived的虚拟服务器配置内容及其说明

virtual_server 192.168.1.226 80 {    #设置虚拟服务器,需要指定虚拟IP地址和服务端口,IP与端口之间用空格隔开
    delay_loop 6					 #设置运行情况检查时间(单位是:秒)
    lb_algo rr						 #设置负载调度算法,这里设置为rr(即轮询算法)
    lb_kind DR                       #设置LVS实现负载均衡的机制,有NAT、TUN、和DR三个模式可选
    persistence_timeout 50           #会话保持时间(单位是:秒)这个选项对动态网页是非常有用的,为集群系统中的session共享提供了一个很好的解决方案。有了这个会话保持功能,用户的请求会被一直分发到某个服务节点,直到超过这个会话的保持时间【需要注意的是,这个会话保持时间是最大无响应超时时间(也就是说,用户在操作动态页面时,如果在50秒内没有执行任何操作,那么接下来的操作会被分发到另外节点,但是如果用户一直在操作动态页面,则不受50秒的时间限制)】。
    protocol TCP					 #指定转发协议类型,有TCP和UDP两种

    real_server 192.168.1.37 80 {	 #配置服务节点1,需要指定real server的真实IP地址和端口,IP与端口之间用空格隔开
        weight 3	                 #配置服务节点的权值,权值大小用数字表示,数字越大,权值越高,设置权值的大小可以为不同性能的服务器分配不同的负载,可以为性能高的服务器设置较高的权值,而为性能较低的服务器设置相对较低的权值,这样才能合理地利用和分配了系统资源
        TCP_CHECK {					 #real server的状态检测设置部分(单位是:秒)
            connect_timeout 3        #表示3秒无响应超时
            retry 3		             #表示重试次数
            delay_before_retry 3     #表示重试间隔
        } 
    }

    real_server 192.168.1.38 80 {	 #配置服务节点2
        weight 1			
        TCP_CHECK {
            connect_timeout 3    
            retry 3            
            delay_before_retry 3 
        } 
    }
}

2.4.4、在Director Server服务器上配置Keepalived内容

在配置Keepalived.conf时,需要特别注意配置文件的语法格式,因为Keepalived在启动时并不检测配置文件的正确性,即使没有配置文件,Keepalived也照样能够启动,所以一定要保证配置文件正确。在默认情况下,Keepalived在启动时会查找【/etc/Keepalived/Keepalived.conf】配置文件,如果配置文件放在了其他路径下,可以通过【Keepalived  -f】参数指定配置文件的路径即可。

#一、先在Direcotr Server主服务器(192.168.1.9)上配置Keepalived内容
#1-进入keepalived的默认配置路径
cd /etc/keepalived/
vi keepalived.conf

#2-主节点keepalived的配置文件【/etc/keepalived/keepalived.conf】内容
global_defs {
   notification_email {
     dba.ck@gmail.com 
     ck@163.com
   }
   notification_email_from keepalived@localhost
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}

vrrp_instance HA_1 {
    state MASTER
    interface ens33
    virtual_router_id 151
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass qwer1234
    }

    virtual_ipaddress {
        192.168.1.226
    }
}

virtual_server 192.168.1.226 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    #persistence_timeout 50
    protocol TCP
 
    real_server 192.168.1.37 80 {
        weight 2
        TCP_CHECK {
            connect_timeout 3
            retry 3
            delay_before_retry 3
        }
    }
 
    real_server 192.168.1.38 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            retry 3
            delay_before_retry 3
        } 
    }
}



#二、后在Direcotr Server备用服务器(192.168.1.36)上配置Keepalived内容
#1-将主服务器上配置好的keepalived.conf配置文件复制传输一份给备用服务器
scp keepalived.conf root@192.168.1.36:/etc/keepalived/

#2-进入备用服务器的keepalived的默认配置文件路径编辑配置文件(即:修改keepalived.conf配置文件中的【state MASTER】更改为【state BACKUP】;【priority 100】更改为一个较小的值,这里改为【priority 80】)后保存;
cd /etc/keepalived/
vi keepalived.conf


#三、验证测试
#1-先分别打开Director Server的新终端,并且监测日志方便观察
tail -f /var/log/message

#2-先启动Dirictor Server的主节点服务器(192.168.1.9)的keepalived服务,并且查看是否绑定了vip【192.168.1.226】
systemctl status keepalived.service
systemctl start keepalived.service
ip addr

#3-查看Director Server主服务器的负载均衡状态(若提示没有ipvsadm命令则需要执行【yum install ipvsadm -y】命令安装即可)
ipvsadm -L -n

#4-建议在浏览器的无痕标签页中输入VIP地址(192.168.1.226)查看(此时会长时间转圈,无法显示此页内容,192.168.1.226响应时间太长)
192.168.1.226

《1》先在Direcotr Server主服务器(192.168.1.9)上配置Keepalived内容如下图所示:

https://i-blog.csdnimg.cn/direct/87dd0ee25a534d4ab6bacbbbad734093.png

https://i-blog.csdnimg.cn/direct/9173af78dbf7476e9735cdc54c7a8dfa.png

https://i-blog.csdnimg.cn/direct/5c48edcb863b4bf79482762c1e6ba907.png

《2》后在Direcotr Server备用服务器(192.168.1.36)上配置Keepalived内容如下图所示:

https://i-blog.csdnimg.cn/direct/10a3a036a5e24bc48d19fdf4776af34a.png

https://i-blog.csdnimg.cn/direct/f0489eadfa744b9ba99096e72ff557a1.png

《3》验证测试keepalived的主节点和备用节点

https://i-blog.csdnimg.cn/direct/a2f2508d6ae244bf994231912e492358.png

https://i-blog.csdnimg.cn/direct/b0cd723ce2ad4f518c8a4e377b789c41.png

https://i-blog.csdnimg.cn/direct/b7c3313dfeef4bc38f21d32025fd809d.png

https://i-blog.csdnimg.cn/direct/14c52bb72c9f4f228f582d38df5a171e.png

2.4.5、在Real Server服务器上配置VIP节点

 在LVS的DR和Tun模式下,用户的访问请求到达真实服务器后,是真实服务器直接返回给用户的,而不再经过前端的Director Server,因此,就需要在每个Real server节点上增加虚拟的VIP地址,这样数据才能直接返回给用户,增加VIP地址的操作可以通过创建脚本的方式来实现,创建文件/etc/init.d/lvsrs。

        由于虚拟IP,也就是VIP地址,是Director Server和所有的Real server共享的,如果有ARP请求VIP地址时,Director Server与所有Real server都做应答的话,就出现问题了,因此,需要禁止Real server响应ARP请求。而lvsrs脚本的作用就是使Real Server不响应arp请求。

#在回环设备【lo】上绑定了一个虚拟IP地址【192.168.1.226】,并设定其子网掩码为255.255.255.255,与Director Server上的虚拟IP保持互通,然后禁止了本机的ARP请求的脚本内容:

#!/bin/bash
VIP=192.168.1.226
/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
echo “1″ >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo “2″ >/proc/sys/net/ipv4/conf/lo/arp_announce
echo “1″ >/proc/sys/net/ipv4/conf/all/arp_ignore
echo “2″ >/proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p
#end
#真正实现在Real Server服务器上配置VIP节点脚本操作流程

#1-先安装脚本运行包
yum install chkconfig -y

#2-进入脚本运行环境目录
cd /etc/init.d/
mkdir functions

#3-创建实现【Real Server】服务器上配置VIP节点的脚本文件
cd /etc/init.d/functions
vi lvsrs

#3.1-lvsrs文件实现配置VIP节点的脚本内容:
#!/bin/bash
#description : Start Real Server 
VIP=192.168.1.226
.  /etc/rc.d/init.d/functions
case "$1" in
    start)
        echo " Start LVS  of  Real Server"
        /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
        /sbin/route add -host $VIP dev lo:0
        echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
        echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
        echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
        echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce 
        ;;
    stop)
        /sbin/ifconfig lo:0 down
        echo "close LVS Director server"
        echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
        echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
        echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
        echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
        ;;
    *)
        echo "Usage: $0 {start|stop}"
        exit 1
esac


#4-修改lvsrs文件的权限并启动
chmod 755 /etc/init.d/functions/lvsrs
/etc/init.d/functions/lvsrs start

#5-查看本机的路由信息
ip route

https://i-blog.csdnimg.cn/direct/3e12993a7b26491dbe498e7b2ddd4177.png

https://i-blog.csdnimg.cn/direct/f007138255e14dd0ab08ce6eed4962e6.png

https://i-blog.csdnimg.cn/direct/4f8ba15b8ce84b74baa71fa56f18bea8.png

https://i-blog.csdnimg.cn/direct/de24d84a625148b7ab550831746f82a2.png

等Real Server服务器否配置上VIP节点后再到浏览器中输入VIP地址查看httpd网站是否可以正常显示:

https://i-blog.csdnimg.cn/direct/0c0ad7fc11bf40b383b3c4b9c8eaae75.png

https://i-blog.csdnimg.cn/direct/81f9310b16884c7e9f87c3d7b2126fc4.png

三、测试高可用LVS负载均衡集群系统

3.1、运行高可用LVS负载均衡集群系统

#运行高可用LVS负载均衡集群系统流程(DR模式)

#1-检查Director Server的主备服务器(192.168.1.9、192.168.1.36)的keepalived服务是否运行(若未运行则启动)
systemctl status keepalived.service
systemctl start keepalived.service

#2-检查Real Server真实网站等服务器((192.168.1.37、192.168.1.38))的回环设备lo是否绑定上VIP(192.168.1.226)(若没有绑定上则运行【/etc/init.d/functions/lvsrs start】命令绑定)
ip addr
/etc/init.d/functions/lvsrs start

https://i-blog.csdnimg.cn/direct/df7c163968a345f6ae2af2033eede045.png

https://i-blog.csdnimg.cn/direct/4117fae4b9f64a148072a6f3dcf1e896.png

3.2、安装压力测试工具Siege并压测集群

#安装部署压力测试工具Siege流程

#0-安装源码编译所需的常用依赖包
yum install -y gcc gcc-c++ wget popt-devel openssl openssl-devel

#1-下载压力测试工具Siege源码包并解压
wget https://download.joedog.org/siege/siege-4.1.7.tar.gz -c 0 -P /data
cd /data
tar -zxvf siege-4.1.7.tar.gz

#2-检查当前系统是否满足Siege的编译环境,且指定编译后的路径
cd /data/siege-4.1.7/
./configure --prefix=/usr/local/siege --with-ssl=/usr/local/openssl

#3-编译安装Siege
make
make install

#4-将压力测试工具Siege设置为全局可用
ln -s /usr/local/siege/bin/siege /usr/bin/siege

#5-查看压力测试工具Siege的帮助
siege -h
#压力测试工具Siege的常用示例

#1-实现200个并发对【http://192.168.1.226】发送1000次请求示例
siege -c 200 -r 1000 http://192.168.1.226

#2-实现200个并发对【urls.txt】文件中的所有网址发送1000次请求示例
siege -c 200 -r 1000 -f urls.txt

#3-实现200个并发对【urls.txt】文件中的随机选取的网址发送1000次请求示例
siege -c 200 -r 1000 -f urls.txt -i

#4-实现0延迟200个并发对【urls.txt】文件中的随机选取的网址发送1000次请求示例
siege -c 200 -r 1000 -f urls.txt -i -b

#5-发送post请求,在网址后添加POST地址,且POST后这是参数
siege -c 200 -r 1000 http://www.baidu.com/ POST k1=v1&k2=v2

压力测试工具Siege的常用参数说明

序号压力测试工具Siege常用参数说明
1-V显示版本号
2-h显示帮助信息
3-C显示当前配置信息
4-g获取http头信息
5-p显示整个页面内容
6-c NUM并发用户数量(默认10个)
7-r NUM运行的次数
8-d NUM随机延迟秒数
9-b请求没有延迟(即:0延迟)
10-i模拟网络用户随机点击URL
11-f选择指定的URL文件
12-t NUM持续测试的时间(秒(如10S),分钟(10M),小时(10H))
13-l –log运行结束,将统计数据保存到日志文件中siege .log, 默认位于【/usr/local/var/siege .log】中,也可在.siegerc中自定义
14-H给请求添加头信息,支持添加多个请求头信息
15-T给请求设置Content-Type
16-A给请求设置User-Agent

压力测试工具结果参数说明

序号压力测试工具Siege结果说明说明
1Transactions命中的总次数
2Availability命中率
3Elapsed time整个压测花费的总时间(即:从第一个开始到最后一个结束的时间总合)
4Data transferred整个压测数据传输的总大小
5Response time响应时间(即:响应每个模拟用户请求所花费的平均时间)
6Transaction rate事务速率(即:服务器每秒能够处理的平均事务数量;事务除以经过的时间)
7Throughput吞吐量(从服务器到所有模拟用户每秒传输的平均字节数)
8Concurrency并发(同时连接的平均数量)
9Successful transactions成功事务次数
10Failed transactions失败事务次数
11Longest transaction最长事务时间
12Shortest transaction最短事务时间

https://i-blog.csdnimg.cn/direct/75fc917c51914584a280ee803ae2008b.png

https://i-blog.csdnimg.cn/direct/98e8a068673d402fb5705279abc20e63.png

https://i-blog.csdnimg.cn/direct/9bceb8308c8e47659a03214f47e02c74.png

https://i-blog.csdnimg.cn/direct/2cc8b058ed504828bd7fd3d0c3b18819.png

https://i-blog.csdnimg.cn/direct/166cc3a0a1e7407bafb0527ee6193ccb.png

https://i-blog.csdnimg.cn/direct/bcb7a7188d224154ad0927618e1ad7c9.png

https://i-blog.csdnimg.cn/direct/1571553b736e437983a477a2085d66f2.png

压测高可用LVS负载均衡集群系统(使用新的Linux服务器【192.168.1.11】对集群进行压测)

#在同一网络内用一台新的服务器(192.168.1.11)来压测我们搭建好的高可用LVS负载均衡集群系统示例
#(如:模拟200个用户都发起1000次请求到【http://192.168.1.226】链接)
siege -c 200 -r 1000 http://192.168.1.226


#2-在压测的同时可以到Director Server的服务器上查看LVS的负载均衡连接情况
#2.1-查看集群LVS的统计情况
ipvsadm -L -n
#2.2-查看集群LVS的详细情况
ipvsadm -L -nc

https://i-blog.csdnimg.cn/direct/0cc10679cea64d00b2c31576a0d8f67e.png

https://i-blog.csdnimg.cn/direct/d01618e2e505439ab3dcecd656e65f6d.png

https://i-blog.csdnimg.cn/direct/205855b180fa4f54b3294e6f52d62abc.png

https://i-blog.csdnimg.cn/direct/5923c51dae1646c99a7ef158e435c520.png

3.3、高可用LVS负载均衡集群功能测试

        高可用的LVS负载均衡系统能够实现LVS的高可用性、负载均衡特性和故障自动切换特性,因此,对其进行的测试也针对这三个方面进行,这里对Keepalived+LVS实例进行测试。

3.3.1、高可用性功能测试

高可用性是通过LVS的两个Director Server完成的,为了模拟故障,先将主Director Server(192.168.1.9)上面的Keepalived服务停止,然后观察备用Director Server(192.168.1.36)上Keepalived的运行日志。

#高可用性功能测试流程1——停止Director Server1的keepalived服务

#1-先分别打开Director Server(192.168.1.9、192.168.1.36)的新终端,并且监测日志方便观察
tail -f /var/log/message

#2-先停止Director Server1(192.168.1.9)的keepalived服务后查看其对应的通用日志
systemctl stop keepalived.service

#3-查看Director Server2(192.168.1.36)的上LVS负载均衡信息和VIP绑定情况;然后在浏览器访问(192.168.1.226)看是否可以访问到Apache的Web服务httpd内容
ipvsadm -L -n
ip addr

https://i-blog.csdnimg.cn/direct/c9889d8883be4bf091266bf060e51ce3.png

https://i-blog.csdnimg.cn/direct/c62c1c26cea0460ea71cdd6a53eaad15.png

https://i-blog.csdnimg.cn/direct/1b9baaf4ffbe49aab12ec0ecea5df87a.png

https://i-blog.csdnimg.cn/direct/e8f94a80e6b84eb580ed5a7647f1c531.png

https://i-blog.csdnimg.cn/direct/5f2c96d7134041c5b3d6a853a89e0d08.png

        此时虽然Director Server1(192.168.1.9)主节点的服务器的keepalived的服务已经停止,但是仍然可以正常使用VIP(192.168.1.226)访问Real Server的Apache的Web的httpd服务,如下图所示:

https://i-blog.csdnimg.cn/direct/0c0ad7fc11bf40b383b3c4b9c8eaae75.png

https://i-blog.csdnimg.cn/direct/81f9310b16884c7e9f87c3d7b2126fc4.png

#高可用性功能测试流程2——启动Director Server1的keepalived服务

#1-先分别打开Director Server(192.168.1.9、192.168.1.36)的新终端,并且监测日志方便观察
tail -f /var/log/message

#2-先启用Director Server1(192.168.1.9)的keepalived配置文件的【persistence_timeout 50】,然后在启动keepalived服务后查看其对应的通用日志
vi /etc/keepalived/keepalived.conf
systemctl start keepalived.service

#3-查看Director Server2(192.168.1.36)的上LVS负载均衡信息和VIP绑定情况;然后在浏览器访问(192.168.1.226)看是否可以访问到Apache的Web服务httpd内容(此时我们可以在局域网内的一台新Linux服务器上执行压力测试VIP,可以看到所有连接都集中在备用服务器(192.168.1.36)上)
ipvsadm -L -n
ip addr

https://i-blog.csdnimg.cn/direct/60d5d10470f241bea73b8f4c36cbe7f5.png

https://i-blog.csdnimg.cn/direct/4318857d3abd487eb3fbde278ecaf070.png

https://i-blog.csdnimg.cn/direct/143be92470f04585a9bb3e8a6bd6b908.png

https://i-blog.csdnimg.cn/direct/99283158d8634a84b4f71ef4c58da57a.png

https://i-blog.csdnimg.cn/direct/9f82aa0e717a40d284acbcdde4158870.png

https://i-blog.csdnimg.cn/direct/2c777ab7eafb4a0fa8dc9d690700b802.png

https://i-blog.csdnimg.cn/direct/2dddf2f252774325bed35df8ded708c6.png

3.3.2、负载均衡测试

        我们这里两个Real Server节点上配置WWW服务的网页文件的根目录均为【/var/www/html/】目录,然后分别执行如下操作:
《1》在real  server1 (192.168.1.37)执行:

 echo "192.168.1.37"  /var/www/html/index.html

《2》在real  server2(192.168.1.38) 执行: 

 echo "192.168.1.38" /var/www/html/index.html

        接着打开浏览器,使用无痕模式打开标签页,访问【http://192.168.1.226】这个地址,然后不断刷新此页面,如果能分别看到“192.168.1.37”和“192.168.1.38”就表明LVS已经在进行负载均衡了。

https://i-blog.csdnimg.cn/direct/0c0ad7fc11bf40b383b3c4b9c8eaae75.png

https://i-blog.csdnimg.cn/direct/81f9310b16884c7e9f87c3d7b2126fc4.png

3.3.3、故障切换测试

 故障切换是测试在某个节点出现故障后,Keepalived监控模块是否能及时发现,然后屏蔽故障节点,同时将服务转移到正常节点上执行。
    这里将real server 1节点(192.168.1.37)上的Apache的Web服务httpd停掉,若这个节点出现故障,然后查看主、备机日志信息。

#故障测试流程1——先停止Real Server的httpd服务

#1-先分别打开Director Server(192.168.1.9、192.168.1.36)的新终端,并且监测日志方便观察
tail -f /var/log/message

#2-到Real Server(192.168.1.37)服务器上将Apache的Web服务httpd停止
systemctl stop httpd

#3-再次打开Director Server(192.168.1.9)的新终端,并且查看LVS的负载均衡情况(此时VIP【192.168.1.226:80】对应的就只有【192.168.1.38:80】了;我们再打开浏览器访问VIP地址界面也只显示192.168.1.38了)
ipvsadm -L -n

https://i-blog.csdnimg.cn/direct/e0d35401aced4e018f56ba7e8eca656e.png

https://i-blog.csdnimg.cn/direct/7b27cec521484b25a983955a365e3f34.png

https://i-blog.csdnimg.cn/direct/6a454d9650d7470284e75830eb7b2e93.png

https://i-blog.csdnimg.cn/direct/f9bd82240c844e8dac68474d63bd3eab.png

https://i-blog.csdnimg.cn/direct/5435a312e8db4739b78809541020ace8.png

https://i-blog.csdnimg.cn/direct/4bf3296b467549758d7b575243827891.png

https://i-blog.csdnimg.cn/direct/204a406bf7b846229fdc7494eef9a5f3.png

#故障测试流程2——恢复上面停止的Real Server的httpd服务

#1-先分别打开Director Server(192.168.1.9、192.168.1.36)的新终端,并且监测日志方便观察
tail -f /var/log/message

#2-到Real Server(192.168.1.37)服务器上将Apache的Web服务httpd启动
systemctl start httpd

#3-再次打开Director Server(192.168.1.9)的新终端,并且查看LVS的负载均衡情况(此时VIP【192.168.1.226:80】对应的就两个【192.168.1.37:80、192.168.1.38:80】都存在了;我们再打开浏览器访问VIP地址界面也可以分别显示192.168.1.37、192.168.1.38了)
ipvsadm -L -n

https://i-blog.csdnimg.cn/direct/f819a8ef801b4955952ed5e7de5db7af.png

https://i-blog.csdnimg.cn/direct/d1b40d61a28047a398f47269985be984.png

https://i-blog.csdnimg.cn/direct/bf58bcfd256f459296c45267c0b67ae5.png

https://i-blog.csdnimg.cn/direct/48606007cb9e4676b17ec472b9361d30.png

https://i-blog.csdnimg.cn/direct/a45603f8cba340969201926178110892.png

https://i-blog.csdnimg.cn/direct/48d23c2e799d443a83fbf111bc1bcb76.png

https://i-blog.csdnimg.cn/direct/0c0ad7fc11bf40b383b3c4b9c8eaae75.png

https://i-blog.csdnimg.cn/direct/81f9310b16884c7e9f87c3d7b2126fc4.png