システムの信頼性とは?基本情報技術者試験対策の重要ポイントについて

システムは『いつでも利用できる』ところに価値があります。ある日突然システムが利用できなくなると、システムを利用して実施する仕事に影響を与えてしまいます。場合によっては損害賠償の発生や、ユーザからの評価の低下などを引き起こすため、システムの稼働を維持できる設計とすることは、システムの検討にあたって重要なポイントとなります。

記事では、基本情報技術者試験の対策としてシステムの信頼性についての解説を行います。

目次

信頼性とは

信頼性とは、システムが正常に稼働し、サービスを提供し続けられるかを計るための指標のことです。信頼性が高いシステムとは、システムの故障や障害が起きにくいシステムのことをいいます。

当然、信頼性は高ければ高いほど良いものですが、一方で信頼性を向上させるためにはコストがかかります。信頼性を向上させるための手法として、複数のサーバを設置し、たとえサーバが故障したとしても残ったサーバで運用を続ける方法などや、高品質の機器を導入する方法などがありますが、いずれの方法も基本的な構成と比較すると必要な費用は上がります。よって、システムの特性に応じて、停止することが許されないようなシステムはコストをかけて信頼性を向上させ、一方で停止時の影響が少ないようなシステムはコストを優先させるといった手法がとられます。

障害対策手法

以下では、主な障害対策手法について解説します。信頼性を向上させるための障害対策手法は、下表のとおり大きくフォールトアボイダンスとフォールトトレランスという2つの考え方に分かれます。

対策手法 概要
フォールトアボイダンス 個々の部品や機器の性能を向上させ、障害を発生させないようにする手法。
フォールトトレランス 障害が発生した場合でも、システムを継続的に利用できるようにする手法。
例:
  • フェールセーフ
  • フェールソフト
  • フールプルーフ

フォールトアボイダンス

フォールトアボイダンスとは、障害自体が起こらないように事前に対策を行っておくことをいいます。具体的には、壊れにくい部品や製品を利用することや、製品に対してテストや検証を行うことで性能を向上させるような取り組みが、フォールトアボイダンスによる信頼性の向上の例となります。

フォールトアボイダンスを高めた構成の例として、ホストシステムが挙げられます。ホストシステムは単一のシステムではあるものの、高い信頼性を保有するように設計がされています。

フォールトトレランス

フォールトトレランスとは、障害が起きてしまった場合でも継続してシステムを利用できるようにする方法をいいます。単一の部品や製品の性能を高めることには限界があり、性能の上限に近づくにつれて性能は頭打ちになります。よって、信頼性をさらに高めていくためには、フォールトトレランスの取り組みが必要となります。

フォールトトレランスの考え方による信頼性向上手法として、フェールセーフやフェールソフト、フールプルーフなどが知られています。以下ではこれらの違いと特徴について解説します。

フェールセーフ

フェールセーフは、故障が発生したときに被害を最小限にとどめられるようにする設計のことです。機器に故障が発生した際に、それによって大規模な被害が発生することを避けるように、安全側に倒すのがフェールセーフの考え方です。

例えば、交差点の信号が故障したケースを考えます。信号が故障した際に、どちらの道の信号も青になったままになってしまうと、交通事故が発生する危険があります。よって、信号の故障が発生した場合は、最低限赤信号を表示したり、赤の点滅信号を表示したりすることで、交通事故の発生という最悪のケースを防ぐことができます。

フェールソフト

フェールソフトは、故障が発生したときにその部分を切り離して正常な部分だけで稼働を続ける設計のことです。機器が故障した際に、その影響がシステム全体に広がることを避け、部分的な影響にとどめるような取り組みがフェールソフトとなります。

例えば、飛行機のジェットエンジンの一部が故障した場合を考えます。そのままだと左右のエンジンのバランスが崩れ、飛行機が墜落してしまうかもしれません。このような場合に、左右のバランスを保つためにジェットエンジンの一部をあえて停止さえ、速度は低速とはなるものの継続して飛行できるように制御するような取り組みがフェールソフトの例となります。

フールプルーフ

