常识 | 负载均衡、容灾设计、高可用

负载均衡

集群的分类:

  1. 计算集群。通常用于承载计算密集型任务,通过并行计算为基础,与不同节点完成通信,共同完成计算任务。
  2. 负载均衡集群。通常是将任务负载尽可能地平均分配到多台服务器上处理。
  3. 高可用集群。通常是为了保证服务高可用,及时完成故障转移等工作

负载均衡调度算法:

  • 轮训 Round Robin
  • 加权轮询 Weighted Round Robin
  • 随机 Random
  • 加权随机 Weighted Random
  • 基于源 IP 的 Hash Source IP Hashing
  • 基于源 IP 端口的 Hash (Source IP and Source Port Hashing)
  • 基于UDP 报文净荷的 Hash。 通过 UDP 报文载荷中的某个字段值,获取到 Hash 值
  • 最小连接 Least Connection。将请求分配给连接数最小的服务器
  • 加权最小连接 Weighted Least Connection
  • 最小响应时间 Least Response Time

四层负载及七层负载

负载均衡主要分为四层和七层负载均衡,对应网络七层模型的第四层和第七层。

四层大概是用负载均衡器把ip转为虚拟ip,然后使用上文某种算法,将消息交给某台服务器,处理完之后又发给负载均衡器,再转给客户端

七层相比四层多了能通过业务来分发流量:

  • 能够根据数据包内容(例如判断数据包是图像文件、压缩文件)把数据流量引向能够处理响应内容的服务器,提高系统的可管理性。
  • 能够根据连接请求的数据类型(例如根据URL判定用户发送的请求是和普通文本、图像等静态文档相关,还是ASP、CGI 文件相关)把其引向相应的服务器处理。

LVS   采用四层负载的linux虚拟服务器

第一层,负载调度器:这是访问整个群集系统的唯一入口,对外使用所有服务器共有的VIP(Virtual IP,虚拟IP)地址,也称为群集IP地址。通常会配置主、备两台调度器实现热备份,当主调度器失效以后平滑替换至备用调度器,确保高可用性。
第二层,服务器池:群集所提供的应用服务(如,HTTP FTP)由服务器池承担,其中的每个节点具有独立的RIP(Real IP,真实IP)地址,只处理调度器分发过来的客户机请求。当某个节点暂失效时,负载调度器的容错机制会将其隔离,等待错误排除以后再重新纳入服务器池。
第三层,共享存储:为服务器池中的所有节点提供稳定、一致的文件存取服务,确保整个群集的统一性。在Linux/UNIX 环境中,共享存储可以使用NAS设备,或者提供NFS(Network File System,网络文件系统)共享服务的专用服务器。


容灾设计(数据库)

衡量容灾系统有两个主要指标:RPO(Recovery Point Objective)和 RTO(Recovery Time Object),其中 RPO代表当灾难发生时允许丢失的数据量,RTO 代表系统恢复的时间。

一般会有两个系统,两份独立的数据存储空间,一份存储空间出现极端灾难后,另一份可以快速接管访问请求,继续对外提供服务。主系统故障后,副系统自动变为主系统。

节点故障也可用同样的思想,某个节点故障,系统将它的副本提升为主节点,然后将原节点宕机时丢失的数据同步过去

另一种双系统叫双活,不分主次,运行同样的负载


高可用性

意思是,故障时长尽可能低

提升可用性的角度:减少单点故障,增加交叉节点的可靠性(交叉节点就是不能通过备份来恢复的关键节点),提前检测和快速恢复

其实和容错备灾都是一类东西

你可能感兴趣的:(常识,负载均衡)