コンテンツにスキップ

システムの信頼性

どんなに高性能なシステムでも、故障して使えなくなっては意味がありません。企業の業務システムやオンラインサービスでは、「壊れにくいこと」「壊れてもすぐ復旧できること」が極めて重要です。ここでは、システムの信頼性を測る指標、稼働率の計算方法、そして信頼性を高めるための設計手法について学びます。

RASIS ── 信頼性を評価する5つの視点

Section titled “RASIS ── 信頼性を評価する5つの視点”

システムの信頼性を多角的に評価するための指標として、RASIS(レイシス)という考え方があります。RASISは以下の5つの要素の頭文字を取ったものです。

要素英語意味
Reliability(信頼性)Reliability故障しにくさ
Availability(可用性)Availability使いたいときに使える度合い
Serviceability(保守性)Serviceability故障時に修復しやすい度合い
Integrity(完全性)Integrityデータが矛盾なく正確に保たれる度合い
Security(安全性)Security不正アクセスや情報漏えいへの耐性

この中でも、ITパスポート試験で特に重要なのは信頼性(R)と可用性(A)です。これらを数値で表すための指標が、次に紹介するMTBF・MTTR・稼働率です。

システムの信頼性と保守性を数値化するために、2つの指標が使われます。

MTBF(Mean Time Between Failures:平均故障間隔)とは、システムが正常に稼働し続ける時間の平均値です。MTBFが長いほど、故障しにくい(信頼性が高い)ことを意味します。

MTTR(Mean Time To Repair:平均修復時間)とは、故障が発生してから復旧するまでにかかる時間の平均値です。MTTRが短いほど、故障からの回復が速い(保守性が高い)ことを意味します。

稼働率とは、システムが正常に使える時間の割合を示す指標です。値は0から1の間で表され、1に近いほど「いつでも使える」ことを意味します。

稼働率は次の計算式で求められます。

稼働率 = MTBF ÷(MTBF + MTTR)

たとえば、MTBFが900時間、MTTRが100時間のシステムの場合、稼働率は次のようになります。

稼働率 = 900 ÷(900 + 100)= 900 ÷ 1,000 = 0.9(90%)

また、稼働率から故障率を求めることもできます。故障率は「システムが使えない時間の割合」であり、次の関係が成り立ちます。

故障率 = 1 − 稼働率

上の例では、故障率 = 1 − 0.9 = 0.1(10%)です。

試験で出るポイント

稼働率の計算は毎年のように出題されます。「MTBF ÷(MTBF + MTTR)」の公式は確実に覚えましょう。

実際のシステムは、複数の装置を組み合わせて構成されることがほとんどです。装置の接続方法によって、システム全体の稼働率は変わります。

直列システムとは、すべての装置が正常に動いていなければシステム全体が停止する構成です。どれか1台でも故障すると、システム全体が使えなくなります。

直列システムの稼働率は、各装置の稼働率を掛け合わせて求めます。

直列システムの稼働率 = 装置Aの稼働率 × 装置Bの稼働率 × …

たとえば、稼働率0.9の装置Aと稼働率0.8の装置Bを直列に接続した場合、システム全体の稼働率は次のようになります。

0.9 × 0.8 = 0.72

装置を直列に接続するほど、システム全体の稼働率は低くなります。

並列システムとは、同じ機能を持つ複数の装置を並べ、どれか1台でも正常であればシステムが動作する構成です。すべての装置が同時に故障しない限り、システムは稼働し続けます。

並列システムの稼働率は、「すべてが故障する確率」を1から引いて求めます。

並列システムの稼働率 = 1 −(装置Aの故障率 × 装置Bの故障率 × …)

たとえば、稼働率0.8の装置を2台並列に接続した場合、各装置の故障率は0.2なので、システム全体の稼働率は次のようになります。

1 −(0.2 × 0.2)= 1 − 0.04 = 0.96

1台の稼働率が0.8でも、2台並列にすることで0.96まで向上します。

試験では、並列部分と直列部分が組み合わさった構成の稼働率を計算する問題がよく出題されます。手順は次のとおりです。

  1. まず並列部分の稼働率を計算する
  2. 次に、その結果を使って直列部分の稼働率を計算する

例題: 稼働率0.8の装置2台を並列に接続したユニットと、稼働率0.9の装置1台を直列に接続した構成の稼働率を求めます。

  • 並列部分の稼働率:1 −(0.2 × 0.2)= 0.96
  • 全体の稼働率(直列):0.96 × 0.9 = 0.864

例題: 稼働率0.9の装置を並列に接続して、全体の稼働率を0.999以上にするには最低何台必要か。

各装置の故障率は0.1なので、n台並列の稼働率は 1 − 0.1^n です。

  • 2台の場合:1 − 0.1² = 1 − 0.01 = 0.99(0.999未満)
  • 3台の場合:1 − 0.1³ = 1 − 0.001 = 0.999(条件を満たす)

したがって、最低3台必要です。

試験で出るポイント

混合構成の稼働率計算はよく出題されます。「並列を先に計算 → 直列で掛ける」の手順を身につけましょう。

システムの信頼性を高めるための代表的な構成方法として、デュアルシステム(2台で同じ処理を同時実行)とデュプレックスシステム(現用系+待機系)があります。それぞれの仕組みや、ホットスタンバイ・コールドスタンバイの違いについては「システム構成」で詳しく解説しています。

システムの故障をゼロにすることは現実的には不可能です。そこで、故障が起きたときの影響を最小限に抑えるための設計手法が考えられています。代表的なものを整理しましょう。

設計手法考え方具体例
フォールトトレラント故障が発生してもシステム全体は停止せず、正常に動作し続ける部品を二重化し、片方が壊れても稼働を継続
フェールセーフ故障時に安全な状態に移行する信号機が故障したら赤信号(停止)になる
フェールソフト(縮退運転)故障時に機能を限定して運転を継続するCPUの一部が故障しても、処理速度を落として稼働し続ける
フールプルーフ人間が誤った操作をしても、危険な状態にならないようにするファイル削除時に「本当に削除しますか?」と確認メッセージを表示

フォールトトレラントは、故障に「耐える」ことを重視した包括的な考え方です。冗長化(予備の装置を用意すること)が代表的な実現手段で、デュアルシステムやデュプレックスシステムもフォールトトレラントを実現するための構成です。

フェールセーフは、故障時に「安全側に倒す」設計です。たとえば、踏切の遮断機は故障すると下がる(閉まる)ように設計されています。危険な方向に動かないことが最優先です。

フェールソフト縮退運転)は、故障した部分を切り離し、残りの部分で処理能力を落としながらも運転を続ける方式です。全面停止を避けることが目的です。

フールプルーフは、「人間はミスをするもの」という前提に立ち、誤操作を防ぐ仕組みを設計に組み込むことです。電子レンジがドアを開けると自動停止する仕組みや、USBコネクタが正しい向きでしか差し込めない構造も、フールプルーフの例です。

試験で出るポイント

フールプルーフの適用例を問う問題が出題されます。「削除確認のメッセージ表示」「誤った向きでは挿入できない設計」など、人間のミスを防ぐ仕組みはすべてフールプルーフです。フェールセーフ(安全側に停止)と混同しないようにしましょう。

アプリで問題を解こう!