| ITエンジニアであれば、思わぬことが原因でシステムがいとも簡単に止まってしまうことを経験的に知っているだろう。ソフトウェアのバグはもちろんのこと、ディスク障害などのハードウェアの不具合、単純なオペレーションミス、バージョンアップによる挙動の変化、ユーザの予想もつかない操作など、システム・トラブルのタネはいつもどこかに潜んでいる。そのすべてをあらかじめ予測することは不可能だ。となると、高可用性を実現するもっとも確実な手段は、「トラブルが起きたとき、なるべく短い時間でシステムをリカバリ(復旧)すること」だろう。
図1は、おもなリカバリの手段とその所要時間を比較したものである。
 |
 |
| 図1:リカバリの手段と所要時間 |
もっとも簡単で安上がりな方法は、データやアプリケーションを定期的にバックアップすることだろう。いざトラブルが発生したときは、バックアップを用いてデータやアプリケーションを元の状態に回復し、システムを再起動させる。また、データベースおよびファイルシステムのミラーリングやジャーナリングを利用すれば、より短時間でリカバリが可能になる。とはいえ、これらの方法によるリカバリ作業は影響範囲やデータ量に応じて数10分から数時間に及んでしまい、可用性が高いとは言い難い。また、メンテナンスやバージョンアップのための計画的なシステム停止も避けられない。
一方、はじめから複数セットのシステムを用意しておき、トラブル時やメンテナンス時にそれらをすばやく切り替えるというアプローチもある。それが、HAクラスタ(ホットスタンバイ)やフォールトトレラント・システムである。HAクラスタとは、その名が示すとおり、高可用性(High
Availability)を得るために構成されたクラスタである。具体的には、OSが起動した状態のスタンバイ・ノード(予備機)を常に待機させておき、プライマリ・ノード(本番機)の停止時には自動でフェイルオーバ(切り替え)を行う。これにより、数秒〜数10秒でのリカバリが可能になる。さらにフォールトトレラント・システムでは、この時間をゼロに近づけるために、各システムがまったく同じ処理を並行して実行するという特殊なアーキテクチャが利用される。ただし、きわめて高コストなハードウェアが必要なため、導入できる用途は特殊なアプリケーションに限られてしまう。
結局のところ、昨今のユーザが求める高可用性を実現する手段としては、HAクラスタがもっとも現実的な選択肢といえるだろう。 |