前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >高可用技术概述

高可用技术概述

作者头像
sean.liu
发布2022-09-07 10:25:05
3040
发布2022-09-07 10:25:05
举报
文章被收录于专栏:云计算技术笔记

算机系统高可用技术的基本概念。

前言

在分析高可用的技术前,我们需要先对一些概念进行说明,先从相关的词语开始。

系统

系统,即若干部分相互联系、相互作用,形成的具有某些功能的整体。分布式系统是其中一个部分。

系统并不是计算机科学独有的名词,它是非常宽泛的概念,生态,机械等,都是系统。

类比

这里用生态系统来类比。因为生态系统是天然的,可以用做参考。

对比项\系统

生态系统

计算机系统

能量

太阳能

电力

成员

无机环境,生物

硬件,数据,程序

循环

物质循环

信息/资源循环

稳定性

生态平衡

可用性

恢复

生态自我调节

故障恢复

可以看出,计算机系统和生态系统相似。

高可用

如果生态系统受到过于大的破坏,会崩溃。计算机系统也是如此,我们做的就是提升抗风险的能力,避免系统崩溃。高可用HA(High Availability)就是对抗风险能力的描述,它是一个形容词

提高可用性,就是减少系统不能提供服务的时间

风险

风险是故障的根源,我们所做的就是提高系统抗风险的能力。

内部风险

内部风险主要是程序Bug和人为操作的因素,这更多是软件工程,质量管理(QA)和流程管理的范畴。

事实上,大部分的故障是由变更引起的。

外部风险

服务器宕机,硬盘损坏,机房断电,光缆被挖断等等,都是外部风险。这类风险大多不可抗拒,或难以预测。高可用技术就是为了对抗这些风险。

本文只讨论应对外部风险的高可用技术,不考虑内部风险。内部风险是另一个话题。

容灾

提高可用性的本质是冗余,具体的实现方案会有不同,但目的都是降低不可用的时长。

从对不可用时长的影响来分类,有两种策略:

  1. 灾备:成本较低,易于实现,需要立刻故障转移,会产生不可用时间。
  2. 容错:成本较高,实现难度大,不需要立刻故障转移,不会产生不可用时间。

我们总是从最坏的情况去考虑,但并非要做到尽善尽美,可用性需在成本和故障影响程度之间权衡。

灾备(快速恢复)

灾备,指的是灾难发生后的处理。它的流程是,前期准备,发现故障,故障转移。从发现灾难到故障转移,多少会有一段时间被计入不可用时长。但随着技术发展,故障时长已经被降低到秒级。

更多分析请看自动灾备技术分析

容错

容错指的是系统可以容忍局部的错误存在。是使系统在部分组件发生故障时仍能正常运作的能力。

更多的在信息技术中用于对抗干扰,比如极化码。在硬件中,ECC内存,SSD硬盘会在出现错误的情况下修复数据,这个动作上层无感。

这个方案本质上是信息冗余,但在计算机架构设计中很少。分布式存储系统有这种方案,比如阿里的分布式存储系统盘古,客户端直链3个ChunkServer,一个ChunkServer异常,上游完全无感知。也就不会产生不可用时间。

虽然上游无感知,但依然要做故障转移,下线故障机器,新增副本,只是不需要立刻操作。可异步处理。

其它

灾备和容错的区别

二者的差异在于故障转移是否是恢复业务的关键。打个比方,有人攻城,守城将军要人送信求援。有两种办法。

  1. 灾备:派出一个人送信,如果发现送信人没成功突围,或一段时间没回来,再派一个人。
  2. 容错:一开始就派出多个人送信。 在灾备的流程中,将军发现没有突围会再派一个人,这就是故障转移的动作,不再派人信肯定送不出去。一次性排除多个人,通常情况下总会有人把信送到。 我们会觉得一开始派多个人是最好的选择,一个一个派像是添油战术。但派出送信人是需要人力的,如果将军手下只剩下几个人了呢。 在计算机系统中,我们还得考虑数据一致性等问题,需要更复杂的处理。

分布式共识算法

分布式共识算法解决的是数据一致性问题,并不是一种容灾方案。但它是容灾方案中不可缺少的一部分。

分片技术

分片指的是将业务水平拆分,使其分片可以分散在不同服务器上,常见的是数据库的分库分表。更复杂的是业务层面的分片,比如淘宝单元化。

分片可以降低系统故障引起的影响范围,但分片的主要目的是提高系统吞吐能力,它并未消除单点。如果一个分片瘫痪了,对于这个分片的用户来说,系统不可用。所以分片不属于高可用技术

总结

  1. 高可用的本质是减少系统不能提供服务的时间。
  2. 灾备和容错,主要区别是是否需要立刻故障转移。
  3. 在业务较为复杂度情况下,通常使用的是灾备的办法。一些简单,频繁,且重要的场景则会用容错处理。无论哪种,最终都需要做故障转移。避免故障叠加,产生更大的故障。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年8月1日01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
    • 系统
      • 类比
    • 高可用
    • 风险
      • 内部风险
        • 外部风险
        • 容灾
          • 灾备(快速恢复)
            • 容错
            • 其它
              • 灾备和容错的区别
                • 分布式共识算法
                  • 分片技术
                  • 总结
                  相关产品与服务
                  对象存储
                  对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档