📡 第七章 网络硬件设备的选购要点
📄 一句话概括

高可用是一个能算出来的数:可用度 = MTBF ÷(MTBF + MTTR)。 四个九是每年 52.6 分钟,五个九是 5.3 分钟;看着只差一个九,工作量差一个数量级。

📝 本节和前面几节的关系

07.06 讲「设备能不能一起工作」,这一节讲「它们能不能一直工作」。 而「一直」这个词要量化:量化之后就发现,多一个九的钱是翻倍的。

一、几个九分别是多少停机

可用度 每年停机 每月停机


99% 5256 分钟 438 分钟 99.9% 525.6 分钟 43.8 分钟 99.99% 52.6 分钟 4.4 分钟 99.999% 5.3 分钟 26 秒 99.9999% 32 秒 2.6 秒

这张表最有用的是「每月停机」那一列:因为大多数业务是「按次」感受停机的,不是「按年」。 四个九意味着每月还能停四分半,五个九意味着每月只停 26 秒。

所以「我们要五个九」这句话,先要问「每月停 26 秒,业务能不能感知到」。 如果不能,那就还没到需要五个九的地步。

二、两个变量:MTBF 与 MTTR

可用度 = MTBF ÷(MTBF + MTTR),两个变量分别对应两件事:

变量 含义 能不能改


MTBF 多久坏一次 靠器件质量,改不了 MTTR 坏了多久修好 靠备件与流程,能改

所以「提高可用性」的工程手段,八成是「缩短修复时间」: MTBF 十年、MTTR 4 小时,可用度 99.9954%;同样 MTBF,MTTR 压到 1 小时,可用度升到 99.9989%。

而 MTTR 由三件事决定:发现得多快(监控)、备件在哪里(库存)、谁来修(支持合同)。 这三件事都能用钱买,而 MTBF 不能。

三、并联的数字好看得不像真的

两台并联(冗余)的可用度是 1 −(1 − A)的平方。 单台 99.99543%,两台并联是 99.9999998%——年停机从 24 分钟降到 0.07 秒。

这个数字好看得不像真的,因为它确实不是真的: 它假设两台完全独立,而真实的冗余系统有三处共用:

一、共用电源:一路市电跳了,两台一起停。二、共用上行:一台核心挂了切过去,上行还是那一条。 三、共用切换机制:切换本身可能失败,而没演练过的双机不一定切得过去。

所以真实可用性往往远低于计算值,而「找出那几处共用」比「算并联公式」更有价值。

四、动手 Demo:高可用性,九九后面有几个九

这段把几个九换算成每年与每月的停机时间,再算两台并联的可用度,并指出并联公式的三个前提。

av = 1 - 10 ** (-nines)
down_year = (1 - av) * 365 * 24 * 60 * 60
label = u"99." + u"9" * (nines - 2) + u"%"
single = 87600 / (87600.0 + 4)
pair = 1 - (1 - single) ** 2

实跑输出:

--------------------------------------------------------------------
高可用性,九九后面有几个九
--------------------------------------------------------------------
**「高可用」不是形容词,是一个能算出来的数。**
**它等于「不出故障的时间 ÷ 总时间」,写成百分比就是一串九。**

可用度 = MTBF ÷(MTBF + MTTR)。**两个变量:多久坏一次,坏了多久修好。**

  可用度       每年停机        每月停机       通俗说法
  --------------------------------------------------------
  99%          5256.0 分钟     438.0 分钟     2 个九
  99.9%        525.6 分钟      43.8 分钟      3 个九
  99.99%       52.6 分钟       4.4 分钟       4 个九
  99.999%      5.3 分钟        0.4 分钟       5 个九
  99.9999%     32 秒           2.6 秒         6 个九

**四个九是每年 52.6 分钟,五个九是 5.3 分钟。**
**看着只差一个九,工作量差一个数量级。**

**单台设备的可用度由 MTBF 和 MTTR 决定**:

  MTBF 87600 小时(十年)、MTTR 4 小时 → 可用度 99.99543%,年停机 24 分钟。
  MTBF 87600 小时(十年)、MTTR 1 小时 → 可用度 99.99886%,年停机 6 分钟。
  MTBF 262800 小时(三十年)、MTTR 4 小时 → 可用度 99.99848%,年停机 8 分钟。
  **关键在 MTTR**:MTBF 靠器件质量,改不了;MTTR 靠备件和流程,能改。
  所以「提高可用性」的工程手段,八成是「缩短修复时间」,不是「买更贵的设备」。

**两台并联(冗余)就不一样了**:

  单台 99.99543%,年停机 24 分钟。
  两台并联 99.9999998%,年停机 0.0657 秒。
  **数字好看得不像真的——因为它确实不是真的。**
  这是「两台都坏了才停」的理想模型,前提是两台完全独立。
  真实系统里「切换失败」「共用电源」「共用上行」这些单点不并联,**它们照样能把两个九吃掉。**

**所以看高可用方案,先问三件事**:
  切换时间多长?业务能不能忍这几秒?
  有没有共用部件?电源、上行、机柜,任何一处共用都是单点。
  切换演练过没有?没练过的双机,真出事时不一定切得过去。

代码里那一行「1 减 10 的负 n 次方」就是「几个九」的数学定义: n 个九就是「不可用比例等于 10 的负 n 次方」。 记住这个定义,就能自己算任意档位。

并联公式是「1 减去「1 减 A」的平方」,值得多看一眼: 它把「两台都坏」的概率当成「两次独立事件相乘」。 所以只要有一处共用,「独立」就不成立,公式立刻失效。

这也是「双机热备」这一类方案的软肋: 它把设备做到了冗余,但电力、上行、运维流程往往还是单点。 而可用性是由「最差的那个单点」决定的。

30 秒实验

  1. 问一下你单位的核心设备有没有双机。
  2. 查一下两台设备是不是接在同一台 UPS 上。
  3. 算一下你们承诺的可用性是几个九,对应每月多少停机。

常见误区

  1. 把可用度当成形容词。它是能算的数:MTBF ÷(MTBF + MTTR)。
  2. 以为双机就等于五个九。电源、上行、切换机制任何一处共用都会打破假设。
  3. 只想着提高 MTBF。它靠器件质量改不了,能改的是 MTTR。
自测三问(点开对答案) 1. 可用度怎么算?两个变量各是什么? —— MTBF ÷(MTBF + MTTR);MTBF 是多久坏一次,MTTR 是坏了多久修好。 2. 四个九与五个九的每月停机分别是多少? —— 四个九约 4.4 分钟,五个九约 26 秒。 3. 为什么双机并联算出来的可用度往往达不到? —— 因为有共用电源、共用上行、切换失败这些不并联的单点。

下一节:从技术回到钱——端口单价怎么算。

相关笔记