冗長化とは
冗長化(じょうちょうか)とは、システムに障害が発生したときに備えて、機器や回線、データなどの構成要素に「予備」を加えて二重以上に配置しておくことです。英語ではリダンダンシー(Redundancy)と呼びます。単一の部品が壊れただけでシステム全体が止まってしまうポイント(単一障害点)を無くすために行われます。冗長化しておくことで、ある部品が故障しても自動的または手動で予備の部品に切り替わり、サービス全体を止めることなく安全に稼働し続けることができます(フォールトトレランスの実現)。
具体例
最も身近な例は、長距離を走る車に搭載されている「スペアタイヤ」です。タイヤが1本パンクしても、スペアタイヤ(予備)があるため、その場で交換して走行を続けることができます。また、旅行の際に財布を2つに分けてお金を持っておくことも、紛失時のための冗長化の一種です。コンピュータネットワークでは、以下のようにルーターを二重にする構成がよく取られます。
[社内PC]
|
+---> [ルーターA (メイン)] ---> [インターネット]
|
+---> [ルーターB (予備)] ---> (ルーターAが壊れたら稼働)\nもう少し詳しく
冗長化(Redundancy)は、システムの信頼性や可用性を高めるための基本的な設計思想であり「システムを構成する各部品を多重化し、1箇所が壊れても全体が停止しないようにする」ことです。この「そこが壊れたらシステム全体が止まってしまう箇所」のことを「単一障害点(SPOF:Single Point of Failure)」と呼びます。冗長化設計とは、システム全体からSPOFをなくしていく作業と言えます。
ITシステムでは、様々なレイヤー(階層)で冗長化が行われます。
- ハードウェアの冗長化:サーバーの電源ユニットを2つ搭載したり、ネットワークケーブルを2本挿して通信経路を二重化(チーミングやボンディング)したりします。ディスクの冗長化は「RAID」によって実現されます。
- サーバーの冗長化:複数台のサーバーを並べて「クラスタリング」を構成し、1台が故障しても別のサーバーが処理を引き継ぐようにします。
- ネットワークの冗長化:ルーターやスイッチといった通信機器を二重化し、メインの経路が断線した場合にサブの経路へ迂回(ルーティング)させます。
- 拠点(サイト)の冗長化:地震や火災などの大規模災害に備え、東京と大阪のように遠隔地のデータセンターに全く同じシステムを構築します。これを「ディザスタリカバリ(DR:災害復旧)」と呼びます。
冗長化を行うことでシステムの停止時間は短くなりますが、機器が2倍以上必要になるため、コストも大きく跳ね上がります。そのため「システムが数時間止まっても許容される業務」と「1秒でも止まると甚大な損害が出る業務」とを見極め、コストと信頼性のバランス(トレードオフ)を取ることが設計上非常に重要となります。
試験でのポイント
基本情報技術者試験では、冗長化の目的が「単一障害点(SPOF)の排除」および「フォールトトレラント(障害が発生しても機能の一部を維持してシステムを止めない性質)の実現」であることが頻出します。
また、直列システムと並列システムの「稼働率の計算問題」として出題されることも多いです。機器を並列に配置する(冗長化する)ことで、全体の稼働率が向上するという数式表現(例:1 - (1 - 稼働率A) × (1 - 稼働率B))は確実に計算できるようにしておきましょう。
関連する用語
障害発生時にもシステムを停止させない フォールトトレランス や、システムが停止する致命的な弱点となる 単一障害点(SPOF)、システムが正常に機能し続ける能力を示す 可用性(アベイラビリティ) と一緒に学習してください。