Show Table of Contents
第3章 Keepalived のロードバランサー要件の設定
keepalived を使用するロードバランサーは、LVS ルーターと実サーバーの 2 つの基本グループで構成されます。単一障害点を回避するため、各グループに 2 つ以上のメンバーが含まれるようにしてください。
LVS ルーターグループは、Red Hat Enterprise Linux を実行している同一または非常に似ている 2 つのシステムで構成する必要があります。そのうちの 1 つはアクティブ LVS ルーターとして機能し、もう 1 つはホットスタンバイモードで待機するので、この 2 つができるだけ同じ機能を備えている必要があります。
実際のサーバーグループのハードウェアを選択および設定する前に、3 つのロードバランサートポロジーのどれを使用するかを決定します。
3.1. NAT ロードバランサーネットワーク
NAT トポロジーを使用すると、既存のハードウェアを柔軟に活用できますが、プールから送受信されるすべてのパケットはロードバランサールーターを通過するため、大量の負荷を処理する機能が制限されます。
- ネットワークレイアウト
- NAT ルーティングを使用するロードバランサーのトポロジーは、パブリックネットワークへのアクセスポイントが 1 つのみ必要なため、ネットワークレイアウトの観点から見ると最も設定が簡単です。実サーバーはプライベートネットワーク上にあり、LVS ルーター経由ですべての要求を返します。
- ハードウェア
- NAT トポロジーでは、実サーバーは LVS ルーターのみに応答するため、実サーバーごとに 1 つの NIC のみが必要になります。一方で LVS ルーターは 2 つのネットワークの間でトラフィックを送信するため、NIC が 2 つずつ必要になります。このトポロジーでは LVS ルーターの部分がネットワークのボトルネックとなるため、ギガビットイーサネット NIC を LVS ルーターで使うことで、LVS ルーターが処理可能な帯域幅を拡げることができます。ギガビットイーサネットを LVS ルーターで使用する場合は、実サーバーを LVS ルーターに接続しているスイッチは、負荷を効率的に処理するために少なくとも 2 つのギガビットイーサネットポートが必要になります。
- ソフトウェア
- NAT トポロジーでは、設定によっては
iptablesを使用する必要があるため、Keepalived 外部で多くのソフトウェアを設定する場合があります。特に、FTP サービスやファイアウォールマークを使用する場合は、要求を適切にルーティングするために LVS ルーターを追加で手動設定する必要があります。
3.1.1. NAT を使用するロードバランサーのネットワークインターフェース設定
NAT を使用するロードバランサーを設定するには、最初に LVS ルーターのパブリックネットワークとプライベートネットワークのネットワークインターフェースを設定する必要があります。この例では、LVSルーターのパブリックインターフェース (
eth0) を 192.168.26/24 ネットワークに設定し (これはルーティング可能な IP ではありませんが、LVS ルーターの前にファイアウォールがあることを仮定します)、実サーバーにリンクするプライベートインターフェース (eth1) を 10.11.12/24 ネットワークに設定します。
重要
本書の執筆時点では
NetworkManager サービスはロードバランサーに対応していません。IPv6 アドレスが SLAAC に割り当てられた場合、IPv6 VIP は動作しないことが判明しています。そのため、この例では設定ファイルと network サービスを使用します。
アクティブもしくは プライマリー LVS ルーターノードでは、パブリックインターフェースのネットワーク設定ファイルである
/etc/sysconfig/network-scripts/ifcfg-eth0 は以下のようになります。
DEVICE=eth0 BOOTPROTO=static ONBOOT=yes IPADDR=192.168.26.9 NETMASK=255.255.255.0 GATEWAY=192.168.26.254
LVS ルーター上のプライベート NAT インターフェースの
/etc/sysconfig/network-scripts/ifcfg-eth1 設定ファイルは、以下のようになります。
DEVICE=eth1 BOOTPROTO=static ONBOOT=yes IPADDR=10.11.12.9 NETMASK=255.255.255.0
この例では、LVS ルーターのパブリックインターフェースの VIP は 192.168.26.10 となり、NAT もしくはプライベートインターフェースの VIP は 10.11.12.10 となります。実サーバーが要求を NAT インターフェースの VIP に返送することが重要になります。
重要
本項のイーサネットインターフェース設定の例は、LVS ルーターのリアル IP アドレス向けの例で、フローティング IP アドレス向けの例ではありません。
プライマリー LVS ルーターノードのネットワークインターフェースを設定した後、バックアップ LVS ルーターの実ネットワークインターフェースを設定します。IP アドレスがネットワーク上の他の IP アドレスと競合しないように注意してください。
重要
バックアップノード上の各インターフェースが、プライマリーノード上のインターフェースと同じネットワークに対応するようにしてください。たとえば、eth0 がプライマリーノード上でパブリックネットワークに接続する場合、バックアップノードでもパブリックネットワークに接続するようにする必要があります。
3.1.2. 実サーバー上でのルーティング
NAT トポロジーで実サーバーネットワークインターフェースを設定する場合に最も重要なのは、LVS ルーターの NAT フローティング IP アドレス用にゲートウェイを設定することです。この例では、ゲートウェイのアドレスは 10.11.12.10 となります。
注記
実サーバー上でのネットワークインターフェース設定が完了すると、マシンは他の方法でパブリックネットワークに ping したり接続したりすることができなくなります。これは正常なことです。しかし、LVS ルーターのプライベートインターフェースの実 IP (この場合は 10.11.12.9) に ping することはできます。
実サーバーの
/etc/sysconfig/network-scripts/ifcfg-eth0 設定ファイルは以下のようになります。
DEVICE=eth0 ONBOOT=yes BOOTPROTO=static IPADDR=10.11.12.1 NETMASK=255.255.255.0 GATEWAY=10.11.12.10
警告
GATEWAY= 行で実サーバーに複数のネットワークインターフェースが設定されている場合、最初に起動したネットワークインターフェースがゲートウェイを取得します。そのため、eth0 と eth1 の両方が設定され、eth1 がロードバランサーに使用されている場合、実サーバーは要求を適当にルーティングしないことがあります。
/etc/sysconfig/network-scripts/ ディレクトリー内のネットワーク設定ファイルで ONBOOT=no と設定するか、最初に表示されるインターフェースでゲートウェイを適切に設定して、外部のネットワークインターフェースをオフにすることが推奨されます。
3.1.3. LVS ルーターでの NAT ルーティングの有効化
クラスター化されたサービスが 1 つのポート (例: ポート 80 の HTTP) のみを使用する簡単な NAT ロードバランサー設定の場合、LVS ルーター上でパケット転送のみを有効にすれば実サーバーとその外部との間で適切に要求をルーティングできます。しかし、ユーザーセッション中に同じ実サーバーに移動するため、クラスター化されたサービスが複数のポートを必要とする場合は、他の設定が必要になります。
LVS ルーターで転送が有効になり、実サーバーが設定され、クラスター化されたサービスが稼働したら、
keepalived を使用して IP の情報を設定します。
警告
手作業でネットワーク設定ファイルを編集したり、ネットワーク設定ツールを使用したりして
eth0 または eth1 のフローティング IP を設定しないでください。必ず keepalived.conf ファイルで設定してください。
設定が終了したら、
keepalived サービスを開始します。サービスの稼働後、アクティブ LVS ルーターは要求を実サーバーのプールへルーティングします。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.