HA構成(サービスを止めない技術)


HA構成(二重化)とは、あるサービスを実現するサーバに、同じ機能を持つ予備のサーバを待機させて、普段稼動しているサーバ(ACT系といいます)がダウンしたとき、速やかに待機系(SBY系などといいます)にサービスを切り替えることで、サービスを継続させる構成のことをいいます。

HA構成を組むためには、OS以外にHAを管理するためのミドルウェアを用います。

OS毎にいろいろなミドルウェア(クラスタリングソフト)があります。詳しくはwikipediaの密結合クラスターのページを見てください。Linuxでは商用ではCrusterPro,オープンソースではkeepalived,HP-UXではService Guardなどが有名です。

HA構成の場合、ACT系とSBY系で、以下のリソースを共有します。

  • 共有データ(たいていはSANまたはSCSIのディスクアレイ)
  • IPアドレス(リロケータブルIPといいます)
  • 実行されるアプリケーション

クラスタリングソフトは、これらのリソースを、普段はACT系で動作させ、ACT系がダウンしたときには、SBY系に引き継がせます。たいてい、SBY系からACT系にポーリングをかけてACT系が動作を停止させたらSBY系がアプリケーションを立ち上げる動きをします。

このときの問題点として、たとえばACT系とSBY系のネットワークが途絶えたときにまちがってACT系とSBY系が同時にアクティブになってしまい、リソースの競合を起こしてしまうことがあります(スプリットブレインシンドロームといいます)。これを防ぐために、SCSIのロック機構やクォーラムサーバを用いた排他制御機構が設けられています。

また、二重化されているからといってもまったくサービスが止まらないわけではなく、系が切り替わるのに数秒から数分の時間がかかるためその間サービス停止になるので設計上注意が必要です。

HA構成はロードバランスによるN+1構成を組みづらいバックエンドのデータベースやネットワーク機器などによく用いられます。ネットワーク機器の場合、L2SWではSTP、L3SWではVRRPという冗長化のためのプロトコルが用いられ、ネットワーク的に冗長化されます。

また、HA構成は二重化に限らず、3+1や5+1などN台のACT系に対して1台のSBY系といった構成をとることもできます。

最近では仮想化技術を用いて、SBY系を仮想化することで物理サーバの台数を節約している例もあるようです。

HA構成をとらなければならない機器はシステム上重要な役割を担うものが多いので、設計や検証には細心の注意が必要です。

関連する投稿



Leave a Reply