資格道場 › レッスン一覧 › システム構成要素
システム構成要素・3/8・11分

信頼性の考え方(RASIS とフェール系の用語)

ゴール

RASIS のうち「可用性」と「信頼性」の意味と指標(MTBF・稼働率)を答えられるようになる。さらに、フォールトトレラント・フェールセーフ・フェールソフト・フールプルーフを選択肢のキーワードで見分け、過去問を自力で解けるようになる。

「壊れたときにシステムがどう振る舞うか」を表す用語は4〜5個あります。どれも名前が似ているので、選択肢で入れ替えて出題されます。要件定義でいう非機能要件(止まらなさ・壊れたときの動き)を決めるときの共通語でもあります。

このレッスンで稽古する(用語チェック・過去問)

結論:用語は「何が起きたとき、どう振る舞うか」で分ける

このレッスンで覚えることは2つです。1つ目は、システムの良さを測る5つの観点 RASIS(ラシス)と、その指標です。2つ目は、壊れたときや人が間違えたときの設計の考え方(フェール系の用語)です。

フェール系の用語は、定義を丸暗記するより選択肢に出てくるキーワードで見分けるほうが確実です。「安全側」「縮退」「冗長化」「誤操作」の4語を拾えれば、ほとんどの問題が解けます。

RASIS:システムの良さを測る5つの観点

RASIS は、システムの信頼性を評価する5つの観点の頭文字です。試験で問われるのは、ほぼ 可用性(いつでも使えること) と 信頼性(故障しにくいこと) の区別です。

頭文字 日本語 意味 代表的な指標
R Reliability 信頼性 故障しにくい MTBF(故障と故障の間の平均稼働時間)
A Availability 可用性 使いたいときにいつでも使える 稼働率 = MTBF ÷(MTBF+MTTR)
S Serviceability 保守性 故障の発見・診断・修理がしやすい MTTR(修理にかかる平均時間)
I Integrity 完全性(保全性) データが壊れたり矛盾したりしない -
S Security 安全性(機密性) 不正アクセスや情報漏えいを防ぐ -

たとえ: 社用車で考えます。めったにパンクしないのが信頼性、パンクしてもすぐ直るのが保守性です。その結果、乗りたい日に乗れる割合が高いことが可用性です。可用性は信頼性と保守性の両方で決まるので、式に MTBF と MTTR の両方が入ります。

故障と修理をくり返す時間の流れ稼働修理稼働修理時間MTBFMTTRMTBFMTTRMTBF:故障と故障の間の稼働時間(信頼性)MTTR:修理にかかる時間(保守性)稼働率 = MTBF ÷(MTBF+MTTR)全体の時間のうち使えた割合(可用性)
動いている時間(MTBF)と修理の時間(MTTR)が交互に来る。全体のうち動いていた割合が稼働率(可用性)になる。

フォールトトレラント:冗長化で、壊れても処理を続ける(最頻出)

フォールトトレラント(故障に耐える、という意味)は、構成を冗長化(予備を持たせて同じものを複数用意すること)しておく考え方です。部品やコンピュータが1台壊れても、残りで処理を続けられます。このグループでいちばんよく出題されます(本試験 5 回・免除 12 回)。

正解になりやすい言い回し

  • 「システム構成に冗長性をもたせ、部品が故障しても処理を続ける」
  • 「1台ではなく、複数台のコンピュータで多重化する」
  • 「UPS(無停電電源装置)などで、故障しても全体の機能を正しく維持する」

