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

简介: 关于高可用集群相关术语的扫盲篇,涵盖了集群类型、系统可用性、系统故障、提升系统高可用性的解决方案、高可用服务的组件、共享存储、网络分区、双节点集群、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 可用存储容量等于所有成员磁盘的存储空间之和。

目录
相关文章
|
6月前
|
负载均衡 应用服务中间件 数据库
高可用系列文章之四 - 总结
高可用系列文章之四 - 总结
|
负载均衡 网络协议 算法
搞懂分布式技术7:负载均衡概念与主流方案
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a724888/article/details/80774560   负载均衡的原理 原创: 刘欣 码农翻身 4月23日 这是1998年一个普通的上午。
|
16天前
|
存储 Prometheus 监控
构建高可用性ClickHouse集群:从理论到实践
【10月更文挑战第27天】在数据驱动的时代,构建一个稳定、高效的数据库系统对于企业的业务发展至关重要。作为一名数据工程师,我深知数据库系统的高可用性和可扩展性对于支撑企业应用的重要性。在这篇文章中,我将分享如何构建一个高可用性的ClickHouse集群,从分布式表的设计到数据复制与分片,再到故障恢复机制,确保系统在大规模数据处理中的稳定性和可靠性。
49 0
|
3月前
|
运维 负载均衡 算法
“分布式基础概念”全面解析,让你秒懂分布式系统!【一】
该博客文章全面解析了分布式系统的基础概念,包括微服务架构、集群与分布式的区别、节点定义、远程调用、负载均衡、服务注册与发现、配置中心、服务熔断与降级以及API网关,帮助读者快速理解分布式系统的关键组成部分和工作原理。
“分布式基础概念”全面解析,让你秒懂分布式系统!【一】
|
6月前
|
Kubernetes 网络安全 数据安全/隐私保护
K8S二进制部署详解,一文教会你部署高可用K8S集群(一)
K8S二进制部署详解,一文教会你部署高可用K8S集群(一)
1592 0
|
存储 负载均衡 算法
作者推荐 | 【分布式技术专题】「架构设计方案」图解学习法总结集群模式下的各种软负载均衡策略实现及原理分析
作者推荐 | 【分布式技术专题】「架构设计方案」图解学习法总结集群模式下的各种软负载均衡策略实现及原理分析
180 0
作者推荐 | 【分布式技术专题】「架构设计方案」图解学习法总结集群模式下的各种软负载均衡策略实现及原理分析
|
存储 人工智能
分布式与集群(一):我眼中的分布式与集群
我们国家的优势:我们相比其他国家拥有天然的人口优势;人多了,需求便来,如何做到服务好这么多人,面临很大的挑战,同时也蕴藏着巨大的机会;当然也催生了以BAT为代表的一批互联网公司的诞生,我们的技术也进入世界一流水平;
162 8
|
存储 分布式计算 运维
大白话讲讲分布式存储系统的架构设计以及容错架构
分布式存储系统的架构设计旨在实现数据的分布式存储和负载均衡,通常采用数据分片和多节点存储的方式。容错架构则是为了提高系统的鲁棒性和可用性。在分布式存储系统中,容错架构常采用数据的冗余备份来应对节点故障或网络异常问题。通过复制数据到多个节点,即使某个节点发生故障,系统仍可以提供数据的可靠访问。此外,容错架构还包括故障检测和自动故障转移机制,用于及时检测节点故障,并将故障节点的任务转移给其他正常节点。这样可以保证系统在故障情况下仍能正常运行,并提供不间断的数据访问。通过合理的架构设计和有效的容错机制,分布式存储系统可以实现高可用性和数据可靠性,满足大规模数据存储和访问的需求。
1061 0
大白话讲讲分布式存储系统的架构设计以及容错架构
|
容灾 测试技术 数据库
第四章:OceanBase集群技术架构(数据可靠及高可用)
第四章:OceanBase集群技术架构(数据可靠及高可用)
362 0
|
存储 Kubernetes 负载均衡
【云原生Kubernetes系列项目实战第一篇】k8s集群+高可用负载均衡层+防火墙( 提及年少一词,应与平庸相斥)(二)
【云原生Kubernetes系列项目实战第一篇】k8s集群+高可用负载均衡层+防火墙( 提及年少一词,应与平庸相斥)(二)
212 0
【云原生Kubernetes系列项目实战第一篇】k8s集群+高可用负载均衡层+防火墙( 提及年少一词,应与平庸相斥)(二)