ロードバランサーの管理
Red Hat Enterprise Linux
向け Load Balancer Add-On
Red Hat Enterprise Linux 向け Load Balancer Add-On
エディッション 6
Co pyright © 20 14 Red Hat, Inc.
This do cument is licensed by Red Hat under the
Creative Co mmo ns Attributio n-ShareAlike 3.0
Unpo rted License
. If yo u distribute this do cument, o r a mo dified versio n o f it, yo u must pro vide
attributio n to Red Hat, Inc. and pro vide a link to the o riginal. If the do cument is mo dified, all Red
Hat trademarks must be remo ved.
Red Hat, as the licenso r o f this do cument, waives the right to enfo rce, and agrees no t to assert,
Sectio n 4 d o f CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shado wman lo go , JBo ss, MetaMatrix, Fedo ra, the Infinity
Lo go , and RHCE are trademarks o f Red Hat, Inc., registered in the United States and o ther
co untries.
Linux ® is the registered trademark o f Linus To rvalds in the United States and o ther co untries.
Java ® is a registered trademark o f Oracle and/o r its affiliates.
XFS ® is a trademark o f Silico n Graphics Internatio nal Co rp. o r its subsidiaries in the United
States and/o r o ther co untries.
MySQL ® is a registered trademark o f MySQL AB in the United States, the Euro pean Unio n and
o ther co untries.
No de.js ® is an o fficial trademark o f Jo yent. Red Hat So ftware Co llectio ns is no t fo rmally
related to o r endo rsed by the o fficial Jo yent No de.js o pen so urce o r co mmercial pro ject.
The OpenStack ® Wo rd Mark and OpenStack Lo go are either registered trademarks/service
marks o r trademarks/service marks o f the OpenStack Fo undatio n, in the United States and o ther
co untries and are used with the OpenStack Fo undatio n's permissio n. We are no t affiliated with,
endo rsed o r spo nso red by the OpenStack Fo undatio n, o r the OpenStack co mmunity.
All o ther trademarks are the pro perty o f their respective o wners.
概要
概要
Lo ad Balancer Add-On
のシステムを構築することでルーティングや負荷分散機能向けの特殊サー
バー LVS (Linux Virtual Server) を使用する実か動揺サービスに対して可用性および拡張性の高いソ
リューションを実現します。本ガイドでは、Red Hat Enterprise Linux と Red Hat Enterprise
Linux 6
向け Load Balancer Add-On を使用したパフォーマンス性の高いシステムとサービスの構
成について説明しています。
. . . . . . . . . . . . . . . .
目次
目次
はじめに はじめに 1. 本書の表記規則 1.1. 書体の表記規則 1.2. 引用文の表記規則 1.3. 注記および警告 2. フィードバック 第第1 章章 Load Balancer Add- O n の概要の概要 1.1. Lo ad Balancer Ad d -O n の基本的な設定 1.1.1. 実サーバー間でのデータの複製とデータの共有 1.1.1.1. データを同期するよう実サーバーを設定する 1.2. Lo ad Balancer Ad d -O nの三層構成 1.3. Lo ad Balancer Ad d -O n スケジューリング機能の概要 1.3.1. スケジューリングのアルゴリズム 1.3.2. サーバーの重み付けとスケジューリング 1.4. ルーティングメソッド 1.4.1. NAT ルーティング 1.4.2. ダイレクトルーティング 1.4.2.1. ダイレクトルーティングと ARP 制限 1.5. 永続性とファイアウォールマーク 1.5.1. 永続性 1.5.2. ファイアウォールマーク 1.6 . Lo ad Balancer Ad d -O n — ブロックダイアグラム 1.6 .1. Lo ad Balancer Ad d -O n のコンポーネント 1.6 .1.1. p ulse 1.6 .1.2. lvs 1.6 .1.3. ip vsad m 1.6 .1.4. nanny
1.6 .1.5. /etc/sysco nfig /ha/lvs.cf 1.6 .1.6 . Piranha Co nfig uratio n To o l 1.6 .1.7. send _arp
第
第2 章章 Load Balancer Add- O n の初期設定の初期設定 2.1. LVS ルーターでのサービス設定
2.2. Piranha Co nfig uratio n To o l のパスワード設定 2.3. Piranha Co nfig uratio n To o l サービスの開始
2.3.1. Piranha Co nfig uratio n To o l Web サーバーポートの設定 2.4. Piranha Co nfig uratio n To o l へのアクセス制限
2.5. パケット転送をオンにする 2.6 . 実サーバーでサービスを設定する
第
第3章章 Load Balancer Add- O n の設定の設定
3.1. NAT を使った Lo ad Balancer Ad d -O n ネットワーク
3.1.1. NAT を使って Lo ad Balancer Ad d -O n のネットワークインターフェースを設定する 3.1.2. 実サーバー上でのルーティング
3.1.3. LVS ルーターで NAT ルーティングを有効にする 3.2. ダイレクトルーティングを使った Lo ad Balancer Ad d -O n
3.2.1. ダイレクトルーティングおよび arp tab les_jf 3.2.2. ダイレクトルーティングと ip tab les 3.3. 設定を組み合わせる 3.3.1. Lo ad Balancer Ad d -O nネットワーキングの一般的なヒント 3.3.1.1. 仮想 IP アドレス問題のトラブルシューティング 3.4. マルチポートサービスと Lo ad Balancer Ad d -O n 3 3 3 5 6 6 7 7 9 9 9 10 11 12 13 13 14 15 16 16 16 17 18 18 18 18 18 18 18 19 2 0 20 21 21 22 22 23 23 2 4 24 24 25 26 27 28 29 29 30 31 31
. . . . . . . . . . . . . . . . 3.4. マルチポートサービスと Lo ad Balancer Ad d -O n 3.4.1. ファイアウォールマークの割り当て 3.5. FTP の設定 3.5.1. FTP の動作 3.5.2. Lo ad Balancer Ad d -O n への影響 3.5.3. ネットワークパケットフィルタルールの作成 3.5.3.1. アクティブ接続のルール 3.5.3.2. パッシブ接続のルール 3.6 . ネットワークパケットフィルター設定の保存 第
第4 章章 Piranha Configurat ion T ool を使ったを使った Load Balancer Add- O nの設定の設定 4.1. 必要なソフトウェア
4.2. Piranha Co nfig uratio n To o l へのログイン 4.3. 制御/監視 (CO NTRO L/MO NITO RING ) 4.4. グローバル設定 (G LO BAL SETTING S) 4.5. REDUNDANCY
4.6 . VIRTUAL SERVERS
4.6 .1. VIRTUAL SERVER サブセクション 4.6 .2. REAL SERVER サブセクション
4.6 .3. EDIT MO NITO RING SCRIPTS サブセクション 4.7. 設定ファイルの同期
4.7.1. lvs.cf の同期 4.7.2. sysctl の同期
4.7.3. ネットワークパケットフィルタルールの同期 4.8 . Lo ad Balancer Ad d -O nを開始する
High Availabilit y アドオンを使ったアドオンを使った Load Balancer Add- O nの使用の使用 改訂履歴 改訂履歴 索引 索引 31 31 32 32 33 33 33 34 35 36 36 36 37 39 41 43 44 47 50 52 52 53 53 53 55 57 57
はじめに
はじめに
本書では、ロードバランサーのアドオンコンポーネントをインストール、設定、管理する情報を提供しま す。Load Balancer Add-Onは、トラフィックをサーバープールに送り出す特別のルーティング技術に よって、負荷を分散します。
本書は、Red Hat Enterprise Linux について高度な運用知識があり、クラスター、ストレージ、サーバーコ ンピューティングの概念を理解している方を対象としています。
本書は以下のような構成になっています。
1章Load Balancer Add-On の概要
2章Load Balancer Add-On の初期設定
3章Load Balancer Add-On の設定
4章Piranha Configuration Tool を使った Load Balancer Add-Onの設定
付録A High Availability アドオンを使った Load Balancer Add-Onの使用
Red Hat Enterprise Linux 6 の詳細については、以下の資料を参照してください。
Red Hat Enterprise Linux インストールガイド — Red Hat Enterprise Linux 6 のインストールに関する 情報を提供しています。
Red Hat Enterprise Linux 導入ガイド — Red Hat Enterprise Linux 6 の導入、設定、管理に関する情報 を提供しています。
Red Hat Enterprise Linux 6 の Load Balancer Add-Onと関連製品についての詳細は、以下の資料を参照 してください。
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 製品の現在のリリースに関する情報を提供します。
本ガイドを含め Red Hat のドキュメントについては HTML 版、PDF 版、EPUB 版がオンラインの
http://access.redhat.com/documentation/docs でご覧いただけます。
1.
本書の表記規則
本書の表記規則
本ガイドでは、一部の単語や語句を強調して、特定の情報に対する読者の注意を促すために、以下のような 表記規則を採用しています。
本ガイドでは、特定の単語や語句に対する注意を促すために、4 つの書体表記規則を採用しています。これ らの表記規則および適用される状況は、以下のとおりです。 太字の等幅フォント 太字の等幅フォント シェルコマンド、ファイル名、パスなど、システムへの入力を強調するために使用します。また、キー名や キーの組み合わせを強調するのにも使用します。以下が例となります。
作業ディレクトリ内の my_next_bestsel l i ng _no vel というファイルの内容を表示す るには、シェルプロンプトで cat my_next_bestsel l i ng _no vel というコマンドを 入力して Enter キーを押し、そのコマンドを実行します。 上記の例には、ファイル名、シェルコマンド、キー名が含まれており、すべて太字の等幅フォントで表示さ れていますが、文脈で区別することができます。 キーの組み合わせは、プラス記号 (+) で各キーがつながれているので、個別のキーと区別することができま す。以下が例となります。 Enter を押してコマンドを実行します。 C trl +Al t+F2 を押して仮想ターミナルに切り替えます。 第 1 の例では、押すべき特定のキー名が強調されています。第 2 の例では、3 つのキーを同時に押す、キー の組み合わせが強調されています。 ソースコードを記載する場合、その段落で言及されるクラス名、メソッド、関数、変数名、戻り値は上記の ように 太字の等幅フォント太字の等幅フォント で表示されます。以下が例となります。
ファイル関連のクラスには、fi l esystem (ファイルシステム)、fi l e (ファイル)、d i r (ディレクトリ) などがあります。各クラスにそれぞれ独自のパーミッションセットが関連 付けられています。 太字の可変幅フォント 太字の可変幅フォント この書体は、アプリケーション名、ダイアログボックスのテキスト、ラベル付きボタン、チェックボック ス/ラジオボタンのラベル、メニュータイトル、サブメニュータイトルなど、システムで表示される単語や 語句であることを示します。以下が例となります。 メインメニューバーから システムシステム → 設定設定 → マウスマウス の順で選択し、マウスの設定マウスの設定 を起動し ます。全般全般 タブで 左利き左利き のラジオボタンを選択して 閉じる閉じる をクリックし、マウスの主 ボタンを左から右へ切り替えます (左利きのユーザーが使用するのに適切な設定に変更しま す)。 g ed it ファイルに特殊文字を入力するには、メインのメニューバーから アプリケーションアプリケーション → アクセサリアクセサリ → 文字マップ文字マップ の順に選択します。次に 文字マップ文字マップ のメニューバーから 検検 索 索 → 検索検索… の順に選択して 検索検索フィールドに文字名を入力し、次を検索次を検索 をクリックしま す。検索対象の文字が 文字テーブル文字テーブル に強調表示されます。その文字をダブルクリックし て コピーする文字列コピーする文字列 のフィールドに表示されたら、コピーコピー ボタンをクリックします。こ の後に編集中のドキュメントに戻り、gedit のメニューバーから 編集編集 → 貼り付け貼り付け の順で 選択します。 上記のテキストには、アプリケーション名、システム全体のメニュー名と項目、アプリケーション固有のメ ニュー名、GUI インターフェースで使用されているボタンおよびテキストが含まれており、これらはすべ て、太字の可変幅フォントで表示されていますが、文脈で区別することができます。 太字斜体の等幅フォント 太字斜体の等幅フォント または 太字斜体の可変幅フォント太字斜体の可変幅フォント 太字の等幅フォントおよび太字の可変幅フォントに斜体を使用した場合には、いずれも置き換え可能な可変 テキストであることを意味します。斜体は、記載されている通りには入力しないテキスト、あるいは状況に よって変化するテキストを示します。以下が例となります。
ssh を使用してリモートマシンに接続するには、シェルプロンプトで ssh
username@ domain.name と入力します。リモートマシンが exampl e. co m で、そのマ
シン上のユーザー名が john である場合には、ssh jo hn@ exampl e. co m と入力してく ださい。
mo unt -o remo unt file-system のコマンドは、指定したファイルシステムを再マ ウントします。たとえば、/ho me ファイルシステムを再マウントするコマンドは mo unt -o remo unt /ho me となります。
現在インストール済みのパッケージのバージョンを確認するには、rpm -q package の コマンドを使用します。その結果、次のような出力が返されます: package-version-release ユーザー名、ドメイン名、ファイルシステム、パッケージ、バージョン、およびリリースが太字のイタ リック体で表示されている点に注意してください。これらの語句はプレースホルダーで、コマンドを発行す る際に入力するテキストまたはシステムによって表示されるテキストのいずれかです。 斜体は、著作物のタイトルを表すという標準的な用途の他に、重要な用語の初出時にも使用されます。以下 が例となります。 Publican は DocBook の出版システムです。
1.2.
引用文の表記規則
引用文の表記規則
端末の出力とソースコードは、周囲のテキストとは視覚的に区切られて表示されます。 端末に送信される出力は、ローマン体の等幅フォントローマン体の等幅フォント を使用して以下のように表示されます。 books Desktop documentation drafts mss photos stuff svn books_tests Desktop1 downloads images notes scripts svgsソースコードの表示にも ローマン体の等幅フォントローマン体の等幅フォント が使用されますが、以下のような構文強調表示が追 加されます。
static int kvm_vm_ioctl_deassign_device(struct kvm *kvm,
struct kvm_assigned_pci_dev *assigned_dev) {
int r = 0;
struct kvm_assigned_dev_kernel *match; mutex_lock(& kvm->lock);
match = kvm_find_assigned_dev(& kvm->arch.assigned_dev_head, assigned_dev->assigned_dev_id); if (!match) {
printk(KERN_INFO "%s: device hasn't been assigned before, "
"so cannot be deassigned\n", __func__); r = -EINVAL;
goto out; }
kvm_deassign_device(kvm, match); kvm_free_assigned_device(kvm, match);
out: mutex_unlock(& kvm->lock); return r; }
1.3.
注記および警告
注記および警告
本ガイドでは、見落としがちな情報に注意を促すために、次にあげる 3 つの視覚的スタイルを使用していま す。注記
注記
注記には、対象のタスクに関するヒント、ショートカット、その他のアプローチなどを記載してい ます。注記を無視しても、悪影響はありませんが、作業を効率的に行うためのコツを見逃してしまう 可能性があります。重要
重要
重要の欄には、現行セッションのみに適用される設定の変更や、更新を適用するのに再起動が必要 なサービスなど、見落としがちな情報を記載しています。「重要」と記載された事項を無視しても、 データ損失などには至りませんが、作業が思ったようにスムーズに進まなくなる可能性があります。警告
警告
警告は、無視しないでください。警告を無視すると、データ損失が発生する可能性が非常に高くなり ます。2.
フィードバック
フィードバック
本書内で誤字・脱字を発見された場合や、本書改善のためのご意見がございましたら、弊社にご連絡くださ い。その場合は、製品 Red Hat Enterprise Linux 6、コンポーネントdoc-Lo ad _Balan cer_Ad min ist rat io n、およびバージョン番号 6.1 で Bugzilla (http://bugzilla.redhat.com/bugzilla/) 内でご報告ください。
本書改善のご提案がある場合は、できるだけ詳しい説明をお願いします。エラーを発見された場合は、該当 セクションの番号と前後の文の一部を含めていただくと弊社でより迅速に発見することができます。
第
第1章
章 Load Balancer Add-On の概要
の概要
注記
注記
Red Hat Enterprise Linux 6.6 からは Piranha 負荷分散機能ソフトウェアに加え HAProxy および keepalived についても対応するようになります。 HAProxy および keepalived で Red Hat Enterprise Linux を設定する方法については Red Hat Enterprise Linux 7 のロードバランサーの管 理に関するドキュメントを参照してください。
複数の実サーバー全体の IP 負荷を分散させる目的で Linux Virtual Server (LVS) を提供するソフトウェア コンポーネントをひとつにまとめたセットが Load Balancer Add-On です。アクティブ LVS ルーター お
よび バックアップ LVS ルーターで稼働します。アクティブ LVS ルーターには以下の 2 つの役割がありま す。 複数の実サーバー全体の負荷分散 それぞれの実サーバー上にあるサービスの整合性チェック バックアップ LVS ルーターはアクティブ LVS ルーターを監視し、アクティブ LVS ルーターに障害が発生 した場合に引き継ぎを行います。
本章では以下のセクションに沿って Load Balancer Add-On の各コンポーネントおよび機能の概要を説明 していきます。
「Load Balancer Add-On の基本的な設定」 「Load Balancer Add-Onの三層構成」
「Load Balancer Add-On スケジューリング機能の概要」 「ルーティングメソッド」
「永続性とファイアウォールマーク」
「Load Balancer Add-On — ブロックダイアグラム」
1.1. Load Balancer Add-On
の基本的な設定
の基本的な設定
二層から成るシンプルな設定を 図1.1「Load Balancer Add-On の基本的な設定」 に示します。第一層はア クティブ LVS ルーターが 1 つ、バックアップ LVS ルーターが 1 つで構成されています。各 LVS ルーター には、インターネット用インターフェースとプライベートネットワーク用インターフェースの 2 種類の ネットワークインターフェースがあり、2 つのネットワーク間のトラフィックを規制します。この例では、 アクティブルーターが Network Address Translation (NAT) を使ってインターネットからのトラフィックを 第二層にある複数の実サーバー (サーバー数は状況に応じて可変) にダイレクトすると、実サーバーが必要と されるサービスを提供します。つまり、この例の実サーバーは専用のプライベートネットワークセグメント に接続されているため、パブリックのトラフィックはすべてアクティブ LVS ルーターを経由することにな ります。外部からはサーバーは一つのエンティティに見えます。
図
図1.1 Load Balancer Add-O n の基本的な設定の基本的な設定
LVS ルーターに届いたサービス要求は 仮想 IP アドレス (VIP) に送信されます。VIP とはサイト管理者が www.example.com など完全修飾ドメイン名を関連付けている公的にルーティングが可能なアドレスのた
め、1 仮想サーバー または複数の 仮想サーバー に割り当てられます。仮想サーバーとは特定の仮想 IP で
リッスンするよう設定されたサービスになります。Piranha Configuration Tool を使って仮想サー バーを設定する方法については 「VIR T UAL SER VER S」 を参照してください。フェイルオーバーの際に は VIP アドレスは次の LVS ルーターに移行されるため、引き続き利用することができます (別名: フロー ティング IP アドレス)。 LVS ルーターをインターネットに接続させるデバイスに複数の VIP アドレスをエイリアスさせることがで きます。例えば、インターネットに eth0 を接続する場合、複数の仮想サーバーを eth0 : 1 にエイリアスす ることができます。または、各仮想サーバーをサービスごと異なるデバイスに関連付けることもできます。 例えば、HTTP トラフィックは eth0 : 1 で FTP トラフィックは eth0 : 2 でそれぞれ処理することができ ます。 アクティブにできるのは一度にひとつの LVS ルーターのみです。アクティブルーターの役割は、仮想 IP ア ドレスからのサービス要求を実サーバーにリダイレクトすることです。リダイレクトは対応している 8 種類 の負荷分散アルゴリズムのいずれかをベースとします。これについては 「Load Balancer Add-On スケ ジューリング機能の概要」 で説明しています。 アクティブルーターはシンプルな send/expect のスクリプト を使って実サーバー上の特定サービスの全体 的な健全性を動的に監視します。HTTPS や SSL といった動的データを必要とするサービスの健全性確認 を補助する目的で、外部の実行可能ファイルを管理者側で呼び出すこともできます。実サーバー上のサービ スが正常に機能していない場合、アクティブルーターは正常な動作に戻るまでそのサーバーへのジョブの送 信を停止します。 予備システムの役割を果たすのがバックアップルーターです。LVS ルーターはプライマリーの外部パブ リックインターフェースを使って定期的にハートビートメッセージを交換、またフェイルオーバーの際は
プライベートインターフェースを使用します。バックアップノード側が想定している間隔でハートビート メッセージを受信できなかった場合、フェイルオーバーを開始してアクティブルーターの役割を引き継ぎ ます。フェイルオーバー時、障害が発生したルーターで提供していた VIP アドレスを引き継ぐため ARP ス プーフィング と呼ばれる技術を使用します。バックアップ LVS ルーターにより障害の発生したノード宛て に送信される IP パケットの宛先はバックアップ LVS ルーターであると通知されます。障害が発生したノー ドがアクティブに戻ると、バックアップノードは再びホットバックアップの役割を引き継ぐことになりま す。 静的な Web ページのように頻繁には変更が行われないデータを提供する場合は、実サーバー同士がノード 間でデータの自動同期を行わないため、 図1.1「Load Balancer Add-On の基本的な設定」 のシンプルな二 層設定が最適な設定になります。
1.1.1.
実サーバー間でのデータの複製とデータの共有
実サーバー間でのデータの複製とデータの共有
Load Balancer Add-On には実サーバー間で同一データを共有するためのビルトインコンポーネントがな いため、管理側で行えるのは以下の 2 つのオプションになります。 実サーバープール全体でデータを同期する 共有データにアクセスするるための第三層をトポロジーに追加する 実サーバー上へのデータのアップロードやデータの変更が限られたユーザーにしか許可されないようなサー バーの場合は最初のオプションが適しています。電子商取引サイト、インターネットによる通信販売など、 データの変更を多くのユーザーに許可するような設定の場合には第三層を追加するオプションの方がよいで しょう。
1 .1 .1 .1 .
データを同期するよう実サーバーを設定する
データを同期するよう実サーバーを設定する
実サーバーのプール全体でデータを同期させる方法はいろいろあります。例えば、Web エンジニアが任意 のページに更新を加えた場合、そのページがすべてのサーバーに同時に送られるようにするシェルスクリプ トを導入する、また rsync などのプログラムを使って全ノードを対象として変更が加えられたデータの複 製を一定の間隔で作成することもできます。 しかし、ファイルがユーザーによって絶えずアップロードされていたり、データベースのトランザクショ ンが発行されたりしているような過剰負荷の構成の場合、こうしたデータの同期方法では最適な動作は期待 できません。負荷が高い構成の場合には 三層のトポロジー が理想的なソリューションです。1.2. Load Balancer Add-On
の三層構成
の三層構成
Load Balancer Add-On の一般的な三層トポロジーを 図1.2「Load Balancer Add-Onの三層構成」 に示 します。インターネットからの要求がアクティブ LVS ルーターにより実サーバーのプールにルーティング されます。各実サーバーはネットワークを経由して共有データのソースにアクセスします。
図
図1.2 Load Balancer Add-O nの三層構成の三層構成
アクセス可能なデータが中央となる高可用性サーバーに格納されていて、実サーバーはエクスポートした NFS ディレクトリーまたは Samba 共有を使ってそのデータにアクセスするような構成がトラフィック量 の多い FTP サーバーには理想的な構成と言えます。また、トランザクションのため中央となる高可用性 データベースにアクセスを行うような Web サイトにもこのトポロジーをお勧めします。また、Load Balancer Add-Onでアクティブ-アクティブ設定を使用すると、これら両方の役割を同時に果たす高可用性 クラスターを設定することもできます。
上記の例では、第三層で Load Balancer Add-Onを使う必要はありませんが、高可用性のソリューション を使用しないと重大な単一点障害をもたらすことになります。
1.3. Load Balancer Add-On
スケジューリング機能の概要
スケジューリング機能の概要
実行できることです。この柔軟な負荷分散は Load Balancer Add-Onの設定時に選択できるスケジューリ ングアルゴリズムの多様性により実現しています。DNS の階層性質やクライアントマシンによるキャッシ ングが不均衡な負荷につながる ラウンドロビン DNS などの柔軟性に乏しい方法に比べ、Load Balancer Add-On の負荷分散は非常に優れています。また、ネットワークパケットレベルでの負荷分散により計算 オーバーヘッドが最小限に抑えられ拡張性が高まるため、LVS ルーターが使用する低レベルのフィルタリ ングの方がアプリケーションレベルの要求転送より優れていると言えます。 スケジューリング機能を使用すると、サービス要求をルーティングする際にアクティブルーター側で実サー バーのアクティビティや、オプションで管理者が割り当てた 重み 要素などを考慮させることができます。 重み割り当てを使うことで各マシンに任意の優先順位が与えられます。この形式のスケジューリング機能を 使うと、各種ハードウェアとソフトウェアの組み合わせを使用した複数の実サーバーから成るグループを作 成することができ、アクティブルーターが負荷を各実サーバーに均等に分散することができます。
Load Balancer Add-Onのスケジューリングのメカニズムは IP 仮想サーバー または IPVS モジュールと呼 ばれるカーネルパッチの集合で提供されます。このモジュールにより 、ひとつの IP アドレスで複数のサー バーが正しく動作するよう設計されている layer 4 (L4) トランスポート層の切り替えが可能になります。 実サーバーへのパケットを効率的に追跡、ルーティングするため、IPVS はカーネル内に IPVS テーブル を 構築します。アクティブ LVS ルーターにより仮想サーバーアドレスとプール内の実サーバー間での要求の リダイレクトに使用されます。IPVS テーブルはクラスターメンバーの可用性に応じてそのメンバーの追加 や削除を行う ipvsadm というユーティリティで継続的に更新されます。
1.3.1.
スケジューリングのアルゴリズム
スケジューリングのアルゴリズム
IPVS テーブルの構造は管理者が仮想サーバーに選択するスケジューリングアルゴリズムによって異なりま す。クラスター化できるサービスタイプとこれらのサービスのスケジューリングでの柔軟性を最大限に利用 するため、Red Hat Enterprise Linux では以下のようなスケジューリングアルゴリズムを提供しています。 スケジューリングアルゴリズムの割り当て方については 「VIR T UAL SER VER サブセクション」 を参照し てください。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.
サーバーの重み付けとスケジューリング
サーバーの重み付けとスケジューリング
Load Balancer Add-On の管理者は実サーバープール内の各ノードに対して 重み を割り当てることができ ます。整数値で設定する重みは 重み付けを認識する スケジューリングアルゴリズムならいずれのアルゴリ ズムにも組み入れられます (weighted least-connection など)。また、LVS ルーターで異なる処理能力の ハードウェアにより均等に負荷を分散する場合に役立ちます。 重みは互いに相対的な割合として機能します。例えば、ある実サーバーに 1 の重みを付け、別のサーバーに は 5 の重みを付けた場合、1 の重みを付けたサーバーが 1 回接続される度、5 の重みを付けたサーバーは 5 回接続されます。実サーバーのデフォルトの重み値は 1 です。 実サーバープール内でそれぞれ異なるハードウェア構成のノードに重みを付けるとクラスターでの負荷分散 をより効率的に行う場合に役立ちますが、 weighted least-connection スケジューリングで仮想サーバーが 設定されている際、任意の実サーバーがその実サーバープールに挿入されると、一時的に不均衡が生じる場 合があります。例えば、実サーバープールに 3 台のサーバーがあったとします。サーバー A と B に 1 の重 みが付けられ、サーバー C には 2 の重みが付けられていたとします。サーバー C が何らかの理由でダウン した場合、放棄された負荷がサーバー A と B に均等に分散されます。しかし、サーバー C がオンラインに 復帰すると、LVS ルーター側でサーバー C の接続がまったくないと判断され、サーバー A および B と同等 になるまで着信要求をすべてサーバー C に集中的に振り分けることになります。
この現象を避けるため、管理側で仮想サーバーを 休止 サーバーにすることができます。これを利用する と、上述のような実サーバー C は仮想サーバーテーブルから削除される代わりに重みが 0 に設定されま す。これにより実質このサーバーは無効になります。実サーバー C が利用できる状態になると、オリジナル の重み値に戻され再び有効になります。
1.4 .
ルーティングメソッド
ルーティングメソッド
Red Hat Enterprise Linux では Load Balancer Add-On に ネットワークアドレス変換 (NAT ルーティン グ) を使用します。使用できるハードウェアを活用し、既存ネットワークに Load Balancer Add-On を統 合する際に優れた柔軟性を得ることができます。
1.4 .1. NAT
ルーティング
ルーティング
インターネットとプライベートネットワーク間での要求の移動に NAT ルーティングを利用している Load Balancer Add-On を 図1.3「NAT ルーティングを実装した Load Balancer Add-On」 に示します。
図
図1.3 NAT ルーティングを実装したルーティングを実装した Load Balancer Add-O n
この例の場合、アクティブ LVS ルーターには 2 種類の NIC があります。インターネット用の NIC には eth0 に 実際の IP アドレス を持たせフローティング IP アドレスを eth0:1 にエイリアスしています。プラ イベートネットワーク用の NIC には eth1 に実際の IP アドレスを持たせフローティング IP アドレスを eth1:1 にエイリアスしています。フェイルオーバーが発生すると、インターネット側仮想インターフェー スとプライベートネットワーク側仮想インターフェースがバックアップ LVS ルーターに同時に引き継がれ ます。プライベートネットワークに配置している実サーバーはすべて NAT ルーターのフローティング IP を デフォルトのルートとして使用しアクティブ LVS ルーターと通信を行うため、インターネットからの要求 への応答に支障をきたすことはありません。
また、LVS ルーターのパブリックのフローティング IP アドレスとプライベートの NAT フローティング IP アドレスは物理的な NIC にそれぞれエイリアスされています。それぞれのフローティング IP アドレスを LVS ルーターノード上の各物理デバイスに関連付けることはできますが、NIC を 3 つ以上持たせる必要は ありません。 このトポロジーを使うと、アクティブ LVS ルーターは要求を受信して適切なサーバーにルーティングしま す。実サーバーはその要求を処理してパケットを LVS ルーターに返します。LVS ルーターはネットワーク アドレス変換を使ってパケット内の実サーバーのアドレスを LVS ルーターのパブリック VIP アドレスに置 き換えます。実サーバーの本当の IP アドレスは要求を行っているクライアントからは見えないよう隠して いるため、IP マスカレード と呼ばれます。 NAT ルーティングを使用する場合は、実サーバーにするマシンの種類や稼働させるオペレーティングシス テムの種類に制限はありません。ただし、発信要求および着信要求のいずれも LVS ルーターで処理しなけ ればならないため、大規模なクラスター導入の場合には LVS ルーターがボトルネックとなる場合がありま す。
1.4 .2.
ダイレクトルーティング
ダイレクトルーティング
ダイレクトルーティングを使用する Load Balancer Add-On 設定を構築すると、他の Load Balancer Add-On のネットワークトポロジーよりもパフォーマンス性が高くなります。発信パケットを LVS ルー ター経由で渡すのではなく、実サーバーでパケットを処理、要求元のユーザーに直接ルーティングすること ができます。ダイレクトルーティングは、LVS ルーターのジョブを着信パケットの処理だけに特化させる ことで、ネットワークパフォーマンスの問題が発生する可能性を低減します。
図
図1.4 ダイレクトルーティングで実装したダイレクトルーティングで実装した Load Balancer Add-O n
一般的なダイレクトルーティングによる Load Balancer Add-On の設定では、LVS ルーターは仮想 IP (VIP) を使って着信サーバー要求を受け取り、スケジューリングアルゴリズムを使用してこの要求を実サー バーにルーティングします。実サーバーはこの要求を処理すると LVS ルーターを迂回して直接クライアン トに応答を送信します。実サーバーからクライアントへの発信パケットのルーティングを LVS ルーターに 行わせると、ネットワーク負荷が高い環境ではボトルネックとなる可能性があります。ダイレクトルーティ ングメソッドの場合には、この負担を LVS ルーターにかけることなく実サーバーを追加できるという拡張 性を備えています。
1 .4 .2 .1 .
ダイレクトルーティングと
ダイレクトルーティングと ARP 制限
制限
Load Balancer Add-On でダイレクトルーティングを使用すると役に立つ利点が多くありますが、一方で 制限もあります。ダイレクトルーティングでの Load Balancer Add-On に関する最も一般的な問題として
アドレス解決プロトコル (ARP) に関する問題があります。
インターフェース上のクライアントは要求を IP アドレスに送信します。ネットワークルーターは ARP を 使って IP アドレスをマシンの MAC アドレスに関連付けることで要求を宛先に送信します。ARP 要求が ネットワークに接続されているすべてのマシンにブロードキャストされ、IP アドレスと MAC アドレスの正 しい組み合わせを持つマシンがパケットを受け取ることになります。IP と MAC の関連性は ARP キャッ シュに保存され、定期的に消去と再保存が行われます (通常 15 分ごと)。
任意の IP アドレスに送信されるクライアント要求はそれを処理する MAC アドレスに関連付けられなければ なりません。Load Balancer Add-Onシステムの仮想 IP アドレスも MAC アドレスに関連付けなければな りません。これがダイレクトルーティングによる Load Balancer Add-On 設定での ARP 要求で問題にな ります。LVS ルーターと実サーバーはいずれも同じ VIP が与えられているため、ARP 要求はこの VIP に関 連付けられているマシンすべてに対してブロードキャストされます。このため、VIP が実サーバーのいずれ か 1 台に直接関連付けられてしまい要求を直接処理してしまったり、LVS ルーターを完全に迂回してしま い Load Balancer Add-Onを設定している意味がなくなってしまうなどの問題の原因となることがありま す。
この問題を解決するには、着信要求が実サーバーではなく、必ず LVS ルーターに送信されるようにするこ とです。arptabl es_jf または i ptabl es パケットフィルタリングツールを使用すると以下の理由でこ れを行うことができます。
arptabl es_jf は ARP が VIP と実サーバーを関連付けないようにします。
i ptabl es メソッドの場合、実サーバー上での VIP 設定はまったく行わないため ARP に関する問題を 完全回避することができます。
ダイレクトルーティングによる Load Balancer Add-On 環境で arptabl es や i ptabl es を使用する方 法については 「ダイレクトルーティングおよび arptabl es_jf」 または 「ダイレクトルーティングと
i ptabl es」を参照してください。
1.5.
永続性とファイアウォールマーク
永続性とファイアウォールマーク
状況によっては、Load Balancer Add-Onの負荷分散アルゴリズムを使って要求を最適なサーバーに送信す るのではなく、クライアント側から同じ実サーバーに繰り返し再接続を行わせた方がよい場合もあります。 例えば、マルチスクリーンのウェブ申し込みやクッキー、SSL、FTP 接続などが挙げられます。このよう な場合、コンテキストを保持するため同じサーバーがトランザクションを処理しないと、クライアントが適 切に機能しないことがあります。Load Balancer Add-On ではこの状況に対処するため、永続性 と ファイ
アウォールマーク という 2 つの機能を提供します。
1.5.1.
永続性
永続性
永続性は有効にするとタイマーのように動作します。クライアントがサービスに接続すると、Load Balancer Add-On では指定期間の最終接続を記憶します。同じ期間内に同じクライアント IP アドレスが接 続を行うと、前回接続したサーバーと同じサーバーに送信されます (負荷分散メカニズムを無視)。指定期間 を過ぎてから接続が発生した場合は設定されているスケジューリングルールにしたがって処理されます。 また、永続性を使うと、管理側でサブネットマスクを指定して、どのアドレスがより高い永続性を持つかを 管理するツールとして、クライアント IP アドレステストに適用することができます。こうすることで、接 続をそのサブネットにグループ化できます。 通信に複数のポートを使用する FTP などのプロトコルの場合、宛先が別々のポートの接続をグループ化す ることがとても重要な場合があります。ただし、宛先が別々のポートの接続をグループ化する上で発生する 問題に対処する場合、永続性は最も効率的な方法とは言えません。このような場合には ファイアウォール マーク を使用するのが最適です。1.5.2.
ファイアウォールマーク
ファイアウォールマーク
プロトコルに使用されている複数のポートのグループ化が行える簡単で効率的な方法がファイアウォール マークです。例えば、インターネット通販の運営に Load Balancer Add-On を導入した場合、ファイア ウォールマークを使ってポート 80 上の HTTP 接続とポート 443 上の安全な HTTPS 接続をまとめること ができます。各プロトコルの仮想サーバーに同じファイアウォールマークを割り当てると、LVS ルーター は接続開始後すべての要求を同じ実サーバーに転送するため、トランザクションの状態情報を保持すること ができるようになります。ファイアウォールマークは効率的なだけでなく使い勝手もよいため、Load Balancer Add-On の管理の際 に接続をグループ化する場合はできる限り永続性ではなくファイアウォールマークを使用してください。た だし、クライアントを再接続する場合に一定期間は必ず同じサーバーに接続されるよう設定する場合はファ イアウォールと併用して永続性も仮想サーバーに追加する必要があります。
1.6. Load Balancer Add-On —
ブロックダイアグラム
ブロックダイアグラム
LVS ルーターは複数プログラムの集合を使用してクラスターメンバーやクラスターサービスを監視しま す。図1.5「Load Balancer Add-On のコンポーネント」 では、各種プログラムがアクティブ LVS ルー ターとバックアップ LVS ルーターの両方でクラスターを管理するためどのように動作しているかを示しま す。
図
図1.5 Load Balancer Add-O n のコンポーネントのコンポーネント
pul se デーモンはアクティブ LVS ルーターとバックアップ LVS ルーターの両方で実行させます。バック アップルーター側の pul se からアクティブルーターのパブリックインターフェースに対して ハートビー ト が送信され、アクティブルーターが正しく動作しているか確認が行われます。アクティブルーター側の pul se は l vs デーモンを開始してバックアップルーターからの ハートビート クエリーに応答します。 l vs デーモンが開始されると、i pvsad m ユーティリティが呼び出されカーネル内で IPVS ルーティング テーブルを設定し管理します。また、各実サーバーで設定されている各仮想サーバーに nanny プロセスが 開始されます。nanny の各プロセスは任意の実サーバーで設定されている任意のサービスの状態をチェッ
クし、そのサービスが誤動作していないか l vs デーモンに伝えます。誤動作が検出されると、l vs デーモ ンは IPVS ルーティングテーブルからその実サーバーを取り除くよう i pvsad m に指示を出します。 バックアップルーター側でアクティブルーターから応答が受信できないと、バックアップルーターは send _arp を呼び出してすべての仮想 IP アドレスをバックアップノードの NIC ハードウェアアドレス (MAC アドレス) に再割り当てしてフェイルオーバーを開始します。アクティブルーターの l vs デーモンを シャットダウンするコマンドがパブリックネットワークインターフェースとプライベートネットワークイ ンターフェースの両方を経由してアクティブルーターに送信され、バックアップノードの l vs デーモンが 起動、設定されている仮想サーバーの要求の受け取りを開始します。
1.6.1. Load Balancer Add-On
のコンポーネント
のコンポーネント
LVS ルーター内の各ソフトウェアコンポーネントの詳細を 「pul se」 に示します。
1 .6 .1 .1 .
pul seLVS ルーターに関連する他のすべてのデーモンを開始する制御プロセスです。このデーモンは起動時に /etc/rc. d /i ni t. d /pul se スクリプトで起動され、設定ファイル /etc/sysco nfi g /ha/l vs. cf を読み込みます。アクティブルーター側の pul se により LVS デーモンが起動されます。バックアップ ルーター側の pul se からユーザー設定が可能な間隔でシンプルなハートビートが実行されアクティブルー ター側の健全性が確認されます。ユーザー設定された間隔を過ぎてもアクティブルーター側が応答できない 場合、フェイルオーバーが開始されます。フェイルオーバー中、バックアップルーター側の pul se からア クティブルーター側の pul se デーモンに対してすべての LVS サービスをシャットダウンするよう指示が 出され、フローティング IP アドレスをバックアップルーターの MAC アドレスに再割り当てするため send _arp プログラムが開始、l vs デーモンが起動されます。
1 .6 .1 .2 .
l vs l vs デーモンは pul se に呼び出されるとアクティブ LVS ルーターで稼働します。設定ファイル/etc/sysco nfi g /ha/l vs. cf を読み込み、i pvsad m ユーティリティを呼び出して IPVS ルーティン グテーブルを構築し管理を行います。また、設定されている Load Balancer Add-Onの各サービスにそれ ぞれ nanny プロセスを割り当てます。nanny により実サーバーがダウンしていることが報告される と、l vs より i pvsad m ユーティリティに IPVS ルーティングテーブルからその実サーバーを削除するよ う指示が出されます。
1 .6 .1 .3.
i pvsad mカーネル内の IPVS ルーティングテーブルの更新を行います。i pvsad m を呼び出し IPVS ルーティング テーブル内のエントリーの追加、変更、削除を行うことで l vs デーモンは Load Balancer Add-On の設定 および管理を行っています。
1 .6 .1 .4 .
nannynanny 監視デーモンはアクティブ LVS ルーター上で稼働します。このデーモンを使ってアクティブルー ターは各実サーバーの健全性を確認、オプションでその負荷も監視します。各実サーバーで定義されている サービスごとに個別のプロセスが実行されます。
1 .6 .1 .5 .
/etc/sysco nfi g /ha/l vs. cfLoad Balancer Add-On の設定ファイルです。直接または間接的にすべてのデーモンが設定情報をこの ファイルから取得することになります。
Load Balancer Add-On の監視、設定、管理を行う Web ベースのツールです。Load Balancer Add-On の設定ファイル /etc/sysco nfi g /ha/l vs. cf 管理用のデフォルトツールになります。
1 .6 .1 .7 .
send _arpフェイルオーバーの際、フローティング IP アドレスがあるノードから別のノードに変更されるとき、この プログラムにより ARP ブロードキャストが送信されます。
Red Hat Enterprise Linux を LVS ルーターに設定する前に行うべきインストール後の重要な設定手順につ いては 2章Load Balancer Add-On の初期設定で説明します。
第
第2章
章 Load Balancer Add-On の初期設定
の初期設定
Red Hat Enterprise Linux をインストールしたら、LVS ルーターと実サーバーをセットアップするために 基本的なステップを実行する必要があります。本章では、これらのステップを詳述します。
注記
注記
Load Balancer Add-On 開始後にアクティブノードになる LVS ルーターノードは、プライマリー ノード とも呼ばれます。Load Balancer Add-On の設定時には、プライマリーノードで Piranha Co n f ig u rat io n T o o l を使います。
2.1. LVS
ルーターでのサービス設定
ルーターでのサービス設定
Load Balancer Add-On の設定に必要なコンポーネントはすべて Red Hat Enterprise Linux インストール プログラムによってインストールされますが、Load Balancer Add-On を設定する前に適切なサービスを アクティブにしておく必要があります。LVS ルーターに対して起動時に適切なサービスが開始するよう設定 します。起動時にサービスをアクティブにするツールが Red Hat Enterprise Linux には 3 種類あります。 コマンドラインプログラムの chkco nfi g 、ncurses ベースのプログラム ntsysv、グラフィカルな Services Co n f ig u rat io n T o o l です。いずれのツールを使用する場合にも root でのアクセスが必要に なります。
注記
注記
root アクセスを取得するには、シェルプロンプトを開いて su - コマンドを入力した後 root パス ワードを入力します。以下に例を示します。 $ su - Password:root password LVS ルーターで以下の 3 つのサービスを起動時にアクティブにする必要があります。 pi ranha-g ui サービス (プライマリーノードのみ) pul se サービス sshd サービス マルチポートサービスをクラスター化しているまたはファイアウォールマークを使用している場合 は、i ptabl es サービスも有効にする必要があります。 これらのサービスはランレベル 3 およびランレベル 5 の両レベルでアクティブにしておくのが最適で す。chkco nfi g を使ってアクティベートするには、以下のコマンドを各サービスに対して実行します。 /sbi n/chkco nfi g --l evel 35 daemon o n上記のコマンドの daemon にはアクティブにするサービスの名前を入れてください。システム上のサービス 一覧、そのサービスがアクティブにされるランレベルなどを表示する場合は次のコマンドを実行します。 /sbi n/chkco nfi g --l i st
警告
警告
chkco nfi g を使用して上記のサービスをオンにしても直ちにデーモンを開始するわけではありま せん。デーモンを直ちに開始する場合は /sbi n/servi ce コマンドを使用しま
す。/sbi n/servi ce コマンドの使用例については 「Piranha Configuration Tool サービス の開始」 を参照してください。
ランレベルおよび ntsysv や Services Configuration Tool を使ったサービスの設定方法については Red Hat Enterprise Linux System Administration Guide の Controlling Access to Services の章を参照してく ださい。
2.2. Piranha Configurat ion T ool
のパスワード設定
のパスワード設定
Piran h a Co n f ig u rat io n T o o l をプライマリー LVS ルーターで最初に使用する前に、パスワードを作成 してこのツールへのアクセスを制限する必要があります。これを行うには、root でログインして以下のコマ ンドを実行します。
/usr/sbi n/pi ranha-passwd
このコマンドの入力後にプロンプトが表示されたら、管理用のパスワードを作成します。
警告
警告
パスワードの安全性を確保するため、固有名詞や一般的に使用されている略語、言語にかかわらず辞 書に載っている単語などは含めないようにしてください。システム上でパスワードを暗号化しないま ま放置しないようにしてください。アクティブな Piranha Configuration Tool セッション中にパスワードが変更された場合は、管理者は 新たなパスワードを提供するようにプロンプト表示されます。
2.3. Piranha Configurat ion T ool
サービスの開始
サービスの開始
Piran h a Co n f ig u rat io n T o o l のパスワード設定後に、/etc/rc. d /i ni t. d /pi ranha-g ui にある pi ranha-g ui サービスを開始、または再起動します。これには、以下のコマンドを root で入力します。 /sbi n/servi ce pi ranha-g ui start
または
/sbi n/servi ce pi ranha-g ui restart
このコマンドを実行すると、/usr/sbi n/pi ranha_g ui -> /usr/sbi n/httpd のシンボリックリン クが呼び出され Apache HTTP Server のプライベートセッションが開始されます。安全上、httpd の pi ranha-g ui バージョンは piranha ユーザーとして別プロセスで実行されます。実際には httpd サー ビスは pi ranha-g ui によって開始されるため以下の点に注意してください。
1. Apache HTTP Server をシステムにインストールしておく必要があります。
2. Apache HTTP Server を servi ce コマンドを使って停止、または再開すると pi ranha-g ui サービスが停止します。
警告
警告
LVS ルーターで /sbi n/servi ce httpd sto p もしくは /sbi n/servi ce httpd restart が実行した場合は、pi ranha-g ui サービスを以下のコマンドで開始する必要があります。 /sbi n/servi ce pi ranha-g ui start
Load Balancer Add-On の設定を開始するのに必要なサービスは pi ranha-g ui サービスのみです。ただ し、Load Balancer Add-On を遠隔から設定する場合は、sshd サービスも必要になります。Piranha Co n f ig u rat io n T o o l を使った設定が完了するまでは、pul se サービスを開始する必要は ありませ ん。pul se サービスの開始については 「Load Balancer Add-Onを開始する」 を参照してください。
2.3.1. Piranha Configurat ion T ool Web
サーバーポートの設定
サーバーポートの設定
Piran h a Co n f ig u rat io n T o o l はデフォルトではポート 3636 で稼働します。このポート番号を変更す る場合は、pi ranha-g ui Web サーバー設定ファイル /etc/sysco nfi g /ha/co nf/httpd . co nf の セクション 2 内にある Li sten 36 36 の行を変更します。
Piran h a Co n f ig u rat io n T o o l を使用するには、最低でもテキストベースの Web ブラウザが必要になり ます。プライマリー LVS ルーター上で Web ブラウザを開始する場合は、ロケーション
http: //localhost: 36 36 を開きます。localhost の部分をプライマリー LVS ルーターのホスト名または IP アドレスに置き換えると、Web ブラウザでどこからでも Piranha Configuration Tool にアクセス できます。
ブラウザで Piranha Configuration Tool に接続したら、設定サービスにアクセスするためログインし なければなりません。ユーザー名ユーザー名 (Username) フィールドに pi ranha 、パスワードパスワード (P asswo rd ) フィールドに pi ranha-passwd で設定したパスワードをそれぞれ入力します。
これで Piranha Configuration Tool が稼働し始めます。ネットワーク経由でこのツールにアクセスで きるメンバーを制限したい場合があります。次のセクションではアクセスの制限を実施する方法を見ていき ます。
2.4 . Piranha Configurat ion T ool
へのアクセス制限
へのアクセス制限
Piran h a Co n f ig u rat io n T o o l では、有効なユーザー名とパスワードの組み合わせが要求されます。し かし、Piranha Configuration Tool に送られるデータはすべてプレーンテキストなので、アクセスを 信頼できるネットワークまたはローカルマシンに限定することが推奨されます。
アクセスを制限する最も簡単な方法は /etc/sysco nfi g /ha/web/secure/. htaccess を編集して Apache HTTP Server に組み込まれているアクセス制御メカニズムを利用する方法です。このファイルを 変更した後は、サーバーがディレクトリにアクセスする度 . htaccess ファイルをチェックするた め、pi ranha-g ui サービスを再起動する必要はありません。 デフォルトでは、このディレクトリのアクセス制御は誰にでも制限なくディレクトリコンテンツの読み取り を許可しています。デフォルトのアクセスを以下に示します。 Order deny,allow Allow from all
Piran h a Co n f ig u rat io n T o o l へのアクセスをローカルホストのみに制限するには、. 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 192.168.1.100 Allow from 172.16.57
この例では、IP アドレス 192.168.1.100 のマシンと、172.16.57/24 ネットワーク上の マシンの Web ブラ ウザのみが Piranha Configuration Tool にアクセスできます。
警告
警告
/etc/sysco nfi g /ha/web/secure/ ディレクトリ内の設定ページへのアクセスについては Piran h a Co n f ig u rat io n T o o l の . htaccess ファイルを編集すると行うことができます が、/etc/sysco nfi g /ha/web/ ディレクトリ配下のログインおよびヘルプページへのアクセス は制限できません。このディレクトリへのアクセスを制限する場合
は、/etc/sysco nfi g /ha/web/secure/. htaccess と同じ o rd er、al l o w、d eny の行を 持たせた . htaccess ファイルを /etc/sysco nfi g /ha/web/ ディレクトリ内に作成してくだ さい。
2.5.
パケット転送をオンにする
パケット転送をオンにする
LVS ルーターが実サーバーに正確にネットワークパケットを転送するためには、カーネル内で各 LVS ルー ターノードの IP 転送をオンにしておく必要があります。root でログインして /etc/sysctl . co nf 内の net. i pv4 . i p_fo rward = 0 の行を以下のように変更します。
net.ipv4.ip_forward = 1
システムを再起動すると変更が反映されます。
IP 転送がオンになっているか確認するため root で次のコマンドを実行します。 /sbi n/sysctl net. i pv4 . i p_fo rward
上記のコマンドで 1 が返される場合は IP 転送が有効になっています。0 が返される場合は以下のコマンド を使って手作業でオンにすることができます。
/sbi n/sysctl -w net. i pv4 . i p_fo rward = 1
2.6.
実サーバーでサービスを設定する
実サーバーでサービスを設定する
実サーバーが Red Hat Enterprise Linux システムの場合は、起動時に適切なサーバーデーモンがアクティ ブになるよう設定しておきます。Web サービスの httpd や FTP サービスまた Telnet サービスの xi netd などのデーモンがこれに該当します。
また、実サーバーに遠隔からもアクセスできると便利なため sshd デーモンもインストールして実行してお いてください。