冗長化
冗長化(じょうちょうか)とは、システムの一部に何らかの障害が発生した場合に備えて、障害発生後でもシステム全体の機能を維持し続けられるように、予備装置を平常時からバックアップとして配置し運用しておくこと。冗長化によって得られる安全性は冗長性と呼ばれ、英語ではリダンダンシー(redundancy)と呼ぶ。
常に実用稼動が可能な状態を保ち、使用しているシステムに障害が生じたときに瞬時に切り替えることが可能な仕組みを持つ。障害によってシステムが本来の機能を失うと、人命や財産が失われたり、企業活動が大きな打撃を受けるような場合には、冗長性設計が必須となっている。
冗長化されたシステムは、大きく分けてデュアルシステムとデュプレックスシステムに分かれる。
デュアルシステムは、同じ処理を2組のコンピュータシステムで行い、その結果を照合機でクロスチェックし、処理の正しさを確認しながら処理を進行していくシステム構成。サーバー本体のみならず、電源やケーブル、データベースなど全てを二重化する。コンピュータ・システムにおいては、一瞬の停止も許されない、例えば金融機関や交通機関の運行管理などのシステムで冗長化を行うことが多く、システム内部に相似形のサブシステムを常に並列して稼動させておき、片側に障害が生じたときでも停滞なくもう片側だけで基本的なサービスが行えるように設計・運用されているのがデュアルシステムである。障害発生時には、問題のある側のシステムをメイン処理から切り離し、残された側のシステムのみで処理を続行しつつ、障害からの回復を図る。故障時の切り換えだけでなく処理結果の比較によって異常検出や多数決が行えるのも特徴。
デュプレックスシステムは、主系(稼働系ともいう)と副系(待機系ともいう)からなる2系列の処理システム構成で、さらに副系に関しては、ホットスタンバイとコールドスタンバイに分かれる。ホットスタンバイは、待機系をいつでも動作可能な状態で待機させておき、障害発生時に直ちに切り替える方式。コールドスタンバイは、通常時は稼働系でオンライン処理、待機系でバッチ処理を行いながら待機させるが、主系の障害発生時には、主系で行っていたオンライン処理を副系に引き継ぐことで処理を継続する。つまりそれぞれのサブシステムで互いに異なる処理を行う構成。コールドスタンバイは障害発生時まで電源を停止している場合もある。
クラスタシステムは、2つの用語があり、「高可用性クラスタシステム」、つまりフェイルオーバーができるデュプレックスシステムを指す場合と、複数台が同時に稼動して負荷分散しながら並列に処理をする「負荷分散クラスタシステム」を指す場合がある。この用語を使用する場合、どちらを指す言葉なのかを明確にするために、「クラスタシステム」という用語の前に、「高可用性」か「負荷分散」を付けて明確化する必要がある。後者の負荷分散クラスタシステムは、結果的に全体を1台の高性能のコンピュータであるかのように利用する。連携しているコンピュータのどれかに障害が発生した場合には、ほかのコンピュータに処理を肩代わりさせることで、システム全体として処理を停止させないようにしている。
また、特に重要なシステムでは、災害や広域障害などに備えて複数のシステムを例えば東京と大阪などのように離れた場所に設置するようになっている。
こういった冗長化は、サービスの継続性が高められるという点で有用であるが、多額の費用がかかることから、完全な冗長化が施せるシステムは費用対効果の面で限られる。一般の消費者向けや企業でも通常の事務処理で用いられるパソコンでは、瞬時の停止を避けるほどの冗長化を施すことは稀であり、ほとんど唯一、比較的脆弱とされるハードディスク・ドライブの故障だけは作成・保存されたファイルすべてが失われる危険性があるのでRAIDによって冗長化が行われることがある。
企業や政府が運用しているミッションクリティカルなコンピュータ・システムや、ネットワーク上でのサービスを提供している企業の大規模なサーバーファームやデータセンターでのストレージ・システムでは、本来の情報から特定の演算によって冗長なデータを作成しておき、障害によって本来の情報がわずかに失われても誤り検出訂正を可能にする工夫が行われている。
21世紀現在の一般的なデータ伝送では、伝送路が持つ物理的な制約の上限近くまで使い切るほどの高速大容量の伝送が求められるために、経済性の点でも誤り検出訂正は必須の技術となっている。伝送路自身の冗長性も、トランキングによって確保されたり、ネットワークの断裂に対しても各種のルーティング・プロトコルやQoS技術によって確保されている。
旅客機はエンジンを複数搭載しており、1基のエンジンが故障しても、他のエンジンだけで安全に着陸するまで飛行継続が可能なように、国際的な取り決めで規定されている。機体構造についても、部分的な損壊によって直ちに機体全体の崩壊とならない様、強度部材は冗長性を備える様に、意図的に複数に分かれて配置される設計が採用されている。
方向舵や昇降舵等の操舵翼の操作系についても、油圧系統を分割多重化しており、無線機や航法機器、飛行計器類も現代的な装置類を多重化した上で、旧式の飛行計器も残されている。電力系統や空気圧系統、燃料系統も多重化されている。2人以上乗組む航空機操縦者が機上で同じ機内食を食べないという点も、冗長化の一環といえる。
鉄道車両においては、特にブレーキの伝送系統を二重化し、一方の系統が使用不能になっても他方で制御ができるようなシステムが1960年代以降、各鉄道事業者で導入されている。駆動系についても、かつては電車のモーターの制御は、一部の系列を除き、主制御器1基あたり4 - 8個駆動が主流であったが、VVVFインバータ制御が普及すると、小型の制御器を多数配置して1制御装置あたりモーター1 - 2個駆動とし、1組の駆動系統が故障しても、これをスイッチなどでカット(解放)することで運転継続が可能にするとともに、編成全体に対する故障の影響を最小限に止めるシステムが用いられるようになった。
また、電化された鉄道では変電所を複数持ち、どこかの変電所が故障しても、他の変電所から電力を供給することによって一定レベルの運転を続けることができる。
英国で主にセラフィールド発着便として運転される放射性物質輸送列車において、冗長性確保の目的から重連運転が行われている。重連運転とは複数の機関車を連結して運転することであり、仮に1台の機関車が故障しても、別の機関車で引き続いて運転が可能となることで冗長性が保たれる。
日本では直流電気機関車が使われ始めた大正時代や昭和中期の交流電気機関車の草創期などに電気機関車の信頼性が低かったため、信頼性の高い蒸気機関車と重連運転を行う「電蒸運転」を行っていた。
ブレーキが前輪左と後輪右、前輪右と後輪左と独立した油圧システムで構成されていることがある。このため、片方の油圧システムに故障があっても停止が可能である。また、駐車ブレーキを走行中に動作させる事で減速させる事や、低いギアに入れてエンジンを抵抗にすることによりある程度の減速が出来る。
電力系統の機能停止は、電力供給を受けている需要家すべてに大きな被害を与えることになる。特に都市規模の広域停電(大規模停電)では、被害の規模は大きい。欧米域での送電会社や日本での電力会社などでは、送電網や配電網の事故を瞬時/短時間で切り離して、被害拡大を防ぎながら、送電網の事故点の迂回路を設けて被害を局限化するようにしている。このため送電線は同じルートで通常、2系統以上が並行して架設されている。
需要家側も、電力喪失に脆弱な電子機器には予期しない停電に備えて専用の無停電電源装置を備えたり、業務の継続が強く求められる部門では自家発電装置の導入が行われている。病院や空港での電力喪失事故は直接人命に関わるため、例えば日本の病院ではガスタービンやディーゼルエンジン式の発電機や蓄電池が設置されていて、一定時間は確実に電力が確保できるようにされている。
2001年に発生したアメリカ同時多発テロ事件で崩壊した世界貿易センターの崩壊プロセスを調査した結果、WTCの鉄筋構造システムは徹底した合理性と最適化を目指して設計されていたために、崩壊に対する冗長性をほとんど備えていなかった事が判明した。事件を契機として、建築構造モデルの方向性は最適化から冗長性の確保へとシフトした。
建築の世界で言う冗長性(リタンダンシー)の概念とは、構造解析やデザインにおいて単に安全率を高めることではなく、建築構造を成立させている多種多様な条件の相互関係を変数として把握し、可能な限り現実に近い変数を備えた合理的なモデルを構築することである。こうした建築情報の高度化に対応するためにBIMやAIなど、より高度な情報処理技術の導入が進んでいる。
異なる種類、異なる構造による冗長化を、異種冗長化あるいは多様化、多様性という。
これにより、同一の原因で全ての予備が一斉に停止してしまう可能性を下げることができ、より耐障害性が高まる。
例えば電車では電気ブレーキ・油圧ブレーキ・空圧ブレーキといった異なる種類のブレーキを組み合わせて利用している。