本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証)です。
IPA午前Ⅱ:デュアル冗長システムの可用性・MTBF計算
デュアル冗長システムにおいて、個々のコンポーネントのMTBFとMTTRからシステム全体の可用性とMTBFを算出する手順を解説する。
背景
システム信頼性を評価する上で、稼働率(可用性)と平均故障間隔(MTBF)は重要な指標である。特に、フォールトトレラントなシステム設計では、冗長構成が採用され、その全体の信頼性を正しく評価する必要がある。
可用性 (Availability, A)
システムが稼働可能である時間の割合を示す指標。
計算式: A = MTBF / (MTBF + MTTR)
[信頼性工学の基礎, 2023-11-15 JST, IPA情報処理推進機構]
平均故障間隔 (Mean Time Between Failures, MTBF)
システムまたはコンポーネントが故障してから、次に故障するまでの平均時間。この値が大きいほど、システムは信頼性が高い。
[システム信頼性の定義, 2024-03-01 JST, 情報処理学会]
平均修復時間 (Mean Time To Repair, MTTR)
システムまたはコンポーネントが故障してから、修復が完了して再び稼働可能になるまでの平均時間。この値が小さいほど、修復性が高い。
[システム信頼性の定義, 2024-03-01 JST, 情報処理学会]
デュアル冗長システム(1 out of 2)
- 2つのコンポーネントがあり、そのどちらか一方が正常に稼働していれば、システム全体が稼働し続けることができる構成。高い可用性を実現するために用いられる。
問題点
個々のコンポーネントの信頼性指標(MTBF, MTTR)が与えられた場合、それを基にデュアル冗長システム全体の可用性やMTBFをどのように計算するかが問題となる。特に、単純なMTBFの合計や平均では正確な評価ができない。
計算手順
デュアル冗長システム(1 out of 2)の可用性およびMTBFは、以下の手順で計算する。ここでは、各コンポーネントが独立して故障し、独立して修復されると仮定する。
例題設定
各コンポーネントのMTBF (MTBF_comp): 990時間
各コンポーネントのMTTR (MTTR_comp): 10時間
計算の流れ
graph TD
A["開始"] --> B{"個々のコンポーネントの可用性A_comp = MTBF_comp / (MTBF_comp + MTTR_comp)"};
B --> C{"デュアル冗長システムの可用性A_sys = 1 -(#quot;1 - A_comp#quot;)^2"};
C --> D{"システムの平均修復時間 (MTTR_sys)通常はMTTR_compと仮定"};
D --> E{"システムの平均故障間隔MTBF_sys = A_sys * MTTR_sys / (1 - A_sys)"};
E --> F["結果: A_sys, MTBF_sys"];
F --> G["終了"];ステップバイステップ計算
個々のコンポーネントの可用性 (A_comp) を計算する。 各コンポーネントのMTBFとMTTRを用いて、個々の可用性を算出する。 $$A_{comp} = \frac{MTBF_{comp}}{MTBF_{comp} + MTTR_{comp}}$$ $$A_{comp} = \frac{990 \text{ 時間}}{990 \text{ 時間} + 10 \text{ 時間}} = \frac{990}{1000} = 0.99$$
デュアル冗長システム全体の可用性 (A_sys) を計算する。 デュアル冗長システムでは、どちらか一方でも稼働していればシステムは正常と見なされる。これは、両方のコンポーネントが同時に故障している確率を全体から引くことで求められる。 各コンポーネントが故障している確率 (P_fail_comp) は 1 – A_comp である。 両方が故障している確率 (P_fail_sys) は (1 – A_comp) * (1 – A_comp) = (1 – A_comp)^2。 システム全体の可用性 (A_sys) は 1 – P_fail_sys となる。 $$A_{sys} = 1 – (1 – A_{comp})^2$$ $$A_{sys} = 1 – (1 – 0.99)^2 = 1 – (0.01)^2 = 1 – 0.0001 = 0.9999$$
システム全体の平均修復時間 (MTTR_sys) を決定する。 デュアル冗長システムの場合、システムが故障から復旧するまでの平均時間は、一般的に個々のコンポーネントのMTTRと同じと仮定されることが多い。これは、システムがダウンするのは両方のコンポーネントが故障した時であり、そのうちの1つが修復されればシステムが復旧するためである。 $$MTTR_{sys} = MTTR_{comp} = 10 \text{ 時間}$$
システム全体の平均故障間隔 (MTBF_sys) を計算する。 システム全体の可用性 (A_sys) とシステム全体の平均修復時間 (MTTR_sys) を用いて、システム全体のMTBFを逆算する。 $$A_{sys} = \frac{MTBF_{sys}}{MTBF_{sys} + MTTR_{sys}}$$ この式を変形すると以下のようになる。 $$MTBF_{sys} = \frac{A_{sys} \times MTTR_{sys}}{1 – A_{sys}}$$ $$MTBF_{sys} = \frac{0.9999 \times 10 \text{ 時間}}{1 – 0.9999} = \frac{9.999}{0.0001} = 99990 \text{ 時間}$$
結果
例題のデュアル冗長システムにおいて、システム全体の可用性は 0.9999、平均故障間隔は 99990時間 となる。
要点
個々のコンポーネントのMTBFとMTTRから可用性を算出する。
デュアル冗長システムの可用性は、両方のコンポーネントが同時に故障する確率を考慮して計算する。
システム全体のMTBFは、算出した可用性とシステム全体のMTTRから逆算して求める。
冗長化により、個々のコンポーネントよりも大幅に高い可用性とMTBFを実現できる。

