フォールトトレランス

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ

フォールトトレランスは、一部のコンポーネント内で1つ以上の障害が発生した場合に、システムが適切に動作し続けることを可能にするプロパティです。動作品質がまったく低下した場合、その低下は、小さな障害でも完全な故障を引き起こす可能性がある単純に設計されたシステムと比較して、障害の重大度に比例します。フォールトトレランスは、高可用性ミッションクリティカル、さらにはライフクリティカルなシステムで特に求められていますシステムの一部が故障したときに機能を維持する機能は、グレースフルデグラデーションと呼ばれます。[1]

フォールトトレラント設計により、システムの一部に障害が発生した場合でも、システムが完全に障害を起こすのではなく、場合によってはレベルを下げて、意図した動作を継続できます[2]この用語は、おそらく、スループットの低下または部分的な障害が発生した場合の応答時間の増加を伴って、ほぼ完全に動作し続けるように設計されたコンピューターシステムを表すために最も一般的に使用されます。つまり、ハードウェアまたはソフトウェアのいずれかの問題によってシステム全体が停止することはありません。別の分野の例としては、タイヤの1つに穴が開いても運転し続けることができるように設計された自動車や、疲労腐食、製造などの原因による損傷があった場合でもその完全性を維持できる構造があります。欠陥、または影響。

個々のシステムの範囲内で、フォールトトレランスは、例外的な状態を予測してそれに対処するシステムを構築し、一般に、システムがエラーのない状態に収束するように自己安定化を目指すことによって達成できます。ただし、システム障害の結果が壊滅的なものである場合、またはシステムの信頼性を十分に高めるためのコストが非常に高い場合は、何らかの形式の複製を使用することをお勧めします。いずれにせよ、システム障害の結果が非常に壊滅的なものである場合、システムは復帰を使用してセーフモードにフォールバックできる必要があります。これはロールバックリカバリに似ていますが、人間がループに存在する場合は人間のアクションになる可能性があります。

歴史

最初に知られているフォールトトレラントコンピュータはSAPOで、1951年にAntonínSvobodaによってチェコスロバキアに建設さまし[3] :155 その基本設計は、リレーを介して接続された磁気ドラムであり、メモリエラー検出の投票方法(三重モジュール冗長性)を備えています。他のいくつかの機械は、主に軍用にこの線に沿って開発されました。最終的に、それらは3つの異なるカテゴリに分類されました。NASAの宇宙探査機衛星で使用されているものなど、メンテナンスなしで長持ちするマシンです。 ; 非常に信頼性が高いが、原子力発電所スーパーコライダーの実験を監視および制御するために使用されるコンピューターなど、常に監視する必要のあるコンピューター。そして最後に、保険会社確率監視 に使用するスーパーコンピューターの多くなど、実行時間が長く、頻繁に使用されるコンピューター。

いわゆるLLNM(Long Life、No Maintenance)コンピューティングの開発のほとんどは、1960年代にNASAによって行われ[4] 、プロジェクトアポロやその他の研究の側面に備えていました。NASAの最初のマシンは宇宙天文台に入り、2番目の試みであるJSTARコンピューターがVoyagerで使用されました。このコンピューターには、メモリ回復方法を使用するためのメモリアレイのバックアップがあり、JPL自己テストおよび修復コンピューターと呼ばれていました。独自のエラーを検出して修正するか、必要に応じて冗長モジュールを起動することができます。2022年初頭の時点で、コンピューターはまだ機能しています[5]

非常に信頼性の高いコンピューターは、主に航空機メーカー、[3] :210  の原子力発電会社、および米国の鉄道業界によって開拓されました。これらの必要なコンピューターは、コンピューターの出力が障害を検出するために人間によって絶えず監視されるという事実に依存しながら、障害で十分に正常に失敗して継続的な操作を可能にする大量の稼働時間を備えています。繰り返しになりますが、IBMは、サターンVロケットの誘導用に、NASA向けにこの種の最初のコンピューターを開発しましたが、後にBNSFUnisys、およびGeneralElectricが独自に構築しました。[3] :223 

1970年代には、この分野で多くの研究が行われてきました。[6] [7] [8]たとえば、F14CADCには自己診断と冗長性が組み込まれていました。[9]

一般に、フォールトトレラント設計の初期の取り組みは、主に内部診断に重点が置かれていました。この場合、障害は何かが失敗していることを示し、作業者がそれを交換できます。たとえば、SAPOには、故障したメモリドラムが故障する前にノイズを発する方法がありました。[10]その後の取り組みにより、完全に効果を発揮するには、システムを自己修復して診断する必要があることがわかりました。障害を特定し、修復の必要性を警告しながら冗長バックアップを実装する必要がありました。これはNモデル冗長性として知られており、障害によって自動フェイルセーフとオペレーターへの警告が発生します。これは、現在でも使用されているレベル1のフォールトトレラント設計の最も一般的な形式です。

投票は、前述のように、複数の冗長バックアップが常に動作し、互いの結果をチェックする別の初期方法でした。たとえば、4つのコンポーネントが5の回答を報告し、1つのコンポーネントが6の回答を報告した場合、他の4つは5番目のコンポーネントに欠陥があることを「投票」し、サービスを停止します。これは、N多数決のうちMと呼ばれます。

歴史的に、システムの複雑さとフォールトネガティブからフォールトポジティブへの推移的な状態を保証することの難しさが操作を混乱させなかったという事実のために、動きは常にNモデルからさらにNからMに移動することでした。

TandemStratusは、オンライントランザクション処理用のフォールトトレラントコンピュータシステムの設計を専門とする最初の企業の1つです

Twitterの元のモバイルWebフロントエンドである「M2MobileWeb」は、2020年12月まで、JavaScriptサポートや互換性のないブラウザを持たないクライアントへのフォールバックレガシーバージョンとして機能していました。

ハードウェアのフォールトトレランスでは、システムがまだ動作している間に、壊れた部品を取り出して新しい部品と交換する必要がある場合があります(コンピューティングではホットスワップと呼ばれます)。単一のバックアップで実装されたこのようなシステムは、シングルポイントトレラントと呼ばれ、フォールトトレラントシステムの大部分を占めています。このようなシステムでは、平均故障間隔は、バックアップも失敗する前に、オペレーターが壊れたデバイスを修復するのに十分な時間(平均修復時間)を持つのに十分な長さである必要があります。障害間の時間が可能な限り長い場合は役立ちますが、これはフォールトトレラントシステムでは特に必要ありません。

フォールトトレランスは、コンピュータアプリケーションで特に成功しています。タンデムコンピューターズは、そのようなマシンでビジネス全体を構築しました。このマシンは、シングルポイントトレランスを使用して、稼働時間を数年で測定するNonStopシステムを作成まし

フェイルセーフアーキテクチャには、たとえばプロセスレプリケーションなどのコンピュータソフトウェアも含まれる場合があります。

データ形式は、正常に機能が低下するように設計されている場合もあります。たとえば、HTMLは上位互換性があるように設計されているため、Webブラウザは、ドキュメントを使用できなくすることなく、サポートされていない新しいHTMLエンティティを無視できます。さらに、Twitterなどの人気のあるプラットフォーム(2020年12月まで)を含む一部のサイトでは、 JavaScriptに依存せず最小限のレイアウトを持つオプションの軽量フロントエンドを提供して、 Webが制限されたゲーム機などで幅広いアクセシビリティアウトリーチを確保しています。ブラウジング機能。[11] [12]

用語

透明度のある画像のデザインによる優雅な劣化の例。上の2つの画像はそれぞれ、透明度を認識するビューアで合成画像を表示した結果です。下の2つの画像は、透明度をサポートしていないビューアの結果です。透明マスク(中央下)は破棄されるため、オーバーレイ(中央上)のみが残ります。左側の画像は優雅に劣化するように設計されているため、透明度の情報がなくても意味があります。

フォールトトレラント性の高いシステムは、1つ以上のコンポーネントに障害が発生した場合でも、同じレベルのパフォーマンスを継続する可能性があります。たとえば、バックアップ発電機を備えた建物は、グリッド電源に障害が発生した場合でも、壁のコンセントに同じ電圧を供給します。

フェイルセーフ、フェイルセーフ、または正常にフェイルするように設計されたシステムは、機能が低下していても完全に機能していなくても、人、財産、またはデータを怪我、損傷、侵入、または開示。コンピューターでは、エラーが発生した後のデータの破損を防ぐために、プログラムが(制御されていないクラッシュではなく)正常な終了を実行することでフェイルセーフになる場合があります。「うまく失敗する」と「ひどく失敗する」の間にも同様の区別があります。

フェイルデッドリーは反対の戦略であり、システムの一部が損傷または破壊された場合でも、ターゲットを殺したり傷つけたりするように設計された武器システムで使用できます。

