3重化系统可能比2重化冗余系统的可靠性低

简而言之

当计算三重化系统(例如动物园管理员等)的运行率时,可能会比双重冗余系统更糟糕。以下是解释原因。

引子

我们开始处理Kafka(Confluent)了。
当我说Kafka和Hadoop使用的Zookeeper是通过三重冗余来实现高可用性时,有人告诉我最近通常都采用三重冗余来提高系统运行率,因为二重冗余可能导致系统停止。但实际上,使用三重冗余系统的可用性比二重冗余更差。因此,我觉得很难让人们明白这个原因,所以我想详细解释一下三重冗余系统。

三重化的概念

针对3层化的动物管理员在发生故障时的操作

当Zookeeper被配置为三重化时,在发生故障时会执行以下操作。

稼働中サーバ故障中サーバサービス影響3台0台正常運用2台1台運用継続(縮退運用)1台2台運用停止(復旧停止)0台3台全停止

需要注意的是,当有两台设备发生故障时,运营将会停止。

计算稼动率

为了更加清晰地进行比较,我使用了稼动率为0.9的服务器,记录了双重和三重状态如下所示。

    2重化の場合
サーバAサーバBこの状態になる確率①正常正常$0.9\times 0.9=0.81$②正常故障$0.9\times (1-0.9)=0.9$③故障正常$(1-0.9)\times 0.9=0.9$④故障故障$(1-0.9)\times (1-0.9)=0.01$

系统的运行率是,①+②+③=0.99
计算式:$ (1-x)^2 $

    3重化の場合
サーバAサーバBサーバCこの状態になる確率①正常正常正常$0.9\times 0.9\times 0.9=0.729$②正常正常故障$0.9\times 0.9\times (1-0.9)=0.081$③正常故障正常$0.9\times (1-0.9)\times 0.9=0.081$④故障正常正常$(1-0.9)\times 0.9\times 0.9=0.081$⑤正常故障故障$0.9\times (1-0.9)\times (1-0.9)=0.009$⑥故障正常故障$(1-0.9) \times 0.9 \times (1-0.9)=0.009$⑦故障故障正常$(1-0.9)\times (1-0.9)\times 0.9=0.009$⑧故障故障故障$(1-0.9) \times (1-0.9) \times (1-0.9)=0.001$

飼养员的情况下,必须有两台设备正常运行,所以由①~④运行中
运行率为 ①+②+③+④ = 0.972
计算公式: $ x^3 + 3(1-x)x^2 = (3-2x)x^2 $

比较稼动率。

根据上面的情况,我们可以看出,尽管双重备份系统的运行率为99%,但如果采用三重备份系统,运行率将降至97.2%。
这表明,并不一定三重备份系统的运行率就会更高。
(请注意)
即使是三重备份系统,只要所有设备中有一台正常运行,那么运行率将达到99.9%,比双重备份更高。

三重化系统的目标 huà de

在动物园管理员的情况下,他们通过更新Hadoop和Kafka等信息来保持实时更新并持有正确的数据。如果存在正确的数据,那么他们可以轻松进行恢复,但是如果数据损坏,系统恢复将变得困难,甚至可能导致重要客户数据的丢失。为了避免成为更大的故障,他们有一种考虑,在恢复工作变得困难的情况下,暂时停止系统以便轻松恢复,这样可以通过保护数据(停止操作并禁止数据更新)来防止出现更严重的故障。这是最好的方案,即使发生意外故障,也能避免第二次和第三次的损害。

总结

如果假设在3重化系统中有2台故障正处于运行状态,那么相较于2重化冗余,可运行率会变差。
然而,3重化是为了避免第二次和第三次损害并实现正常恢复所必需的方法。

请确保检查并确认在两台设备发生故障时系统的运作情况,因为并非所有的三重化系统都适用于此稼动率计算。

广告
将在 10 秒后关闭
bannerAds