Bootstrap

LVS三种工作模式 、NAT模式和DR模式详细搭建过程

一、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
;