欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > LVS负载均衡群集+NAT部署

LVS负载均衡群集+NAT部署

2024/10/24 13:28:41 来源:https://blog.csdn.net/weixin_68840588/article/details/139603364  浏览:    关键词:LVS负载均衡群集+NAT部署

目录

一、LVS负载均衡群集

1.群集的的概念

二、LVS负载均衡群集运用理论

1.负载均衡群集架构

2.LVS的基本原理

3.LVS负载均衡的三种模式

1)NAT(地址转换) 

2)DR(直接路由)

3)TUN(IP隧道) 

三、LVS虚拟机Linux Virtual Server

1.Linux Virtual Server

2.LVS的负载调度算法

1)固定调度算法:rr,wrr,dh,sh

2)动态调度算法:wlc,lc,lblc

四.ipvsadm工具选项说明

五.LVS-NAT模式部署

1.准备虚拟机

2.配置节点服务器(192.168.10.123、192.168.10.124)

3.配置负载调度器

4.进行测试


一、LVS负载均衡群集

1.群集的的概念

1)群集的定义

Cluster,集群(也称群集)由多台主机构成,但对外只表现为一一个整体,只提供一-个访问入口(域名或IP地址), 相当于一台大型计算机

2)群集的作用

对于企业服务的的性能提升一般会有两种方式:

纵向扩展 :  对服务器的CPU 内存 硬盘 等硬件进行升级或者扩容来实现的     性能上限会有瓶颈,成本昂贵,收效比不高等问题
横向扩展 :  通过增加服务器主机数量来应该高并发的场景

3)群集的目的 

提高性能:计算密集应用。如天气预报,核试验模拟
降低成本:相对百万美元的超级计算机,价格便宜
提高可扩展性:只要增加集群节点即可
增强可靠性:多个节点完成相同功能,避免单点失败

4)企业级群集的类型 

负载均衡(LB):提高应用系统的响应效率,处理更多的访问请求,减少延迟,提高并发和负载能力。 同时也是如今企业运用最多的群集类型。

典型代表:软件类(Nginx  LVS  HAProxy  SLB)   硬件类(F5  绿盟)

高可用(HA): 提高应用系统的可靠性,减少服务中断时间,确保服务的连续性(通过使用 N 个 9 来代表高可用的指标)

典型代表:keepalived、heartbeat
 

高性能运算(HPC):将多台主机的硬件计算资源整合到一起实现分布式运用

典型代表:云计算、分布式计算

二、LVS负载均衡群集运用理论

LVS的相关话术:

DS:Director Server。指的是前端负载均衡器
RS:Real Server。节点服务器,后端真实的工作服务器
VIP:向外部直接面向用户请求,作为用户请求的目标的IP地址
DIP:Director Server IP,主要用于和内部主机通讯的IP地址
RIP:Real Server IP,后端服务器的IP地址
CIP:Client IP,访问客户端的IP地址

1.负载均衡群集架构

第一层:负载调度器:通过VIP接收用户的请求,再通过调度算法确定要转发的节点服务器

访问整个群集系统的唯一入口,对外使用所有服务器共有的VIP地址,也称为群集 IP地址。通常会配置主、备两台调度器实现热备份,当主调度器失效以后能够平滑 替换至备用调度器,确保高可用性

第二层:服务器池中的节点服务器:通过RIP接收调度器转发来的请求,并处理请求进行响应

群集所提供的应用服务、由服务器池承担,其中每个节点具有独立的RIP地址(真 实IP),只处理调度器分发过来的客户机请求。当某个节点暂时失效时,负载调度 器的容错机制会将其隔离,等待错误排除以后再重新纳入服务器池

第三层:共享存储 :为各个节点服务器提供稳定、一致的文件存取服务,比如NAS+NFS,文件服务器+NFS,分布式对象存储等存储设备

2.LVS的基本原理

当用户向负载均衡器(Director Server)发起请求,调度器将请求发送至内核空间
Prerouting链首先会接收到用户请求,判断目标IP确定是本机IP,将数据包发送到INPUT链
IPVS是工作在INPUT链上的,当用户请求到达INPUT时,IPVS会将用户请求和自己已经定义好的集群服务进行对比,如果用户请求的就是定义的集群服务,那么此时IPVS会强行修改数据包里的目标IP地址及端口,并将新的数据包发送到POSTROUTING链,POSTROUTING链接收数据包后发现目标IP地址刚好是自己的后端服务器,那么此时通过选路,将数据包最终发送到后端的服务器

