怎样计算系统的可靠性和可用性是几个9?

我们在评估一个系统的可用性和可靠性时,一般都会说三个9,四个9之类的。这些一般都是说系统的SLA(Service Level Agreement) 具体是几个「9」,以此,来表示该系统一年中具体宕机的时间。
那这几个9是怎么计算出来的,具体一个系统可用性和可靠性又有哪些方面考虑呢?

以下是朋友推荐的一篇很棒的英文文章,我做了翻译。

系统可用性

系统可用性是通过将系统建模为串联和并联的组件来计算的。以下规则用于确定系统是串联的还是并联的:

  • 如果组件的失效导致组合变得不可操作,则认为这两个部件是串联操作的

  • 如果组件的故障导致另一部件接管故障部件的操作,则认为这两部件并行操作。

串行的可用性

如上图所示,两个组件 X 和 Y,如果有一个出问题导致整个组合都不可用,就认为 X 和 Y 这两个组件是串联的。只有组件 X 和组件 Y 同时可用时,整个组合才可用。由此可见,组合的可用性是这两部分的乘积,公式如下:

A = AAy

从上面的等式我们看出,串联系统中,整体组合的可用性,总是低于单个组件的可用性。

对于上面 X 和 Y 两个串联组件,可用性如下:

ComponentAvailabilityDowntime
X99% (2-nines)3.65 days/year
Y99.99% (4-nines)52 minutes/year
X 和 Y 组合98.99%3.69 days/year

从上面的表中,我们看到,即使使用了非常高可用性的组件Y,但组合系统仍然受组件 X 的影响,会降低好多,和「木桶原理」一致,都受最短板的影响。

并行的可用性

如上图所示,如果两个组件都失败时,整个系统会失败的话,这两个组件会被认为是并行的。任一组件可用时,整个系统都是可用的。整体可用性是 1- (两个组件都不可用),公式如下:

A = 1-(1-A)2

从上面我们能看出,两个组件并行的系统,整体可用性要任一单独的组件可用性高。如上图假设是组件X的两个部分,可用性如下:

ComponentAvailabilityDowntime
X99% (2-nines)3.65 days/year
Two X components operating in parallel99.99% (4-nines)52 minutes/year
Three X components operating in parallel99.9999% (6-nines)31 seconds /year !

我们看到,即使一个可用性低的组件X,组合后的系统可用性也很高。

可用性计算举例

了解系统

第一步,我们先准备一个系统的详细框图。该系统由输入传感器组成,该传感器接收信号并将其转换为适合信号处理器的数据流。输出会送到两个冗余的信号处理器。源信号处理器用于输入,备用信号处理器忽略来自输入换能器的数据。备用处理器监控主信号处理器的健康状态。两个信号处理器的输出被组合并发送到输出转换器。再次,有源信号处理器驱动数据线。待机使数据线保持不变。输出传感器将信号输出到外部。

系统可靠性

第二步是准备系统的可靠性模型。在这个阶段,我们决定系统的并行和串行连接。我们的示例系统的完整可靠性模型如下:

这里要注意的几个要点是:

  • 信号处理器的硬件和软件已经被建模为两个不同的实体。软件和硬件是串联的,因为如果硬件或软件不工作,信号处理器就不能工作。

  • 两个信号处理器(软件+硬件)结合在一起,形成信号处理复合体。在信号处理复合体中,两个信号处理复合体被并行放置,因为当信号处理器之一失效时,系统可以工作。

  • 输入传感器、信号处理复合体和输出传感器被串联放置,因为三个部件中的任何一个的失效都将导致系统的完全失效。

计算单个组件的可用性

第三步包括计算单个组件的可用性。MTBF(Mean time between failure 故障之间的平均时间)和MTTR(Mean time to repair 修复的平均时间)值针对每个组件进行估计。对于硬件组件,MTBF信息可以从硬件制造商的数据表中获得。如果硬件是在内部开发的,则硬件组将为板提供MTBF信息。对硬件的MTTR估计基于操作员对系统的监视程度。这里我们估计大约2小时的硬件MTTR。

一旦已知MTBF和MTTR,就可以使用以下公式来计算组件的可用性:

评估软件的MTBF 这个活儿还是比较费劲的。软件MTBF实际上是软件重新启动的时间。中间的间隔可以用系统的缺陷率来估计。在这里,我们估计MTBF大约是4000小时。MTTR是重新启动失败处理器的时间。我们的处理器支持自动重启,所以我们估计软件MTTR大约5分钟。请注意,5分钟似乎是在更高的一面。但MTTR应包括以下内容:

  • 由于信号处理器软件崩溃而中止的活动中浪费的时间

  • 检测信号处理器故障的时间

  • 失败的处理器重新启动并返回服务时所花费的时间

ComponentMTBFMTTRAvailabilityDowntime
Input Transducer100,000 hours2 hours99.998%10.51 minutes/year
Signal Processor Hardware10,000 hours2 hours99.98%1.75 hours/year
Signal Processor Software2190 hours5 minute99.9962%20 minutes/year
Output Transducer100,000 hours2 hours99.998%10.51 minutes/year

从上面表格我们看到

  • 即使硬件MTBF更高,软件的可用性也更高。主要原因是软件的MTTR要低得多。换句话说,软件确实经常失败,但是恢复很快,因此对系统可用性的影响较小。

  • 输入和输出传感器具有相当高的可用性,因此即使在没有冗余组件的情况下也能够实现相当高的可用性。

计算系统可用性

