負荷分散入門
本連載では、信頼性の高いシステムを構築する上で欠かせない要素となってきた負荷分散技術と負荷分散装置(ロードバランサ)について解説します。
これまでの連載
- 第1回 負荷分散の必要性
- 第2回 負荷分散装置の基本機能
- 第3回 リクエストの分散機能 (1/2)
- 第4回 リクエストの分散機能 (2/2)
- 第5回 コンテンツ単位の負荷分散機能
- 第6回 セッション維持機能
- 第7回 故障監視機能と自動切り離し機能
- 第8回 連続サービス機能
第7回 故障監視機能と自動切り離し機能
第1回で説明したように、負荷分散装置を使用する目的の一つは アベイラビリティ(可用性)を高める事です。
負荷分散装置は、接続しているサーバの運用状況を定期的に診断し( 故障監視機能)、故障しているサーバがあれば、負荷分散の対象から自動的に除外します( 自動切り離し機能)。
この様に、負荷分散装置がサーバの状態を監視する事で、利用者からのリクエストは常に正常なサーバで処理されます。
図 1. 故障監視機能と自動切り離し機能
IPCOMでは、以下の5つの故障監視方式を提供しています。
- 装置監視
- サービス監視
- アプリケーション監視
- バックLAN監視
- 負荷計測エージェント監視
また、自動切り離し機能のオプションとして、以下の機能を提供しています。
- コネクション・リセット
- セッション・リカバリー
- 自動組み込み機能
今回は、これらの機能について説明します。
故障監視機能
アベイラビリティ(可用性)を高めるためには、サーバの故障をすばやく、正確に検出する必要かあります。 このために、複数のサーバ監視方式が用意されています。
装置監視
「 装置監視機能」は、サーバまでのLANが正常か、サーバが正常に起動しているかを監視します。
分散対象の各サーバに対して、指定された間隔でPINGを送信し、その応答の有無によってサーバの故障を監視します。
PINGによる診断を行うので、「 レイヤー3レベル (L3) ヘルスチェック」とも呼びます。
図 2. 装置監視
サービス監視
「 サービス監視機能」は、サーバ上のアプリケーションが起動しているかを監視します。
分散対象の各サーバのアプリケーションのTCPポートおよびUDPポートにリクエストを送信し、その応答の有無によってアプリケーションの動作状況を監視します。
TCP/UDPプロトコルによる診断を行うので、「 レイヤー4レベル (L4) ヘルスチェック」とも呼びます。
図 3. サービス監視
アプリケーション監視
「 アプリケーション監視」は、サーバのアプリケーションが正常に動作しているかを監視します。
分散対象の各サーバのアプリケーションに対して、アプリケーションレベルのリクエスト(コマンド)を送信し、その応答を監視することでアプリケーションの動作状況を監視します。
IPCOMは、以下のアプリケーションに対する監視をサポートしています。
HTTP、FTP、SMTP、POP3、IMAP4、NNTP、TELNET、LDAP、DNS、RTSP、SIP、RADIUS、SSL
アプリケーション・プロトコルによる診断を行うので、「 レイヤー7レベル (L7) ヘルスチェック」とも呼びます。
図 4. アプリケーション監視
バックLAN監視
図 5のように、Webサーバとアプリケーションサーバを分けて、システムを構築することがあります。
この様な構成では、Webサーバとアプリケーションサーバの間のネットワークに障害が発生すると、Webサーバが正常でもサービスを継続できなくなります。 しかし、これまでに説明した3つの故障監視方式(装置監視、サービス監視、アプリケーション監視)では、この様な故障を検出することはできません。
「 バックLAN監視機能」は、IPCOMに直接接続されていないネットワークの状態を監視する事ができます。
アプリケーションサーバと接続されているWebサーバのLANインターフェースに対して、SNMP GETリクエストを発行し、その応答を監視することでLANインターフェースの状況を監視します。
図 5. バックLAN監視
負荷計測エージェント監視
分散方式に 最小サーバ負荷方式を使用する場合には、分散対象の各サーバに 負荷計測エージェントをインストールします。最小サーバ負荷方式では、負荷計測エージェントによって各サーバの負荷状況を監視するので、負荷計測エージェントが正常に動作している必要があります。
「 負荷計測エージェント監視」は、各サーバの負荷計測エージェントが正常に起動しているかを監視します。
各サーバの負荷計測エージェントが負荷分散装置に送ってくるパケットを監視し、その有無によってサーバの故障を監視します。
図 6. 負荷計測エージェント監視
自動切り離し機能
負荷分散装置は、分散対象サーバの動作状況をリアルタイムに監視し、異常を検出すると「 自動切り離し機能」により、故障したサーバを分散対象から除外します。
しかし、サーバの故障を検出する前にそのサーバに送られたリクエストは、正常に処理されていないかも知れません。
負荷分散装置は、サーバに振り分けたリクエストとその応答を管理し、サーバの故障を検出した時には、処理中のリクエストを適切に処理して、クライアントへの影響を最小限に止めます。 IPCOMでは、この目的のために、 コネクション・リセット機能と セッション・リカバリー機能を提供しています。
また、IPCOMでは、故障したサーバが復旧した時に、復旧したサーバを自動的に復帰させる機能も提供しています。( 自動組み込み機能)
コネクションリセット機能
通信を行っている最中になんらかの原因でサーバがダウンした場合、クライアントは何度かデータの再送信を試みます。 その結果、通信ができなければ通信異常と認識しますが、それには1分程度の時間がかかります。
一方、IPCOMは、故障監視機能により短時間でサーバの異常を検出できます。
「 コネクションリセット機能」は、IPCOMがサーバの異常を認識したときに、これをクライアントに通知する機能です。
IPCOMは、サーバの異常が発生したことを検出すると、TCPコネクションをリセットして、クライアントにサーバの異常を通知します。
この機能を利用することで、クライアントは、短時間で通信の異常を検出し、すばやく業務を再開することができます。
図 7. コネクションリセット機能
セッション・リカバリー機能
故障監視機能は、分散対象サーバの動作状況をリアルタイムに監視し、異常を検出すると分散対象から除外します。
しかし、指定された間隔で診断を行うため、直前の診断が終了してから次の診断時間までの間にサーバで異常が発生すると、次の診断で故障を検出するまでは、リクエストが故障したサーバに転送してしまう可能性があります。
「 セッション・リカバリー機能」は、エラーしたリクエストをIPCOM自身でリトライして、サーバの故障をクライアントから隠蔽する機能です。
クライアントが接続要求をリトライする回数を監視し、一定回数リトライしてもサーバが応答しない場合には、サーバ異常と判断し、別の正常なサーバにリクエストを再送信します。
さらに、HTTPプロトコル(Web)では、HTTP応答に含まれるステータスコードを検査し、エラーを検出すると、別の正常なサーバに再送信します。
故障監視機能とセッション・リカバリー機能を組み合わせて利用することで、サーバの内部異常やコンテンツ異常などの予期しない異常を早期に検出し、別の正常なサーバに転送することができます。
図 8. セッション・リカバリー機能
自動組み込み機能
「 自動組み込み機能」は、修理が完了して機能が回復したサーバを、自動的に分散対象に復帰させる機能です。
IPCOMは、故障して分散対象から外したサーバについても、定期的に診断を行います。 そして、機能が正常と判断した時には、そのサーバを再び分散対象に組み込みます。
図 9. 自動組み込み機能
これまでの連載
- 第1回 負荷分散の必要性
- 第2回 負荷分散装置の基本機能
- 第3回 リクエストの分散機能 (1/2)
- 第4回 リクエストの分散機能 (2/2)
- 第5回 コンテンツ単位の負荷分散機能
- 第6回 セッション維持機能
- 第7回 故障監視機能と自動切り離し機能
- 第8回 連続サービス機能
負荷分散装置(IPCOM)のラインナップ
負荷分散装置 IPCOMシリーズは、システムに合わせて搭載機能を追加し、段階的な統合を可能にすることにより、常にシステムに最適なネットワーク環境を実現します。