高可用系列文章之一 - 概述
本文最后更新于:2024年7月24日 晚上
一 概述
可用性是系统运行质量的重要指标.
随着数字化和智能化的进程, 系统的可用性愈发重要。例如,制造业流水线需要高可用性的 MES 系统来保证流水线的正常运转。
本文为 高可用 相关的技术文档, 从以下几个方面对 高可用 在制造业的应用和实施进行详细描述。
1.1 可用性 (Availability) 定义
GB/T3187-97 对可用性的定义:
在要求的外部资源得到保证的前提下,产品在规定的条件下和规定的时刻或时间区间内处于可执行规定功能状态的能力。它是产品可靠性、维修性和维修保障性的综合反映。
可用性计算公式:
Availability = MTBF / (MTBF + MTTR)
关于 Availability 这个计算公式, 通常大家习惯用 N 个 9 来表征系统可用性,如 99.9%(3-nines availability),99.999%(5-nines availability)。
📓 一句话概括:
- 可用性 ─ 每次访问都能收到非错响应
宕机时间(DownTime):
定义: 机器出现故障的停机时间。这里之所以会提 Downtime,是因为使用每年的宕机时间来衡量系统可用性,更符合直觉,更容易理解.
可用性 (Availability) 和宕机时间 (Downtime) 的对应关系:
可用性 | 宕机时间 |
---|---|
90% | 36.5 天 / 年 |
99% | 3.65 天 / 年 |
99.9% | 8.76 小时 / 年 |
99.99% | 52 分钟 / 年 |
99.999% | 5 分钟 / 年 |
99.9999% | 31 秒 / 年 |
1.2 高可用 (High Availablility) 定义
高可用性定义:
高可用性 (HA) 是系统的一个特性,它的目标是确保一个商定的运行性能水平 (通常是正常运行时间) 高于正常时间。
如果用户不能访问系统,从用户的角度来看,系统是不可用的。通常,停机时间指的是系统不可用的时间。
1.3 高可用性实现方式
有两种支持高可用性的模式: 故障转移(fail-over)和冗余(redundant)。在通常的高可用方案中, 这 2 种是结合起来使用.
故障转移:
🔖 定义:
在计算和网络等相关技术中,故障转移是指在先前活动的应用程序、服务器、系统、硬件组件或网络发生故障或异常终止时,切换到冗余或备用计算机服务器、系统、硬件组件或网络。
故障转移又具有多种实现方式, 其中常用的一种为:
主用到备用切换(Active-passive)
关于主用到备用的故障切换流程是,主用服务器发送周期信号给待机中的备用服务器。如果周期信号中断,备用服务器切换成工作服务器的 IP 地址并恢复服务。
宕机时间取决于备用服务器处于「热」待机状态还是需要从「冷」待机状态进行启动。只有主用服务器处理流量。
主用到备用的故障切换也被称为主从切换。
🔖 知识点:
Web 服务器高可用方案中, NGINX 的高可用方案 - NGINX + Keepalived 高可用 就是典型的主从切换.
且备用 NGINX 服务器出于「热」待机状态.
1.4 目标
本文的目标是:
为 制造业 的系统高可用方案标准提供实用参考. 以满足其:
- 对已有的系统进行 高可用 改造;
- 对新系统进行 高可用 架构要求;
二 适用范围及要求
2.1 适用范围
- 对可用性指标有强制要求的系统;
- 重要系统(如: MES 系统);
- 技术架构符合 下文技术方案 描述的系统;
参考文件
参考文件 |
---|
Availability - Wikipedia |
High Availability - Wikipedia |
system-design-primer - GitHub |