一、lvs三种工作模式
1.NAT模式:通过网络地址转换实现的虚拟服务器。Director Server将用户请求报文的目的地址改成选定的Real Server地址后,转发给Real Server,大并发访问时,Director Server的性能成为瓶颈
2.TUN模式:通过隧道模式实现虚拟服务器。Director Server采用隧道技术将请求发至Real Server后,Real Server直接相应客户端。
3.DR模式:直接使用路由技术是心啊虚拟服务器。通过改写请求报文的MAC地址,将请求发至Real Server,Real Server直接响应客户端。
最常用DR模式,其次nat模式。
二、lvs相关术语
1. DS:调度服务器 Director Server,指的是前端负载均衡器节点。
2. RS:真是服务器 Real Server。后端真实的工作服务器。
3. VIP:向外部直接面向用户请求,作为用户请求的目标的IP地址。
4. DIP:Director Server IP,调度器和真是服务器通讯的IP地址。
5. RIP:Real Server IP,后端真实服务器的IP地址。
6. CIP:Client IP,访问客户端的IP地址。
三、lvs十种调度算法
常用前四种
1.轮询(Round Robin)RR: 将客户端请求平均分发到Real Server。
2.加权轮询(Weighted Round Robin)WRR:根据Real Server 权重值进行轮询的调度。
3.最少连接(Least Connections)LC:选择连接最少的服务器。
4.加权最少连接(Weighted Least Connections)WLC:根据Real Server 权重值,选择连接数最少的服务器。
5.源地址散列(Source Hashing)SH:根据请求的源IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器。
6.目标地址散列调度(Destination Hashing ) DH:与SH相反的是,DH根据请求的目标IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器。
7.基于局部性的最少链接(Locality-Based Least Connections)LBLC:主要是针对请求报文的目标IP地址的负载均衡调度,目前主要使用Cache集群系统。LBLC调度算法先根据请求的目标IP地址找出该目标IP地址最近使用的服务器,若该服务器时可以用的且没有超载,将请求发送到该服务器,若服务器不存在,或者该服务器超载且有服务器处于一半的工作负载,则使用“LC最少连接”的原则选出一个可用的服务器,将请求发送到服务器。
8.带复制的基于局部性的最少连接(Locality-Based Least Connections with Replication)LBLCR:算法也是针对目标IP地址的负载均衡,目前也主要用于Cache集群系统。它与LBLC算法不通之处时它要维护从一个目标IP地址到一组服务器的映射,而LBLC算法维护从一个目标IP地址到一台服务器的映射。
9.最短的期望的延迟调度(Shortest Expected Delay) SED:SED基于WLC算法,将请求以最短的期望的延迟方式到服务器,计算当前realserver 的负载情况计算方法:(active+1)*256/weight=overhead。
10.最少队列调度(Never Queue)NQ:如果realserver的连接数等于0就直接分配到该服务器,但是此服务器并不一定是最快的那台,如果所有服务器都是繁忙状态,它采取最短的期望延迟分配请求。
四、部署LVS的NAT模式
方案
IP地址 | 主机名 | |
客户端 | eth0(cip) 192.168.4.100 | vmctl5 |
调度器 | eth0(vip) 192.168.4.5 eth1(dip) 192.168.2.5 |
vmctl1 |
后端服务器1 | eth0(rip) 192.168.2.100 网关配置成 192.168.2.5 |
vmctl2 |
后端服务器2 | etho(rip) 192.168.2.200 网关配置成 192.168.2.5 |
vmctl3 |
使用4台虚拟机,1台作为Director调度器、2台Real Server、1台客户端,结构如下图所示:
ipvsadm相关命令
ipvsadm -A 添加虚拟服务器 ipvsadm -a 添加真实服务器
ipvsadm -E 修改虚拟服务器 ipvsadm -e 修改真实服务器
ipvsadm -D 删除虚拟服务器 ipvsadm -d 删除真是服务器
ipvsadm -C 清空所有 ipvsadm -L 查看LVS规则表
-s [rr|wrr|lc|wlc] 指定集群算法
ipvsadm -a -t|u 192.168.4.5:8080 -r 192.168.2.100 [-g|i|m] [-w 权重] 添加真实服务器-g DR模式,-i 隧道模式,-m NAT模式
ipvsadm -e -t|u 192.168.4.5:8080 -r 192.168.2.100 [-g|i|m] [-w 权重] 修改真实服务器
ipvsadm -d -t|u 192.168.4.5:8080 -r 192.168.2.100 删除真实服务器
ipvsadm -Ln 查看LVS规则表
1、后端服务器1 vmctl2 部署
#1、配置网卡信息
[root@vmctl2 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
NAME=eth0
DEVICE=TYPE=Ethernet
IPADDR=192.168.2.100
NATMASK=255.255.255.0
ONBOOT=yes
BOOTPROTO=static
GATEWAY=192.168.2.5 #网关配置成调度器的dip
#2、启动tomcat,并访问测试页面
[root@vmctl2 ~]# /mnt/apache-tomcat-8.0.30/bin/startup.sh
[root@vmctl2 ~]# cat /mnt/apache-tomcat-8.0.30/webapps/ipvnat/index.html
192.168.2.100
[root@vmctl2 ~]# curl http://192.168.2.100:8080/ipvnat/index.html
192.168.2.100
[root@vmctl2 ~]# cat /mnt/apache-tomcat-8.0.30/logs/localhost_access_log.2020-06-29.txt
192.168.2.100 - - [29/Jun/2020:04:40:18 -0700] "GET /ipvnat/index.html HTTP/1.1" 200 14
2、后端服务器2 vmctl3 部署
#配置网卡信息
[root@vmctl3 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
NAME=eth0
DEVICE=eth0
TYPE=Ethernet
IPADDR=192.168