フールプルーフとは、ユーザが誤った操作をしたとしてもシステム側で誤作動を避けるようにする設計のことです。システムの故障の多くはユーザの誤操作により起こるため、あらかじめ誤作動が発生することを前提として製品を設計することが、フールプルーフの取り組みとなります。

例えば、洗濯機はフタを閉めない限り動作しないようになっています。これは、万が一フタを閉めないで洗濯を開始し、水があふれたり怪我をしてしまったりすることを防ぐための仕組みです。ユーザがフタを閉め忘れる可能性があるという前提に立ったうえで製品設計を行うのが、フールプルーフの考え方です。

信頼性の基準

それでは、システムの信頼性を評価するためにはどうしたらいいのでしょうか。信頼性の評価のために、様々な評価基準が存在します。以下では、主要な信頼性の基準について紹介します。

RASIS

RASISは、信頼性:Reliability、可用性:Availability、保守性:Serviceability、完全性:Integrity、機密性:Securityの5つの要素でシステムの性能を計る概念のことです。各要素は下表のような意味合いを持ちます。

項目 概要
信頼性:Reliability 障害や不具合による停止や性能低下の発生しにくさを示す。
可用性:Availability 稼働率の高さや作業による停止時間の短さを示す。
保守性:Serviceability 障害からの復旧時間の短さやメンテナンスのしやすさを示す。
完全性:Integrity データの消失や不整合などの発生のしにくさを示す。
機密性:Security 外部からの攻撃や改ざんなどのセキュリティへの強さを示す。

MTBFとMTTR

MTBF(Mean Time Between Failures:平均故障間隔)はシステムが正常に稼働している時間の平均を計算したものです。MTBFは上述したRASISのうち、信頼性の指標に対応するものです。また、MTTR(Mean Time To Repair:平均復旧時間)はシステムが故障している時間の平均を計算したものです。こちらは、上述したRASISのうち、保守性の指標に対応するものです。

MTBFとMTTRによりシステムの稼働率を計算することができます。なお、稼働率は上述したRASISのうち、可能性に相当する指標となります。稼働率の計算は、以下の式により行うことができます。

稼働率 = MTBF / (MTBF + MTTR)

例えば、1年365日の間に、合計で3日故障するシステムがあったとします。そのようなシステムは、MTBF = 362日、MTTR = 3日となります。この際の稼働率は、以下の通りとなります。

稼働率 = MTBF / (MTBF + MTTR) = 362 / ( 362 + 3 ) ≒ 99.17%

複数システムの稼働率

複数システムを合せた稼働率を計算する場合、直列システムと並列システムのそれぞれで計算方法が異なることに注意が必要です。直列システムとは、ある作業をする上で、どちらも利用する必要があるものであり、並列システムとは、ある作業をする上でどちらかのみ利用できればよいというものです。

システムA、システムBが直列システムとなっている場合の稼働率は、以下の式で求められます。

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

一方で、システムA、システムBが並列システムとなっている場合の稼働率は、以下の式で求められます。

並列システムの稼働率 = 1 - (1 - システムAの稼働率) × (1 - システムBの稼働率)

例えば、システムAの稼働率が95%、システムBの稼働率が99%である場合は、それぞれ以下のような稼働率となります。

直列システムの稼働率 = システムAの稼働率 × システムBの稼働率 = 0.95 × 0.99 ≒ 94%

並列システムの稼働率 = 1 - (1 - システムAの稼働率) × (1 - システムBの稼働率) = 1 - (1 - 0.95 ) × ( 1 - 0.99 ) = 99.95%

この例からも明らかなように、並列でシステムを設置することで稼働率を向上させることができます。並列システムとは要するに複数のシステムが同時に故障しない限り業務を続けることができる状況であり、上述したフォールトトレランスの考え方に基づく信頼性の向上のための有効な手法であることが分かると思います。

まとめ

この記事では、基本情報技術者試験を受けようとされている方に向けて、信頼性に関する内容の解説を行いました。信頼性はシステムの基盤設計において特に重要な考え方となります。優れたシステムであっても、すぐに故障してしまうのでは使い物になりません。信頼性向上の考え方は、基本情報技術者試験でもよく問われる内容ですので、押さえておくとよいでしょう。