高可用集群相关术语扫盲篇

简介: 关于高可用集群相关术语的扫盲篇,涵盖了集群类型、系统可用性、系统故障、提升系统高可用性的解决方案、高可用服务的组件、共享存储、网络分区、双节点集群、HA Cluster实现方案和高可用集群后端存储等多个方面的内容。

作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。

一.集群类型

1>.负载均衡(Load Balance,简称LB)

  目前有以下三代开源负载均衡软件:  
    LVS(tcp)  
    HAProxy(tcp/http)  
    Nginx(http/upstream,stream/upstream)

2>.高可用性(High Availability,简称HA)

  高可用性的集群主要解决了一个单点故障(Single Point of Failure,简称SPoF)的问题。

3>.高性能集群(High Performance Computing,简称HPC)

  高性能集群一般不会在民营企业或者上市公司使用,高性能集群一般用在国家的重要单位,用来计算数据量非常大的场景,比如国防,气象统计,模拟导弹的运行轨迹等。因此一般的民营企业压根也不会耗资购买如此高性能的设备(这需要国家特有的CPU,操作系统等。说白了这已经不是钱的问题了,尽管你再有钱也买不到这些核心技术)。  

  如下图所示,在2017年之前(https://www.top500.org/lists/2017/11/),我们中华人民共和国计算机位列与世界第一,可惜,从2018年起就被美国占据第一了。  

  博主推荐阅读:
    https://www.top500.org/

二.系统可用性

  可能有的运行小伙伴进入公司需要签一个服务水平协议(Service-Level Agreement,简称SLA),这个协议可能会直接和绩效挂钩,比如公司的工资是由"基本工资 + 绩效",如果你所维护的服务出现了问题,在规定的时间内没有恢复,可能公司会拿这个说事来扣你的绩效,这样你到账的薪资也会减少。  
    
  那怎么计算这个SLA呢?其实就是将每小时转换成分钟(60 * 24),再按月(比如一个月30天)统计出总时间,假如你们公司要求你的系统服务可用性在99.95%之上,那么你每个月可以出现故障的时间如下图所示。  

  大多数服务器重启一次大概在5分钟左右甚至有的服务器会更耗费时间(此处我们不谈论重启后操作系统起不来的情况哈),有的服务就算重启服务器服务依旧是无法立即恢复(比如Hadoop集群)。因此光靠重启不是解决问题的根本办法,为了提高服务的可用性,我们生产环境最好对服务做高可用,避免单点故障,从而提高SLA的值。

三.系统故障

  硬件故障:  
    设计缺陷(比如某手机更换了某种材质后客户使用手机一段时间手机就开始"发烧",生产环境中服务器硬件涉及故障相对较少,可以选择大品牌,比如dell服务器)  
    wear out(损耗,比如三年以上的机械硬盘很很大可能性会坏掉,如果磁盘写入次数较频繁也会降低磁盘寿命)  
    自然灾害(比如机房断电,火灾,战争之类的,因此需要做异地灾备)  
    ……  
  软件故障:  
    设计缺陷(比如系统故障,软件故障等)

四.提升系统高用性的解决方案之降低MTTR(平均故障时间)

解决方案:
  建立冗余机制,常见的冗余机制如下所示:
    active/passive(主/备,比如Hadoop的namenode角色active/standby)
      active --> HEARTBEAT(心跳检测机制) --> passive
    active/active(双主,比如zookeeper)      
      active <--> HEARTBEAT(心跳检测机制) <--> active

五.高可用的是"服务"

  HA nginx service:
    为每个nginx节点配置一个vip,每个nginx要实现心跳机制,当一个节点挂掉后另一个节点能立马响应服务,而且这两个nginx的数据应该是共享的(shared storage)。
    
  资源:组成一个高可用服务的"组件"
    (1)passive node的数量
    (2)资源切换

六.shared storage

  NAS(Network Attached Storage):  
    网络附加存储,基于网络(TCP/IP)的共享文件系统,典型的开源网络共享服务如NFS,SAMBA。

  SAN(Storage Area Network):  
    存储区域网络,基于网络的块级别的共享,一般都是光纤网络(需要单独购买HBA卡,HBA卡的接口光纤接口),其性能要比NAS更快。

七.网络分区(Network partition)

  quorum:法定人数
    with quorum:> total/2
      可用的节点数量要大于总集群数量的一半,一半以上的节点要存活并提供正常的服务,比如一个集群由3个节点,那么最少得有2台节点可用提供正常服务。
    without quorum: <= total/2
      故障的机器要小于等于总集群数量的一半,比如一个集群有3个节点组成,那么最多有一个节点出现故障。  
  隔离设备:fence(管理服务器的状态,以防止服务出现脑裂的情况,一般情况下该设备得单独购买)
    node:STONITH = Shooting The Other Node In The Head(强制下线/断电),官方连接:https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/high_availability_add-on_reference/s1-unfence-haar

八.双节点集群(TWO nodes Cluster)

  辅助设备:  
    ping node(可用自定义脚本实现)  
    quorum disk(仲裁设备,需要花钱购买)

  Failover:  
    故障切换,即某资源的主节点故障时,将资源转移至其它节点的操作。

  Failback:  
    故障移回,即某资源的主节点故障后重新修改上线后,将之前已转移至其它节点的资源重新切回的过程。

九.HA Cluster实现方案

  AIS(ApplicaitonInterface Specification)  
    应用程序接口规范,比较常见的有以下几种方案:
      RHCS:Red Hat Cluster Suite  
        红帽集群套件
      heartbeat:  
        基于心跳监测实现服务高可用
      pacemaker+corosync:  
        资源管理与故障转移
      vrrp(Virtual Router Redundancy Protocol):  
        虚拟路由冗余协议,解决静态网关单点风险
        软件层:  
          keepalived
        物理层:  
          路由器、三层交换机

十.高可用集群-后端存储

  JBOD(Just a Bunch Of Disks)不是标准的RAID等级,它通常用来表示一个没有控制软件提供协调控制的磁盘集合,JBOD 将多个物理磁盘串联起来,提供一个巨大的逻辑磁盘,JBOD的数据存放机制是由第一块磁盘开始按顺序往后存储,当前磁盘存储空间用完后,再依次往后面的磁盘存储数据,JBOD 存储性能完全等同于单块磁盘,而且也不提供数据安全保护,它只是简单提供一种扩展存储空间的机制,JBOD 可用存储容量等于所有成员磁盘的存储空间之和。

目录
相关文章
|
4月前
|
负载均衡 应用服务中间件 数据库
高可用系列文章之四 - 总结
高可用系列文章之四 - 总结
|
负载均衡 网络协议 算法
搞懂分布式技术7:负载均衡概念与主流方案
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a724888/article/details/80774560   负载均衡的原理 原创: 刘欣 码农翻身 4月23日 这是1998年一个普通的上午。
|
4月前
|
Kubernetes 网络安全 数据安全/隐私保护
K8S二进制部署详解,一文教会你部署高可用K8S集群(一)
K8S二进制部署详解,一文教会你部署高可用K8S集群(一)
662 0
|
4月前
|
Kubernetes 应用服务中间件 nginx
K8S二进制部署详解,一文教会你部署高可用K8S集群(二)
K8S二进制部署详解,一文教会你部署高可用K8S集群(二)
285 0
|
4月前
|
算法 Go 分布式数据库
构建高可用的分布式数据库集群:使用Go语言与Raft共识算法
随着数据量的爆炸式增长,单一数据库服务器已难以满足高可用性和可扩展性的需求。在本文中,我们将探讨如何使用Go语言结合Raft共识算法来构建一个高可用的分布式数据库集群。我们不仅会介绍Raft算法的基本原理,还会详细阐述如何利用Go语言的并发特性和网络编程能力来实现这一目标。此外,我们还将分析构建过程中可能遇到的挑战和解决方案,为读者提供一个完整的实践指南。
|
存储 负载均衡 算法
作者推荐 | 【分布式技术专题】「架构设计方案」图解学习法总结集群模式下的各种软负载均衡策略实现及原理分析
作者推荐 | 【分布式技术专题】「架构设计方案」图解学习法总结集群模式下的各种软负载均衡策略实现及原理分析
169 0
作者推荐 | 【分布式技术专题】「架构设计方案」图解学习法总结集群模式下的各种软负载均衡策略实现及原理分析
|
存储 人工智能
分布式与集群(一):我眼中的分布式与集群
我们国家的优势:我们相比其他国家拥有天然的人口优势;人多了,需求便来,如何做到服务好这么多人,面临很大的挑战,同时也蕴藏着巨大的机会;当然也催生了以BAT为代表的一批互联网公司的诞生,我们的技术也进入世界一流水平;
155 3
|
Kubernetes 负载均衡 Cloud Native
【云原生Kubernetes系列项目实战第一篇】k8s集群+高可用负载均衡层+防火墙( 提及年少一词,应与平庸相斥)(一)
【云原生Kubernetes系列项目实战第一篇】k8s集群+高可用负载均衡层+防火墙( 提及年少一词,应与平庸相斥)(一)
314 0
【云原生Kubernetes系列项目实战第一篇】k8s集群+高可用负载均衡层+防火墙( 提及年少一词,应与平庸相斥)(一)
|
存储 Kubernetes 负载均衡
【云原生Kubernetes系列项目实战第一篇】k8s集群+高可用负载均衡层+防火墙( 提及年少一词,应与平庸相斥)(二)
【云原生Kubernetes系列项目实战第一篇】k8s集群+高可用负载均衡层+防火墙( 提及年少一词,应与平庸相斥)(二)
200 0
【云原生Kubernetes系列项目实战第一篇】k8s集群+高可用负载均衡层+防火墙( 提及年少一词,应与平庸相斥)(二)
|
负载均衡 Kubernetes Cloud Native
【云原生Kubernetes系列项目实战第一篇】k8s集群+高可用负载均衡层+防火墙( 提及年少一词,应与平庸相斥)(三)
【云原生Kubernetes系列项目实战第一篇】k8s集群+高可用负载均衡层+防火墙( 提及年少一词,应与平庸相斥)(三)
222 0
【云原生Kubernetes系列项目实战第一篇】k8s集群+高可用负载均衡层+防火墙( 提及年少一词,应与平庸相斥)(三)