作者:奔跑的蜗牛彡 | 来源:互联网 | 2023-05-20 09:57
LVS - NAT 模式集群搭建实验 前言 Linux虚拟服务器(Linux Virtual Server,LVS)是一个虚拟的服务器集群系统,用于实现负载平衡。本文重点在于LVS - NAT 模式的搭建过程,服务器集群化原理以及分类在本人的集群化知识整理一文中简单梳理了集群化的原理和知识点,如有遗漏或错误的地方,欢迎大家指正。
基本理论说明 Virtual server via NAT(VS-NAT) 优点:集群中的物理服务器可以使用任何支持TCP/IP操作系统,物理服务器可以分配Internet的保留私有地址,只有负载均衡器需要一个合法的IP地址。
缺点:扩展性有限。当服务器节点(普通PC服务器)数据增长到20个或更多时,负载均衡器将成为整个系统的瓶颈,因为所有的请求包和应答包都需要经过负载均衡器再生。假使TCP包的平均长度是536字节的话,平均包再生延迟时间大约为60us(在Pentium处理器上计算的,采用更快的处理器将使得这个延迟时间变短),负载均衡器的最大容许能力为8.93M/s,假定每台物理服务器的平台容许能力为400K/s来计算,负责均衡器能为22台物理服务器计算。
解决办法:即使是是负载均衡器成为整个系统的瓶颈,如果是这样也有两种方法来解决它。一种是混合处理,另一种是采用Virtual Server via IP tunneling或Virtual Server via direct routing。如果采用混合处理的方法,将需要许多同属单一的RR DNS域。你采用Virtual Server via IP tunneling或Virtual Server via direct routing以获得更好的可扩展性。也可以嵌套使用负载均衡器,在最前端的是VS-Tunneling或VS-Drouting的负载均衡器,然后后面采用VS-NAT的负载均衡器。
实验步骤 实验目标:掌握搭建LVS集群的nat模式
实验准备:4台C6标准虚拟机(selinux关闭)
实验规划:
服务器 IP 负载调度服务器 eth0:192.168.10.10 eth1:10.0.0.10 真实服务器1 eth0:192.168.10.11 真实服务器2 eth0:192.168.10.12 访问机 eth0:10.0.0.140
ps:标准虚拟机安装见网络阶段Centos6安装指南
实验拓扑图:
一、配置负载调度服务器 配置外网IP
vim /etc/sysconfig/network-scripts/ifcfg-eth1
保存退出,重启网卡,尝试ping通访问机。
ifup eth1ping 10.0.0.140
开启内核转发
echo net.ipv4.ip_forward= 1 >> /etc/sysctl.conf sysctl -p
加载模块
modprobe ip_vscat /proc/net/ip_vs
LVS全称为Linux Virtual Server,工作在ISO模型中的第四层,由于其工作在第四层,因此与iptables类似,必须工作在内核空间上。因此lvs与iptables一样,是直接工作在内核中的,叫ipvs,主流的linux发行版默认都已经集成了ipvs,因此用户只需安装一个管理工具ipvsadm即可。
yum -y install ipvsadm
添加调度规则
ipvsadm -A -t 10.0.0.10:80 -s rr ipvsadm -a -t 10.0.0.10:80 -r 192.168.10.11:80 -m ipvsadm -a -t 10.0.0.10:80 -r 192.168.10.12:80 -m -A:添加一条新的虚拟服务 -t: TCP协议的集群 -a:在一个虚拟服务中添加一个新的真实服务器 -r:真实的服务器 -m:指定LVS的工作模式为NAT模式 -s:使用的调度算法,有这样几个选项rr| wrr| lc| wlc| lblc| lblcr| dh| sh| sed | nq,默认的调度算法是:wlc
保存调度规则,设置lvs开机自启动。
service ipvsadm savechkconfig ipvsadm on ipvsadm -L
成功写入调度规则,开始编辑防火墙规则。
service iptables start iptables -F iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth1 -j SNAT --to-source 10.0.0.140 iptables -t nat -Lservice iptables save
二、配置真实服务器 配置网关,重启网卡。
echo "GATEWAY=192.168.10.10" >> /etc/sysconfig/network-scripts/ifcfg-eth0ifdown eth0 && ifup eth0 route -n
yum安装apache,并编写网页文件进行访问测试。(突出访问区别)
yum -y install httpdecho "123" >> /var/www/html/index.htmlservice httpd startchkconfig httpd oncurl 192.168.10.11
第二台真实服务器设置同理,注意网页文件内容要不一样,方便区分。
三、访问测试 访问机访问测试
curl 10.0.0.10curl 10.0.0.10curl 10.0.0.10
成功访问,编写无限循环语句,在负载调度器去查看详细信息。
while 2> 1; do curl 10.0.0.10; done ipvsadm -Ln --stats
连接被平均分配至两个真实服务器,LVS使用RR算法实现了轮循。
四、端口映射 LVS-NAT模式支持端口映射,可修改请求报文的目标PORT。
将任意一台真实服务器的监听端口修改。
vim /etc/httpd/conf/httpd.conf Listen 4423
重启服务,去访问机查看。
service httpd restart
已经无法正常访问,负载调度器删除原有规则,添加新的调度规则。
ipvsadm -d -t 10.0.0.10:80 -r 192.168.10.11:80 ipvsadm -a -t 10.0.0.10:80 -r 192.168.10.11:4423 -m ipvsadm -Ln -d:删除一条虚拟服务器记录中的某条真实服务器记录。
返回访问端查看
访问已恢复正常。
五、使用WRR算法进行加权操作 删除负载集群,重新添加调度规则。
ipvsadm -D -t 10.0.0.10:80 ipvsadm -A -t 10.0.0.10:80 -s wrr ipvsadm -a -t 10.0.0.10:80 -r 192.168.10.11:4423 -m -w2 ipvsadm -a -t 10.0.0.10:80 -r 192.168.10.12:80 -mservice ipvsadm save ipvsadm -Ln -D:删除虚拟服务 -w:配置真实服务器的权重
返回真实服务器查看
权重配置成功,实验结束。
本文于2020年11月13日由Vonmerlot整理而成。