- LVS:Linux virtual server ,即Linux虚拟服务器
- LVS自身是一个负载均衡器(Director),不直接处理请求,而是将请求转发至位于它后端的真实服务器real server上。
- LVS是四层(传输层 tcp/udp)负载均衡工具
- ipvs是集成在内核中的框架,可以通过用户空间的程序ipvsadm工具来管理,该工具可以定义一些规则来管理内核中的ipvs。
- lvs无法解决RS的健康检查,并且存在单点故障,建议使用keepalived高可用。
- LVS-DR模式的术语:
- DS:前段负载均衡节点服务器
- RS:后端真实服务器
- CIP:客户端IP地址
- VIP:负载均衡对外提供访问的IP地址,一般负载均衡IP都会通过Virtual IP实现高可用
- RIP:负载均衡后端的真实服务器IP地址
- LVS-DR模式的特点:
- Director Server和Real Server必须在同一个物理网络中
- RS可以使用私有地址也可以使用公网地址。如果使用公网地址,可以通过互联网对RIP进行直接访问。
- 所有的请求报文经过DS,但回复响应报文不能经过DS。
- RS的网关不允许指向DS的IP,即不允许数据包经过DS
- RS上的lo接口配置VIP的IP地址
- DR模式的具体配置如下:
- 实验拓扑图:
- 1.配置DS(负载均衡调度器):
- yum -y install ipvsadm
- cd /etc/sysconfig/network-scripts/
- cp -rp ifcfg-ens33 ifcfg-ens33:0
- vim ifcfg-ens33:0
- TYPE="Ethernet"
- BOOTPROTO="static"
- DEVICE="ens33:0"
- ONBOOT="yes"
- IPADDR=192.168.8.200
- NETMASK=255.255.255.0
- ifup ens33:0
- ifconfig ens33:0
- 配置LVS负载分配策略:
- ipvsadm -A -t 192.168.8.200:80 -s rr
- ipvsadm -a -t 192.168.8.200:80 -r 192.168.8.6:80 -g -w 1
- ipvsadm -a -t 192.168.8.200:80 -r 192.168.8.7:80 -g -w 1
- -A:添加一个集群服务
- -a:添加真实服务器
- -t:指定VIP地址及Tcp端口
- -r:指定RIP地址及端口
- -g:指定DR模式
- rr:轮询调度算法
- -w:权重值
- ipvsadm -Ln --stats (查看策略状态)
- ipvsadm --save > /etc/sysconfig/ipvsadm
- systemctl start ipvsadm
- 2.配置RS节点服务器(192.168.8.6和192.168.8.7)
- 使用DR模式时,节点服务器也需要vip地址,并调整内核的ARP响应参数以阻止更新vip的MAC地址,避免发生冲突。
- cd /etc/sysconfig/network-scripts
- cp ifcfg-lo ifcfg-lo:0
- vim ifcfg-lo:0
- 修改:
- DEVICE=lo:0
- IPADDR=192.168.8.200
- NETMASK=255.255.255.255
- ONBOOT=yes
- 添加vip本地访问路由:
- route add -host 192.168.8.200 dev lo:0
- 配置RS节点的arp响应和通告级别:
- echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
- echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
- echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
- echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
- 安装nginx修改网页,最后访问http://192.168.8.200
- 实验拓扑图: