単一障害点(たんいつしょうがいてん。英: single point of failure、SPOF)とは、その単一箇所が働かないと、システム全体が障害となるような箇所を指す。情報システム工学や通信、サプライチェーン・マネジメントなどの分野で使われる概念である。単一故障点と訳されることもある。
概要
高い可用性が必要なシステムでは、そのシステムを構成する各構成要素の1箇所の障害で全体が停止しないように、各構成要素を冗長化(2重化、3重化など)するが、その際に単一障害点が残らないように設計すべきである。
一般的なコンピュータシステムの例では以下が挙げられる。
ハードディスクをRAIDで冗長化しても、そのRAIDアダプターが1枚ではRAIDアダプター障害時には全体が障害となる
RAIDコントローラが2重化されたディスク装置でも、ファームウェア障害や筐体障害の場合は全体が障害になりうる
ディスク装置の全ハードウェアを冗長化しても、ソフトウェア障害などによるデータ破損時にはバックアップデータが無ければ復旧できない
コンピュータ・クラスターでは、そのクラスタリング用ソフトウェア自体が単一障害点である
電源装置を二重化しても、その先の分電盤が同じでは分電盤の障害時には全体が障害となる
完璧なソフトウェアテストはほとんどなケースで存在しないため、ソフトウェア自体はある確率でバグを抱えているが、バグの発現確率を下げるため、同じ要求仕様に基づいた異なるソフトウェアを2つ以上作り、それらが同じ動作をするときに限り動作させるということで、ソフトウェア・システム自体が単一障害点になるのを回避できるただし過剰な冗長化や多重化は、コスト増に加えて、システムの部品の種類や数、あるいは複雑性が増加する結果として、部品故障発生率や設計・検証・運用のリスクが増加する側面もある。このため単一障害点の解消は、その業務や業務停止の影響度を勘案し、費用対効果およびリスクマネジメントの一環として行う必要がある。
…