正常な劣化を経験するように、またはソフトにフェイルするように設計されたシステム(「フェイルセーフ」[13]と同様に、コンピューティングで使用される)は、一部のコンポーネントに障害が発生した後、パフォーマンスのレベルが低下します。たとえば、建物は、暗闇の中で人を完全に閉じ込めたり、フルパワーで動作し続けるのではなく、グリッド電源に障害が発生した場合に、照明を低レベルで、エレベータを低速で動作させる場合があります。グレースフルデグラデーションの例を計算する場合、オンラインビデオをストリーミングするのに十分なネットワーク帯域幅が利用できない場合、高解像度バージョンの代わりに低解像度バージョンがストリーミングされる可能性があります。 プログレッシブエンハンスメントはコンピューティングの例であり、Webページは、古い、小さな画面、または機能が制限されたWebブラウザーでは基本的な機能形式で利用できますが、追加のテクノロジーを処理できるブラウザーや、より大きなディスプレイを利用できるブラウザーでは拡張バージョンで利用できます。

フォールトトレラントなコンピュータシステムでは、堅牢であると見なされるプログラムは、完全にクラッシュするのではなく、エラー、例外、または無効な入力があっても動作を継続するように設計されています。 ソフトウェアの脆弱性は、堅牢性の反対です。 一部のリンクまたはノードに障害が発生しても、復元力のあるネットワークはデータを送信し続けます。同様に 、弾力性のある建物とインフラストラクチャは、地震、洪水、衝突などの状況での完全な故障を防ぐことが期待されています。

障害の透過性が高いシステムは、完全なパフォーマンスで動作し続けている場合でも、コンポーネントの障害が発生したことをユーザーに警告するため、障害を修復したり、差し迫った完全な障害を予測したりできます。[14] 同様に、フェイルファストコンポーネントは、ダウンストリームコンポーネントに障害が発生してレポートを生成するのではなく、最初の障害点でレポートするように設計されています。これにより、根本的な問題の診断が容易になり、壊れた状態での不適切な操作を防ぐことができます。

単一の障害状態

単一の障害状態とは危険から保護するための1つの手段に欠陥がある状況です。単一の障害状態が不可避的に別の単一の障害状態になる場合、2つの障害は1つの単一の障害状態と見なされます。[15]ソースは次の例を提供します。

単一故障状態とは、機器の危険から保護するための単一の手段に欠陥があるか、または単一の外部異常状態が存在する場合の状態です。たとえば、充電部と適用部分の間の短絡などです。[16]

基準

通常、すべてのコンポーネントにフォールトトレラント設計を提供することはできません。関連する冗長性には、重量、サイズ、消費電力、コストの増加、および設計、検証、テストにかかる時間など、多くのペナルティが伴います。したがって、どのコンポーネントがフォールトトレラントであるかを判断するには、いくつかの選択肢を検討する必要があります。[17]

  • コンポーネントはどのくらい重要ですか?車の場合、ラジオは重要ではないため、このコンポーネントはフォールトトレランスの必要性が少なくなります。
  • コンポーネントが故障する可能性はどのくらいありますか?車のドライブシャフトなどの一部のコンポーネントは故障する可能性が低いため、フォールトトレランスは必要ありません。
  • コンポーネントのフォールトトレラントにするのにどれくらいの費用がかかりますか?たとえば、冗長な車のエンジンを必要とすることは、経済的にも重量とスペースの面でも、考慮するには高すぎる可能性があります。

すべてのテストに合格したコンポーネントの例は、自動車の乗員拘束システムです。通常、主な乗員拘束システムについては考えていませんが、それは重力です。車両が横転したり、激しいG力を受けたりすると、乗員を拘束するこの主要な方法が失敗する可能性があります。このような事故の際に乗員を拘束することは安全にとって絶対に重要であるため、最初のテストに合格します。シートベルト着用前は乗員の脱出事故が多発していたため、2回目の試験に合格しました。シートベルトのような冗長拘束方法のコストは、経済的にも重量とスペースの面でも非常に低いため、3番目のテストに合格します。したがって、すべての車両にシートベルトを追加することは優れたアイデアです。その他の「補足拘束システム」、エアバッグはより高価であるため、そのテストにわずかな差で合格します。

