1 构建高可用集群
1.1 什么是高可用集群
高可用集群(High Availability Cluster,简称HA Cluster),是指以减少服务中断时间为目的得服务器
集群技术。它通过保护用户得业务程序对外部间断提供的服务,把因为软件,硬件,认为造成的故障对
业务得影响降低到最小程度。总而言之就是保证公司业务7*24小时不宕机
1.2 高可用衡量标准
衡量集群的可用性(HA)高低,可以从MTTF(平均无故障时间)和MTTR(平均故障维修时间)进行考
量,公式为:HA=MTTF/(MTTF+MTTR)*100%,具体衡量标准可以参考下表
1.3 高可用保障
对集群中的服务器进行负载均衡
、健康监测
,并在服务器出现故障时能进行故障转移
,自动切换到正常
服务器是高可用保障的必要手段
。
1.3.1 负载均衡
常见的负载均衡手段如下:
硬件负载均衡,如F5
软件负载均衡,如nginx、haproxy、lvs
几种软件负载均衡技术比较
1.3.2 健康监测和自动切换
常见的健康监测和自动切换软件
有keepAlived和heartBeat
,其二者对比如下:
Keepalived使用更简单:从安装、配置、使用、维护等角度上对比,Keepalived都比Heartbeat要简单
Heartbeat功能更强大:Heartbeat虽然复杂,但功能更强大,配套工具更全,适合做大型集群管理
,
而Keepalived主要用于集群倒换,基本没有管理功能
1.4 高可用拓扑图
2 软件负载均衡技术LVS
2.1 LVS简介
2.1.1 什么是lvs
基础知识:网络协议必知必会
LVS是Linux Virtual Server的简写,在1998年5月由章文嵩博士成立。
工作在OSI模型的四层,基于IP进行负载均衡。
在linux2.2内核时,IPVS就已经以内核补丁的形式出现。
从2.4版本以后,IPVS已经成为linux官方标准内核的一部分。
2.1.2 lvs官方资料链接
a. lvs项目介绍 http://www.linuxvirtualserver.org/zh/lvs1.html
b. lvs集群的体系结构 http://www.linuxvirtualserver.org/zh/lvs2.html
c. lvs集群中的IP负载均衡技术 http://www.linuxvirtualserver.org/zh/lvs3.html
d. lvs集群的负载调度 http://www.linuxvirtualserver.org/zh/lvs4.html
e. lvs中文站点 http://zh.linuxvirtualserver.org
2.2 lvs拓扑
2.2.1 lvs术语
LVS服务器(DS)
集群中节点服务器(RS)
虚拟IP地址(VIP),用于向客户端提供服务的IP地址(配置于负载均衡器上)
真实服务器的IP地址(RIP)
, 集群中节点服务器的IP地址
负载均衡器IP地址(DIP)
,负载均衡器的IP地址,物理网卡上的IP
客户端主机IP地址(CIP)
,终端请求用户的主机IP地址
2.2.2 工作原理和拓扑图
LVS负载均衡调度技术是在linux内核中实现的,使用配置LVS时,不是直接配置内核中的IPVS
,而是通
过IPVS的管理工具IPVSADM来管理配置
,LVS集群负载均衡器接受所有入站客户端的请求,并根据算法
来决定由哪个集群的节点来处理请求。
2.3 lvs的四种工作模式
2.3.1 TUN模式
TUN(Tunneling)模式需要服务器支持IP隧道(IP tunneling)技术,限制较大,一般不用。
2.3.2 NAT模式
NAT(Network Address Translation)模式是基于NAT技术实现的。在此模式中,LVS服务器既要处理请 求的接入,又要处理请求的响应。因此存在较大的性能瓶颈。
2.3.3 DR模式
DR(Direct Routing)模式是LVS的默认工作模式,也叫直接路由模式。
只处理请求的接入,不处理请求的
响应。因此性能高,瓶颈小。
2.3.4 FULLNAT模式
FULLNAT( Full Network Address Translation)可以说是淘宝定制化的技术,linux内核不支持。
2.4 LVS调度算法
2.4.1 静态调度算法
2.4.2 动态调度算法