fault toleranceとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > デジタル大辞泉 > fault toleranceの意味・解説 

フォールト‐トレランス【fault-tolerance】


フォールトトレランス

【英】fault tolerance

フォールトトレランスとは、システム障害発生した場合にも正常に機能し続けることである。耐障害性など和訳されることが多い。

通常のコンピュータは、システム一部支障を来たす機能停止してしまう。大規模なシステムミッションクリティカル業務システムには障害発生許されない。そのため、システムある程度冗長性持たせることによって異常を回避する仕組みとられる場合がある。例え電源多重化したり、ハードディスク多重化したり(RAID)、無停電電源装置UPS)を用いたりすることで、フォールトトレランスなシステム実現することができる。

フォールトトレランスなシステム構築する技術は、フォールトトレラント技術呼ばれるフォールトトレラント技術用いたコンピュータフォールトトレラントコンピュータ呼ばれるフォールトトレラントコンピュータは耐障害コンピュータ無停止コンピュータ、ノンストップコンピュータなどとも呼ばれるサーバー場合は特にフォールトトレラントサーバー無停止型サーバー)などと呼ばれる場合もある。

フォールトトレラント同様の概念には、フェイルセーフフェイルソフトなどがある。フォールトトレランスは異常が生じて正常に機能することを意味するもので、フェイルセーフ人為的ミスによって他人に被害及ばないようにする防止のようなニュアンスがある。


フォールトトレランス

読み方ふぉーるととれらんす
【英】:fault tolerance

概要

システム一部故障発生しても, 全体としてはそれに耐える様な特性のこと, あるいは, その様特性実現するための設計・運用アプローチのことをいう. フォールトトレランスの特性は, 故障が起こることは不可避であるという立場にたち, 冗長構成, 誤り検出, 誤りマスク, 再構成, 一貫性回復などの技術をあらかじめシステム導入することで実現される. フォールトトレランスと対峙する概念フォールトアボイダンスがある.

詳説

 高信頼化システム実現するための伝統的な手法のひとつは, システム構成する個々要素信頼性向上させることであり, これはフォールトアボイダンス (fault avoidance) とよばれる. 一方, いかに構成要素信頼性高くとも, 故障本質的に避けられないのであるという前提に立ち, それらの要素またはシステムに, 故障耐え得るような特性持たせようとする手法研究されてきた. この高信頼化手法フォールトトレランス (fault tolerance) である. 本項では, フォールトトレランスの概念その実手法について述べる.

 故障発生しても, システム機能に全く支障きたさないことが, 理想的なフォールトトレランスの特性であるが, 機能低下システムのある範囲だけに留める{フェイルソフト} (fail soft) や, 安全な状態で機能停止するフェイルセーフ (fail safe) などの特性まで含めてフォールトトレランスという. この様な広い意味でのフォールトトレランスは, コンピュータシステム普及とともに重要視されるようになり, 現在, フォールトトレランスは, 主としてコンピュータシステムの耐故障技術として認識されている.

 ラプリエ (J. C. Laprie) は, フォールトアボイダンスとフォールトトトレランスを包括するディペンダビリティ (dependability) という統一的な概念提案した [1, 2, 3]. それは, 「コンピュータシステムディペンダビリティとは, 実行され仕事 (service) がどの程度正しく行われているかを明らかにするための品質 (quality) を示すものである」として定義された. 図1 に, ラプリエの提案した概念と用語枠組を示す.


図1:ディペンダビリティの概念と用語の枠組
図1:ディペンダビリティ概念と用語枠組



 ディペンダビリティ阻害する要因として, フォールト (fault) , 誤り(errors), 障害 (failures) の3つ示されている. フォールト (または故障) とは, システム機能損失不具合など原因をいい, 従来故障概念に, ソフトウェアバグオペレータ操作ミスまで含めた広い意味の用語として定義される. そして, フォールト表面化しシステム内部不具合生じることを誤りという. また, その誤りが, システム外部ユーザ等に認識されたとき障害となるのである [1]. 階層的なシステムでは, これらの用語の関係は再帰的であることに注意したい. 例えば, あるサブシステム発生した誤りは, そのサブシステム外部との接点において障害として認識されるが, 同時にその障害は, サブシステムを含むシステム全体にとっての誤りもたらすフォールトでもある. なお, これらの用語の定義は, フォールトトレランスの研究分野では広く認知されているが, 日本工業規格 JIS X 0014 (信頼性, 保守性及び可用性) 等の定義とは異なることを付け加えておく.

 さて, フォールトトレランス技術とは, 誤り障害として認識されるまえに, それを検出しマスク (または隠蔽) する技術 (masking), あるいは, マスクできない場合でもその影響できるだけ狭い範囲限定し, 速やかに正常状態へ回復させる技術であるといえる. この様特性は, 基本的に何らかの冗長性 (redundancy) を導入することで得られる. 冗長化対象となる計算機資源は, ハードウェア, ソフトウェア, 時間3 つ分類できる [2]. ハードウェアソフトウェア冗長化多くは, 同一構成要素複数用いることで実現され, 時間についての冗長化は, ひとつの要素使って同じ処理を繰り返すことで実現される.

 誤り検出するためには, 例えば, 対象となるハードウェア二重化冗長構成して結果照合したり, 誤り検出のための冗長符号用いたりする. そして, その誤りマスクするために, TMR (triple modular redundancy) や N\, バージョンプログラミングなどの多数決冗長方式用いられる. これらの冗長性は, 静的冗長 (static redundancy) と呼ばれる.

 誤りマスク失敗して障害発生すれば, システム回復技術 (recovery techniques) が適用される. まず, 例え待機冗長方式によって, 障害認められハードウェア交換するなどの再構成実行され, 続いてシステム論理的一貫性回復するために, ロールバック等のソフトウェア冗長用いられる. これら障害回復のための冗長性は, 動的冗長 (dynamic redundancy) とよばれる.



