Redhat 7.4 部署LVS实现负载均衡-实现DR集群模式
参考前一篇文章,NAT集群模式。本次实验是实现DR路由模式。这里需要注意的是,引用VIP(虚拟IP)的概念。
环境准备:
管理节点,LVS服务器, 配置1张网卡,地址为192.168.4.1
普通节点,web服务器,配置1张网卡,地址为192.168.4.2
普通节点,web服务器,配置1张网卡,地址为192.168.4.3
1、管理节点配置
cd /etc/sysconfig/network-scripts/ #进入网卡配置文件目录
cp ifcfg-eth0 ifcfg-eth0:0 #创建一个名为eth0:0的虚拟网卡
vim ifcfg-eth0:0 #配置VIP为192.168.4.100
ifup eth0:0 #启动虚拟网卡
2、普通节点配置(4.2和4.3),以4.2为例
cd /etc/sysconfig/network-scripts/ #进入网卡配置文件目录
cp ifcfg-lo ifcfg-lo:0 #创建名为ifcfg-lo:0的虚拟网卡文件
vim ifcfg-lo:0 #配置VIP为192.168.4.100
#为了避免IP冲突,因为管理节点,普通节点,3个网卡都是设置了4.100的虚拟IP。所以,普通节点选择lo还回口,作为虚拟IP网卡的配置文件。并且大家留意上图。设备名为lo:0,地址为4.100,子网掩码为255.255.255.255,网络,广播都是自己本身。这一切都是为了避免IP冲突。
ifup ifcfg-lo:0 #启动虚拟网卡
sysctl -a | grep arp_ig #查询内核参数
echo "net.ipv4.conf.all.arp_ignore = 1" >> /etc/sysctl.conf #把这个值追加写入sysctl.conf配置文件。告诉内核,当收到请求时。不主动回应。
echo "net.ipv4.conf.lo.arp_ignore = 1" >> /etc/sysctl.conf #把这个值追加写入sysctl.conf配置文件。告诉内核,当收到请求时。不主动回应。
sysctl -a | grep arp_ann
echo "net.ipv4.conf.all.arp_announce = 2" >> /etc/sysctl.conf #把这个值追加写入sysctl.conf配置文件。告诉内核,当收到请求时。不主动回应。
echo "net.ipv4.conf.lo.arp_announce = 2" >> /etc/sysctl.conf #把这个值追加写入sysctl.conf配置文件。告诉内核,当收到请求时。不主动回应。
3、配置ipvsadm
ipvsadm -A -t 192.168.4.100:80 -s wrr #添加虚拟服务器4.100:80 轮询方式为加权轮询
ipvsadm -a -t 192.168.4.100:80 -r 192.168.4.2:80 -g -w 1 #添加真实服务器4.2:80 工作模式为DR模式(路由模式),权重为1
ipvsadm -a -t 192.168.4.100:80 -r 192.168.4.3:80 -g -w 2 #添加真实服务器4.3:80 工作模式为DR模式,权重为2
4、验证
权重2的,工作2次,权重1的,工作1次。
实验结束。
这里理一下思路。客户端访问4.100,LVS工作,根据权重,会把请求发给真实机。然后真实机直接把结果反馈给客户端。这样的结果相对快。因为NAT模式的工作流程是,客户端访问网卡1,通过nat转发,把请求转给网卡0.然后LVS工作,根据权重把请求发给真实机。真实机把结果反馈给LVS服务器,LVS通过网卡0,再NAT转发到网卡1.再把结果反馈给客户端。
所以一般企业中的工作模式,都是DR(路由)集群模式。