3.LVS负载均衡的三种模式

群集的负载调度技术有三种工作模式:地址转换(NAT模式) ,直接路由(DR模式),IP隧道(IP-TUN)。对于商用来说,最常用是NAT模式和DR模式

1)NAT(地址转换) 

原理:首先负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后负载均衡器就把客户端发送的请求数据包的目标IP地址及端口改成后端真实服务器的IP地址(RIP)。真实服务器响应完请求后,查看默认路由,把响应后的数据包发送给负载均衡器,负载均衡器在接收到响应包后,把包的源地址改成虚拟地址(VIP)然后发送回给客户端。

优点:集群中的服务器可以使用任何支持TCP/IP的操作系统,只要负载均衡器有一个合法的IP地址。

缺点:扩展性有限,当服务器节点增长过多时,由于所有的请求和应答都需要经过负载均衡器,因此负载均衡器将成为整个系统的瓶颈。

2)DR(直接路由)

原理:首先负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后负载均衡器就把客户端发送的请求数据包的目标MAC地址改成后端真实服务器的MAC地址(R-MAC)。真实服务器响应完请求后,查看默认路由,把响应后的数据包直接发送给客户端,不需要经过负载均衡器。

优点:负载均衡器只负责将请求包分发给后端节点服务器,而RS将应答包直接发给用户。所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,也能处理很巨大的请求量。

缺点:需要负载均衡器与真实服务器RS都有一块网卡连接到同一物理网段上,必须在同一个局域网环境。

3)TUN(IP隧道) 

原理:首先负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后负载均衡器就把客户端发送的请求报文封装一层IP隧道(T-IP)转发到真实服务器(RS)。真实服务器响应完请求后,查看默认路由,把响应后的数据包直接发送给客户端,不需要经过负载均衡器。

优点:负载均衡器只负责将请求包分发给后端节点服务器,而RS将应答包直接发给用户。所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,也能处理很巨大的请求量。

缺点:隧道模式的RS节点需要合法IP,这种方式需要所有的服务器支持“IP Tunneling”。

三、LVS虚拟机Linux Virtual Server

1.Linux Virtual Server

针对Linux内核开发的负载均衡
1998年5月,由我国的章文嵩博士创建
官方网站:www.linuxvirtualserver.org/
LVS实际上相当于基于IP地址的虚拟化应用,为基于IP地址和内容请求分发的负载均衡提出来一种高效的解决方法

2.LVS的负载调度算法

1)固定调度算法:rr,wrr,dh,sh

rr:轮询算法,将请求依次分配给不同的rs节点,即RS节点中均摊分配。适合于RS所有节点处理性能接近的情况。
wrr:加权轮训调度,依据不同RS的权值分配任务。权值较高的RS将优先获得任务,并且分配到的连接数将比权值低的RS更多。相同权值的RS得到相同数目的连接数。
dh:目的地址哈希调度(destination hashing)以目的地址为关键字查找一个静态hash表来获得所需RS。
sh:源地址哈希调度(source hashing)以源地址为关键字查找一个静态hash表来获得需要的RS。

2)动态调度算法:wlc,lc,lblc

wlc:加权最小连接数调度,假设各台RS的权值依次为Wi,当前tcp连接数依次为Ti,依次去Ti/Wi为最小的RS作为下一个分配的RS。
lc:最小连接数调度(least-connection),IPVS表存储了所有活动的连接。LB会比较将连接请求发送到当前连接最少的RS。
lblc:基于地址的最小连接数调度(locality-based least-connection):将来自同一个目的地址的请求分配给同一台RS,此时这台服务器是尚未满负荷的。否则就将这个请求分配给连接数最小的RS,并以它作为下一次分配的首先考虑。

四.ipvsadm工具选项说明

选项含义
-A添加虚拟服务器
-D删除整个虚拟服务器
-s指定负载调度算法(轮询:rr、加权轮询:wrr、最少连接:lc、加权最少连接:wlc)
-a表示添加真实服务器(节点服务器)
-d删除某一个节点
-t指定 VIP地址及 TCP端口
-r指定 RIP地址及 TCP端口
-m表示使用 NAT群集模式
-g表示使用 DR模式
-i表示使用 TUN模式
-w设置权重(权重为 0 时表示暂停节点)
-p 60表示保持长连接60秒(默认关闭连接保持)
-l列表查看 LVS 虚拟服务器(默认为查看所有)
-n以数字形式显示地址、端口等信息,常与“-l”选项组合使用。ipvsadm -ln

