目录
3.1、负载调度器(Load Balancer或Director)
如今,在各种互联网应用中,随着站点对硬件性能、响应速度、服务稳定性、数据可靠性等要求也越来越高,单台服务器也将难以无法承受所有的访问需求。
集群、群集
有多台主机构成,单对外,只表现为一个整体,只提供一个访问入口(域名或IP),相当于一台大型计算机。
向上扩展,增强,性能更强的计算机运行同样的服务
向外扩展,增加设备,并行地运行多个服务调度分配问题
随着计算机性能的增长,其价格会成倍增长。
单台计算机的性能是有上限的,不可能无限制地垂直扩展,多核CPU意味着即使是单台计算机也可以并行地。那么,为什么不一开始就并行化技术。
使用加个昂贵的小型机,大型机。
使用多台相对廉价的普通服务器构建服务群集。
通过整合多台服务器,使用LVS来达到服务器高可用和负载均衡,并于同一个IP地址对外提供相同的服务。
这就是企业中常用的一种群集技术--LVS(linux Virtual Server,Linux虚拟服务器)
根据集群针对的目标差异,可分为三种
负载均衡集群
高可用集群
高性能集群
提高应用系统的响应能力、尽可能处理更多的访问请求、减少延迟为目标,获得高并发、高负载(LB)的整体性能。
LB的负载分配依赖于主节点的分流算法,将来自客户机的访问请求分担给多个服务器节点,从而缓解整个系统的负载
提高应用系统的可靠性、尽可能地减少中断时间,确保服务地连续性,达到高可用(HA)的容错效果。
HA的工作方式包括双工和主从两种模式,双工即所有节点同时在线;主从则只有主节点在线,但当出现故障时从节点能自动切换为主节点。
例如:“故障切换”、“双机热备” 等。
以提高应用系统的CPU运算速度,扩展硬件资源和分析能力为目标,获得相当于大型,超级计算机的高性能运算(HPC)能力。
高性能依赖于“分布式运算”、“并行运算”,通过专用硬件和软件将多个服务的CPU、内存等资源整合在一起,实现只有大型、超级计算机才具备的计算能力。例如“云计算”、“网络计算”等
负载均衡的结构
第一层:负载调度器(Load Balancer或Director)
第二层:服务器池(Server Pool)
第三层:共享存储(Share Storage)
访问整个集群系统的唯一入口,对外使用所有服务器共有的VIP地址,也称为集群IP地址。通常会配置主、备两台调度器实现热备份,当主调度器失效以后能够平滑替换至备用调度器,确保高可用性。
集群所提供的应用服务,由服务器池承担,其中每个节点具有独立的RIP地址(真实IP),只处理调度器分发过来的客户机请求。当某个接待你暂时失效时,负载调度器的容错机制会将其隔离,等待错误被排除以后再重新纳入服务器池。
为服务器中所有节点提供稳定、一致的文件存取服务,确保整个集群的统一性共享存储可以使用NAS设备,或者提供NFS共享服务的专用服务器。
负载均衡集群是目前企业用得最多得集群类型
集群得负载均衡调度有3种工作模式
地址转换(NAT模式)
IP隧道(TUN模式)
直接路由(DR模式)
Network Address Translation,简称NAT模式
类似于防火墙的私有网络结构,负载调度器作为所有服务器节点的网关,即作为客户机的访问入口,也是各节点回应客户机的访问出口
服务器节点使用私有IP地址,与负载调度器位于同一个物理网络,安全性要优于其他两种方式
IP Tunnel,简称TUN模式
采用开放式的网络结构,负载调度器仅作为客户机的访问入口,各节点通过各自的Internet连接直接回应客户机,而不再经过负载调度器
服务器节点分散在互联网中的不同位置,具有独立的公网IP地址,通过专用IP隧道与负载调度器相互通信
Direct Routing,简称DR模式
采用半开放式的网络结构,与TUN模式的结构类似,但各节点并不是分散在各地,而是与调度器位于同一个物理网络
- NAT模式:只需要一个公网IP地址,是最易用得一种负载均衡模式,安全性较好
- TUN模式和DR模式:负载能力强大,使用范围广,节点安全性较差
LVS 实际上相当于基于IP地址的虚拟化应用, 为基于IP地址和内容请求分发的负载均衡提出了一种高效的解决方法
使用 LVS 可以达到的技术目标是:通过 LVS 达到的负载均衡技术和 Linux 操作系统实现一个高性能高可用的 Linux 服务器集群,具有良好的可靠性、可扩展性和可操作性。从而以低廉的成本实现最优的性能。LVS 是一个实现负载均衡集群的开源软件项目,LVS 架构从逻辑上可分为调度层、Server 集群层和共享存储层。
ipvs(ip virtual server):LVS 是基于内核态的 netfilter 框架实现的 IPVS功能,工作在内核态。用户配置 VIP 等相关信息并传递到 IPVS 就需要用到 ipvsadm 工具。
ipvsadm:ipvsadm 是 LVS 用户态的配套工具,可以实现 VIP 和 RS 的增删改查功能,是基于 netlink 或 raw socket 方式与内核 LVS 进行通信的,如果 LVS 类比于 netfilter,那 ipvsadm 就是类似iptables 工具的地位。
主要用于多服务器的负载均衡;
工作在网络层,可实现高性能,高可用的服务器集群技术;
廉价,可把许多低性能的服务器组合在一起形成一个超级服务器;
易用,配置简单,有多种负载均衡的方法;
稳定可靠,即使在集群的服务器中某台服务器无法正常工作,也不影响整体效果;
可扩展性好;
LVS 比 Nginx 具有更强的抗负载能力,性能高,对内存和 CPU 资源消耗较低;
LVS 工作在网络层,具体流量由操作系统内核进行处理,Nginx 工作在应用层,可针对 HTTP 应用实施一些分流策略;
LVS 安装配置较复杂,网络依赖性大,稳定性高。Nginx 安装配置较简单,网络依赖性小;
LVS 不支持正则匹配处理,无法实现动静分离效果。Nginx 可实现这方面的功能;
LVS 适用的协议范围广。Nginx 仅支持 HTTP、HTTPS、Email 协议,适用范围小;
Nginx :支持 4 层 / 7 层负载均衡,支持 HTTP、E-mail 协议;
LVS :纯 4 层负载均衡,运行在内核态,性能是软件负载均衡中最高的;
HAproxy :是 7 层负载均衡软件,支持 7 层规则的设置,性能也不错;
优点:
简单、灵活、便宜(直接在 Linux 操作系统上安装上述所使用的软件负载均衡,部署及维护较简单,
4 层 和 7 层负载均衡可根据业务进行选择也可根据业务特点,比较方便进行扩展及定制功能);
1、轮询(Round Robin)
将收到的访问请求按照顺序轮流分配给群集中的各节点(真实服务器) ,均等地对待每一台服务器 ,而不管服务器实际的连接数和系统负载
2、加权轮询 (Weighted Round Robin)
根据调度器设置的权重值来分发请求,权重值高的节点优先获得任务,分配的请求数越多
保证性能强的服务器承担更多的访问流量
3、最少连接 (Least Connections )
根据真实服务器已建立的连接数进行分配,将收到的访问请求优先分配给连接数最少的节点
4、加权最少连接(Weighted L east Connections )
在服务器节点的性能差异较大时,可以为真实服务器自动调整权重
性能较高的节点将承担更大比例的活动连接负载
- DS(Director Server) 前端负载均衡节点服务器
- RS(Real Server) 后端真实服务器
- CIP(Client IP) 客户端 IP 地址
- VIP (Virtual IP) 负载均衡对外提供访问的 IP 地址,一般负载均衡 IP 都会通过 Virtual IP 实现高可用
- RIP (RealServer IP) 负载均衡后端的真实服务器 IP 地址
- DIP 负载均衡与后端服务器通信的 IP 地址
- CMAC 客户端 MAC 地址,LVS 连接的路由器的 MAC 地址
- VMAC 负载均衡 LVS 的 VIP 对应的 MAC 地址
- DMAC 负载均衡 LVS 的 DIP 对应的 MAC 地址
- RMAC 后端真实服务器的 RIP 地址对应的 MAC 地址
- 选项 功能
- -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 -lnjiu