この原理が実践されているもう1つの優れた長期的な例は、ブレーキシステムです。実際のブレーキメカニズムは重要ですが、特に突然の(進行性ではなく)故障の傾向はなく、いずれの場合も、可能にするために必ず複製されます。すべての車輪に均等でバランスの取れたブレーキ力の適用。また、主要コンポーネントをさらに2倍にすることは非常にコストがかかり、かなりの重量が追加されます。ただし、ドライバーの制御下でブレーキを作動させるための同様に重要なシステムは、本質的に堅牢性が低く、一般にケーブル(錆び、伸び、詰まり、スナップする可能性があります)または油圧作動油(漏れ、沸騰、気泡が発生し、水を吸収して効果を失う可能性があります)を使用します)。したがって、ほとんどの最新の自動車では、フットブレーキ油圧ブレーキ回路が斜めに分割されて、2つの小さな障害点が発生します。ブレーキ力を50%低下させるだけで、真っ直ぐな前後または左右のスプリットほど危険なブレーキ力の不均衡を引き起こさないかのいずれかの損失、および油圧回路が完全に故障した場合(比較的まれな発生)、フェイルセーフがありますケーブル作動式パーキングブレーキの形で、他の点では比較的弱いリアブレーキを操作しますが、要求が通常の交通の流れと一致している限り、トランスミッション/エンジンブレーキと組み合わせて車両を安全に停止させることができます。フットブレーキの完全な故障と緊急時の激しいブレーキの必要性の累積的にありそうもない組み合わせは、衝突を引き起こす可能性がありますが、それでもそうでない場合よりも低速で衝突します。ケーブル作動式パーキングブレーキの形でフェイルセーフがあり、それ以外の場合は比較的弱いリアブレーキを操作しますが、要求が一致している限り、トランスミッション/エンジンブレーキと組み合わせて車両を安全に停止させることができます通常の交通流で。フットブレーキの完全な故障と緊急時の激しいブレーキの必要性の累積的にありそうもない組み合わせは、衝突を引き起こす可能性がありますが、それでもそうでない場合よりも低速で衝突します。ケーブル作動式パーキングブレーキの形でフェイルセーフがあり、それ以外の場合は比較的弱いリアブレーキを操作しますが、要求が一致している限り、トランスミッション/エンジンブレーキと組み合わせて車両を安全に停止させることができます通常の交通流で。フットブレーキの完全な故障と緊急時の激しいブレーキの必要性の累積的にありそうもない組み合わせは、衝突を引き起こす可能性がありますが、それでもそうでない場合よりも低速で衝突します。

フットペダル作動式サービスブレーキと比較して、パーキングブレーキ自体はそれほど重要ではなく、フットブレーキの1回限りのバックアップとして使用されていない限り、適用の瞬間。したがって、冗長性自体は組み込まれていません(通常、より安価で軽量ですが、耐久性の低いケーブル作動システムを使用します)。これが丘で発生した場合は、フットブレーキを使用して車両を瞬間的に静止させるだけで十分です。 、停車する平坦な道路を見つけるために車を運転する前に。あるいは、浅い勾配では、トランスミッションをパーク、リバース、またはファーストギアにシフトし、トランスミッションロック/エンジン圧縮を使用して静止状態に保つことができます。これは、最初に停止させるための高度な機能を含める必要がないためです。 。

自動二輪車では、より簡単な方法で同様のレベルのフェイルセーフが提供されます。まず、フロントブレーキシステムとリアブレーキシステムは、アクティブ化の方法(ケーブル、ロッド、油圧など)に関係なく完全に分離されているため、一方が完全に故障し、もう一方は影響を受けません。第二に、リアブレーキは自動車のいとこに比べて比較的強力であり、スポーツモデルでは強力なディスクでさえありますが、通常の目的はフロントシステムがブレーキ力の大部分を提供することです。車両全体の重量がより中央にあるため、リアタイヤは一般的に大きくてグリップ力があり、ライダーは後ろに寄りかかってより多くの重量をかけることができるため、ホイールがロックする前により多くのブレーキ力をかけることができます。安価で低速のユーティリティクラスのマシンでは、

要件