五.LVS-NAT模式部署

1.准备虚拟机

192.168.10.122 LVS调度器             

192.168.10.123 web服务器1           

192.168.10.124 web服务器2           

192.168.10.125 NFS共享存储      

  

systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
vim /etc/selinux/config
SELINUX=disabledyum install nfs-utils rpcbind -y
systemctl start rpcbind.service
systemctl start nfs.servicesystemctl enable nfs.service
systemctl enable rpcbind.servicemkdir /opt/web1 /opt/web2
chmod 777 /opt/web1 /opt/web2
echo 'this is web test1 !' > /opt/web1/index.html
echo 'this is  web test2!' > /opt/web2/index.htmlvim /etc/exports
/usr/share *(ro,sync)
/opt/web1 192.168.73.0/24(rw,sync)
/opt/web2 192.168.73.0/24(rw,sync)--发布共享---
exportfs -rv

2.配置节点服务器(192.168.10.123、192.168.10.124)

两台web节点服务器相同的操作

systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
vim /etc/selinux/config
SELINUX=disabledyum install httpd -y
systemctl start httpd.service
systemctl enable httpd.serviceyum install nfs-utils rpcbind -y
showmount -e 192.168.73.108systemctl start rpcbind
systemctl enable rpcbind

web1节点服务器操作:

mount.nfs 192.168.10.125:/opt/web1 /var/www/htmlvim /etc/fstab
192.168.10.125:/opt/web1        /var/www/html    nfs        defaults,_netdev    0  0mount -a

web2节点服务器操作:

mount.nfs 192.168.10.125:/opt/web2 /var/www/html
vim /etc/fstab
192.168.10.125:/opt/web2    /var/www/html    nfs     defaults,_netdev    0  0mount -a

3.配置负载调度器

(内网关 ens33:192.168.10.122,外网关 ens36:12.0.0.1) 

systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0vim /etc/selinux/config
SELINUX=disabled(1)配置SNAT转发规则(如果内网想主动连接外网的话,需要配置SNAT策略)
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1或 echo '1' > /proc/sys/net/ipv4/ip_forward
sysctl -p
#安装iptables 如果是centos7 系统
yum install -y iptables-services  iptablesiptables -t nat -F
iptables -F
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o ens36 -j SNAT --to-source 12.0.0.1(2)加载LVS内核模块
modprobe ip_vs					#加载 ip_vs模块
cat /proc/net/ip_vs				#查看 ip_vs版本信息for i in $(ls /usr/lib/modules/$(uname -r)/kernel/net/netfilter/ipvs|grep -o "^[^.]*");do echo $i; /sbin/modinfo -F filename $i >/dev/null 2>&1 && /sbin/modprobe $i;done(3)安装ipvsadm 管理工具
yum -y install ipvsadm--启动服务前须保存负载分配策略---
ipvsadm-save > /etc/sysconfig/ipvsadm
或者 ipvsadm --save > /etc/sysconfig/ipvsadmsystemctl start ipvsadm.service(4)配置负载分配策略(NAT模式只要在服务器上配置,节点服务器不需要特殊配置)
ipvsadm -C 					#清除原有策略
ipvsadm -A -t 12.0.0.1:80 -s rr [-p 60]
ipvsadm -a -t 12.0.0.1:80 -r 192.168.10.123:80 -m [-w 1]
ipvsadm -a -t 12.0.0.1:80 -r 192.168.10.124:80 -m [-w 1]
ipvsadm						#启用策略ipvsadm -ln					#查看节点状态,Masq代表 NAT模式

保存LVS的配置策略以及删除策略的方法:  

ipvsadm-save > /opt/ipvsadm						#保存策略
ipvsadm-save > /etc/sysconfig/ipvsadm
----------------------------------------------------------------------------------------------------------
ipvsadm -d -t 12.0.0.1:80 -r 192.168.10.123:80				#删除群集中某一节点服务器
ipvsadm -D -t 12.0.0.1:80									#删除整个虚拟服务器
systemctl stop ipvsadm										#停止服务(清空策略)
systemctl start ipvsadm										#启动服务(根据/etc/sysconfig/ipvsadm重建配置)
ipvsadm-restore < /opt/ipvsadm					            #恢复LVS 策略

4.进行测试

在一台IP为12.0.0.12的客户机使用浏览器访问 http://12.0.0.1/ ,不断刷新浏览器测试负载均衡效果,刷新间隔需长点(或者关闭Web服务的连接保持)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com