参考文献

[1] J. C. Laprie, "Dependable Computing and Fault Tolerance: Concepts and Terminology," Digest of Papers FTCS-15, (1985), 2-11.

[2] 当麻喜弘監修, 向殿政男編集, 『コンピュータシステム高信頼化技術入門』, 日本規格協会, 1988.

[3] 向殿政男編集, 『フォールト・トレラント・コンピューティング』, 丸善, 1989.

[4] 南谷崇, 『フォールトトレラントコンピュータ』, オーム社, 1991.


フォールトトレラントシステム

(fault tolerance から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/09/02 23:42 UTC 版)

フォールトトレラントシステムFault tolerant system)は、その構成部品の一部が故障しても正常に処理を続行するシステムである。本項目はフォールトトレラントシステムの特定の実装方法に関して記述する。一般的な理論についてはフォールトトレラント設計を参照されたい。

概要

障害が発生した場合、単純な設計のシステムでは少しの障害でも全体が停止するが、フォールトトレラントシステムでは完全に機能を保ったまま処理を続行するか、障害の重大性に応じて機能を低下させながらも処理を続行する。フォールトトレラント性は連続稼働が求められるシステムや人命に関わるシステムで特に求められる。

フォールトトレラント性は個々のマシンの特性というだけではなく、マシン間の連携についての規則の特性でもある。例えば、TCPパケット通信ネットワーク内に不完全なリンクや高負荷のリンクがあっても信頼性の高い双方向通信ができるように設計されている。これは受信側でパケット喪失、パケット二重化、順序変更などがあるものとしてプロトコルが設計されているためであり、結果として通信性能が低下してもデータの正確性が損なわれないようになっているのである。

データ形式も同様な考え方を当てはめることが出来る。例えばHTML下位互換を維持するよう設計されているため、新たな機能を使ったHTMLを古いブラウザが読み込んだとき、それを処理できないものとして捨てるのではなく理解できる範囲で表示することができる。

フォールトトレラントシステムにおける障害復旧はロールフォワードroll-forward)とロールバックroll-back)に分けられる。システムに障害が発生しエラーとなったとき、ロールフォワード復旧ではその時点のシステム状態で復旧を行い、処理をさらに先に進める。ロールバック復旧ではシステム状態を少しだけ前に戻して(例えばチェックポイントを使って)そこから処理を再開する。ロールバック復旧では、チェックポイント(戻す地点)と障害発生地点との間の処理は冪等(何度実行しても一回実行したのと同じ)でなければならない。いくつかのシステムはエラーの種類やエラー発生箇所によってロールフォワードとロールバックを使い分けている。

個々のシステム内では、フォールトトレランス性は例外的な状態を想定してそれに対処できるようにシステムを構築することで実現される。また、一般に自己安定性を持たせることによってシステムがエラーのない状態に収斂させることでフォールトトレランス性を実現する。しかし、システム障害が重大でそれに対処するのに非常にコストがかかる場合、よりよい方法は何らかの二重化をすることである。

フォールトトレラントシステムに求められること

フォールトトレラントシステムに求められる基本的特性は以下の通りである。

  1. 単一障害点(single point of failure)がないこと(障害に対して全体の障害とならないよう対策が施されていること)
  2. 単一故障点(single point of repair)がないこと(ハードウェア故障についても同様)
  3. 障害部品の隔離ができること
  4. 障害の伝播を防ぐこと
  5. 代替モードがあること