最后一步是计算整个系统的可用性。这些计算是基于串行和并行可用性计算公式。

ComponentAvailabilityDowntime
Signal Processing Complex (software + hardware)99.9762%2.08 hours/year
Combined availability of Signal Processing Complex 0 and 1 operating in parallel99.99999%3.15 seconds/year
Complete System99.9960%21.08 minutes/year

怎么做到更多的9

每个公司对几个9的定义都不一样,好多的互联网公司要求都是99.99。像一些事业单位网站,办事网站等,经常故障服务不可用,估计最高也就到99.9。

如果我们提供的服务可用性越低,意味着造成的损失也越大,别的不说,如果是特别重要的时刻,或许就在某一分钟,你可能就会因服务不可用而丢掉一笔大的订单,这都是始料未及的。所以,只要尽可能的提升SLA可用性才能最大化的提高企业生产力。

要做到更多的9,就需要监控自己的服务,在服务出现异常或者宕机的时候,能及时恢复。增加冗余,防止出现问题。

如果觉得有用,欢迎分享到朋友圈给更多的人。

相关阅读

怎样努力才能成为一名 Java Champion

MyBatis 这小子是怎样拿到 insert 时生成的主键的?

对于WEB应用安全,我too young了

如果你喜欢本文

请长按二维码关注

转发朋友圈,是对我最大的支持。

更多精彩内容:

一台机器上安装多个Tomcat 的原理(回复001)

监控Tomcat中的各种数据 (回复002)

启动Tomcat的安全机制(回复003)

乱码问题的原理及解决方式(回复007)

Tomcat 日志工作原理及配置(回复011)

web.xml 解析实现(回复 012)

线程池的原理( 回复 014)

Tomcat 的集群搭建原理与实现 (回复 015)

类加载器的原理 (回复 016)

类找不到等问题 (回复 017)

代码的热替换实现(回复 018)

Tomcat 进程自动退出问题 (回复 019)

为什么总是返回404? (回复 020)

...

PS: 对于一些 Tomcat常见问题,在公众号的【常见问题】菜单中,有需要的朋友欢迎关注查看

                                                                                                                                                                                     感觉有用,就点赞、转发支持一把吧,谢谢????

<think>好的,用户想知道金融机构IT系统存储系统可用性标准,通常用几个9来表示。首先,我需要明确可用性几个9具体对应的时间百分比年度停机时间。比如,99.9%是三个9,对应每年约8.76小时的停机时间。金融机构对可用性要求很高,特别是核心系统,可能需要四个9甚至五个9。 然后,存储系统作为关键基础设施,可用性通常也要求很高。可能需要区分不同类型的金融机构,比如银行、证券、支付系统,他们的标准可能不同。比如支付系统可能要求更高,达到五个9,而一般存储系统可能四个9。 还要考虑行业标准法规要求,比如中国的《金融信息系统安全保障要求》可能规定了相关标准。同时,容灾备份分布式架构如何提升可用性,比如多活数据中心、实时同步等技术手段。 另外,用户提供的引用中提到分布式消息系统的安全性可用性,实时数据同步备份机制,这些可以结合到回答中,说明金融机构如何通过技术手段达到高可用性标准。比如引用3提到的实时同步备份,确保故障时快速恢复,支持高可用性。 可能还需要解释不同9之间的差异,比如四个9五个9对应的停机时间差距,以及实现更高可用性所需的技术复杂性成本。同时,存储系统可用性可能与冗余设计、故障转移能力相关,如RAID、多路径IO等。 最后,生成的相关问题需要覆盖标准定义、实现技术、具体案例、成本效益分析以及容灾要求等方面,帮助用户全面理解。</think>### 金融机构IT系统与存储系统可用性标准解析 金融机构的IT系统存储系统可用性要求极高,通常以“几个9”量化其可靠性。以下是具体标准及技术实现要点: #### 一、可用性标准定义 1. **IT系统可用性** - **核心系统(支付/交易)**:通常要求$99.999\%$(五个9),对应年停机时间≤5.26分钟[^1] - **一般业务系统**:需达到$99.99\%$(四个9),年停机时间≤52.6分钟[^3] $$ \text{可用性} = \left(1 - \frac{\text{停机时间}}{\text{年度总时间}}\right) \times 100\% $$ 2. **存储系统可用性** - **企业级存储阵列**:普遍要求$99.999\%$,依赖多控制器、全冗余架构 - **分布式存储系统**:通过多副本机制实现$99.99\%$~$99.999\%$,如Ceph、HDFS[^3] #### 二、实现高可用的关键技术 1. **容灾架构** - 采用“两地三中心”模式(生产数据中心+同城灾备+异地灾备) - 数据实时同步延迟需控制在毫秒级[^3] 2. **冗余设计** - 存储系统使用RAID 10/RAID 6技术,磁盘冗余度≥50% - 网络链路双活+多路径IO(MPIO) 3. **故障自愈** ```python # 伪代码示例:存储节点健康检测 def storage_node_monitor(): while True: if check_heartbeat() == False: trigger_failover(new_node) rebuild_replicas() time.sleep(0.1) ``` #### 三、行业规范与案例 - 中国银保监会要求**核心业务系统**年故障时间≤10分钟(≈$99.998\%$) - Visa/Mastercard支付网络实际达到$99.9994\%$,2021年全球中断时间为23分钟[^1] - 分布式消息系统通过Kafka集群实现$99.99\%$可用性,支撑每秒百万级交易[^1]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值