大连模板建站定制,怎样卸载wordpress,美御品牌推广,做外语网站的公司目录
一、集群
1、集群概述
1.1 什么是集群
1.2 集群系统扩展方式
1.2.1 Scale UP#xff08;纵向扩展#xff09;#xff1a;
1.2.2 Scale OUT#xff08;横向扩展#xff09;#xff1a;
1.2.3 区别
1.3 分布式系统
1.4 分布式与集群
1.5 集群设计原则
1.6 …目录
一、集群
1、集群概述
1.1 什么是集群
1.2 集群系统扩展方式
1.2.1 Scale UP纵向扩展
1.2.2 Scale OUT横向扩展
1.2.3 区别
1.3 分布式系统
1.4 分布式与集群
1.5 集群设计原则
1.6 集群设计实现
1.6.1 基础设施层面
1.6.2 业务层面
2、集群的类型
2.1 负载均衡集群Load Balance Cluster)
2.2 高可用集群High Availiablity Cluster)
2.3 高性能运算集群High Performance Computing Cluster)
3、负载均衡集群架构
3.1 负载均衡集群的结构
3.2 LB Cluster负载均衡集群
3.2.1 按实现方式划分
3.2.2 基于工作的协议层次划分
3.3 HA 高可用集群实现
二、LVSLinux Virtual Server 概述
1、LVS概念
2、LVS功能及组织架构
2.1 应用于高访问量的业务
2.2 扩展应用程序
2.3 消除单点故障
2.4 同城容灾 多可用区容灾
3、LVS集群类型中的术语
4、LVS工作原理
5、LVS工作模式和相关命令
5.1 LVS集群的工作模式
5.1.1 NAT模式
5.1.2 IP隧道模式IP Tunneling
5.1.3 直接路由模式Direct Routing
5.1.4 LVS工作模式总结和比较
6、LVS调度算法
6.1 静态调度算法
6.2 动态调度算法
6.3 其他调度算法 一、集群
1、集群概述
1.1 什么是集群
在计算机科学中集群Cluster是指一组相互连接的计算机节点这些计算机协同工作以完成共同的任务。集群可以通过网络相互通信和协作从而形成一个整体系统
由多台主机构成但对外只能表现为一个整体只提供一个访问入口域名或者ip地址相当于一个大型计算机
集群通常被用于提高计算性能、可靠性和可扩展性 1.2 集群系统扩展方式
1.2.1 Scale UP纵向扩展
概念Scale UP是通过增加单个服务器或节点的资源能力来提高系统性能和处理能力。这包括增加CPU核数、内存容量、存储容量等。特点Scale UP通常适用于单节点负载增加的情况可以通过升级硬件或增加资源来提高系统的性能。这种扩展方式相对简单但存在物理限制无法无限制地扩展性能。优点简单易行对于某些应用可以快速提高性能。缺点成本较高存在硬件资源限制不易实现无缝扩展。
1.2.2 Scale OUT横向扩展
概念Scale OUT是通过增加系统中的节点或服务器数量来提高系统的性能和负载能力。这包括将负载分散到多个节点上进行并行处理。特点Scale OUT适用于需要处理大规模并发请求或需要高可用性的情况可以通过增加节点数量来实现性能的线性扩展。优点相对于Scale UPScale OUT具有更好的横向扩展性可以根据需求灵活地增加节点数量。缺点实现复杂一些需要考虑数据一致性、通信开销等问题。
1.2.3 区别
Scale UP是通过增加单个节点的资源来提高性能而Scale OUT是通过增加节点数量来提高性能。Scale UP适用于单节点负载增加的情况而Scale OUT适用于需要处理大规模并发请求或需要高可用性的情况。Scale UP相对简单但存在硬件资源限制而Scale OUT具有更好的横向扩展性可以根据需求灵活地增加节点数量。
总之在实际应用中通常会根据系统需求和情况选择合适的扩展方式有时也会将Scale UP和Scale OUT结合使用以实现更好的性能和可扩展性。
这里垂直扩展不再提及随着计算机性能的增长其价格会成倍增长
1.3 分布式系统
分布式概念分布式系统是由多台计算机或节点协同工作共同完成某个任务或提供某种服务的系统。在分布式系统中各个节点通过网络通信相互协作共享资源和信息以实现更高的性能、可靠性和可扩展性分布式存储CephGlusterFSFastDFSMogileFS分布式计算hadoopSpark分布式常见应用
分布式应用服务按照功能拆分使用微服务单一应用程序划分成一组小的服务服务之间互相协调、互相配合为用户提供最终价值服务
分布式静态资源静态资源放在不同的存储集群上
分布式数据和存储使用key-value缓存系统
分布式计算对特殊业务使用分布式计算比如Hadoop集群
1.4 分布式与集群
集群同一个业务系统部署在多台服务器上。集群中每一台服务器实现的功能没有差别数据和代码都是一样的。
分布式一个业务被拆成多个子业务或者本身就是不同的业务部署在多台服务器上。分布式中每一台服务器实现的功能是有差别的数据和代码也是不一样的分布式每台服务器功能加起来才是完整的业务。 注 分布式是以缩短单个任务的执行时间来提升效率的而集群则是通过提高单位时间内执行的任务数来提升效率。 对于大型网站访问用户很多实现一个群集在前面部署一个负载均衡服务器后面几台服务器完成同一业务。如果有用户进行相应业务访问时负载均衡器根据后端哪台服务器的负载情况决定由给哪一台去完成响应并且一台服务器垮了其它的服务器可以顶上来。分布式的每一个节点都完成不同的业务如果一个节点垮了那这个业务可能就会失败 1.5 集群设计原则
可扩展性集群的横向扩展能力可用性无故障时间 (SLA service level agreement)性能访问响应时间容量单位时间内的最大并发吞吐量(C10K 并发问题)
1.6 集群设计实现
1.6.1 基础设施层面
提升硬件资源性能从入口防火墙到后端 web server 均使用更高性能的硬件资源多域名DNS 轮询A记录解析多入口将A记录解析到多个公网IP入口多机房同城异地容灾CDN(Content Delivery Network)—基于GSLB(Global Server Load Balance)实现全局负载均衡如DNS
1.6.2 业务层面
分层安全层、负载层、静态层、动态层、(缓存层、存储层)持久化与非持久化分割基于功能分割大业务为小服务分布式对于特殊场景的业务使用分布式计算微服务
2、集群的类型
2.1 负载均衡集群Load Balance Cluster)
提高应用系统的响应能力、尽可能处理更多的访问请求、减少延迟为目标获得高并发、高负载LB的整体性能LB的负载分配依赖于主节点的分流算法将来自客户机的访问请求分担给多个服务器节点从而缓解整个系统的负载压力。例如“DNS轮询”“反向代理”等
2.2 高可用集群High Availiablity Cluster)
提高应用系统的可靠性、尽可能地减少中断时间为目标确保服务的连续性达到高可用HA的容错效果HA的工作方式包括双工和主从两种模式双工即所有节点同时在线;主从则只有主节点在线但当出现故障时从节点能自动切换为主节点。例如”故障切换” “双机热备” 等
2.3 高性能运算集群High Performance Computing Cluster)
提高应用系统的CPU运算速度、扩展硬件资源和分析能力为目标获得相当于大型、超级计算机的高性能运算HPC能力高性能依赖于“分布式运算”、“并行计算”通过专用硬件和软件将多个服务器的CPU、内存等资源整合在一起实现只有大型、超级计算机才具备的计算能力。例如“云计算”、“网格计算” 3、负载均衡集群架构
3.1 负载均衡集群的结构
第一层负载调度器Load Balancer或Director
访问整个群集系统的唯一入口对外使用所有服务器共有的VIP地址也称为群集IP地址。通常会配置主、备两台调度器实现热备份当主调度器失效以后能够平滑地替换至备用调度器确保高可用性。
第二层服务器池Server Pool
群集所提供的应用服务、由服务器池承担其中每个节点具有独立的RIP地址真实IP只处理调度器分发过来的客户机的请求。当某个节点暂时失效时负载调度器的容错机制会将其隔离等待错误排除以后再重新纳入服务器池。
第三层享存储Share Storage
为服务器池中所有节点提供稳定、一致的文件存取服务确保整个群集的统一性共享存储可以使用NAS设备或者提供NFS共享服务的专用服务器。 3.2 LB Cluster负载均衡集群
3.2.1 按实现方式划分
硬件
F5 Big-IPF5服务器负载均衡模块Citrix NetscalerA10 A10
软件
lvsLinux Virtual Server阿里四层 SLB (Server Load Balance)使用nginx支持七层调度阿里七层SLB使用 Tenginehaproxy支持七层调度atsApache Traffic Serveryahoo捐助给apacheperlbalPerl 编写pound
3.2.2 基于工作的协议层次划分
传输层通用DNAT和DPORT
LVSnginxstreamhaproxymode tcp 注 以上三个软件都可以使用四层 SNAT内网用户可以通过SNAT技术科学上网到达外网 DNAT把内网服务共享给公网公网用户可以访问内网 应用层专用针对特定协议常称为Proxy Server
httpnginx, httpd, haproxy(mode http)fastcginginx, httpdmysqlmysql-proxy, mycat
负载均衡的会话保持
session sticky同一用户调度固定服务器 Source IPLVS sh算法对某一特定服务而言 Cookiesession replication每台服务器拥有全部session复制 session multicast clustersession server专门的session服务器server MemcachedRedis
3.3 HA 高可用集群实现
keepalivedvrrp协议
Ais应用接口规范
heartbeatcmanrgmanager(RHCS)coresync_pacemaker
二、LVSLinux Virtual Server 概述
1、LVS概念
LVSLinux Virtual Server负载调度器内核集成针对Linux内核开发的负载均衡解决方案1998年5月由我国章文嵩花名正明博士创建, 阿里的四层SLB(Server Load Balance)是基于LVSkeepalived实现LVS实际上相当于基于IP地址的虚拟化应用为基于IP地址和内容请求分发的负载均衡提出了一种高效的解决方法。
LVS官网http://www.linuxvirtualserver.org/
阿里SLB和LVShttps://yq.aliyun.com/articles/1803 https://github.com/alibaba/LVS
整个SLB系统由三部分构成四层负载均衡、七层负载均衡 和 控制系统
四层负载均衡采用开源软件LVSLinux Virtual Server并根据云计算需求对其进行定制化该技术已经在阿里巴巴内部业务全面上线应用2年多七层负载均衡采用开源软件Tengine该技术已经在阿里巴巴内部业务全面上线应用3年多控制系统用于配置和监控负载均衡系统
2、LVS功能及组织架构
负载均衡的应用场景为高访问量的业务提高应用程序的可用性和可靠性。
2.1 应用于高访问量的业务
如果您的应用访问量很高可以通过配置监听规则将流量分发到不同的云服务器 ECSElastic Compute Service 弹性计算服务实例上。此外可以使用会话保持功能将同一客户端的请求转发到同一台后端ECS
2.2 扩展应用程序
可以根据业务发展的需要随时添加和移除ECS实例来扩展应用系统的服务能力适用于各种Web服务器和App服务器。
2.3 消除单点故障
可以在负载均衡实例下添加多台ECS实例。当其中一部分ECS实例发生故障后负载均衡会自动屏蔽故障的ECS实例将请求分发给正常运行的ECS实例保证应用系统仍能正常工作
2.4 同城容灾 多可用区容灾
为了提供更加稳定可靠的负载均衡服务阿里云负载均衡已在各地域部署了多可用区以实现同地域容灾。当主可用区出现机房故障或不可用时负载均衡仍然有能力在非常短的时间内如大约30s中断切换到另外一个备可用区恢复服务能力当主可用区恢复时负载均衡同样会自动切换到主可用区提供服务。使用负载均衡时您可以将负载均衡实例部署在支持多可用区的地域以实现同城容灾。此外建议您结合自身的应用需要综合考虑后端服务器的部署。如果您的每个可用区均至少添加了一台ECS实例那么此种部署模式下的负载均衡服务的效率是最高的
3、LVS集群类型中的术语 VSVirtual Server代理服务器DSDirector Server负载调度器Dispatcher调度器Load Balancerlvs服务器 RSReal Server(lvs) upstream server(nginx) backend server(haproxy)后端真实服务器 CIPClient IP客户端IP VIPVirtual serve IP代理服务器VS外网的IP DIPDirector IP代理服务器内网的IP RIPReal server IP后端真实服务器IP 访问流程CIP -- VIP DIP -- RIP 其他 MTBFMean Time Between Failure 平均无故障时间正常时间 MTTRMean Time To Restoration repair平均恢复前时间故障时间 A MTBF /MTBFMTTR (0,1)99%,99.5%,99.9%,99.99%,99.999% SLA服务等级协议简称SLA全称service level agreement。是在一定开销下为保障服务的性能和可用性服务提供商与用户间定义的一种双方认可的协定。通常这个开销是驱动提供服务质量的主要因素。在常规的领域中总是设定所谓的三个9四个9来进行表示当没有达到这种水平的时候就会有一些列的惩罚措施而运维最主要的目标就是达成这种服务水平。 1年 365天 8760小时 90 (1-90%)*36536.5天 99 8760 * 1% 87.6小时 99.9 8760 * 0.1% 8760 * 0.001 8.76小时 99.99 8760 * 0.0001 0.876小时 0.876 * 60 52.6分钟 99.999 8760 * 0.00001 0.0876小时 0.0876 * 60 5.26分钟 99.9999 (1-99.9999%)*365*24*60*6031秒 4、LVS工作原理
VS根据请求报文的目标IP和目标协议及端口将其调度转发至某RS根据调度算法来挑选RS。LVS是内核级功能工作在INPUT链的位置将发往INPUT的流量进行“处理”
[rootlocalhost ~]#grep -i -C 10 ipvs /boot/config-3.10.0-693.el7.x86_64
#在文件 /boot/config-3.10.0-693.el7.x86_64 中搜索包含关键字 ipvs 的行并显示每个匹配行的上下文上方和下方各10行 5、LVS工作模式和相关命令
5.1 LVS集群的工作模式
lvs-nat修改请求报文的目标IP,多目标IP的DNATlvs-dr操纵封装新的MAC地址直接路由lvs-tun隧道模式
5.1.1 NAT模式
一种在负载均衡架构中使用的网络地址转换方式。它通过在负载调度器Load Balancer上进行地址转换将来自客户端的请求重写为负载调度器的IP地址并将请求转发给后端服务器 完整请求过程
客户端发起请求报文源IP为客户端IP地址CIP目的地址为VIP代理服务器的外网地址当数据包到达我们的代理服务器源IP不变需要修改目的IP及端口号此时源IP为客户端IP地址CIP目的地址为RIP后端真实服务器IP真实服务器收到报文后构建响应报文此时源IP修改为真实服务器自己的IPVIP是内网地址目的地址为CIP外网客户端地址此时再发给代理服务器源IP为代理服务器IP地址VIP目的地址为CIP外网客户端地址回复至客户端最终负载调度器将后端服务器的回复返回给原始的客户端。对于客户端而言它们与负载调度器之间的通信是透明的客户端不需要知道后端服务器的存在
NAT模式的优点是实施简单适用于需要隐藏后端服务器的IP地址或在与后端服务器通信时需要进行地址转换的情况。它可以将多个后端服务器组织为一个集群并通过负载调度器实现负载均衡和高可用性。
5.1.2 IP隧道模式IP Tunneling
一种在负载均衡架构中使用的网络通信方式。它通过在负载调度器Load Balancer上创建隧道将客户端请求原封不动地转发给后端服务器并将后端服务器的响应原封不动地返回给客户端 完整请求过程 客户端请求到达当客户端发送请求时请求会到达负载调度器。负载调度器通常具有一个公共IP地址这是对外部网络可见的地址 隧道创建在IP隧道模式下负载调度器会创建一个隧道将客户端请求原封不动地封装在通道中并通过隧道转发给后端服务器 转发请求经过隧道封装后负载调度器将请求转发给后端服务器。后端服务器接收到的请求与直接来自客户端的请求完全相同不经过任何地址转换或重写操作 后端服务器处理后端服务器对收到的请求进行处理并产生相应的响应 响应返回后端服务器的响应会原封不动地通过隧道返回给负载调度器 回复至客户端最终负载调度器将后端服务器的响应原封不动地返回给原始的客户端。对于客户端而言它们与负载调度器之间的通信是透明的客户端不需要知道后端服务器的存在 注 一般来说隧道模式常会用来负载调度缓存服务器组这些缓存服务器一般放置在不同的网络环境可以就近折返给客户端。在请求对象不在Cache服务器本地命中的情况下Cache服务器要向源服务器发送请求将结果取回最后将结果返回给用户。 IP隧道模式的优点是实现简单可以保留客户端和后端服务器之间的原始通信方式不需进行地址转换或重写。然而由于负载调度器只是透传客户端请求和后端服务器响应可能无法实现负载均衡和高可用性
5.1.3 直接路由模式Direct Routing
一种在负载均衡架构中使用的网络通信方式。它通过在负载调度器Load Balancer和后端服务器之间建立直接的通信路径实现请求的负载均衡和响应的传递 负载调度器配置在直接路由模式下负载调度器通常有一个公共IP地址也称为虚拟服务器IP地址Virtual IP Address。负载调度器通过这个公共IP地址与客户端进行通信 后端服务器配置在直接路由模式下后端服务器的IP地址必须与负载调度器在同一个子网下并且负载调度器和后端服务器之间必须有直接的网络连通性 请求转发当客户端发送请求时请求会到达负载调度器。负载调度器将根据负载均衡算法选择一个后端服务器并将请求原封不动地转发给该后端服务器 后端服务器处理后端服务器接收到请求后对其进行处理并生成相应的响应 响应传递后端服务器的响应不经过负载调度器直接返回给客户端。负载调度器在这个过程中充当了一个透明的转发中介不参与实际的数据传递 直接路由模式的优点是高性能和低延迟因为负载调度器和后端服务器之间的通信是直接的不需要额外的网络地址转换或重写操作。此外由于响应不需要通过负载调度器后端服务器的处理能力可以完全发挥出来
5.1.4 LVS工作模式总结和比较
6、LVS调度算法
ipvs scheduler根据其调度时是否考虑各RS当前的负载状态
类型分为静态调度算法和动态调度算法 静态不管后端真实服务器的状态根据自身算法进行调度动态会根据后端真实服务器的状态进行调度 动态服务器根据一个参考值 确定服务器是否忙这个值越小代表服务器比较清闲代表优先级越高就会被优先调度 6.1 静态调度算法
RRroundrobin轮询较常用WRRWeighted RR加权轮询较常用SHSource Hashing实现session sticky源IP地址hash将来自于同一个IP地址的请求始终发往第一次挑中的RS从而实现会话绑定DHDestination Hashing目标地址哈希第一次轮询调度至RS后续将发往同一个目标地址的请求始终转发至第一次挑中的RS典型使用场景是正向代理缓存场景中的负载均衡,如: Web缓存
6.2 动态调度算法
主要根据每RS当前的负载状态及调度算法进行调度Overheadvalue较小的RS将被调度
LCleast connections 适用于长连接应用。不考虑权重
LC算法Overheadactiveconns*256inactiveconns
WLCWeighted LC默认调度方法,较常用。第一轮不合理都是一样的优先级
WLC算法Overhead(activeconns*256inactiveconns)/weight
SEDShortest Expection Delay初始连接高权重优先,只检查活动连接,而不考虑非活动连接。权重小的比较空闲
SED算法Overhead(activeconns1)*256/weight
NQNever Queue第一轮均匀分配后续SEDLBLCLocality-Based LC动态的DH算法使用场景根据负载状态实现正向代理,实现Web Cache等LBLCRLBLC with Replication带复制功能的LBLC解决LBLC负载不均衡问题从负载重的复制到负载轻的RS,,实现Web Cache等
6.3 其他调度算法
内核版本 4.15 版本后新增调度算法 FO 和 OVF
FOWeighted Fail Over调度算法在此FO算法中遍历虚拟服务所关联的真实服务器链表找到还未过载未设置IP_VS_DEST_F_OVERLOAD标志的且权重最高的真实服务器进行调度属于静态算法OVFOverflow-Connection调度算法基于真实服务器的活动连接数量和权重值实现。将新连接调度到权重最高的真实服务器直到其活动连接数量超过权重值之后调度到下一个权重值最高的真实服务器在此OVF算法中遍历虚拟服务相关联的真实服务器链表找到权重值最高的可用真实服务器属于动态算法
一个可用的真实服务器需要通式满足以下条件
未过载未设置IP_VS_DEST_F_OVERLOAD标志真实服务器当前的活动连接数量小于其权重值其权重值不为零