一、集群
系统的拓展方式:
垂直扩展 :向上扩展,增强设备的性能。两个瓶颈:计算机本身设备的限制,以及硬件本身的性能瓶颈。
水平扩展 :向外扩展,增加设备,并行地运行多个服务,依靠网络解决内部通信的问题。这也就是所谓的cluster(集群)。
1.1 集群的类型
集群:为了解决某个特定的问题,将多台计算机组合起来形成的单个系统。
一般的说法有三种类型:
LB :load balance ,负载均衡,多个主机组成,每个主机只承担一部分的访问结果
HA :high availability ,高可用,在设计系统时,采取一定的措施,确保即使系统当中某一组件或者部分出现故障,整个系统依然能正常运行。为了维护系统的可用性、可靠性、容错性。
HPC :high-performance computing :高性能,对响应时间,处理能力要求更高
1.2 系统可靠性指标
MTBF :Mean Time Between Failure :平均无故障时间
MTTR :Mean Time To Repair :平均故障恢复时间
A=MTBF/(MTBF+MTTR) ,显然A指标在0-1之间
A指标就是系统可用性的度量,越接近0表示系统越不可用,越接近1表示系统越可用。
现在主流的指标(对外宣称)为99.99%以上,90%-95%就不合格,实际98%-99%就算合格。
停机时间
计划内时间:以前可以不计,但现在也算在内
计划外时间:故障时间,从故障发生到故障解决的总时间,尤其对运维来说,计划外时间是我们必须关注的一个指标。
一旦发生故障,当天事必须当前解决;没有解决之前,人不可以离开;解决完之后必须生成报告,备案。
1.3 LVS集群
LVS :Linux virtual server
章文嵩发起的开源项目,Linux的内核层面实现负载均衡的软件。
主要作用:将多个后端服务器组成一个高可用、高性能的服务器集群。通过负载均衡的算法,将客户端的请求分发到后端的服务器上,通过这种方式来实现高可用和负载均衡。
阿里的SLB,server load balance,就是用LVS+keepalive实现的。
LVS适用场景:
小集群不需要适用LVS,用Nginx就足够了,大集群适用LVS。
1.4 LVS集群中的术语
VS :Virtual Server ,LVS服务的逻辑名称,也就是我们在外部访问LVS集群时使用的IP地址和端口
DS :Director Server ,LVS集群中的主服务器,也就是调度器,类似Nginx的代理服务器,调度器是集群的核心,用来接收客户端的请求转发到后端服务器
RS :Real Server ,LVS集群中的真实服务器,也可以理解为后端服务器,用来接收DS转发过来的请求,并响应结果
CIP :Client IP ,客户端IP地址,也就是发起请求的客户端的IP地址
VIP :Virtual IP ,LVS集群使用的IP地址,对外提供集群访问的虚拟IP地址
DIP :Director IP ,调度器在集群当中的IP地址,用于和RS通信
RIP :Real IP ,后端服务器在集群当中的IP地址。
1.5 基本通信流程
CIP 访问 VIP ,相当于访问DS,DS根据负载均衡算法,把请求转发给RS,
RS响应的模式有两种,一是RS响应发送到DS,DS再转发给CIP;二是RS把响应直接发送给CIP。
二、 LVS的工作模式
2.1 LVS的三种工作模式
NAT模式 :响应由调度器响应给客户端
DR模式 :直接路由模式,真实服务器直接响应给客户端
TUN模式 :隧道模式
常用的模式就是NAT模式和DR模式。
NAT | DR | TUN | |
---|---|---|---|
优点 | 地址转换,配置简单 | 性能最好 | WAN,可以实现较远距离的数据包传输 |
缺点 | 调度器性能有瓶颈 | 不支持跨网段 | 需要开通VPN,是专用通道 |
RS的要求 | 无限制 | 必须禁止非物理接口的ARP响应 | 要支持隧道模式 |
RS的数量 | 10-20台左右 | 100台左右 | 100台左右 |
2.2 ipvsadm
ipvsadm :用来配置和管理LVS集群的工具
选项
-A :添加虚拟服务器 vip
-D :删除虚拟服务器地址
-s :指定负载均衡的调度算法
- rr :默认,轮询
- wrr :加权轮询
- lc :最小连接
- wlc :加权最小连接
-C :清空原有策略
选项
-a :添加真实服务器
-d :删除真实服务器
-t :指定vip的地址和端口
-r :指定rip的地址和端口
-m :使用NAT模式
-g :使用DR模式
-l :使用隧道模式
-w :设置权重
-p 60 :连接保持60,设置连接保持时间
-l :列表查看
-n :数字化展示