美文网首页系统性能优化
ipvsadm搭建NAT模式配置负载均衡LVS

ipvsadm搭建NAT模式配置负载均衡LVS

作者: 刘小白DOER | 来源:发表于2021-06-11 22:25 被阅读0次

    以前笔者总结过一篇文章-数据中心负载均衡的一点总结  ,里面说明了四层与七层负载均衡,四层就是基于IP+端口(四层协议)的负载均衡(比如NAT),七层就是基于URL等应用层信息的负载均衡(比如nginx) 。笔者配置过七层转发,Nginx反向代理,Docker Nginx反向代理配置web负载均衡实践 。今天就来测试实践四层转发。

      ipvs称之为IP虚拟服务器(IP Virtual Server,简写为IPVS),是运行在LVS下的提供负载平衡功能的一种技术,通过IPVS模块来实现的,具体实现是由ipvsadm这个程序来完成。今天在VirtualBox中的配置为NAT网络的centos8虚拟机、安装LAMP的两个树莓派上来测试。客户端就使用centos8虚拟机的cmd上运行curl来测试。

结构图

1、调度器上安装并启动ipvsadm

    yum  install  ipvsadm  -y 。安装完成后可以通过rpm -qa | grep ipvsadm 来检查是否安装成功 。确定安装完成后 笔者使用root用户来启动ipvsadm服务:systemctl start ipvsadm,但是会报错:Job for ipvsadm.service failed because the control process exited with error code。根据提示使用journalctl -xe来查看具体的失败信息,其中有一条信息是: /etc/sysconfig/ipvsadm: 没有那个文件或目录。

    systemctl status ipvsadm查看服务状态信息,也会提示这个信息:/etc/sysconfig/ipvsadm: 没有那个文件或目录。在搜索引擎搜索故障,于是使用命令来建立这样的文件:ipvsadm --save > /etc/sysconfig/ipvsadm 。再次开启后正常,具体原因未知。

2、在调度器上打开ip转发

    编辑配置文件/etc/sysctl.conf ,写入net.ipv4.ip_forward =1 ,最后运行sysctl -p 使之生效 。

3、在树莓派上安装LAMP作为后端服务器

    具体就不阐述了,以前的文章有很多方面的知识。在/var/www/html目录下新建ip.php文件,里面标识ip地址来区分不同的服务器。

4、调度器上配置lvs进程调度

     ipvsadm -A -t 10.0.2.15:80 -s rr  :  -A参数增加服务,-t 绑定的ip地址,-s指定调度算法,表示轮询(round robin)。

    ipvsadm -a -t 10.0.2.15:80 -r 192.168.31.234:80 -m  :-a 指定增加真实服务器,-r 指定realserver,-m 表示使用 NAT 模式 。

    ipvsadm -a -t 10.0.2.15:80 -r 192.168.31.82:80 -m  。

5、在调度器上访问

    使用curl 10.0.2.15 发现访问不成功。应该是防火墙的问题, systemctl stop firewalld.service关闭防火墙后成功。轮询访问两个后端树莓派。笔者尝试在防火墙添加ipvsadm服务:firewall-cmd --permanent --zone=public --add-service=ipvsadm ,但是会报错:Error: INVALID_SERVICE: 'ipvsadm' not among existing services  。暂时无法解决!只能关闭防火墙来测试。

    将其中一个树莓派关机后,轮询到关机的那个树莓派时,curl 10.0.2.15会一直卡在那里,无法运行。将其中一个树莓派的apache2服务关闭后,会显示错误:Failed to connect to 10.0.2.15 port 80: 拒绝连接  。这个和nginx转发是不一样的。

相关文章

网友评论

    本文标题:ipvsadm搭建NAT模式配置负载均衡LVS

    本文链接:https://www.haomeiwen.com/subject/prdveltx.html