障害許容性 (ショウガイキョウヨウセイ) とは | 意味や読み方など丁寧でわかりやすい用語解説

作成日: 更新日:

障害許容性 (ショウガイキョウヨウセイ) の読み方

日本語表記

障害許容性 (ショウガイキョウヨウセイ)

英語表記

fault tolerance (フォールトトレランス)

障害許容性 (ショウガイキョウヨウセイ) の意味や用語解説

障害許容性とは、情報システムを構成する部品やコンポーネントの一部に障害が発生しても、システム全体が停止することなく機能やサービスを提供し続けられる能力のことである。英語ではフォールトトレランスと呼ばれ、現代のITシステムにおいて極めて重要な概念の一つである。社会インフラや企業の基幹業務を支えるシステムは、たとえわずかな時間であっても停止することが許されない場合が多い。そのようなシステムにおいて、予期せぬハードウェアの故障やソフトウェアの不具合が発生した際に、利用者に影響を与えることなく稼働を継続させるための設計思想や技術の総称が障害許容性である。類似する概念に高可用性があるが、両者は厳密には異なる。高可用性が障害発生から復旧までの時間を極めて短くし、システムの停止時間を最小限に抑えることを目的とするのに対し、障害許容性は障害発生の瞬間においてもサービスを停止させない、無停止での運用を目指す点に特徴がある。 障害許容性を実現するための最も基本的な考え方は冗長化である。冗長化とは、同じ機能を持つコンポーネントを複数用意し、一つが故障しても他の予備のコンポーネントが処理を引き継ぐことで、システム全体の機能を維持する手法である。この冗長化は、ハードウェア、ソフトウェア、データ、ネットワークなど、システムのあらゆる階層で適用される。 ハードウェアの冗長化の代表的な例として、サーバーの電源ユニットの二重化が挙げられる。サーバーに二つの電源ユニットを搭載し、それぞれを異なる電力系統に接続することで、片方の電源ユニットが故障したり、片方の電力系統で停電が発生したりしても、もう一方の電源でサーバーの稼働を継続できる。また、データを保存するストレージにおいては、RAIDと呼ばれる技術が広く用いられる。RAIDは複数のハードディスクを組み合わせて一つの論理的なディスクとして扱う技術であり、特定の構成では一部のディスクが故障してもデータの損失を防ぎ、システムを停止させることなくディスクの交換が可能である。ネットワークにおいても、通信経路を複数確保するネットワークカードのチーミングや、ネットワーク機器の二重化が行われる。 サーバー自体の冗長化も重要である。複数のサーバーを連携させて一つのシステムとして動作させるクラスタリングという技術が用いられる。このクラスタ構成にはいくつかの方式がある。一つはアクティブ-スタンバイ構成で、通常は主系となるサーバーが処理を行い、待機系のサーバーは主系に障害が発生するのに備えて待機する。障害を検知すると、待機系が処理を引き継ぐフェイルオーバーという動作が自動的に行われる。もう一つはアクティブ-アクティブ構成であり、複数のサーバーがすべて稼働状態で、負荷を分散しながら並行して処理を行う。この方式では、一台のサーバーが故障しても、残りのサーバーが処理を継続するため、性能は低下するもののサービスが停止することはない。さらに、極めて高い信頼性が求められるシステムではロックステップ方式が採用されることがある。これは、複数のシステムで全く同じ処理を完全に同期させて実行し、その結果を常に比較照合する方式である。いずれかのシステムで異常な結果が検出された場合、そのシステムを切り離し、正常なシステムの処理を継続させることで、処理の正しさを保証する。 データの保護という観点では、レプリケーションが重要な役割を果たす。これは、データベースなどのデータをリアルタイムで別のシステムに複製する技術である。主系のシステムに障害が発生しても、複製先のデータを用いてサービスを迅速に再開できる。 障害許容性は、障害を速やかに検知する仕組みとセットで機能する。システムやコンポーネントが正常に動作しているかを定期的に監視するヘルスチェックが常に行われ、異常を検知した際には、前述したフェイルオーバーのような切り替え処理が自動的に実行される。この障害の検知から切り替えまでの一連のプロセスが自動化されていることが、サービスを無停止で提供するための鍵となる。 以上のように、障害許容性は単一の技術を指すのではなく、システムの停止というリスクを回避するために、冗長化、障害検知、自動切り替えといった様々な技術や仕組みを適切に組み合わせて実現される総合的な設計思想である。どのようなシステムに、どの程度の障害許容性を持たせるかは、そのシステムの重要度、求められるサービスレベル、そして実装にかかるコストを総合的に勘案して決定される。システムエンジニアは、担当するシステムの特性を深く理解し、適切な障害許容性を設計・実装する能力が求められる。

障害許容性 (ショウガイキョウヨウセイ) とは | 意味や読み方など丁寧でわかりやすい用語解説