Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第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) を 203.0.113.0/24 ネットワークに設定し、実サーバーにリンクするプライベートインターフェイス (eth1) を 10.11.12.0/24 ネットワークに設定します。
重要
このドキュメントの執筆時点では NetworkManager サービスはロードバランサーに対応していません。IPv6 アドレスが SLAAC に割り当てられた場合、IPv6 VIP は動作しないことが判明しています。そのため、この例では設定ファイルと network サービスを使用します。
アクティブもしくは プライマリー LVS ルーターノードでは、パブリックインターフェイスのネットワーク設定ファイルである /etc/sysconfig/network-scripts/ifcfg-eth0 は以下のようになります。
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
IPADDR=203.0.113.9
NETMASK=255.255.255.0
GATEWAY=203.0.113.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
仮想 IP アドレスは静的アドレスとは異なりますが、同じ範囲内である必要があります。この例では、LVS ルーターのパブリックインターフェイスの仮想 IP アドレスは 203.0.113.10 に設定でき、プライベートインターフェイスの仮想 IP アドレスは 10.11.12.10 に設定できます。仮想 IP アドレスは、/etc/keepalived/keepalived.conf ファイルの virtual_ipaddress オプションによって設定されます。詳細は、「基本的な Keepalived の設定」 を参照してください。
また、実サーバーが要求を NAT インターフェイスの仮想 IP アドレスにルーティングして返すことも確認します。
重要
本項のイーサネットインターフェイス設定の例は、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= 行で実サーバーに複数のネットワークインターフェイスが設定されている場合、最初に起動したネットワークインターフェイスがゲートウェイを取得します。そのため、eth0eth1 の両方が設定され、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 ルーターは要求を実サーバーのプールへルーティングします。