負荷分散入門
本連載では、信頼性の高いシステムを構築する上で欠かせない要素となってきた負荷分散技術と負荷分散装置(ロードバランサ)について解説します。
これまでの連載
- 第1回 負荷分散の必要性
- 第2回 負荷分散装置の基本機能
- 第3回 リクエストの分散機能 (1/2)
- 第4回 リクエストの分散機能 (2/2)
- 第5回 コンテンツ単位の負荷分散機能
- 第6回 セッション維持機能
- 第7回 故障監視機能と自動切り離し機能
- 第8回 連続サービス機能
第2回 負荷分散装置の基本機能
負荷分散装置は、負荷分散技術を利用する手段の一つです。
サーバとは別の独立した装置で、負荷分散技術を提供するため、
- サーバの機種やオペレーションシステム、アプリケーションの種類に依存しない
- 従来のサーバを変更することなく、負荷分散装置の導入が可能
といった長所があります。
負荷分散装置は、次のような基本的な機能を持っています。
- リクエストの分散機能
- セッション維持機能 (一意性保証機能)
- 故障監視機能
- 連続サービス機能
今回は、これらの基本機能について説明します。
リクエストの分散機能
クライアントからのリクエストを最適なサーバに振り分ける機能は、負荷分散装置の最も基本的な機能です。
負荷分散装置は、クライアントからのリクエストを最適なサーバに振り分けます。
各サーバを効果的に使用し、システムの能力を最大限に活用するためには、リクエストを振り分ける「分散方式」が重要です。 分散方式は、サーバが提供するサービス(プロトコル)の特性に応じて、その方式を最適なものとする必要があります。 このため、負荷分散装置では、複数の分散方式を提供しています。
IPCOMでは、次の分散方式を提供しています。
- ラウンドロビン
各サーバに、順番にリクエストを振り分けます - 静的な重み付きラウンドロビン
各サーバに、あらかじめ設定された比率でリクエストを振り分けます - 最小コネクション数
処理中のコネクションが少ないサーバにリクエストを振り分けます - 最小クライアント数
接続中のクライアントが少ないサーバにリクエストを振り分けます - 最小データ通信量
処理中のデータ通信量が少ないサーバにリクエストを振り分けます - 最小応答時間
応答時間が短いサーバにリクエストを振り分けます - 最小サーバ負荷
CPU、メモリ、I/Oの利用率が低いサーバにリクエストを振り分けます - 最小FNA LU数
使用中のLUが少ないサーバにリクエストを振り分けます

図 1. リクエストの分散機能
セッション維持機能 (一意性保証機能)
セッション維持機能とは、クライアントから送られてくるリクエストの中で、関連のあるリクエストを同じサーバに振り分ける機能です。
利用者がWebサイトにアクセスしているとき、ブラウザは比較的短い時間で接続を切ってしまいます。 つまり、クライアントとサーバが常時接続されている訳ではありません。
このため、負荷分散装置を導入している場合、ブラウザが同じWebサイトにアクセスしても、毎回同じサーバに接続されると限りません。 これでも、情報を表示するだけの情報公開サイトなどであれば何の問題もありません。
しかし、クライアントからのリクエストが毎回異なるサーバに接続されると困る場合があります。 たとえは、ショッピングサイトでは購入する商品のリストを管理するために、ショッピングを始めてから決済がすむまで同じサーバに接続する必要があります。
この様な目的のために、負荷分散装置はセッション維持機能(一意性保証機能)を持っています。 この機能を使用すると、同じクライアントから指定時間内にリクエストが来た場合に、前回と同じサーバにリクエストを送ることが可能となります。
IPCOMでは、セッション維持機能として次のオプションを提供しています。
- ノード単位の分散
リクエストの送信元IPアドレスに基づいて、クライアントを識別します - cookie(クッキー)オプション
cookieに登録された情報に基づいて、クライアントを識別します - URLリライト・オプション
URLに埋め込まれた情報に基づいて、クライアントを識別します - HTTP認証ヘッダー・オプション
HTTPリクエストヘッダーの認証情報に基づいて、クライアントを識別します - SSLセッションID・オプション
SSLセッションIDに基づいて、クライアントを識別します

図 2. セッション維持機能
故障監視機能
故障監視機能は、Webサイトのアベイラビリティ(可用性)を高めるために欠かせない機能です。
負荷分散装置は接続しているサーバの運用状況を定期的に診断し(故障監視機能)、故障しているサーバがあれば、負荷分散の対象から自動的に除外します(自動切り離し機能)。 この様に、負荷分散装置がサーバの状態を監視する事で、利用者からのリクエストは常に正常なサーバで処理されます。
サーバの診断を正しく行うには、サーバの監視方式と診断間隔を適切に選ぶ必要があります。
IPCOMでは、次の故障監視方式を提供しています。
- 装置監視
各サーバに対してPINGを送信し、その応答で故障を判断します - サービス監視
各サーバのTCPポートおよびUDPポートにリクエストを送信し、その応答で故障を判断します - アプリケーション監視
各サーバのアプリケーションにリクエストを送信し、その応答で故障を判断します - 負荷計測エージェントによる監視
各サーバの負荷計測エージェントから送られるパケットの有無で故障を判断します - バックLAN 監視
負荷分散装置に直接接続していないLANインターフェースを、SNMPで監視します

図 3. 故障監視機能と自動切り離し機能
連続サービス機能
連続サービス機能は、サービスを停止することなく、サーバの増設、保守、修理を可能にします。
システムの能力拡張のためにサーバを増設したとき、設定(ポリシー)を変更するだけで、 サービスを停止することなく、増設したサーバを分散対象サーバとして組み込むことができます(無停止増設)。
サーバの保守や修理が必要になったときは、オペレーターは負荷分散装置にサーバの使用を停止するよう指示します。 負荷分散装置は、指示されたサーバを負荷分散の対象から外し、新たにリクエストを送信しなくなります。 これで、そのサーバは保守や修理ができる状態になります(シャットダウン制御)。
サーバを再びシステムに組み込むには、オペレーターが負荷分散装置にサーバの使用再開を指示します。 負荷分散装置はそのサーバを負荷分散の対象に組み込み、リクエストの送信を再開します。

図 4. 連続サービス機能
これまでの連載
- 第1回 負荷分散の必要性
- 第2回 負荷分散装置の基本機能
- 第3回 リクエストの分散機能 (1/2)
- 第4回 リクエストの分散機能 (2/2)
- 第5回 コンテンツ単位の負荷分散機能
- 第6回 セッション維持機能
- 第7回 故障監視機能と自動切り離し機能
- 第8回 連続サービス機能
負荷分散装置(IPCOM)のラインナップ
負荷分散装置 IPCOMシリーズは、システムに合わせて搭載機能を追加し、段階的な統合を可能にすることにより、常にシステムに最適なネットワーク環境を実現します。