フォールトトレランスの基本的な特性には、次のものが必要です。

  1. 単一障害点がない–システムに障害が発生た場合、修復プロセス中に中断することなく動作を継続する必要があります。
  2. 障害のあるコンポーネントへの障害の切り分け–障害が発生した場合、システムは障害のあるコンポーネントへの障害を切り分けられる必要があります。これには、障害の切り分けの目的でのみ存在する専用の障害検出メカニズムを追加する必要があります。障害状態からの回復には、障害または障害のあるコンポーネントを分類する必要があります。米国国立標準技術研究所(NIST)は、地域、原因、期間、および影響に基づいて障害を分類します。[どこ?] [説明が必要]
  3. 障害の伝播を防ぐための障害の封じ込め–一部の障害メカニズムは、システムの残りの部分に障害を伝播することにより、システムに障害を引き起こす可能性があります。この種の障害の例は、システム内の正当な通信を圧倒し、システム全体の障害を引き起こす可能性のある「不正な送信機」です。システムを保護するために、不正な送信機または障害のあるコンポーネントを分離するファイアウォールまたはその他のメカニズムが必要です。
  4. 復帰モードの利用可能性[説明が必要]

さらに、フォールトトレラントシステムは、計画的なサービスの停止と計画外のサービスの停止の両方の観点から特徴づけられます。これらは通常、ハードウェアレベルだけでなく、アプリケーションレベルで測定されます。性能指数は可用性と呼ばれ、パーセンテージで表されます。たとえば、ファイブナインシステムは統計的に99.999%の可用性を提供します。

フォールトトレラントシステムは通常、冗長性の概念に基づいています。

フォールトトレランス技術

重要なシステムに必要な公差の種類の研究には、大量の学際的な作業が含まれます。システムが複雑になるほど、考えられるすべての相互作用を慎重に検討し、準備する必要があります。輸送、公共交通機関、軍隊における高価値システムの重要性を考えると、研究に触れるトピックの分野は非常に広く、ソフトウェアのモデリングや信頼性、ハードウェアの設計などの明白な主題から、次のような難解な要素まで含めることができます。確率モデル、グラフ理論、形式的または排他的ロジック、並列処理、リモートデータ送信など。[18]

レプリケーション

スペアコンポーネントは、フォールトトレランスの最初の基本的な特性に次の3つの方法で対処します。

  • レプリケーション:同じシステムまたはサブシステムの複数の同一インスタンスを提供し、タスクまたは要求をそれらすべてに並行して送信し、クォーラムに基づいて正しい結果を選択します
  • 冗長性:同じシステムの複数の同一インスタンスを提供し、障害が発生した場合に残りのインスタンスの1つに切り替えます(フェイルオーバー)。
  • 多様性:同じ仕様の複数の異なる実装を提供し、特定の実装のエラーに対処するために複製されたシステムのようにそれらを使用します。

RAID 0を除く、独立したディスクの冗長アレイであるRAIDすべての実装は、データ冗長性を使用するフォールトトレラントストレージデバイスの例です。

ロックステップフォールトトレラントマシンは、並行して動作する複製された要素を使用しますいつでも、各要素のすべての複製は同じ状態である必要があります。同じ入力が各レプリケーションに提供され、同じ出力が期待されます。複製の出力は、投票回路を使用して比較されます。各要素の複製が2つあるマシンは、デュアルモジュラー冗長(DMR)と呼ばれます。その場合、投票回路は不一致のみを検出でき、回復は他の方法に依存します。各要素の3つの複製を持つマシンは、三重モジュラー冗長と呼ばれます(TMR)。投票回路は、2対1の投票が観察されたときに、どの複製がエラーになっているのかを判断できます。この場合、投票回路は正しい結果を出力し、誤ったバージョンを破棄することができます。この後、誤った複製の内部状態は他の2つの状態とは異なると見なされ、投票回路はDMRモードに切り替えることができます。このモデルは、任意の数のレプリケーションに適用できます。

ロックステップフォールトトレラントマシンは、最も簡単に完全同期化され、各レプリケーションの各ゲートがクロックの同じエッジで同じ状態遷移を行い、レプリケーションへのクロックが正確に同相になります。ただし、この要件なしでロックステップシステムを構築することは可能です。

レプリケーションを同期させるには、内部に保存されている状態を同じにする必要があります。これらは、リセット状態などの固定された初期状態から開始できます。または、あるレプリカの内部状態を別のレプリカにコピーすることもできます。

DMRの1つのバリアントは、ペアアンドスペアです。複製された2つの要素は、ペアとしてロックステップで動作します。投票回路は、動作間の不一致を検出し、エラーがあることを示す信号を出力します。別のペアはまったく同じように動作します。最後の回路は、エラーであると宣言しないペアの出力を選択します。ペアアンドスペアには、TMRの3つではなく4つのレプリカが必要ですが、商業的に使用されています。

