ロードバランサーの管理
Red Hat Enterprise Linux 向け Load Balancer Add-On
エディッション 6
概要
はじめに
- 『Red Hat Enterprise Linux インストールガイド』 — Red Hat Enterprise Linux 6 のインストールに関する情報を提供しています。
- 『Red Hat Enterprise Linux 導入ガイド』 — Red Hat Enterprise Linux 6 の導入、設定、管理に関する情報を提供しています。
- 『Red Hat Cluster Suite の概要』 — High Availability アドオン、 Resilient Storage アドオン、 Load Balancer Add-Onに関する高レベルでの概要です。
- 『High Availability アドオンの設定と管理』 は、Red Hat Enterprise Linux 6 向けの High Availability アドオン (別名: Red Hat Cluster) の設定と管理について説明しています。
- 『論理ボリュームマネージャの管理』 — 論理ボリュームマネージャ (LVM) について説明しており、クラスター化された環境における LVM の実行に関する情報が含まれます。
- 『Global File System 2: 設定と管理』 — Red Hat Resilient Storage アドオン (別名: Red Hat Global File System 2) のインストール、設定、および保守に関する情報を提供しています。
- 『DM Multipath』 — Red Hat Enterprise Linux 6 のデバイスマッパーマルチパスの機能の使用法に関する情報を提供します。
- 『リリースノート』 — Red Hat 製品の現在のリリースに関する情報を提供します。
1. フィードバック リンクのコピーリンクがクリップボードにコピーされました!
第1章 Load Balancer Add-On の概要 リンクのコピーリンクがクリップボードにコピーされました!
注記
- 複数の実サーバー全体の負荷分散
- それぞれの実サーバー上にあるサービスの整合性チェック
1.1. Load Balancer Add-On の基本的な設定 リンクのコピーリンクがクリップボードにコピーされました!
図1.1 Load Balancer Add-On の基本的な設定
eth0:1
にエイリアスすることができます。または、各仮想サーバーをサービスごと異なるデバイスに関連付けることもできます。例えば、HTTP トラフィックは eth0:1
で FTP トラフィックは eth0:2
でそれぞれ処理することができます。
1.1.1. 実サーバー間でのデータの複製とデータの共有 リンクのコピーリンクがクリップボードにコピーされました!
- 実サーバープール全体でデータを同期する
- 共有データにアクセスするるための第三層をトポロジーに追加する
1.1.1.1. データを同期するよう実サーバーを設定する リンクのコピーリンクがクリップボードにコピーされました!
rsync
などのプログラムを使って全ノードを対象として変更が加えられたデータの複製を一定の間隔で作成することもできます。
1.2. Load Balancer Add-Onの三層構成 リンクのコピーリンクがクリップボードにコピーされました!
図1.2 Load Balancer Add-Onの三層構成
1.3. Load Balancer Add-On スケジューリング機能の概要 リンクのコピーリンクがクリップボードにコピーされました!
1.3.1. スケジューリングのアルゴリズム リンクのコピーリンクがクリップボードにコピーされました!
- Round-Robin Scheduling
- 要求を順番に実サーバーのプールに振り分けます。このアルゴリズムを使うと、処理能力や負荷に関係なくすべての実サーバーが平等に扱われます。このモデルはラウンドロビン DNS に似ていますが、ホストベースではなくネットワーク接続をベースにするためより細かな調整が可能です。また、Load Balancer Add-On のラウンドロビンスケジューリングはキャッシュされた DNS クエリーが原因で負荷分散が偏ることもありません。
- Weighted Round-Robin Scheduling
- 要求を順番に実サーバーのプールに振り分けますが、より処理能力の高いサーバーに対して多くのジョブを振り分けます。処理能力はユーザーが割り当てた重み要素で示され、動的な負荷情報で上方修正または下方修正されます。実サーバーに重みを付ける方法については 「サーバーの重み付けとスケジューリング」 を参照してください。プール内の実サーバー間で処理能力に大幅な違いがある場合は、重み付きラウンドロビンスケジューリングが適しています。ただし、要求負荷が大きく変化する場合は、重みの大きいサーバーが割り当て以上の要求に応じる可能性があります。
- Least-Connection
- 実際の接続が少ない実サーバーにより多くの要求を振り分けます。IPVS テーブルで実サーバーへのライブ接続を継続的に追跡するため、Least-Connection は動的なスケジューリングアルゴリズムになります。要求負荷の変化が大きい場合に適しています。このアルゴリズムは各メンバーノードの処理能力がほぼ同じで大差がないような実サーバープールに最適です。サーバーグループの処理能力が異なる場合は weighted least-connection スケジューリングの方が適しています。
- Weighted Least-Connections (デフォルト)
- 処理能力に対して相対的に実際の接続が少ないサーバーにより多くの要求を振り分けます。処理能力はユーザーが割り当てた重み要素で示され、動的な負荷情報で上方修正または下方修正されます。実サーバーのプールに異なる処理能力のハードウェアがある場合には、重みを付けることで理想的なアルゴリズムになります。実サーバーへの重みの付け方については 「サーバーの重み付けとスケジューリング」 を参照してください。
- Locality-Based Least-Connection Scheduling
- 接続先 IP に対して相対的に実際の接続が少ないサーバーにより多くの要求を振り分けます。プロキシキャッシュサーバーのクラスターでの使用を目的として設計されています。任意の IP アドレスのパケットをその IP アドレスのサーバーに送信します。ただし、そのサーバーの負荷がその処理能力を超えている一方、別のサーバーの負荷は処理能力の半分に留まっている場合は、IP アドレスを負荷の一番少ない実サーバーに割り当てます。
- Locality-Based Least-Connection Scheduling with Replication Scheduling
- 接続先 IP に対して相対的に実際の接続が少ないサーバーにより多くの要求を振り分けます。このアルゴリズムもプロキシキャッシュサーバーのクラスターでの使用を目的として設計されています。Locality-Based Least-Connection スケジューリングとの違いは、目的 IP アドレスを実サーバーノードのサブセットにマッピングする点です。要求はマッピングされたサブセット内で接続数が最少となるサーバーにルーティングされます。接続先 IP のノードがすべて処理能力を越えてしまっている場合は、実サーバーのプール全体で接続が一番少ないサーバーをその接続先 IP の実サーバーサブセットに追加して、その接続先 IP アドレスの新しいサーバーを複製します。一方、過剰な複製を防ぐため、負荷の最も高いノードが実サーバーのサブセットから外されます。
- Destination Hash Scheduling
- 静的なハッシュテーブル内の接続先 IP を検索して、実サーバーのプールに要求を振り分けます。プロキシキャッシュサーバーのクラスターでの使用を目的として設計されています。
- Source Hash Scheduling
- 静的なハッシュテーブル内のソース IP を検索して、実サーバーのプールに要求を振り分けます。複数のファイアウォールが設定される LVS ルーター向けに設計されています。
1.3.2. サーバーの重み付けとスケジューリング リンクのコピーリンクがクリップボードにコピーされました!
1.4. ルーティングメソッド リンクのコピーリンクがクリップボードにコピーされました!
1.4.1. NAT ルーティング リンクのコピーリンクがクリップボードにコピーされました!
図1.3 NAT ルーティングを実装した Load Balancer Add-On
1.4.2. ダイレクトルーティング リンクのコピーリンクがクリップボードにコピーされました!
図1.4 ダイレクトルーティングで実装した Load Balancer Add-On
1.4.2.1. ダイレクトルーティングと ARP 制限 リンクのコピーリンクがクリップボードにコピーされました!
arptables_jf
または iptables
パケットフィルタリングツールを使用すると以下の理由でこれを行うことができます。
arptables_jf
は ARP が VIP と実サーバーを関連付けないようにします。iptables
メソッドの場合、実サーバー上での VIP 設定はまったく行わないため ARP に関する問題を完全回避することができます。
arptables
や iptables
を使用する方法については 「ダイレクトルーティングおよび arptables_jf
」 または 「ダイレクトルーティングと iptables
」 を参照してください。
1.5. 永続性とファイアウォールマーク リンクのコピーリンクがクリップボードにコピーされました!
1.5.1. 永続性 リンクのコピーリンクがクリップボードにコピーされました!
1.5.2. ファイアウォールマーク リンクのコピーリンクがクリップボードにコピーされました!
1.6. Load Balancer Add-On — ブロックダイアグラム リンクのコピーリンクがクリップボードにコピーされました!
図1.5 Load Balancer Add-On のコンポーネント
pulse
デーモンはアクティブ LVS ルーターとバックアップ LVS ルーターの両方で実行させます。バックアップルーター側の pulse
からアクティブルーターのパブリックインターフェースに対して ハートビート が送信され、アクティブルーターが正しく動作しているか確認が行われます。アクティブルーター側の pulse
は lvs
デーモンを開始してバックアップルーターからの ハートビート クエリーに応答します。
lvs
デーモンが開始されると、ipvsadm
ユーティリティが呼び出されカーネル内で IPVS ルーティングテーブルを設定し管理します。また、各実サーバーで設定されている各仮想サーバーに nanny
プロセスが開始されます。nanny
の各プロセスは任意の実サーバーで設定されている任意のサービスの状態をチェックし、そのサービスが誤動作していないか lvs
デーモンに伝えます。誤動作が検出されると、lvs
デーモンは IPVS ルーティングテーブルからその実サーバーを取り除くよう ipvsadm
に指示を出します。
send_arp
を呼び出してすべての仮想 IP アドレスをバックアップノードの NIC ハードウェアアドレス (MAC アドレス) に再割り当てしてフェイルオーバーを開始します。アクティブルーターの lvs
デーモンをシャットダウンするコマンドがパブリックネットワークインターフェースとプライベートネットワークインターフェースの両方を経由してアクティブルーターに送信され、バックアップノードの lvs
デーモンが起動、設定されている仮想サーバーの要求の受け取りを開始します。
1.6.1. Load Balancer Add-On のコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
pulse
」 に示します。
1.6.1.1. pulse リンクのコピーリンクがクリップボードにコピーされました!
/etc/rc.d/init.d/pulse
スクリプトで起動され、設定ファイル /etc/sysconfig/ha/lvs.cf
を読み込みます。アクティブルーター側の pulse
により LVS デーモンが起動されます。バックアップルーター側の pulse
からユーザー設定が可能な間隔でシンプルなハートビートが実行されアクティブルーター側の健全性が確認されます。ユーザー設定された間隔を過ぎてもアクティブルーター側が応答できない場合、フェイルオーバーが開始されます。フェイルオーバー中、バックアップルーター側の pulse
からアクティブルーター側の pulse
デーモンに対してすべての LVS サービスをシャットダウンするよう指示が出され、フローティング IP アドレスをバックアップルーターの MAC アドレスに再割り当てするため send_arp
プログラムが開始、lvs
デーモンが起動されます。
1.6.1.2. lvs リンクのコピーリンクがクリップボードにコピーされました!
lvs
デーモンは pulse
に呼び出されるとアクティブ LVS ルーターで稼働します。設定ファイル /etc/sysconfig/ha/lvs.cf
を読み込み、ipvsadm
ユーティリティを呼び出して IPVS ルーティングテーブルを構築し管理を行います。また、設定されている Load Balancer Add-Onの各サービスにそれぞれ nanny
プロセスを割り当てます。nanny
により実サーバーがダウンしていることが報告されると、lvs
より ipvsadm
ユーティリティに IPVS ルーティングテーブルからその実サーバーを削除するよう指示が出されます。
1.6.1.3. ipvsadm リンクのコピーリンクがクリップボードにコピーされました!
ipvsadm
を呼び出し IPVS ルーティングテーブル内のエントリーの追加、変更、削除を行うことで lvs
デーモンは Load Balancer Add-On の設定および管理を行っています。
1.6.1.4. nanny リンクのコピーリンクがクリップボードにコピーされました!
nanny
監視デーモンはアクティブ LVS ルーター上で稼働します。このデーモンを使ってアクティブルーターは各実サーバーの健全性を確認、オプションでその負荷も監視します。各実サーバーで定義されているサービスごとに個別のプロセスが実行されます。
1.6.1.5. /etc/sysconfig/ha/lvs.cf リンクのコピーリンクがクリップボードにコピーされました!
1.6.1.6. Piranha Configuration Tool リンクのコピーリンクがクリップボードにコピーされました!
/etc/sysconfig/ha/lvs.cf
管理用のデフォルトツールになります。
1.6.1.7. send_arp リンクのコピーリンクがクリップボードにコピーされました!
第2章 Load Balancer Add-On の初期設定 リンクのコピーリンクがクリップボードにコピーされました!
注記
2.1. LVS ルーターでのサービス設定 リンクのコピーリンクがクリップボードにコピーされました!
chkconfig
、ncurses ベースのプログラム ntsysv
、グラフィカルな Services Configuration Tool です。いずれのツールを使用する場合にも root でのアクセスが必要になります。
注記
su -
コマンドを入力した後 root パスワードを入力します。以下に例を示します。
su -
$ su -
Password:root password
piranha-gui
サービス (プライマリーノードのみ)pulse
サービスsshd
サービス
iptables
サービスも有効にする必要があります。
chkconfig
を使ってアクティベートするには、以下のコマンドを各サービスに対して実行します。
/sbin/chkconfig --level 35 daemon on
/sbin/chkconfig --list
警告
chkconfig
を使用して上記のサービスをオンにしても直ちにデーモンを開始するわけではありません。デーモンを直ちに開始する場合は /sbin/service
コマンドを使用します。/sbin/service
コマンドの使用例については 「Piranha Configuration Tool サービスの開始」 を参照してください。
ntsysv
や Services Configuration Tool を使ったサービスの設定方法については 『Red Hat Enterprise Linux System Administration Guide』 の 『Controlling Access to Services』 の章を参照してください。
2.2. Piranha Configuration Tool のパスワード設定 リンクのコピーリンクがクリップボードにコピーされました!
/usr/sbin/piranha-passwd
警告
2.3. Piranha Configuration Tool サービスの開始 リンクのコピーリンクがクリップボードにコピーされました!
/etc/rc.d/init.d/piranha-gui
にある piranha-gui
サービスを開始、または再起動します。これには、以下のコマンドを root で入力します。
/sbin/service piranha-gui start
/sbin/service piranha-gui restart
/usr/sbin/piranha_gui -> /usr/sbin/httpd
のシンボリックリンクが呼び出され Apache HTTP Server のプライベートセッションが開始されます。安全上、httpd
の piranha-gui
バージョンは piranha ユーザーとして別プロセスで実行されます。実際には httpd
サービスは piranha-gui
によって開始されるため以下の点に注意してください。
- Apache HTTP Server をシステムにインストールしておく必要があります。
- Apache HTTP Server を
service
コマンドを使って停止、または再開するとpiranha-gui
サービスが停止します。
警告
/sbin/service httpd stop
もしくは /sbin/service httpd restart
が実行した場合は、piranha-gui
サービスを以下のコマンドで開始する必要があります。
/sbin/service piranha-gui start
piranha-gui
サービスのみです。ただし、Load Balancer Add-On を遠隔から設定する場合は、sshd
サービスも必要になります。Piranha Configuration Tool を使った設定が完了するまでは、pulse
サービスを開始する必要は ありません。pulse
サービスの開始については 「Load Balancer Add-Onを開始する」 を参照してください。
2.3.1. Piranha Configuration Tool Web サーバーポートの設定 リンクのコピーリンクがクリップボードにコピーされました!
piranha-gui
Web サーバー設定ファイル /etc/sysconfig/ha/conf/httpd.conf
のセクション 2 内にある Listen 3636
の行を変更します。
http://localhost:3636
を開きます。localhost の部分をプライマリー LVS ルーターのホスト名または IP アドレスに置き換えると、Web ブラウザでどこからでも Piranha Configuration Tool にアクセスできます。
piranha
、パスワード (Password) フィールドに piranha-passwd
で設定したパスワードをそれぞれ入力します。
2.4. Piranha Configuration Tool へのアクセス制限 リンクのコピーリンクがクリップボードにコピーされました!
/etc/sysconfig/ha/web/secure/.htaccess
を編集して Apache HTTP Server に組み込まれているアクセス制御メカニズムを利用する方法です。このファイルを変更した後は、サーバーがディレクトリにアクセスする度 .htaccess
ファイルをチェックするため、piranha-gui
サービスを再起動する必要はありません。
Order deny,allow Allow from all
Order deny,allow
Allow from all
.htaccess
ファイルを変更してループバックデバイス (127.0.0.1) からのアクセスのみに制限します。ループバックデバイスについての詳細は『Red Hat Enterprise Linux Reference Guide』 の 『Network Scripts』 の章を参照してください。
Order deny,allow Deny from all Allow from 127.0.0.1
Order deny,allow
Deny from all
Allow from 127.0.0.1
Order deny,allow Deny from all Allow from 192.168.1.100 Allow from 172.16.57
Order deny,allow
Deny from all
Allow from 192.168.1.100
Allow from 172.16.57
警告
/etc/sysconfig/ha/web/secure/
ディレクトリ内の設定ページへのアクセスについては Piranha Configuration Tool の .htaccess
ファイルを編集すると行うことができますが、/etc/sysconfig/ha/web/
ディレクトリ配下のログインおよびヘルプページへのアクセスは制限できません。このディレクトリへのアクセスを制限する場合は、/etc/sysconfig/ha/web/secure/.htaccess
と同じ order
、allow
、deny
の行を持たせた .htaccess
ファイルを /etc/sysconfig/ha/web/
ディレクトリ内に作成してください。
2.5. パケット転送をオンにする リンクのコピーリンクがクリップボードにコピーされました!
/etc/sysctl.conf
内の net.ipv4.ip_forward = 0
の行を以下のように変更します。
net.ipv4.ip_forward = 1
net.ipv4.ip_forward = 1
/sbin/sysctl net.ipv4.ip_forward
1
が返される場合は IP 転送が有効になっています。0
が返される場合は以下のコマンドを使って手作業でオンにすることができます。
/sbin/sysctl -w net.ipv4.ip_forward=1
2.6. 実サーバーでサービスを設定する リンクのコピーリンクがクリップボードにコピーされました!
httpd
や FTP サービスまた Telnet サービスの xinetd
などのデーモンがこれに該当します。
sshd
デーモンもインストールして実行しておいてください。
第3章 Load Balancer Add-On の設定 リンクのコピーリンクがクリップボードにコピーされました!
3.1. NAT を使った Load Balancer Add-On ネットワーク リンクのコピーリンクがクリップボードにコピーされました!
- ネットワークレイアウト
- NAT ルーティングを使った Load Balancer Add-On のトポロジーはパブリックネットワークへのアクセスポイントが 1 つあれば構成できるため、ネットワークレイアウトの観点からは最も設定が簡単なトポロジーになります。実サーバーはすべての要求を LVS ルーター経由で返すため、すべての実サーバーがそれ専用のプライベートネットワーク上に配置されることになります。
- ハードウェア
- 正常に機能させるため実サーバーを Linux マシンにする必要はないため、ハードウェアに関しては NAT トポロジーが最も柔軟なトポロジーになります。各実サーバーが応答するのは LVS ルーターのみのため、実サーバー側に必要な NIC は 1 つのみになります。一方、LVS ルーターでは 2 種類のネットワークのトラフィックを別々にルーティングさせるため NIC が 2 つ必要になります。このトポロジーの場合、LVS ルーターの部分がネットワークのボトルネックになるため、各 LVS ルーターにギガビットイーサネットの NIC を使用し LVS ルーターで処理できる帯域幅を増大させることが可能です。LVS ルーターにギガビットイーサネットを使用する場合は、負荷を効率的に処理するため実サーバーを LVS ルーターに接続しているスイッチについてもギガビットイーサネットポートが少なくとも 2 つ搭載されているスイッチが必要になります。
- ソフトウェア
- NAT トポロジーには一部の設定で
iptables
を使用する必要があるため、Piranha Configuration Tool 以外にも設定を必要とするソフトウェアがあります。特に FTP サービスとファイアウォールマークの場合、LVS ルーターで要求を正しくルーティングできるよう手作業による設定を必要とします。
3.1.1. NAT を使って Load Balancer Add-On のネットワークインターフェースを設定する リンクのコピーリンクがクリップボードにコピーされました!
eth0
) は 192.168.26/24 ネットワーク (ルーティング可能な IP ではないが LVS ルーターの前にファイアウォールがあると仮定)、実サーバーにつながっているプライベートインターフェース (eth1
) は 10.11.12/24 ネットワークになります。
重要
network
サービスでは使用されますが、NetworkManager
サービスでは使用されません。Load Balancer Add-on には NetworkManager
サービス との互換性はありません。
/etc/sysconfig/network-scripts/ifcfg-eth0
の例を以下に示します。
/etc/sysconfig/network-scripts/ifcfg-eth1
の例を以下に示します。
DEVICE=eth1 BOOTPROTO=static ONBOOT=yes IPADDR=10.11.12.9 NETMASK=255.255.255.0
DEVICE=eth1
BOOTPROTO=static
ONBOOT=yes
IPADDR=10.11.12.9
NETMASK=255.255.255.0
重要
重要
3.1.2. 実サーバー上でのルーティング リンクのコピーリンクがクリップボードにコピーされました!
注記
/etc/sysconfig/network-scripts/ifcfg-eth0
ファイルは以下のようになります。
警告
GATEWAY=
の行で設定された複数のネットワークインターフェースがある場合、最初に記載されている設定がゲートウェイ用となります。このため、eth0
と eth1
いずれも設定されていて eth1
が Load Balancer Add-On 用に使用されている場合、実サーバーは要求を正しくルーティングできない可能性があります。
/etc/sysconfig/network-scripts/
ディレクトリ内の各ネットワークスクリプトで ONBOOT=no
とセットするか、または 1 番目に記載されているインターフェースでゲートウェイが正しく設定されているか確認します。
3.1.3. LVS ルーターで NAT ルーティングを有効にする リンクのコピーリンクがクリップボードにコピーされました!
警告
eth0:1
またはeth1:1
のフローティング IP の設定を行う場合は必ず Piranha Configuration Tool を使用してください。使い方については 「グローバル設定 (GLOBAL SETTINGS)」 および 「VIRTUAL SERVER サブセクション」 の説明をご覧ください。ネットワークスクリプトを手作業で編集する、ネットワーク設定ツールを使うなどの方法は使用しないでください。
pulse
サービスを開始します。pulse
が稼働し始めると、アクティブ LVS ルーターにより実サーバープールへの要求のルーティングが開始されます。
3.2. ダイレクトルーティングを使った Load Balancer Add-On リンクのコピーリンクがクリップボードにコピーされました!
- ネットワークレイアウト
- ダイレクトルーティングを使った Load Balancer Add-On では、LVS ルーターが着信要求を受け取り、それらを処理のために適切な実サーバーにルーティングする必要があります。次に実サーバーがその応答を 直接、クライアントにルーティングする必要があります。例えば、クライアントがインターネット上に存在し、パケットを LVS ルーター経由で実サーバーに送信した場合、実サーバーはインターネット経由で直接クライアントに到達できる必要があります。実サーバーにゲートウェイを設定しパケットをインターネットに渡すことでこれを実現します。サーバープール内の各実サーバーには別々のゲートウェイ (また各ゲートウェイにはインターネットへの接続がある) を持たせることができるため、最大限のスループットとスケーラビリティを実現できます。ただし、標準的な Load Balancer Add-On 設定の場合、複数の実サーバーは1つの ゲートウェイで通信することができます (したがってネットワーク接続も 1 つ)。
重要
LVS ルーターを実サーバーのゲートウェイとして使用することは 推奨されません。そのような使用方法では、LVS ルーターに不要な設定の複雑性とネットワーク負荷を追加することになり、NAT ルーティングにみられるネットワークのボトルネックを戻すことになってしまいます。 - ハードウェア
- ダイレクトルーティング使用の Load Balancer Add-On システムでのハードウェア要件は、他の Load Balancer Add-On トポロジーと同様のものです。LVS ルーターが着信要求を処理して実サーバー用にロードバランシングを実行するには Red Hat Enterprise Linux の稼働を必要としますが、実サーバーが正常に機能するには Linux マシンである必要はありません。LVS ルーターはそれぞれ 1 つまたは 2 つの NIC を必要とします (バックアップルーターの有無による)。設定を容易にしてトラフィックを明確に分けるために、2 つの NIC を使用することもできます。こうすると、1 つの NIC で着信要求を処理し、実サーバーへのパケット回送はもうひとつの NIC に任せることができます。実サーバーは LVS ルーターを迂回して送信パケットを直接クライアントに送信するため、インターネットへのゲートウェイが必要となります。パフォーマンスと可用性を最大化するには、クライアントが接続しているキャリアネットワーク (インターネットやイントラネットなど) に専用接続がある独自のゲートウェイに実サーバーを接続します。
- ソフトウェア
- ダイレクトルーティングで Load Balancer Add-On を使用していて ARP 問題に直面している管理者には特に、 Piranha Configuration Tool の範囲外で必要な設定があります。 詳細情報は、「ダイレクトルーティングおよび
arptables_jf
」 または 「ダイレクトルーティングとiptables
」 を参照してください。
3.2.1. ダイレクトルーティングおよび arptables_jf リンクのコピーリンクがクリップボードにコピーされました!
arptables_jf
を使用してダイレクトルーティングを設定するには、実サーバーでそれらの仮想 IP アドレスが設定されており、パケットが直接送信で可能となっている必要があります。VIP 用の ARP 要求は実サーバーでは完全に無視されます。そ例外の、VIP を含んでいて送信される ARP パケットは、mangle 化されて VIP ではなく実サーバーの IP が含まれるようになります。
arptables_jf
メソッドを使用すると、アプリケーションは実サーバーが接続している個別の VIP またはポートにバインドします。例えば、arptables_jf
メソッドの使用により、Apache HTTP Server の複数のインスタンスはシステム上の異なる VIP に明示的にバインドして実行することが可能になります。また、arptables_jf
の使用は、iptables
オプションよりもパフォーマンスで大きな利点があります。
arptables_jf
メソッドを使うと、標準の Red Hat Enterprise Linux システム設定ツールを使用して起動時に VIP を開始する設定ができません。
- 実サーバー上で仮想 IP アドレス用に ARP テーブルのエントリを作成します (real_ip とは実サーバーとの通信にディレクタが使用する IP のこと。多くの場合、
eth0
にバインドされた IP)。arptables -A IN -d <virtual_ip> -j DROP arptables -A OUT -s <virtual_ip> -j mangle --mangle-ip-s <real_ip>
arptables -A IN -d <virtual_ip> -j DROP arptables -A OUT -s <virtual_ip> -j mangle --mangle-ip-s <real_ip>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow これにより、仮想 IP アドレス向けのすべての ARP 要求を実サーバーが無視するようになります。また、他の方法では仮想 IP を含むことになる送信 ARP 反応を変更させて、それらがサーバーの実 IP を含むようになります。VIP の ARP 要求に反応する唯一のノードは、現在アクティブな LVS ノードです。 - これが実サーバー上で完了したら、実サーバー上で以下のコマンドを入力して ARP テーブルのエントリを保存します。
service arptables_jf save
chkconfig --level 2345 arptables_jf on
chkconfig
コマンドは、ネットワーク開始前にシステムが起動時に arptables 設定をリロードするようにします。 ifconfig
を使用して実サーバー上で仮想 IP アドレスを設定し、 IP エイリアスを作成します。例えばifconfig eth0:1 192.168.76.24 netmask 255.255.252.0 broadcast 192.168.79.255 up
# ifconfig eth0:1 192.168.76.24 netmask 255.255.252.0 broadcast 192.168.79.255 up
Copy to Clipboard Copied! Toggle word wrap Toggle overflow またはiproute2
のユーティリティip
を使用します。 例えばip addr add 192.168.76.24 dev eth0
# ip addr add 192.168.76.24 dev eth0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここまでの記述にあるように、仮想 IP アドレスは Red Hat システム設定ツールを使用して起動時に開始するように設定することはできません。この問題を回避する方法の 1 つは/etc/rc.d/rc.local
内にこれらのコマンドを配置することです。- ダイレクトルーティング用に Piranha を設定します。詳細情報は 4章Piranha Configuration Tool を使った Load Balancer Add-Onの設定 を参照してください。
3.2.2. ダイレクトルーティングと iptables リンクのコピーリンクがクリップボードにコピーされました!
iptables
ファイアウォールルールを作成することで、 ダイレクトルーティングメソッドを使用した場合の ARP 問題を回避することもできます。iptables
を使用してダイレクトルーティングを設定するには、VIP アドレスがシステム上に存在しなくても VIP アドレスに送信されたパケットを実サーバーが扱うように透過プロキシを作成するルールを追加する必要があります。
iptables
メソッドは arptables_jf
メソッドよりも 設定が簡単です。仮想 IP アドレスがアクティブ LVS ディレクタ上にのみ存在するため、このメソッドでは LVS ARP 問題も完全に回避できます。
arptables_jf
と比較すると、iptables
メソッドの使用にはパフォーマンスの問題があります。
iptables
メソッドを使用してポートを再利用することはできません。例えば、二つの別々の Apache HTTP Server サービスは 両方とも仮想 IP アドレスではなく INADDR_ANY
にバインドする必要があるため、ポート 80 にバインドされた二つの別々の Apache HTTP Server サービスを実行することはできません。
iptables
メソッドを使用してダイレクトルーティングを設定するには、以下の手順を実行します。
- 実サーバーでの実行が意図された VIP、ポート、プロトコル (TCP または UDP)の組み合わせすべてに、以下のコマンドを実行します。
iptables -t nat -A PREROUTING -p <tcp|udp> -d <vip> --dport <port> -j REDIRECT
このコマンドで、実サーバーは与えられた VIP とポートが宛先となっているパケットを処理します。 - 実サーバー上で設定を保存します。
service iptables save chkconfig --level 2345 iptables on
# service iptables save # chkconfig --level 2345 iptables on
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上記のコマンドで、システムはネットワーク開始前に、起動時にiptables
設定をリロードします。
3.3. 設定を組み合わせる リンクのコピーリンクがクリップボードにコピーされました!
重要
eth0
がパブリックネットワークに接続し、eth1
がプライベートネットワークに接続する場合、バックアップ LVS ルーター上の同じデバイスは同じネットワークに接続する必要があります。
3.3.1. Load Balancer Add-Onネットワーキングの一般的なヒント リンクのコピーリンクがクリップボードにコピーされました!
- 実ネットワーキングインターフェースの起動
- 実ネットワークインターフェースを起動するには、root で以下のコマンドを実行して、 N の部分をインターフェースに相当する番号で置き換えます (
eth0
およびeth1
)。/sbin/ifup ethN
警告
Piranha Configuration Tool を使用して設定するフローティング IP アドレス(eth0:1
やeth1:1
) を起動する際に、ifup
スクリプトを使用しないで下さい。代わりにservice
コマンドを 使用してpulse
を開始してください (詳細は 「Load Balancer Add-Onを開始する」 参照してください)。 - 実ネットワークインターフェースの停止
- 実ネットワークインターフェースを停止するには、root で以下のコマンドを実行して、 N の部分をインターフェースに相当する番号で置き換えます (
eth0
およびeth1
)。/sbin/ifdown ethN
- ネットワークインターフェースのステータスチェック
- ある時点でどのネットワークインターフェースが起動しているかをチェックするには、以下を入力します。
/sbin/ifconfig
マシンのルーティングテーブルを表示するには、以下のコマンドを実行します。/sbin/route
3.3.1.1. 仮想 IP アドレス問題のトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
pulse
サービスが手動で再起動される時のみです。
echo 1 > /proc/sys/net/ipv4/conf/all/promote_secondaries
echo 1 > /proc/sys/net/ipv4/conf/all/promote_secondaries
/etc/sysctl.conf
ファイルを開いて以下の行を追加します。
net.ipv4.conf.all.promote_secondaries = 1
net.ipv4.conf.all.promote_secondaries = 1
3.4. マルチポートサービスと Load Balancer Add-On リンクのコピーリンクがクリップボードにコピーされました!
iptables
で Piranha Configuration Tool の外部で実行される必要があります。
3.4.1. ファイアウォールマークの割り当て リンクのコピーリンクがクリップボードにコピーされました!
iptables
を使用する必要があります。
iptables
ルールがなくてはならない、という点です。
/sbin/service iptables status
iptables
が実行されていない場合、すぐにプロンプトが再出現します。
iptables
がアクティブな場合、ルールセットが表示されます。ルールが存在する場合、以下のコマンドを入力します。
/sbin/service iptables stop
/etc/sysconfig/iptables
の内容を確認して、保存する価値のあるルールを安全な場所にコピーしてから継続します。
/sbin/iptables -t mangle -A PREROUTING -p tcp -d n.n.n.n/32 -m multiport --dports 80,443 -j MARK --set-mark 80
/sbin/iptables -t mangle -A PREROUTING -p tcp -d n.n.n.n/32 -m multiport --dports 80,443 -j MARK --set-mark 80
iptables
用のモジュールを読み込む必要があることに注意してください。
iptables
コマンドの n.n.n.n は、使用中の HTTP および HTTPS 仮想サーバーのフローティング IP で置き換える必要が あります。これらのコマンドは、該当するポート上の VIP が送信先となっている全トラフィックをファイアウォールマーク 80 に割り当てることと同様の効果があります。これが IPVS に認識され、適切に転送されます。
警告
3.5. FTP の設定 リンクのコピーリンクがクリップボードにコピーされました!
3.5.1. FTP の動作 リンクのコピーリンクがクリップボードにコピーされました!
- アクティブ接続
- アクティブ接続が確立されると、サーバーはポート 20 からクライアントマシン上の高い範囲のポートにクライアントへデータ接続を開きます。サーバーからのすべてのデータは、この接続を通じて送信されます。
- パッシブ接続
- パッシブ接続が確立されると、クライアントは FTP サーバーに対してパッシブ接続ポートを確立するように依頼します。これは 10,000 より高いポートになります。するとサーバーは、この特定のセッション用に高い数値のポートをバインドして、このポート番号をクライアントに中継します。クライアントは、データ接続のために新規にバインドされたポートを開きます。クライアントが作成するデータ要求それぞれ、別個のデータ接続となります。最近の FTP クライアントのほとんどは、 サーバーからデータを要求する場合、パッシブ接続を試みます。
注記
3.5.2. Load Balancer Add-On への影響 リンクのコピーリンクがクリップボードにコピーされました!
注記
ip_vs_ftp
カーネルモジュールがロードされていることを確認します。これは、シェルプロンプトで管理ユーザーとして modprobe ip_vs_ftp
コマンドを実行することで可能です。
3.5.3. ネットワークパケットフィルタルールの作成 リンクのコピーリンクがクリップボードにコピーされました!
iptables
ルールを割り当てる前に、マルチポートサービスおよび既存ネットワークパケットフィルタリングルールをチェックする技術に関して 「ファイアウォールマークの割り当て」 内の情報を再確認してください。
21
を記入してポート 21 の仮想サーバーを設定する必要があります。詳細は 「VIRTUAL SERVER サブセクション」 を参照してください。
3.5.3.1. アクティブ接続のルール リンクのコピーリンクがクリップボードにコピーされました!
iptables
コマンドにより、LVS ルーターは IPVS が認識していない実サーバーからの外向けの接続を受け付けることが可能になります。
/sbin/iptables -t nat -A POSTROUTING -p tcp -s n.n.n.0/24 --sport 20 -j MASQUERADE
iptables
コマンドでは、n.n.n は Piranha Configuration Tool の グローバル設定 内で 定義されている NAT インターフェースの内部ネットワークインターフェース用のフローティング IP の最初の 三つの値で置き換える必要があります。
3.5.3.2. パッシブ接続のルール リンクのコピーリンクがクリップボードにコピーされました!
警告
/etc/vsftpd.conf
に追加することで可能です。
pasv_min_port=10000
pasv_max_port=20000
pasv_address
の設定は使用しないでください。LVS により仮想 IP アドレスに更新されるためです。
10000:20000
を 1024:65535
に変更することで、利用可能な非保護ポートすべてを含めることができます。
iptables
コマンドは、適切なポート上のフローティング IP が送信先であるトラフィックをファイアウォールマーク 21 に割り当てることと同様の効果があります。これは、IPVS で 認識されて適切に転送されます。
/sbin/iptables -t mangle -A PREROUTING -p tcp -d n.n.n.n/32 --dport 21 -j MARK --set-mark 21
/sbin/iptables -t mangle -A PREROUTING -p tcp -d n.n.n.n/32 --dport 10000:20000 -j MARK --set-mark 21
iptables
コマンドでは、n.n.n.n は Piranha Configuration Tool の 仮想サーバー サブセクション内で定義されている FTP 仮想サーバーのフローティング IP で置き換える必要があります。
警告
3.6. ネットワークパケットフィルター設定の保存 リンクのコピーリンクがクリップボードにコピーされました!
iptables
には以下のコマンドを実行します。
/sbin/service iptables save
/etc/sysconfig/iptables
内の設定が保存され、起動時に再度呼び出すことができます。
/sbin/service
コマンドを使用して iptables
の開始、停止、ステータスの確認(ステータススイッチを使用)ができるようになります。/sbin/service
は自動的に適切な モジュールを読み込みます。/sbin/service
コマンドの使用法の例は、「Piranha Configuration Tool サービスの開始」 を参照してください。
第4章 Piranha Configuration Tool を使った Load Balancer Add-Onの設定 リンクのコピーリンクがクリップボードにコピーされました!
/etc/sysconfig/ha/lvs.cf
の作成に関して体系的なアプローチを提供します。本章では、Piranha Configuration Tool の基本的な操作と設定後に Load Balancer Add-Onをアクティベートする方法を説明します。
重要
lvs.cf
での構文エラーとソフトウェア障害を防ぐには、Piranha Configuration Tool が最善の方法となります。
4.1. 必要なソフトウェア リンクのコピーリンクがクリップボードにコピーされました!
piranha-gui
サービスがプライマリー LVS ルーターで稼働している必要があります。Load Balancer Add-Onの設定には、最低でも links
のようなテキストベースの Webブラウザが必要です。別のマシンから LVS ルーターにアクセスしている場合は、root ユーザーでのプライマリー LVS ルーターへの ssh
接続も必要になります。
ssh
接続を開いておくとよいでしょう。この接続は pulse
や他のサービスを再起動し、ネットワークパケットフィルターを設定、 トラブル解決中に /var/log/messages
を監視するセキュアな方法を提供します。
4.2. Piranha Configuration Tool へのログイン リンクのコピーリンクがクリップボードにコピーされました!
piranha-gui
サービスが実行中で、「Piranha Configuration Tool のパスワード設定」 の説明にあるように管理パスワードが設定されていることを確認します。
http://localhost:3636
を開いて Piranha Configuration Tool にアクセスすることができます。そうでない場合は、ホスト名もしくは実 IP アドレスに続けて :3636
を入力してください。ブラウザーが接続されると、図4.1「開始画面」 の画面が表示されます。
図4.1 開始画面
piranha
を、パスワード (Password) フィールドには作成した管理パスワードを入力します。
4.3. 制御/監視 (CONTROL/MONITORING) リンクのコピーリンクがクリップボードにコピーされました!
pulse
デーモン、LVS ルーティングテーブル、LVS 派生の nanny
プロセスのステータスです。
注記
図4.2 制御/監視 (CONTROL/MONITORING) パネル
- 自動更新 (Auto update)
- このページのステータス表示は、ユーザーの設定した間隔で自動的に更新ができます。この機能を有効にするには、自動更新 (Auto update) チェックボックスをクリックして 秒単位の更新頻度 (Update frequency in seconds) テキストボックス(デフォルトは 10 秒) 内の更新頻度をセットします。この自動更新機能を 10 秒以下の間隔にセットすることは推奨されません。そうした場合、ページが頻繁に更新し過ぎて 自動更新 (Auto update) の間隔の再設定が困難になります。この問題に遭遇した場合は、別のパネル上でクリックしてから、自動更新 (Auto update) に戻ります。自動更新 (Auto update) 機能は Mozilla などのすべてのブラウザで動作するわけではありません。
- このボタンをクリックすると、ステータス情報を手動で更新することができます。
- このボタンをクリックすると、Piranha Configuration Tool の管理者 パスワードの変更に関する情報を含むヘルプ画面に移動します。
4.4. グローバル設定 (GLOBAL SETTINGS) リンクのコピーリンクがクリップボードにコピーされました!
図4.3 グローバル設定 (GLOBAL SETTINGS) パネル
- Primary server public IP
- このフィールドには、プライマリー LVS ノード向けのパブリックで迂回可能な実 IP アドレスを入力します。
- Primary server private IP
- プライマリー LVS ノード用の代替ネットワークインターフェースの実 IP アドレスを入力します。このアドレスは、バックアップルーターの代替ハートビートチャンネルとしてのみ使用されるもので、「NAT を使って Load Balancer Add-On のネットワークインターフェースを設定する」 で割り当てられた実プライベート IP アドレスと関連付ける必要はありません。この欄は空白のままにしてもかまいませんが、そうするとバックアップ LVS ルーターが使用する代替ハートビートチャンネルがないことになり、単一障害点を生み出すことになってしまいます。
注記
注記
プライマリー LVS ルーターのプライベート IP は、イーサネットアダプタやシリアルポートなど TCP/IP を受け付けるインターフェースであれば設定が可能です。 - TCP Timeout
- TCP セッションがタイムアウトするまでの時間を秒単位で入力します。デフォルト値は 0 です。
- TCP Fin Timeout
- FIN パケット受信後に TCP セッションがタイムアウトするまでの時間を秒単位で入力します。デフォルト値は 0 です。
- UDP Timeout
- UDP セッションがタイムアウトするまでの時間を秒単位で入力します。デフォルト値は 0 です。
- Use network type
- NAT Router IP
- このテキストフィールドにはプライベートフローティング IP を入力します。このフローティング IP は、実サーバーのゲートウェイとして使用されます。
- NAT Router netmask
- NAT ルーターのフローティング IP に特定のネットマスクが必要な場合は、ドロップダウンリストから選択します。
- NAT Router device
- このテキストフィールドを使用して、
eth1:1
などのフローティング IP アドレスのネットワークインターフェースのデバイス名を定義します。注記
NAT フローティング IP アドレスは、プライベートネットワークに接続されているイーサネットインターフェースへエイリアス化する必要があります。この例では、プライベートネットワークはeth1
インターフェースにあるので、eth1:1
がフローティング IP アドレスとなります。
警告
4.5. REDUNDANCY リンクのコピーリンクがクリップボードにコピーされました!
注記
図4.4 REDUNDANCY パネル
- Redundant server public IP
- バックアップ LVS ルーターのパブリック実 IP アドレスを入力します。
- Redundant server private IP
- このテキストフィールドには、バックアップノードのプライベート実 IP アドレスを入力します。Redundant server private IP のフィールドが表示されない場合は、GLOBAL SETTINGS パネルに戻り、Primary server private IP アドレスを入力して をクリックします。
- Heartbeat Interval (seconds)
- このフィールドでは、ハートビート間隔を秒単位でセットします。これは、バックアップノードがプライマリー LVS ノード機能のステータスをチェックする間隔です。
- Assume dead after (seconds)
- プライマリー LVS ノードがここで設定した秒数間反応しない場合、バックアップ LVS ルーターノードがフェイルオーバーを開始します。
- Heartbeat runs on port
- このフィールドでは、ハートビートがプライマリー LVS ノードと通信するポートを設定します。フィールドが空白の場合、デフォルトで 539 にセットされます。
警告
echo
コマンドで sync_version
の値を以下のように設定します。
echo 0 > /proc/sys/net/ipv4/vs/sync_version
echo 0 > /proc/sys/net/ipv4/vs/sync_version
- Use Sync Daemon
- 同期デーモンを有効にする場合は、ボックスにチェックを入れます。
- Sync Daemon Interface
- 同期デーモンがマルチキャストメッセージを送受信する際に使うネットワークインターフェースです。このフィールドのデフォルトインターフェースは
eth0
です。 - Sync daemon id
- このフィールドでは、マルチキャスト同期メッセージへの識別子 (ID) を設定します。サポート対象となる値は 0 から 255 で、フィールドが空白であればデフォルト値の 0 になります。
警告
4.6. VIRTUAL SERVERS リンクのコピーリンクがクリップボードにコピーされました!
図4.5 VIRTUAL SERVERS パネル
4.6.1. VIRTUAL SERVER サブセクション リンクのコピーリンクがクリップボードにコピーされました!
図4.6 VIRTUAL SERVERS サブセクション
- Name
- 仮想サーバーを識別するための説明的な名前を入力します。この名前は、マシンのホスト名 ではない ので、説明的で分かりやすいものにします。HTTP などの仮想サーバーが使用するプロトコルを参照する名前でもかまいません。
- Application port
- サービスアプリケーションがリッスンするポート番号を入力します。この例は HTTP サービスなので、ポート 80 が使用されます。
- ドロップダウンメニューで UDP か TCP を選択します。Web サーバーは通常、TCP プロトコルで通信するので、上記の例では TCP が選択されています。
- Virtual IP Address
- このフィールドには、仮想サーバーのフローティング IP アドレスを入力します。
- ドロップダウンメニューでこの仮想サーバー用のネットマスクを設定します。
- Firewall Mark
- マルチポートプロトコルを構築している、または別の関連したプロトコル用に複数ポート仮想サーバーを作成している場合を除いて、このフィールドにはファイアウォールマークの整数を入力 しない で下さい。この例では上記の仮想サーバーは、ポート 80 上の HTTP とポート 443 上の HTTPS への接続を構築しているため、Firewall Mark を 80 としてあります。永続性と組み合わせることでこの技術は、安全でない Web ページと安全な Web ページの両方にアクセスするユーザーが同じ実サーバーに回され、その状態を保持するようにします。
警告
このフィールドにファイアウォールマークを入力することで、 IPVS はこのファイアウォールマークがあるパケットが同様に処理されていることを認識するようになりますが、ファイアウォールマークを実際に割り当てるには Piranha Configuration Tool 外での設定が必要になります。マルチポートサービスの作成に関しては 「マルチポートサービスと Load Balancer Add-On」 を、高可用性の FTP 仮想サーバーの作成に関しては 「FTP の設定」 を参照してください。 - Device
- Virtual IP Address フィールドで定義してあるフローティング IP アドレスにバインドするネットワークデバイスの名前を入力します。パブリックフローティング IP アドレスは、パブリックネットワークに接続されたイーサネットインターフェースにエイリアス化する必要があります。この例では、パブリックネットワークは
eth0
インターフェース上にあるため、デバイス名としてeth0:1
を入力することになります。
- Re-entry Time
- 障害の後にアクティブ LVS ルーターが実サーバーをサーバープールに戻すまでの秒数を整数で入力します。
- Service Timeout
- 実サーバーが停止しているとみなされ、サーバープールから削除されるまでの秒数を整数で入力します。
- Quiesce server
- Quiesce server ラジオボタンを選択した場合、実サーバーが使用できなくなると加重が 0 に設定されます。これによりこのサーバーは実質的に無効になります。その後、実サーバーが利用可能になった場合はオリジナルの加重に戻されサーバーが再度有効になります。Quiesce server が無効になっていると、障害が発生している実サーバーはサーバーテーブルから削除されます。利用できなくなっていたサーバーが利用可能になると仮想サーバーテーブルに戻されます。
- Load monitoring tool
rup
またはruptime
を使用すると、各種実サーバー上のロードを LVS ルーターで監視できるようになります。ドロップダウンメニューからrup
を選択した場合は、各実サーバーはrstatd
サービスを実行する必要があります。ruptime
を選択した場合は、各実サーバーはrwhod
サービスを実行する必要があります。警告
負荷の監視は負荷分散と同じ ではありません。そして加重スケジューリングアルゴリズムと組み合わせた場合、スケジューリング動作の予測が困難になります。また、負荷監視を使用する場合、実サーバーは Linux マシンである必要があります。- Scheduling
- ドロップダウンメニューからスケジューリングアルゴリズムを選択します。デフォルトは
加重最小接続
です。スケジューリングアルゴリズムについては、「スケジューリングのアルゴリズム」 を参照してください。 - Persistence
- クライアントのトランザクション中に、管理者が仮想サーバーへの永続的な接続を必要とする場合は、このテキストフィールド内に接続がタイムアウトになるまでの非アクティブの時間を秒数で入力します。
重要
上記の Firewall Mark フィールドに値を入力している場合は、persistence にも値を入力してください。また、ファイアウォールマークと persistence を一緒に使用する場合は、ファイアウォールマークのある仮想サーバーで persistence の値が同じになるようにしてください。ファイアウォールマークと persistence についての詳細は 「永続性とファイアウォールマーク」 を参照してください。 - 永続性を特定のサブネットに限定するには、ドロップダウンメニューから該当するネットワークマスクを選択します。
注記
ファイアウォールマークが現れる前は、サブネットに制限された永続性が接続をバンドルする基本的な手段でした。現在では、永続性をファイアウォールマークとの関連で使用して同様の目的を達成するのが最善の方法です。
警告
4.6.2. REAL SERVER サブセクション リンクのコピーリンクがクリップボードにコピーされました!
図4.7 REAL SERVER サブセクション
図4.8 REAL SERVER 設定パネル
- Name
- 実サーバー用の説明的名前です。
注記
この名前は、マシンのホスト名 ではない ので、説明的で分かりやすいものにします。 - Address
- 実サーバーの IP アドレスです。関連付けられた仮想サーバーにはすでにリスニングポートが指定されているので、ポート番号は追加しないでください。
- Weight
- プール内の他のホストに対する該当ホストの相対的なキャパシティを示す整数値です。この値は任意なものですが、プール内の他の実サーバーに対する割合として扱ってください。サーバー加重についての詳細は、「サーバーの重み付けとスケジューリング」 を参照してください。
警告
4.6.3. EDIT MONITORING SCRIPTS サブセクション リンクのコピーリンクがクリップボードにコピーされました!
図4.9 EDIT MONITORING SCRIPTS サブセクション
- Sending Program
- より高度なサービスの検証には、このフィールドを使用してサービスチェックスクリプトへのパスを指定することができます。この機能は特に、HTTPS や SSL などの動的に変化するデータを必要とするサービスに役に立ちます。この機能を使用するには、テキスト応答を返し、それを実行ファイルになるようにセットし、Sending Program フィールド内にそのパスを入力するようなスクリプトを書く必要があります。
注記
実サーバープール内の各サーバーを確実にチェックするには、Sending Program フィールド内でスクリプトへのパスの後に特別トークンの%h
を使います。スクリプトがnanny
デーモンに呼び出される際にこのトークンは実サーバーの IP アドレスで置き換えられます。以下のサンプルは、外部サービスチェックスクリプトを書く際のガイドです。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記
外部プログラムが Sending Program フィールド内に記入された場合、Send フィールドは無視されます。 - Send
- このフィールドには、各実サーバーに送信する
nanny
デーモンの文字列を入力します。デフォルトでは、送信フィールドは HTTP 用になっています。この値は必要に応じて変更できます。このフィールドを空白のままにすると、nanny
デーモンはポートを開こうとして、これが成功するとサービスが実行中だとみなします。このフィールドで許可されるのは、1 つの送信シーケンスのみです。このシーケンスに含められるのは、印刷可能なASCII 文字と以下のエスケープ文字のみです。- 行送りの \n
- 改行の \r
- タブ文字の \t
- 次に続く文字をエスケープする \
- Expect
- サーバーが正常に機能している場合に返すテキスト応答を入力します。ユーザー自身が送信プログラムを書いている場合は、成功した時に送信を指示している応答を入力します。
注記
あるサービスに何を送信するかを判断するには、実サーバー上のポートへのtelnet
接続を開き、返ってくる応答を待ちます。例えば、FTP は接続時に 220 を報告するので、Send フィールドにquit (終了)
を、Expect フィールドに220
を入力します。
警告
4.7. 設定ファイルの同期 リンクのコピーリンクがクリップボードにコピーされました!
/etc/sysconfig/ha/lvs.cf
— LVS ルーターの設定ファイル/etc/sysctl
— カーネル内のパケット転送をオンにする設定ファイル/etc/sysconfig/iptables
— ファイアウォールマークを使用している場合は、使用しているネットワークパケットによってこれらのファイルのいずれかを同期する必要があります。
重要
/etc/sysctl.conf
ファイルと /etc/sysconfig/iptables
ファイルは、変更 されません。
4.7.1. lvs.cf の同期 リンクのコピーリンクがクリップボードにコピーされました!
/etc/sysconfig/ha/lvs.cf
が作成される、もしくは更新される際はいつでも、それをバックアップ LVS ルーターノードにコピーする必要があります。
警告
lvs.cf
ファイルがある必要があります。これらの LVS ルーターノード間で LVS 設定ファイルが一致しない場合は、フェイルオーバーが妨げられる可能性があります。
scp
コマンドの使用です。
重要
scp
を使用するには、バックアップルーター上で sshd
が稼働している必要があります。LVS ルーター上で必要なサービスを正しく設定する詳細な方法については、「LVS ルーターでのサービス設定」 を参照してください。
lvs.cf
ファイルを同期します。
scp /etc/sysconfig/ha/lvs.cf n.n.n.n:/etc/sysconfig/ha/lvs.cf
4.7.2. sysctl の同期 リンクのコピーリンクがクリップボードにコピーされました!
sysctl
はほとんどの場合一度だけ修正されるファイルです。このファイルは起動時に読み込まれ、カーネルにパケット転送をオンにするように指示します。
重要
4.7.3. ネットワークパケットフィルタルールの同期 リンクのコピーリンクがクリップボードにコピーされました!
iptables
を使用している場合、バックアップ LVS ルーター上で適切な設定ファイルを同期する必要があります。
scp /etc/sysconfig/iptables n.n.n.n:/etc/sysconfig/
ssh
セッションを開くか、root でマシンにログインして以下のコマンドを実行します。
/sbin/service iptables restart
4.8. Load Balancer Add-Onを開始する リンクのコピーリンクがクリップボードにコピーされました!
ssh
セッションを開くようにするのが最適です。
tail -f /var/log/messages
/sbin/service pulse start
pulse
サービスのスタートアップ進捗状況をチェックします。以下の出力があれば、pulse デーモンは正常に開始しています。
gratuitous lvs arps finished
/var/log/messages
の表示を停止するには、Ctrl+c を押します。
付録A High Availability アドオンを使った Load Balancer Add-Onの使用 リンクのコピーリンクがクリップボードにコピーされました!
図A.1 High Availability アドオンを使った Load Balancer Add-On
- 第一層 — Web 要求を分配する負荷分散を実行する LVS ルーター
- 第二層 — 要求を処理する Web サーバーセット
- 第三層 — Web サーバーへのデータを扱う High Availability アドオン
付録B 改訂履歴 リンクのコピーリンクがクリップボードにコピーされました!
改訂履歴 | |||
---|---|---|---|
改訂 1-15.3 | Tue Feb 10 2015 | ||
| |||
改訂 1-15.2 | Fri Feb 6 2015 | ||
| |||
改訂 1-15.1 | Fri Feb 6 2015 | ||
| |||
改訂 1-15 | Tue Dec 16 2014 | ||
| |||
改訂 1-13 | Thu Oct 9 2014 | ||
| |||
改訂 1-10 | Tue Nov 19 2013 | ||
| |||
改訂 1-8 | Fri Sep 27 2013 | ||
| |||
改訂 1-4 | Wed Nov 28 2012 | ||
| |||
改訂 1-3 | Mon Jun 18 2012 | ||
| |||
改訂 1-2 | Fri Dec 2 2011 | ||
| |||
改訂 1-1 | Wed Nov 10 2010 | ||
|
索引
シンボル
- /etc/sysconfig/ha/lvs.cf ファイル, /etc/sysconfig/ha/lvs.cf
- はじめに, はじめに
- その他の Red Hat Enterprise Linux ドキュメント, はじめに
- クラスター
- High Availability アドオンを使った Load Balancer Add-Onの使用, High Availability アドオンを使った Load Balancer Add-Onの使用
- コンポーネント
- Load Balancer Add-Onの, Load Balancer Add-On のコンポーネント
- ジョブのスケジューリング、Load Balancer Add-On, Load Balancer Add-On スケジューリング機能の概要
- スケジューリングする、ジョブ (Load Balancer Add-On), Load Balancer Add-On スケジューリング機能の概要
- セキュリティ
- Piranha Configuration Tool , Piranha Configuration Tool へのアクセス制限
- ダイレクトルーティング
- およびarptables_jf, ダイレクトルーティングおよび arptables_jf
- ネットワークアドレス変換 (参照 NAT)
- パケット転送, パケット転送をオンにする
- (参照 Load Balancer Add-On)
- フィードバック, フィードバック
- マルチポートサービス, マルチポートサービスと Load Balancer Add-On
- (参照 Load Balancer Add-On)
- ラウンドロビン (参照 ジョブのスケジューリング、Load Balancer Add-On)
- ルーティング
- Load Balancer Add-Onの前提条件, NAT を使って Load Balancer Add-On のネットワークインターフェースを設定する
- 実サーバー
- サービス設定, 実サーバーでサービスを設定する
- 最小接続 (参照 ジョブのスケジューリング、Load Balancer Add-On)
- 設定ファイルの同期, 設定ファイルの同期
- 重み付きラウンドロビン (参照 ジョブのスケジューリング、Load Balancer Add-On)
- 重み付き最小接続 (参照 ジョブのスケジューリング、Load Balancer Add-On)
A
- arptables_jf, ダイレクトルーティングおよび arptables_jf
C
- chkconfig, LVS ルーターでのサービス設定
F
- FTP, FTP の設定
- (参照 Load Balancer Add-On)
H
- High Availability アドオン
- Load Balancer Add-Onの使用, High Availability アドオンを使った Load Balancer Add-Onの使用
- および Load Balancer Add-On, High Availability アドオンを使った Load Balancer Add-Onの使用
I
- iptables , LVS ルーターでのサービス設定
- ipvsadm プログラム, ipvsadm
L
- Load Balancer Add-On
- /etc/sysconfig/ha/lvs.cf ファイル, /etc/sysconfig/ha/lvs.cf
- High Availability アドオンを使った Load Balancer Add-Onの使用, High Availability アドオンを使った Load Balancer Add-Onの使用
- ipvsadm プログラム, ipvsadm
- Load Balancer Add-Onを開始する, Load Balancer Add-Onを開始する
- LVS ルーター
- サービス設定, Load Balancer Add-On の初期設定
- プライマリーノード, Load Balancer Add-On の初期設定
- 必要なサービス, LVS ルーターでのサービス設定
- nanny デーモン, nanny
- NAT ルーティング
- 要件、ソフトウェア, NAT を使った Load Balancer Add-On ネットワーク
- 要件、ネットワーク, NAT を使った Load Balancer Add-On ネットワーク
- 要件、ハードウェア, NAT を使った Load Balancer Add-On ネットワーク
- Piranha Configuration Tool , Piranha Configuration Tool
- pulse デーモン, pulse
- send_arp プログラム, send_arp
- のコンポーネント, Load Balancer Add-On のコンポーネント
- ジョブのスケジューリング, Load Balancer Add-On スケジューリング機能の概要
- スケジューリングする、ジョブ, Load Balancer Add-On スケジューリング機能の概要
- ダイレクトルーティング
- および arptables_jf, ダイレクトルーティングおよび arptables_jf
- 要件、ソフトウェア, ダイレクトルーティング, ダイレクトルーティングを使った Load Balancer Add-On
- 要件、ネットワーク, ダイレクトルーティング, ダイレクトルーティングを使った Load Balancer Add-On
- 要件、ハードウェア, ダイレクトルーティング, ダイレクトルーティングを使った Load Balancer Add-On
- データの複製、実サーバー, 実サーバー間でのデータの複製とデータの共有
- パケット転送, パケット転送をオンにする
- マルチポートサービス, マルチポートサービスと Load Balancer Add-On
- FTP, FTP の設定
- ルーティングメソッド
- NAT, ルーティングメソッド
- ルーティング前提条件, NAT を使って Load Balancer Add-On のネットワークインターフェースを設定する
- 三層
- Load Balancer Add-On, Load Balancer Add-Onの三層構成
- 共有データ, 実サーバー間でのデータの複製とデータの共有
- 初期設定, Load Balancer Add-On の初期設定
- 設定ファイルの同期, 設定ファイルの同期
- LVS
- lvs デーモン, lvs
- NAT ルーティング
- 有効にする, LVS ルーターで NAT ルーティングを有効にする
- デーモン, lvs
- 実サーバー, Load Balancer Add-On の概要
- 概要, Load Balancer Add-On の概要
- lvs デーモン, lvs
N
- nanny デーモン, nanny
- NAT
- ルーティングメソッド、Load Balancer Add-On, ルーティングメソッド
- 有効にする, LVS ルーターで NAT ルーティングを有効にする
P
- Piranha Configuration Tool , Piranha Configuration Tool
- EDIT MONITORING SCRIPTS サブセクション, EDIT MONITORING SCRIPTS サブセクション
- REAL SERVER サブセクション, REAL SERVER サブセクション
- REDUNDANCY , REDUNDANCY
- VIRTUAL SERVER サブセクション, VIRTUAL SERVER サブセクション
- Firewall Mark , VIRTUAL SERVER サブセクション
- Persistence , VIRTUAL SERVER サブセクション
- Scheduling , VIRTUAL SERVER サブセクション
- Virtual IP Address , VIRTUAL SERVER サブセクション
- VIRTUAL SERVERS , VIRTUAL SERVERS
- の概要, Piranha Configuration Tool を使った Load Balancer Add-Onの設定
- アクセス制限, Piranha Configuration Tool へのアクセス制限
- グローバル設定 (GLOBAL SETTINGS) , グローバル設定 (GLOBAL SETTINGS)
- パスワード設定, Piranha Configuration Tool のパスワード設定
- ログインパネル, Piranha Configuration Tool へのログイン
- 制御/監視 (CONTROL/MONITORING) , 制御/監視 (CONTROL/MONITORING)
- 必要なソフトウェア, 必要なソフトウェア
- piranha-gui service, LVS ルーターでのサービス設定
- piranha-passwd , Piranha Configuration Tool のパスワード設定
- pulse service, LVS ルーターでのサービス設定
- pulse デーモン, pulse
S
- send_arp プログラム, send_arp
- sshd service, LVS ルーターでのサービス設定