さらに、フォールトトレラントシステムは予定されたサービス停止と予期しないサービス停止の両方を尺度として使うことができる。通常、これらはアプリケーションレベルでの話であり、ハードウェアレベルの話ではない。これらを考慮した値を可用性と呼び、パーセントで表す(つまり、全時間のうち、サービス停止していない時間が何パーセントか)。99.999% の可用性を保証されたシステムは、統計的に99.999%の時間稼動し続けるはずである。

二重化によるフォールトトレラントシステム

二重化(多重化、冗長化)によるフォールトトレラント性は三つに分類される。

  • レプリケーション:同じシステムの複製を複数用意し、それら全部に同じ処理を並列に実行させ、定足数を満足した結果を正しい結果として採用する。
  • 冗長性:同じシステムの複製を複数用意し、障害が発生したら予備のシステムに切り替える。
  • 多様性:同じ仕様の異なる実装のシステムを複数用意し、レプリケーションのようにそれを運用する。この場合、各システムが同じ障害を発生することがないと考えられる。

RAIDは冗長性を活用したフォールトトレラントな記憶装置の例である。

ロックステップ方式のフォールトトレラントマシンは各部分を多重化して並列して動作させる。多重化された各部分はどの時点で見ても全く同じ状態でなければならない。同じ入力を与えた場合に同じ出力が得られることが期待される。多重化部分の出力は多数決回路に集められ比較される。各部品を二重化したマシンはdual modular redundant(DMR)と呼ばれる。この場合、多数決回路は結果が異なっているということしか分からないので、復旧は別の方法で行う必要がある。各部品を三重化したマシンはtriple modular redundant(TMR)と呼ばれる。この場合の多数決回路は比較結果が2対1になったときにエラーを判定するので、正しい(と思われる)結果を出力することができ、エラーと判定された結果を捨てることが出来る。その後、エラーを発生させた複製部品は故障したものとみなし、多数決回路はDMR状態に移行する。このモデルはもっと多くの複製についても当てはめることが出来る。

ロックステップ方式のフォールトトレラントマシンは簡単に完全同期させることができ、各複製部品は同じクロックで同期して動作する。もちろん、各複製をクロック同期させないロックステップシステムも構築可能である(多数決回路で待ち合わせる)。(訳注:ただし、クロック同期しない場合、故障によって出力を多数決回路に送れなくなった部品をどう扱うかが問題となる。)

複製を同期させるには個々の内部状態が一致していなければならない。リセット状態などの同じ内部状態からいっせいに動作を開始するのである。一方で、複製間で状態をコピーするという方法もある。

DMRの一種にpair-and-spareがある。ふたつの複製部品がロックステップで同じ処理を行い、多数決回路が相異を検出したらエラー信号を出力する。もうひとつの二重化システムが全く同じ処理をしていて、ふたつの二重化システムの出力を比較してエラーとなっていない方を採用する。pair-and-spare では云わば四重化であって TMR よりも冗長だが、商用システムで採用された例もある。

単一故障点

システムの障害が発生し、何らかの修理が必要となったとき、修理している最中でもサービスが続行可能でなければならない。あるいは、ソフトウェアの障害でパッチを当てる場合も同様である。

障害部品の隔離

障害が発生したとき、その発生箇所を特定し、隔離できなければならない。このため、独立した障害箇所特定のための機構が必要となる。

障害の封じ込め

障害が発生すると、それがシステム全体に伝播していき、システム全体が障害となることがある。例えば、通信関係で障害が発生すると、不正なパケットが大量に発生してネットワーク全体の回線容量を消費し、結果としてサービス不能となる場合がある。このような場合に障害箇所を隔離して、システム全体に影響が及ばないようにする必要がある。

代替モード

障害によってはシステム(あるいは操作者や結果)を危険にさらす可能性がある。これを防ぐため、ミッションクリティカルなシステム(兵器システム、油圧機械など)はセーフモードを備える。これはインターロック機構やソフトウェアで実装可能である。

参考文献

関連項目

外部リンク



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「fault tolerance」の関連用語

fault toleranceのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



fault toleranceのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
デジタル大辞泉デジタル大辞泉
(C)Shogakukan Inc.
株式会社 小学館
IT用語辞典バイナリIT用語辞典バイナリ
Copyright © 2005-2025 Weblio 辞書 IT用語辞典バイナリさくいん。 この記事は、IT用語辞典バイナリの【フォールトトレランス】の記事を利用しております。
日本オペレーションズ・リサーチ学会日本オペレーションズ・リサーチ学会
Copyright (C) 2025 (社)日本オペレーションズ・リサーチ学会 All rights reserved.
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのフォールトトレラントシステム (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2025 GRAS Group, Inc.RSS