エラー忘却型コンピューティング

エラー忘却型コンピューティングは、エラーが発生してもコンピュータプログラムの実行を継続できるようにする手法です[19] この手法は、さまざまな状況で適用できます。まず、製造された値をプログラムに返すことで無効なメモリ読み取りを処理できます[20] 。次に、製造された値を利用し、アクセスしようとした以前のメモリ値を無視します。これは、通常のメモリチェッカーとは非常に対照的です。 、プログラムにエラーを通知するか、プログラムを中止します。次に、予期しない例外をキャッチするためにいくつかのキャッチブロックが書き込まれるか合成される例外に適用できます。[21]さらに、カスケード障害を防ぐために、実行が連続して数回変更されることがあります。[22]

このアプローチにはパフォーマンスコストがあります。この手法ではコードを書き換えてアドレスの有効性の動的チェックを挿入するため、実行時間は80%から500%増加します。[23]

回復羊飼い

回復シェパーディングは、ソフトウェアプログラムが、nullポインターの逆参照やゼロ除算など、致命的なエラーから回復できるようにするための軽量な手法です。[24]エラー忘却型コンピューティング技術と比較すると、リカバリシェパーディングはコンパイルされたプログラムバイナリで直接機能し、プログラムに再コンパイルする必要はありません。

ジャストインタイムの バイナリインストルメンテーションフレームワークPinを使用します。エラーが発生したときにアプリケーションプロセスにアタッチし、実行を修復し、実行の継続中に修復効果を追跡し、アプリケーションプロセス内に修復効果を含め、すべての修復効果がプロセス状態からフラッシュされた後にプロセスから切り離します。プログラムの通常の実行を妨げることはないため、オーバーヘッドはごくわずかです。[24]体系的に収集された18の実世界のnull逆参照およびゼロ除算エラーの17について、プロトタイプ実装により、アプリケーションは実行を継続し、エラートリガー入力でユーザーに許容可能な出力とサービスを提供できます。[24]

サーキットブレーカ

サーキットブレーカのデザインパターンは、分散システムでの壊滅的な障害を回避するための手法です。

冗長性

冗長性とは、障害のない環境では不要な機能機能を提供することです。[25] これは、1つのコンポーネントに障害が発生した場合に自動的に「キックイン」するバックアップコンポーネントで構成できます。たとえば、大型貨物トラックは大きな影響を与えることなくタイヤを失う可能性があります。彼らは多くのタイヤを持っており、1つのタイヤが重要ではありません(ステアリングに使用されるフロントタイヤを除いて、一般的に他の4〜16よりも全体として負荷が少ないため、故障する可能性は低くなります)。システムの信頼性を向上させるために冗長性を組み込むというアイデアは、1950年代にジョンフォンノイマンによって開拓されました。[26]

2種類の冗長性が可能です:[27]スペース冗長性と時間冗長性。スペースの冗長性により、障害のない操作に不要な追加のコンポーネント、機能、またはデータ項目が提供されます。スペースの冗長性は、システムに追加された冗長リソースのタイプに応じて、ハードウェア、ソフトウェア、および情報の冗長性にさらに分類されます。時間の冗長性では、計算またはデータ送信が繰り返され、結果が前の結果の保存されたコピーと比較されます。この種のテストの現在の用語は、「インサービスフォールトトレランステスト」または略してISFTTと呼ばれます。

短所

