LVSの概要
LVS(Linux Virtual Server)は、Linux Virtual Server Projectというプロジェクトが開発した機能で、Linux上でLayer 4の負荷分散装置と同様の機能を実現します。LVSは、最近ではLinuxカーネルに組み込まれていますので、ほとんどのLinuxディストリビューションで使用することができます。LVSでは次のような機能を提供します。
- サービス用のIPアドレスに届いたパケットを必要に応じて、別のサーバに転送します。
- 転送先として複数のサーバを指定することができます。
- パケットの転送では、各サーバに均等に分散することも、重み付けをして分散することもできます。
LVSを使うと、複数台の実サーバを組み合わせて、あたかも一つのサーバでサービスしているかのように見せることができます。
ldirectord
Linuxカーネルの提供するLVSでは、パケットを分散する機能だけを提供します。しかし、次のような理由で必ずしも使いやすいとはいえません。
- 設定は、
ipvsadm
というコマンドで行いますが、比較的複雑な書式で設定を行わなければなりません。 - LVSでは実サーバの稼動状態を監視しないため、サーバが停止していてもパケットを転送しようとします。
この問題を解決するために使われるのがldirecotrdです。ldirectordは、heartbeatに付属している負荷分散システムを管理するためのツールです。ldirectordでは、様々なプロトコルの稼動状況を監視し、必要に応じてサーバを追加、削除する機能を提供します。また、ldirectordを使えばipvsadmを使った複雑な設定を行わなくても比較的容易に負荷分散機能を構築することができます。