このページをはてなブックマークに追加このページを含むはてなブックマーク このページをlivedoor クリップに追加このページを含むlivedoor クリップ

目次

高動作信頼性システム

 高動作信頼性システムとは、大きな稼働性(アベイラビリティ:availability)を実現しているシステムである。ただし、利用者はシステムを使う時間が限定されるシステムと、連続運転を要求されるシステムとでは、最適となるシステム構成が異なる。

無停止連続運転のシステム

 情報システムの中には、一度システムが稼働した後は、原則としてサービスを停止できないシステムもある。例えば、防災監視システム、電話などの公共サービスを行うシステム、コンビニエンスストアの管理システムなどである。

 これらのシステムでも、ハードウェアの故障やソフトウェアの追加・変更は皆無ではない。このようなシステムの場合でも、システム全体を停止することなく、故障や改造に関係する部分だけをシステムから切り離して処理する必要がある。

 このようなシステムを実現化するためには、水平負荷分散システムが適している。また、部分的にシステムが停止しても、すべての利用者に対して100%の稼働率を提供するのか、特定の利用者だけでよいのかといった選択も、システムの設計上重要である。

限定的に完全動作するシステム

 長期間に渡って100%の稼働率で動作する必要はないが、限られた時間の間だけ完全に動作するシステムが求められる場合もある。例えば、人工衛星の打ち上げ制御システム、修理のできない人工衛星搭載システム、やり直しができない生産工程の管理・制御システムなどである。

 これらのシステムでは、システム全体のコストを考慮した稼働性の向上策を講じる必要がある。

高情報信頼性のシステム

 情報システムが扱う情報の内容が正確で信頼できることは、基本的な条件である。しかし、高情報信頼性を保つためには、それを意識したシステム設計をしなければならない。

データの誤りが大きな社会問題に繋がるシステム

 情報システムでは、意図したデータの改変がなくても、確率的に発生するエラーによってデータが変わってしまうことがある。

 例えば、金融機関の取引データや企業間の取引データを扱うシステムでは、データの誤りに対する厳密な検出、回復の機能を用意する。特に通信回線を用いたデータ伝送や、メモリの読み書きはデータ誤りを発生しやすい。

 また、意図的なデータ改変に対しても、データの暗号化やアクセス記録を取るなどの対策をする必要がある。

共同利用するデータベースシステム

 複数の利用者が内容を更新するシステムは、更新によってデータに矛盾が発生することが多いので、特に注意が必要である。

 デーベース管理システムは、同時アクセス制御やデータの排他制御を行っている。しかし、それ以前にデータの論理的構造を、堅実で信用できる設計にしておくことが重要である。

システムの稼働率と故障率

 高信頼システムを構成するためには、信頼性の尺度となるRAS(Reliability:信頼性、Availability:稼働性、Serviceability:保守性)について理解して、その評価尺度に基づいた信頼性を作り上げることが重要である。

 稼働率は、MTBF(Mean Time Between Failure:平均故障間隔)とMTTR(Mean Time To Repire:平均修理時間)の関係から次の式が求められる。

(稼働率)=MTBF/(MTBF+MTTR)

 稼働率を向上させるには、MTBFを大きくする方法とMTTRを小さくする方法がある。
 MTBFを大きくするということは、故障が起こらないようにすることがあり、ハードウェアについては製品の劣化が起こりにくいような技術を使い、物理的な破損に対する対策を講ずる。ソフトウェアについては、潜在的なバグによって定期的に発生する異常を防ぐため、質のよい設計と徹底したデバッグテストが必要である。
 しかし、非常に信頼性の高いハードウェア・ソフトウェアであっても、障害や誤作動の発生する確率をゼロにすることはできない。

システムの稼働率

 ひとつのコンピュータシステムは、多くの構成要素を組み合わせたものである。システムの構成要素も構成方法により、その信頼性の評価が異なる。

 システムの構成要素も直列に接続したシステムでは、構成要素のどれかひとつでも故障するとシステム全体が稼働しなくなり、稼働率が低くなる。

 一方、システム構成要素を並列にして、それぞれの構成要素が同じ働きをする場合には、稼働率を改善することができる。このように、同じ機能を持った複数のシステム構成要素を並列に配置した構成を冗長構成といい、高信頼システムを実現化できる。

直列接続システム

稼働率=A1×A2×A3

並列接続システム

稼働率=1-(1-A1)×(1-A2)×(1-A3) ←(*)

 並列の稼働率は「和」から重複分を差し引くので、次のようにも表記される。

稼働率=P1+P2+P3-P1×P2×P3 ←(**)

[補講](*)=(**)であることは計算すればわかる。

システムの故障率

直列接続システム

故障率=1-(1-P1)×(1-P2)×(1-P3)=P1+P2+P3-P1×P2×P3

[補講]直列の故障率は「和」から重複分を差し引く。

並列接続システム

故障率=P1×P2×P3

複雑な例

例1:

  • (P1とP2の直列接続の故障率)=1-(1-P1)(1-P2)
  • (P3とP4の直列接続の故障率)=1-(1-P3)(1-P4)
  • (全体の故障率)=(1-(1-P1)(1-P2))(1-(1-P3)(1-P4))

例2:P1=P2=P3=P4=pとする。

  • 4台すべて故障するのは1通りなので、p4
  • 3台故障1台稼働するのは4通りなので、(p3×(1-p))×4
  • 2台故障2台稼働するのは2通りなので、(p2×(1-p)2)×2
  • (全体の故障率)=p4+(p3×(1-p))×4+(p2×(1-p)2)×2=-p4+2p2

冗長構成システムの種類

 冗長システムにはその運用方法により、予備切り換え方式と故障切り離し方式がある。

  • 予備切り換え方式
    • 常用する装置と予備装置を決め、常用装置が故障したときに予備装置に切り換える方式である。
    • この方式のMTBFは、常用する装置と予備装置の両方が故障する平均時間間隔となり、MTTRは常用装置が故障してから予備装置へ切り換える時間の平均値となる。
  • 故障切り離し方式
    • 複数の装置を並列運転して、故障があった場合はその装置をシステム構成から切り離す方式である。
    • この方式では、切り離しを行う間も正常な動作を続けられ、非常に高い稼働性を達成することができる。
    • この切り離しを行った状態でのシステム運転を縮退運転といい、並列して動作する装置が多いほどシステム全体の処理能力に与える影響が小さくなる。

高情報信頼性の実現方法

  • 多数回処理
    • 3台以上のコンピュータで同じ内容の処理をする。あるいは、1台のコンピュータで処理を繰り返して実行し、それぞれの結果を照合して、多数決論理で判断し正しいものを決める。
  • 通信回線によるデータ伝送
    • 通信回線によるデータ伝送、特に通信回線の品質があまり期待できない場合は、通信装置の持っている誤り検出機能だけでは不十分である。それに加えて、同じデータを複数回繰り返し運転し、受信した結果を照合して正しいものを判定する。
  • データベースの競合制御
    • 複数の利用者が同時にアクセスをするデータベースでは、利用者がデータを変更中に、他の利用者が同じデータを変更することのないように、競合制御機能を用意する。

参考文献

  • 『ソフトウェア開発技術者 合格エッセンシャルハンドブック』
  • 『平成12年度 【要点・重点】短期集中速攻対策 第1種』