フォールトトレラント設計の利点は明らかですが、欠点の多くはそうではありません。

  • 同じコンポーネントでの障害検出への干渉。上記の乗用車の例を続けると、いずれかのフォールトトレラントシステムでは、タイヤがパンクしたときにドライバーにわかりにくい場合があります。これは通常、別の「自動障害検出システム」で処理されます。タイヤの場合、空気圧モニターが圧力の低下を検出し、ドライバーに通知します。別の方法は、各停車地ですべてのタイヤを手動で検査するなどの「手動障害検出システム」です。
  • 別のコンポーネントでの障害検出への干渉。この問題のもう1つのバリエーションは、あるコンポーネントのフォールトトレランスが別のコンポーネントのフォールト検出を妨げる場合です。たとえば、コンポーネントBがコンポーネントAからの出力に基づいて何らかの操作を実行する場合、BのフォールトトレランスはAの問題を隠すことができます。コンポーネントBが後で(フォールトトレラント性の低い設計に)変更されると、システムが突然失敗する可能性があります。新しいコンポーネントBが問題であるように見せます。システムを注意深く精査した後で初めて、根本的な問題が実際にはコンポーネントAにあることが明らかになります。
  • 障害修正の優先度の低下。オペレーターが障害に気付いたとしても、フォールトトレラントシステムを使用すると、障害を修復することの重要性が低下する可能性があります。障害が修正されない場合、フォールトトレラントコンポーネントに完全に障害が発生した場合、またはすべての冗長コンポーネントにも障害が発生した場合、最終的にシステム障害が発生します。
  • テストの難易度。原子炉などの特定の重要なフォールトトレラントシステムの場合、バックアップコンポーネントが機能していることを確認する簡単な方法はありません。この最も悪名高い例はチェルノブイリで、オペレーターは一次および二次冷却を無効にすることで緊急バックアップ冷却をテストしました。バックアップが失敗し、炉心溶融と大量の放射線の放出が発生しました。
  • 費用。フォールトトレラントコンポーネントと冗長コンポーネントはどちらもコストを増加させる傾向があります。これは、純粋に経済的なコストである場合もあれば、重量などの他の測定値を含む場合もあります。たとえば、有人宇宙船には冗長でフォールトトレラントなコンポーネントが多数あるため、同じレベルの安全性を必要としない無人システムに比べて重量が大幅に増加します。
  • 劣ったコンポーネント。フォールトトレラント設計では、劣ったコンポーネントを使用できる場合があります。そうしないと、システムが動作しなくなります。この方法はコストの増加を軽減する可能性がありますが、複数の劣ったコンポーネントを使用すると、システムの信頼性が同等の非フォールトトレラントシステムと同等またはそれ以上に低下する可能性があります。

関連用語

フォールトトレランスと、ほとんど問題が発生しないシステムには違いがあります。たとえば、Western Electricの クロスバーシステムの故障率は40年あたり2時間であったため、耐障害性に優れていました。ただし、障害が発生した場合でも、完全に動作を停止したため、フォールトトレラントではありませんでした。

も参照してください

