赞
踩
即Linux虚拟服务器,是一个高性能、高可用的服务器集群解决方案,现已集成至Linux内核中。它通过IP虚拟化技术通过将网络流量分散到多个服务器上,从而提高网络服务的可用性和扩展性,实现数据请求的负载均衡调度,广泛应用于需要大量并发处理能力的场景。
1. 集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益,其任务调度则是集群系统中的核心技术。
集群组成后,可以利用多个计算机和组合进行海量请求处理(负载均衡),从而获得很高的处理效率,也可以用多个计算机做备份(高可用HA),使得任何一个机器坏了整个系统还是能正常运行。
2、负载均衡集群技术
负载均衡(Load Balance):负载均衡集群为企业需求提供了可解决容量问题的有效方案。负载均衡集群使负载可以在计算机集群中尽可能平均地分摊处理。
负载通常包括应用程序处理负载和网络流量负载,每个节点都可以承担一定的处理负载,并且可以实现处理负载在节点之间的动态分配,以实现负载均衡。
原理:
NAT模式使用Linux的网络地址转换功能,将进入的IP数据包的源地址转换为虚拟服务器的地址,然后根据预设的调度算法将请求分发到后端的真实服务器。真实服务器处理完请求后,直接将响应数据包发送回客户端,无需再次经过LVS。
特点:
所有流量都经过LVS,因此LVS成为潜在的瓶颈。
适用于内部网络结构,安全性较高。
配置要点:
LVS需要至少两块网卡,一块用于内部网络通信,另一块用于外部网络通信。
需要配置iptables规则来进行地址转换。
示例命令
- ipvsadm -A -t <VIP>:80 -s rr
- ipvsadm -a -t <VIP>:80 -r <RealServerIP>:80 -m
原理:
在DR模式下,LVS和所有真实服务器共享同一个虚拟IP(VIP)。LVS仅处理入站请求,并将它们分发到后端的真实服务器。真实服务器处理请求后,直接将响应发送回客户端,绕过LVS。
特点:
减少了LVS的负载,因为它不处理出站流量。
要求LVS和所有真实服务器在同一个物理网络内。
配置要点:
需要配置网络,使得VIP在LVS和所有真实服务器上都能被识别。
需要调整Linux内核参数,以允许真实服务器响应VIP地址的ARP请求。
示例命令:
- ipvsadm -A -t <VIP>:80 -s rr -g
- ipvsadm -a -t <VIP>:80 -r <RealServerIP>:80 -g
原理:
TUN模式通过创建IP隧道来转发请求。LVS接收到请求后,将其封装在一个新的IP数据包中,然后发送到对应的真实服务器。 真实服务器解封装后处理请求,并将响应直接发送回客户端。
特点:
真实服务器可以分布在不同的地理位置。
所有请求和响应都经过LVS,因此LVS是流量的中心节点。
配置要点:
需要在LVS上配置IP隧道接口。
真实服务器需要支持IP隧道协议。
示例命令:
- ipvsadm -A -t <VIP>:80 -s rr -i
- ipvsadm -a -t <VIP>:80 -r <RealServerIP>:80 -i
LVS提供了包括轮询(RR)、加权轮询(WRR)、最小连接(LC)、加权最小连接(WLC)等多种调度算法,以适应不同的业务需求。
(Round Robin, RR)
原理:顺序地将请求分配到每个服务器,类似于排队轮流服务。
适用场景:所有服务器性能相近,需要简单均匀的负载分配。
(Least Connections, LC)
原理:将请求分配给当前活跃连接数最少的服务器。
适用场景:服务器性能不一致时,优先分配给较空闲的服务器,以提高效率。
(Weighted Least Connections, WLC)
原理:考虑服务器的性能差异,给每个服务器分配权重,然后根据权重和当前连接数来分配请求。
适用场景:服务器性能有差异,需要根据性能合理分配负载。
(Weighted Round Robin, WRR)
原理:在轮询的基础上,根据服务器的性能分配不同的权重,权重高的服务器接受更多的请求。
适用场景:需要根据服务器性能进行非均匀的负载分配。
(Locality-Based Least Connections, LBLC)
原理:尽量将同一目标IP地址的请求分配到同一服务器,提高缓存命中率。
适用场景:适用于缓存集群,目标是提高缓存效率。
(Locality-Based Least Connections with Replication, LBLCR)
原理:在LBLC的基础上,维护目标IP地址到一组服务器的映射,以支持复制和负载均衡。
适用场景:适用于需要数据复制的缓存集群。
这些算法中,轮询、最少连接和它们的加权版本是最常用的,因为它们简单、高效,并且适用于大多数场景。特别是当服务器规模较大或服务器性能相近时,这些算法可以提供良好的负载均衡效果。而基于局部性的调度算法则适用于特定的应用场景,如缓存集群。
(Source Hashing, SH)
原理:根据请求的源IP地址进行散列,确保来自同一IP的请求总是被分配到同一个服务器。
适用场景:需要保持客户端IP到服务器的会话持久性时。
(Destination Hashing, DH)
原理:根据请求的目标IP地址进行散列,以决定请求的目的地。
适用场景:适用于请求按目标地址进行分组的情况。
(Shortest Expected Delay, SED)
原理:计算每台服务器的权重和当前连接数的比值,将请求分配给比值最小的服务器。
适用场景:需要考虑服务器当前负载和权重,优化响应时间。
(Least Queue Length, LQ)
原理:选择当前队列长度最短的服务器,以减少请求等待时间。
适用场景:适用于服务器处理能力相近,但请求量波动较大时。
实战部署包括环境准备、LVS/DR模式和LVS-NAT模式的配置,以下是具体的实现过程和代码示例。
- #安装LVS软件和管理工具ipvsadm。
- yum install -y ipvsadm
- -A --add-service #在服务器列表中新添加一条新的虚拟服务器记录
- -t #表示为tcp服务
- -u #表示为udp服务
- -s --scheduler #使用的调度算法, rr | wrr | lc | wlc | lblb | lblcr | dh | sh | sed | nq 默认调度算法是 wlc
- 例:ipvsadm -A -t 192.168.1.2:80 -s wrr
-
- -a --add-server #在服务器表中添加一条新的真实主机记录
- -t --tcp-service #说明虚拟服务器提供tcp服务
- -u --udp-service #说明虚拟服务器提供udp服务
- -r --real-server #真实服务器地址
- -m --masquerading #指定LVS工作模式为NAT模式
- -w --weight #真实服务器的权值
- -g --gatewaying #指定LVS工作模式为直接路由器模式(也是LVS默认的模式)
- -i --ip #指定LVS的工作模式为隧道模式
- -p #会话保持时间,定义流量呗转到同一个realserver的会话存留时间
- 例:ipvsadm -a -t 192.168.1.2:80 -r 192.168.2.10:80 -m -w 1
-
- -E -edit-service #编辑内核虚拟服务器表中的一条虚拟服务器记录。
- -D -delete-service #删除内核虚拟服务器表中的一条虚拟服务器记录。
- -C -clear #清除内核虚拟服务器表中的所有记录。
- -R -restore #恢复虚拟服务器规则
- -S -save #保存虚拟服务器规则到标准输出,输出为-R 选项可读的格式
- -e -edit-server #编辑一条虚拟服务器记录中的某条真实服务器记录
- -d -delete-server #删除一条虚拟服务器记录中的某条真实服务器记录
- -L|-l –list #显示内核虚拟服务器表
-
- --numeric, -n:#以数字形式输出地址和端口号
- --exact: #扩展信息,精确值
- --connection,-c: #当前IPVS连接输出
- --stats: #统计信息
- --rate : #输出速率信息
-
- 参数也可以从/proc/net/ip_vs*映射文件中查看
- -Z –zero #虚拟服务表计数器清零(清空当前的连接数量等)
1. 加载IPVS模块并设置为开机自启。
- modprobe ip_vs
- echo "ip_vs" >> /etc/modules-load.d/ipvs.conf
2. 配置虚拟IP(VIP)并设置网络地址转换。
- ip addr add <VIP> dev <interface>
- echo 1 > /proc/sys/net/ipv4/ip_forward
3. 使用ipvsadm添加虚拟服务和真实服务器。
- ipvsadm -A -t <VIP>:80 -s rr
- ipvsadm -a -t <VIP>:80 -r <RealServerIP>:80 -m -w 1
1. 配置共享VIP地址在LVS Director和所有Real Servers上。
2. 设置直接路由模式,允许Real Servers响应VIP地址的ARP请求。
3. 使用ipvsadm添加虚拟服务和真实服务器,与NAT模式类似,但使用`-g`标志表示直接路由。
- ipvsadm -A -t <VIP>:80 -s rr
- ipvsadm -a -t <VIP>:80 -r <RealServerIP>:80 -g -w 1
LVS作为一种成熟高效的负载均衡解决方案,已经在许多高负载环境中得到应用。通过合理选择工作模式和调度算法,它能够有效提升服务的稳定性和响应速度。随着技术的发展,LVS也在不断地更新和完善,以满足日益增长的网络负载需求。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。