目录
一.企业集群应用概述
二.为何需要使用集群
三.集群类型
负载均衡群集(LB)
高可用集群HA
高性能群集(High Performance Computer Cluster)
四.负载均衡集群架构
1.负载均衡的结构
2. 负载均衡集群工作模式分析
NAT地址映射:
TUN模式(IP隧道)
DR模式(直接路由)
小结:
五.LVS虚拟服务器
1、Linux Virtual Server
使用场景
2. LVS 与 Nginx 功能对比
3、软件负载均衡的种类
六.LVS的负载调度算法
1、轮询(Round Robin)-----简称:RR
2、加权轮询(Weighted Round Robin)简称:WRR
3、最小连接(Least Connections)简称:LC
4、加权最小连接(Weighted Least Connections)
轮询和最小连接的区别
七.LVS的管理工具 ipvsadm
1、介绍ipvsadm
2、ipvsadm作用
3、lvs相关术语
4、ipvsadm工具的选项
Clister,集群、群集
由多态主机构成,但对外值表现为一个整体
互联网应用中,随着站点对硬件性能、相应速度、服务器稳定性,数据可靠性要求越来越高,单台服务器已经无法满足负载均衡及高可用的要求。
1.提高应用系统的响应能力,尽可能处理更多的访问请求,减少延时为目标,获得高并发、高负载(LB)的整体性能。
2.LB的负载分配依赖于主节点的分流算法。
以nginx和2个tomcat组合为例:当第一批客户端访问nginx动态时,使用负载均衡,将客户访问页面请求平均分发到两个tomcat上,过了一段时间有第二批客户来访,此时第一批某些客户访问结束,但是两个tomcat所剩的连接数不一定是一样的,那么此时第二批客户的请求分发时,就不能再使用第一次以轮询的方式分发,而是根据后台tomcat连接数进行分发。
1.提高应用系统的可靠性、尽可能的减少终端时间为目标,确保服务的连续性,达到高可用(HA)的容错效果。
2.HA的工作方式包括双工和主从两种模式
1.提高应用系统的CPU运算速度,苦战硬件资源和分析能力为目标,获得相当于大型、超级计算机的高性能运算(HPC)能力
2.高性能依赖于“分布式运算”、“并行计算”,通过专用硬件和软件将多个服务器的CPU、内存等资源整合在一起,实现只有大型、超级计算机才具备的计算能力。
第一层:负载调度器(Load Balancer 或 Director)
访问整个群集系统的唯一入口, 对外使用所有服务器共有的VIP地址,也称为群集IP地址。通常会配置主、备两台调度器实现热备份,当主调度器失效以后能够平滑替换至备用调度器,确保高可用性。
第二层:服务器池(Server Pool)
群集所提供的应用服务、由服务器池承担,其中每个节点具有独立的RIP地址(真实IP),只处理调度器分发过来的客户机请求。当某个节点暂时失效时,负载调度器的容错机制会将其隔离,等待错误排除以后再重新纳入服务器池。
第三层:共享存储(Share Storage)
为服务器池中的所有节点提供稳定、一致的文件存取服务, 确保整个群集的统一性共享存储可以使用NAS设备,或者提供NFS共享服务的专用服务器。
负载均衡群集是目前企业用的最多的群集类型
群集的负载调度技术有三种工作模式:
(1)NetworkAddress Translation ,简称NAT模式
(2)类似于防火墙的私有网络结构,负载调度器作为所有服务器节点的网关,即作为客户机的访问 入口 ,也是各节点回应客户机的访问 出口 。
(3)服务器节点使用私有IP地址,与负载调度器位于同一个物理网络,安全性要优于其它两种方式。
(1)IP Tunel。简称TUN模式
(2)采用开放式的网络结构,负载调度器仅作为客户机的访问 入口 ,各节点通过各自的internet连接直接回应客户机,而不再经过负载的调度器。
(3)服务器节点分散在互联网中的不同位置,具有独立的公网IP地址哦,通过专用IP隧道与负载调度器相互通信
(1)Direct Routing,简称DR模式
(2)采用半开放式的网络结构,与TUN的结构类似,但各节点并不是分散在各地,而是与调度器位于同一物理网络
(3)负载调度器与各节点服务器通过本地网络连接,不需要建立专用的IP隧道。
LvS不太适合小型的集群
工作模式区别 NAT模式 TUN模式 DR模式( 与nat相比较为复杂)
real server节点服务器
server number节点数量low10-20 high 100 high 100
真实网关(real servers) 负载调度器 自由路由器 自由路由器
IP地址 公网+私网 公网 私网
优点 安全性高 安全、速度快 性能最好
缺点 效率低、压力大 需要隧道支持 不能跨越lan(局域网)
使用 LVS 可以达到的技术目标是:通过 LVS 达到的负载均衡技术和 Linux 操作系统实现一个高性能高可用的 Linux 服务器集群,具有良好的可靠性、可扩展性和可操作性。从而以低廉的成本实现最优的性能。LVS 是一个实现负载均衡集群的开源软件项目,LVS 架构从逻辑上可分为调度层、Server 集群层和共享存储层。
工作位置
(1)单台LVS服务器的话:LVS只做LB负载调度器,那么工作再4层,并且工作再4层的LVS负载均衡能在LVS、Nginx、Apache、Haproxy几个常用的负载均衡器中时最强的,而且在K8S中,默认的负载均衡技术就是LVS。
(2)如果作为HA高可用的负载均衡,LVS+keepalived,那么工作再4层和7层
LVS 比 Nginx 具有更强的抗负载能力,性能高,对内存和 CPU 资源消耗较低;
LVS 工作在网络层,具体流量由操作系统内核进行处理,Nginx 工作在应用层,可针对 HTTP 应用实施一些分流策略;
LVS 安装配置较复杂,网络依赖性大,稳定性高。Nginx 安装配置较简单,网络依赖性小;
LVS 不支持正则匹配处理,无法实现动静分离效果。Nginx 可实现这方面的功能;
LVS 适用的协议范围广。Nginx 仅支持 HTTP、HTTPS、Email 协议,适用范围小;
Nginx :支持 4 层 / 7 层负载均衡,支持 HTTP、HTTPS、E-mail 协议;
LVS :纯 4 层负载均衡,运行在内核态,性能是软件负载均衡中最高的;
HAproxy :是 7 层负载均衡软件,支持 7 层规则的设置,性能也不错;
优点:
简单、灵活、便宜(直接在 Linux 操作系统上安装上述所使用的软件负载均衡,部署及维护较简单,
4 层 和 7 层负载均衡可根据业务进行选择也可根据业务特点,比较方便进行扩展及定制功能)
将受到的访问请求按照顺序轮流分配给群集中的各节点(真实服务器),均平等对待每一台服务器,而不管服务器实际的连接数和系统负载。
根据调度器设置的权重值来分发请求,权重高的节点优先获得任务,分配的请求数越多。
保证性能强的服务器承担更多的访问流量。
根据真实服务器已建立的连接数进行分配,将收到的访问请求优先分配给连接最小的节点。
在服务器节点的性能差异较大时,可以为真实服务器自动调整权重
性能较高的节点将承担更大比例的活动连接负载
轮询分配时,他不管后台的连接数有多少,它只是按照轮询的方式进行分配。
加权轮询可手动提高服务器的分配的次数。
最小连接分配时,它考虑的时后台连接数的多少,它会先将访问请求分给最小连接的后台服务器。
加权最小连接可以自动将最小连接的数量的服务器补全,变成和其它服务器一样的连接数,再进行分配。
(1)ipvs(ip virtual server):LVS 是基于内核态的 netfilter 框架实现的 IPVS功能,工作在内核态。用户配置 VIP 等相关信息并传递到 IPVS 就需要用到 ipvsadm 工具。
(2)ipvsadm:ipvsadm 是 LVS 用户态的配套工具,可以实现 VIP 和 RS 的增删改查功能,是基于 netlink 或 raw socket 方式与内核 LVS 进行通信的,如果 LVS 类比于 netfilter,那 ipvsadm 就是类似iptables 工具的地位。
作用:
(1)主要用于多服务器的负载均衡;
(2)工作在网络层,可实现高性能,高可用的服务器集群技术;
(3)廉价,可把许多低性能的服务器组合在一起形成一个超级服务器;
(4)易用,配置简单,有多种负载均衡的方法;
(5)稳定可靠,即使在集群的服务器中某台服务器无法正常工作,也不影响整体效果;
(6)可扩展性好
术语 描述
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’选项组合使用