负载均衡集群

2021-11-10  本文已影响0人  编程人生

负载均衡集群(Load Balance Cluster) :以提高应用系统的响应能力,尽可能处理更多的访问请求,减少延迟为目标,获得高并发,高负载(LB)的整体性能. 例如 "DNS轮询 ""应用层交换""反向代理"等都可用作负载均衡集群.LB的负载分配依赖于主节点的分流算法,将来自客户机的访问请求分担给多个服务器节点,从而缓解整个系统的负载压力.

1.负载均衡的分层结构

第一层,负载调度器:这是访问整个集群系统的唯一入口,对外使用所有服务器的VIP(Virtual IP  ,虚拟IP)地址,也称为集群IP地址.通常会配置主,备两台调度器实现热备份,当主调度器失效以后平滑替换至备用调度器,以确保高可用.

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

第三层,共享存储:为服务池中的所有节点提供稳定,一致的文件存储服务,确保整个集群的统一性.在Linux/UNIX环境中,共享存储可以使用NAS设备,或者提供NFS(Network FIle System,网络文件系统)共享服务的专用服务器.

2.负载均衡的工作模式

    关于集群的负载调度技术,可以基于IP,端口,内容等分发,其中基于IP的负载调度是效率最高的.基于IP的负载均衡模式中,常见的有地址转换,IP隧道和直接路由三种工作模式,

2.1地址转换(Network Address Translation):简称NAT模式,类似于防火墙的私有网络结构,负载调度器作为所有服务节点的网关,即作为客户机的访问入口,也是各节点回应客户机的访问出口.服务器节点使用私有IP地址,与负载调度器位于同一个物理网络,安全性能优于其他两种方式.

2.2 IP隧道(IP Tunnel):简称TUN模式,采用开放式的网络结构,负载调度器仅作为客户机的为访问入口, 各节点通过各自的Internet连接直接回应客户机,而不再经过负载调度器.服务器节点分散在互联网中不同的位置,具有独立的公网IP地址,通过专用IP隧道与负载调度器相互通信.

2.3直接路由(Direct Routing): 简称DR模式,采用半开放的网络模式,与TUN模式的结构类似,但各节点并不是分散在各地,而是与调度器位于同一个物理网络.负载调度器与各节点服务器通过本地网络连接,不需要建立专用的IP隧道.

    以上三种工作模式中,NAT方式只需要一个公网IP地址,从而成为最易用的一种负载均衡模式,安全性比较好,许多硬件负载均衡设备就是采用这种方式:相比较而言,DR模式和TUN模式的负载能力更加强大,适用范围更广,但节点的安全要稍差一些.

3.LVS 虚拟机服器 (Linux  Virtual  Serval)

我们先看下面这幅图:

Virtual Server

这幅图描述的是, 客户可以通过Internet 访问一台负载均衡服务器,这台负载均衡服器通过 LAN/WAN将请求分发给负载均衡集群其中一台机器.

LVS的负载调度算法分为以下几种:

1.轮询(Round Robin):将收到的请求按照顺序轮流分配到集群中各个节点(真实服务器),均等地对待每一台服务器,而不管服务器实际的连接数和系统负载.

2.加权轮询(Weighted Round Robin):根据真实服务器的处理能力轮流分配收到的访问请求,调度器可以自动查询各节点的负载情况,并动态调整其权重.这样可以保证处理能力强的服务器承担更多的访问流量.

3.最少连接(Least Connections):根据真实服务器已建立的连接数进行分配,将收到的访问请求优先分配给连接数最少的节点.如果所有的服务器节点性能相近,采用这种方式可以更好地负载均衡.

4.加权最少连接(Weighted Least Connections):在服务器节点的性能差异较大的情况下,可以为真实服务器自动调整权重,权重较高的节点将承担更大比例的活动连接负载.

使用ipvsadm管理工具

ipvsadm 是在负载调度器上使用的LVS集群管理工具,通过调用ip_vs模块来添加/删除服务器节点.

yum -y install ipvsadm  安装软件包

ipvsadm -v  查看版本

LVS集群的管理工作主要包括创建虚拟服务器,添加服务器节点,查看集群节点状态,删除服务器节点和保存负载分配策略.

(1).创建虚拟服务器

若集群的VIP地址为172.16.16.172 

执行下面的命令:ipvsadm -A -t 172.16.16.172:80 -s rr

上述操作中: -A 表示添加虚拟服务器  -t 用来指定VIP地址及TCP端口,-s用来指定负载调度算法.--轮询(rr)

加权轮询(wrr)   /最少连接(lc)   /加权最少连接(wlc)

(2).添加服务器节点

ipvsadm -a -t 172.16.16.172:80 -r 192.168.78.186:80 -m -w 1

ipvsadm -a -t 172.16.16.172:80 -r 192.168.78.188:80 -m -w 1

ipvsadm -a -t 172.16.16.172:80 -r 192.168.78.190:80 -m -w 1

-a 表示添加真实服务器, -t 用来指定VIP地址和TCP端口, -r 用来指定RIP地址及TCP端口, -m  表示

使用NAT 集群模式  (-g DR模式 和 -i TUN 模式) , -w 用来设置权重(权重为0时表示暂停节点)

(3).查看集群节点状态

结合-l 可以列表查看LVS 虚拟服务器, 可以指定只查看某一个VIP 地址(默认查看所有), 结合-n 选项  将以数字形式显示地址/ 端口 等信息.

ipvsadm -ln 

(4)删除服务器节点

需要删除某一个节点时 ,使用选项-d .  执行删除操作必须指定目标对象,包括节点地址  , 虚拟IP地址.

如:ipvasdm -d -r 192.168.78.190:80 -t 172.16.16.172:80

(5)保存负载分配策略

使用导出/保存工具 ipvsdam-save/ipvsdam-restore 可以 保存, 恢复 LVS 策略,操作方法类似于 iptables规则的导入和导出.

通过系统服务ipvsadm  也可以保存策略, 如可执行 "service ipvsadm save "  当然也可以快速清除/重建负载分配策略.

未完待续...........

上一篇下一篇

猜你喜欢

热点阅读