1. 对比 LVS 负载均衡群集的 NAT 模式和 DR 模式,比较其各自的优势 。
2. 构建 LVS-DR 群集时,在调度器与节点服务器中的 /proc 参数调整有何区别?
LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项 目,它的官方站点是www.linuxvirtualserver.org。
1. 对比 LVS 负载均衡群集的 NAT 模式和 DR 模式,比较其各自的优势 。
NAT模式(VS-NAT)
原理:就是把客户端发来的数据包的IP头的目的地址,在负载均衡器上换成其中一台RS的IP地址,并发至此RS来处理,RS处理完成后把数据交给经过负载均衡器,负载均衡器再把数据包的原IP地址改为自己的IP,将目的地址改为客户端IP地址即可。
优点:集群中的物理服务器可以使用任何支持TCP/IP操作系统它只需要一个 IP 地址配置在调度器上,服务器组可以用私有的 IP 地址。
缺点:扩展性有限。当服务器节点(普通PC服务器)增长过多时,负载均衡器将成为整个系统的瓶颈,因为所有的请求包和应答包的流向都经过负载均衡器。当服务器节点过多时,大量的数据包都交汇在负载均衡器那,速度就会变慢。
DR模型--直接路由模式(VS-DR)
原理:负载均衡器和RS都使用同一个IP对外服务,但只有DR对ARP请求进行响应,所有RS对本身这个IP的ARP请求保持静默,也就是说,网关会把对这个服务IP的请求全部定向给DR,而DR收到数据包后根据调度算法,找出对应的RS,把目的MAC地址改为RS的MAC(因为IP一致)并将请求分发给这台RS,这时RS收到这个数据包,处理完成之后,由于IP一致,可以直接将数据返给客户,则等于直接从客户端收到这个数据包无异,处理后直接返回给客户端。由于负载均衡器要对二层包头进行改换,所以负载均衡器和RS之间必须在一个广播域,也可以简单的理解为在同一台交换机上。
优点:VS/DR跟 VS/TUN 方法相同,负载调度器中只负责调度请求,而服务器直接将响应返回给客户,可以极大地提高整个集群系统的吞吐量。
缺点:要求负载均衡器的网卡必须与物理网卡在一个物理段上
2. 构建 LVS-DR 群集时,在调度器与节点服务器中的 /proc 参数调整有何区别?
DR群集模式:
LVS负载调度器和节点需要共同VIP地址,应关闭Linux内核的重定向参数响应。
节点服务器:
同样要有VIP地址,但此地址仅用作发送Web响应数据包的原地址,不需要监听客户机的访问请求(改由调度器监听毕分发)。
3. 基于 CentOS 7 构建 LVS-DR 群集。
角色 | IP地址 | 主机名 | 服务或工具 |
Director | VIP:172.25.10.110 DIP:172.25.10.110 | 172.25.10.111 | ipvsadm |
RS1 | RIP1:172.25.10.120 | 172.25.10.120 | httpd |
RS2 | RIP2:172.25.10.130 | 172.25.10.130 | httpd |
首先,给node2和node3下载使用httpd服务
yum install httpd -y
写内容,配web主页内容
echo "`hostname -I`,web test page" > /var/www/html/index.html
启动服务
systemctl start httpd
测试
curl 172.25.10.120
配置 Director,下载工具
yum install ipvsadm -y
配置LVS虚拟IP(VIP)
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens33:1
vi ifcfg-ens33:1
vi ifcfg-ens33
重启服务
systemctl restart network
配置转发规
ipvsadm -At 172.25.10.110:80 -s rr
ipvsadm -at 172.25.10.110:80 -r 172.25.10.120:80 -g
ipvsadm -at 172.25.10.110:80 -r 172.25.10.130:80 -g
注意:三个 LVS 模式中,只有 NAT 模式需要开启路由转发功能,DR 和 TUN 模式不需要开启
-g 表示 DR 模式
查看配置好的转发规则
ipvsadm -Ln
配置 RS1和RS2
增加一个本地回环接口,将VIP地址配置到回环接口上
注意ens33网口的网关,网关指向公网出口路由器IP
cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:1
vi ifcfg-lo:1
DEVICE=lo:1
IPADDR=172.25.10.110
NETMASK=255.255.255.255
ONBOOT=yes
NAME=loopback
重启服务
systemctl restart network
关闭ARP转发
cat >> /etc/sysctl.conf << EOF
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
EOF
测试
4. 基于 CentOS 7 构建 LVS-NAT 群集。
环境准备,需要将环境回滚
配置前需要给 Director 增加了一张网卡设置为桥接模式,用于模拟 Director 的 VIP,其它网卡均为 NAT 模式
RS1关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
下载相关软件服务
yum install httpd -y
写内容,配web主页内容
echo "`hostname -I`,web test page" > /var/www/html/index.html
启动服务
systemctl start httpd
测试
修改网络配置,将网关进行更改
Director配置过程,关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
打开路由转发功能
echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
sysctl -p
iptables -t nat -F
iptables -F
iptables -t nat -A POSTROUTING -s 172.25.10.0/24 -o ens36 -j SNAT --to-source 10.0.0.1
安装ipvsadm 管理工具
yum -y install ipvsadm
ipvsadm -C
ipvsadm -A -t 10.0.0.1:80 -s rr
ipvsadm -a -t 10.0.0.1:80 -r 172.25.10.120:80 -m -w 1
ipvsadm -a -t 10.0.0.1:80 -r 172.25.10.130:80 -m -w 1
测试