注意:「部分的に故障しても、全体としては必要な機能を維持する」だけでは決められません。 この文は、ある回ではフォールトトレラントの説明として正解でした(2013h25h_am#14)。別の回では、フェールソフトの説明として扱われています(2015h27a_am#56)。

そこで、文の中に次のキーワードがあるかどうかで判断します。

  • 冗長化・多重化・二重化・予備 がある → フォールトトレラント
  • 縮退・性能低下・機能制限 がある → フェールソフト
  • どちらも無い → ほかの選択肢と比べて消去法で決める

混同させる選択肢: ログの記録、定期的なバックアップ、遠隔地に予備を置く災害対策(ディザスタリカバリ)、複数のプロセッサで同じ処理をして結果を照合する方式(デュアルシステム)。どれも「冗長化して処理を続ける」設計思想そのものではないので、不正解です。

冗長化:1台壊れても残りで続ける処理の依頼コンピュータA ×故障コンピュータB残りで処理処理は継続同じものを複数用意(冗長化・多重化)
同じコンピュータを2台用意(冗長化)しておけば、Aが壊れてもBが処理を続ける。

フェールセーフとフェールソフト:止めて守るか、落として続けるか

どちらも「壊れたあと」の振る舞いを決める考え方ですが、向きが逆です。フェールセーフは安全を優先して止めます(または安全側に動かします)。フェールソフトは、性能や機能を落としてでも動かし続けます。

用語 壊れたときの動き キーワード 例
フェールセーフ 安全側に倒す(止める) 安全側・安全に停止・被害を最小限 センサが壊れたらロボットアームを止める/アクセルとブレーキを同時に踏んだらブレーキを優先する
フェールソフト 機能を落として動かし続ける 縮退・性能低下・機能制限・構成を縮小して運転継続 障害が起きたら構成を縮小し、遅くなっても運転を続ける/専用回線が落ちたら公衆回線に切り替え、処理能力が下がっても続ける

たとえ: 信号機が壊れたら全部赤の点滅にして交通を止めるのがフェールセーフです。エンジンが1つ止まっても残りのエンジンで飛び続ける飛行機がフェールソフトです。

分類が揺れる例:「別のサーバに引き継いで処理を続ける」

  • 2011h23a_am#17 では、「クラスタ構成で1台が止まっても、他のサーバでアプリケーションを引き継ぐ」がフェールソフトの例として正解でした。
  • 2015h27a_am#56 では、よく似た「待機しているシステムに切り替えて処理を続行する」が**フォールトトレラント(待機系への切替え)**として扱われています。
  • つまり、引き継ぎの話だけではどちらとも言えません。問題文に「縮退・性能低下」があればフェールソフト、冗長構成への切替えで機能をそのまま保つならフォールトトレラントです。どちらの語も無いときは、ほかの選択肢を消していって、残った「動かし続ける」系の選択肢を選びます。
故障のあと、処理能力はどう変わるか処理能力時間故障フォールトトレラント:機能を保つフェールソフト:落として続けるフェールセーフ:安全に停止
故障した瞬間のあと、フォールトトレラントは機能を保ち、フェールソフトは落として続け、フェールセーフは安全に止まる。

フールプルーフ:人が間違えても大丈夫にする

フールプルーフ(不慣れな人でも間違えない、という意味)は、機械の故障ではなく人の誤操作を前提にした設計です。間違えにくい操作にするか、間違えても異常が起きないようにします。

例:入力欄に数字以外を入れると警告を出す/メールアドレスを2回入力させて一致するか確かめる/確認ダイアログを出す。

ひっかけ: 「誤操作」という語があっても、「確実に安全側の動作になる」と書かれていればフェールセーフです(アクセルとブレーキの例)。「安全側」があるかどうかを先に確認します。

5つの用語の見分け方(この順に確認する)

選択肢を1つずつ読み、上から順にキーワードを探します。最初に当てはまったものが答えです。

確認する順 選択肢にある語 用語
1 安全側・安全に停止 フェールセーフ
2 利用者の誤操作・誤入力(「安全側」は無い) フールプルーフ
3 縮退・性能低下・機能制限 フェールソフト
4 冗長化・多重化・二重化 フォールトトレラント
5 高信頼性の部品・十分な検証で故障そのものを減らす フォールトアボイダンス

「部分的に故障しても全体の機能を維持」「別のサーバが引き継ぐ」のようにキーワードが無い文は、この表では決まりません。ほかの選択肢を先に分類し、残ったもので判断します。

flowchart TD
  A["選択肢の文を読む"] --> B{"安全側・安全に停止とある?"}
  B -->|"はい"| C["フェールセーフ"]
  B -->|"いいえ"| D{"人の誤操作・誤入力の話?"}
  D -->|"はい"| E["フールプルーフ"]
  D -->|"いいえ"| F{"縮退・性能低下・機能制限とある?"}
  F -->|"はい"| G["フェールソフト"]
  F -->|"いいえ"| H{"冗長化・多重化・二重化とある?"}
  H -->|"はい"| I["フォールトトレラント"]
  H -->|"いいえ"| J{"高信頼部品で故障を起こさない?"}
  J -->|"はい"| K["フォールトアボイダンス"]
  J -->|"いいえ"| L["消去法で残りから選ぶ"]

試験での問われ方

  • 「〇〇はどれか」型: 4つの選択肢に、フェールセーフ・フェールソフト・フォールトトレラント・フールプルーフの説明が1つずつ並ぶ形が定番です。4つすべてを分類できれば確実に解けます。
  • 「〇〇の例はどれか」型: ロボットアーム、回線の切替え、入力チェックなど具体的な場面が出ます。用語の名前ではなく、場面の中にあるキーワードで判断します。
  • RASIS 型: 可用性の説明を選ばせる問題で、保守性(修理のしやすさ)や安全性(不正アクセス対策)の説明が混ざります。指標の組合せ(信頼性=MTBF、可用性=稼働率)を問う問題も出ます。
例題 1

信頼性と可用性を表す指標を図から選ぶ

システムが時間とともに図のように故障と回復を繰り返した。このとき,RASIS の信頼性(Reliability)と可用性(Availability)を表す指標の組合せとして,適切なものはどれか。ここで,T=(1/n)Σ_{i=1}^{n} t_i,S=(1/n)Σ_{i=1}^{n} s_i とする。
時間軸の帯: 左から t1,s1,t2,(区間)…,tn,sn の順に並ぶ。 故障の矢印(下向き): 1回目の故障=t1とs1の境界,2回目の故障=t2の終わり(t2とその次の区間の境界),n回目の故障=tnとsnの境界。 回復の矢印(上向き): 1回目の回復=s1の終わり(t2の始まり),n回目の故障に対応する回復=…の後の区間の終わり,最後の回復=snの終わり。 つまり t_i は回復から次の故障までの稼働時間,s_i は故障から回復までの時間。 選択肢の表: 列=信頼性/可用性(ア〜エ各行は上記の組合せ)

ア 信頼性:T,可用性:S
イ 信頼性:T,可用性:T/(T+S)
ウ 信頼性:T+S,可用性:S
エ 信頼性:T+S,可用性:T/(T+S)

出典:基本情報技術者試験 科目A免除 修了試験 20110626 実施分 問16

解き方と答えを見る
  1. 図の記号の意味を確認する。t_i は回復してから次に故障するまでの稼働時間、s_i は故障してから回復するまでの修理時間。
  2. T =(t_1+…+t_n)÷ n は稼働時間の平均なので、MTBF(平均故障間隔)にあたる。
  3. S =(s_1+…+s_n)÷ n は修理時間の平均なので、MTTR(平均修理時間)にあたる。
  4. 信頼性(故障しにくさ)の指標は MTBF なので、信頼性 = T。
  5. 可用性(使える時間の割合)の指標は稼働率なので、MTBF ÷(MTBF+MTTR)= T ÷(T+S)。
  6. 数字で確かめる。T = 90 時間、S = 10 時間とすると、可用性 = 90 ÷(90+10)= 90 ÷ 100 = 0.9 で、時間の 90% は使えることになる。
  7. 選択肢から「信頼性:T、可用性:T/(T+S)」の組合せを探すとイ。T+S(1周期の長さ)や S(修理時間)だけの選択肢は、指標の取り違えを狙ったひっかけ。

答え:イ(信頼性 = T〔MTBF〕、可用性 = T/(T+S)〔稼働率〕)

要点(試験直前に読む)

  • 可用性=いつでも使える(指標は稼働率 = MTBF ÷(MTBF+MTTR))。信頼性=壊れにくい(指標は MTBF)。保守性=直しやすい(指標は MTTR)。
  • フォールトトレラント=冗長化・多重化で、壊れても処理を続ける。
  • フェールセーフ=安全側に止める。フェールソフト=縮退(性能や機能を落として)運転を続ける。
  • フールプルーフ=人が誤操作しても大丈夫にする。
  • 「全体の機能を維持」「他のサーバが引き継ぐ」はキーワードが無く、どちらとも取れる。冗長化か縮退かの語で決め、無ければ消去法で選ぶ。

ひっかけ

  • 「部分的に故障しても全体として必要な機能を維持」はフォールトトレラントの正解にも、フェールソフトの説明にも使われる。この文だけで飛びつかず、「冗長化」か「縮退・性能低下」の語を探す。
  • 「待機系に切り替える」「他のサーバで引き継ぐ」は出題によって分類が揺れる(フォールトトレラントの場合も、フェールソフトの場合もある)。ほかの3つの選択肢を先に分類し、消去法で決める。
  • 「誤操作」があってもフールプルーフとは限らない。「確実に安全側の動作」とあればフェールセーフ(アクセルとブレーキの例)。
  • バックアップ、ログ記録、遠隔地の予備(ディザスタリカバリ)、結果を照合するデュアルシステムは、フォールトトレラントの説明ではない。
  • RASIS の安全性(Security)は不正アクセス対策のこと。可用性を問う問題で、選択肢に混ぜてくる。

用語(15)

RASIS Reliability, Availability, Serviceability, Integrity, Security
システムの良さを、信頼性・可用性・保守性・完全性・安全性の5つの観点で評価する考え方。
信頼性 しんらいせい(Reliability)
故障しにくいこと。MTBF が長いほど高い。
⚠ 可用性と混同しやすい。信頼性は「壊れにくさ」、可用性は「使える時間の割合」。
可用性 かようせい(Availability)
必要なときにいつでもシステムを使える状態であること。稼働率で表す。
⚠ 保守性(修理のしやすさ)や安全性(不正対策)の説明が選択肢に混ざる。「いつでも使える」とあれば可用性。
保守性 ほしゅせい(Serviceability)
故障の発見・診断・修理がしやすいこと。MTTR が短いほど高い。
⚠ 可用性と混同しやすい。「問題の判別・診断・修理」とあれば保守性。
完全性 かんぜんせい(Integrity)
データが壊れたり矛盾したりせず、正しい状態を保てること。保全性ともいう。
安全性 あんぜんせい(Security)
不正アクセスによる破壊や情報の盗難を防げること。機密性ともいう。
⚠ フェールセーフの「安全側」とは別の話。RASIS の安全性は不正アクセス対策のこと。
MTBF Mean Time Between Failures(平均故障間隔)
回復してから次に故障するまでの稼働時間の平均。信頼性の指標。
⚠ MTTR と逆にしやすい。B は Between(故障と故障の間)なので、動いている時間。
MTTR Mean Time To Repair(平均修理時間)
故障してから回復するまでの時間の平均。保守性の指標。
⚠ MTBF と逆にしやすい。R は Repair(修理)なので、止まっている時間。
稼働率 かどうりつ
全体の時間のうち、システムが使えた時間の割合で、MTBF ÷(MTBF+MTTR)で求める。可用性の指標。
⚠ 分母は MTBF+MTTR。分母を MTTR だけにしたり、分子を MTTR にしたりする誤りに注意。
冗長化 じょうちょうか
同じ機器や機能を複数用意し、1つが壊れても残りで処理を続けられるようにすること。多重化・二重化ともいう。
フォールトトレラント Fault Tolerant
構成を冗長化し、部品が故障してもシステム全体としては処理を続けられるようにする設計の考え方。
⚠ フェールソフトとの区別が難しい。「冗長化・多重化」とあればこちら、「縮退・性能低下」とあればフェールソフト。「全体の機能を維持」だけではどちらとも言えない。
フェールセーフ Fail Safe
故障や誤動作・誤操作が起きたときに、必ず安全側へ動作させる(止める)設計の考え方。
⚠ フェールソフトは動かし続ける側。「安全側・安全に停止」とあればフェールセーフ。
フェールソフト Fail Soft
障害が起きたとき、機能や性能を落としながら(縮退運転)システムを動かし続ける設計の考え方。
⚠ フェールセーフは止める側、フォールトトレラントは冗長化で機能を保つ側。「縮退・性能低下・機能制限」が目印。
フールプルーフ Fool Proof
利用者が誤操作しても異常が起きないように、または誤操作しにくいように設計する考え方。
⚠ 誤操作が話題でも「確実に安全側の動作になる」とあればフェールセーフ。
フォールトアボイダンス Fault Avoidance
信頼性の高い部品を使ったり十分に検証したりして、故障そのものが起きにくいようにする考え方。
⚠ フォールトトレラントは「壊れても続ける」、こちらは「そもそも壊れないようにする」。

このレッスンの過去問

このレッスンで稽古する