参照

  1. ^ アダプティブフォールトトレランスとグレースフルデグラデーション、オスカーゴンザレス他、1997年、マサチューセッツ大学-アマースト
  2. ^ ジョンソン、BW(1984)。フォールトトレラントマイクロプロセッサベースのシステム」、IEEE Micro、vol。4、いいえ。6、pp。6–21
  3. ^ a b c Daniel P. Siewiorek; C.ゴードンベル; アレンニューウェル(1982)。コンピュータ構造:原理と例マグロウヒルISBN 0-07-057302-6
  4. ^ AlgirdasAvižienis; ジョージC.ギリー; フランシスP.マトゥール; デビッドA.レンネルズ; John A. Rohr; デビッドK.ルービン。「STAR(自己テストおよび修復)コンピューター:フォールトトレラントコンピューター設計の理論と実践の調査」(PDF)
  5. ^ 「ボイジャーミッションの状態(多くの場合、少なくとも3か月前)」NASA 2022-04-01を取得
  6. ^ ランデル、ブライアン; リー、PA; トレリーベン、PC(1978年6月)。「コンピューティングシステム設計における信頼性の問題」ACMコンピューティング調査10(2):123–165。土井10.1145/356725.356729ISSN0360-0300_ S2CID16909447_  
  7. ^ PJデニング(1976年12月)。「フォールトトレラントオペレーティングシステム」ACMコンピューティング調査8(4):359–389。土井10.1145/356678.356680ISSN0360-0300_ S2CID207736773_  
  8. ^ セオドアA.リンデン(1976年12月)。「セキュリティと信頼性の高いソフトウェアをサポートするオペレーティングシステムの構造」ACMコンピューティング調査8(4):409–445。土井10.1145/356678.356682hdl2027/mdp.39015086560037ISSN0360-0300_ S2CID16720589_  
  9. ^ レイホルト。 「F14Aセントラルエアデータコンピューター、および1968年のLSIテクノロジーの最先端」
  10. ^ コンピュータ設計におけるフォールトトレラントコンピューティングNeilforoshan、MR Journal of Computing Sciences in Collegesアーカイブ第18巻、第4号(2003年4月)ページ:213 – 220、 ISSN 1937-4771 
  11. ^ 「なぜあなたのウェブサイトはJavaScriptなしで動作する必要があります」DEVコミュニティ2021-05-16を取得
  12. ^ Fairfax、Zackerie(2020-11-28)。「レガシーTwitterのシャットダウンは、3DSからツイートできないことを意味します」ScreenRant2021-07-01を取得{{cite web}}:CS1 maint:url-status(link
  13. ^ Stallings、W(2009):オペレーティングシステム。内部および設計原則、第6版
  14. ^ Thampi、Sabu M.(2009-11-23)。「分散システム入門」。arXiv0911.4395 [ cs.DC ]。
  15. ^ 「コントロール」Grouper.ieee.org1999-10-08にオリジナルからアーカイブされました2016年4月6日取得
  16. ^ Baha Al-Shaikh、Simon G. Stacey、 Essentials of Equipment in Anaesthesia、Critical Care、およびPeri-Operative Medicine(2017)、p。247。
  17. ^ Dubrova、E.(2013)。「フォールトトレラント設計」、Springer、2013年、 ISBN 978-1-4614-2112-2 
  18. ^ いくつかのフォールトトレラントコンピュータアーキテクチャの信頼性評価Springer-Verlag。1980年11月。ISBN 978-3-540-10274-8
  19. ^ ヘルツバーグ、アミール; シュルマン、ハヤ(2012)。「忘却的で公正なサーバー支援の2者間計算」2012年第7回可用性、信頼性、セキュリティに関する国際会議IEEE:75〜84。土井10.1109/ares.2012.28ISBN 978-1-4673-2244-7S2CID6579295 _
  20. ^ リガー、マヌエル; ペカレク、ダニエル; Mössenböck、Hanspeter(2018)、「バッファオーバーフローを防止する手段としてのコンテキストアウェアエラー忘却型コンピューティング」ネットワークおよびシステムセキュリティ、Cham:Springer International Publishing、pp。376–390、arXiv1806.09026doi10.1007 / 978 -3-030-02744-5_28ISBN 978-3-030-02743-82020-10-07を取得
  21. ^ 張、長い; モンペラス、マーティン(2019)。「TripleAgent:監視、摂動、障害-Javaアプリケーションの自動レジリエンス改善のための忘却」2019 IEEE 30th International Symposium on Software Resistance Engineering(ISSRE)ドイツ、ベルリン:IEEE:116–127。arXiv1812.10706土井10.1109/ISSRE.2019.00021ISBN 978-1-7281-4982-0S2CID57189195 _
  22. ^ Durieux、Thomas; ハマディ、ユセフ; Yu、Zhongxing; ボードリー、ブノワ; モンペラス、マーティン(2018)。「エラー忘却型コンピューティング検索スペースの徹底的な調査」。2018 IEEE 11th International Conference on Software Testing、Verification and Validation(ICST)pp。139–149。arXiv1710.09722土井10.1109/ICST.2018.00023ISBN 978-1-5386-5012-7S2CID4304123 _
  23. ^ Keromytis、Angelos D.(2007)、"Characterizing Software Self-Healing Systems"、in Gorodetski、Vladimir I .; コテンコ、イゴール; Skormin、Victor A.(eds。)、Characterizing Software Self-Healing Systems、Computer network security:Fourth International Conference on Mathematical Methods、Models、and Architectures for Computer Network Security、SpringerISBN 978-3-540-73985-2
  24. ^ a b c 長い、ファン; Sidiroglou-Douskos、Stelios; リナード、マーティン(2014)。「リカバリシェパーディングによる自動ランタイムエラーの修復と封じ込め」。プログラミング言語の設計と実装に関する第35回ACMSIGPLAN会議の議事録PLDI'14'。米国ニューヨーク州ニューヨーク:ACM。pp。227–238。土井10.1145/2594291.2594337ISBN 978-1-4503-2784-8S2CID6252501 _
  25. ^ Laprie、JC(1985)。ディペンダブルコンピューティングとフォールトトレランス:概念と用語」、フォールトトレラントコンピューティングに関する第15回国際シンポジウム(FTSC-15)の議事録、pp。2–11
  26. ^ von Neumann、J.(1956)確率論理と信頼できない成分からの信頼できる生物の合成」、Automata Studies、eds。C.シャノンとJ.マッカーシー、プリンストン大学出版局、43〜98ページ
  27. ^ Avizienis、A.(1976)。フォールトトレラントシステム」、コンピュータ上のIEEEトランザクション、vol。25、いいえ。12、pp。1304–1312