3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

3重化システムは2重化冗長より稼働率が低くなることがある

Posted at

概要

zookeeperなどの3重化システムの稼働率を計算すると、2重化冗長より悪くなることがあります。
その理由を解説いたします。

前置き

Kafka(Confluent)を取り扱うようになりました。
KafkaやHadoopで利用されているzookeeperの冗長は3重化ですよって言うと、最近は2重化ではシステム停止になることがから3重化でより稼働率を上げるのが普通なのですねって言われました。でも、実はzookeeperなどえ利用されている3重化システムの稼働率は、2重化より悪くなるんです。そして、その理由などを納得していただくことは非常に難しかったので、3重化について詳しく解説したいと思います。

3重化の考え方

3重化されたzookeeperの障害時の動作について

3重化されたzookeeperは、障害時に以下のような動作をします。

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

注意すべきは、2台故障時に運用が止まることです。

稼働率の計算

分かりやすく比べるために、稼働率0.9のサーバで2重化と3重化の状態を以下の通り記しました。

  • 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$

zookeeperの場合、2台正常でなければならないので、①~④が稼働中のため
稼働率は ①+②+③+④ = 0.972
計算式: $ x^3 + 3(1-x)x^2 = (3-2x)x^2 $

稼働率の比較

上記の通り2重化では99%の稼働率があるのに3重化すると97.2%に下がることが分かります。
この通り、必ずしも3重化システムが稼働率が高くならないこなります。
(注意)
3重化システムでも、全てが1台でも正常であれば稼働中となれば、稼働率は99.9%となり2重化より高いくなります。

3重化システムの目的

zookeeperの場合、HadoopやKafkaなどから現状を常に更新しており常に正しいデータを保持しており
正しいデータがあれば、それほど苦にならず復旧を行うことができますが、データ破損するとシステム復旧が困難になるだけではなく
大事な顧客のデータなどが消失してしまいます。
困難な復旧作業になるぐらいなら、1時的にシステムを止めて復旧を楽にする考えがあるので、2台故障時はデータ保護(動作を止めてデータの更新をさせなくする)ことでより大きな障害になることを防いでいるのです。
これは、万が一の障害時が起きても2次被害3次被害を出さないため最善の策です。

まとめ

3重化システムの場合の2台故障を稼働中とすると2重化冗長より稼働率が悪くなります。
ただし、3重化は2次被害、3次被害を起こさせず正常リカバリ化するための必要な方法です。

(補足)
全ての3重化システムがこの稼働率計算に当てはまるわけではありません。必ず、2台故障時の動作を確認するようにお願いします。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?