4. 高可用性量化与需求工程
在SCADA系统中谈“高可用”,如果只停留在“要稳定、不能停”的层面,工程上无法验收,也无法设计。高可用性必须被量化成可测量、可验证、可写入合同的指标,再反向推导出架构、冗余方式和运维投入。本节围绕四个核心问题展开:可用性等级如何计算、RTO/RPO如何定义、业务影响分析如何落地、高可用需求规格书如何编写。
一、可用性等级:从99.9%到99.999%意味着什么
可用性(Availability)的标准定义是:A = MTBF / (MTBF + MTTR),其中MTBF为平均无故障时间,MTTR为平均修复时间。工程上更常用“年停机时间”来直观表达,因为停机时长才是业务方真正能感知的损失。
| 可用性等级 | 俗称 | 年允许停机 | 月允许停机 | 典型SCADA场景 |
|---|---|---|---|---|
| 99.0% | 两个9 | 约87.6小时 | 约7.2小时 | 非关键辅助监控 |
| 99.9% | 三个9 | 约8.76小时 | 约43.2分钟 | 一般生产辅助系统 |
| 99.95% | — | 约4.38小时 | 约21.6分钟 | 重要工艺监控 |
| 99.99% | 四个9 | 约52.6分钟 | 约4.32分钟 | 主干生产SCADA |
| 99.999% | 五个9 | 约5.26分钟 | 约25.9秒 | 关键基础设施、安全联锁 |
需要特别提醒:从99.9%提升到99.99%,年停机时间从8.76小时压缩到52.6分钟,压缩了约10倍,但代价往往不是线性增长。单机加备份服务器可能达到99.9%,而99.99%通常要求双机热备、双网冗余、双电源、双UPS、双运营商链路,甚至双站点。99.999%则进一步要求自动故障切换、无状态或状态同步、定期切换演练,以及可量化的MTTR控制。
可用性计算还有一个常被忽略的细节:串联与并联。若SCADA链路为“现场RTU→通信链路→前置采集→实时库→HMI”,任一环节失效都会导致整链不可用,串联可用性为各环节相乘。例如五个环节各为99.9%,串联后约为99.5%,年停机约43.8小时。若对关键环节做并联冗余,则该环节可用性变为 1-(1-A)²,例如99.9%并联后约99.9999%,但前提是切换可靠、共因故障被排除。
二、RTO与RPO:恢复目标的两个维度
可用性回答“一年能停多久”,RTO和RPO回答“一旦停了,多久能恢复、会丢多少数据”。两者常被混淆,必须分开定义。
- RTO(Recovery Time Objective,恢复时间目标):从故障发生到业务恢复可接受的最长时间。它约束的是“停机时长”,对应架构中的切换速度、备机就绪度、人员响应速度。例如RTO=30秒,意味着主备切换必须在30秒内完成,且HMI重新可用。
- RPO(Recovery Point Objective,恢复点目标):故障发生时允许丢失的数据时间跨度。它约束的是“数据回退多远”,对应数据备份、同步或异步复制的周期。例如RPO=0表示不允许丢数据,必须同步复制;RPO=5分钟表示可接受最近5分钟数据丢失,可用周期快照。
举例说明:某变电站SCADA要求RTO≤60秒、RPO=0。这意味着主服务器故障后,备机必须在60秒内接管,且实时库中所有遥测遥信点不得丢失。实现上通常采用双机热备加实时数据同步,备机持续接收主机的状态更新,切换时无需重新采集。若RPO放宽到5分钟,则可采用每5分钟一次的全量快照,切换后从最近快照恢复,代价是丢失最多5分钟的历史数据。
三、业务影响分析:把停机翻译成损失
业务影响分析(BIA)的目标是回答:SCADA停1分钟、10分钟、1小时,分别造成什么后果?只有把后果量化,才能反推可用性等级和RTO/RPO。BIA通常从四个维度展开:
- 安全影响:是否导致人员暴露、联锁失效、危险工艺失控。安全相关功能通常要求最高等级,且不允许降级运行。
- 生产影响:是否导致产线停运、批次报废、产能损失。可按“每分钟损失金额”估算。
- 合规影响:是否违反监管报送、环保数据上传、审计留痕要求,可能带来罚款或停产整改。
- 恢复影响:停机后恢复是否需要现场人工干预、是否需要重新初始化、是否会产生次生故障。
实际操作中,可按工艺区域逐个评估。例如某水厂SCADA分为取水、加药、送水三个区域。取水区域停机30分钟可能导致水池抽空,影响后续2小时供水;加药区域停机10分钟可能导致余氯不合格,触发水质报警;送水区域停机5分钟即造成管网压力波动。据此可分别设定:取水RTO=15分钟、RPO=1分钟;加药RTO=5分钟、RPO=0;送水RTO=2分钟、RPO=0。这些数值是示例性假设,真实项目需结合工艺参数和调度规程确定。
四、高可用需求规格书:从指标到可验收条款
需求规格书是把上述分析固化为可设计、可测试、可验收的文件。它不应只写“系统应高可用”,而应包含以下要素:可用性等级、RTO、RPO、适用范围、切换方式、降级策略、验证方法和验收判据。
下面给出一份可直接参考的规格书片段(示例,字段和数值需按项目实际调整):
【高可用需求规格书(节选)】
1. 适用范围
本规格适用于XX厂SCADA主站系统,含实时采集、实时库、HMI、历史存储。
2. 可用性指标
2.1 系统整体可用性 ≥ 99.99%(年停机 ≤ 52.6分钟)
2.2 关键采集链路可用性 ≥ 99.999%
2.3 统计口径:以HMI可操作、实时数据刷新正常为可用判据
3. RTO / RPO
3.1 主服务器故障:RTO ≤ 30秒,RPO = 0
3.2 实时库故障:RTO ≤ 60秒,RPO = 0
3.3 历史库故障:RTO ≤ 5分钟,RPO ≤ 1分钟
3.4 通信链路单路故障:RTO ≤ 10秒,RPO = 0
4. 冗余与切换
4.1 服务器采用双机热备,支持自动切换与手动切换
4.2 切换过程不得导致实时数据丢失或HMI黑屏超过RTO
4.3 双路通信、双电源、双UPS,任一单点故障不影响系统可用
5. 降级策略
5.1 备机不可用时,主机可单机运行并告警
5.2 历史库不可用时,实时监控不受影响,历史数据缓存后补传
6. 验证与验收
6.1 切换测试:每季度至少一次,记录切换时间和数据完整性
6.2 可用性统计:按月统计,连续3个月不达标视为验收不通过
6.3 测试方法:模拟主服务器断电、断网、进程崩溃三类故障
编写规格书时,最容易出问题的是“指标不可测”。例如只写“切换要快”,验收时无法判定。应写成“从主服务器断电到备机HMI可操作,时间≤30秒,且切换前后所有遥测点数值连续、无坏点”。另一个常见问题是忽略共因故障,例如双机共用一台交换机、双电源来自同一路市电,这些都会让冗余形同虚设,必须在规格书中明确排除。
最后,高可用需求不是一次性写完就结束。随着工艺变更、系统扩容、设备老化,原有RTO/RPO可能不再匹配。建议每年结合BIA复核一次,并在每次重大变更后重新验证切换时间和数据完整性。只有把量化指标、业务影响和验收方法串成闭环,SCADA的高可用性才真正可落地、可度量、可交付。