バージョン 2.0
GD88-7807-03
ご注意
本書の情報およびそれによってサポートされる製品をご使用になる前に、付録 I, 特記事項に記載する一般情報をお読みください。 |
本マニュアルに関するご意見やご感想は、次の URL からお送りください。今後の参考にさせていただきます。
http://www.ibm.com/jp/manuals/main/mail.html
なお、日本 IBM 発行のマニュアルはインターネット経由でもご購入いただけます。詳しくは
http://www.ibm.com/jp/manuals/ の「ご注文について」をご覧ください。
(URL は、変更になる場合があります)
|
©Copyright International Business Machines Corporation 2001. All rights reserved.
©Copyright IBM Japan 2001
Content Based Routing コンポーネントの計画
Content Based Routing コンポーネントの構成
Consultant for Cisco CSS Switches コンポーネントの計画
Consultant for Cisco CSS Switches コンポーネントの構成
付録 B. Dispatcher、CBR、および Mailbox Locator のコマンド解説
付録 E. Consultant for Cisco CSS Switches のコマンド解説
付録 G. Dispatcher、CBR、および Caching Proxy を使用する 2 層 high availability 構成例
本書は、 IBM(R) WebSphere(TM) Edge Server Network Dispatcher for AIX, Linux, Solaris, および Windows 2000 における計画、インストール、構成、および障害追及の方法について説明しています。この製品は、以前は SecureWay Network Dispatcher、eNetwork Dispatcher、および Interactive Network Dispatcher と呼ばれていました。
本書の最新のバージョンは、WebSphere Edge Server Web サイトで HTML 形式および PDF 形式で入手することができます。オンライン・ブックをアクセスするには、以下の URL を表示してください。
http://www.ibm.com/software/webservers/edgeserver/library.html
WebSphere Edge Server Web サイトは、 Network Dispatcher を使用してサーバー・パフォーマンスを最大化する方法に関する最新の詳細情報を提供します。構成例とシナリオが含まれています。この Web サイトをアクセスするには、次の URL を表示してください。
http://www.ibm.com/software/webservers/edgeserver
Network Dispatcher に関する最新の更新および使用法のヒントについては、 WebSphere Edge Server サポート Web ページを表示して、 Search for Network Dispatcher hints and tips をクリックします。この Web ページをアクセスするには、以下を表示してください。
http://www.ibm.com/software/webservers/edgeserver/support.html
どのようにすれば Network Dispatcher が迅速に機能できるでしょうか ? 以下の例について考えてみます。
Intersplash Corporation の Web マスターが、 2 つの HTTP サーバーをもつローカル Web サイトを管理していると仮定します。今までは、ラウンドロビン方式を使用してこの 2 つのサーバーの負荷を管理してきましたが、最近事業環境が好転し、顧客からサイトにアクセスできないという苦情が寄せられるようになりました。この状況をどう解決したらよいでしょうか。
http://www.ibm.com/software/webservers/edgeserver を参照して、最新バージョンの Network Dispatcher をダウンロードしてください。この製品には、 Dispatcher、 Content Based Routing (CBR)、 Mailbox Locator、 Site Selector、および Consultant for Cisco CSS Switches (Cisco Consultant) という 5 つのコンポーネントがあります。この章では、この Dispatcher のコンポーネントについて説明していきます。
このクイック・スタートの例では、 Dispatcher コンポーネントの MAC 転送メソッドを使用する 3 つのローカル接続ワークステーションを構成して、 2 つの Web サーバー間の Web トラフィックをロード・バランシングする方法を示します。この構成は、本質的に他の任意の TCP またはステートレス UDP アプリケーションの通信を平衡化する場合と同じです。
クイック・スタートの例の場合、3 つのワークステーションと 4 つの IP アドレスが必要です。ワークステーションの 1 つは Dispatcher として使用され、他の 2 つは Web サーバーとして使用されます。 各 Web サーバーには IP アドレスが 1 つずつ必要です。 Dispatcher ワークステーションには、実アドレスが 1 つと、ロード・バランシングを行うアドレスが 1 つ必要です。
ワークステーション | 名前 | IP アドレス |
---|---|---|
1 | server1.intersplash.com | 9.67.67.101 |
2 | server2.intersplash.com | 9.67.67.102 |
3 | server3.intersplash.com | 9.67.67.103 |
ネットマスク = 255.255.255.0 |
各ワークステーションには、標準のイーサネット・ネットワーク・インターフェース・カードが 1 つずつあります。
Name= www.intersplash.com IP=9.67.67.104
server2.intersplash.com および server3.intersplash.com にあるループバック・インターフェースに www.intersplash.com の別名を追加してください。
ifconfig lo0 alias www.intersplash.com netmask 255.255.255.0
ifconfig lo0:1 www.intersplash.com 127.0.0.1 up
これで、2 つの Web サーバー・ワークステーションに必要なすべての構成ステップが完了しました。
Dispatcher の場合は、コマンド行、構成ウィザード、またはグラフィカル・ユーザー・インターフェース (GUI) を使用して構成を作成できます。
コマンド行を使用する場合は、以下のステップに従ってください。
ndcontrol executor start
ndcontrol cluster add www.intersplash.com
ndcontrol port add www.intersplash.com:80
ndcontrol server add www.intersplash.com:80:server2.intersplash.com
ndcontrol server add www.intersplash.com:80:server3.intersplash.com
ndcontrol cluster configure www.intersplash.com
ndcontrol manager start
これで、Dispatcher は、サーバー・パフォーマンスに基づいてロード・バランシングをロードするようになります。
ndcontrol advisor start http 80
これで Dispatcher はクライアント要求が失敗 Web サーバーに送信されないようにします。
ローカル接続サーバーの基本構成はこれで完了です。
構成ウィザードを使用する場合は、以下のステップに従ってください。
ndserver
ウィザードは、Dispatcher コンポーネントの基本クラスターを作成するプロセスを段階的に案内します。ここでは、ネットワークについての情報を入力します。 Dispatcher のためのクラスターのセットアップを通して、サーバーのグループの間の通信のロード・バランシングを行います。
構成ウィザードには、以下のパネルが表示されます。
図 2. グラフィカル・ユーザー・インターフェース (GUI)
グラフィカル・ユーザー・インターフェースを開始するには、以下のステップを実行します。
ndserver
パネルの左側には、最上位の Network Dispatcher とコンポーネントの Dispatcher、 Content Based Routing、 Mailbox Locator、 Site Selector、および Cisco Consultant がツリー構造で表示されています。 図 2を参照してください。
コンポーネントは、すべて GUI から構成することができます。ツリー構造にある要素を選択するにはマウス・ボタン 1 (通常は左ボタン) でクリックし、ポップアップ・メニューを表示させるにはマウス・ボタン 2 (通常は右ボタン) でクリックします。 また、ツリー要素のポップアップ・メニューには、パネル上部のメニュー・バーからアクセスすることもできます。
正符号 (+) または負符号 (-) をクリックすると、ツリー構造の項目が展開または縮小されます。
パネルの右側に、現在選択されている要素についての状況標識のタブが 2 つ表示されます。
「ヘルプ」をアクセスするには、 Network Dispatcher ウィンドウの右上隅にある疑問符 (?) をクリックしてください。
構成が機能するかどうかを調べるためにテストを行います。
ユーザー・サイトをサポートするように Network Dispatcher を構成するには、多くの方法があります。すべての顧客が接続されているサイトに対してホスト名が 1 つしかない場合は、サーバーの単一クラスターを定義できます。これらのサーバーごとに、Network Dispatcher が通信するポートを構成します。 図 3 を参照してください。
図 3. 単一クラスターと 2 つのポートで構成された Dispatcher の例
Dispatcher コンポーネントのこの例では、 1 つのクラスターが www.productworks.com に定義されています。このクラスターには、HTTP 用のポート 80 および SSL 用のポート 443 の 2 つのポートがあります。 http://www.productworks.com (ポート 80) に要求を出すクライアントは、 https://www.productworks.com (ポート 443) に要求を出すクライアントとは異なるサーバーを呼び出します。
サポートされる各プロトコルに専用の多数のサーバーを持つ非常に大きなサイトがある場合は、Network Dispatcher の構成には別の方法が適しています。この場合、図 4 のように、単一のポートと多くのサーバーで、プロトコルごとにクラスターを定義したい場合があります。
図 4. 2 つのクラスターにそれぞれ 1 つのポートを構成した Dispatcher の例
Dispatcher コンポーネントのこの例では、ポート 80 (HTTP) 用の www.productworks.com およびポート 443 (SSL) 用の www.testworks.com という 2 つのクラスターが定義されています。
いくつかの会社または部門 (それぞれが別々の URL を使用してユーザー・サイトへ入ってくる) についてコンテンツ・ホスティングを行う場合は、Network Dispatcher を構成するための 3 つめの方法が必要です。この場合は、それぞれの会社または部門、およびその URL で接続したい任意のポートについてクラスターを定義できます (図 5 を参照)。
図 5. 2 つのクラスターにそれぞれ 2 つのポートを構成した Dispatcher の例
Dispatcher コンポーネントのこの例では、 www.productworks.com および www.testworks.com の各サイトに対して 2 つのクラスターがポート 80 (HTTP の場合) とポート 23 (Telnet の場合) で定義されています。
この章では、AIX、Linux、Solaris、および Windows 2000 における Network Dispatcher のハードウェア要件およびインストール手順について説明します。 以下の手順で実行します。
注:
複数のバージョンの Java がインストールされているときに、 Network Dispatcher コンポーネントが正確なバージョンを使用していることを確認するには、以下を実行してください。
アップグレードする Network Dispatcher の各コンポーネントのスクリプト・ファイルを編集します。各コンポーネントのスクリプト・ファイルは以下のとおりです。
たとえば、 Windows 2000 では、 Java 1.3 が C:¥Program Files¥IBM¥Java13¥jre¥bin にインストールされている場合には、 ndserver.cmd の行を以下のように変更してください。
IBM AIX 4.3.3.10 プラス APARS (Java 1.3 をサポートするため)。必要な AIX APARS のリストについては、IBM AIX Developer Kit の README を参照してください。
表 1 には、AIX 用の Network Dispatcher の installp イメージがリストされています。
Dispatcher (コンポーネント、管理、ライセンス、およびメッセージ) | intnd.nd.driver intnd.nd.rte intnd.msg.nd.<language>.nd intnd.admin.rte intnd.msg.<language>.admin |
管理 (のみ) | intnd.admin.rte intnd.msg.<language>.admin |
文書 | intnd.doc.rte |
ライセンス | intnd.nd.license |
メトリック・サーバー | intnd.ms.rte |
ここで、<language> は以下のいずれかです。
製品の評価版を Web サイトからダウンロードする場合は、(http://www.ibm.com/software/webservers/edgeserver/download.html) にあるインストール手順を使用してください。
製品をインストールする場合には、以下のいずれかまたはすべてのオプションが提供されます。
最初に、すべての executor およびすべてのサーバーが停止していることを確認してください。その後、製品全体をアンインストールするために、installp -u intnd と入力します。特定のファイル・セットをアンインストールするには、パッケージ名を指定する代わりに、ファイル・セットを明確にリストします。
以下のステップを行って、Network Dispatcher for AIX をインストールします。
SMIT の使用:
コマンドが完了したら、「完了 (Done)」を押して、「終了 (Exit)」メニューから「Smit 終了 (Exit Smit)」を選択するか、F12 を押します。 SMITTY を使用している場合は、F10 を押してプログラムを終了します。
コマンド行の使用:
CD からインストールする場合は、以下のコマンドを入力して CD をマウントしなければなりません。
mkdir /cdrom mount -v cdrfs -p -r /dev/cd0 /cdrom
以下の表を参照して、必要な AIX 用の Network Dispatcher パッケージをインストールするために入力するコマンド (1 つまたは複数) を判別してください:
Network Dispatcher (メッセージ付き)。Dispatcher、CBR、Mailbox Locator、 Site Selector、および Cisco Consultant を含む | installp -acXgd device intnd.nd.rte intnd.admin.rte intnd.nd.driver intnd.msg.<language>.nd intnd.msg.<language>.admin |
文書 | installp -acXgd device intnd.doc.rte intnd.msg.<language>.doc |
管理 (のみ) | installp -acXgd device intnd.admin.rte intnd.msg.<language>.admin |
ライセンス | installp -acXgd device intnd.nd.license |
メトリック・サーバー | installp -acXgd device intnd.ms.rte intnd.msg.<language>.admin |
ここで、device は以下のとおりです。
インストール (APPLY) する Network Dispatcher の各パーツについて、要約に示される結果の列に SUCCESS が含まれていることを確認してください。インストールするパーツがすべて正常に適用されない限り、続行しないでください。
installp -ld device
ここで、device は以下のとおりです。
CD をアンマウントするには、以下を入力します。
unmount /cdrom
lslpp -h | grep intnd
フル・プロダクトをインストールした場合は、このコマンドは以下を戻します。
intnd.admin.rte intnd.doc.rte intnd.ms.rte intnd.msg.en_US.admin.rte intnd.msg.en_US.doc intnd.msg.en_US.nd.rte intnd.nd.driver intnd.nd.license intnd.nd.rte
Network Dispatcher インストール・パスには、次のものが入っています。
このセクションでは、製品 CD または Web サイトからダウンロードした製品の評価版を使用して Network Dispatcher を Red Hat Linux または SuSE Linux にインストールする方法について説明します。インストールの説明は Web サイト (http://www.ibm.com/software/webservers/edgeserver/download.html) にあります。
インストール手順を開始する前に、ソフトウェア・インストールのためのルート権限を持っていることを確認してください。
最初に、すべての executor およびすべてのサーバーが停止していることを確認してください。その後、製品全体をアンインストールするために、rpm -e pkgname と入力します。アンインストールする際、パッケージのインストールに使用した順序を逆に行って、管理パッケージが最後にアンインストールされるようにします。
Network Dispatcher をインストールするには、次のようにしてください。
インストール・イメージのファイルは、ndlinux-version.tar 形式です。
以下は、RPM インストール可能パッケージのリストです。
パッケージをインストールするコマンドは、RPM ファイルが入っているディレクトリーから発行する必要があります。コマンド rpm -i package .rpm を発行して、各パッケージをインストールします。
rpm -i --nodeps package .rpm
rpm -qa | grep ibmnd
全製品をインストールすると、以下のようなリストが作成されます。
Solaris 8 の場合は、オンライン・ヘルプを表示するために、Netscape Navigator 4.07 (またはそれ以降) または Netscape Communicator 4.61 (またはそれ以降) 。
このセクションでは、製品 CD を使用して Network Dispatcher を Solaris にインストールする方法について説明します。製品の評価版をインターネットからダウンロードする場合は、Web サイト (http://www.ibm.com/software/webservers/edgeserver/download.html) にあるインストール手順を使用してください。
インストール手順を開始する前に、ソフトウェア・インストールのためのルート権限を持っていることを確認してください。
Network Dispatcher をインストールするには、
コマンド・プロンプトで、pkgadd -d pathname と入力します。ここで、-d pathname は、CD-ROM ドライブのデバイス名またはこのパッケージが入っているハード・ディスクのディレクトリーです。たとえば、pkgadd -d /cdrom/cdrom0/。
インストールするパッケージのリストが提供されます。以下が含まれます。
すべてのパッケージをインストールしたい場合は、"all" とだけ入力して、return キーを押します。いくつかのコンポーネントをインストールする場合は、インストールするパッケージに対応する名前をスペースまたはコンマで区切って入力し、return キーを押します。既存のディレクトリーまたはファイルに対する許可を変更するように促されます。単に return キーを押すか、または " yes" と応答します。前提パッケージをインストールする必要があります (それは、前提順ではなく、アルファベット順にインストールされるため)。 "all" と応答した場合は、すべてのプロンプトに対して "yes" と応答すると、インストールが正常に完了します。
すべてのパッケージは、共通パッケージ ibmndadm に依存しています。 この共通パッケージは、他のいずれかのパッケージとともにインストールしなければなりません。
Network Dispatcher 製品全体をインストールしたい場合は、次の 5 つの部分をインストールしなければなりません: ibmdsp、ibmdsplic、ibmndadm、 ibmnddoc、および ibmndms 。リモート管理をインストールしたい場合は、次の 1 つだけをインストールします:ibmndadm
Network Dispatcher コンポーネントは /opt/nd/servers インストール・ディレクトリーにあります。
全製品をインストールすると、以下のようなリストが作成されます。
InstallShield プログラムを実行する前に、Developer Kit インストール可能パッケージおよび Runtime Environment インストール可能パッケージの両方をダウンロードする必要があります。 (Java の複数バージョンを実行するための詳細については、 (JVER) を参照してください。)
このセクションでは、製品 CD を使用して Windows 2000 に Network Dispatcher をインストールする方法について説明します。 製品の評価版を Web サイトからダウンロードする場合は、Web サイト (http://www.ibm.com/software/webservers/edgeserver/download.html) にあるインストール手順を使用してください。
インストールするパッケージを選択することができます。
以下が含まれます。
Windows 2000 版の Network Dispatcher は、以下にサポートされています。
制約事項: Network Dispatcher の Windows 2000 バージョンは IBM Firewall と同じマシンにはインストールできません。
インストール手順を開始する前に、管理者としてか、または管理者の権限を持ったユーザーとしてログインしていることを確認してください。
旧バージョンがインストールされている場合は、そのバージョンをアンインストールしてから現行バージョンをインストールしなければなりません。
「プログラムの追加 / 削除」を使用してアンインストールするには、以下のようにします。
Network Dispatcher をインストールするには、
E:¥setup
Network Dispatcher インストール・パスには、次のものが入っています。
この章では、Network Dispatcher の概要について説明します。この章には、以下のセクションが含まれています。
Network Dispatcher は、サーバーをロード・バランシングするためのソフトウェア・ソリューションの 1 つです。これは、 TCP/IP セッション要求をサーバー・グループ内の各サーバーに指図することによって、サーバーのパフォーマンスを高め、これによりすべてのサーバー間における要求を平衡化します。このロード・バランシングは、ユーザーや他のアプリケーションに透過的に行われます。 Network Dispatcher は、 e-mail サーバー、 World Wide Web サーバー、分散並列データベース照会などのアプリケーションや、その他の TCP/IP アプリケーションに有効です。
Web サーバーで使用するときに、 Network Dispatcher はユーザー・サイトの潜在能力を最大化するために、ピーク需要の問題について強力で、融通性があり、拡張が容易な解決策を提供します。最大需要時にユーザー・サイトのビジターがアクセスできない場合には、 Network Dispatcher を使用すると着信要求の処理に最適なサーバーが自動的に検出されます。そのため、お客様の満足度とユーザーの有益性を向上させることになります。
Network Dispatcher は次の 5 つのコンポーネントから構成されており、これらの機能を別々または一緒に使用して、より有効なロード・バランシング結果を入手することができます。
HTTP プロトコルの場合は、 Dispatcher の content based routing 機能を使用してクライアント要求の内容に基づきロード・バランシングすることもできます。指定されたルールに対して URL を突き合わせた結果に応じて、サーバーが選択されます。
Dispatcher、 CBR、 Mailbox Locator、 Site Selector、および Consultant for Cisco CSS Switches コンポーネントに関する詳細については、 Network Dispatcher のコンポーネントを参照してください。
グローバル・インターネットに接続されたユーザーおよびネットワークの数は急速に増えています。この増加現象は、任期サイトへのユーザー・アクセスを制限する受け入れ規模の問題を生じさせています。
現在、ネットワーク管理者は、アクセスの最大化を図るためにいろいろなメソッドを使用しています。これらのメソッドの中には、先に行った選択の処理が遅かったり応答しなかったりした場合に、ユーザーに別のサーバーをランダムに選択できるようにするものもあります。この方法は面倒で、いらいらさせ、非効率です。この他に標準ラウンドロビン・メソッドもあり、この場合は、ドメイン・ネーム・サーバーが要求処理のためのサーバーを順番に選択します。この方法は前にあげた方法よりも優れてはいますが、サーバー作業負荷を考慮に入れないで盲目的にトラフィックを転送するという理由から、やはり非効率です。さらに、サーバーが失敗しても、要求は引き続きそこへ送信されます。
Network Dispatcher はさらに強力な解決策が必要であるというニーズから作成されました。これは、従来の競合する解決策に比べ、数多くの利点を備えています。
クライアント要求の増加に伴い、サーバーを動的に追加して、何十、何百ものサーバーで 1 日当たり何千万という要求に対するサポートを提供することができます。
ロード・バランシングは、標準ラウンドロビン・メソッドの場合に頻繁に起こるホット・スポットを最小化することにより、各サーバー・グループがそれぞれのハードウェアを最適使用するようにします。
Network Dispatcher は標準の TCP/IP プロトコルを使用します。既存のネットワークに物理的な変更を加えることなく、そのネットワークにこれを追加できます。これのインストールと構成は簡単です。
簡単な MAC レベル転送メソッドを使用すると、 Dispatcher がモニターする必要のあるのはクライアントからサーバーへのインバウンド・フローだけです。サーバーからクライアントへのアウトバウンド・フローをモニターする必要はありません。このために他の方法に比べてアプリケーションに対する影響を大幅に軽減し、ネットワーク・パフォーマンスを向上させることができます。
Dispatcher は組み込みの high availability を提供します。このためにプライマリー Dispatcher マシンに障害が発生した場合に、いつでもロード・バランシングを引き継げるようになっているバックアップ・マシンを使用します。また、Dispatcher は high availability を相互に提供し合うので、2 つのマシンがそれぞれ活動状態と待機状態になることができます。high availability についてを参照してください。
Caching Proxy と共に、 CBR コンポーネントには要求したコンテンツに基づいて特定のサーバーに対する HTTP 要求および HTTPS (SSL) 要求を代行する機能があります。たとえば、要求において URL のディレクトリー部分にストリング "/cgi-bin/" が含まれて、サーバー名がローカル・サーバーである場合は、 CGI 要求を処理するために特に割り振られている一連のサーバーで最適なサーバーに CBR は要求を送信できます。
Dispatcher コンポーネントも Content Based Routing を提供しますが、これは Caching Proxy をインストールする必要がありません。 Dispatcher コンポーネントの Content Based Routing はパケットを受け取るとカーネル中で実行されるので、 CBR コンポーネントより 高速 の Content Based Routing を提供できます。 Dispatcher コンポーネントは、 HTTP (「コンテンツ」タイプ・ルールを使用) および HTTPS (SSL セッション ID 類縁性を使用) の content based routing を実行します。
Network Dispatcher for IBM WebSphere Edge Server バージョン 2.0 にはいくつかの新規機能が含まれています。最も重要なものを以下にリストします。
この機能は、すべての Network Dispatcher コンポーネントに適用されます。
Network Dispatcher は AIX の新しいバージョンである AIX v5.1 をサポートしています。詳細については、 AIX のための要件を参照してください。
この機能は、すべての Network Dispatcher コンポーネントに適用されます。
Network Dispatcher は SuSE Linux v7.1 (カーネル・バージョン 2.4.0-4GB) をサポートしています。以前は Network Dispatcher がサポートしていたのは Red Hat Linux だけでした。詳細については、 Red Hat Linux または SuSE Linux のための要件を参照してください。
この機能は、すべての Network Dispatcher コンポーネントに適用されます。
現在 Network Dispatcher は Red Hat Linux の新しいバージョンである Red Hat Linux v7.1 (カーネル・バージョン 2.4.2-2) をサポートしています。詳細については、 Red Hat Linux または SuSE Linux のための要件を参照してください。
この機能は、すべての Network Dispatcher コンポーネントに適用されます。
Linux および Solaris オペレーティング・システム上では、 Network Dispatcher はグループ 1 の各国の NLS を提供しています。
この機能は、すべての Network Dispatcher コンポーネントに適用されます。
Network Dispatcher は新しい中国語標準 GB 18030 の NLS を提供しています。
この機能は、Network Dispatcher の新規コンポーネントです。
Cisco とその Content Distribution Network (CDN) とのコラボレーションによって、 Network Dispatcher の新規コンポーネントである Cisco Consultant が開発されました。このコンポーネント (最初はスタンドアロン・プレビューとして発表されました) により、 Network Dispatcher が Cisco CSS スイッチに対する重みの生成およびロード・バランシングの決定を実行できます。
詳細については、 Consultant for Cisco CSS Switches コンポーネントの計画および Consultant for Cisco CSS Switches コンポーネントの構成を参照してください。
この機能は、Network Dispatcher の新規コンポーネントです。
Site Selector コンポーネントは、ネーム・サービス要求に対して「正しい」サーバーの IP アドレスを選択することにより、サーバー・グループ間の負荷のバランスを取ります。これにより、クライアントはすべての通信においてサーバーに直接に接続できます。 Site Selector は、 Network Dispatcher コンポーネントの以前のリリースにあった Interactive Session Support (ISS) に置き換わるものです。 Site Selector は ISS と同様の機能を提供しますが、代表的な DNS ロード・バランシング構成のセットアップ時に必要なステップはこれまでより少なくなっています。
詳細については、 Site Selector コンポーネントの計画および Site Selector コンポーネントの構成を参照してください。
この機能は、すべての Network Dispatcher コンポーネントに適用されます。
メトリック・サーバーは、サーバー・ロード情報をシステム固有のメトリックの形式で Network Dispatcher に提供します。メトリック・サーバー・エージェントは Network Dispatcher のコンポーネントであり、 Network Dispatcher がロード・バランシングしているサーバー上にインストールして実行できます。メトリック・サーバーは、 Linux 上でサポートされていた前のリリースの System Monitoring Agent (SMA) を置き換えします。メトリック・サーバーはすべてのプラットフォーム上でサポートされています。メトリック・サーバーは、 Site Selector コンポーネントと結合して使用されることをお勧めします。
詳細については、メトリック・サーバーを参照してください。
この機能は、Network Dispatcher の新規コンポーネントです。
Mailbox Locator コンポーネントは、以前は CBR コンポーネント内部の機能であり、ユーザー ID とパスワードに基づいて IMAP および POP3 メール・サーバーをロード・バランシングしていました。 CBR を 2 つのコンポーネントに分離することによって、Mailbox Locator (以前には "CBR for IMAP/POP3" として通用するしていた) および Caching Proxy 付き CBR を同じマシンで実行できます。
詳細については、 Mailbox Locator コンポーネントの計画および Mailbox Locator コンポーネントの構成を参照してください。
CBR を使用する Caching Proxy 構成ファイル (ibmproxy.conf) の構成が能率的になって CBR が拡張されたために、 Caching Proxy の複数インスタンスが CBR と連結している間に同じマシン上で同時に実行できます。 Caching Proxy 付き CBR の構成方法に関する詳細については、 CBR マシンのセットアップを参照してください。
この機能は、Dispatcher コンポーネントに適用されます。
NAT/NAPT は、ローカル接続ネットワーク上に置かれるというバックエンド・サーバーの制限をなくします。また、Dispatcher が同じ物理マシン上で稼働中の複数のサーバー・デーモンに対するクライアントの TCP 要求をロード・バランシングできるようにしています。複数のデーモンを使用してサーバーを構成する方法は 2 つあります。 NAT を使用すると、複数のサーバー・デーモンを別の IP アドレスに対する要求に応えるように構成できます。これはサーバー・デーモンを IP アドレスに結合することでも知られています。 NAPT を使用すると、複数のサーバーを別のポート番号で listen するように構成できます。
NAT 転送方式の利点は、ポート・レベルで構成されて、他よりいい細分性が得られることにあります。
詳細については、 Dispatcher の NAT/NAPT (nat 転送メソッド)を参照してください。
この機能は、 Dispatcher コンポーネントに適用されます。
Network Dispatcher の以前のリリースでは、 content based routing が使用できたのは Caching Proxy と関連する CBR コンポーネントだけでした。現在はこの Dispatcher コンポーネントにより、 Caching Proxy がない HTTP (「コンテンツ」タイプ・ルールを使用) および HTTPS (SSL セッション ID 類縁性) の content based routing を実行できます。 HTTP および HTTPS トラフィックの場合は、 Dispatcher コンポーネントは CBR コンポーネントよりも高速の content based routing を提供できます。
コンテンツ・ルールおよび SSL セッション ID 類縁性の使用に関する詳細については、 Dispatcher の content based routing (cbr 転送メソッド)を参照してください。
この機能は、 Dispatcher コンポーネントの Content Based Routing 機能 (cbr 転送メソッド) および CBR コンポーネントに適用されます。
受動 cookie 類縁性により、サーバーが生成した自己識別 Cookie に基づいて、同じサーバーに類縁性がある Web トラフィックをロード・バランシングできます。詳細については、 受動 cookie 類縁性を参照してください。
この機能は、 Dispatcher コンポーネントの Content Based Routing 機能 (cbr 転送メソッド) および CBR コンポーネントに適用されます。
URI 類縁性により、 Web トラフィックを Caching Proxy サーバーにロード・バランシングでき、これによりキャッシュのサイズを効果的に増加します。詳細については、 URI 類縁性を参照してください。
この機能は、すべての Network Dispatcher コンポーネントに適用されます。
以前のリリースでは、ロード・バランシング決定を判別するための重要性の割合 (活動状態の接続、新規接続、ポート、およびシステム・メトリックに指定) は manager 機能から設定されました。これらの割合は、コンポーネントの構成にあるすべてのクラスターに適用されました。すべてのクラスターが、ロード・バランシングするサイトであるかどうかにかかわらず、同じ割合を使用して計測されました。
この拡張機能を使用すると、クラスター (またはサイト) ごとに重要度の割合を設定できます。詳細については、 状況情報に与えられる重要性の割合を参照してください。
この機能は、すべての Network Dispatcher コンポーネントに適用されます。
Network Dispatcher は、 1 つの物理サーバーを複数の論理サーバーに区分化する機能を提供します。これにより、たとえばサーブレット・エンジンまたはデータベース要求をさらに高速で実行しているかまたはまったく実行していないかを検出するために、マシン上で特定のサービスについて照会できます。この拡張機能は、より多くのサービス特有作業負荷に基づいて負荷を配分する機能を提供します。詳細については、 サーバーの区分化: 1 つのサーバー (IP アドレス) に対して構成された論理サーバーを参照してください。
この機能は、Dispatcher および CBR コンポーネントに適用されます。
HTTP advisor のこの拡張機能を使用すると、サーバー内の個々のサービスの状態をアクセスできます。 HTTP ポートの下のそれぞれの論理サーバーでは、そのサーバーで照会したいサービスに特有な固有のクライアント HTTP URL 文字列を指定できます。詳細については、HTTP advisor 要求 / 応答 (URL) オプションを参照してください。
この機能は、すべての Network Dispatcher コンポーネントに適用されます。
Network Dispatcher により、同じポート上で実行していて別のクラスター (サイト) 上で構成された種々の advisor を開始できます。たとえば、この機能によって、あるクラスター (サイト) のポート 80 では HTTP advisor を使用して、別クラスター (サイト) のポート 80 ではカスタム advisor を使用できるようになります。詳細については、advisor の開始および停止を参照してください。
この機能は、 Dispatcher コンポーネントに適用されます。
この拡張強化では、 Dispatcher は潜在的なサービス停止攻撃を検出して、アラートによって管理者に通知する機能を提供しています。 Dispatcher は、ハーフ・オープン接続の量が著しい場合 (単純なサービス停止攻撃の共通特性) に着信要求を分析することによりこれを実行します。
詳細については、サービス停止攻撃の検出を参照してください。
この機能は、Consultant for Cisco CSS Switches および Site Selector を除くすべてのコンポーネントに適用されます。
Network Dispatcher は、カスタマイズが可能なスクリプトを起動する追加のユーザー出口を提供します。たとえば high availability 状態を変更する時に記録したり、サーバーがダウンをマークされたときに管理者を呼び出すなどといった、自動化アクションを実行するためのスクリプトを作成できます。 Network Dispatcher は以下の新しいサンプル・スクリプト・ファイルを提供しています。
この機能は、Dispatcher コンポーネントに適用されます。
Dispatcher は、 DB2 サーバーと通信する DB2 advisor を提供します。 DB2 advisor に関する詳細については、 advisor のリスト を参照してください。
Network Dispatcher の 5 つのコンポーネントとは、 Dispatcher、 Content Based Routing (CBR)、 Mailbox Locator、 Site Selector、および Consultant for Cisco CSS Switches です。 Network Dispatcher は、ユーザーのサイト構成に応じて、コンポーネントをそれぞれ別個に使用したり一緒に使用したりできる融通性を備えています。このセクションでは、次のコンポーネントの概要を説明します。
Dispatcher コンポーネントは、ロード・バランシングと管理ソフトウェアを固有に組み合わせることにより、サーバー間においてトラフィックのバランスを取ります。また、 Dispatcher は障害が発生したサーバーを検出し、それをう回してトラフィックを転送することもできます。 Dispatcher は、 HTTP、 FTP、 SSL、 SMTP、 NNTP、 IMAP、 POP3、 Telnet、およびその他の TCP またはステートレス UDP 基本のアプリケーションをサポートします。
Dispatcher マシンに送信されたクライアント要求のすべては、動的に設定される重みに従って最適なサーバーに送信されます。これらの重みに対してデフォルト値を使用することもできますし、構成プロセス時にこれらの値を変更することもできます。
Dispatcher は、次の 3 つの転送メソッド (ポート上に指定されている) を提供します。
Dispatcher コンポーネントは、大規模で拡張が容易なサーバー・ネットワークを安定的、効率的に管理するためのキーです。 Dispatcher により、多数の個別サーバーを外観上単一に見える仮想サーバーにリンクできます。したがって、サイトは単一の IP アドレスとして表示されます。 Dispatcher 機能は、ドメイン・ネーム・サーバーとは独立に機能します。つまり、すべての要求は Dispatcher マシンの IP アドレスに送信されます。
Dispatcher は、通信負荷の平衡化における明確な利点をクラスター・サーバーにもたらしますので、サイトの管理を安定的かつ効率的に行うことができるになります。
図 6. Dispatcher を使用してローカル・サーバーを管理するサイトを物理的に示した例
図 6 は、イーサネット・ネットワーク構成を使用するサイトの物理表現を示しています。 Dispatcher マシンは、ネットワークに物理的な変更を加えることなくインストールできます。MAC 転送メソッドを使用するときには、クライアント要求が Dispatcher によって最適なサーバーに送信されて、次にその応答は Dispatcher の介入なしにサーバーからクライアントへ直接に送信されます。
図 7. Dispatcher およびメトリック・サーバーを使用してサーバーを管理するサイトの例
図 7 は、すべてのサーバーが 1 つのローカル・ネットワークに接続されているサイトを示したものです。 Dispatcher コンポーネントは要求を転送するために使用され、メトリック・サーバーは Dispatcher マシンにシステム負荷情報を提供するために使用されます。
この例では、メトリック・サーバー・デーモンが各バックエンド・サーバーにインストールされています。メトリック・サーバーは Dispatcher コンポーネントまたはその他の Network Dispatcher コンポーネントと一緒に使用できます。
図 8. Dispatcher を使用してローカル・サーバーとリモート・サーバーを管理するサイトの例
Dispatcher の広域サポートによって、ローカル・サーバーとリモート・サーバーの両方 (異なるサブネット上のサーバー) を使用できます。 図 8 は、すべての要求に対するエントリー・ポイントとして、ある ローカルの Dispatcher (Dispatcher 1) を提供する構成を示したものです。これは、それ自体のローカル・サーバー (ServerA、 ServerB、 ServerC) 間およびリモートの Dispatcher (Dispatcher 2) に要求を分散させます。リモート側では、そのローカル・サーバー (ServerG、 ServerH、 ServerI) にロード・バランシングが行われます。
Dispatcher の NAT 転送メソッドを使用するとき、または GRE サポートを使用するときには、リモート・サイト (ここでは ServerD、 ServerE、および ServerF があります) で Dispatcher を使用せずに Dispatcher の広域ポートを実行できます。詳細については、Dispatcher の NAT/NAPT (nat 転送メソッド)およびGRE (総称経路指定カプセル化) サポートを参照してください。
CBR は Caching Proxy とともに機能し、指定の HTTP または HTTPS (SSL) サーバーに対するクライアント要求を代行します。これによって、キャッシュ処理の詳細を操作し、ネットワーク帯域幅の要件が低くても、より高速に Web 文書を検索することができます。 CBR は Caching Proxy と一緒に、指定されたルール・タイプを使用して HTTP 要求を調べます。
CBR を使用すれば、要求内容の正規表現一致に基づいて要求を処理しなければならない一組のサーバーを指定できます。 CBR では各要求タイプごとに複数のサーバーを指定できるため、最適のクライアント応答を得るために要求をロード・バランシングできます。 CBR は、サーバー・セット内の 1 つのサーバーがいつ失敗したかを検出して、そのサーバーへの要求の経路指定を停止することもできます。 CBR コンポーネントによって使用されるロード・バランシング・アルゴリズムは、 Dispatcher コンポーネントによって使用される実証済みのアルゴリズムと同じです。
要求が Caching Proxy によって受け取られると、CBR コンポーネントによって定義されたルールに照らしてチェックされます。一致すると、そのルールに関連する 1 つのサーバーが要求処理のために選択されます。そこで Caching Proxy は、選択されたサーバーへの要求を代行するための通常処理を行います。
CBR は、high availability、サブエージェント、広域、およびその他の構成コマンドのいくつかを除いて、Dispatcher と同じ機能を持っています。
Caching Proxy を実行しなければ、 CBR がクライアント要求のロード・バランシングを開始できません。
図 9. CBR を使用してローカル・サーバーを管理するサイトの例
図 9 は、 CBR を使用してローカル・サーバーからのコンテンツを代行するサイトを論理的に示したものです。 CBR コンポーネントは、 Caching Proxy を使用して URL のコンテンツに基づきクライアント要求 (HTTP または HTTPS) をサーバーに転送します。
Mailbox Locator は多くの IMAP または POP3 サーバーに単一の現在位置を提供できます。各サーバーは、現在位置ごとに提供されるすべてのメールボックスのサブセットをもつことができます。 IMAP および POP3 トラフィックでは、 Mailbox Locator はクライアントが提供するユーザー ID とパスワードに基づいて適切なサーバーを選択するプロキシーです。 Mailbox Locator は、ルールに基づくロード・バランシングをサポートしていません。
図 10. Mailbox Locator を使用してローカル・サーバーを管理するサイトの例
図 10 は、 Mailbox Locator を使用してユーザー ID およびパスワードに基づき該当するサーバーに対するクライアント要求 (IMAP または POP3 プロトコル) を代行するサイトを論理的に示したものです。
Site Selector は、ドメイン・ネーム・システム内の他のネーム・サーバーとの組み合わせで機能するネーム・サーバーの 1 つとして作動して、収集される測定値および重みを使用してサーバーのグループ間でロード・バランシングします。クライアント要求に使用されるドメイン・ネームに基づいて、サーバー・グループ間のトラフィックをロード・バランシングするためのサイト構成を作成できます。
クライアントが、ネットワーク内部のネーム・サーバーに対してドメイン・ネームを解決する要求を出します。ネーム・サーバーはその要求を Site Selector マシンに転送します。すると Site Selector は、そのドメイン・ネームをサイト名に基づいて構成されたいずれかのサーバーの IP アドレスに解決します。 Site Selector は選択したサーバーの IP アドレスをネーム・サーバーに戻します。ネーム・サーバーはその IP アドレスをクライアントに戻します。
メトリック・サーバーは Network Dispatcher のシステム・モニター・コンポーネントであり、これは構成内部のロード・バランシングされた各サーバーにインストールされている必要があります。メトリック・サーバーを使用して、 Site Selector はサーバー上でアクティビティー・レベルをモニターし、サーバーの負荷が最小のときを検出し、障害の起きたサーバーを検出することができます。負荷とは、サーバーが作動している忙しさの程度を示す尺度です。システム・メトリック・スクリプト・ファイルをカスタマイズすることにより、負荷を測るために使用する測定タイプを制御できます。アクセス頻度、ユーザー総数、アクセス・タイプ (たとえば、短時間の照会、長時間の照会、または CPU 集中の負荷) などの要因を考慮に入れて、自分の環境に適合するように Site Selector を構成できます。
図 11. Site Selector およびメトリック・サーバーを使用してローカル・サーバーおよびリモート・サーバーを管理するサイトの例
図 11 は、要求に応答するために Site Selector コンポーネントが使用されるサイトを図示しています。 Server1、 Server2、および Server3 はローカルです。 Server4、 Server5、および Server6 はリモートです。
クライアントが、クライアント・ネーム・サーバーに対してドメイン・ネームを解決する要求を出します。クライアント・ネーム・サーバーは、DNS 経由で要求を Site Selector マシンに転送します (パス 1)。すると Site Selector が、ドメイン・ネームをいずれかのサーバーの IP アドレスに解決します。 Site Selector は選択したサーバーの IP アドレスをクライアント・ネーム・サーバーに戻します。ネーム・サーバーは、その IP アドレスをクライアントに戻します。
一度クライアントがサーバーの IP アドレスを受け取ると、そのクライアントはそれ以降の要求を選択されたサーバーに直接に経路指定します (パス 2) 。
Consultant for Cisco CSS Switches は、 Cisco の CSS 11000 シリーズ・スイッチと関連する補足ソリューションです。結合されたソリューションは、バックエンド・サーバー、アプリケーション、およびデータベースの可用性と負荷情報を判別するために、 CSS 11000 シリーズの堅固なパケット転送およびコンテンツ経路指定機能を Network Dispatcher の精巧な認識アルゴリズムと混合します。 Cisco Consultant 機能は、 Network Dispatcher の manager、標準 advisor、カスタム advisor、および メトリック・サーバー を使用して、バックエンド・サーバー、アプリケーション、およびデータベースのメトリック、状態、および負荷を判別します。この情報を使用して、最適のサーバー選択、負荷最適化、および耐障害性について Cisco CSS スイッチ に送るサーバー加重メトリックを Cisco Consultant が生成します。
Cisco CSS スイッチ は、ユーザー指定の基準に基づいてロード・バランシングを決定します。
Cisco Consultant は以下を含む多くの基準をトラックします。
Cisco CSS スイッチ が Cisco Consultant なしでコンテンツ提供サーバーの状態を判別すると、コンテンツ要求またはその他のネットワーク測定の応答に時間を用します。適切な Cisco Consultant があれば、これらのアクティビティーは Cisco CSS スイッチ から Cisco Consultant にオフロードされます。 Cisco Consultant はコンテンツを提供するサーバーの重みまたは機能に影響し、サーバーが可用性を増加または減少するとそのサーバーを適切に活動化または中断させます。
Cisco Consultant:
重みは、サーバー上のすべてのポートに適用されます。特定のポートの場合は、要求はサーバー間で互いの相対する重みに基づいて分散されます。たとえば、一方のサーバーが 10 の重みに設定され、他方が 5 に設定されている場合は、10 に設定されたサーバーは 5 に設定されたサーバーの 2 倍の要求を得ることになります。これらの重みは SNMP を使用して Cisco CSS スイッチ に提供されます。あるサーバーの重みが高く設定されていると、 Cisco CSS スイッチ はそのサーバーにより多くの要求を与えます。
図 12. Cisco Consultant および メトリック・サーバー を使用してローカル・サーバーを管理するサイトの例
Cisco CSS スイッチ と関連づけされた Cisco Consultant は、ワイヤー・スピードのコンテンツ交換を、洗練されたアプリケーション認識、耐障害性、および負荷最適化と組み合わせて、「双方に最適な」ソリューションを提供します。 Cisco Consultant は、 Cisco CSS スイッチ および IBM WebSphere Edge Server 間の総括的補足ソリューションの一部です。
Cisco Consultant 要件のリストについては、 Network Dispatcher のインストールを参照してください。
Dispatcher コンポーネントは、組み込みの high availability 機能を提供します。この機能は、2 番目の Dispatcher マシンを使用して、メインの (つまりプライマリー) マシンをモニターし、プライマリー・マシンが失敗した場合にいつでもロード・バランシングのタスクを引き継げるように待機する機能を含みます。また、Dispatcher コンポーネントは high availability を相互に提供し合うので、これにより 2 つのマシンが互いにプライマリーとセカンダリーになることができます。 high availability を構成するを参照してください。
CBR、 Mailbox Locator、または Site Selector のいずれかがある複数のサーバー・マシンに対する Dispatcher マシン・ロード・バランシング・トラフィックで 2 層の構成を使用すると、 Network Dispatcher のこれらのコンポーネントに対する high availability のレベルを向上できます。
この章では、Dispatcher コンポーネントのインストールと構成を行う前に、ネットワーク計画担当者が考慮しなければならない事項について説明します。
この章には、以下のセクションが含まれています。
プラットフォームの要件:
manager の使用はオプションです。ただし、manager を使用しない場合は、現在のサーバーの重みに基づいて重み付きラウンドロビン・スケジューリングを使用してロード・バランシングが行われ、advisor は使用できなくなります。
また、 Dispatcher はプロトコル特定の情報を交換しない advisor (DB2 サーバーの状態を報告する DB2 advisor やサーバーが PING に応答するかどうかを報告する Ping advisor など) も提供します。 advisor の完全なリストについては、 advisor のリストを参照してください。
また、オプションでユーザー自身の advisor を作成することもできます (カスタム (カスタマイズ可能) advisor の作成 を参照してください) 。
advisor の使用はオプションですが、使用することをお勧めします。
Dispatcher の 3 つの主要な機能 (executor、manager、および advisor) は、対話してサーバー間の着信要求を平衡化およびディスパッチします。ロード・バランシング要求とともに、 executor は新規の接続、活動中の接続、および終了状態の接続の数をモニターします。また、 executor は完了またはリセットした接続のガーベッジ・コレクションも実行し、この情報を manager に提供します。
manager は、 executor、 advisor、およびシステム・モニター・プログラム (たとえば メトリック・サーバー) から情報を収集します。 manager は、受け取った情報に基づいて、各ポートでのサーバー・マシンの重み付けの方法を調整し、新規接続の平衡化で使用する新規の重み値を executor に指定します。
advisor は、割り当てられたポート上の各サーバーをモニターしてサーバーの応答時間と使用可能度を決定してから、この情報を manager に提供します。advisor も、サーバーが起動しているかいないかをモニターします。manager および advisor がないと、executor は、現行サーバーの重み付けに基づいてラウンドロビン・スケジューリングを行います。
図 13. 単純な high availability を使用した Dispatcher の例
high availability 機能では、2 番目の Dispatcher マシンが使用されます。最初の Dispatcher マシンは、単一 Dispatcher 構成の場合と同様に、すべてのクライアント・トラフィックに対してロード・バランシングを実行します。2 番目の Dispatcher マシンは、最初のマシンの "状態" モニターし、最初の Dispatcher マシンの失敗を検出すると、ロード・バランシングのタスクを引き継ぎます。
この 2 つのマシンには、それぞれ特定の役割、つまり、プライマリー または バックアップ のいずれかが割り当てられます。プライマリー・マシンは、処理の進行とともに接続データをバックアップ・マシンに送信します。プライマリー・マシンが 活動状態 (ロード・バランシングを行っている)の間は、バックアップは 待機状態 になり、必要な場合には継続的に更新されていつでも引き継ぎできる状態になっています。
この 2 つのマシンの間の通信セッションは、heartbeat と呼ばれます。 heartbeat により、それぞれのマシンが相手の「状態」をモニターできます。
バックアップ・マシンが活動マシンの失敗を検出すると、後を引き継いでロード・バランシングを開始します。この時点で 2 つのマシンの 状況 が反転します。つまり、バックアップ・マシンが 活動状態 になり、プライマリー・マシンが 待機状態 になります。
high availability の構成では、プライマリー・マシンとバックアップ・マシンの両方が同じサブネット上になければなりません。
high availability の構成については、high availability を参照してください。
図 14. 相互 high availability を使用した Dispatcher の例
相互 high availability 機能では、2 つの Dispatcher マシンが使用されます。両方のマシンがクライアント・トラフィックのロード・バランシングを能動的に実行し、互いにバックアップを行います。単純な high availability の構成では、1 つのマシンだけがロード・バランシングを実行します。相互 high availability の構成では、両方のマシンがクライアント・トラフィックの部分のロード・バランシングを行います。
相互 high availability の場合には、クライアント・トラフィックは、クラスター・アドレス・ベースで各 Dispatcher マシンに割り当てられます。各クラスターは、そのプライマリー Dispatcher の NFA (非転送アドレス) を使用して構成されます。プライマリー Dispatcher マシンは通常、そのクラスターのロード・バランシングを実行します。障害が発生した場合に、他方のマシンが自己のクラスターおよび障害が発生した Dispatcher のクラスターの両方に対してロード・バランシングを実行します。
共用 "クラスター・セット A" および共用 "クラスター・セット B" の相互 high availability の図示については、 図 14 を参照してください。各 Dispatcher は、その プライマリー ・クラスターのパケットをアクティブに経路指定できます。いずれかの Dispatcher に障害が起きてそのプライマリー・クラスターのパケットをアクティブに経路指定できなくなると、他の Dispatcher がその バックアップ ・クラスターのパケットの経路指定を受け継ぎます。
high availability および相互 high availability の構成の詳細については、high availabilityを参照してください。
Dispatcher の MAC 転送メソッド (デフォルトの転送メソッド) を使用して、 Dispatcher は選択したサーバーへの着信要求をロード・バランシングし、そのサーバーは Dispatcher の介入なしに 直接 クライアントに応答を戻します。この転送メソッドを使用すると、 Dispatcher がモニターするのはクライアントからサーバーへのインバウンド・フローだけです。サーバーからクライアントへのアウトバウンド・フローをモニターする必要はありません。このためにアプリケーションに対する影響を大幅に軽減し、ネットワーク・パフォーマンスを向上させることができます。
転送メソッドは、 ndcontrol port add cluster:port method value コマンドを使用してポートを追加するときに選択できます。デフォルト転送メソッド値は mac です。メソッド・パラメーターを指定できるのは、ポートが追加されるときだけです。一度ポートを追加すると、転送メソッドの設定は変更できません。詳細については、 ndcontrol port -- ポートの構成を参照してください。
Dispatcher のネットワーク・アドレス変換 (NAT) またはネットワーク・アドレス・ポート変換 (NAPT) 機能を使用すると、ロード・バランシングされたサーバーがローカル接続ネットワーク上に置かれるという制限がなくなります。サーバーをリモート・ロケーションに置きたいときには、 GRE/WAN カプセル化技法ではなく、 NAT 転送メソッド技法を使用してください。また、 NAPT 機能を使用して、各ロード・バランシングされたサーバー・マシン (各デーモンが固有のポートを listen しています) 上に常駐している複数のサーバー・デーモンをアクセスできます。
複数のデーモンを使用して 1 つのサーバーを構成する方法には、次の 2 つがあります。
このアプリケーションは、上位レベルのアプリケーション・プロトコル (たとえば HTTP、 SSL、 IMAP、 POP3、 NNTP、 SMTP、 Telnet など) を使用するとよりよく機能します。
制限:
NAT/NAPT をインプリメントするには、次のようにしてください。
ndcontrol server add cluster:port:server mapport value returnaddress rtrnaddress router rtraddress
これはクライアント要求の宛先ポート番号 (Dispatcher 用) を Dispatcher がクライアント要求をロード・バランシングするために使用するサーバーのポート番号にマップします。 Mapport により、 Network Dispatcher は 1 つのポート上でクライアント要求を受信し、その要求をサーバー・マシン上の別のポートに送信できます。 mapport を使用して、複数のサーバー・デーモンを実行しているサーバー・マシンに対するクライアント要求をロード・バランシングできます。 mapport のデフォルトは、クライアント要求の宛先ポート番号です。
リターン・アドレスは固有のアドレスまたは Dispatcher マシン上で構成する hostname です。サーバーに対するクライアント要求をロード・バランシングするときに、 Dispatcher はリターン・アドレスをその送信元アドレスとして使用します。これは、サーバーがパケットを直接クライアントに送信せずに、パケットを Dispatcher マシンに戻すことになります。 (次に Dispatcher は IP パケットをクライアントに転送します。) サーバーの追加時には、リターン・アドレス値を指定する必要があります。リターン・アドレスは、サーバーを除去してもう一度追加しない限り変更できません。リターン・アドレスは、クラスター、サーバー、または NFA アドレスと同じにはできません。
リモート・サーバーへのルーターのアドレス。
Network Dispatcher の以前のリリースでは、 content based routing が使用可能であるのは Caching Proxy と関連する CBR コンポーネントの使用だけでした。現在はこの Dispatcher コンポーネントにより、 Caching Proxy がない HTTP (「コンテンツ」タイプ・ルールを使用) および HTTPS (SSL セッション ID 類縁性) の content based routing を実行できます。 HTTP および HTTPS トラフィックの場合は、 Dispatcher コンポーネントは CBR コンポーネントよりも高速の content based routing を提供できます。
HTTP の場合: Dispatcher の content based routing におけるサーバー選択は、 URL または HTTP ヘッダーのコンテンツに基づきます。これは「コンテンツ」タイプ・ルールを使用して構成されています。コンテンツ・ルールの構成時には、ルールに検索ストリング "pattern" と一連のサーバーを指定します。新規着信要求の処理時には、このルールは指定されたストリングをクライアントの URL またはクライアント要求で指定された HTTP ヘッダーと比較します。
Dispatcher がクライアント要求でそのストリングを検出すると、 Dispatcher は要求をルール内のいずれかのサーバーに転送します。次に Dispatcher は応答データをサーバーからクライアントに中継します ("cbr" 転送メソッド) 。
Dispatcher がクライアント要求でそのストリングを検出しない場合は、 Dispatcher はルール内の一連のサーバーからサーバーを選択 しません。
HTTPS (SSL) の場合: Dispatcher の Content Based Routing は、クライアント要求の SSL ID セッション・フィールドを基にしてロード・バランシングされます。 SSL では、クライアント要求には前のセッションの SSL セッション ID が入っていて、サーバーは前の SSL 接続のキャッシュを保守します。 Dispatcher の SSL ID セッション類縁性により、クライアントおよびサーバーはサーバーとの前の接続のセキュリティー・パラメーターを使用して新規接続を確立できます。 SSL セキュリティー・パラメーター (共有鍵および暗号化アルゴリズムなど) の再折衝を除去することによって、サーバーは CPU サイクルを節約して、クライアントの応答はより高速になります。 SSL セッション ID 類縁性を使用可能にするために、ポート・スティッキー時間は
非ゼロ値に設定されていなければなりません。 stickytime が経過すると、クライアントは前のとは異なる別のサーバーに送信します。
Dispatcher の content based routing をインプリメント (cbr 転送メソッド) するには、次のようにしてください。
ndcontrol server add cluster:port:server mapport value returnaddress rtrnaddress router rtraddress
ndcontrol rule 125.22.22.03:80:contentRule1 type content pattern pattern
ここで、 pattern はコンテンツ・タイプ・ルールに使用するパターンを指定します。コンテンツ・ルール・タイプの詳細については、 要求コンテンツに基づくルールの使用を参照してください。 pattern の有効な式に関する詳細については、 付録 C, コンテンツ・ルール (パターン) 構文を参照してください。
HTTPS (SSL) の場合: SSL ID セッション類縁性を構成するには、ポートに対する stickytime パラメーターを非ゼロ値に設定します。
ポート・コマンドの stickytime に関する詳細については、ndcontrol rule -- ルールの構成を参照してください。
この章のステップを実行する前に、Dispatcher コンポーネントの計画を参照してください。この章では、Network Dispatcher の Dispatcher コンポーネントのための基本構成を作成する方法について説明します。
タスク | 説明 | 関連情報 |
---|---|---|
Dispatcher マシンをセットアップする。 |
ロード・バランシング構成をセットアップします。
| Dispatcher マシンのセットアップ |
ロード・バランシング対象のマシンをセットアップする。 | ループバック・デバイスに別名割り当てし、エクストラ経路をチェックし、エクストラ経路を削除します。 | ロード・バランシングのためのサーバー・マシンのセットアップ |
Dispatcher を構成するための基本的な方法には、以下の 4 つがあります。
これは、Dispatcher を構成するための最も直接的な方法です。コマンド・パラメーター値は、英字で入力する必要があります。唯一の例外は、ホスト名 (クラスター、サーバー、および high availability コマンドで使用) およびファイル名 (ファイル・コマンドで使用) です。
コマンド行から Dispatcher を開始するには:
ndcontrol コマンド・パラメーターは、最小限バージョンで入力することができます。単に、パラメーターの固有の文字を入力する必要があるだけです。たとえば、file save コマンドに関するヘルプを表示するには、ndcontrol help file の代わりに ndcontrol he f と入力することができます。
コマンド行インターフェースを始動するには、ndcontrol を実行して、ndcontrol コマンド・プロンプトを表示します。
コマンド行インターフェースを終了するには、exit または quit を実行します。
Dispatcher を構成するための複数のコマンドを構成スクリプト・ファイルに入力して、一緒に実行することができます。サンプルの Network Dispatcher 構成ファイルを参照してください。
ndcontrol file appendload myscript
ndcontrol file newload myscript
グラフィカル・ユーザー・インターフェース (GUI) の例については、図 2 を参照してください。
GUI を開始するには、以下のステップに従ってください。
ndserver
GUI から Dispatcher コンポーネントを構成するには、ツリー構造で Dispatcher を最初に選択しなければなりません。一度ホストに接続すると、executor および manager を開始することができるようになります。また、ポートとサーバーを含むクラスターを作成したり、manager の advisor を開始したりすることもできます。
GUI を使用して、ndcontrol コマンドで行うあらゆる処理を実行することができます。たとえば、コマンド行を使用してクラスターを定義するには、ndcontrol cluster add cluster コマンドを入力します。クラスターを GUI から定義するには、「Executor」を右クリックしてから、ポップアップ・メニューの「クラスターの追加」を左クリックします。ポップアップ・ウィンドウでクラスター・アドレスを入力した後、「OK」をクリックします。
既存の Dispatcher 構成ファイルは、「ホスト」ポップアップ・メニューにある「新規構成のロード」(現行の構成を完全に置き換える場合) および「現行の構成に追加」(現行の構成を更新する場合) オプションを使用してロードすることができます。 Dispatcher 構成は、「ホスト」ポップアップ・メニューに表示される「構成ファイルの別名保管」オプションを使用して定期的にファイルに保管しなければなりません。GUI の上部にある「ファイル」メニューを使用して、現行のホスト接続をファイルに保管したり、すべての Network Dispatcher コンポーネントにわたって既存のファイルにある接続を復元したりすることができます。
構成コマンドは、リモートでも実行することができます。詳細については、リモート認証済み管理を参照してください。
Network Dispatcher ウィンドウの右上隅にある疑問符のアイコンをクリックすると、「ヘルプ」にアクセスすることができます。
GUI の使用に関する詳細については、GUI を使用する場合の一般的説明を参照してください。
構成ウィザードの使用については、構成ウィザードを使用した構成を参照してください。
Dispatcher マシンをセットアップする前に、root ユーザー (AIX、Linux、または Solaris の場合) または Windows 2000 の管理者 にならなければなりません。
AIX、 Linux、および Solaris のみの場合は、 Network Dispatcher は連結された サーバーをもつことができます。これは、 Network Dispatcher はロード・バランシングしているサーバー・マシンに物理的に常駐できることを意味します。
Dispatcher マシンには、少なくとも以下の 2 つの有効な IP アドレスが必要です。
この IP アドレスは、Dispatcher マシンのプライマリー IP アドレスであり、非転送先アドレス (NFA) といいます。デフォルトでは、hostname コマンドによって戻されるアドレスと同じです。このアドレスは、Telnet を介したリモートでの構成や SNMP サブエージェントへのアクセスなどの管理目的でマシンに接続するために使用します。Dispatcher マシンが既にネットワーク上の他のマシンに ping できる場合は、非転送先アドレスをセットアップするための追加の処理は必要ありません。
クラスター・アドレスは、ホスト名 (www.yourcompany.com など) に関連するアドレスです。この IP アドレスは、クライアントがクラスター内のサーバーに接続するために使用します。これは、Dispatcher によってロード・バランシングが行われるアドレスです。
Solaris だけの場合:
たとえば、2 つの 100Mbps イーサネット・アダプターを使用することを計画している場合は、ibmnd.conf ファイルに hme 装置を指定する単一の行がなければなりません。 10Mbps イーサネット・アダプターと 100Mbps イーサネット・アダプターを 1 つずつ使用することを計画している場合は、ibmnd.conf ファイルに、le 装置を指定する 1 行と hme 装置を指定する 1 行の 2 行を置きます。
ibmnd.conf ファイルは、Solaris の autopush コマンドへの入力データを提供し、autopush コマンドと互換性がなければなりません。
たとえば、クラスター X および Y を ibmnd.conf にリストされている任意のアダプターで Mailbox Locator コンポーネントで使用するために構成されている場合は、ndcontrol executor start コマンドまたは ndcontrol executor stop コマンドを出すとクラスター X および Y が構成解除されます。これは望ましくない場合があります。クラスター X および Y を goAliases スクリプトで構成すると、 Dispatcher executor を開始または停止した後でクラスターが自動的に再構成されます。
Windows 2000 のみ: IP 転送が、TCP/IP プロトコルには使用可能にならないようにします。 (ご使用の Windows 2000 TCP/IP 構成を参照してください。)
図 15 に、クラスターが 1 つ、ポートが 2 つ、およびサーバーが 3 つの Dispatcher のセットアップ例を示します。
図 15. Dispatcher マシンに必要な IP アドレスの例
この手順で使用するコマンドのヘルプについては、付録 B, Dispatcher、CBR、および Mailbox Locator のコマンド解説を参照してください。
サンプル構成ファイルについては、サンプルの Network Dispatcher 構成ファイルを参照してください。
AIX、Linux、および Solaris: サーバー機能を開始するには、ndserver と入力します。
Windows 2000 : サーバー機能は自動的に開始します。
ユーザーが Dispatcher 構成を default.cfg に保管することを決定すると、次に ndserver を開始するときに、このファイルに保管されたすべてが自動的にロードされます。
executor 機能を開始するには、ndcontrol executor start コマンドを入力します。この時点で、さまざまな executor 設定値を変更することもできます。付録 B, Dispatcher、CBR、および Mailbox Locator のコマンド解説を参照してください。
非転送先アドレスは、このマシンに対して Telnet または SMTP を使用するなどの管理目的でマシンに接続するために使用します。デフォルトではこのアドレスはホスト名です。
非転送先アドレスを定義するには、ndcontrol executor set nfa IP_address コマンドを入力するか、サンプル構成ファイルを編集します。IP_address は、記号名または小数点付き 10 進表記アドレスのいずれかです。
Dispatcher は、クラスター・アドレスに送信された要求と、そのクラスターのポート上に構成されたサーバーとのバランシングを行います。
クラスターは、記号名、小数点付き 10 進表記アドレス、またはワイルドカード・クラスターを定義する特別なアドレス 0.0.0.0 のいずれかです。 クラスターを定義するには、コマンド ndcontrol cluster add を発行します。クラスター・オプションを設定するには、コマンド ndcontrol cluster set を発行します。また、GUI を使用してコマンドを発行することもできます。ワイルドカード・クラスターを使用すると、ロード・バランシングを行う着信パケットの複数の IP アドレスに一致させることができます。詳細については、ワイルドカード・クラスターを使用したサーバー構成の結合、ワイルドカード・クラスターを使用したファイアウォールのロード・バランシング、Caching Proxy とワイルドカード・クラスターの使用による透過プロキシーを参照してください。
一度クラスターを定義すると、通常は Dispatcher マシンのネットワーク・インターフェース・カードのうちの 1 つでクラスター・アドレスを構成しなければなりません。
これを行うには、コマンド ndcontrol cluster configure cluster_address を発行します。これによって、クラスター・アドレスと同じサブネットに属する既存のアドレスを持つアダプターが検索されます。その後で、検出されたアダプターおよびそのアダプター上で検出された既存のアドレスのネットマスクを使用して、そのクラスター・アドレスのオペレーティング・システムのアダプター構成コマンドを実行します。たとえば、以下のようになります。
ndcontrol cluster configure 204.67.172.72
クラスター・アドレスを構成しない場合は、high availability モードの待機状態のサーバーにクラスターを追加する場合か、リモート・サーバーとして動作する広域 Dispatcher にクラスターを追加する場合です。また、スタンドアロン・モードでサンプル goIdle スクリプトを使用する場合は、cluster configure コマンドを実行する必要はありません。 goIdle スクリプトについては、スクリプトの使用を参照してください。
まれに、既存のアドレスのいずれのサブネットともクラスター・アドレスが一致しない場合があります。この場合は、cluster configure コマンドの 2 番目の形式を使用して、明示的にインターフェース名とネットマスクを提供してください。ndcontrol cluster configure cluster_address interface_name netmask を使用してください。
以下に、例をいくつか示します。
ndcontrol cluster configure 204.67.172.72 en0 255.255.0.0 (AIX) ndcontrol cluster configure 204.67.172.72 eth0:1 255.255.0.0 (Linux) ndcontrol cluster configure 204.67.172.72 le0:1 255.255.0.0 (Solaris 7) ndcontrol cluster configure 204.67.172.72 le0 255.255.0.0 (Solaris 8) ndcontrol cluster configure 204.67.172.72 en0 255.255.0.0 (Windows 2000)
Windows 2000 で cluster configure コマンドの 2 番目の形式を使用するには、使用するインターフェース名を決定しなければなりません。
マシンにイーサネット・カードが 1 つしかない場合は、インターフェース名は en0 です。同様に、トークンリング・カードが 1 つしかない場合は、インターフェース名は tr0 です。いずれかのタイプのカードが複数ある場合は、そのカードのマッピングを判別する必要があります。 以下のステップを使用します。
ネットワーク・インターフェース・アダプターが Network Cards の下にリストされます。各項目をクリックして、イーサネットかトークンリング・インターフェースかを判別します。インターフェースのタイプは、Description 欄にリストされます。ndconfig によって割り当てられた名前が、インターフェース・タイプにマップします。たとえば、リスト内の最初のイーサネット・インターフェースが ndconfig によって en0 に割り当てられ、 2 番目のイーサネット・インターフェースが en1 に割り当てられ、というように行われます。そして最初のトークンリング・インターフェースが tr0 に割り当てられ、 2 番目のトークンリング・インターフェースが tr1 に割り当てられ、というように行われます。
このマッピング情報を入手すれば、クラスター・アドレスに対してネットワーク・インターフェースで別名を作成することができます。
クラスター構成コマンドは、単に ifconfig (Windows 2000 では ndconfig) コマンドを実行するだけなので、必要に応じて ifconfig (ndconfig) コマンドを使用することもできます。
コマンド行を使用してクラスター別名を構成するための ndconfig コマンドが、Dispatcher コンポーネントとともに提供されます。この ndconfig コマンドは、UNIX ifconfig コマンドと同じ構文になっています。
ndconfig en0 alias 204.67.172.72 netmask 255.255.0.0
インターフェース名を決定するには、cluster configure コマンドの 2 番目の形式の場合と同じ技法を使用します。
サーバーの IP が含まれない IP アドレスのリストにバインドする、バインド固有のサーバー・アプリケーションを使用している場合には、ifconfig ではなく arp publish コマンドを使用し、Network Dispatcher マシンで動的に IP アドレスを設定します。
たとえば、以下のようになります。
arp -s <cluster> <Network Dispatcher MAC address> pub
ポートを定義するには、ndcontrol port add cluster:port コマンドを入力するか、サンプル構成ファイルを編集するか、GUI を使用します。cluster は、記号名か小数点付き 10 進表記アドレスのいずれかです。 port は、そのプロトコルに使用するポートの番号です。また、この時点でさまざまなポート設定値を変更することもできます。 1 つのポートに対して、すべてのサーバーを定義して構成しなければなりません。 付録 B, Dispatcher、CBR、および Mailbox Locator のコマンド解説を参照してください。
ポート番号 0 (ゼロ) は、ワイルドカード・ポートを指定するために使用します。 このポートは、クラスターで定義されたいずれのポートにも送信されないポートに対する通信を受け入れます。ワイルドカード・ポートは、すべてのポートについてルールとサーバーを構成するために使用します。この機能は、複数のポートに同じサーバーとルールの構成がある場合にも使用できます。このため、あるポートのトラフィックが、他のポートのトラフィックのロード・バランシング決定に影響を与えることがあります。ワイルドカード・ポートを使用する場合に関する詳細については、ワイルドカード・ポートを使用した未構成ポート通信の送信を参照してください。
ロード・バランシングが行われるサーバー・マシンを定義するには、ndcontrol server add cluster:port:server コマンドを入力するか、サンプル構成ファイルを編集するか、GUI を使用します。cluster および server は、記号名か小数点付き 10 進表記アドレスのいずれかです。 port は、そのプロトコルに使用するポートの番号です。ロード・バランシングを行うためには、クラスター上の 1 つのポートに対して複数のサーバーを定義しなければなりません。
バインド固有サーバー: Dispatcher コンポーネントがバインド固有サーバーにロード・バランシングする場合は、そのサーバーはクラスター・アドレスにバインドするように構成されて いなければなりません。 Dispatcher は宛先 IP アドレスを変更しないでパケットを転送するので、パケットがサーバーに到着した時は、そのパケットには宛先としてクラスター・アドレスが入ったままとなります。サーバーが、クラスター・アドレスとは異なる IP アドレスにバインドされるように構成されている場合には、サーバーはクラスター向けのパケット / 要求を受け入れられなくなります。
マルチアドレスの連結 連結された構成では、連結サーバー・マシンのアドレスは nonforwarding アドレス (NFA) と同じである必要は ありません。ご使用のマシンが複数の IP アドレスで定義されている場合には、別のアドレスを使用することができます。 Dispatcher コンポーネントの場合、連結されたサーバー・マシンは、ndcontrol server コマンドを使用して collocated と定義しなければなりません。連結されたサーバーの詳細については、連結サーバーの使用を参照してください。
ndcontrol サーバーコマンド構文の詳細については、ndcontrol server -- サーバーの構成を参照してください。
manager 機能によって、ロード・バランシング性能が向上します。manager を開始するには、ndcontrol manager start コマンドを入力するか、サンプル構成ファイルを編集するか、GUI を使用します。
advisor は、ロード・バランシングが行われるサーバー・マシンが要求に応答する能力に関する詳細情報を manager に提供します。advisor はプロトコル固有です。たとえば、HTTP advisor を開始するには、以下のコマンドを発行します。
cbrcontrol advisor start http port
advisor とそのデフォルト・ポートのリストについては、 付録 B, Dispatcher、CBR、および Mailbox Locator のコマンド解説を参照してください。 各 advisor の説明については、 advisor のリストを参照してください。
advisor を開始すると、ロード・バランシングの判断に含まれる advisor 情報に指定された重要度の割合を変更できます。クラスターの割合を設定するためには、ndcontrol cluster set cluster proportions コマンドを実行します。詳細については、状況情報に与えられる重要性の割合を参照してください。
サーバーが連結されている (Dispatcher がロード・バランシングする同じマシンに常駐している) 場合、または nat または cbr 転送メソッドを使用する場合は、以下の手順は実行 しないで ください。
mac 転送メソッドを使用している時には、Dispatcher はループバック・アダプターを追加の IP アドレスで構成できるバックエンド・サーバーでのみ動作し、そのために、バックエンド・サーバーは ARP (アドレス解決プロトコル) 要求には決して応答しません。このセクションのステップに従って、ロード・バランシングが行われるサーバー・マシンをセットアップします。
ロード・バランシングが行われるサーバー・マシンを機能させるには、ループバック・デバイス (通常は lo0 と呼ばれます) をクラスター・アドレスに設定しなければなりません (別名割り当てされることをお勧めします)。 mac 転送メソッドを使用している時は、 Dispatcher コンポーネントは、パケットを TCP サーバー・マシンに転送する前に、TCP/IP パケット中の宛先 IP アドレスを変更しません。ループバック・デバイスをクラスター・アドレスに設定または別名割り当てすることで、ロード・バランシングが行われるサーバー・マシンは、クラスター・アドレスにアドレス指定されたパケットを受け入れます。
オペレーティング・システムがネットワーク・インターフェースの別名割り当てをサポートしている場合 (AIX、Linux、Solaris、または Windows 2000 など) は、ループバック・デバイスをクラスター・アドレスに別名割り当てしてください。別名をサポートするオペレーティング・システムを使用する利点は、ロード・バランシングが行われるサーバー・マシンを、複数のクラスター・アドレスについてサービスを提供するように構成できることです。
Linux カーネル・バージョン 2.2.14 またはそれ以降の場合は、ifconfig コマンドに先だって以下のコマンドを実行してください。
echo 1 > /proc/sys/net/ipv4/conf/lo/hidden echo 1 > /proc/sys/net/ipv4/conf/all/hidden
サーバーのオペレーティング・システムが別名をサポートしない場合 (HP-UX、OS/2 など) は、ループバック・デバイスをクラスター・アドレスに設定しなければなりません。
ループバック・デバイスを設定または別名割り当てするには、表 4 に示す該当のオペレーティング・システム用のコマンドを使用してください。
表 4. Dispatcher のループバック・デバイス (lo0) を別名割り当てするコマンド
いくつかのオペレーティング・システムでは、デフォルトの経路が既に作成されている場合があります。その場合には、その経路を削除する必要があります。
Windows 2000 の場合の例 :
Active Routes: Network Address Netmask Gateway Address Interface Metric 0.0.0.0 0.0.0.0 9.67.128.1 9.67.133.67 1 9.0.0.0 255.0.0.0 9.67.133.158 9.67.133.158 1 9.67.128.0 255.255.248.0 9.67.133.67 9.67.133.67 1 9.67.133.67 255.255.255.255 127.0.0.1 127.0.0.1 1 9.67.133.158 255.255.255.255 127.0.0.1 127.0.0.1 1 9.255.255.255 255.255.255.255 9.67.133.67 9.67.133.67 1 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1 224.0.0.0 224.0.0.0 9.67.133.158 9.67.133.158 1 224.0.0.0 224.0.0.0 9.67.133.67 9.67.133.67 1 255.255.255.255 255.255.255.255 9.67.133.67 9.67.133.67 1
9.0.0.0 255.0.0.0 9.67.133.158 9.67.133.158 1
エクストラ経路は削除しなければなりません。表 5 に示す該当のオペレーティング・システム用のコマンドを使用して、エクストラ経路を削除します。
例: ステップ 2 の「活動状態の経路」の例に示されているエクストラ経路を削除するためには、次のように入力してください:
route delete 9.0.0.0 9.67.133.158
表 5. Dispatcher のすべてのエクストラ経路を削除するコマンド
HP-UX | route delete cluster_address cluster_address |
Windows 2000 | route delete network_address
cluster_address (MS-DOS プロンプトで)
|
図 15 に示す例を使用し、AIX を実行するサーバー・マシンをセットアップする場合のコマンドは、以下のようになります。
route delete -net 204.0.0.0 204.67.172.72
バックエンドのサーバーが適正に構成されていることを確認するためには、同じサブネット上の別のマシンで、Network Dispatcher が実行されていなくて、cluster が構成されていない時に、以下のステップを実行してください。
arp -d cluster
ping cluster
無応答でなければなりません。 ping に対して応答がある場合には、クラスター・アドレスをインターフェースに ifconfig していないことを確認してください。どのマシンも、クラスター・アドレスに対する公開された arp 項目をもっていないことを確認してください。
Linux カーネル・バージョン 2.2.14 またはそれ以降の場合は、/proc/sys/net/ipv4/conf/lo/hidden および /proc/sys/net/ipv4/conf/all/hidden の中に "1" があることを確認してください。
arp -a
コマンドからの出力の中に、サーバーの MAC アドレスがあるはずです。以下のコマンドを発行する。
arp -s cluster server_mac_address
arp -d cluster
Linux サーバーの場合にのみ、ループバック・デバイスに別名を割り当てるために、特定のパッチ (Linux カーネル・バージョンによって異なる) が必要となります。
パッチは、 ARP 応答を送信したのが ARP 要求で要求される IP アドレスをもつネットワーク・アダプター・ポートだけであることを確認します。このパッチがないと、 Linux はループバック別名のネットワーク上で ARP 応答を出します。また、このパッチは、異なる IP アドレスの複数ネットワーク・アダプター・ポートが同じ物理ネットワーク上にあるときに ARP 競合状態を訂正します。
パッチは以下の条件下でインストールしなければなりません。
バックエンドのサーバーで 2.2.12 または 2.2.13 カーネルを使用する場合。
注:
カーネル・パッチはすべての構成に必要なわけではありません。 Linux カーネル 2.4.x バージョンのパッチは、次の条件下においてインストールする必要があります。
このパッチは、http://oss.software.ibm.com/developerworks/opensource/cvs/naslib からダウンロードできます。
ダウンロード・リストの CVS ツリーを選択します。
パッチを適用するには、次のようにしてください。
cd /usr/src/linux-2.4/net/ipv4 patch -p0 -l < arp.c.2.4.0.patch
make dep;make clean;make bzImage;make modules;make modules_install cd arch/i386/boot cat bzImage > /boot/vmlinuz-2.4.2-2-arppatch cd /usr/src/linux-2.4 cp System.map /boot/System.map-2.4.2-2-arppatch cd /etc
Linux カーネル・バージョン 2.2.12 および 2.2.13 のパッチは、MAC 転送メソッドを使用して、任意のサーバー・ボックスにインストールしなければなりません。このパッチは http://www.ibm.com/developer/linux からダウンロードできます。
パッチを適用するには、次のようにしてください。
patch -p0 < patchfile
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_invisible
このコマンドは、マシンがリブートされるまでしか存続しません。一度リブートしてしまうと、このステップと以降のステップをもう一度行う必要があります。
ifconfig lo:1 cluster netmask 255.255.255.255 up
この章では、 Caching Proxy 付きの CBR コンポーネントをインストールおよび構成する前に、ネットワーク計画担当者が考慮しなければならない事項について説明します。
この章には、以下のセクションが含まれています。
CBR コンポーネントにより、要求を代行する Caching Proxy を使用して、 HTTP および SSL トラフィックをロード・バランシングできます。
CBR は、そのコンポーネントの構造の点で Dispatcher とよく似ています。CBR は以下の機能から構成されています。
manager の使用はオプションです。ただし、manager を使用しない場合は、現在のサーバーの重みに基づいて重み付きラウンドロビン・スケジューリングを使用してロード・バランシングが行われ、advisor は使用できなくなります。
CBR の 3 つの主要な機能 (executor、manager、および advisor) は相互に対話して、サーバー間の着信要求を平衡化したりディスパッチしたりします。ロード・バランシング要求とともに、executor は新規接続と活動接続の数をモニターし、この情報を manager に提供します。
CBR コンポーネントを使用すれば、要求内容の正規表現一致に基づいて要求を処理しなければならない一組のサーバーを指定することができます。 CBR を使用すればサイトを区分化することができるため、別のサーバー・セットから別の内容またはアプリケーション・サービスを提供することができます。この区分化は、サイトをアクセスするクライアントには見えません。 CBR では各要求タイプごとに複数のサーバーを指定することができるため、最適のクライアント応答を得るために要求をロード・バランシングすることができます。各タイプの内容に複数のサーバーを割り当てることができるため、1 つのワークステーションまたはサーバーが失敗してもユーザーは保護されます。 CBR は、この失敗を認識し、引き続きクライアント要求をセット内の他のサーバーでロード・バランシングします。
サイトを分割する方法の 1 つは、CGI 要求だけを処理するためにいくつかのサーバーを割り当てることです。こうすれば、数値計算の cgi スクリプトによってサーバーの通常の html トラフィックが低下するのを防止することができるため、クライアントは全般的な応答時間を改善することができます。この方式を使用すれば、通常の要求に対してより強力なワークステーションを割り当てることもできます。これにより、クライアントは、すべてのサーバーをアップグレードすることなしに、よりよい応答時間を得ることができます。また、 cgi 要求に対してより強力なワークステーションを割り当てることもできます。
もう 1 つのサイト区分化方法は、登録が必要なページにアクセスするクライアントを 1 つのサーバー・セットに割り当て、その他のすべての要求を別のサーバー・セットに割り当てることです。こうすれば、登録するクライアントが使用すると考えられるリソースをサイトのブラウザーが表示しないようになります。このほか、より強力なワークステーションを使用して、登録済みのクライアントにサービスを提供することもできます。
もちろん、これらの方式を組み合わせて、さらに融通性のある、よりよいサービスを提供することもできます。
Caching Proxy は接続インターフェースを使用して CBR と通信します。同じマシン上に Caching Proxy がインストールされていなければなりません。
同じマシン上で実行している Caching Proxy の複数インスタンスは、同時に CBR と通信できます。以前のリリースでは、 CBR と通信できる Caching Proxy のインスタンスは 1 つだけでした。
CBR および Caching Proxy は、指定のルール・タイプを使用して HTTP 要求数を調べます。 Caching Proxy は実行中にクライアント要求を受け入れて、最適なサーバーについて CBR コンポーネントに照会します。この照会に基づき、 CBR は優先順位が付けられたルールのセットとこの要求を突き合わせます。ルールと一致した場合は、事前に構成されたサーバー・セットから適切なサーバーを選択します。最後に、 CBR は選択したサーバーを Caching Proxy に通知し、そのサーバーで要求が代行されます。
あるクラスターをロード・バランシングするように定義した場合は、そのクラスターに対するすべての要求にサーバーを選択するルールがあることを確認する必要があります。特定の要求と一致しないルールが見つかると、クライアントは Caching Proxy からエラー・ページを受け取ります。すべての要求をあるルールと一致させるための最も簡単な方法は、常に真であるルールを非常に高い優先順位番号で作成することです。このルールによって使用されるサーバーは、それより低い優先順位のルールによって明示的に処理されなかったすべての要求を処理できることを確認してください。 (注: 優先順位の低いルールが先に評価されます。)
Caching Proxy 付きの CBR は、クライアントからプロキシーへの (クライアント - プロキシー・サイド) SSL 送信と、プロキシーから SSL サーバーへの (プロキシー - サーバー・サイド) サポート送信を受信できます。 SSL 要求をクライアントから受け取るために CBR 構成のサーバー上に SSL ポートを定義すると、セキュア (SSL) サーバーをロード・バランシングする CBR を使用して完全セキュア・サイトを保守する機能を得ます。
SSL 暗号化をプロキシー・サーバー・サイドで使用可能にするには、IBM Caching Proxy 用 ibmproxy.conf ファイルに構成ステートメントを追加する必要があります。
形式は以下のとおりでなければなりません。
proxy uri_pattern url_pattern address
ここで、uri_pattern は突き合わせるパターンの 1 つ (例: /secure/*) であり、url_pattern は置換 URL (例: https://clusterA/secure/*) であり、さらに address はクラスター・アドレス (例: clusterA) です。
Caching Proxy 付きの CBR がクライアントから SSL 送信を受け取ると、 HTTP サーバーに対する SSL 要求を代行する前にその要求を暗号化解除します。 SSL でクライアント − プロキシーをサポートし、 HTTP でプロキシー − サーバーをサポートする CBR の場合は、 cbrcontrol server コマンド上にオプション・キーワードの mapport
があります。サーバー上のポートがクライアントからの着信ポートと異なることを示す必要があるときには、このキーワードを使用してください。以下は、 mapport キーワードを使用してポートを追加する例です。ここでクライアントのポートは 443 (SSL) であり、サーバーのポートは 80 (HTTP) です。
cbrcontrol server add cluster:443 mapport 80
mapport のポート番号は、任意の正整数値にできます。デフォルトは、クライアントからの着信ポートのポート番号値です。
CBR は ポート 443 (SSL) で構成済みのサーバー向けの HTTP 要求についてアドバイスできなければならないので、特殊な advisor ssl2http が
提供されています。この advisor はポート 443 (クライアントからの着信ポート) を開始して、そのポートに構成されているサーバーにアドバイスします。クラスターが 2 つ構成されて、各クラスターに異なる mapport で構成されたポート 443 およびサーバーがある場合には、結果的に advisor の単一インスタンスが該当するポートをオープンできます。以下はこの構成の例です。
Executor Cluster1 Port:443 Server1 mapport 80 Server2 mapport 8080 Cluster2 Port:443 Server3 mapport 80 Server4 mapport 8080 Manager Advisor ssl2http 443
この章のステップを実行する前に、Content Based Routing コンポーネントの計画を参照してください。この章では、Network Dispatcher の CBR コンポーネントのための基本構成を作成する方法について説明します。
タスク | 説明 | 関連情報 |
---|---|---|
CBR マシンをセットアップする。 | 要件を探します。 | CBR マシンのセットアップ |
ロード・バランシング対象のマシンをセットアップする。 | ロード・バランシング構成をセットアップします。 | ステップ 7. ロード・バランシングが行われるサーバー・マシンの定義 |
Network Dispatcher の CBR コンポーネントのための基本構成を作成するには、次の 4 つの基本方式があります。
CBR を使用するには、Caching Proxy がインストールされていなければなりません。
これは、CBR を構成する最も直接的な方法です。コマンド・パラメーター値は、英字で入力する必要があります。唯一の例外は、ホスト名 (たとえば、クラスターおよびサーバー・コマンドで使用される) およびファイル名です。
コマンド行から CBR を開始するには、以下を行います。
cbrcontrol コマンド・パラメーターの省略バージョンを入力できます。単に、パラメーターの固有の文字を入力する必要があるだけです。たとえば、file save コマンドに関するヘルプを表示するには、cbrcontrol help file の代わりに cbrcontrol he f と入力することができます。
コマンド行インターフェースを始動するには、cbrcontrol を発行して cbrcontrol コマンド・プロンプトを受信します。
コマンド行インターフェースを終了するには、exit または quit を発行します。
注:
( ) 右および左括弧
& アンパーサンド
| 縦線
! 感嘆符
* アスタリスク
オペレーティング・システムのシェルは、これらを特殊文字として解釈し、 cbrcontrol が評価する前に代替テキストに変換することがあります。
上のリスト中の特殊文字は cbrcontrol rule add コマンドではオプショナル文字であり、コンテンツ・ルールのパターンを指定するときに使用されます。たとえば、以下のコマンドが有効であるのは、 cbrcontrol>> プロンプトを使用するときだけです。
rule add 10.1.203.4:80:cbr_prod_rule_ek type content pattern client=181.0.153.222&uri=http://10.1.203.4/nipoek/*
同じコマンドをオペレーティング・システムのプロンプトで使用する場合には、以下のように二重引用符 (" ") でパターンを囲む必要があります。
cbrcontrol rule add 10.1.203.4:80:cbr_prod_rule_ek type content pattern "client=181.0.153.222&uri=http://10.1.203.4/nipoek/*"
引用符を使用しないと、ルールを CBR に保管するときにパターンの一部が切り捨てされる場合があります。引用符は cbrcontrol>> コマンド・プロンプトの使用ではサポートされていないことに注意してください。
CBR を構成するための複数のコマンドを構成スクリプト・ファイルに入力して、一緒に実行することができます。
cbrcontrol file appendload myscript
cbrcontrol file newload myscript
グラフィカル・ユーザー・インターフェース (GUI) の例については、図 2 を参照してください。
GUI を開始するには、以下のステップに従ってください。
GUI から CBR コンポーネントを構成するには、ツリー構造で Content Based Routing を最初に選択しなければなりません。ホストに接続すると、manager を開始することができます。また、ポートとサーバーを含むクラスターを作成したり、manager の advisor を開始したりすることもできます。
GUI を使用して、cbrcontrol コマンドで行う任意の処理を実行することができます。たとえば、コマンド行を使用してクラスターを定義するには、cbrcontrol cluster add cluster コマンドを入力します。クラスターを GUI から定義するには、「Executor」を右マウス・ボタン・クリックしてから、ポップアップ・メニューで「クラスターの追加」を左マウス・ボタン・クリックします。ポップアップ・ウィンドウでクラスター・アドレスを入力して、「OK」をクリックします。
既存の CBR 構成ファイルは、「ホスト」ポップアップ・メニューに表示される「新規構成のロード」オプションと「現行の構成に追加」オプションを使用してロードすることができます。 CBR 構成は、「ホスト」ポップアップ・メニューに表示される「構成ファイルの別名保管」オプションを使用して定期的にファイルに保管しなければなりません。GUI の上部にある「ファイル」メニューによって、現行のホスト接続をファイルに保管したり、全 Network Dispatcher コンポーネントにわたって既存のファイルにある接続を復元したりすることができます。
Network Dispatcher ウィンドウの右上隅にある疑問符のアイコンをクリックすると、「ヘルプ」にアクセスすることができます。
GUI の使用に関する詳細については、GUI を使用する場合の一般的説明を参照してください。
構成ウィザードを使用する場合は、以下のステップに従ってください。
cbrwizard を発行することによって、コマンド・プロンプトからウィザードを立ち上げます。あるいは、GUI で示したように、CBR コンポーネントから構成ウィザードを選択します。
AIX、Linux、または Solaris の場合: Caching Proxy を開始するために、ibmproxy と入力します。
Windows 2000 の場合: Caching Proxy を開始するために、「サービス」パネルを表示します: 「スタート」->「設定」->「コントロール・パネル」->「管理ツール」->「サービス」。
CBR ウィザードは、CBR コンポーネントの基本構成を作成するプロセスを段階的に案内します。このウィザードでは、ユーザーのネットワークについて質問して、クラスターをセットアップしながら手引きします。このクラスターによって、CBR がサーバーのグループ間の通信に対するロード・バランシングを行うことができます。
CBR 構成ウィザードには、以下のパネルが表示されます。
CBR マシンをセットアップする前に、root ユーザー (AIX、Linux、または Solaris の場合) か、管理者 (Windows 2000 の場合) にならなければなりません。
セットアップするサーバーのクラスターごとに IP アドレスが 1 つずつ必要です。クラスター・アドレスは、ホスト名 (www.company.com など) に関連するアドレスです。この IP アドレスは、クライアントがクラスター内のサーバーに接続するために使用します。このアドレスは、クライアントからの URL 要求で使用されます。同じクラスター・アドレスに対する要求は、すべて CBR によってロード・バランシングが行われます。
Solaris の場合のみ: CBR コンポーネントを使用する前に、 IPC (プロセス間通信) のシステム・デフォルトを変更しなければなりません。共用メモリー・セグメントの最大サイズとセマフォー ID の数を増加する必要があります。 CBR をサポートするようにシステムを調整するには、システム上の /etc/system ファイルを編集して以下のステートメントを追加し、その後でリブートしてください。
set shmsys:shminfo_shmmax=0x02000000 set semsys:seminfo_semmap=750 set semsys:seminfo_semmni=30 set semsys:seminfo_semmns=750 set semsys:seminfo_semmnu=30 set semsys:seminfo_semume=30
共用メモリー・セグメントを上述の値に増やさないと、cbrcontrol executor start コマンドは失敗します。
CBR を使用するには、Caching Proxy がインストールされていなければなりません。
Caching Proxy 構成ファイル (ibmproxy.conf) に対して以下の変更を行わなければなりません。
着信 URL ディレクティブ CacheByIncomingUrl を "on" が指定されるように変更します。
CBR プラグイン用に編集しなければならない項目は以下の 4 つです。
項目は、それぞれ 1 行に収めなければなりません。各プラグイン当たり 1 つずつある ibmproxy.conf ファイルには、「ServerInit」のいくつかのインスタンスがあります。「CBR プラグイン」の項目を編集してコメントなしにしてください。
AIX、Linux、Solaris、および Windows 2000 に関する、構成ファイルへの固有の追加事項は以下のとおりです。
ServerInit /usr/lpp/nd/servers/lib/libndcbr.so:ndServerInit PreExit /usr/lpp/nd/servers/lib/libndcbr.so:ndPreExit PostExit /usr/lpp/nd/servers/lib/libndcbr.so:ndPostExit ServerTerm /usr/lpp/nd/servers/lib/libndcbr.so:ndServerTerm
ServerInit /opt/nd/servers/lib/libndcbr.so:ndServerInit PreExit /opt/nd/servers/lib/libndcbr.so:ndPreExit PostExit /opt/nd/servers/lib/libndcbr.so:ndPostExit ServerTerm /opt/nd/servers/lib/libndcbr.so:ndServerTerm
ServerInit /opt/nd/servers/lib/libndcbr.so:ndServerInit PreExit /opt/nd/servers/lib/libndcbr.so:ndPreExit PostExit /opt/nd/servers/lib/libndcbr.so:ndPostExit ServerTerm /opt/nd/servers/lib/libndcbr.so:ndServerTerm
図 19. Windows 2000 の CBR 構成ファイル
共通インストール・ディレクトリー・パス:
ServerInit c:¥Progra~1¥IBM¥edge¥nd¥servers¥lib¥libndcbr.dll:ndServerInit PreExit c:¥Progra~1¥IBM¥edge¥nd¥servers¥lib¥libndcbr.dll:ndPreExit PostExit c:¥Progra~1¥IBM¥edge¥nd¥servers¥lib¥libndcbr.dll:ndPostExit ServerTerm c:¥Progra~1¥IBM¥edge¥nd¥servers¥lib¥libndcbr.dll:ndServerTerm
ネイティブ・インストール・ディレクトリー・パス:
ServerInit c:¥Progra~1¥IBM¥nd¥servers¥lib¥libndcbr.dll:ndServerInit PreExit c:¥Progra~1¥IBM¥nd¥servers¥lib¥libndcbr.dll:ndPreExit PostExit c:¥Progra~1¥IBM¥nd¥servers¥lib¥libndcbr.dll:ndPostExit ServerTerm c:¥Progra~1¥IBM¥nd¥servers¥lib¥libndcbr.dll:ndServerTerm
CBR サーバー機能を開始するには、コマンド行で cbrserver と入力します。
デフォルトの構成ファイル (default.cfg) は、cbrserver の始動時に自動的にロードされます。
ユーザーが CBR 構成を default.cfg に保管することに決定すると、次に cbrserver を開始するときに、このファイルに保管されたすべてが自動的にロードされます。
executor 機能を開始するには、cbrcontrol executor start コマンドを入力します。 この時点で、さまざまな executor 設定値を変更することもできます。ndcontrol executor -- control の制御を参照してください。
CBR は、クラスター・アドレスに送信された要求を、そのクラスターのポートで構成された対応するサーバーに対して平衡化します。
クラスター・アドレスは、記号名または小数点付き 10 進表記アドレスのいずれかです。このアドレスは URL のホスト部分にあります。
クラスターを定義するには、以下のコマンドを発行します。
cbrcontrol cluster add cluster
クラスター・オプションを設定するには、以下のコマンドを発行します。
cbrcontrol cluster set cluster option value
詳細については、付録 B, Dispatcher、CBR、および Mailbox Locator のコマンド解説を参照してください。
リバース・プロキシーとして構成された Caching Proxy を実行する場合は、複数 Web サイトのロード・バランシング時に各 Web サイトのクラスター・アドレスを Network Dispatcher ボックスのネットワーク・インターフェース・カードの少なくとも 1 つに追加する必要があります。そうでない場合は、このステップは省略できます。
AIX、Linux、または Solaris の場合: ネットワーク・インターフェースにクラスター・アドレスを追加するには、ifconfig コマンドを使用します。 表 7 に示す該当のオペレーティング・システム用のコマンドを使用してください。
AIX | ifconfig interface_name alias cluster_address netmask netmask |
Linux | ifconfig interface_name cluster_address netmask netmask up |
Solaris 7 | ifconfig interface_name cluster_address netmask netmask up |
Solaris 8 | ifconfig addif interface_name cluster_address netmask netmask up |
Windows の場合: ネットワーク・インターフェースにクラスター・アドレスを追加するには、以下を実行します。
ポート番号は、サーバー・アプリケーションが listen するポートです。HTTP トラフィックを実行中の Caching Proxy 付き CBR の場合は、一般に、これはポート 80 です。
直前のステップで定義されたクラスターに対してポートを定義するには、以下を発行します。
cbrcontrol port add cluster:port
ポート・オプションを設定するには、以下を発行します。
cbrcontrol port set cluster:port option value
詳細については、付録 B, Dispatcher、CBR、および Mailbox Locator のコマンド解説を参照してください。
サーバー・マシンは、ロード・バランシングを行うアプリケーションを実行するマシンです。 server は、サーバー・マシンの記号名または小数点付き 10 進表記アドレスです。クラスターおよびポートでサーバーを定義するには、次のコマンドを発行します。
cbrcontrol server add cluster:port:server
ロード・バランシングを行うためには、クラスター上の 1 つのポートに対して複数のサーバーを定義しなければなりません。
これは、CBR w/Caching Proxy を構成する場合の重要なステップです。ルールは、URL 要求を識別していずれかの適切なサーバー・セットに送信する方法を定義します。 CBR によって使用される特別なルール・タイプを、コンテンツ・ルールといいます。コンテンツ・ルールを定義するには、以下のコマンドを発行します。
cbrcontrol rule add cluster:port:rule type content pattern=pattern
値 pattern は正規表現で、各クライアント要求の URL と比較されます。 パターンの構成方法に関する詳細については、付録 C, コンテンツ・ルール (パターン) 構文を参照してください。
Dispatcher で定義されたその他のルール・タイプの中には、CBR でも使用できるものがあります。 詳細については、ルール・ベースのロード・バランシングの構成を参照してください。
クライアント要求とルールを突き合わせるときには、最適なサーバーを求めてルールのサーバー・セットが照会されます。ルールのサーバー・セットは、ポートで定義されたサーバーのサブセットです。ルールのサーバー・セットにサーバーを追加するには、以下のコマンドを発行します。
cbrcontrol rule useserver cluster:port:rule server
manager 機能によって、ロード・バランシング性能が向上します。manager を開始するには、以下のコマンドを発行します。
cbrcontrol manager start
advisor は、ロード・バランシングが行われるサーバー・マシンが要求に応答する能力に関する詳細情報を manager に提供します。advisor はプロトコル固有です。たとえば、 HTTP advisor を開始するには、以下のコマンドを発行します。
cbrcontrol advisor start http port
advisor を開始すると、ロード・バランシングの判断に含まれる advisor 情報に指定された重要度の割合を変更できます。クラスター割合を設定するには、cbrcontrol cluster set cluster proportions コマンドを発行します。詳細については、状況情報に与えられる重要性の割合を参照してください。
/usr/lpp/nd/servers/lib
/opt/nd/servers/lib
共通インストール・ディレクトリー・パス:
c:¥Program Files¥IBM¥edge¥nd¥servers¥lib
ネイティブ・インストール・ディレクトリー・パス:
c:¥Program Files¥IBM¥nd¥servers¥lib
新規環境での、Caching Proxy の開始: コマンド・プロンプトから、ibmproxy を発行します。
この章では、Mailbox Locator コンポーネントのインストールと構成を行う前に、ネットワーク計画担当者が考慮しなければならない事項について説明します。
この章には、以下のセクションが含まれています。
Mailbox Locator コンポーネントにより、クライアント要求のユーザー ID およびパスワードに基づいて IMAP および POP3 トラフィックを代行できます。
Mailbox Locator は、そのコンポーネントの構造の点で Dispatcher とよく似ています。 Mailbox Locator は、以下の機能から構成されています。
manager の使用はオプションです。ただし、manager を使用しない場合は、現在のサーバーの重みに基づいて重み付きラウンドロビン・スケジューリングを使用してロード・バランシングが行われ、advisor は使用できなくなります。
Mailbox Locator の 3 つの主要な機能 (executor、manager、および advisor) は、対話してサーバー間の着信要求を平衡化してディスパッチします。ロード・バランシング要求とともに、executor は、新規接続と活動接続の数をモニターし、この情報を manager に提供します。
Mailbox Locator を開始するには、コマンド・プロンプトから mlserver コマンドを出します。
Mailbox Locator は多くの IMAP または POP3 サーバーに単一の現在位置を提供できます。各サーバーは、現在位置ごとに提供されるすべてのメールボックスのサブセットをもつことができます。 IMAP および POP3 では、 Mailbox Locator はクライアントが提供するユーザー ID とパスワードに基づいて適切なサーバーを選択するプロキシーです。
クライアントのユーザー ID に基づいた要求を配布するメソッドの例は、次のようになります。 2 つ (またはそれ以上) の POP3 サーバーを使用している場合には、メールボックスをユーザー ID ごとにアルファベット順に分割できます。ユーザー ID が文字 A 〜 I で始まるクライアント要求はサーバー 1 に配布、ユーザー ID が文字 J 〜 R で始まるクライアント要求はサーバー 2 に配布、などというようにします。
それぞれのメールボックスを複数のサーバーで表示することを選択することもできます。その場合、各メールボックスの内容は、そのメールボックスをもつすべてのサーバーで使用できなければなりません。サーバー障害の場合には、まだ別のサーバーがそのメールボックスにアクセス可能です。
1 つのアドレスで複数の POP3 メール・サーバーを示すには、すべてのクライアントの POP3 メール・サーバー・アドレスになる単一クラスター・アドレスで Mailbox Locator を構成してください。これを構成するコマンドは、以下のとおりです。
mlcontrol cluster add pop3MailServer mlcontrol port add pop3MailServer:110 protocol pop3 mlcontrol server add pop3MailServer:110:pop3Server1+pop3Server2+pop3Server3
この例では、pop3MailServer はクラスター・アドレスを表します。プロキシー・プロトコル POP3 をもつポート 110 は、pop3MailServer に追加されます。 Pop3Server1、pop3Server2、および pop3Server3 は、このポートに追加される POP3 メール・サーバーを表します。この構成では、 pop3MailServer クラスター・アドレスをもつメール・クライアントの着信 POP3 要求を構成できます。
POP3 要求または IMAP 要求がプロキシーに着信すると、そのプロキシーはクライアントのユーザー ID とパスワードを使用して、ポートのすべての構成済みサーバーに接続しようと試みます。クライアントの要求は、応答する最初のサーバーに送信されます。スティッキー / 類縁性機能は、 IMAP サーバーまたは POP3 サーバーの Mailbox Locator と共に使用する必要があります。類縁性機能により、同じクライアントのユーザー ID から出される以降の要求を同じサーバーに送信できます。ポートの stickytime をゼロより大きい値に設定して、この類縁性機能を使用可能にします。 類縁性機能の詳細については、Network Dispatcher の類縁性機能の使用法を参照してください。
POP3 プロトコルおよび IMAP プロトコルの非活動オートログアウト・タイマーの最小値は、それぞれ 10 分および 30 分です。このタイムアウトは、接続上で活動がなくなってから接続が解除されるまでの秒数です。パフォーマンスを最適化するために、 Mailbox Locator は非活動タイムアウト値を 60 秒に上書きします。非活動タイムアウトを変更するには、 mlcontrol port コマンドの staletimeout 値を変更してください。このコマンドの構成については、ndcontrol port -- ポートの構成を参照してください。
この章のステップを実行する前に、Mailbox Locator コンポーネントの計画を参照してください。この章では、Network Dispatcher のMailbox Locator コンポーネントのための基本構成を作成する方法について説明します。
表 8. Mailbox Locator コンポーネントの構成タスク
タスク | 説明 | 関連情報 |
---|---|---|
Mailbox Locator マシンをセットアップする。 | 要件を探します。 | Mailbox Locator マシンの設定 |
ロード・バランシング対象のマシンをセットアップする。 | ロード・バランシング構成をセットアップします。 | ステップ 4. ロード・バランシングが行われるサーバー・マシンの定義 |
Network Dispatcher の Mailbox Locator コンポーネントのための基本構成を作成するには、次の 4 つの基本方式があります。
これは、Mailbox Locator を構成するための最も直接的な方法です。コマンド・パラメーター値は、英字で入力する必要があります。唯一の例外は、ホスト名 (たとえば、クラスターおよびサーバー・コマンドで使用される) およびファイル名です。
コマンド行から Mailbox Locator を開始するには、次のようにしてください。
mlcontrol コマンド・パラメーターは、最小限バージョンで入力することができます。入力する必要があるのは、パラメーターの固有文字だけです。たとえば、ファイル保管コマンドに関するヘルプを表示するには、 mlcontrol help file の代わりに mlcontrol he f を入力できます。
コマンド行インターフェースを始動するには、mlcontrolを実行して、mlcontrol コマンド・プロンプトを表示します。
コマンド行インターフェースを終了するには、exit または quit を実行します。
Mailbox Locator を構成するための複数のコマンドを構成スクリプト・ファイルに入力して、一緒に実行することができます。
mlcontrol file appendload myscript
mlcontrol file newload myscript
GUI の例については、 図 2を参照してください。
GUI を開始するには、以下のステップに従ってください。
GUI から Mailbox Locator コンポーネントを構成するためには、最初にツリー構造から「Mailbox Locator」を選択しなければなりません。ホストに接続すると、manager を開始することができます。また、ポートとサーバーを含むクラスターを作成したり、manager の advisor を開始したりすることもできます。
GUI を使用して、mlcontrol コマンドで行うあらゆる処理を実行することができます。たとえば、コマンド行を使用してクラスターを定義するには、mlcontrol cluster add cluster コマンドを入力します。クラスターを GUI から定義するには、「Executor」を右マウス・ボタン・クリックしてから、ポップアップ・メニューで「クラスターの追加」を左マウス・ボタン・クリックします。ポップアップ・ウィンドウでクラスター・アドレスを入力して、「OK」をクリックします。
既存の Mailbox Locator 構成ファイルは、「ホスト」ポップアップ・メニューに表示される「新規構成のロード」オプションと「現行の構成に追加」オプションを使用してロードできます。 Mailbox Locator 構成は、「ホスト」ポップアップ・メニューに表示される「構成ファイルの別名保管」オプションを使用して定期的にファイルに保管しなければなりません。 GUI の上部にある「ファイル」メニューによって、現行のホスト接続をファイルに保管したり、全 Network Dispatcher コンポーネントにわたって既存のファイルにある接続を復元したりすることができます。
Network Dispatcher ウィンドウの右上隅にある疑問符のアイコンをクリックすると、「ヘルプ」をアクセスできます。
GUI の使用に関する詳細については、GUI を使用する場合の一般的説明を参照してください。
構成ウィザードを使用する場合は、以下のステップに従ってください。
mlwizard を発行して、コマンド・プロンプトからこのウィザードを立ち上げることができます。あるいは、GUI で示したように、Mailbox Locator コンポーネントから構成ウィザードを選択します。
Mailbox Locator ウィザードは、Mailbox Locator コンポーネントの基本構成を作成するプロセスを段階的に案内します。このウィザードは、ユーザーのネットワークについて質問し、クラスターをセットアップしながら手引きします。このクラスターによって、Mailbox Locator がサーバーのグループ間の通信に対するロード・バランシングを行うことができます。
Mailbox Locator 構成ウィザードには、以下のパネルが表示されます。
Mailbox Locator マシンをセットアップする前に、root ユーザー (AIX、Linux、または Solaris の場合) か、管理者 (Windows 2000 の場合) にならなければなりません。
セットアップするサーバーのクラスターごとに IP アドレスが 1 つずつ必要です。クラスター・アドレスは、ホスト名 (www.yourcompany.com など) に関連するアドレスです。この IP アドレスは、クライアントがクラスター内のサーバーに接続するために使用します。同じクラスター・アドレスに対する要求は、すべて Mailbox Locator によってロード・バランシングが行われます。
サーバー機能を開始するには、コマンド行に mlserver と入力します。
ユーザーが構成を default.cfg に保管することを決定すると、次に mlserver を開始するときに、このファイルに保管されたすべてが自動的にロードされます。
Mailbox Locator は、クラスター・アドレスに送信された要求を、そのクラスターのポートで構成された対応するサーバーに対して平衡化します。
クラスター・アドレスは、記号名または小数点付き 10 進表記アドレスのいずれかです。
クラスターを定義するには、以下のコマンドを発行します。
mlcontrol cluster add cluster
クラスター・オプションを設定するには、以下のコマンドを発行します。
mlcontrol cluster set cluster option value
詳細については、付録 B, Dispatcher、CBR、および Mailbox Locator のコマンド解説を参照してください。
ポート番号は、サーバー・アプリケーションが listen するポートです。 IMAP トラフィックの場合、通常はポート 143 です。また、POP3 トラフィックの場合は、通常はポート 110 です。
前のステップで定義したクラスターにポートを定義するには、次を実行します。
mlcontrol port add cluster:port protocol [pop3|imap]
ポート・オプションを設定するには、以下を発行します。
mlcontrol port set cluster:port option value
詳細については、付録 B, Dispatcher、CBR、および Mailbox Locator のコマンド解説を参照してください。
メール・サーバーは、ロード・バランシングしたいアプリケーションを実行するマシンです。 server は、サーバー・マシンの記号名または小数点付き 10 進表記アドレスです。ステップ 3 のクラスターおよびポートでサーバーを定義するには、以下のコマンドを発行します。
mlcontrol server add cluster:port:server
ロード・バランシングを行うためには、クラスター上の 1 つのポートに対して複数のサーバーを定義しなければなりません。
manager 機能によって、ロード・バランシング性能が向上します。manager を開始するには、以下のコマンドを発行します。
mlcontrol manager start
advisor は、ロード・バランシングが行われるサーバー・マシンが要求に応答する能力に関する詳細情報を manager に提供します。advisor はプロトコル固有です。 Network Dispatcher は IMAP および POP3 advisor を提供します。たとえば、IMAP advisor を開始するには、以下のコマンドを発行します。
mlcontrol advisor start imap port
advisor とそのデフォルト・ポートのリストについては、 付録 B, Dispatcher、CBR、および Mailbox Locator のコマンド解説を参照してください。各 advisor の説明については、 advisor のリストを参照してください。
advisor を開始すると、ロード・バランシングの判断に含まれる advisor 情報に指定された重要度の割合を変更できます。クラスター・プロパティーを設定するには、mlcontrol cluster set cluster proportions コマンドを実行します。詳細については、状況情報に与えられる重要性の割合を参照してください。
この章では、Site Selector コンポーネントのインストールと構成を行う前に、ネットワーク計画担当者が考慮しなければならない事項について説明します。
この章には、以下のセクションが含まれています。
Site Selector はドメイン・ネーム・サーバーと共に作動し、収集した測定値および重みを使用してサーバー・グループ間をロード・バランシングします。クライアント要求に使用されるドメイン・ネームに基づいて、サーバー・グループ間のトラフィックをロード・バランシングするためのサイト構成を作成できます。
サブドメインを DNS 環境内の Site Selector 用にセットアップする場合は、Site Selector にはその所有サブドメインに対する権限が必要です。例 (図 20を参照) の場合は、ユーザーの会社には company.com ドメインに対する権限が割り当てられています。その社内には、いくつかのサブドメインがあります。 Site Selector には siteload.company.com についての権限が必要になる一方、DNS サーバー (1 つまたは複数) は atlanta.company.com および boston.company.com の権限を依然として維持することになります。
会社のネーム・サーバーが、Site Selector は siteload サブドメインについての権限があると認識するためには、ネーム・サーバー項目がその名前付きデータ・ファイルに追加されていることが必要になります。たとえば、AIX では、ネーム・サーバー項目は次のようになります。
siteload.company.com. IN NS siteselector.company.com.
ここで、siteselector.company.com は Site Selector マシンの hostname です。同等の項目が、DNS サーバーによって使用される任意の他の名前付きデータベース・ファイル中に作成されていることが必要になります。
クライアントが、ネットワーク内部のネーム・サーバーに対してドメイン・ネームを解決する要求を出します。 ネーム・サーバーはその要求を Site Selector マシンに転送します。すると Site Selector は、そのドメイン・ネームをサイト名に基づいて構成されたいずれかのサーバーの IP アドレスに解決します。 Site Selector は選択したサーバーの IP アドレスをネーム・サーバーに戻します。その IPアドレスをネーム・サーバーがクライアントに戻します。 (Site Selector は非再帰的 (リーフ・ノード) ネーム・サーバーとして動作し、ドメイン・ネーム要求を解決しない場合はエラーを戻します。)
図 11 を参照してください。これは Site Selector を DNS システムと共に使用して、ローカル・サーバーおよびリモート・サーバーをロード・バランシングするサイトを図示しています。
Site Selector は、以下の機能から構成されています。
manager の使用はオプションです。ただし、manager を使用しない場合は、現在のサーバーの重みに基づいて重み付きラウンドロビン・スケジューリングを使用してロード・バランシングが行われ、advisor は使用できなくなります。
メトリック・サーバーを使用して、 Site Selector はサーバー上でアクティビティー・レベルをモニターし、サーバーの負荷が最小のときを検出し、障害のあるサーバーを検出することができます。負荷とは、サーバーが作動している忙しさの程度を示す尺度です。システム Site Selector 管理者は、負荷測定に使用する測定基準のタイプと負荷モニター期間の長さの両方を制御します。アクセス頻度、ユーザー総数、アクセス・タイプ (たとえば、短時間の照会、長時間の照会、または CPU 手中の負荷) などの要因を考慮に入れて、自分の環境に適合するように Site Selector を構成できます。
ロード・バランシングはサーバーの重みに基づきます。 Site Selector では、 manager が重みを判別するために使用する割合に以下の 4 つがあります。
CPU およびメモリー値のすべてはメトリック・サーバーによって提供されます。したがって、 Site Selector コンポーネントではメトリック・サーバーの使用が 推奨されます 。
詳細については、メトリック・サーバーを参照してください。
Site Selector の 4 つのキー機能 (ネーム・サーバー、 manager、メトリック・サーバー、および advisors) は対話して、サーバー間の着信要求を平衡化および解決します。
DNS ベース・ロード・バランシングを使用するには、ネーム・レゾリューションのキャッシングが使用不可にされていることが必要です。 TTL (存続時間) 値により、DNS ベース・ロード・バランシングの有効性が判別されます。 TTL により、別のネーム・サーバーが解決済みの応答をキャッシュする時間が決定されます。小さい TTL 値は、サーバーにおける微妙な変更、またはより迅速に実現されるネットワーク負荷の場合に使用できます。しかし、キャッシングを使用不可にすると、クライアントがすべてのネーム・レゾリューションのために信頼すべきネーム・サーバーに接続することが必要なので、クライアントの待ち時間が増加する可能性があります。 TTL 値を選択する場合は、キャッシングを使用不可にすることが環境に及ぼす影響に対して細心の考慮を払う必要があります。また、DNS ベースのロード・バランシングはネーム・レゾリューションのクライアント・サイドのキャッシングによって制限される可能性があることも知っておいてください。
TTL は sscontrol sitename [add | set] コマンドを使用して構成できます。詳細については、sscontrol sitename -- サイト名の構成を参照してください。
ネットワーク接近性とは、要求しているクライアントに対する各サーバーの接近性の計算です。ネットワーク接近性を判別するために、メトリック・サーバー・エージェント (各ロード・バランシングされたサーバー上に常駐していなければなりません) がクライアント IP アドレスに PING を送り、 Site Selector に応答時間を戻します。 Site Selector はロード・バランシング判断に接近性応答を使用します。 Site Selector はネットワーク接近性応答値を manager からの重みと結合し、サーバーの結合済み最終重み値を作成します。
Site Selector でのネットワーク接近性機能の使用はオプションです。
Site Selector は以下のネットワーク接近性オプションを提供し、これはサイト名ごとに設定できます。
「はい」を設定すると、メトリック・サーバーはクライアントを ping して、接近性応答時間を得ます。ネーム・サーバーはすべてのメトリック・サーバーが応答するか、またはタイムアウトが起きるのを待ちます。次に、各サーバーではネーム・サーバーが接近性応答時間と manager が計算した重みを結合して、各サーバーの「結合重み」値を作成します。 Site Selector は、最適の結合重みがあるサーバー IP アドレスのクライアントを提供します。 (最大クライアント・ネーム・サーバーのタイムアウトは 5 秒であると予期されます。 Site Selector はタイムアウトを超えるまで応答を試みます。)
「いいえ」に設定すると、現在の manager 重みに基づいてネーム・レゾリューションがクライアントに提供されます。次に、メトリック・サーバーはクライアントを ping して、接近性応答時間を得ます。ネーム・サーバーはメトリック・サーバーから受け取る応答時間をキャッシュします。クライアントが 2 番目の要求を戻すと、ネーム・サーバーは現在の manager 重みを各サーバーのキャッシュされた ping 応答値と結合し、最適な「結合された重み」があるサーバーを獲得します。 Site Selector は、 2 番目の要求についてこのサーバーの IP アドレスをクライアントに戻します。
ネットワーク接近性オプションは、 sscontrol sitename [add/set] コマンドで設定できます。 詳細については、付録 D, Site Selector のコマンド解説を参照してください。
この章のステップを実行する前に、Site Selector コンポーネントの計画を参照してください。この章では、Network Dispatcher の Site Selector コンポーネントのための基本構成を作成する方法について説明します。
表 9. Site Selector コンポーネントの構成タスク
タスク | 説明 | 関連情報 |
---|---|---|
Site Selector マシンをセットアップする。 | 要件を探します。 | Site Selector マシンのセットアップ |
ロード・バランシング対象のマシンをセットアップする。 | ロード・バランシング構成をセットアップします。 | ステップ 4. ロード・バランシングが行われるサーバー・マシンの定義 |
Network Dispatcher の Site Selector コンポーネントの基本構成を作成するために、Site Selector コンポーネントを構成する基本的な次の 4 つの方式があります:
これは、Site Selector を構成するための最も直接的な方法です。 コマンド・パラメーター値は、英字で入力する必要があります。唯一の例外は、ホスト名 (たとえば、サイト名およびサーバー・コマンドで使用される) およびファイル名です。
コマンド行から Site Selector を始動するには:
sscontrol コマンド・パラメーターは、最小限バージョンで入力することができます。単に、パラメーターの固有の文字を入力する必要があるだけです。たとえば、file save コマンドに関するヘルプを表示するには、sscontrol help file の代わりに sscontrol he f と入力することができます。
コマンド行インターフェースを始動するには、sscontrol を実行して、sscontrol コマンド・プロンプトを表示します。
コマンド行インターフェースを終了するには、exit または quit を実行します。
Site Selector を構成するための複数のコマンドを構成スクリプト・ファイルに入力して、一緒に実行することができます。
sscontrol file appendload myscript
sscontrol file newload myscript
GUI の例については、図 2 を参照してください。
GUI を開始するには、以下のステップに従ってください。
GUI から Site Selector コンポーネントを構成するためには、最初にツリー構造から「Site Selector」を選択しなければなりません。ホストに接続すると、manager を開始することができます。また、ポートとサーバーを含むサイト名を作成したり、manager の advisor を開始したりすることもできます。
GUI を使用して、sscontrol コマンドで行うあらゆる処理を実行することができます。 たとえば、コマンド行を使用してサイト名を定義するには、sscontrol sitename add sitename コマンドを入力します。 GUI からサイト名を定義するには、「ネーム・サーバー」を右クリックしてから、ポップアップ・メニューで「サイト名の追加」を左クリックします。ポップアップ・ウィンドウでサイト名を入力してから、「了解」をクリックします。
既存の Site Selector 構成ファイルは、「ホスト」ポップアップ・メニューに表示される「新規構成のロード」オプションと「現行の構成に追加」オプションを使用してロードすることができます。 Site Selector 構成は、「ホスト」ポップアップ・メニューに表示される「構成ファイルの別名保管」オプションを使用して定期的にファイルに保管しなければなりません。 GUI の上部にある「ファイル」メニューによって、現行のホスト接続をファイルに保管したり、全 Network Dispatcher コンポーネントにわたって既存のファイルにある接続を復元したりすることができます。
Network Dispatcher ウィンドウの右上隅にある疑問符のアイコンをクリックすると、「ヘルプ」にアクセスすることができます。
GUI の使用に関する詳細については、GUI を使用する場合の一般的説明を参照してください。
構成ウィザードを使用する場合は、以下のステップに従ってください。
sswizard を発行して、コマンド・プロンプトからこのウィザードを立ち上げることができます。あるいは、GUI で示したように、Site Selector コンポーネントから構成ウィザードを選択します。
Site Selector ウィザードは、Site Selector コンポーネントの基本構成を作成するプロセスを段階的に案内します。 このウィザードは、ユーザーのネットワークについて質問し、サイト名をセットアップする時の手引きをします。このクラスターによって、Site Selector がサーバーのグループ間の通信に対するロード・バランシングを行うことができます。
Site Selector 構成ウィザードには、以下のパネルが表示されます。
Site Selector マシンをセットアップする前に、root ユーザー (AIX、Linux、または Solaris の場合) か、管理者 (Windows 2000 の場合) にならなければなりません。
セットアップするサーバーのグループのサイト名として使用するために、解決不能の DNS ホスト名が必要となります。サイト名は、クライアントがサイト (www.yourcompany.com など) にアクセスするために使用する名前です。 Site Selector は DNS を使用して、サーバーのグループ間でこのサイト名のトラフィックをロード・バランシングします。
AIX、Linux、および Solaris: サーバー機能を開始するには、ssserver と入力します。
構成を default.cfg に保管することを決定すると、次回に ssserver を開始する時に、このファイルに保管されたすべてのものが自動的にロードされます。
ネーム・サーバーを始動するには,sscontrol nameserver start コマンドを入力します。
オプションで指定アドレスにだけバインドするには、 bindaddress キーワードを使用してネーム・サーバーを開始してください。
Site Selector は、構成された対応するサーバーに送信された サイト名 用の要求のバランスをとります。
サイト名 は、クライアントが要求する解決不能のホスト名です。サイト名 は完全修飾ドメイン・ネーム (たとえば、www.dnsdownload.com) でなければなりません。クライアントがこの サイト名 を要求すると、サイト名 と対応したサーバー IP アドレスの 1 つが戻されます。
サイト名 を定義するには、次のコマンドを実行します:
sscontrol sitename add sitename
サイト名 オプションを設定するには、次のコマンドを実行します:
sscontrol sitename set sitename option value
詳細については、付録 D, Site Selector のコマンド解説を参照してください。
サーバー・マシンは、ロード・バランシングを行うアプリケーションを実行するマシンです。 server は、サーバー・マシンの記号名または小数点付き 10 進表記アドレスです。ステップ 3 で サイト名 にサーバーを定義するには、以下のコマンドを実行します:
sscontrol server add sitename:server
ロード・バランシングを実行するためには、サイト名のもとで複数のサーバーを定義しなければなりません。
manager 機能によって、ロード・バランシング性能が向上します。 manager 機能の開始前に、メトリック・サーバーがロード・バランシング済みマシンのすべてにインストールされていることを確認してください。
manager を開始するには、以下のコマンドを発行します。
sscontrol manager start
advisor は、ロード・バランシングが行われるサーバー・マシンが要求に応答する能力に関する詳細情報を manager に提供します。advisor はプロトコル固有です。Network Dispatcher は多くの advisor を提供します。たとえば、特定サイト名前の HTTP advisor を開始するには、以下のコマンドを出します。
sscontrol advisor start http sitename:port
システム・メトリックおよび メトリック・サーバー の使用法については、メトリック・サーバーを参照してください。
advisor を開始すると、ロード・バランシングの判断に含まれる advisor 情報に指定された重要度の割合を変更できます。サイト名 の割合を設定するには、sscontrol sitename set sitename proportions コマンドを実行してください。詳細については、 状況情報に与えられる重要性の割合を参照してください。
Site Selector コンポーネントでメトリック・サーバーを使用することをお勧めします。 Site Selector がロード・バランシングするすべてのサーバー・マシンでメトリック・サーバーをセットアップする方法については、メトリック・サーバー を参照してください。
この章では、 Consultant for Cisco CSS Switches コンポーネントをインストールおよび構成する前に、ネットワーク計画担当者が考慮しなければならない事項について説明します。
この章では、以下について説明します。
Cisco Consultant の構成は、 Cisco CSS スイッチ の構成によって異なります (表 10 を参照してください)。 Cisco CSS スイッチの計画および構成が完了すると、 Cisco Consultant を構成および使用できます。計画および構成の指示については、 Cisco CSS スイッチ の資料を参照してください。
Consultant は、以下から構成されています。
advisor は、サーバーを照会し、プロトコルごとに結果を分析してから、manager を呼び出して適切な重みを設定します。現在、 Cisco Consultant は HTTP、 FTP、 SSL、 SMTP、 NNTP、 IMAP、 POP3 (その他) などの advisor を提供しています。また、オプションでユーザー自身の advisor を作成することもできます (カスタム (カスタマイズ可能) advisor の作成 を参照してください) 。 advisors の使用はオプションですが、使用されることをお勧めします。
メトリック・サーバー はシステム固有のメトリックの形式でサーバー・ロード情報を Consultant に提供し、サーバーの状態について報告します。 manager は各サーバーに常駐している メトリック・サーバー を照会し、エージェントから集めたメトリックを使用して、ロード・バランシング・プロセスへの重みの割り当てを援助します。その結果も manager 報告書に入れられます。
manager は、 Cisco CSS スイッチ、 advisor、および メトリック・サーバー から情報を収集します。 manager は、受け取った情報に基づいて各ポートにおいてサーバー・マシンの重み付けの方法を調整し、新規接続の平衡化で使用する新規の重み値を Cisco CSS スイッチ に指定します。 manager は、サーバーがダウンしていることを発見すると、そのサーバーにゼロの重みを割り当て、そのサーバーは中断状態になります。次に、 Cisco CSS スイッチ はそのサーバーへのトラフィックの転送を停止します。
advisor は、割り当てられたポート上の各サーバーをモニターしてサーバーの応答時間と使用可能度を決定してから、この情報を manager に提供します。advisor も、サーバーが起動しているかいないかをモニターします。
Consultant を適切に構成するには、構成が Cisco CSS スイッチ 構成とミラーリングになっている必要があります。最初に、 Cisco Services Switch Getting Started Guide を参照して、 Cisco CSS スイッチ を構成します。 switch が正確に作動していることを確認してから、 Consultant を構成してください。
Cisco CSS スイッチ は所有者、コンテンツ・ルール、およびサービスから構成され、次のように Consultant 構成にマップされます。
表 10. Consultant および Cisco CSS スイッチ の構成条件
Cisco CSS スイッチ | Consultant |
---|---|
所有者の 1 つまたは複数のコンテンツ・ルールの仮想 IP アドレス (VIP) | クラスター |
コンテンツ・ルールに含まれたポート | ポート |
サービス | サーバー |
Consultant 構成ツリーは、以下で構成されています。
図 21. 2 つのクラスターにそれぞれ 2 つのポートを構成した Consultant の例
図 21 について:
executor を構成するときには、アドレスおよび SNMP コミュニティー名を構成する必要があり、これらは Cisco CSS スイッチ 上の対応する属性と一致しなければなりません。 executor の構成については、 lbccontrol executor -- control の制御を参照してください。
表 11. Consultant 構成にマップされる Cisco CSS スイッチ 構成の例
Cisco CSS スイッチ 構成 | Consultant 構成 |
---|---|
username admin superuser snmp community community private read-write |
lbccontrol executor set address 10.10.20.1 lbccontrol executor set communityname community |
content rule1 port 80 balance weightedrr add service server1 add service server2 vip address 9.67.154.35 active |
lbccontrol cluster add 9.67.154.35 lbccontrol port add 9.67.154.35:80 |
content rule 2 protocol tcp port 443 balance weightedrr add service server3 add service server4 vip address 9.67.154.35 active |
lbccontrol port add 9.67.154.35:443 |
service server1 ip address 10.10.20.2 port 80 weight 4 active |
lbccontrol server add 9.67.154.35:80:server1 address 10.10.20.2 |
service server3 ip address 10.10.20.4 port 443 weight 4 active |
lbccontrol server add 9.67.154.35:443:server3 address 10.10.20.4 |
この章のステップを実行する前に、Consultant for Cisco CSS Switches コンポーネントの計画を参照してください。この章では、Network Dispatcher の Consultant for Cisco CSS Switches コンポーネントのための基本構成を作成する方法について説明します。
本章の構成方式のいずれかを開始する前に、以下を行ってください。
表 12. Consultant for Cisco CSS Switches コンポーネントの構成タスク
タスク | 説明 | 関連情報 |
---|---|---|
Consultant for Cisco CSS Switches マシンをセットアップする。 | 要件を探します。 | Consultant for Cisco CSS Switches マシンのセットアップ |
構成のテスト | 構成が作動中であることの確認 | 構成のテスト |
Network Dispatcher の Consultant for Cisco CSS Switches コンポーネント用の基本構成を作成するためには、以下の 3 つの方式があります。
これは、Cisco Consultant を構成するための最も直接的な方法です。本書の手順では、コマンド行の使用を想定しています。コマンド・パラメーター値は、英字で入力する必要があります。唯一の例外は、ホスト名 (たとえば、クラスターおよびサーバー・コマンドで使用される) およびファイル名です。
コマンド行から Cisco Consultant を始動するには:
lbccontrol コマンド・パラメーターの省略バージョンを入力できます。 入力する必要があるのは、パラメーターの固有文字だけです。たとえば、ファイル保管コマンドに関するヘルプを表示するには、 lbccontrol help file の代わりに lbccontrol he f を入力できます。
コマンド行インターフェースを始動するには、lbccontrol を実行して、lbccontrol コマンド・プロンプトを表示します。
コマンド行インターフェースを終了するには、exit または quit を発行します。
Consultant for Cisco CSS Switches を構成するための複数のコマンドを構成スクリプト・ファイルに入力して、一緒に実行することができます。
lbccontrol file appendload myscript
lbccontrol file newload myscript
グラフィカル・ユーザー・インターフェース (GUI) の例については、図 2 を参照してください。
GUI を開始するには、以下のステップに従ってください。
lbcserver .
Cisco Consultant コンポーネントを GUI から構成するには、以下を行います。
GUI を使用して、lbccontrol コマンドで行うあらゆる処理を実行できます。たとえば、コマンド行を使用してクラスターを定義するには、lbccontrol cluster add cluster コマンドを入力します。クラスターを GUI から定義するには、「executor」を右マウス・ボタン・クリックしてから、「クラスターの追加」をクリックします。ポップアップ・ウィンドウでクラスター・アドレスを入力して、「OK」をクリックします。
「ホスト」ポップアップ・メニューに表示されている、「新規構成のロード」オプション (現行構成を完全に置き換える場合) および「現行の構成に追加」オプション (現行構成を更新する場合) を使用して既存の Cisco Consultant 構成ファイルをロードできます。「構成ファイルの別名保管」オプションを選択して自分の Cisco Consultant 構成をファイルに定期的に保管します。メニュー・バーで「ファイル」をクリックして、自分の現行構成をファイルに保管かるか、あるいは既存のファイル中の接続をすべての Network Dispatcher コンポーネント間に復元します。
「ヘルプ」にアクセスするには、Network Dispatcher ウィンドウの右上隅の疑問符 (?) アイコンをクリックします。
GUI の使用に関する詳細については、GUI を使用する場合の一般的説明を参照してください。
Consultant for Cisco CSS Switches マシンをセットアップする前に、root ユーザー (AIX、Linux、または Solaris の場合) か、管理者 (Windows 2000 の場合) にならなければなりません。
Consultant は Cisco CSS スイッチ 管理者として Cisco CSS スイッチ に接続できなければなりません。
executor を構成するときは、アドレスを構成しなければならず、SNMP コミュニティー名は Cisco CSS スイッチ で対応している属性と一致していなければなりません。
この手順で使用するコマンドのヘルプについては、付録 E, Consultant for Cisco CSS Switches のコマンド解説を参照してください。
lbcserver がまだ実行中でない場合は、以下をルートとして実行することによってすぐに開始してください。
lbcserver
アドレスおよび SNMP コミュニティー名を構成しなければなりません。これらの値は、Cisco CSS スイッチ で対応している属性と一致していなければなりません。
Cluster は、解決可能な名前または小数点付き 10 進数アドレスのいずれかです。クラスターは所有者のコンテンツ・ルールの Cisco CSS スイッチ の仮想 IP アドレスです。
クラスターを定義するには、lbccontrol cluster add cluster と入力します。cluster オプションを設定するには、lbccontrol cluster set と入力します。
ポートを定義するには、lbccontrol port add cluster:port と入力します。このポートは、所有者の Cisco CSS スイッチ コンテンツ・ルールで構成されているポートと対応しています。
port は、Cisco CSS スイッチ の所有者コンテンツ・ルールに指定されている通りのプロトコルに使用中のポートの番号です。詳細については、lbccontrol port -- ポートの構成を参照してください。
任意のクラスターおよびポート内に同一サーバーの複数インスタンスを構成できます。 (アドレスおよび SNMP コミュニティー名は Cisco CSS スイッチ で対応している属性と一致していなければならないことを忘れないようにしてください。) 同一サーバーの複数インスタンスを構成するときは、同一物理マシンにあり、同一ポートで同一 IP アドレスに応答する、別のアプリケーション・サーバーを識別できます。
ロード・バランシングされたサーバー・マシンを定義するには、次のように入力します。
lbccontrol server add cluster:port:server address x.x.x.x | hostname
server は Cisco CSS スイッチ・サービス名と対応しています。
ロード・バランシングを実行するには、クラスター上の 1 つのポートに対して複数のサーバーを定義しなければなりません。サーバーの区分化: 1 つのサーバー (IP アドレス) に対して構成された論理サーバーを参照してください。
lbccontrol サーバーコマンド構文の詳細については、lbccontrol server -- サーバーの構成を参照してください。
manager を開始するには、lbccontrol manager start コマンドを入力します。詳細については、lbccontrol manager -- manager の制御を参照してください。
advisor は、ロード・バランシングが行われるサーバー・マシンが要求に応答する能力に関する詳細情報を manager に提供します。advisor はプロトコル固有です。たとえば、HTTP advisor を開始するには、以下のコマンドを発行します。
lbccontrol advisor start http port
advisor とそのデフォルト・ポートのリストについては、 lbccontrol advisor -- advisor の制御を参照してください。各 advisor の説明については、 advisor のリストを参照してください。
すべての advisor を開始する場合は、advisor 情報がロード・バランシングの判断に含まれるように、クラスター割合を変更しなければなりません。lbccontrol cluster proportions コマンドを使用してください。状況情報に与えられる重要性の割合を参照してください。
メトリック・サーバー の使用法の詳細については、メトリック・サーバーを参照してください。
構成が機能するかどうかを調べるためにテストを行います。
本章では、Network Dispatcher のロード・バランシング・パラメーターの構成方法と、拡張機能に関する Network Dispatcher のセットアップ方法について説明します。
表 13. Network Dispatcher の拡張構成タスク
タスク | 説明 | 関連情報 |
---|---|---|
オプションでロード・バランシングの設定値を変更する |
以下のロード・バランシング設定値を変更することができます。
| Network Dispatcher によって提供されるロード・バランシングの最適化 |
スクリプトを使用して manager がサーバーをダウン / アップとマークするときにアラートまたはレコード・サーバー障害を生成する | Network Dispatcher は、manager がサーバーをダウン / アップとマークする時点をカスタマイズできるスクリプトを起動するユーザー出口を提供します。 | アラートまたはレコード・サーバー障害を生成するスクリプトの使用 |
advisor を使用してカスタム advisor を作成する | advisors およびサーバーの特定の状況について報告するためのユーザー独自の advisor の作成方法を説明します。 | advisor カスタム (カスタマイズ可能) advisor の作成 |
作業負荷管理機能 advisor (WLM) を使用する | WLM advisor は、システム負荷情報を Network Dispatcher に提供します。 | 作業負荷管理機能 advisor |
メトリック・サーバー・エージェントを使用する | メトリック・サーバーはシステム負荷情報 Network Dispatcher に提供します。 | メトリック・サーバー |
サーバー区分化を使用する | 論理サーバーを定義して、提供されるサービスを基にして負荷を分散します。 | サーバーの区分化: 1 つのサーバー (IP アドレス) に対して構成された論理サーバー |
advisor 要求 / 応答 (URL) オプションを使用する | マシンで照会したいサービスに固有の一意的なクライアント HTTP URL 文字列を定義します。 | HTTP advisor 要求 / 応答 (URL) オプション |
ロード・バランシングしているマシン上の Network Dispatcher を連結する | 連結 Network Dispatcher マシンをセットアップします。 | 連結サーバーの使用 |
広域 Dispatcher サポートを構成する | リモート Dispatcher をセットアップして、広域ネットワークにわたるロード・バランシングを行います。あるいは、GRE をサポートするサーバー・プラットフォームを使用して (リモート Dispatcher を使用しない) 広域ネットワークにわたるロード・バランシングを行います。 | 広域 Dispatcher サポートの構成 |
high availability または相互 high availability を構成する | 2 番目の Dispatcher マシンをセットアップしてバックアップを提供します。 | high availability |
ルール・ベースのロード・バランシングを構成する | サーバーのサブセットが使用される条件を定義します。 | ルール・ベースのロード・バランシングの構成 |
明示リンクを使用する | リンクで Dispatcher をバイパスしないようにします。 | 明示リンクの使用 |
プライベート・ネットワークを使用する | Dispatcher を構成して、プライベート・ネットワークにあるサーバーのロード・バランシングを行います。 | プライベート・ネットワーク構成の使用 |
ワイルドカード・クラスターを使用して、共通のサーバー構成を結合する | 明示的に構成されていないアドレスでは、通信のロード・バランシングを行うための方法としてワイルドカード・クラスターが使用されます。 | ワイルドカード・クラスターを使用したサーバー構成の結合 |
ワイルドカード・クラスターを使用して、ファイアウォールのロード・バランシングを行う | ファイアウォールに対して、すべての通信のロード・バランシングが行われます。 | ワイルドカード・クラスターを使用したファイアウォールのロード・バランシング |
透過プロキシーに Caching Proxy とワイルドカード・クラスターを使用する | 透過プロキシーを使用可能にするために Dispatcher を使用できるようにします。 | Caching Proxy とワイルドカード・クラスターの使用による透過プロキシー |
ワイルドカード・ポートを使用して、構成されていないポートの通信を送信する | 特定のポートに対して構成されていない通信を処理します。 | ワイルドカード・ポートを使用した未構成ポート通信の送信 |
スティッキー類縁性機能を使用して、クラスターのポートをスティッキーになるように構成する | クライアント要求を同じサーバーに送信できます。 | Network Dispatcher の類縁性機能の使用法 |
Server Directed Affinity API を使用する | API を提供して、外部エージェントが Dispatcher の類縁性の動作に影響を与えることができるようにします。 | クライアント・サーバーの類縁性を制御する Server Directed Affinity API |
ポート間類縁性を使用して、スティッキー (類縁性) 機能をポート全体に拡張する | 異なるポートから受け取ったクライアント要求を、同じサーバーに送信できます。 | ポート間類縁性 |
類縁性アドレス・マスクを使用して、共通の IP サブネット・アドレスを指定する | 同じサブネットから受け取ったクライアント要求を、同じサーバーに送信できます。 | 類縁性アドレス・マスク |
類縁性ルールのオーバーライドを使用して、サーバーがポート・スティッキー機能をオーバーライドするメカニズムを提供する | サーバーがそのポートの stickytime 設定をオーバーライドできます。 | 類縁性ルールのオーバーライド |
活動中の cookie の類縁性を使用して、 CBR のサーバーをロード・バランシングする | セッションにおいて特定サーバーの類縁性を保守できるルール・オプションの 1 つ。 | 活動 Cookie 類縁性 |
受動 Cookie の類縁性を使用して、Dispatcher の Content Based Routing (CBR) および CBR コンポーネントについてサーバーのロード・バランシングを行う | セッションにおいて Cookie 名 / Cookie 値を基にして特定サーバーの類縁性を保守できるルール・オプションの 1 つ。 | 受動 cookie 類縁性 |
URI の類縁性を使用して、個々の各サーバーのキャッシュに入れる固有のコンテンツがある Caching Proxy サーバーにわたってロード・バランシングを行う | セッションにおいて URI を基にして特定サーバーの類縁性を保守できるルール・オプションの 1 つ。 | URI 類縁性 |
「サービス停止攻撃 (Denial of Service Attack)」を使用して、潜在的なアタックを管理者に (アラートによって) 通知する | Dispatcher は、サーバーでハーフ・オープン TCP 接続の著しい量の着信要求を分析します。 | サービス停止攻撃の検出 |
バイナリー・ログを使用して、サーバーの統計を分析する | サーバー情報をバイナリー・ファイルに保管して検索できるようにします。 | バイナリー・ログを使用したサーバー統計の分析 |
Cisco Consultant (追加情報) を使用する | Cisco Consultant が Cisco CSS スイッチと対話する方法および構成時の追加情報を重み付けする方法。 | 拡張 Cisco Consultant 機能についての追加情報 |
Network Dispatcher の manager 機能は、以下の設定を基にしてロード・バランシングを実行します。
これらの設定を変更して、ネットワークのロード・バランシングを最適化することができます。
manager は、その重みの判断で、以下の外的要因の一部またはすべてを使用できます。
あるいは --
CPU: ロード・バランシングされた各サーバー・マシンで使用中の CPU のパーセント (メトリック・サーバー・エージェントからの入力)。 Site Selector の場合に限り、この割合は活動中の接続割合欄に表示されます。
あるいは --
メモリー: ロード・バランシングされた各サーバー・マシンで使用中のメモリーのパーセント (メトリック・サーバー・エージェントからの入力)。 Site Selector の場合に限り、この割合は新規接続欄に表示されます。
manager は、各サーバーごとの現行の重みと、その計算に必要なその他の何らかの情報とともに、executor から最初の 2 つの値 (活動中の接続および新規接続) を得ます。これらの値は、 executor の内部で生成および保管された情報に基づいています。
クラスター (またはサイト名) ごとの基準に基づいて 4 つの値の相対的な重要性の割合を変更できます。この割合をパーセントで考えると、相対的な割合の合計は 100% でなければなりません。デフォルトの割合は 50/50/0/0 で、これは advisor およびシステム情報を無視しています。ユーザーの環境では、最良のパフォーマンスが得られる組み合わせを判別するために、別の割合を試すことが必要な場合があります。
WLM advisor を追加するときに、システム・メトリックの割合がゼロになっていると、manager はこの値を 1 に増加します。相対的な割合の合計は 100 でなければならないので、最大値は 1 だけ減らされます。
活動状態の接続の数は、クライアントの数によって異なるだけでなく、ロード・バランシング対象のサーバー・マシンが提供するサービスを使用するために必要な時間の長さによっても異なります。クライアント接続が高速 (HTTP GET を使用して提供される小さな Web ページのように) であれば、活動状態の接続の数はかなり低くなります。クライアントの接続が低速 (データベース照会のように) であれば、活動状態の接続の数は高くなります。
活動中の接続と新規接続の割合を低く設定しすぎることは避ける必要があります。これらの最初の 2 つの値を少なくともそれぞれ 20 に設定しておかない限り、Network Dispatcher のロード・バランシングおよび平滑化は使用不可になります。
重要性の割合を設定するには、ndcontrol cluster set cluster proportions コマンドを使用してください。詳細については、ndcontrol cluster -- クラスターの構成を参照してください。
重みは、executor の内部カウンター、advisor からのフィードバック、および メトリック・サーバー のようなシステム・モニター・プログラムからのフィードバックに基づいて、manager 機能によって設定されます。 manager の実行中に重みを手作業で設定したい場合は、fixedweight オプションを ndcontrol サーバー・コマンドに指定してください。 fixedweight オプションの説明については、 manager 固定重み を参照してください。
重みは、サーバー上のすべてのポートに適用されます。特定のポートについて、要求は、互いに相対的な重みに基づいてサーバー間で分散されます。たとえば、一方のサーバーが 10 の重みに設定され、他方が 5 に設定されると、10 に設定されたサーバーは 5 に設定されたサーバーの 2 倍の要求を得るはずです。
すべてのサーバーに指定できる最大の重み境界を指定するには、ndcontrol port set weightbound コマンドを入力してください。このコマンドは、各サーバーが受け取る要求数の間で生じる差の大きさに影響します。最高の重みを 1 に設定すると、すべてのサーバーが 1、停止ならば 0、あるいはマーク・ダウンならば -1 の重みを持つことができます。この数を増加すると、サーバーに掛かる重みの差は増加します。最高の重みが 2 の場合、1 つのサーバーが受ける要求の数は他の 2 倍になります。最高の重みが 10 の場合、1 つのサーバーが受ける要求の数は他の 10 倍の要求になります。デフォルトの最高の重みは 20 です。
advisor は、サーバーが停止したことを検出すると manager に通知し、これを受けてサーバーの重みは 0 に設定されます。この結果、executor は、重みが 0 のままである限り、追加の接続をそのサーバーに送信しません。重みが変更になる前に、そのサーバーに活動状態の接続があった場合は、そのまま正常に完了します。
manager がなければ、advisor は実行されず、サーバーがダウンしているかどうかを検出することができません。advisor を実行することを選択するが、特定のサーバー用に設定した重みを manager に更新させたく ない 場合には、ndcontrol server コマンドで fixedweight オプションを使用します。たとえば、以下のようになります。
ndcontrol server set cluster:port:server fixedweight yes
fixedweight を yes に設定した後で、ndcontrol server set weight コマンドを使用して、重みを所要の値に設定します。固定重みが no に設定された別の ndcontrol server コマンドが発行されるまで、manager が実行されている間はサーバー重み値は固定されたままです。詳細については、ndcontrol server -- サーバーの構成を参照してください。
全体パフォーマンスを最適化するために、manager が executor と対話する頻度が制限されます。この間隔は、ndcontrol manager interval および ndcontrol manager refresh コマンドを入力することで変更できます。
manager 間隔は、executor が接続の経路指定の際に使用するサーバーの重みを更新する頻度を指定します。manager 間隔が短過ぎると、manager が絶えず executor に割り込むことになり、パフォーマンスの低下が生じることになります。 manager 間隔が長過ぎる場合は、 executor の要求経路指定が正確な最新情報に基づいていないことを意味します。
たとえば、manager 間隔を 1 秒に設定するには、以下のコマンドを入力します。
ndcontrol manager interval 1
manager のリフレッシュ・サイクルは、manager が executor に状況情報を求める頻度を指定します。リフレッシュ・サイクルは、時間間隔に基づいています。
たとえば、 manager のリフレッシュ・サイクルを 3 に設定するには、以下のコマンドを入力します。
ndcontrol manager refresh 3
これで、 manager は 3 間隔待ってから executor に状況を要求することになります。
Network Dispatcher は、ロード・バランシングをユーザーのサーバー用に最適化するために他の方式を提供します。最高速で働くために、サーバーの重みが大幅に変わった場合にだけそれが更新されます。サーバー状況にほとんど変更がないのに、絶えず重みを更新すると、無用なオーバーヘッドを生むことになります。ポートのすべてのサーバーについてのパーセントの重みの変更が重要度しきい値より大きい場合には、 manager は executor が使用する重みを更新して、接続を分散させます。たとえば、重みの合計が 100 から 105 に変化したとします。変化は 5% です。デフォルトの重要度しきい値の 5 では、変化率がしきい値を超えていないので、manager は executor が使用する重みを更新しません。しかし、重みの合計が 100 から 106 に変化すると、manager は重みを更新します。 manager の重要度しきい値をデフォルト以外の値 (6 など) に設定するには、以下のコマンドを入力します。
ndcontrol manager sensitivity 6
ほとんどの場合に、この値を変更する必要はありません。
manager は、サーバーの重みを動的に計算します。この結果、更新された重みが前の重みより相当に異なる場合もあります。ほとんどの状況では、これが問題になることはありません。ただし、時には、要求のロード・バランシングの方法に対する影響が変動する場合があります。たとえば、重みが高いために、1 つのサーバーが要求の大部分を受信してしまうこともあります。manager は、サーバーが高い数の活動状態の接続を持ち、サーバーが応答が遅いことを調べます。そこで、manager は重み過剰を空きサーバーに移し、そこでも同じ影響が生じて、リソースの非効率使用が作りだされます。
この問題を緩和するために、manager は、平滑化指標を使用します。平滑化指標は、サーバーの重みが変われる量を制限し、要求の分散における変更を効率的に平滑化します。平滑化指標が高いと、サーバーの重みの変更頻度が減少します。指標が低いと、サーバーの重みの変更頻度が増大します。平滑化指標のデフォルト値は 1.5 です。1.5 では、サーバーの重みがかなり動的になります。指標が 4 または 5 では、重みはもっと安定します。たとえば、平滑化指標を 4 に設定するには、以下のコマンドを入力します。
ndcontrol manager smoothing 4
ほとんどの場合に、この値を変更する必要はありません。
Network Dispatcher は、カスタマイズできるスクリプトを起動するユーザー出口を提供します。自動化された (サーバーがダウンとマークされると管理者にアラートを通知するか、単に障害のイベントを記録するなどの) アクションを実行するスクリプトを作成できます。カスタマイズできるサンプル・スクリプトは、...nd/servers/samples インストール・ディレクトリーに入っています。このファイルを実行するためには、それらのファイルを ...nd/servers/bin ディレクトリーに移動して、".sample" ファイル拡張子を除去しなければなりません。以下のサンプル・スクリプトが提供されています。
advisor は Network Dispatcher 内のエージェントです。これは、サーバー・マシンの状態および負荷の状態を評価することを目的としています。これは、サーバーとの事前の対策を講じたクライアント式交換で行われます。 advisor は、アプリケーション・サーバーの lightweight クライアントと見なすことができます。
当製品は、最も一般的なプロトコルに対して、いくつかのプロトコル特有の advisor を提供します。しかし、Network Dispatcher のすべてのコンポーネントで提供された advisor のすべてを使用することは意味をなしません。 (たとえば、CBR コンポーネントでは Telnet advisor を使用することにはなりません。) また、Network Dispatcher は、ユーザーが独自の advisor を作成できる"カスタム advisor" の概念もサポートします。
Linux の場合は、バインド固有サーバー・アプリケーション (Mailbox Locator または Site Selector などの他の Network Dispatcher コンポーネントを含む) をクラスター IP アドレスとバインドしようとするときに、それらとサーバーのロード・バランシング時に、Network Dispatcher は advisor の使用をサポートしません。
advisor は、定期的に各サーバーとの TCP 接続をオープンして、サーバーに要求メッセージを送信します。メッセージの内容は、サーバーで実行されるプロトコルに固有のものです。たとえば、HTTP advisor は HTTP "HEAD" 要求をサーバーに送信します。
advisor は、サーバーからの応答を listen します。advisor は、応答を受け取るとサーバーの評価を行います。この"負荷"値を計算するため、advisor のほとんどは、サーバーが応答するまでの時間を測定して、負荷としてこの値 (ミリ秒単位) を使用します。
次に advisor は、負荷値を manager 機能に報告します。この値は、"Port"列の manager 報告書に出力されます。manager は、その割合に応じて全送信元からの重み値を集計して、これらの重み値を executor 機能に設定します。executor は、これらの重みを使用して、新規の着信クライアント接続のロード・バランシングを行います。
サーバーが正常に機能していると advisor が判断した場合は、正で非ゼロの負荷値を manager に報告します。サーバーが活動状態でないと advisor が判断した場合は、特別な負荷値である -1 を戻します。 manager および executor は、それ以上そのサーバーに接続を転送しなくなります。
advisor は、すべてのクラスター (グループ advisor) 間の特定ポート用に開始できます。あるいは、同一ポートで、別のクラスター (クラスター / サイト固有の advisor) ではなくて、別の advisor を実行することを選択できます。たとえば、Network Dispatcher がそれぞれがポート 80 になっている 3 つのクラスター (clusterA、 clusterB、clusterC) で定義されていると、以下が実行できます。
ndcontrol advisor start http clusterA:80このコマンドは、http advisor をポート 80 で clusterA 用に開始します。この http advisor は、ポート 80 で clusterA 用に接続されているすべてのサーバーでアドバイスされることになります。
ndcontrol advisor start ADV_custom 80このコマンドは、ADV_custom advisor をポート 80 で clusterB および clusterC 用に開始します。カスタム advisor は、clusterB および clusterC 用にポート 80に接続されているすべてのサーバーでアドバイスされることになります。 (カスタム advisor についての詳細については、カスタム (カスタマイズ可能) advisor の作成を参照してください。)
グループ advisor の上記の構成例を使用して、クラスターの 1 つだけで、あるいは両方のクラスター (clusterB および clusterC) 用にポート 80 のカスタム advisor ADV_custom を停止することを選択できます。
ndcontrol advisor stop ADV_custom clusterB:80
ndcontrol advisor stop ADV_custom 80
advisor 間隔は、advisor がモニターして、その結果を manager に報告するポートのサーバーから状況を求める頻度を設定します。advisor 間隔が短過ぎると、advisor が絶えずサーバーに割り込むことになり、パフォーマンスの低下を生じることになります。advisor 間隔が長過ぎると、manager の重みに関する決定が、正確な最新情報に基づいていないことを意味します。
たとえば、HTTP advisor の場合に、間隔を 3 秒に設定するには、以下のコマンドを入力します。
ndcontrol advisor interval http 80 3
manager 間隔より小さい advisor 間隔を指定することは無意味です。デフォルト advisor 間隔は 7 秒です。
タイムアウト日付がロード・バランシングの判断で manager によって使用されないことを確実にするために、manager は、タイム・スタンプが advisor 報告タイムアウトで設定されている時刻より古い、advisor からの情報を使用しないことになります。 advisor 報告タイムアウトは、advisor ポーリング間隔よりも大きくなっている必要があります。タイムアウトが小さいと、manager は、論理的には使用すべき報告を無視します。デフォルトによって、advisor 報告はタイムアウトにはなりません -- デフォルト値は無制限です。
たとえば、ポート 80 の HTTP advisor のために、advisor 報告タイムアウトを 30 秒に設定するには、次のコマンドを入力してください。
ndcontrol advisor timeout http 80 30
advisor 報告タイムアウトの設定の詳細については、ndcontrol advisor -- advisor の制御を参照してください。
Network Dispatcher の場合は、サーバーが失敗していることが検出される advisor のタイムアウト値を設定できます。失敗したサーバー・タイムアウト値 (connecttimeout および receivetimeout) によって、advisor が接続または受信のいずれかの失敗を報告する前に待つ時間が決定されます。
最速に失敗したサーバーの検出を得るために、advisor 接続タイムアウトおよび受信タイムアウトを最小値 (1 秒) に設定し、advisor および manager 間隔時間を最小値 (1 秒) に設定します。
たとえば、ポート 80 で HTTP advisor の connecttimeout および receivetimeout を 9 秒に設定するには、次のコマンドを入力します。
ndcontrol advisor connecttimeout http 80 9 ndcontrol advisor receivetimeout http 80 9
接続タイムアウトと受信タイムアウトのデフォルトは、advisor 間隔に指定されている値の 3 倍です。
サーバーとの間で UDP などの非 TCP プロトコルを使用する構成にも有用です。
カスタム (カスタマイズ可能) advisor は、基本コードによって呼び出される小規模な Java コードであり、ユーザーによりクラス・ファイルとして提供されます。基本コードは、カスタム advisor のインスタンスの開始と停止、状況と報告書の提供、およびヒストリー情報のログ・ファイルへの記録などのあらゆる管理サービスを提供します。また、結果を manager コンポーネントに報告します。基本コードは advisor サイクルを定期的に実行し、各サイクルで構成内のサーバーをすべて評価します。これは、サーバー・マシンとの接続をオープンすることによって開始されます。ソケットがオープンすると、基本コードは、カスタム advisor の "getLoad"メソッド (関数) を呼び出します。その後、カスタム advisor は、サーバーの状態を評価するために必要なステップをすべて実行します。一般的には、ユーザー定義のメッセージをサーバーに送信してから応答を待機します。(オープンしたソケットへのアクセスがカスタム advisor に提供されます。) その後、基本コードは、サーバーとのソケットをクローズして、manager に負荷情報を報告します。
基本コードおよびカスタム advisor は、通常モードおよび代替モードのいずれでも機能します。動作モードの選択は、カスタム advisor ファイルでコンストラクター・メソッドのパラメーターとして指定します。
通常モードでは、カスタム advisor がサーバーとデータを交換し、基本 advisor コードが交換の時間を測定して負荷値を計算します。基本コードは、この負荷値を manager に報告します。カスタム advisor は、0 (正常) または負の値 (エラー) を戻す必要があるのみです。通常モードを指定するには、コンストラクターの代替フラグを false に設定します。
代替モードでは、基本コードは時間を一切測定しません。カスタム advisor コードは、固有の要件に必要な操作をすべて実行して、実際の負荷値を戻します。基本コードは、その数値を受け入れて manager に報告します。最善の結果を得るためには、負荷値を 10 から 1000 までの間に正規化し、10 で高速なサーバーを表し、1000 で低速なサーバーを表してください。代替モードを指定するには、コンストラクターの代替フラグを true に設定します。
この機能によって、ユーザー自身の advisor を作成し、ユーザーが必要とするサーバーに関する正確な情報を得ることができます。サンプルのカスタム advisor (ADV_sample.java) は Network Dispatcher に添付されています。Network Dispatcher のインストール後に、サンプル・コードは ...nd/servers/samples/CustomAdvisors インストール・ディレクトリー内で見つかります。
デフォルトのインストール・ディレクトリーは以下のとおりです。
特に、WebSphere Application Server advisor のサンプル・カスタム advisor は Network Dispatcher インストール・ディレクトリーに提供されています。
WebSphere Application Server advisor サンプル・ファイルは、ADV_sample.java ファイルと同じサンプル・ディレクトリーに常駐します。
カスタム advisor のファイル名は、"ADV_myadvisor.java"の形式でなければなりません。 つまり、大文字の接頭部 "ADV_" で始まらなければなりません。それ以後の文字は、すべて小文字でなければなりません。
Java の規則に従い、ファイルで定義されたクラスの名前は、ファイルの名前と一致していなければなりません。サンプル・コードをコピーする場合は、ファイル内の"ADV_sample"のインスタンスをすべて新しいクラス名に変更してください。
カスタム advisor は、Java 言語で作成します。ご使用のマシン用の Java 1.3 コンパイラーを入手してインストールしなければなりません。以下のファイルは、コンパイル中に参照されます。
クラスパスは、コンパイル時にカスタム advisor ファイルと基本クラス・ファイルの両方を指していなければなりません。
Windows 2000 の場合のコンパイル・コマンドは以下のようになります。
javac -classpath <install_dir>¥nd¥servers¥lib¥ibmnd.jar ADV_fred.java
ここで、
コンパイルの出力は以下のようなクラス・ファイルです。
ADV_fred.class
advisor を開始する前に、クラス・ファイルを、Network Dispatcher がインストールされている ...nd/servers/lib/CustomAdvisors ディレクトリーにコピーします。
AIX、Linux、および Sun は、構文が似ています。
カスタム advisor を実行するには、最初にクラス・ファイルを正しい Network Dispatcher サブディレクトリーにコピーしなければなりません。
.../nd/servers/lib/CustomAdvisors/ADV_fred.class
コンポーネントを構成し、その manager 機能を開始して、カスタム advisor を開始するためのコマンドを出します。
ndcontrol advisor start fred 123
ここで、
すべての advisor と同様に、カスタム advisor は、ADV_Base という advisor ベースの機能を拡張します。これは、manager の重みのアルゴリズムで使用するために manager に負荷を報告するなどの advisor の機能のほとんどを実際に実行する advisor ベースです。 また、advisor ベースは、ソケット接続とクローズ操作も実行し、advisor が使用するための send および receive メソッドを提供します。advisor 自体は、アドバイスされるサーバーのポートとの間でデータを送受信するためにのみ使用されます。advisor ベースの TCP メソッドは時間が測定され、負荷が計算されます。必要な場合は、ADV_base のコンストラクターにあるフラグによって、advisor から戻された新しい負荷で既存の負荷が上書きされます。
基本クラスのメソッドを以下に示します。
Network Dispatcher は、最初に、提供されているネイティブ advisor のリストを参照します。指定された advisor がそこに見つからないと、Network Dispatcher はカスタマイズされた advisor のお客様のリストを参照します。
/usr/lpp/nd/servers/lib/CustomAdvisors/
/opt/nd/servers/lib/CustomAdvisors/
/opt/nd/servers/lib/CustomAdvisors/
共通インストール・ディレクトリー・パス:
C:¥Program Files¥IBM¥edge¥nd¥servers¥lib¥CustomAdvisors
ネイティブ・インストール・ディレクトリー・パス:
C:¥Program Files¥IBM¥nd¥servers¥lib¥CustomAdvisors
サンプル advisor のプログラム・リストは、サンプル advisor に入っています。インストールすると、このサンプル advisor は ...nd/servers/samples/CustomAdvisors ディレクトリーに入ります。
WLM は、MVS メインフレームで実行されるコードです。これは、MVS マシンの負荷について尋ねるために照会することができます。
OS/390 システムで MVS 作業負荷管理が構成されている場合は、Dispatcher は、WLM からの容量情報を受け取り、ロード・バランシング処理で使用します。WLM advisor を使用して、Dispatcher は、定期的に Dispatcher ホスト・テーブルにある各サーバーの WLM ポートを介して接続をオープンし、戻された容量を表す整数を受け取ります。これらの整数はその時点で使用可能な容量を表しますが、Dispatcher は各マシンの負荷を表す値を要求しているので、容量を表す整数は advisor によって反転され、負荷値に正規化されます (つまり、容量を表す整数が大きくて負荷値が小さいと、サーバーの状態が良いことを表します)。結果として得られる負荷は、manager 報告書の System 列に入ります。
WLM advisor と他の Dispatcher advisor の間には、重要な違いがいくつかあります。
メトリック・サーバー のように、エージェントは、個々のプロトコル特有のサーバー・デーモンではなく、サーバー・システム全体について報告します。メトリック・サーバー、および WLM は、manager 報告書の system 列に結果を入れます。 結果として、WLM advisor および メトリック・サーバー の両方を同時に実行することはできません。
この機能は、すべての Network Dispatcher コンポーネントに使用可能です。
メトリック・サーバー はシステム固有のメトリックの形式でサーバー・ロード情報を Network Dispatcher に提供し、サーバーの状態について報告します。Network Dispatcher manager はサーバーのそれぞれに常駐している メトリック・サーバーに照会し、エージェントから収集したメトリックを使用してロード・バランシング処理に重みを割り当てます。その結果も manager 報告書に入れられます。
構成の例については、図 11 を参照してください。
WLM advisor のように、メトリック・サーバー は、個々のプロトコル特有のサーバー・デーモンではなく、サーバー・システム全体について報告します。WLM および メトリック・サーバー は、両方とも manager 報告書の system 列に結果を入れます。 結果として、WLM advisor および メトリック・サーバー の両方を同時に実行することはできません。
メトリック・サーバー・エージェントは、Network Dispatcher がロード・バランシングされているサーバーにインストールされていて、実行中でなければなりません。
以下は、 Dispatcher のメトリック・サーバーを構成するためのステップです。 Network Dispatcher のその他のコンポーネントのメトリック・サーバーを構成する場合も、同様のステップを使用してください。
port は、実行するためにすべてのメトリック・サーバー・エージェント用に選択する RMI ポートです。metricserver.cmd ファイル中で設定されているデフォルト RMI ポートは 10004 です。
systemMetric は、指定されたクラスター (またはサイト名)の下の構成でサーバーのそれぞれで実行される (バックエンド・サーバーに存在している) スクリプトの名前です。2 つのスクリプト cpuload および memload がお客様提供されます。あるいは、カスタム・システム・メトリック・スクリプトを作成できます。スクリプトにはコマンドが含まれています。このコマンドは範囲が 0 〜 100 のメトリック値を戻さなければなりません。この数値はロード測定値を表します (使用可能値ではありません) 。
制限: Windows 2000 の場合は、システム・メトリック・スクリプトの名前の拡張子が ".exe" になっていると、ファイルのフルネーム (たとえば、"mysystemscript.bat") を指定しなければなりません。これは Java の制限が原因です。
オプションで、お客様は メトリック・サーバー がサーバー・マシンで出すコマンドを定義する、独自のカスタマイズ済みメトリック・スクリプト・ファイルを作成できます。すべてのカスタム・スクリプトが実行可能であること、および ...nd/ms/script ディレクトリーにあることを確認してください。カスタム・スクリプトは、範囲が 0 〜 100 の数字の負荷の値を戻さなければなりません。
メトリック・サーバーがローカル・ホスト以外のアドレスで実行されるようにするには、ロード・バランスされるサーバー・マシン上の metricserver ファイルを編集する必要があります。 metricserver ファイル中の "java" のオカレンスの後に、以下を挿入します。
-Djava.rmi.server.hostname=OTHER_ADDRESS
さらに、metricserver ファイル中の "if" ステートメントの前に、次の行を追加します: hostname OTHER_ADDRESS。
Windows 2000 の場合: Microsoft スタック上の OTHER_ADDRESS の別名を付ける必要もあります。 Microsoft スタック上のアドレスに別名を付けるには、*** ページを参照してください。
Network Dispatcher 構成内にサーバーを定義するときは、サーバー全体の状態 (メトリック・サーバー・エージェントを使用) または任意のポート固有のアプリケーションの状態 (advisor 機能を使用)、あるいはその両方を基にして負荷を分散できます。
サーバーの区分化で、特定の URL とさの固有のアプリケーションをさらに区別できます。たとえば、1 つの Web サーバーは JSP ページ、HTML ページ、データベース要求などを提供できます。現在では、Network Dispatcher は、 1 つのクラスターおよびポート固有のサーバーをいくつかの論理サーバーに区分化する機能を提供しています。これにより、マシン上の特定サービスについて、サーブレット・エンジンまたはデータベース要求が高速で実行中か、あるいは全く実行中でないかを検出することをアドバイスできます。
サーバーの区分化によって、Network Dispatcher は、たとえば、HTML サービスがページを高速で提供中であるが、データベース接続はダウンしていることなどを検出できます。これにより、サーバー全体の重み単独でではなく、よりきめ細かなサービス固有の作業負荷を基にして負荷を分散できます。
Network Dispatcher 構成内では、物理サーバーまたは論理サーバーは cluster:port:server 階層を使用して表現できます。このサーバーは、記号名または小数点付き 10 進数形式のいずれかのマシン (物理サーバー) の固有 IP アドレスとすることができます。あるいは、区分されたサーバーを表すようにこのサーバーを構成する場合は、 ndcontrol server add コマンドの address パラメーターに物理サーバーの解決可能サーバー・アドレスを指定する必要があります。 詳細については、ndcontrol server -- サーバーの構成を参照してください。
以下は、異なるタイプの要求を処理するために、物理サーバーを論理サーバーに区分化している例です。
Cluster: 1.1.1.1 Port: 80 Server: A (IP address 1.1.1.2) html server Server: B (IP address 1.1.1.2) gif server Server: C (IP address 1.1.1.3) html server Server: D (IP address 1.1.1.3) jsp server Server: E (IP address 1.1.1.4) gif server Server: F (IP address 1.1.1.4) jsp server Rule1: ¥*.htm Server: A Server: C Rule2: ¥*.jsp Server: D Server: F Rule3: ¥*.gif Server: B Server: E
この例では、サーバー 1.1.1.2 は 2 つの論理サーバー、すなわち、A (html 要求の処理) および B (gif 要求の処理) に区分化されています。サーバー 1.1.1.3 は 2 つの論理サーバー、すなわち、C (html 要求の処理 ) および D (jsp 要求の処理) に区分化されています。サーバー 1.1.1.4 は 2 つの論理サーバー、すなわち、E (gif 要求の処理) および F (jsp 要求の処理) に区分化されています。
詳細については、クライアント・サーバーの類縁性を制御する Server Directed Affinity APIを参照してください。
HTTP advisor の URL オプションは Dispatcher および CBR コンポーネントに使用可能です。
HTTP advisor を開始した後で、サーバーで照会したいサービスに固有の一意的なクライアント HTTP URL 文字列を定義できます。これにより、HTTP advisor は、サーバー内の個々のサービスの状態を評価できます。これは、同一物理 IP アドレスをもつ論理サーバーを一意的なサーバー名を付けて定義することによって実行できます。詳細については、サーバーの区分化: 1 つのサーバー (IP アドレス) に対して構成された論理サーバーを参照してください。
HTTP ポートの下に定義済みの論理サーバーごとに、サーバーで照会したいサービスに固有の一意的なクライアント HTTP URL 文字列を指定できます。HTTP advisor は advisorrequest 文字列を使用して、サーバーの状態を照会します。デフォルト値は HEAD / HTTP/1.0 です。 advisorresponse 文字列は、HTTP advisor が HTTP 応答でスキャンする advisor 応答です。HTTP advisor は advisorresponse 文字列を使用して、サーバーから受信した実際の応答と比較します。デフォルト値は null です。
重要: ブランクが HTTP URL 文字列に含まれている場合は、次の通りです。
server set cluster:port:server advisorrequest "head / http/2.0" server set cluster:port:server advisorresponse "HTTP 200 OK"
ndcontrol server set cluster:port:server advisorrequest "¥"head / http/2.0¥"" ndcontrol server set cluster:port:server advisorresponse "¥"HTTP 200 OK¥""
Network Dispatcher は要求のロード・バランシングを行っているサーバーと同じマシン上に常駐でます。これは一般に、サーバーの 連結 と呼ばれています。連結は Dispatcher、 Site Selector、 Mailbox Locator、および Cisco Consultant コンポーネントに適用されます。また、 CBR の場合は、バインド特定 Web サーバーおよびバインド特定 Caching Proxy を使用するときに限り、連結がサポートされています。
Red Hat Linux v7.1 (Linux カーネル・バージョン 2.4.2-2) または SuSE Linux v7.1 (Linux カーネル・バージョン 2.4.0-4GB): 連結と high availability を両方とも同時に構成するためには、mac 転送方式を使用して Dispatcher コンポーネントの実行時に、Linux カーネルのパッチをインストールしなければなりません。パッチのインストールの詳細については、Linux カーネル・パッチのインストール (ループバック・インターフェース上の arp 応答を抑制)を参照してください。しかし、これらの指示に従う場合は、ループバック・アダプターに別名を指定するステップはスキップしてください。Dispatcher が待機状態になると実行される、 goStandby high-availability スクリプト・ファイル中でループバック・アダプターに別名を指定するには ifconfig 命令を追加する必要があります。
Solaris: エントリー・ポイント Dispatcher が連結されている WAND advisors を構成できないという制限があります。広域サポートとリモート advisor の使用を参照してください。
以前のリリースでは、連結サーバーのアドレスは構成内の非転送アドレス (NFA) と同じになるように指定する必要がありました。この制限は、取り除かれました。
サーバーが連結されるように構成するために、ndcontrol server コマンドには collocated というオプションを指定でき、これは yes または no に設定できます。デフォルトは no です。このサーバーのアドレスは、マシン上のネットワーク・インターフェース・カードの有効な IP アドレスでなければなりません。
連結サーバーは、次の方法のいずれかで構成できます。
ndcontrol server コマンドの構文の詳細については、ndcontrol server -- サーバーの構成を参照してください。
CBR は、追加構成が不要なプラットフォームのすべてで連結をサポートします。しかし、使用される Web サーバーおよび Caching Proxy はバインド固有でなければなりません。
Mailbox Locator はすべてのプラットフォームで連結をサポートします。しかし、サーバーは、これが機能するために Network Dispatcher とは異なるアドレスにバインドされていなければなりません。同一マシンで POP3 サーバーまたは IMAP サーバーを連結するためには、クラスター・アドレスとは異なる IP アドレスにバインドされていなければなりません。これは、ループバック・アドレスを使用することによって行えます。
Site Selector は、追加構成が不要のすべてのプラットフォームで連結をサポートします。
Cisco Consultant は、追加構成が不要のすべてのプラットフォームで連結をサポートします。
この機能は Dispatcher コンポーネントにのみ使用可能です。
Dispatcher の広域サポートを使用中ではなくて、Dispatcher の nat 転送方式を使用中ではない場合は、Dispatcher 構成は、 Dispatcher マシンおよびそのサーバーはすべてが同一の LANセグメントに接続されていることが必要です (図 22を参照してください)。 クライアントのパケットは、ND マシンに到着した後、サーバーに送信されて、サーバーからクライアントに直接戻されます。
図 22. 単一の LAN セグメントから構成される構成の例
広域 Dispatcher 拡張機能では、リモート・サーバー として知られるオフサイト・サーバーのサポートが追加されています (図 23を参照してください)。 GRE がリモート・サイトでサポートされていなくて、Dispatcher の NAT 転送方式を使用中ではない場合は、そのリモート・サイトは、リモート Dispatcher マシン (Dispatcher 2) およびそのローカル接続されたサーバー (ServerG、ServerH、および ServerI) から成っていなければなりません。
Dispatcher マシンは、すべて同じオペレーティング・システムになければなりません。現在では、クライアントのパケットは、インターネットから Dispatcher マシンに伝送したり、そのマシンから、ローカル接続されたサーバーの 1 つに対して地理的にリモートの Dispatcher マシンに伝送したりできます。
図 23. ローカルおよびリモートのサーバーを使用する構成の例
これによって、1 つのクラスター・アドレスで、世界中のクライアント要求をすべてサポートするとともに、世界中のサーバーに負荷を分散させることができます。
さらに、パケットを最初に受信する Dispatcher マシンは、引き続きローカル・サーバーに接続しておくことができ、ローカル・サーバーとリモート・サーバーの間で負荷を分散させることができます。
広域コマンドは複雑ではありません。広域サポートを構成するには、以下を行います。
ndcontrol server add cluster:port:server router address
router キーワードの詳細については、ndcontrol server -- サーバーの構成を参照してください。
エントリー・ポイント Dispatcher では、advisor は、ほとんどのプラットフォームの場合に特別な構成を行わなくても正しく機能します。
Linux: 広域サポート構成とリモート advisor の使用については制限があります。エントリー・ポイント Dispatcher マシンで実行中のプロトコル固有 advisor (HTTP advisor など) は、リモート・サイトのサーバー・マシンの状況を正しく評価しません。この問題を回避するには、以下のいずれかを行います。
これらのオプションのいずにも、リモート Dispatcher マシンの状況が評価される、エントリー・ポイント Dispatcher マシンで実行中の advisor が指定されることになります。
Solaris: エントリー・ポイント Network Dispatcher では、arp 構成メソッドを (ifconfig またはクラスター構成メソッドの代りに) 使用しなければなりません。たとえば、以下のようになります。
arp -s <my_cluster_address> <my_mac_address> pub
リモート Dispatcher では、リモート・クラスター・アドレスごとに以下の構成ステップを行う必要があります。リモート Network Dispatcher ロケーションにある high availability 構成の場合は、両方のマシンでこれらのステップを実行しなければなりません。
AIX
ifconfig lo0 alias 9.67.34.123 netmask 255.255.255.255
Linux
ifconfig lo:1 9.67.34.123 netmask 255.255.255.255 up
Solaris
Windows 2000
ndconfig en0 alias 9.55.30.45 netmask 255.255.240.0
arp -a
arp -d 9.67.34.123
使用しているマシンのアドレスを探してください。
route add 9.67.34.123 mask 255.255.255.255 9.55.30.45
図 24. リモート Network Dispatchers がある構成の広域の例
この例は、図 24 で説明する構成に適用します。
ここでは、Dispatcher マシンを構成して、ポート 80 のクラスター・アドレス xebec をサポートする方法について説明します。ND1 は "エントリー・ポイント"として定義されています。イーサネット接続を想定します。ND1 には定義済みのサーバーが 5 つ、すなわち、3 つのローカル (ServerA、ServerB、ServerC) および 2 つのリモート (ND2 および ND3) があることに注意してください。 リモートの ND2 および ND3 には、それぞれ 3 つのローカル・サーバーが定義されています。
最初の Dispatcher (ND1) のコンソールで、以下を行います。
ndcontrol executor start
ndcontrol executor set nfa ND1
ndcontrol cluster add xebec
ndcontrol port add xebec:80
ndcontrol cluster configure ND1 および xebec も clusteraddr として構成します。
ndcontrol cluster configure xebec
2 番目の Dispatcher (ND2) のコンソールで、以下を行います。
ndcontrol executor start
ndcontrol executor set nfa ND2
ndcontrol cluster add xebec
ndcontrol port add xebec:80
ndcontrol cluster configure ND2
3 番目の Dispatcher (ND3) のコンソールで、以下を行います。
ndcontrol executor start
ndcontrol executor set nfa ND3
ndcontrol cluster add xebec
ndcontrol port add xebec:80
ndcontrol cluster configure ND3
総称経路指定カプセル化 (GRE) は RFC 1701 および RFC 1702 に指定されているインターネット・プロトコルの 1 つです。GRE を使用して、Network Dispatcher はクライアント IP パケットを IP/GRE パケットの内部にカプセル化し、それを GRE をサポートしている OS/390 などのサーバー・プラットフォームに転送できます。
GRE サポートによって、Dispatcher コンポーネントは、1 つの MAC アドレスと関連付けられている複数のサーバー・アドレス当てのパケットをロード・バランシングできます。
Network Dispatcher はその WAND (広域 Network Dispatcher) 機能の一部として GRE をインプリメントします。これにより、Network Dispatcher は、GRE パケットを解くことができるすべてのサーバー・システムに対するロード・バランシングを直接実行できます。リモート・サーバーがカプセル化された GRE パケットをサポートしている場合は、Network Dispatcher はリモート・サイトにインストールされている必要はありません。Network Dispatcher は、WAND パケットを 10 進数値 3735928559 に設定された GRE キー・フィールドとともにカプセル化します。
図 25. GRE をサポートするサーバー・プラットフォームがある広域の例の構成
この例 (図 25) の場合は、GRE をサポートするリモート ServerD を追加するために、WAND サーバーを cluster:port:server 階層内に定義中であるかのように、そのサーバーは Network Dispatcher 構成内に定義します。
ndcontrol server add cluster:port:ServerD router Router1
self advisor は Dispatcher コンポーネントで使用可能です。
2 層 WAND (広域 Network Dispatcher) 構成内の Network Dispatcher の場合は、Dispatcher は、バックエンド・サーバーで負荷状況情報を収集する self advisor を提供します。
図 26. self advisor を使用する 2 層 WAND 構成の例
この例では、self advisor はメトリック・サーバーと一緒に、最上層 Network Dispatcher によってロード・バランシングされている 2 つの Dispatcher マシンにあります。self advisor は、特に、Dispatcher のバックエンド・サーバーで秒当たりの接続数の率を executor レベルで測ります。
self advisor は結果を ndloadstat ファイルに書き込みます。また、Network Dispatcher は ndload と呼ばれる外部メトリックも提供します。メトリック・サーバー・エージェントは各 Dispatcher マシンで、外部メトリックを呼び出すその構成を実行します。 ndload スクリプトは ndloadstat ファイルから文字列を抽出し、それをメトリック・サーバー・エージェントに戻します。その後、メトリック・サーバー・エージェントのそれぞれは (Dispatchers のそれぞれから)、クライアント要求を戻す Dispatcher はどれかの判断で、使用する最上層 Network Dispatcher に負荷状況値を戻します。
ndload 実行可能は Network Dispatcher の .../nd/ms/script ディレクトリー内にあります。
high availability 機能は、Dispatcher コンポーネントでしか使用できません。
Dispatcher の可用性を向上させるために、Dispatcher の high availability 機能は以下のメカニズムを使用します。
可能な場合には、 heartbeat ペアの少なくとも 1 つを、通常のクラスター・トラフィックではなく別個のサブネットにまたがるようにすることをお勧めします。 heartbeat トラフィックを別個に保持すると、非常に重いネットワーク負荷の間に偽の引き継ぎを防ぎ、フェールオーバー後の完全なリカバリー時間を向上させます。
ndcontrol highavailability の全構文は、ndcontrol highavailability -- high availability の制御で示します。
下記のタスクの多くの詳細については、Dispatcher マシンのセットアップを参照してください。
Windows 2000 のみ: さらに、ndconfig コマンドを使用して、それぞれの nonforwarding アドレスを構成します。 たとえば、以下のようになります。
ndconfig en0 nfa_addr netmask netmask
ndcontrol cluster set clusterA primaryhost NFAdispatcher1 ndcontrol cluster set clusterB primaryhost NFAdispatcher2
ndcontrol cluster set clusterB primaryhost NFAdispatcher2 ndcontrol cluster set clusterA primaryhost NFAdispatcher1
ndcontrol highavailability heartbeat add sourceaddress destinationaddress
Primary - highavailability heartbeat add 9.67.111.3 9.67.186.8 Backup - highavailability heartbeat add 9.67.186.8 9.67.111.3少なくとも 1 つの heartbeat ペアには、送信元アドレスおよび宛先アドレスとして NFA のペアが必要です。
可能な場合には、 heartbeat ペアの少なくとも 1 つを、通常のクラスター・トラフィックではなく別個のサブネットにまたがるようにすることをお勧めします。 heartbeat トラフィックを別個に保持すると、非常に重いネットワーク負荷の間に偽の引き継ぎを防ぎ、フェールオーバー後の完全なリカバリー時間を向上させます。
ndcontrol highavailability reach add 9.67.125.18リーチ・ターゲットをお勧めしますが、必須ではありません。詳細については、heartbeat およびリーチ・ターゲットを使用した障害検出機能を参照してください。
ndcontrol highavailability backup add primary [auto | manual] port
ndcontrol highavailability backup add backup [auto | manual] port
ndcontrol highavailability backup add both [auto | manual] port
ndcontrol highavailability statusマシンには、それぞれ正しい役割 (バックアップとプライマリー、または両方)、状態、および副状態があるはずです。プライマリーは、活動状態であり、かつ同期化されていなければなりません。バックアップは待機モードであって、短時間の間に同期化されなければなりません。ストラテジーは同じでなければなりません。
注:
障害検出の基本的な基準 (heartbeat メッセージによって検出される、活動状態と待機 Dispatcher 間での接続性の喪失) 以外には、到達可能性基準 というもう 1 つの障害検出機構があります。 Dispatcher を構成する場合は、正しく機能するようにするために、Dispatcher のそれぞれが到達できるホストのリストを提供できます。
Dispatcher マシンが使用するサブネットごとに、少なくとも 1 つのホストを選択しなければなりません。ホストは、ルーター、IP サーバー、または他のタイプのホストでも可能です。ホストの到達可能性は、ホストを ping する reach advisor によって取得されます。heartbeat メッセージが検出できない場合か、プライマリー Dispatcher が到達可能性基準に一致しなくなり、待機 Dispatcher が到達可能である場合は、切り替えが起こります。あらゆる使用可能な情報をもとに判断するため、活動状態の Dispatcher は、その到達可能性の機能を定期的に待機 Dispatcher に送信します。待機 Dispatcher は、この機能とそれ自身の機能と比較して、切り替えを行うかどうかを決定します。
プライマリー・マシンおよび バックアップ という第 2 マシンの 2 つの Dispatcher マシンが構成されます。始動時に、プライマリー・マシンは、マシンが同期化するまで、すべての接続データをバックアップ・マシンに送信します。プライマリー・マシンは 活動状態 になります、つまり、プライマリー・マシンはロード・バランシングが開始します。その間、バックアップ・マシンは、プライマリー・マシンの状況をモニターしていて、待機 状態にあるといわれます。
バックアップ・マシンは、いつでも、プライマリー・マシンが失敗したことを検出すると、プライマリー・マシンのロード・バランシング機能を 引き継ぎ、活動状態のマシンになります。プライマリー・マシンは、再度操作可能になると、このマシンは、ユーザーによる回復 ストラテジー の構成方法に応じて応答します。ストラテジーには、以下の 2 種類があります。
ストラテジー・パラメーターの設定は、両マシンとも同じでなければなりません。
手動回復ストラテジーでは、引き継ぎコマンドを使用して、パケットの経路指定を強制的に特定のマシンに向けることができます。手動回復は、他のマシンで保守が行われているときは便利です。自動回復ストラテジーは、通常の不在操作用に設計されています。
相互 high availability 構成の場合は、クラスターごとの障害はありません。
一方のマシンでなんらかの問題が発生する場合、たとえその問題が 1 方だけのクラスターに影響を及ぼしても、他方のマシンは両方のクラスターを引き継ぎます。
Dispatcher がパケットを経路指定するには、それぞれのクラスター・アドレスがネットワーク・インターフェース・デバイスに対して別名割り当てされなければなりません。
Dispatcher マシンは障害を検出すると状態を変更するので、上記のコマンドは自動的に出されなければなりません。Dispatcher は、ユーザー作成のスクリプトを実行して、これを行います。サンプル・スクリプトは ...nd/servers/samples ディレクトリー内にあり、実行するためには ...nd/servers/bin ディレクトリーに移動し なければなりません。
スクリプトはこのパラメーターを照会し、そのプライマリー Dispatcher と関連したクラスター・アドレスにifconfig コマンド (または Windows 2000 の場合は ndconfig コマンド) を実行しなければなりません。
以下のサンプル・スクリプトを使用できます。
この別名が goActive スクリプトに追加されます。たとえば、以下のようになります。
call netsh interface ip add address "Local Area Connection" addr=9.37.51.28 mask=255.255.240.0
goStandby および GoInOp の場合は、この別名を除去することが必要になります。たとえば、以下のようになります。
call netsh interface ip delete address "Local Area Connection" addr=9.37.51.28
マシン上に複数の NIC がある場合は、最初に、コマンド・プロンプトで次のコマンドを出すことによってどのインターフェースを使用するかを調べてください: netsh interface ip show address。このコマンドは正しく構成されたインターフェースのリストを戻し、「ローカル・エリア接続」に番号を付ける (たとえば、「ローカル・エリア接続 2」など) ので、どれを使用するかが判別できます。
ルール・ベースのロード・バランシングを使用して、パケットが送信されるサーバー、時刻、および理由を微調整することができます。Network Dispatcher は最初の優先度から最後の優先度に追加したルールをすべてレビューし、真である最初のルールで停止し、ルールに関連するサーバー間のコンテンツのロード・バランシングを行ないます。 ルールを使用しなくても宛先およびポートに基づいてロード・バランシングが行われますが、ルールを使用すると接続を分散する機能を拡張することができます。
ルールを構成するときはほとんどの場合に、その他のもっと高い優先度ルールに該当するすべての要求をキャッチするために、デフォルトの常に真ルールを構成する必要があります。これは、他のすべてのサーバーが失敗すると「残念ながら、このサイトは現在ダウンしています。後でやり直してください。」応答になる場合があります。
なんらかの理由でサーバーのサブセットを使用する場合は、ルールに基づいたロード・バランシングを Dispatcher および Site Selector とともに使用する必要があります。常に、CBR コンポーネントにはルールを使用し なければなりません。
ルールを構成に追加する前に、準拠するルールの論理を計画することをお勧めします。
すべてのルールには名前、タイプ、優先順位があり、サーバーのセットと一緒に、範囲の開始値および範囲の終了値がある場合があります。さらに、CBR コンポーネントのコンテンツ・タイプ・ルールには、それと関連付けられている一致している正規表現パターンもあります。(コンテンツ・ルールおよびコンテンツ・ルールに有効なパターン構文の使用法の例とシナリオについては、付録 C, コンテンツ・ルール (パターン) 構文を参照してください。)
ルールは優先度の順序で評価されます。すなわち、優先度が 1 (小さい方の数) のルールは、優先度が 2 (大きい方の数) のルールより前に評価されます。条件を満たした最初のルールが適用されます。ルールが満たされると、それ以上のルールの評価は行われなくなります。
ルールが条件を満たすように、以下の 2 つの条件を満たさなければなりません。
ルールにサーバーが関連していない場合は、ルールは、条件 1 のみを満たしている必要があります。この場合は、Dispatcher は接続要求をドロップし、Site Selector はネーム・サーバー要求をエラーで戻し、 CBR は Caching Proxy がエラー・ページを戻すようにします。
ルールが満たされない場合は、Dispatcher はポートで使用可能なサーバーの全セットからサーバーを選択し、Site Selector はサイト名で使用可能なサーバーの全セットからサーバーを選択し、CBR は Caching Proxy がエラー・ページを戻すようにします。
このルール・タイプは、Dispatcher、CBR、または Site Selector コンポーネントで使用できます。
顧客を選別して顧客のアクセス元に基づいてリソースを割り振る場合は、クライアント IP アドレスに基づいたルールを使用することも考えられます。
たとえば、IP アドレスの特定のセットからアクセスしているクライアントから、未払いの (したがって望ましくない) 通信がネットワークに多く到着するとします。ndcontrol rule コマンドを使用してルールを作成します。たとえば、以下のようにします。
ndcontrol rule add 9.67.131.153:80:ni type ip beginrange 9.0.0.0 endrange 9.255.255.255
この "ni" ルールは IBM クライアントからの接続をふるいにかけます。その後、IBM 利用者にアクセスできるようにしたいサーバーをルールに追加します。サーバーをルールに追加しないと、9.x.x.x アドレスからの要求に対してサーバーがまったくサービスを提供しなくなります。
このルール・タイプは、Dispatcher、CBR、または Site Selector コンポーネントで使用できます。
容量の計画のため、時刻に基づくルールを使用することも考えられます。たとえば、Web サイトが毎日ほとんど同じ時間帯にアクセスされる場合は、5 つのサーバーを常に HTTP 専用にしておいて、ピークの時間帯に他の 5 つを追加することも考えられます。
時刻に基づくルールを使用する理由として、毎晩深夜に一部のサーバーを停止して保守するときに、保守に必要な時間だけそれらのサーバーを除外するルールを設定することなどがあげられます。
このルール・タイプは、Dispatcher および CBR コンポーネントで使用可能です。
サーバーのいくつかを他のアプリケーションで共用する必要がある場合に、ポートの 1 秒当たりの接続数に基づくルールを使用したい場合があります。たとえば、以下の 2 つのルールを設定できます。
Telnet を使用している場合に、1 秒当たりの接続数が特定のレベル以上に増加するときを除いて、Telnet 用の 5 つのサーバーのうち 2 つを予約したい場合もあります。このようにすると、Dispatcher によって、ピーク時に 5 つのサーバーのすべてにわたってロード・バランシングが行われます。
このルール・タイプは、Dispatcher または CBR コンポーネントで使用可能です。
サーバーが過負荷になり、パケットを破棄する場合に、ポートの活動状態の接続の総数に基づくルールを使用したい場合があります。特定の Web サーバーは、要求に応答するスレッドが十分にない場合でも接続を受け入れ続けます。この結果、クライアント要求はタイムアウトになり、Web サイトにアクセスしている顧客にサービスが提供されなくなります。活動状態の接続数に基づくルールを使用して、サーバーのプールで容量のバランスを取ることができます。
たとえば、サーバーが 250 の接続を受け入れた後、サービスの提供を停止することが経験的に分かっているとします。 ndcontrol rule コマンドまたは cbrcontrol rule コマンドを使用してルールを作成することができます。たとえば、
ndcontrol rule add 130.40.52.153:80:pool2 type active beginrange 250 endrange 500 または cbrcontrol rule add 130.40.52.153:80:pool2 type active beginrange 250 endrange 500
このルールに、現行のサーバーと、他の処理に使用する追加サーバーを追加します。
このルール・タイプは Dispatcher コンポーネントでしか使用できません。
要求時に TCP/IP から特定のポートを要求する種類のソフトウェアをクライアントが使用している場合に、クライアント・ポートに基づくルールを使用したい場合があります。
たとえば、クライアント・ポートが 10002 のクライアント要求が、特に大切な顧客からのアクセスであることが分かっているため、このポートを持つすべての要求が特別に高速のサーバーのセットを使用するように指示するルールを作成することができます。
このルール・タイプは Dispatcher コンポーネントでしか使用できません。
IP ヘッダーの "type of service" (TOS) の内容に基づくルールを使用することも考えられます。たとえば、クライアント要求が、通常のサービスを示す TOS 値付きで着信した場合には、その要求を 1 つのサーバーのセットに経路指定することができます。別のクライアント要求が、優先順位が高いサービスを示す別の TOS 値付きで着信した場合には、その要求を別のサーバーのセットに経路指定することができます。
TOS ルールを使用すると、ndcontrol rule コマンドを使用して、各ビットを TOS バイトで完全に構成することができます。 TOS バイトで一致させたい有効なビットには、0 または 1 を使用します。それ以外は、x を使用します。以下は、TOS ルールを追加する例です。
ndcontrol rule add 9.67.131.153:80:tsr type service tos 0xx1010x
容量使用率ルールおよび帯域幅ルールは Dispatcher コンポーネントでのみ使用可能です。
容量使用率機能を使用して、Dispatcher はそのサーバーのそれぞれによって送達されたデータ容量を測定します。Dispatcher は、サーバー、ルール、ポート、クラスター、および executor のレベルで容量を追跡します。これらのレベルごとに、新規バイト・カウンター値 (秒当たりの転送 K バイト数) があります。この率の値 (秒当たりの転送 K バイト数) は 60 秒以上の間隔で計算されます。これらの容量値は GUI から、あるいはコマンド行報告の出力から表示できます。
Dispatcher によって、予約済み帯域幅 ルールを使用して、指定された帯域幅を構成内のサーバーのセットに割り振ることができます。トラフィックが予約済み帯域幅のしきい値を超えると、以下のいずれかを実行できます。
前述のように、予約済み帯域幅ルールとの組み合わせで共用帯域幅ルールを使用することによって、増加するサーバー・アクセスに好ましいクライアントを準備できるので、それらのトランザクションのパフォーマンスを最適化できます。たとえば、未使用の帯域幅を補充するために共用帯域幅を使用すると、サーバー・クラスターで取引を実行中のオンライン取引の顧客が、投資の調査のために他のサーバーを使用中の顧客よりたくさんのアクセスを受信できるようにすることができます。
帯域幅ルールがサーバーからクライアントに流れる応答トラフィックのボリュームの管理に役立つかどうかを判別するために、以下の点に注意してください。
このルール・タイプは Dispatcher コンポーネントでしか使用できません。
予約済み帯域幅ルールによって、1 セットのサーバーによって送達された秒当たりの K バイト数を基にしたロード・バランシングができます。構成中のサーバーのセットごとにしきい値を設定する (指定された帯域幅の範囲を割り振る) ことによって、クラスターとポートの組み合わせごとに使用される帯域幅の量を制御および保証できます。以下は、reservedbandwidth ルールを追加する例です。
ndcontrol rule add 9.67.131.153:80:rbw type reservedbandwidth beginrange 0 endrange 300
範囲の開始値と範囲の終了値は秒当たりの K バイト数で指定します。
このルール・タイプは Dispatcher コンポーネントでしか使用できません。
転送データ容量が予約済み帯域幅ルールの制限を超えると、共用帯域幅ルールによって、サイトで使用可能な未使用の帯域幅を補充する能力が提供されます。このルールは、レベルまたは executor のいずれかのレベルで帯域幅を共用するために構成できます。クラスター・レベルの共用帯域幅によって、ポート (1 つまたは複数) は、同一クラスター内のいくつかのポート (アプリケーション / プロトコル) 間で最大容量の帯域幅を共用できます。executor レベルで帯域幅を共用することにより、Dispatcher 構成全体内のクラスター (1 つまたは複数) が最大容量の帯域幅を共用することができます。
共用帯域幅ルールを構成する前に、sharedbandwidth オプションを指定した ndcontrol executor または ndcontrol cluster コマンドを使用して、executor レベルまたはクラスター・レベルで共用できる帯域幅の最大容量 (共用帯域幅ルール / 秒) を指定しなければなりません。以下は、コマンド構文の例です。
ndcontrol executor set sharedbandwidth size ndcontrol cluster [add | set] 9.12.32.9 sharedbandwidth size
sharedbandwidth の size は整数値 (秒当たりの K バイト数) です。デフォルトは 0 です。この値がゼロの場合は、帯域幅を共用できません。使用可能な合計帯域幅 (合計サーバー容量) を超えない最大 sharedbandwidth 値を指定する必要があります。
以下は、sharedbandwidth ルールを追加または設定する例です。
ndcontrol rule add 9.20.30.4:80:shbw type sharedbandwidth sharelevel value ndcontrol rule set 9.20.34.11:80:shrule sharelevel value
sharelevel の value は executor またはクラスターのいずれかです。sharelevel は sharebandwidth ルールで必須パラメーターの 1 つです。
このルール・タイプは Site Selector コンポーネントでしか使用できません。
メトリック全体ルールの場合は、システム・メトリック (cpuload、memload、ユーザー独自にカスタマイズしたシステム・メトリック・スクリプト) を選択し、Site Selector はシステム・メトリック値 (ロード・バランシング済みのサーバーに常駐しているメトリック・サーバー・エージェントによって戻される) とルールに指定されている範囲の開始値および終了値と比較します。サーバー・セット内のすべてのサーバーの現行システム・メトリック値は、当該ルールの範囲内になっていなければなりません。
以下は、メトリック全体ルールを構成に追加する例です。
sscontrol rule add dnsload.com:allrule1 type metricall metricname cpuload beginrange 0 endrange 100
このルール・タイプは Site Selector コンポーネントでしか使用できません。
メトリック平均ルールの場合は、システム・メトリック (cpuload、memload、ユーザー独自にカスタマイズしたシステム・メトリック・スクリプト) を選択し、 Site Selector はシステム・メトリック値 (ロード・バランシング済みの各サーバーに常駐しているメトリック・サーバー・エージェントによって戻される) とルールに指定されている範囲の開始値および終了値と比較します。サーバー・セット内のすべてのサーバーの現行システム・メトリック値の 平均 が当該ルールの範囲内になっていなければなりません。
以下は、メトリック平均ルールを構成に追加する例です。
sscontrol rule add dnsload.com:avgrule1 type metricavg metricname cpuload beginrange 0 endrange 100
このルール・タイプは、Dispatcher、CBR、または Site Selector コンポーネントで使用できます。
"常に真" のルールを作成することができます。このようなルールは、関連するサーバーがすべて停止しない限り、常に選択されます。このため、通常は、他のルールよりも優先順位が低くなければなりません。
複数の "常に真" ルールを用意して、それぞれについて関連するサーバーのセットを持たせることができます。使用可能なサーバーを持つ最初の true のルールが選択されます。たとえば、6 つのサーバーを持っているとします。このうちの 2 つに、両方とも停止してしまわない限り、あらゆる状況で通信を処理させます。最初の 2 つのサーバーが停止した場合は、サーバーの 2 番目のセットに通信を処理させます。これらのサーバーが 4 つとも停止した場合は、最後の 2 つのサーバーを使用して通信を処理させます。この場合は、3 つの "常に真" ルールを設定することができます。サーバーの最初のセットは、少なくとも 1 つが稼働している限り常に選択されます。両方とも停止した場合は、2 番目のセットから 1 つ選択され、以下同様に行われます。
他の例として、"常に真" ルールによって、設定済みのどのルールとも着信クライアントが一致しない場合にサービスが提供されないようにしたい場合があります。以下のように ndcontrol rule コマンドを使用してルールを作成します。
ndcontrol rule add 130.40.52.153:80:jamais type true priority 100
サーバーをルールに追加しないと、クライアント・パケットが応答なしのままドロップしてしまいます。
複数の "常に真" ルールを定義して、優先順位のレベルを変更することによって、実行するルールを調整することができます。
このルール・タイプは、Dispatcher または CBR コンポーネントで使用可能です。
コンテンツ・タイプ・ルールを使用して、ユーザー・サイトのトラフィックのなんらかのサブセットを処理するようにセットアップされたサーバー・セットに要求を送信します。たとえば、あるサーバー・セットを使用してすべての cgi-bin 要求を処理し、別のサーバー・セットを使用してすべてのストリーミング・オーディオ要求を処理し、さらに別のサーバー・セットを使用してその他のすべての要求を処理することができます。 cgi-bin ディレクトリーへのパスと一致するパターンを持つルールを追加し、ストリーミング・オーディオ・ファイルのファイル・タイプと一致するパターンを持つルールを追加し、さらにその他のトラフィックを処理するための、常に真のルールを追加します。次に、該当するサーバーをそれぞれのルールに追加します。
重要: コンテンツ・ルールおよびコンテンツ・ルールに有効なパターン構文の使用法の例とシナリオについては、付録 C, コンテンツ・ルール (パターン) 構文を参照してください。
サンプル構成ファイルを編集することによって、あるいはグラフィカル・ユーザー・インターフェース (GUI)によって、ndcontrol rule add コマンドを使用してルールを追加できます。定義したすべてのポートに 1 つまたは複数のルールを追加することができます。
これは、ルールを追加してから、ルールが真の場合にサービスを提供するサーバーを定義するという 2 つのステップの処理です。たとえば、システム管理者がサイトの各部門からのプロキシー・サーバーの使用の程度を追跡するとします。システム管理者は、各部門に与えられている IP アドレスを知っています。クライアント IP アドレスに基づくルールの最初のセットを作成して、各部門の負荷を分割します。
ndcontrol rule add 130.40.52.153:80:div1 type ip b 9.1.0.0 e 9.1.255.255 ndcontrol rule add 130.40.52.153:80:div2 type ip b 9.2.0.0 e 9.2.255.255 ndcontrol rule add 130.40.52.153:80:div3 type ip b 9.3.0.0 e 9.3.255.255
次に、システム管理者は、異なるサーバーを各ルールに追加してから、各サーバーの負荷を測定し、それらが使用したサービスに対する部門の課金が正しく行われるようにします。たとえば、以下のようになります。
ndcontrol rule useserver 130.40.52.153:80:div1 207.72.33.45 ndcontrol rule useserver 130.40.52.153:80:div2 207.72.33.63 ndcontrol rule useserver 130.40.52.153:80:div3 207.72.33.47
サーバー評価オプションは Dispatcher コンポーネントでのみ使用可能です。
ndcontrol rule コマンドには、ルールのサーバー評価オプションがあります。evaluate オプションはポートのすべてのサーバー間のルールの条件を評価すること、あるいはルール内のサーバーだけの間のルールの条件を評価することを選択するために使用します。(Network Dispatcher の初期バージョンでは、ポート上のすべてのサーバー間の各ルールの条件を測ることしかできませんでした。)
以下は、予約済み帯域幅ルールに評価オプションを追加または設定する例です。
ndcontrol rule add 9.22.21.3:80:rbweval type reservedbandwidth evaluate level ndcontrol rule set 9.22.21.3:80:rbweval evaluate level
evaluate level はポートまたはルールのいずれかに設定できます。デフォルトはポートです。
ルール内のサーバー間のルールの条件を測るためのオプションによって、以下の特性を使用して 2 つのルールを構成できます。
結果は、トラフィックが最初のルール内のサーバーのしきい値を超えると、トラフィックは 2 番目のルール内の「サイト・ビジー」サーバーに送信されます。トラフィックが最初のルール内のサーバーのしきい値を下回ると、新規トラフィックは最初のルール内のサーバーにもう一度続けられます。
前の例で説明した 2 つのルールを使用して、evaluate オプションを最初のルール (ポート上のすべてのサーバー間でルールの条件を評価) の port に設定した場合は、トラフィックがそのルールのしきい値を超えると、トラフィックは 2 番目のルールと関連付けられている「サイト・ビジー」サーバーに送信されます。
最初のルールは、ポート上のすべてのサーバー・トラフィック (「サイト・ビジー」サーバーを含む) を測って、そのトラフィックがしきい値を超えているかどうかを判断します。最初のルールに関連したサーバーの輻輳が低下すると、ポートのトラフィックはまだ最初のルールのしきい値を超えているので、トラフィックは「サイト・ビジー」サーバーに送信され続けるという、不測の結果が起こる場合があります。
一般に、Dispatcher のロード・バランシング機能は、当製品が使用されるサイトの内容とは関係なく働きます。ただし、サイトの内容が重要であり、かつ内容に関する判断が Dispatcher の効率に重大な影響を与える可能性がある領域が 1 つあります。これは、リンク・アドレスの領域です。
サイトの個別のサーバーを指すリンクをページで指定すると、強制的にクライアントが特定のマシンにアクセスするようになるので、すべてのロード・バランシング機能が迂回され、効果がなくなってしまいます。このため、ページに含まれるすべてのリンクで、常に Dispatcher のアドレスを使用することをお勧めします。サイトで自動プログラミングを使用して HTML を動的に作成する場合は、使用するアドレスの種類が常に明らかであるとは限りません。ロード・バランシングを最大限に活用するには、明示アドレスに注意して、可能な場合には回避しなければなりません。
プライベート・ネットワークを使用する Dispatcher および TCP サーバー・マシンをセットアップすることができます。この構成によって、パフォーマンスに影響を与える可能性がある公衆ネットワークや外部ネットワークでの競合を削減することができます。
AIX の場合は、この構成によって、Dispatcher および TCP サーバー・マシンを SP フレームのノードで実行している場合に、高速な SP ハイパフォーマンス・スイッチを利用することもできます。
プライベート・ネットワークを作成するには、各マシンに少なくとも 2 つの LAN カードを用意し、一方のカードをプライベート・ネットワークに接続しなければなりません。異なるサブネットで 2 番目の LAN カードも構成しなければなりません。Dispatcher マシンは、プライベート・ネットワークを介して TCP サーバー・マシンにクライアント要求を送信します。
Windows 2000: 以下のコマンドを実行してください。
ndconfig en1 10.0.0.x netmask 255.255.255.0
ここで、en1 は Dispatcher マシンの 2 番目のインターフェース・カードの名前であり、10.0.0.x は 2 番目のインターフェース・カードのネットワーク・アドレスであり、255.255.255.0 はプライベート・ネットワークのネットマスクです。
ndcontrol server add コマンドを使用して追加されたサーバーは、プライベート・ネットワーク・アドレスを使用して追加しなければなりません。たとえば、図 27 の Apple サーバーの例では、以下のようにコマンドをコーディングしなければなりません。
ndcontrol server add cluster_address:80:10.0.0.1
以下のようであってはなりません。
ndcontrol server add cluster_address:80:9.67.131.18
Site Selector を使用して負荷情報を Dispatcher に提供している場合は、プライベート・アドレスでの負荷を報告するように Site Selector を構成しなければなりません。
図 27. Dispatcher を使用するプライベート・ネットワークの例
プライベート・ネットワーク構成は Dispatcher コンポーネントでしか使用できません。
"ワイルドカード" は、複数の IP アドレスに一致するクラスターの機能を指します (つまり、ワイルドカードとして機能します)。クラスター・アドレス 0.0.0.0 を使用して、ワイルドカード・クラスターを指定します。
クラスター・アドレスの多くについてロード・バランシングを行っており、ポート / サーバー構成が全クライアントについて同じである場合は、すべてのクラスターを 1 つのスター型構成に結合することができます。
この場合でも、Dispatcher ワークステーションのネットワーク・アダプターのいずれかで、各クラスター・アドレスを明示的に構成しなければなりません。ただし、ndcontrol cluster add コマンドを使用して全クラスター・アドレスを Dispatcher 構成に追加する必要はありません。
ワイルドカード・クラスター (アドレス 0.0.0.0) のみを追加して、ロード・バランシングに必要なポートおよびサーバーを構成します。アドレスを構成したアダプターへの通信については、すべてワイルドカード・クラスター構成を使用してロード・バランシングが行われます。
この方法の利点は、最適なサーバーを判別するときに、すべてのクラスター・アドレスへのトラフィックが考慮されることです。1 つのクラスターが受信するトラフィックが多く、サーバーのいずれかで多くの活動状態の接続を作成した場合は、この情報を使用して、他のクラスター・アドレスへの通信についてロード・バランシングが行われます。
固有のポート / サーバー構成を持つクラスター・アドレスがある場合は、ワイルドカード・クラスターを実際のクラスターと結合し、いくつかを共通構成と結合することができます。固有の構成は、それぞれ実際のクラスター・アドレスに割り当てなければなりません。共通構成は、すべてワイルドカード・クラスターに割り当てることができます。
ワイルドカード・クラスターを使用してサーバー構成を結合する操作は、Dispatcher コンポーネントでしか行えません。
ワイルドカード・クラスターを使用してバランス・ファイアウォールをロードする操作は、Dispatcher コンポーネントでしか行えません。クラスター・アドレス 0.0.0.0 を使用して、ワイルドカード・クラスターを指定します。
ワイルドカード・クラスターは、Dispatcher ワークステーションのネットワーク・アダプターで明示的に構成されていないアドレスへの通信についてロード・バランシングを行うために使用することができます。これを行うためには、少なくとも、ロード・バランシングを行う通信を Dispatcher がすべて確認することができなければなりません。Dispatcher ワークステーションは、通信のセットに対するデフォルトの経路としてセットアップされていない限り、そのネットワーク・アダプターのいずれでも明示的に構成されていないアドレスへの通信を確認しません。
一度 Dispatcher をデフォルトの経路として構成すると、Dispatcher マシンを介した TCP 通信または UDP 通信は、すべてワイルドカード・クラスター構成を使用してロード・バランシングが行われます。
このアプリケーションの 1 つは、ファイアウォールのロード・バランシングを行うためのものです。ファイアウォールは、すべての宛先アドレスおよび宛先ポートに対するパケットを処理するので、宛先アドレスおよびポートに関係なく、通信のロード・バランシングを行える必要があります。
ファイアウォールは、保護されていないクライアントから保護されたサーバーまでの通信、および保護されたサーバーからの応答をはじめ、保護された側のクライアントから保護されていない側のサーバーへの通信および応答を処理するために使用されます。
2 つの Dispatcher マシンをセットアップし、一方のマシンでは保護されていないファイアウォール・アドレスに対して保護されていない通信のロード・バランシングを行い、もう一方のマシンでは保護されたファイアウォール・アドレスに対して保護された通信のロード・バランシングを行わなければなりません。これらの Dispatcher の両方が、サーバー・アドレスの異なるセットとともにワイルドカード・クラスターおよびワイルドカード・ポートを使用しなければならないので、2 つの Dispatcher は 2 つの別個のワークステーションになければなりません。
Dispatcher コンポーネントの場合、透過プロキシーについて、ワイルドカード・クラスターを Caching Proxy とともに使用することはできません。クラスター・アドレス 0.0.0.0 を使用して、ワイルドカード・クラスターを指定します。
また、ワイルドカード・クラスター機能によって、Dispatcher は、Dispatcher と同じボックスにある Caching Proxy サーバーに透過プロキシー機能を使用可能にするためにも使用できます。これは、Dispatcher コンポーネントからオペレーティング・システムの TCP コンポーネントへの通信がなければならないので、AIX のみの機能です。
この機能を使用可能にするには、Caching Proxy によるポート 80 でのクライアント要求の listen を開始しなければなりません。 その後、ワイルドカード・クラスターを構成します。ワイルドカード・クラスターで、ポート 80 を構成します。ポート 80 で、Dispatcher マシンの NFA を唯一のサーバーとして構成します。これで、ポート 80 の任意のアドレスに対するクライアント通信が、すべて Dispatcher ワークステーションで実行されている Caching Proxy サーバーに送達されるようになります。クライアント要求は、通常どおりに代行され、応答が Caching Proxy からクライアントに送信されます。 このモードでは、Dispatcher コンポーネントはロード・バランシングを行いません。
ワイルドカード・ポートは、明示的に構成されたポートに対する通信ではない通信を処理するために使用することができます。たとえば、ファイアウォールのロード・バランシングに使用することができます。また、構成されていないポートへの通信が適切に処理されることを確認するために使用することもできます。サーバーを指定せずにワイルドカード・ポートを定義することによって、構成されていないポートへの要求を確実に廃棄し、オペレーティング・システムに戻されないようにすることができます。ポート番号 0 (ゼロ) を使用して、ワイルドカード・ポートを指定します。たとえば、以下のようになります。
ndcontrol port add cluster:0
クラスターのポートをスティッキーとして構成すると、類縁性機能が使用可能になります。クライアントのポートをスティッキーになるように構成すると、以降のクライアント要求を同じサーバーに送信することができます。これは、"ポートのスティッキー時間" を秒単位で設定することによって行います。この機能は、スティッキー時間を 0 に設定すると使用不能になります。
ポート間類縁性との相互作用 : ポート間類縁性を使用可能にしている場合は、共用ポートの stickytime 値は同じ (ゼロ以外) でなければなりません。詳細については、ポート間類縁性を参照してください。
この機能が使用不能な場合に、新しい TCP 接続がクライアントから受信されると、Dispatcher は、その時点の適切なサーバーを時間内に選出してパケットを転送します。次の接続が同じクライアントから到着すると、Dispatcher は、関連のない新しい接続として処理して、その時点の適切なサーバーを時間内に再度選出します。
この機能を使用可能にすると、以降の要求を同じクライアントから受け取った場合に、その要求は同じサーバーに送信されます。
時間が経過すると、クライアントはトランザクションを終了し、類縁性レコードが廃棄されます。これがスティッキー "時間" の意味です。各類縁性レコードは、秒単位の "スティッキー時間" の間だけ存在し続けます。次の接続がスティッキー時間内に受信されると、類縁性レコードは有効のままになり、要求は同じサーバーに送信されます。次の接続がスティッキー時間外に受信されると、レコードは除去されます。その時間の後に受信される接続については、新しいサーバーがその接続に対して選択されます。
Server Directed Affinity API は Dispatcher コンポーネントにしか適用されません。
SDA 機能は、外部エージェントが Dispatcher の類縁性の振る舞いに影響を与えることができるようにする API を提供します。
SDA 機能
サーバー・システムがクライアント要求を特定のサーバー・マシンに送信するための情報を持っていることを、アプリケーションが Dispatcher よりも詳しく示していることがあります。 Dispatcher のロード・バランシングによって選択されたものと同じサーバーにクライアントを "送信する" のではなく、ユーザーが選択したサーバーにクライアントを "送信する" ことができます。SDA 機能は、この API を提供します。これによって、ユーザー自身のソフトウェアを作成して SDA エージェントをインプリメントし、Dispatcher の listener と通信することができます。これによって、Dispatcher 類縁性テーブルを操作して、以下を行うことができます。
SDA エージェントによって類縁性テーブルに挿入されたレコードは、無期限にテーブルに保持されます。これには、タイムアウトがありません。除去されるのは、SDA エージェントが除去する場合か、サーバーが非活動であることを Dispatcher advisor が検出した場合のみです。
Dispatcher の SDA コンポーネント
Dispatcher は、新しいソケット listener をインプリメントし、SDA エージェントからの要求を受け入れて処理します。SDA エージェントが Dispatcher との接続をオープンすると、listener はその接続を受け入れて、接続をオープンしたままにします。この持続接続を介して、複数の要求および応答を流すことができます。ソケットは、SDA エージェントがクローズする場合か、Dispatcher が回復不能エラーを検出した場合にクローズします。Dispatcher の内部では、listener は、SDA エージェントから各要求を受け入れ、 Dispatcher executor カーネルの適切な類縁性テーブルと通信して、SDA エージェントに対する応答を作成します。
詳細については、Network Dispatcher のインストール・ディレクトリーに入っている以下のファイルを参照してください。
ポート間類縁性は Dispatcher コンポーネントにしか適用されません。
ポート間類縁性は、複数のポートを取り扱うために拡張されたスティッキー機能です。たとえば、クライアント要求を最初に 1 つのポートで受け取り、次の要求を別のポートで受け取る場合、ポート間類縁性を使用すると、 Dispatcher はそのクライアント要求を同じサーバーに送信することができます。この機能を使用するには、ポートを以下のようにしなければなりません。
1 つ以上のポートが、同じ crossport にリンクできます。同じポートまたは共用ポートの同じクライアントから引き続き接続が着信すると、同じサーバーがアクセスされます。以下は、ポート間類縁性をもつ複数のポートをポート 10 に構成している例です。
ndcontrol port set cluster:20 crossport 10 ndcontrol port set cluster:30 crossport 10 ndcontrol port set cluster:40 crossport 10
ポート間類縁性が確立されると、ポートの stickytime 値を柔軟に変更することができます。ただし、すべての共用ポートの stickytime 値を同じ値に変更することをお勧めします。そうでないと、予想外の結果が発生する場合があります。
ポート間類縁性を除去するには、crossport 値を独自のポート番号に戻します。crossport オプションのコマンド構文に関する詳細については、ndcontrol port -- ポートの構成を参照してください。
類縁性アドレス・マスクは Dispatcher コンポーネントにしか適用されません。
類縁性アドレス・マスクは、共通サブネット・アドレスを基に、クライアントをグループ化するためにスティッキー機能を拡張したものです。 stickymask を ndcontrol port コマンドに指定すると、 32 ビット IP アドレスの共通高位ビットをマスクできます。この機能が使用可能な場合、クライアント要求が最初にポートに接続すると、同じサブネット・アドレス (マスクされているアドレスのその部分で表される) をもつクライアントからの以降の要求すべてが、同じサーバーに送信されます。
たとえば、同じネットワーク Class A アドレスをもつすべての着信クライアント要求を同じサーバーに送信したい場合は、そのポートの stickymask 値を 8 (ビット) に設定します。同じネットワーク Class B アドレスをもつクライアント要求をグループ化するには、stickymask 値を 16 (ビット) に設定します。同じネットワーク Class C アドレスをもつクライアント要求をグループ化するには、stickymask 値を 24 (ビット) に設定します。
最良の結果を得るためには、最初の Network Dispatcher を開始時に、stickymask 値を設定します。stickymask 値を動的に変更すると、予期しない結果が発生します。
ポート間類縁性との相互作用 : ポート間類縁性を使用可能にしている場合は、共用ポートの stickymask 値は同じでなければなりません。
詳細については、ポート間類縁性を参照してください。
類縁性アドレス・マスクを使用可能にするには、以下のような ndcontrol port コマンドを発行します。
ndcontrol port set cluster:port stickymask 8
可能な stickymask 値は 8、16、24 および 32 です。値 8 は、IP アドレス (ネットワーク Class A アドレス) の最初の 8 の高位ビットをマスクすることを指定します。値 16 は、IP アドレス (ネットワーク Class B アドレス) の最初の 16 の高位ビットをマスクすることを指定します。値 24 は、IP アドレス (ネットワーク Class C アドレス) の最初の 24 の高位ビットをマスクすることを指定します。値 32 を指定すると、IP アドレス全体をマスクしていて、類縁性アドレス・マスク機能を効果的に使用不可にします。stickymask のデフォルト値は 32 です。
stickymask (類縁性アドレス・マスク機能) のコマンド構文に関する詳細については、 ndcontrol port -- ポートの構成を参照してください。
類縁性ルールのオーバーライドを使用すると、特定サーバーに対するポートのスティッキー性をオーバーライドすることができます。たとえば、各アプリケーション・サーバーへの接続量を制限するルールを使用しているとします。そして、オーバーフロー・サーバーは、そのアプリケーションに対して、 "please try again later (後でもう一度お試しください)" というメッセージを常に出すように設定されているとします。ポートの stickytime 値は 25 分です。したがって、クライアントがそのサーバーに対してスティッキーになることは望ましくありません。類縁性ルールのオーバーライドを使用すると、オーバーフロー・サーバーを変更して、通常そのポートに関連した類縁性を変更することができます。クライアントが次回にクラスターを要求するとき、オーバーフロー・サーバーではなく、最も使用可能なアプリケーション・サーバーでロード・バランシングが行われます。
server sticky オプションを使用するルール類縁性オーバーライドのコマンド構文の詳細については、 ndcontrol server -- サーバーの構成を参照してください。
スティッキー接続の処理の静止は、Dispatcher および CBR コンポーネントに適用されます。
何らかの理由 (更新、アップグレード、保守など) でサーバーを Network Dispatcher 構成から除去するために、ndcontrol manager quiesce コマンドを使用できます。quiesce サブコマンドによって、既存の接続は、(切断しないで) 完了し、その接続がスティッキーと指定されていて、スティッキー時間が満了していると、その後のクライアントからの新規接続のみを静止サーバーに転送できます。quiesce サブコマンドはそのサーバーへのその他のいかなる新規接続も認可しません。
stickytime が設定されていて、stickytime が満了する前に、新規接続を (静止サーバーの代りに) 別のサーバーに送信したい場合は、quiesce "now" だけを使用してください。以下は、サーバー 9.40.25.67 を静止する now オプションの使用例です。
ndcontrol manager quiesce 9.40.25.67 now
now オプションは、スティッキー接続を次のように処理する方法を判別します。
これは、サーバーを静止する、一段と上品で、唐突さの低い方法です。たとえば、サーバーを上品に静止してから、最少量のトラフィックしかない時間 (多分、早朝) を待って、構成からサーバーを除去できます。
ndcontrol rule コマンドには、以下のタイプの類縁性を指定できます。
affinity オプションのデフォルトは "none" です。活動 Cookie、受動 Cookie、または URI に対する rule コマンドで affinity オプションを設定するためには、port コマンドの stickytime オプションはゼロになっていなければなりません。類縁性がルールに対して設定されていると、そのポートで stickytime は使用可能にはできません。
活動 Cookie 類縁性が適用されるのは CBR コンポーネントに対してだけです。受動 Cookie および URI 類縁性は、CBR コンポーネントおよび Dispatcher コンポーネントの CBR 転送方式に適用されます。
活動 Cookie 類縁性フィーチャーが適用されるのは、CBR コンポーネントに対してだけです。これは、特定のサーバーにクライアント「スティッキー」を作成する方法を提供しています。この機能は、ルールのスティッキー時間を正数に設定し、類縁性を "activecookie" に設定することによって使用可能となります。これは、ルールを追加するか、あるいは rule set コマンドを使用すると実行できます。コマンド構文の詳細については、 ndcontrol rule -- ルールの構成を参照してください。
活動 Cookie 類縁性に対してルールが使用可能になると、同じクライアントからの正常に実行された要求が最初に選択したサーバーに送信される間に、標準 CBR アルゴリズムを使用して新規クライアント要求のロード・バランスされます。選択したサーバーは、クライアントへの応答で Cookie として保管されます。クライアントの将来の要求に Cookie が入っていて、各要求がスティッキー時間間隔内に到達する限り、クライアントは初期サーバーとの類縁性を保守します。
活動 cookie 類縁性は、同じサーバーに対する任意の期間のロード・バランシングをクライアントが継続することを確認するために使用されます。これは、クライアント・ブラウザーが保管する Cookie を送信することによって実行されます。 Cookie には、決定を行うために使用した cluster:port、ロード・バランシングしたサーバー、および類縁性が有効でなくなったときのタイムアウト・タイム・スタンプが入っています。オンにされた活動 Cookie 類縁性があるルールが起動されると常に、クライアントによって送信される Cookie が調べられます。 Cookie に破棄された cluster:port の ID が入っていることが分かった場合には、サーバーがロード・バランシングされて、有効期限タイム・スタンプは Cookie から抽出されます。サーバーがルールによって使用される設定のままであり、その重みがゼロより大で、有効期限タイム・スタンプが現在以降の場合には、Cookie 中のサーバーがロード・バランシング先に選択されます。先行する 3 つの条件のいずれかが適合しない場合は、通常アルゴリズムを使用してサーバーが選択されます。サーバーが (2 つのメソッドのいずれかを使用して) 選択されていると、IBMCBR、cluster:port:server_chosen 情報、およびタイム・スタンプが含まれている新規 Cookie が構成されます。このタイム・スタンプは、類縁性の有効期限が切れる時刻になります。 "cluster:port:server_chosen" がエンコードされて、 CBR 構成に関する情報は公開されません。また、 "expires" パラメーターも Cookie に挿入されます。このパラメーターはブラウザーが理解できる形式であり、 Cookie が有効期限タイム・スタンプ後 2 時間で無効になります。そのために、クライアントの Cookie データベースはクラッター・アップされません。
次にこの新規 Cookie はクライアントに戻るヘッダーに挿入され、クライアントのブラウザーが Cookie を受け入れるように構成されている場合は以降の要求を戻します。
ポート・スティッキー時間がゼロ (使用不可) である場合は、ルール・規則の活動 Cookie 類縁性オプションに設定できるのは activecookie だけです。活動 Cookie 類縁性がルールに対して活動状態になっていると、そのポートで stickytime は使用可能にはできません。
特定のルールに対して、活動 cookie 類縁性を使用可能にするには、rule set コマンドを使用してください。
rule set cluster:port:rule stickytime 60 rule set cluster:port:rule affinity activecookie
ルール・スティッキーの作成は、通常はサーバー上のクライアント状態を保管する CGI またはサーブレットに使用されます。この状態は、 Cookie ID によって識別されます (これがサーバー Cookie です) 。クライアント状態は選択したサーバー上だけにあるので、クライアントは要求間の状態を保守するためにそのサーバーからの Cookie を必要とします。
受動 cookie 類縁性は、Dispatcher コンポーネントの Content Based Routing (CBR) 転送方式 および CBR コンポーネントに適用されます。Dispatcher の CBR 転送方式を構成する方法については、Dispatcher の content based routing (cbr 転送メソッド)を参照してください。
受動 cookie 類縁性は、クライアントを特定のサーバーに対してスティッキーにする手段を提供します。ルールの類縁性が "passivecookie" に設定されていると、受動 cookie 類縁性によって、サーバーによって生成された自己識別 cookies を基にして、同一サーバーに対する類縁性で Web トラフィックをロード・バランシングできます。受動 cookie 類縁性はルール・レベルで構成してください。ルールが始動されると、受動 cookie 類縁性が使用可能になっている場合は、 Network Dispatcher はクライアント要求の HTTP ヘッダー中の cookie 名を基にしたてサーバーを選択します。Network Dispatcher は、直前の接続中にサーバーによって生成された cookies を基にして、新規着信要求をサーバーに送信します。クライアント要求中の cookie 値が見つからないか、サーバーの cookie 値のどれとも一致しない場合は、サーバーは重み付きラウンドロビン技法を使用して選択されます。
受動 cookie 類縁性を構成するには、以下を行います。
ポート・スティッキー時間がゼロ (使用不可) の場合は、ルール・コマンドの受動 cookie 類縁性オプションに設定できるのは passivecookie だけです。受動 cookie 類縁性がルールに対して活動状態になっていると、ポートに対して stickytime は使用可能にはできません。
URI 類縁性は、Dispatcher の CBR 転送方式および CBR コンポーネントに適用されます。CBR 転送方式を構成する方法については、Dispatcher の content based routing (cbr 転送メソッド)を参照してください。
URI 類縁性によって、 固有のコンテンツを個々の個々の各サーバーにキャッシュできる、 Caching Proxy サーバーに対して Web トラフィックをロード・バランシングできます。結局、サイトのキャッシュのサイズは、複数のマシン上のコンテンツの冗長なキャッシュを除去することによって、効果的に増加することになります。URI 類縁性はルール・レベルで構成します。ルールが始動されていると、URI 類縁性が使用可能になっていて、同一セットのサーバーがアップになっていて応答している場合は、 Network Dispatcher は同じ URI を付けて新規着信クライアント要求を同じサーバーに転送します。
一般に、Network Dispatcher は、同一のコンテンツを提供する複数のサーバーに要求を分散できます。キャッシュ・サーバーのグループとともに Network Dispatcher を使用すると、頻繁にアクセスされるコンテンツは、結局、すべてのサーバーのキャッシュに入れられた状態になります。これは、複数のマシンのキャッシュに入れられた同一のコンテンツを複製することによって、非常に高いクライアントの負荷をサポートします。これが特に役立つのは、高いボリュームの Web サイトの場合です。
しかし、Web サイトが非常に多様なコンテンツに対してクライアント・トラフィックの適度のボリュームをサポートしていて、一段と大容量のキャッシュを複数のサーバー間に広げたい場合は、ユーザー・サイトは、各キャッシュ・サイトに固有のコンテンツが入っていて、Network Dispatcher がそのコンテンツが入っているキャッシュ・サーバーだけに要求を分散すると一層効果的に実行されることになります。
URI 類縁性を使用すると、Network Dispatcher によって、キャッシュに入れられたコンテンツを個々のサーバーに分散して、複数マシンでの冗長なキャッシュを除去できます。この機能強化によって、 Caching Proxy サーバーを使用する多様なコンテンツ・サーバー・サイトのパフォーマンスは向上することになります。同一サーバーに送信されるのは同一の要求なので、コンテンツは単一サーバーでのみキャッシュに入れられます。さらに、キャッシュの有効サイズは、各新規サーバー・マシンがプールに追加されることによってさらに増大します。
URI 類縁性を構成するには、以下を行います。
ポート・スティッキー時間がゼロ (使用不可) の場合は、ルール・コマンドの URI 類縁性オプションに設定できるのは URI だけです。URI 類縁性がルールに対して活動状態になっていると、ポートに対して stickytime は使用可能にはできません。
この機能は Dispatcher コンポーネントにのみ使用可能です。
Dispatcher は、潜在的な「サービス停止」攻撃を検出し、アラートによって管理者に通知する機能を提供します。 Dispatcher は、サーバーでハーフ・オープン TCP 接続の著しい量の着信要求 (単純なサービス停止攻撃 (Denial of Service Attack) の特性) を分析することによってこれを行います。サービス停止攻撃では、サイトは多数の送信元 IP アドレスおよび送信元ポート番号から大量の偽造された SYN パケットを受信しますが、このサイトはそれらの TCP 接続用のその後のパケットを 1 個も受信しません。これにより、サーバー上で多数の TCP 接続がハーフ・オープン状態になり、時を経るとサーバーは非常に低速化して、新規着信接続を全く受け入れなくなる可能性があります。
Network Dispatcher は、考えられるサービス停止攻撃 (Denial of Service Attack) のアラートを管理者に通知する、カスタマイズできるスクリプトを起動するユーザー出口を提供します。
Dispatcher は、次のサンプル・スクリプト・ファイルを ...nd/servers/samples ディレクトリーに提供しています。
このファイルを実行するためには、それらのファイルを ...nd/servers/bin ディレクトリーに移動して、".sample" ファイル拡張子を除去しなければなりません。
DoS 攻撃検出をインプリメントするには、maxhalfopen パラメーターを ndcontrol port コマンドで次のように設定します。
ndcontrol port set 127.40.56.1:80 maxhalfopen 1000
前述の例では、Dispatcher はハーフ・オープンの現在の合計接続数 (ポート 80 のクラスター 127.40.56.1 にあるすべてのサーバー) としきい値 1000 (maxhalfopen パラメーターによって指定) を比較します。現在の ハーフ・オープン接続数がこのしきい値を超えると、アラート・スクリプト (halfOpenAlert) への呼び出しが行われます。ハーフ・オープン接続数がこのしきい値を下回っていると、攻撃は終了していることを示すために、別のアラート・スクリプト (halfOpenAlertDone) への呼び出しが行われます。
maxhalfopen 値を判別する方法を判別する場合: ユーザー・サイトが通常から大量トラフィックへの変化を経験しつつあるときに、定期的に (多分、10 分ごとに) ハーフ・オープン接続報告 (ndcontrol port halfopenaddressreport cluster:port) を実行します。ハーフ・オープン接続報告は、現在の「合計受信ハーフ・オープン接続数」を戻します。 maxhalfopen は、ユーザー・サイトで経験しているハーフ・オープン接続の最大数より 50% から 200% は大きい値に設定する必要があります。
報告される統計データの他に、halfopenaddressreport は、ハーフ・オープン接続になったサーバーにアクセスしたクライアント・アドレス (最大約 8000 個までのアドレスのベア) すべてのログ (..nd/servers/logs/dispatcher/halfOpen.log) 中に項目を生成します。
バックエンド・サーバーのサービス停止攻撃からの追加保護を提供するために、ワイルドカード・クラスターおよびポートを構成できます。特に各構成済みクラスターの下にサーバーを使用しないワイルドカード・ポートを追加してください。また、ワイルドカード・ポートがあってサーバーがないワイルドカード・クラスターも追加してください。これには、非ワイルドカード・クラスターおよびポートを扱わないすべてのパケットを廃棄する効果があります。ワイルドカード・クラスターおよびワイルドカード・ポートに関する詳細については、 ワイルドカード・クラスターを使用したサーバー構成の結合 および ワイルドカード・ポートを使用した未構成ポート通信の送信を参照してください。
バイナリー・ログ機能を使用すれば、サーバー情報をバイナリー・ファイルに保管することができます。
これらのファイルを処理して、ある時間にわたって収集されたサーバー情報を分析することができます。
以下の情報が、構成で定義されたサーバーごとのバイナリー・ログに保管されます。
この情報には、manager サイクルの一部として executor から取得されるものもあります。したがって、情報をバイナリー・ログに記録するために、manager が実行されていなければなりません。
ndcontrol log コマンド・セットを使用して、バイナリー・ログ記録を構成します。
start オプションは、ログ・ディレクトリーにあるバイナリー・ログへのサーバー情報の記録を開始します。ログは、毎時 0 分にその日時をファイル名として作成されます。
stop オプションは、バイナリー・ログへのサーバー情報の記録を停止します。ログ・サービスは、デフォルトによって停止しています。
set interval オプションは、情報がログに書き込まれる頻度を制御します。manager はサーバー情報を manager 間隔ごとにログ・サーバーへ送信します。 情報は、最後にログにレコードが書き込まれてから指定した秒数の経過後にログに書き込まれます。 デフォルトでは、ログ記録間隔は 60 秒に設定されています。manager 間隔とログ記録間隔の設定の間には、相関関係があります。ログ・サーバーは manager 間隔秒数以下の速度で情報を提供するので、manager 間隔より短いログ記録間隔を設定しようとしても、実際には manager 間隔と同じ値に設定されます。このログ記録方法によって、サーバー情報を取り込む頻度を任意に細分化することができます。サーバーの重みを計算するために、manager によって確認されるサーバー情報に対する変更をすべて取り込むことができます。ただし、おそらく、この情報は、サーバーの使用および傾向の分析に必要ではありません。60 秒ごとにサーバー情報をログ記録すると、時間の経過とともにサーバー情報のスナップショットがとられます。ログ記録間隔を非常に低く設定すると、膨大な量のデータが生成される場合があります。
set retention オプションは、ログ・ファイルが保持される期間を制御します。指定した保存時間よりも古いログ・ファイルは、ログ・サーバーによって削除されます。これは、ログ・サーバーが manager によって呼び出されている場合にのみ行われるので、manager が停止していると古いログ・ファイルでも削除されません。
status オプションは、ログ・サービスの現行の設定を戻します。これらの設定は、サービスが開始されているかどうか、間隔、および保存時間です。
サンプル Java プログラムおよびコマンド・ファイルは、...nd/servers/samples/BinaryLog ディレクトリーに提供されています。このサンプルは、ログ・ファイルからすべての情報を検索して画面に出力する方法を示します。カスタマイズすると、データについて必要な種類の分析を行うことができます。 Dispatcher に提供されているスクリプトおよびプログラムの使用例を以下に示します。
ndlogreport 2001/05/01 8:00 2001/05/01 17:00
これによって、 2001 年 5 月 1 日の午前 8:00 から午後 5:00 までの Dispatcher コンポーネント・サーバー情報の報告書が得られます。 (CBR の場合は cbrlogreport を使用します。 Mailbox Locator の場合は mllogreport を使用します。 Cisco Consultant の場合は lbclogreport を使用します。)
Cisco Consultant において、Cisco CSS スイッチ は Dispatcher コンポーネントの executor によって行われるタスクを実行します。サーバーごとの現行重みおよびその計算に必要なその他の情報の一部と一緒に、manager は活動中の接続および新規接続の値を Cisco CSS スイッチ から得ます。これらの値は、Cisco CSS スイッチ の内部で生成、保管された情報を基本としています。
Cisco Consultant は、Cisco CSS スイッチ 管理情報ベース (MIB) を照会して、活動中の接続および新規接続の活動を得て、以下を受け取ります。
apSvcConnections OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current DESCRIPTION "The current number of TCP connections to this service" DEFVAL { 0 } --DEFAULT ap-display-name Service Connections ::= {apSvcEntry 20}
apSvcConnections オブジェクト ID は、次の通りです。
1.3.6.1.4.1.2467.1.15.2.1.20
活動中の接続の数は、ロード・バランシングされたサーバー・マシンによって提供されるサービスを使用するために必要な時間の長さの他に、クライアントの数にも依存します。クライアント接続が (HTTP GET を使用して提供される小さな Web ページのように) 高速であれば、活動状態の接続の数ははっきりと低くなります。クライアント接続が (データベース照会のように) 低速であれば、活動中の接続の数は一段と高くなります。
この変数の索引は、次の通りです。
INDEX { apCntsvcOwnName, apCntsvcCntName, apCntsvcSvcName }
以下は MIB 項目です。
apCntsvcHits OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current DESCRIPTION "Total number of flows placed onto this service for this content rule." DEFVAL { 0 } --DEFAULT ap-display-name Hits --DEFAULT apjam-popup-ref apCntSvcInst, Statistics --DEFAULT apjam-chart-def cntSvcHitsChart, pie, apCntInst, "Hit Information Per Service: --DEFAULT apjam-chart-item cntSvcHitsChart, getnext, apCntsvcSvcName ::= {apSvcEntry 20}
apCntsvcHits オブジェクト IDは、次の通りです。
1.3.6.1.4.1.2467.1.18.2.1.4
Cisco CSS スイッチ は重み付けされたラウンドロビン・ロード・バランシングを使用するように構成されていなければなりません。これを実行する方法については、 Content Services Switch Basic Configuration Guide の「重みの構成」を参照してください。
重みは Cisco CSS スイッチ 内の内部カウンターならびに advisors および メトリック・サーバー からのフィードバックを基にして manager 機能によって設定されます。manager の実行中に重みを手作業で設定したい場合は、fixedweight オプションを lbccontrol server コマンドに指定してください。
サーバーがすべてダウンの場合は、重みはすべてゼロです。このような場合は、重みがすべてゼロなので、どのサーバーも要求を処理していないときは、重みは weightbound の 1/2 に設定されて、使用できるすべてのサーバーからの要求処理の機会を均等にできるようにします。モニターには真の重み値のゼロが表示されます。しかし、Cisco Consultant には、その他のすべての場所に weightbound の 1/2 の重みが表示されます。
重みは SNMP を使用して Cisco CSS スイッチ に送信されます。 Cisco Consultant は svcExt.mib に apSvcWeight を設定します。以下は apSvcWeight 項目です。
apSvcWeight OBJECT-TYPE SYNTAX Integer 32(1..10) MAX-ACCESS read-create STATUS current DESCRIPTION "The service weight which is used in conjunction with load metrics when making load allocation decisions. The weight may be used to bias flows towards the specified service." DEFVAL { 1 } --DEFAULT ap-display-name Service Weight --DEFAULT apjam-popup-ref apServicesGroupInst, Properties, Advanced --DEFAULT apjam-wizard-field 2, normal ::= {apSvcEntry 16}
apSvcWeight オブジェクト ID は、次の通りです。
1.3.6.1.4.1.2467.1.15.2.1.12
重みは、サーバー上のすべてのポートに適用されます。特定ポートについて、要求は相互に相対的な重みに基づいてサーバー間で分散されます。たとえば、一方のサーバーが 10 の重みに設定され、他方が 5 に設定されると、10 に設定されたサーバーは 5 に設定されたサーバーの 2 倍の要求を得るはずです。
すべてのサーバーに指定できる最大の重み境界を指定するには、lbccontrol port set weightbound コマンドを使用してください。このコマンドは、各サーバーが得る要求数の差異を指定します。最大重みを 1 に設定すると、サーバーのすべてには重み 1、中断状態の場合は重み 0、あるいはダウンとマークされている場合は重み -1 を指定できます。この数を増やすと、サーバーに重み付けされている差異が増加します。最大重みが 2 になっていると、1 つのサーバーはもう 1 つの 2 倍の要求を得ることができます。
advisor はサーバーがオフラインになっていることを確認すると、 manager に通知し、その manager はそのサーバーの重みをゼロに設定します。サーバーの重みがゼロより大になっていると、その重みが Cisco CSS スイッチ に送信し、そのサーバーは活動状態になります。しかし、サーバーの重みがゼロ以下になっていると、サーバーは中断状態です。サービスの活動化および中断は、Cisco CSS スイッチ svcExt.mib の apSvcEnable MIB 変数を設定することによって実行されます。以下は、apSvcEnable MIB 項目です。
apSvcEnable OBJECT-TYPE SYNTAX Integer disable(0) enable(1) MAX-ACCESS read-create STATUS current DESCRIPTION "The state of the service, either enabled or disabled." DEFVAL { disable } --DEFAULT ap-display-name Status --DEFAULT apjam-popup-ref apServicesGroupInst, Properties --DEFAULT apjam-wizard-field 2, normal ::= {apSvcEntry 12}
apSvcEnable オブジェクト ID は、次の通りです。
1.3.6.1.4.1.2467.1.15.2.1.16
この章では Network Dispatcher の操作および管理方法について説明しています。この章には以下のセクションが含まれています。
Network Dispatcher は、Network Dispatcher サーバーを実行するマシン以外のマシンでその構成プログラムを実行するためのオプションを提供します。
構成プログラム (ndcontrol、 cbrcontrol、 mlcontrol、 sscontrol、 lbccontrol、 ndwizard、 cbrwizard、 mlwizard、 sswizard、 ndadmin) 間の通信は、 Java リモート・メソッド呼び出し (RMI) の呼び出しを使用して実行されます。
リモート管理のために Network Dispatcher マシンに接続するコマンドは、ndcontrol host:remote_host です。RMI 呼び出しがローカル・マシン以外のマシンから行われた場合は、公開鍵と秘密鍵の認証シーケンスを行わなければ、構成コマンドは受信されません。
コンポーネント・サーバーと同じマシンで実行する制御プログラムの間の通信は認証されません。
以下のコマンドを使用して、リモート認証に使用する公開鍵および秘密鍵を生成します。
このコマンドを実行できるのは、 Network Dispatcher と同じマシン上だけです。
create オプションを使用すると、それぞれの Network Dispatcher コンポーネントごとにサーバー鍵ディレクトリー (...nd/servers/key/) の公開鍵を作成し、管理鍵ディレクトリー (...nd/admin/keys/) の秘密鍵を作成します。秘密鍵のファイル名は component-ServerAddress-RMIport です。これらの秘密鍵は、リモート・クライアントに移送して、管理鍵ディレクトリーに入れなければなりません。
各コンポーネントにデフォルト RMI ポートを使用するホスト名 10.0.0.25 の Network Dispatcher マシンの場合には、 ndkeys create コマンドが以下のファイルを生成します。
管理ファイル・セットは、別のマシンにインストールされています。秘密鍵ファイルは、リモート・クライアント・マシンの .../nd/admin/keys ディレクトリーに入っていなければなりません。
これでリモート・クライアントに対して 10.0.0.25 における Network Dispatcher の構成が許可されます。
10.0.0.25 にある Network Dispatcher の構成を許可するすべてのリモート・クライアントでは、これらの同じ鍵を使用しなければなりません。
ndkeys create コマンドを再度実行すると、公開鍵と秘密鍵の新しいセットが生成されます。つまり、以前の鍵を使用して接続しようとしたすべてのリモート・クライアントが許可されなくなります。新しい鍵は、再度許可するこれらのクライアントの正しいディレクトリーに入れなければなりません。
ndkeys delete コマンドは、サーバー・マシンにある公開鍵および秘密鍵を削除します。これらの鍵が削除されると、リモート・クライアントはサーバーへの接続を許可されなくなります。
ndkeys create と ndkeys delete の両方の場合に、force オプションがあります。 force オプションは、既存の鍵を上書きするか、あるいは削除するかを尋ねるコマンド・プロンプトを抑止します。
Network Dispatcher は、サーバー・ログ、 manager ログ、メトリック・モニター・ログ (メトリック・サーバー・エージェントでのロギング通信)、および使用する各 advisor のログに項目を追加します。
ログ・レベルを設定して、ログに書き込まれるメッセージの増え方を定義することができます。レベル 0 では、エラーが記録されて、 Network Dispatcher は一度だけ発生したイベント (たとえば、manager ログに書き込まれ始めた advisor に関するメッセージ) のヘッダーとレコードも記録します。レベル 1 には継続中の情報などが組み込まれ、レベル 5 には必要に応じて生成される問題のデバッグに役立つメッセージが組み込まれます。サーバー・ログのデフォルトは 0 です。 manager、 advisor、およびサブエージェントのログのデフォルトは 1 です。
ログの最大サイズも設定することができます。ログ・ファイルに最大サイズを設定すると、ファイルは循環します。つまり、ファイルが指定サイズに達すると、次の入力がファイルの最上部に書き込まれ、前のログ入力を上書きします。ログ・サイズを現行サイズより小さい値に設定することができません。ログ項目にはタイム・スタンプが記されるため、書き込まれた順序が分かります。
ログ・レベルの設定が高いほど、ログ・サイズの選択には注意を要します。レベル 0 では、ログ・サイズをデフォルトの 1MB のままにおくと安全です。ただし、レベル 3 以上でログ記録するときには、小さ過ぎて役に立たなくならない程度にサイズを制限する必要があります。
デフォルトでは、 Network Dispatcher によって生成されるログは、 Network Dispatcher インストールのログ・ディレクトリーに保管されます。このパスを変更するには、 ndserver スクリプトで nd_logdir 変数を設定してください。
AIX、 Linux、および Solaris: ndserver スクリプトは /usr/bin ディレクトリーに入っています。このスクリプトでは、変数 nd_logdir はデフォルトのディレクトリーに設定されます。この変数を変更して、ログ・ディレクトリーを指定することができます。たとえば、以下のようになります。
ND_LOGDIR=/path/to/my/logs/
Windows 2000: ndserver ファイルは Windows 2000 システム・ディレクトリー (通常は C:¥WINNT¥SYSTEM32) に入っています。 ndserver ファイルでは、変数 nd_logdir はデフォルト・ディレクトリーに設定されています。この変数を変更して、ログ・ディレクトリーを指定することができます。たとえば、以下のようになります。
set ND_LOGDIR=c:¥path¥to¥my¥logs¥
すべてのオペレーティング・システムにおいて、等号の両側にはスペースを置かず、パスが (必要に応じて) スラッシュ (/) または円記号 (¥) で終了していなければなりません。
Network Dispatcher のバイナリー・ログ機能は、他のログ・ファイルと同じログ・ディレクトリーを使用します。バイナリー・ログを使用したサーバー統計の分析 を参照してください。
このセクションは、 Dispatcher コンポーネントの操作および管理方法について説明しています。
Network Dispatcher では、ステイル・タイムアウトに指定された秒数の間にその接続で活動がなかった場合は、接続は期限切れと見なされます。アクティビティーなしでその秒数を過ぎると、 Network Dispatcher はその接続レコードをテーブルから除去し、その接続での後続のトラフィックは廃棄されます。
たとえばポート・レベルでは、 ndcontrol port set staletimeout コマンドでステイル・タイムアウト値を指定できます。
ステイル・タイムアウトは、 executor、クラスター、およびポート・レベルで設定できます。 executor レベルおよびクラスター・レベルでは、デフォルトは 300 秒であり、そのポートにフィルター掛けします。ポート・レベルでは、デフォルトはポートに依存します。ポートの定義によって、デフォルトのステイル・タイムアウト値は異なります。たとえば、 Telnet ポート 23 のデフォルトは 32,000,000 秒です。
また、サービスによっては、独自のステイル・タイムアウトとなることもあります。たとえば LDAP (Lightweight Directory Access Protocol) には idletimeout と呼ばれる構成パラメーターがあります。 idletimeout の秒数が過ぎると、アイドル中のクライアント接続は強制的にクローズされます。また、 Idletimeout を 0 に設定すると、接続は強制的にクローズされることがなくなります。
接続問題は、 Network Dispatcher のステイル・タイムアウト値がサービスのタイムアウト値より小さいときに起こることがあります。 LDAP の場合には、 Network Dispatcher ステイル・タイムアウト値のデフォルトは 300 秒です。接続において 300 秒間アクティビティーがないと、 Network Dispatcher はテーブルから接続レコードを除去します。 idletimeout 値が 300 秒より大きい (または 0 に設定されている) 場合には、クライアントはサーバーとの接続がまだ保たれていると考えます。クライアントがパケットを送信すると、そのパケットは Network Dispatcher によって廃棄されます。これが、サーバーに対して要求すると LDAP の停止を引き起こすことになります。この問題を避けるには、 LDAP idletimeout を Network Dispatcher ステイル・タイムアウト値以下の非ゼロ値に設定してください。
クライアントは、そのパケットをすべて送信した後に、FIN パケットを送信し、サーバーがトランザクションの終了を認識するようにします。Dispatcher は、FIN パケットを受信すると、そのトランザクションに活動状態から FIN 状態へのマークを付けます。トランザクションに FIN のマークが付けられると、その接続に予約されたメモリーは、executor に組み込まれたガーベッジ・コレクターによっていつでもクリアできます。
executor がガーベッジ・コレクションを行う頻度と、その量を設定するには、FIN タイムアウトおよびカウントを使用することができます。executor は、割り振った接続のリストを定期的にチェックします。FIN 状態の接続の数が FIN カウント以上であると、executor は、その接続情報の保持に使用するメモリーを解放しようとします。FIN カウントは、ndcontrol executor set fincount コマンドを入力して変更することができます。
ガーベッジ・コレクターは、FIN 状態にあって、FIN タイムアウトで指定された秒数より時間がかかっている接続のメモリーを解放します。FIN タイムアウトは、ndcontrol executor set fintimeout コマンドを入力して変更することができます。
このステイル・タイムアウト値は、接続上で活動がなくなってから接続が解除されるまでの秒数です。詳細については、 ステイル・タイムアウト値の使用を参照してください。FIN カウントは、"期限切れ" 接続を取り外す頻度に影響します。Dispatcher マシンでのメモリーがほとんどない場合は、FIN カウントを下げる必要があります。Web サイトが活動中の場合は、 FIN カウントを上げる必要があります。
各種の図表は、executor からの情報を基にして表示して、manager に中継できます。 (GUI モニター・メニュー・オプションでは、manager 機能が実行中であることがM必要です):
ネットワーク管理システムは断続的に実行されるプログラムであり、ネットワークのモニター、状況の反映、および制御に使用されます。Simple Network Management Protocol (SNMP) はネットワーク内の装置と通信するための一般的なプロトコルであり、現在のネットワーク管理の標準となっています。ネットワーク装置は、通常は SNMP エージェント と、1 つまたは複数のサブエージェントを持ちます。SNMP エージェントは、ネットワーク管理ステーション と通信するか、コマンド行 SNMP 要求に応答します。SNMP サブエージェント は、データを取得および更新し、そのデータを SNMP エージェントに提供して要求側に戻します。
Dispatcher は SNMP 管理情報ベース (ibmNetDispatcherMIB) および SNMP サブエージェントを提供します。これによって、Tivoli NetView、Tivoli Distributed Monitoring、または HP OpenView などの任意のネットワーク管理システムを使用して、Dispatcher の状態、スループットおよび活動をモニターすることができます。 MIB データは、管理している Dispatcher について記述するものであり、現在の Dispatcher の状況を反映しています。MIB は ..nd/admin/MIB サブディレクトリーにインストールされています。
ネットワーク管理システムは、SNMP GET コマンドを使用して他のマシンの MIB 値を調べます。指定されたしきい値を超えた場合は、ユーザーに通知します。その後、Dispatcher の構成データを変更することによって Dispatcher のパフォーマンスに影響を与え、Dispatcher の問題が Dispatcher や Web サーバーの障害に至る前に未然に調整または修正を行うことができます。
システムによって、通常、ネットワーク管理ステーションごとに 1 つの SNMP エージェントが提供されます。ユーザーは SNMP エージェントに GET コマンドを送信します。次に、この SNMP エージェントも GET コマンドを送信して、これらの MIB 変数を管理するサブエージェントから、指定の MIB 変数を取得します。
Dispatcher は、MIB データの更新および取得を行うサブエージェントを提供します。SNMP エージェントが GET コマンドを送信すると、サブエージェントは適切な MIB データで応答します。SNMP エージェントは、このデータをネットワーク管理ステーションに送信します。ネットワーク管理ステーションは、指定されたしきい値を超えた場合にはユーザーに通知することができます。
Dispatcher SNMP サポートには、分散プロトコル・インターフェース (DPI) 機能を使用する SNMP サブエージェントが含まれます。DPI は、SNMP エージェントとそのサブエージェントの間のインターフェースです。
図 28. AIX および Solaris の SNMP コマンド
AIX は、 SNMP Multiplexer プロトコル (SMUX) を使用する SNMP エージェントと、 DPI および SMUX 間の変換機能として機能する追加の実行可能プログラムである DPID2 を提供します。
Solaris の場合は SMUX 可能な SNMP エージェントを得る必要があります。これは Solaris では提供されないためです。 Network Dispatcher では、 /opt/nd/servers/samples/SNMP ディレクトリーに Solaris 用の DPID2 が入っています。
DPI エージェントは、root ユーザーとして実行しなければなりません。 DPID2 デーモンを実行する前に、以下のように /etc/snmpd.peers ファイルおよび /etc/snmpd.conf ファイルを更新してください。
"dpid2" 1.3.6.1.4.1.2.3.1.2.2.1.1.2 "dpid_password"
smux 1.3.6.1.4.1.2.3.1.2.2.1.1.2 dpid_password #dpid
snmpd をリフレッシュして、 /etc/snmpd.conf ファイルを再読み取ります。
refresh -s snmpd
DPID SMUX 対等機能を開始します。
dpid2
このデーモンは、以下の順序で開始しなければなりません。
図 29. Windows 2000 の SNMP コマンド
Windows 2000 用の DPI 対応の SNMP エージェントを入手するには、 IBM SystemView Agent ツールキットの Windows NT バージョンを http://www.tivoli.com/support/sva からインストールします。
SystemView SNMPD のプロセスを開始する前に、Microsoft Windows SNMP サポートを使用不可にしなければなりません。 SystemView snmpd は、DPI サブエージェントおよび Microsoft 対応のエージェントをサポートしています。
Windows SNMP サポートを使用不可にするには、以下を実行します。
SystemView SNMP エージェントを構成するには、SNMP のコミュニティー名の提供の手順に従ってください。
SNMP コミュニティー名を構成する必要があります。 デフォルトの SNMP コミュニティー名は public です。UNIX システムでは、この名前は /etc/snmpd.conf という名前のファイルで設定されます。
すべてのシステム上で、コミュニティー名を構成して使用する必要があります。つまり、 Network Dispatcher のコミュニティー名が SNMP エージェント構成で "OurCommunity" に設定されている場合は、サブエージェント構成でも "OurCommunity" に設定されていなければなりません。
Windows 2000 の場合は、コミュニティー名を作成する前に、 IBM SystemView SNMP エージェントを構成します。
このステップによって、どのネットワークのどのホストからでも SNMP MIB 変数をアクセスできるようになります。これらの値で機能することを確認すると、要件に従って変更できます。
executor 実行では、 ndcontrol subagent start [communityname] コマンドを使用して、 Dispatcher DPI サブエージェントおよび SNMP エージェント間で使用されるコミュニティー名を定義します。コミュニティー名のデフォルトは public です。この値を変更する場合は、上記のように snmpcfg を使用して SystemView Agent に新しいコミュニティー名を追加しなければなりません。
SNMP は、しきい値に達したなど、管理されている装置が例外条件または重要なイベントの発生を報告するために送信するメッセージとして トラップ を送受信することによって通信します。
サブエージェントは以下のトラップを使用します。
indHighAvailStatus トラップは、high availability 状況の状態変数 (hasState) の値が変化したことを通知します。hasState の可能な値は以下のとおりです。
indSrvrGoneDown トラップは、オブジェクト ID の csAddr、psNum、ssAddr の各部分で指定されるサーバーの重みがゼロになったことを通知します。トラップでは、最終的に既知であったサーバーの活動状態の接続の数が送信されます。このトラップは、Dispatcher が判別できる限り、指定のサーバーが終了していることを示します。
indDOSAttack トラップは、 numhalfopen (SYN パケットだけが構成するハーフ・オープン接続数) がオブジェクト ID の csAddr、 psNum 部分によって指定されたポートの maxhhalfopen しきい値を超えたことを示します。ポート上で構成されたサーバー数がトラップで送信されます。このトラップは、 Network Dispatcher がサービス停止攻撃を予期していることを示しています。
indDOSAttackDone トラップは、 numhalfopen (SYN パケットだけが構成するハーフ・オープン接続数) がオブジェクト ID の csAddr、 psNum 部分によって指定されたポートの maxhalfopen しきい値を下回ったことを示します。ポート上で構成されたサーバー数がトラップで送信されます。 Network Dispatcher がサービス停止攻撃の可能が終了したことを判別すると、 indDOSAttack トラップが送信された後にこのトラップが送信されます。
SMUX API での制限により、ibmNetDispatcher のエンタープライズ ID 1.3.6.1.4.1.2.6.144 の代わりに、ibmNetDispatcher サブエージェントからのトラップで報告されたエンタープライズ ID が dpid2 のエンタープライズ ID である場合があります。ただし、データに ibmNetDispatcher MIB 内からのオブジェクト ID が含まれるため、SNMP 管理ユーティリティーはトラップの送信元を判別することができます。
ndcontrol subagent start コマンドは、SNMP サポートをオンにします。ndcontrol subagent stop コマンドは、SNMP サポートをオフにします。
ndcontrol コマンドに関する詳細については、ndcontrol subagent -- SNMP サブエージェントの構成を参照してください。
Linux カーネルへの組み込みは ipchains と呼ばれるファイアウォール機能の 1 つです。 Network Dispatcher と ipchains を並行して実行すると、Network Dispatcher が最初にパケットを読み取り、次に ipchains が続きます。これにより、ipchains を使用すると、Linux Network Dispatcher (たとえば、ファイアウォールをロード・バランシングするために使用される Network Dispatcher ボックスとすることができる) を強化できます。
ipchains または iptables が完全に制限される (インバウンドまたはアウトバウンド・トラフィックが許可されない) ように構成されていると、Network Dispatcher のパケット転送部分は正常に機能しつづけます。
ipchains および iptables は、ロード・バランシング前に着信トラフィックをフィルターに掛けるためには使用できない ことに注意してください。
Network Dispatcher のすべてが正しく機能するためには、追加トラフィックがいくらかは許可されていなければなりません。この通信のいくつかの例は、次のとおりりです。
一般に、Network Dispatcher ボックスについての適正な ipchains ストラテジーは、トラフィックのすべて (バックエンド・サーバー、パートナー high availability Network Dispatcher、すべてのリーチ・ターゲット、またはすべての構成ホストとの間のトラフィックを除く) を認可しないことにあります。
このセクションでは、 Network Dispatcher の CBR コンポーネントの操作および管理方法について説明します。
CBR および Caching Proxy は、 Caching Proxy プラグイン API を介して、 HTTP および HTTPS (SSL) の要求を共同で処理します。 CBR に対してサーバーのロード・バランシングを開始するには、 Caching Proxy は同じマシン上で実行している必要があります。 CBR と Caching Proxy を CBR 構成の例 の説明に従ってセットアップしてください。
CBR の開始後に、以下の方式のいずれかを使用して制御できます。
CBR が使用するログは、Dispatcher で使用されるログに類似しています。詳細については、 Network Dispatcher ログの使用を参照してください。
Mailbox Locator の開始後に、以下の方式のいずれかを使用して制御できます。
Mailbox Locator が使用するログは、Dispatcher で使用されるログに類似しています。詳細については、Network Dispatcher ログの使用を参照してください。
Site Selector の開始後に、以下の方式のいずれかを使用して制御できます。
Site Selector が使用するログは、Dispatcher で使用されるログに類似しています。詳細については、Network Dispatcher ログの使用を参照してください。
Cisco Consultant の開始後に、以下の方式のいずれかを使用して制御できます。
Cisco Consultant が使用するログは、Dispatcher で使用されるログに類似しています。詳細については、Network Dispatcher ログの使用を参照してください。
メトリック・サーバーは Network Dispatcher にサーバー・ロード情報を提供します。メトリック・サーバーは、ロード・バランシングされている各サーバー上に常駐します。
メトリック・サーバー開始スクリプトのログ・レベルを変更します。 Network Dispatcher ログでのログ・レベル範囲と同様に、ログ・レベルの範囲は 0 〜 5 に指定できます。これにより、 ...ms/logs ディレクトリーにエージェント・ログが生成されます。
この章は、Network Dispatcher に関連する問題の検出と解決に役立ちます。起こっている症状を障害追及の表で探してください。
以下は Dispatcher、 CBR、 Mailbox Locator、 Site Selector、および Consultant for Cisco CSS Switches の障害追及です。
症状 | 考えられる原因 | 参照箇所 |
---|---|---|
Dispatcher が正常に実行されない | ポート番号が競合している | Dispatcher ポート番号のチェック |
連結されたサーバーを構成したが、ロード・バランシング要求に応答しない | アドレスが誤っているか競合している | 問題: Dispatcher およびサーバーが応答しない |
クライアント・マシンからの接続がサービスを受けていない、あるいは接続がタイムアウトである |
| 問題: Dispatcher 要求が平衡化されない |
クライアント・マシンにサービスが提供されていないか、タイムアウトになっている | high availability が機能しない | 問題: Dispatcher high availability 機能が機能しない |
heartbeat を追加できない (Windows 2000) | アダプターに送信元アドレスが構成されていない | 問題: heartbeat を追加できない (Windows 2000) |
サーバーが要求に対するサービスを提供しない (Windows) | エクストラ経路が経路指定テーブルに作成されている | 問題: エクストラ経路 (Windows 2000) |
advisor が広域で正しく機能しない | advisor がリモート・マシンで実行されていない | 問題: advisor が正しく機能しない |
SNMPD が開始されない。または実行が継続されない (Windows 2000) | SNMP コマンドで渡されたコミュニティー名が、サブエージェントが開始されたコミュニティー名と一致していない | 問題: SNMPD が正しく実行されない (Windows 2000) |
Dispatcher、Microsoft IIS、および SSL が機能しない、または続行しない | 暗号化されたデータをプロトコルを介して送信できない | 問題: Dispatcher、Microsoft IIS、および SSL が機能しない (Windows 2000) |
リモート・マシンへの接続が拒否された | 古いバージョンのキーがまだ使用されている | 問題: リモート・マシンへの Dispatcher 接続 |
ndcontrol コマンドまたは ndadmin コマンドが失敗し、'サーバーが応答していません。' または ' RMI サーバーにアクセスできません。' メッセージが表示された |
| 問題: ndcontrol コマンドまたは ndadmin コマンドが失敗する |
オンライン・ヘルプを表示するデフォルト・ブラウザーとして Netscape を実行すると、 "Cannot Find the File..." エラー・メッセージが表示される (Windows 2000) | HTML ファイルの関連付けの設定が誤っている | 問題: オンライン・ヘルプを表示しようとすると、 Cannot find the file... エラー・メッセージが表示される (Windows 2000) |
Solaris 2.7 で ndserver を開始すると、 "stty: : No such device or address" エラー・メッセージが表示される | このエラー・メッセージは無視してください。これは障害ではありません。 Ndserver は正しく実行されます。 | 問題: Solaris 2.7 において ndserver 開始時に偽エラー・メッセージ |
グラフィカル・ユーザー・インターフェースが正しく開始されない | 不適当なページング・スペース | 問題: グラフィカル・ユーザー・インターフェース (GUI) が正しく開始されない |
問題: Caching Proxy がインストールされた Dispatcher の実行のエラー | Caching Proxy ファイル依存関係 | 問題: Caching Proxy がインストールされた Dispatcher の実行のエラー |
グラフィカル・ユーザー・インターフェースが正しく表示されない | レゾリューションが誤りである | 問題: グラフィカル・ユーザー・インターフェース (GUI) が正しく表示されない |
ヘルプ・パネルが他のウィンドウの背後に隠れて見えなくなることがある | Java 制限 | 問題: Windows 2000 においてヘルプ・ウィンドウが他のウィンドウの背後に隠れて見えなくなることがある |
Network Dispatcher がフレームを処理および転送できない | 各 NIC に対して固有の MAC アドレスが必要 | 問題: Network Dispatcher がフレームを処理および転送できない |
青い画面が表示される | ネットワーク・カードがインストールおよび構成されていない | 問題: Network Dispatcher executor を開始すると青い画面が表示される |
Discovery へのパスが戻りトラフィックを妨げる | クラスターがループバック上で別名割り当てされる | 問題: Discovery へのパスが Network Dispatcher での戻りトラフィックを妨げる |
Advisor がすべてのサーバーのダウンを示す | TCP チェックサムが正常に計算されない | 問題: Advisors がすべてのサーバーのダウンを示す |
Network Dispatcher の広域モードで high availability が動作しない | Remote Dispatcher をローカル Dispatcher 上のクラスターにおいてサーバーとして定義する必要がある | 問題: Network Dispatcher の広域モードで high availability が動作しない |
大きい構成ファイルをロードしようとしているときに GUI がハングする (あるいは予期しない振る舞い) | Java には、GUI に対するこのように大きな変更を処理するために十分なメモリーへのアクセス権がない。 | 問題: 大きい構成ファイルをロードしようとしているときに GUI がハングする (あるいは予期しない振る舞い) |
症状 | 考えられる原因 | 参照箇所 |
CBR が正常に実行されない | ポート番号が競合している | CBR ポート番号のチェック |
cbrcontrol コマンドまたは ndadmin コマンドが失敗し、「サーバーが応答していません。」または「RMI サーバーにアクセスできません。」メッセージが表示された | コマンドは socks 化スタックが原因で失敗する。あるいは、コマンドは cbrserver の未始動が原因で失敗する。 | 問題: cbrcontrol または ndadmin コマンドが失敗する |
要求がロード・バランシングされない | executor の開始前に Caching Proxy が開始された | 問題: 要求がロード・バランシングされない |
Solaris において cbrcontrol executor start コマンドがメッセージ「エラー: executor が開始されていませんでした。」を出して失敗した | コマンドは、システム IPC デフォルトを変更する必要があると考えられるので失敗する | 問題: Solaris において cbrcontrol executor start コマンドが失敗する |
URL ルールが機能しない | 構文エラーまたは構成エラー | 問題: 構文エラーまたは構成エラー |
症状 | 考えられる原因 | 参照箇所 |
Mailbox Locator が正常に実行されない | ポート番号が競合している | Mailbox Locator ポート番号のチェック |
mlserver コマンドが "java.rmi.RMI Security Exception: security.fd.read" 例外を戻す | mlserver がサービスを提供する要求数に対して、ファイル記述子に関するシステムの限界が小さ過ぎる | 問題: mlserver コマンドが停止する |
mlcontrol コマンドまたは ndadmin コマンドが失敗し、「サーバーが応答していません。」または「RMI サーバーにアクセスできません。」メッセージが表示された | コマンドは socks 化スタックが原因で失敗する。または mlserver の未始動が原因でコマンドが失敗する | 問題: mlcontrol または ndadmin コマンドが失敗する |
ポートを追加できない | 別のアプリケーションがそのポートに対してすでに listen している | 問題: ポートを追加できない |
ポートを追加しようとすると、プロキシー・エラーを受け取る | プロキシーを開始する前に NIC にクラスター・アドレスが構成されていなかった、あるいは別のアプリケーションがそのポート上で実行されている | 問題: ポートを追加しようとすると、プロキシー・エラーを受け取る |
症状 | 考えられる原因 | 参照箇所 |
---|---|---|
Site Selector が正常に実行されない | ポート番号の競合 | Site Selector ポート番号のチェック |
Site Selector が Solaris クライアントからの着信要求をラウンドロビンしない | Solaris システムが「ネーム・サービス・キャッシュ・デーモン」を実行する | 問題: Site Selector が Solaris クライアントからのトラフィックをラウンドロビンしない |
sscontrol コマンドまたは ndadmin コマンドが失敗し、「サーバーが応答していません。」または「RMI サーバーにアクセスできません。」メッセージが表示された | コマンドは socks 化スタックが原因で失敗する。または ssserver の未始動が原因でコマンドが失敗する | 問題: sscontrol コマンドまたは ndadmin コマンドが失敗する |
ssserver は Windows 2000 での開始に失敗している | Windows では、DNS にホスト名が入っている必要はない。 | 問題: ssserver が Windows 2000 での開始に失敗しつつある |
複製経路のあるマシンが正しくロード・バランシングされず、ネーム・レゾリューションの表示に失敗する | 複数アダプターのある Site Selector マシンが同じサブネットに接続されている | 問題: 重複経路のある Site Selector が正しくロード・バランシングされない |
表 18. Consultant for Cisco CSS Switches の障害追及の表
症状 | 考えられる原因 | 参照箇所 |
---|---|---|
lbcserver が開始されない | ポート番号が競合している | Cisco Consultant ポート番号のチェック |
lbccontrol コマンドまたは ndadmin コマンドが失敗し、「サーバーが応答していません。」または「RMI サーバーにアクセスできません。」メッセージが表示された | コマンドは socks 化スタックが原因で失敗する。または lbcserver の未始動が原因でコマンドが失敗する | 問題: lbccontrol または ndadmin コマンドが失敗する |
エラーを受信: ポート 14099 上にレジストリーを作成できません | 製品ライセンスの有効期限切れ | 問題: ポート 14099 でレジストリーを作成できない |
症状 | 考えられる原因 | 参照箇所 |
---|---|---|
.bat または .cmd ユーザー・メトリック・ファイルを実行中の Windows 2000 での メトリック・サーバー IOException | 完全なメトリック名が必要です。 | 問題: .bat または .cmd ユーザー・メトリック・ファイル実行時の Windows 2000 における メトリック・サーバー IOException |
メトリック・サーバーが Network Dispatcher マシンに負荷情報を報告していません。 | 考えられる原因には、以下が含まれます。
| 問題: メトリック・サーバーが負荷を Network Dispatcher マシンに報告していない |
メトリック・サーバー・ログに、サーバーへのキー・ファイルの転送時には「エージェントへのアクセスにはシグニチャーが必要です」と報告されています。 | キー・ファイルは破壊が原因で許可に失敗しています。 | 問題: メトリック・サーバー・ログに「エージェントへのアクセスにはシグニチャーが必要です」と報告されている |
Dispatcher の実行で問題に遭遇した場合には、いずれかのアプリケーションが通常は Dispatcher が使用するポート番号を使用している可能性があります。 Dispatcher サーバーは次のポート番号を使用します。
別のアプリケーションがいずれかの Dispatcher のポート番号を使用している場合は、以下を行って、Dispatcher のポート番号を変更することができます。
CBR の実行に関する問題が起こっている場合は、 CBR が通常使用するポート番号をアプリケーションのいずれかが使用していることが考えられます。 CBR は以下のポート番号を使用します。
他のアプリケーションが CBR ポート番号のいずれかを使用している場合は、以下のようにして、CBR のポート番号を変更することができます。
Mailbox Locator の実行で問題に遭遇した場合には、いずれかのアプリケーションが通常は Mailbox Locator が使用するポート番号を使用している可能性があります。 Mailbox Locator は以下のポート番号を使用しています。
別のアプリケーションがいずれかの Mailbox Locator のポート番号を使用している場合は、以下を実行して Mailbox Locator のポート番号を変更できます。
Site Selector の実行で問題が起きる場合には、 Site Selector が通常使用するポート番号をいずれかのアプリケーションが使用している可能性があります。 Site Selector は以下のポート番号を使用します。
別のアプリケーションがいずれかの Site Selector のポート番号を使用している場合は、以下を行って、Site Selector のポート番号を変更することができます。
Cisco Consultant コンポーネントの実行で問題が起きる場合には、 Cisco Consultant の lbcserver が使用するポート番号の 1 つを別のアプリケーションが使用している可能性があります。 Cisco Consultant は以下のポート番号を使用します。
14099。lbccontrol からのコマンド受信用
10004。メトリック・サーバーへのメトリック照会送信用
別のアプリケーションがいずれかの Consultant ポート番号を使用している場合は、以下を実行して Consultant のポート番号を変更してください。
この問題は、他のアプリケーションが Dispatcher によって使用されるポートのいずれかを使用している場合に起こります。詳細については、Dispatcher ポート番号のチェックを参照してください。
この問題は、指定したアドレス以外の他のアドレスが使用されている場合に起こります。Dispatcher とサーバーを連結している場合は、構成で使用されるサーバー・アドレスは NFA アドレスであるか、連結したものとして構成されていなければなりません。
この問題には、クライアント・マシンからの接続が使用されていない、接続がタイムアウトであるなどの症状があります。以下のチェックを行い、この問題を診断します。
この問題は、Dispatcher high availability 環境が構成されており、クライアント・マシンからの接続がサービスを提供されていない、あるいはタイムアウトになっている場合に起こります。以下をチェックして、問題を訂正または診断します。
この Windows 2000 のエラーは、アダプターに送信元アドレスが構成されていない場合に起こります。以下をチェックして、問題を訂正または診断します。
ndconfig tr0 <ip address> netmask <netmask> または ndcontrol cluster configure
サーバー・マシンをセットアップすると、意図せずに 1 つまたは複数のエクストラ経路が作成されてしまう場合があります。これらのエクストラ経路を除去しないと、Dispatcher が操作できなくなってしまいます。これらを検査して削除するには、ロード・バランシングのためのサーバー・マシンのセットアップを参照してください。
広域サポートを使用している場合に、advisor が正しく機能していないと考えられる場合は、ローカルおよびリモート Dispatcher の両方で advisor が開始していることを確認してください。 広域サポートとリモート advisor の使用 を参照してください。
SNMP サブエージェントの使用時に、SystemView エージェントの SNMP デーモンが開始せず、活動状態にならない場合は、snmpcfg プログラムを使用して SNMP コミュニティーを構成したことを確認してください。SNMP データに Dispatcher サブエージェントからアクセスするためには、SNMP コマンドで渡されるコミュニティー名が、サブエージェントが開始したコミュニティー名に一致していなければなりません。
Dispatcher、Microsoft IIS、および SSL の使用時に、これらが共に機能しない場合は、SSL セキュリティーの使用可能化に問題がある場合があります。鍵のペアの生成、証明書の取得、鍵のペアを含む証明書のインストール、 SSL を必要とするディレクトリーの構成に関する詳細については、 Windows 2000 とともに提供される Microsoft Information and Peer Web Services Information and Planning Guide を参照してください。資料のローカル URL (Web ブラウザーに表示されます) は、 file:///C|/WINNT/system32/inetsrv/iisadmin/htmldocs/inetdocs.htm です。
Dispatcher は、鍵を使用して、ユーザーがリモート・マシンに接続して構成できるようにします。鍵は、接続用の RMI ポートを指定します。セキュリティー上の理由および競合のため、RMI ポートを変更することができます。RMI ポートを変更した場合は、鍵のファイル名が異なります。同じリモート・マシンの鍵ディレクトリーに複数の鍵があり、異なる RMI ポートを指定している場合は、コマンド行は、最初に見つかったものしか試行しません。誤っていると、接続は拒否されます。誤った鍵を削除しない限り、接続は確立されません。
EXCLUDE-MODULE java EXCLUDE-MODULE jre EXCLUDE-MODULE jrew EXCLUDE-MODULE javaw
ランダム・ポートが問題の原因になる可能性があるのは、管理コンソールのいずれかがファイアウォールと同じマシンで、あるいはファイアウォール経由で実行されている場合です。たとえば、Network Dispatcher がファイアウォールと同じマシンで実行されていて、ndcontrol コマンドが出されると、「エラー: サーバーが応答していません」などのエラーが出される場合があります。
この問題を避けるには、RMI により使用されるランダム・ポートを設定するために ndserver スクリプト・ファイル (PATH 中に見つかる) を編集します。 END_ACCESS 文字列中に -DND_RMI_SERVER_PORT=yourPort を含めます。ここで、yourPort は指定されるポートです。
たとえば、以下のようになります。
END_ACCESS='-DND_CLIENT_KEYS_DIRECTORY=/usr/lpp/nd/admin/keys/dispatcher -DND_SERVER_KEYS_DIRECTORY=/usr/lpp/nd/dispatcher/key -DND_RMI_SERVER_PORT=10100' ND_RMIPORT=10099
完了したら、ndserver を再始動し、ポート 10099 および 10100、あるいは管理コンソールの実行元のホスト・アドレス用に選択されてポートのトラフィックをオープンします。
Windows 2000 では、デフォルトのブラウザーとして Netscape を使用すると、この問題で表示されるエラー・メッセージは "Cannot find the file '<filename>.html' (or one of its components). です。 パスおよびファイル名が正しいか確認し、必要なライブラリーがすべて使用可能になっているようにしてください。
この問題は、HTML ファイルの関連付けが誤っていることが原因です。解決策は、以下のとおりです。
Solaris 2.7 プラットフォーム上で ndserver を開始すると、 "stty: : No such device or address." という偽エラー・メッセージが表示されます。このエラー・メッセージは無視してください。 Ndserver は正しく実行されます。
グラフィカル・ユーザー・インターフェース (GUI) の ndadmin を正しく機能させるには、十分なページング・スペースが必要です。使用可能なページング・スペースが不十分な場合には、 GUI は正しく開始されません。これが起こる場合には、ページング・スペースを調べて、必要があればページング・スペースを増加してください。
別のバージョンを再インストールするために Network Dispatcher をアンインストールして、 Dispatcher コンポーネントを開始しようとしたときにエラーが起きた場合には、 Caching Proxy がインストールされているかどうかを調べてください。Caching Proxy にはいずれかの Dispatcher ファイルに依存関係があり、このファイルがアンインストールされるのは Caching Proxy をアンインストールしたときだけです。
この問題を避けるには、次のようにしてください。
Network Dispatcher GUI の外観に問題が起きる場合は、オペレーティング・システムのデスクトップ・レゾリューションの設定を調べてください。 GUI の表示には 1024x768 ピクセルのレゾリューションが最適です。
Windows 2000 においてヘルプ・ウィンドウを最初にオープンすると、別のウィンドウの背後に隠されて見えなくなることがあります。これが起こる場合は、ウィンドウをクリックして、もう一度前面に出してください。
Solaris 上では、各ネットワーク・アダプターにはデフォルトで同じ MAC アドレスがあります。これは、各アダプターが異なる IP サブネット上にあるときには正しく機能します。しかし、スイッチ環境において、同じ MAC と同じ IP サブネット・アドレスをもつ複数の NIC が同じスイッチと通信すると、そのスイッチはすべてのトラフィックを同じワイヤーの下にある単一 MAC (および両方の IP) に送ります。フレームを最後にワイヤーに入れたアダプターだけが、両方のアダプター行きの IP パケットを表示できます。 Solaris は、「誤った」インターフェースに届いた有効な IP アドレスのパケットを破棄する可能性があります。
すべてのネットワーク・インターフェースが ibmnd.conf で構成されているものとして Network Dispatcher 用に指定されていない場合、および ibmnd.conf で定義されていない NIC がフレームを受け取った場合には、 Network Dispatcher にはそのフレームを処理および転送機能がありません。
この問題を避けるには、デフォルトを上書きして、それぞれのインターフェースごとに固有の MAC アドレスを設定する必要があります。以下のコマンドを使用してください。
ifconfig interface ether macAddr
たとえば、以下のようになります。
ifconfig hme0 ether 01:02:03:04:05:06
Windows 2000 では、ネットワーク・カードをインストールおよび構成していなければ、 executor を開始できません。
AIX オペレーティング・システムには、パス MTU ディスカバリーと呼ばれるネットワーク・パラメーターが入っています。クライアントとのトランザクション中に、発信パケットに小さめの最大送信単位 (MTU) を使用しなければならないとオペレーティング・システムが判別すると、パス MTU ディスカバリーは AIX にデータを記憶するための経路を作成させます。新規経路はその特定クライアント IP 用であり、そこに到達するために必要な MTU を記録します。
経路を作成しているときには、クラスターがループバック上に別名割り当てされる結果、サーバー上で問題が起きます。経路のゲートウェイ・アドレスがクラスター / ネットマスクのサブネットで途切れると、 AIX はループバック上で経路を作成します。これは、そのサブネットを別名割り当てされた最後のインターフェースだった場合に起こります。
たとえば、クラスターが 9.37.54.69 であり、 255.255.255.0 ネットマスクが使用されて、使用予定のゲートウェイが 9.37.54.1 である場合は、 AIX は経路のループバックを使用します。これにより、サーバーの応答がボックスから出ることがなくなり、クライアント・タイムアウト待ちとなります。通常は、クライアントにはクラスターからの応答が 1 つ表示され、次に経路が作成されてそのクライアントはそれ以上何も受け取りません。
この問題に対するソリューションには、以下の 2 つがあります。
注:
Windows 2000 には Task Offload という新機能があり、これによりオペレーティング・システムではなくアダプター・カードが TCP チェックサムを計算できます。これはシステムのパフォーマンスを向上します。 Task Offload が使用可能になっていると、サーバーがダウンしていなくてもダウンしていると Network Dispatcher advisors は報告します。
この問題は TCP チェックサムがクラスター・アドレスからのパケットを性格に計算しないことであり、これが advisor トラフィックで起こります。
この問題を防ぐには、アダプター・カード設定を表示して Task Offload を使用不可にしてください。
この問題は、最初に Adaptec の ANA62044 QuadPort Adapter において見つかりました。このアダプター・カードは Transmit Checksum offload としての機能と関連しています。問題を防ぐには、 Transmit Checksum offload を使用不可にします。
広域 Network Dispatcher をセットアップするときには、リモート Dispatcher をローカル Dispatcher のクラスターにあるサーバーとして定義しなければなりません。通常は、リモート Dispatcher の非転送アドレス (NFA) をリモート・サーバーの宛先アドレスとして使用します。これを実行してからリモート Dispatcher 上の high availability をセットアップすると、これは失敗します。これの NFA を使用してアクセスするときに、ローカル Dispatcher がリモート・サイドのプライマリーを常にポイントしているために、これが起こります。
この問題を回避するには、次のようにしてください。
リモート・プライマリー Dispatcher を使用すると、このアドレスをアダプター上で別名割り当てしてトラフィックを受け入れできるようにします。障害が起きる場合には、アドレスがバックアップ・マシンに移動して、バックアップがそのアドレスのトラフィックの受け入れを継続します。
大きい構成ファイル (おおよそ 200 個以上の add コマンド) をロードしようとしているときに、GUI がハングするか、あるいは予期しない振る舞い (画面変更への極端に低速による応答など) が表示される場合があります。
Java には GUI に対するこのように大きな変更を処理するために十分なメモリーへのアクセス権がないので、これが起こります。
Java に使用可能なメモリー割り振りプールを増やすために指定できる、実行時環境についてのオプションがあります。
オプションは -Xmxn です。ここで、n はメモリー割り振りプールの最大サイズ (バイト数) です。 n は 1024 の倍数になっていなければならず、2MB より大きくなっていなければなりません。この値には、K バイトを示すために k または K が続いているか、あるいは M バイトを示すために m または M が続いていてもかまいません。たとえば、-Xmx128M と -Xmx81920k は両方とも有効です。デフォルト値は 64MB です。 Solaris 7 および Solaris 8 SPARC プラットフォームの最大値は 4000m であり、Solaris 2.6 および x86 プラットフォームの最大値は 2000m です。
このオプションを追加するには、ndadmin スクリプト・ファイルを次のように変更してください。
START jrew -mx64m %END_ACCESS% %CONFIG_DIR% -DEND_INSTALL_PATH=%IBMNDPATH% -cp %NDCLASSPATH% com.ibm.internet.nd.framework.FWK_Framework com.ibm.internet.nd.gui.GUI_eNDRootNode1
$JREDIR/$JRE -mx64m $END_ACCESS $CONFIG_DIR -DEND_INSTALL_PATH=/opt/&BASEDIR -cp $NDCLASSPATH com.ibm.internet.nd.framework.FWK_Framework com.ibm.internet.nd.gui.GUI_eNDRootNode &1
re -mx64m $END_ACCESS $CONFIG_DIR $NDLOCALE -DEND_INSTALL_PATH=/opt/nd -classpath $NDCLASSPATH com.ibm.internet.nd.framework.FWK_Framework com.ibm.internet.nd.gui.GUI_eNDRootNode 1>/dev/null 2>&1 &1
ava -mx64m $END_ACCESS $CONFIG_DIR $NDLOCALE -DEND_INSTALL_PATH=/usr/lpp/&BASEDIR -classpath $NDCLASSPATH com.ibm.internet.nd.framework.FWK_Framework com.ibm.internet.nd.gui.GUI_eNDRootNode 1>/dev/null 2>&1 &
n の推奨値はありませんが、デフォルト・オプションより大大きくなっている必要があります。手始めに手ごろなのはデフォルト値の 2 倍を指定することです。
この問題は、他のアプリケーションが CBR によって使用されるポートのいずれかを使用している場合に起こります。詳細については、CBR ポート番号のチェックを参照してください。
cbrcontrol コマンドが、「エラー: サーバーが応答していません。」を戻します。 あるいは、ndadmin コマンドが「エラー: RMI サーバーにアクセスできません。」を戻します。ユーザーのマシンに socks 化スタックがある場合に、これらのエラーが起こることがあります。この問題を訂正するには、socks.cnf ファイルを編集して、以下の行を書き込みます。
EXCLUDE-MODULE java EXCLUDE-MODULE jre EXCLUDE-MODULE jrew EXCLUDE-MODULE javaw
これらのエラーは、 cbrserver を開始していない場合にも起こります。
Caching Proxy および CBR は開始されましたが、要求はロード・バランシングされていません。このエラーは、 executor を開始する前に Caching Proxy を開始すると起こる可能性があります。これが起こる場合は、 Caching Proxy の stderr ログにエラー・メッセージ「ndServerInit: executor に接続できません」が入ります。この問題を避けるには、 Caching Proxy を開始する前に executor を開始します。
Solaris において cbrcontrol executor start コマンドが「エラー: Executor が開始されていません」を戻します。このエラーは、そのシステムの IPC (プロセス間通信) を構成していないために、共用メモリー・セグメントとセマフォー ID の最大サイズが、オペレーティング・システムのデフォルトより大きくなっている場合に起こります。共用メモリー・セグメントおよびセマフォー ID のサイズを増加するには、 /etc/system ファイルを編集する必要があります。このファイルの構成方法に関する詳細については、 ***を参照してください。
URL ルールが機能しないときには、構文エラーまたは構成エラーのある可能性があります。この問題が起きる場合には、以下をチェックしてください。
この問題は、他のアプリケーションが Mailbox Locator によって使用されるポートのいずれかを使用している場合に起こります。詳細については、Mailbox Locator ポート番号のチェックを参照してください。
UNIX プラットフォームでは、この問題は mlserver が多数の IMAP/POP3 クライアント要求のロード・バランシングに使用されているときに、 mlserver がサービスを提供する要求数に対してファイル記述子に関するシステムの限界が小さ過ぎると発生します。 mlserver は、以下の例外を出して停止します。
java.rmi.RMISecurityException: security.fd.read
プロトコル固有のプロキシー・ログ・ファイルに、以下のような報告があります。
SocketException=java.net.SocketException: Socket closed
これを解決するには、mlserver を開始したシェルの nofiles (AIX、Linux) または open files (Solaris) 限界を変更します。nofiles 限界を、現在の nofiles 限界よりも大きい妥当な数値まで高くします。ulimit -a を使用して現在の nofiles 限界を表示し、ulimit -n value を使用して、値を大きくします。
mlcontrol コマンドが、「エラー: サーバーが応答していません。」を戻します。 あるいは、ndadmin コマンドが「エラー: RMI サーバーにアクセスできません。」を戻します。ユーザーのマシンに socks 化スタックがある場合に、これらのエラーが起こることがあります。この問題を訂正するには、socks.cnf ファイルを編集して、以下の行を書き込みます。
EXCLUDE-MODULE java EXCLUDE-MODULE jre EXCLUDE-MODULE jrew EXCLUDE-MODULE javaw
これらのエラーは、 mlserver を開始していない場合にも起こります。
構成へのポートの追加を試みるときに、エラー・メッセージ「エラー: ポートを追加できません」を受け取る場合があります。別のアプリケーションがそのポート上ですでに listen している可能性があります。 Mailbox Locator はコマンドで指定するポートのクラスター IP にバインドするプロキシーの開始を試みます。別のアプリケーションをその IP に結合しているか、あるいはそのポート上のすべての IP に対して listen している場合には、プロキシーの開始は失敗します。そのポートで Mailbox Locator を使用するには、競合アプリケーションを停止する必要があります。
Linux プラットフォーム上では、たとえば POP3 プログラムを実行しなくても xinetd デーモンは listener を開始できます。そのために、アプリケーションが使用予定のポート上で listen しているかどうかを判別するために、 netstat -a をチェックすることが重要です。
Mailbox Locator では、 mlcontrol port add コマンドにより、 「クラスター <cluster>、ポート <port>のプロキシーは開始されていません。」というエラー・メッセージが表示されます。これを解決するには、プロキシーを開始する前に、 NIC 上でクラスター・アドレスを構成します。また、その他のアプリケーションがそのポート上で実行されてクラスター・アドレスを listen していないことを確認してください (一般の listen-on-everything アプリケーションを含む) 。
この問題は、他のアプリケーションが Site Selector によって使用されるポートのいずれかを使用している場合に起こります。詳細については、Site Selector ポート番号のチェックを参照してください。
症状: Site Selector コンポーネントがクライアントからの着信要求をラウンドロビンしません。
考えられる原因: Solaris システムがネーム・サービス・キャッシュ・デーモンを実行しています。このデーモンが実行されていると、後続のリゾルバー要求は Site Selector ではなくこのキャッシュから応答されます。
解決法: Solaris マシン上のネーム・サービス・キャッシュ・デーモンをオフにしてください。
sscontrol コマンドが、「エラー: サーバーが応答していません。」を戻します。あるいは、ndadmin コマンドが「エラー: RMI サーバーにアクセスできません。」を戻します。ユーザーのマシンに socks 化スタックがある場合に、これらのエラーが起こることがあります。この問題を訂正するには、socks.cnf ファイルを編集して、以下の行を書き込みます。
EXCLUDE-MODULE java EXCLUDE-MODULE jre EXCLUDE-MODULE jrew EXCLUDE-MODULE javaw
これらのエラーは、 ssserver を開始していない場合にも起こります。
Site Selector は DNS に参加していなければなりません。構成に関係しているマシンのすべては、このシステムにも関係している必要があります。 Windows では、DNS にホスト名が入っている必要が常にあるわけではありません。 Site Selector は、正しく開始されるために、そのホスト名が DNS に定義されていることが必要です。
このホストが DNS に定義されていることを確認してください。 ssserver.cmd ファイルを編集し、"w" を "javaw" から除去してください。これで、もっと多くのエラーに予防手段がとられます。
Site Selector のネーム・サーバーがマシン上のどのアドレスにもバインドされていません。これは、マシン上の有効な任意の IP 用に予定された要求に応答します。 Site Selector は、クライアントに戻す応答の経路指定をオペレーティング・システムに依存します。 Site Selector マシンに複数のアダプターがあり、そのいくつかが同じサブネットに接続されている場合は、 O/S がクライアントへの応答を受け取ったものとは異なるアドレスから送信することが可能です。クライアント・アプリケーションによっては、送信したアドレス以外から受信した応答を受け入れません。そのために、ネーム・レゾリューションにより失敗することになります。
この問題は、 Consultant の lbcserver が使用するいずれかのポートを別のアプリケーションが使用すると起こります。詳細については、 Cisco Consultant ポート番号のチェックを参照してください。
lbccontrol コマンドが、「エラー: サーバーが応答していません。」を戻します。あるいは、ndadmin コマンドが「エラー: RMI サーバーにアクセスできません。」を戻します。ユーザーのマシンに socks 化スタックがある場合に、これらのエラーが起こることがあります。この問題を訂正するには、socks.cnf ファイルを編集して、以下の行を書き込みます。
EXCLUDE-MODULE java EXCLUDE-MODULE jre EXCLUDE-MODULE jrew EXCLUDE-MODULE javaw
これらのエラーは、 lbcserver を開始していない場合にも起こります。
この問題は、有効な製品ライセンスがないときに起こります。 lbcserver を開始するときに、以下のメッセージを受け取ります。
Your license has expired. Contact your local IBM representative or authorized IBM reseller.
この問題を訂正するには、次のようにしてください。
Windows 2000 メトリック・サーバー上のユーザー作成メトリックには完全メトリック名を使用する必要があります。たとえば、 usermetric ではなく、 usermetric.bat を指定しなければなりません。 usermetric の名前はコマンド行では有効ですが、実行時環境内部から実行するときには動作しません。完全メトリック名を使用しないと、メトリック・サーバー入出力例外を受け取ります。 metricserver コマンド・ファイルにおいて LOG_LEVEL 変数を 3 の値に設定してから、ログ出力にチェックを入れてください。この例では、例外は次のように表示されます。
... java.io.IOException: CreateProcess: usermetric error=2
メトリック・サーバーが負荷情報を Network Dispatcher に報告していない理由はいくつか考えられます。この原因を判別するには、以下の検査を実行します。
メトリック・サーバー・ログには、キー・ファイルがサーバーに転送された後で、このエラー・メッセージが報告されています。
このエラーが記録されるのは、ペアのキーの破壊が原因で、キー・ファイルがペアのキーによる許可に失敗する場合です。この問題を訂正するには、以下を試みます。
構文図は、オペレーティング・システムが正しくユーザーの入力を解釈できるように、コマンドの指定方法を示すものです。構文図は左から右へ、上から下へ、水平線 (主パス) に沿って読み進めます。
構文図では、以下の記号が使用されます。
構文図に示されているコロン、疑問符、マイナス記号などの句読点は、すべてそのとおりに指定してください。
構文図では、以下のようなタイプのパラメーターが使用されています。
パラメーターは、キーワードまたは変数に分類されます。キーワードは小文字で示され、小文字で入力することが可能です。たとえば、コマンド名などがキーワードになります。変数はイタリックで示され、ユーザーの入力する名前や値を示します。
以下の例では、user コマンドがキーワードになります。 user_id は必須の変数であり、 password は任意指定の変数です。変数の値はユーザーが独自に置き換えます。
>>-user--user_id--+----------+--------------------------------->< '-password-'
必須のキーワード: 必須のキーワードおよび変数は主パス上に示されます。
>>-required_keyword--------------------------------------------><
必須のキーワードおよび値は必ずコーディングしなければなりません。
スタックの中から必須項目を 1 つ選択する: 一緒に指定できない複数の必須キーワードまたは必須変数の中から 1 つを指定しなければならない場合には、項目はアルファベット順に水平に並べてスタックされます。
>>-+-required_parameter_1-+------------------------------------>< '-required_parameter_2-'
任意指定の値: 任意指定のキーワードおよび変数は主パスの下に示されます。
>>-+---------+------------------------------------------------->< '-keyword-'
任意指定キーワードおよび変数は必ずしも指定する必要はありません。
スタックの中から任意指定項目を 1 つ選択する: 一緒に指定できない複数の任意指定キーワードまたは変数の中から 1 つを指定しなければならない場合には、項目はアルファベット順に主パスより下にスタックされます。
>>-+-------------+--------------------------------------------->< +-parameter_1-+ '-parameter_2-'
変数: イタリックで示される単語はすべて 変数 です。構文内に変数がある場合には、ユーザーがテキストの定義に従って使用可能な名前または値で置き換える必要があります。
>>-variable----------------------------------------------------><
英数字以外の文字: 構文図に英数字以外の文字 (コロン、引用符、マイナス記号など) が示されている場合には、それらの文字も構文の一部としてコーディングする必要があります。この例では、cluster:port とコーディングします。
>>-cluster:port------------------------------------------------><
この付録では、Dispatcher ndcontrol コマンドの使用方法について説明します。これは CBR およびMailbox Locator のコマンド解説でもあります。CBR および Mailbox Locator は Dispatcher コマンドのサブセットを使用します。詳細については、 CBR、Mailbox Locator、および Dispatcher の構成の違いを参照してください。
以下はこの付録の中のコマンドのリストです。
ndcontrol コマンド・パラメーターは、最小限バージョンで入力することができます。入力する必要があるのは、パラメーターの固有文字だけです。たとえば、file save コマンドに関するヘルプを表示するには、ndcontrol help file の代わりに ndcontrol he f と入力することができます。
コマンド行インターフェースを始動するには、ndcontrol を実行して、ndcontrol コマンド・プロンプトを表示します。
コマンド行インターフェースを終了するには、exit または quit を実行します。
CBR および Mailbox Locator コマンド行インターフェースのほとんどの部分は、Dispatcher のコマンド行インターフェースのサブセットです。コンポーネントを構成するためには、ndcontrol の代わりに cbrcontrol コマンド (CBR コンポーネントの場合) または mlcontrol コマンド (Mailbox Locator コンポーネントの場合) を使用してください。
CBR では 省略されている コマンドのいくつかを以下にリストします。
Mailbox Locator では 省略されている コマンドのいくつかを以下にリストします。
>>-ndcontrol--advisor--+-connecttimeout--name--+-port---------+--timeoutseconds-+->< | '-cluster:port-' | +-interval--name--+-port---------+--seconds--------------+ | '-cluster:port-' | +-list---------------------------------------------------+ +-loglevel--name--+-port---------+--level----------------+ | '-cluster:port-' | +-logsize--name--+-port---------+--+-unlimited---------+-+ | '-cluster:port-' '-number of records-' | +-receivetimeout--name--+-port---------+--timeoutseconds-+ | '-cluster:port-' | +-report--name--+-port---------+-------------------------+ | '-cluster:port-' | +-start--name--+-port---------+--+----------+------------+ | '-cluster:port-' '-log file-' | +-status--name--+-port---------+-------------------------+ | '-cluster:port-' | +-stop--name--+-port---------+---------------------------+ | '-cluster:port-' | +-timeout--name--+-port---------+--+-unlimited-+---------+ | '-cluster:port-' '-seconds---' | '-version--name--+-port---------+------------------------' '-cluster:port-'
カスタマイズされた advisor の名前は xxxx の形式になっています。ここで、ADV_xxxx は、カスタム advisor をインプリメントするクラスの名前です。詳細については、カスタム (カスタマイズ可能) advisor の作成を参照してください。
クラスターは小数点付き 10 進数形式または記号名のアドレスです。ポートは、advisor がモニターするポートの番号です。
advisor 名 | プロトコル | ポート |
---|---|---|
connect | ICMP | 12345 |
db2 | private | 50000 |
dns | DNS | 53 |
ftp | FTP | 21 |
http | HTTP | 80 |
ibmproxy | HTTP (Caching Proxy 経由) | 80 |
imap | IMAP | 143 |
nntp | NNTP | 119 |
ping | PING | 0 |
pop3 | POP3 | 110 |
self | private | 12345 |
smtp | SMTP | 25 |
ssl | HTTP | 443 |
ssl2http | SSL | 443 |
telnet | Telnet | 23 |
WLM | private | 10,007 |
デフォルトのファイルは、advisorname_port.log (http_80.log など) です。ログ・ファイルを保持するディレクトリーを変更するには、ログ・ファイル・パスの変更を参照してください。クラスター (またはサイト) 固有の advisor のデフォルト・ログ・ファイルは、クラスター・アドレスを使用して作成されます。たとえば、http_127.40.50.1_80.log です。
例
ndcontrol advisor start http 127.40.50.1:80
ndcontrol advisor start http 88
ndcontrol advisor stop http 127.40.50.1:80
ndcontrol advisor connecttimeout http 80 30
ndcontrol advisor connecttimeout http 127.40.50.1:80 20
ndcontrol advisor interval ftp 21 6
ndcontrol advisor listこのコマンドによって、以下のような出力が生成されます。
--------------------------------------- | ADVISOR | CLUSTER:PORT | TIMEOUT | --------------------------------------- | http |127.40.50.1:80 | unlimited | | ftp | 21 | unlimited | ---------------------------------------
ndcontrol advisor loglevel http 80 0
ndcontrol advisor logsize ftp 21 5000
ndcontrol advisor receivetimeout http 80 60
ndcontrol advisor report ftp 21このコマンドによって、以下のような出力が生成されます。
Advisor Report: --------------- Advisor name ............. Ftp Port number .............. 21 Cluster address .......... 9.67.131.18 Server address ........... 9.67.129.230 Load ..................... 8 Cluster address .......... 9.67.131.18 Server address ........... 9.67.131.215 Load ..................... -1
ndcontrol advisor status http 80このコマンドにより、以下のような出力が生成されます。
Advisor Status: --------------- Interval (seconds) ............ 7 Timeout (seconds) ............. Unlimited Connect timeout (seconds).......21 Receive timeout (seconds).......21 Advisor log filename .......... Http_80.log Log level ..................... 1 Maximum log size (bytes) ...... Unlimited
ndcontrol advisor timeout ftp 21 5
ndcontrol advisor version ssl 443このコマンドにより、以下のような出力が生成されます。
Version: 04.00.00.00 - 07/12/2001-10:09:56-EDT
>>-ndcontrol--cluster--+-add--cluster+c2+...--+----------------------------------------+-+->< | +-proportions--active--new--port--system-+ | | +-maxports--size-------------------------+ | | +-maxservers--size-----------------------+ | | +-stickytime--time-----------------------+ | | +-weightbound--weight--------------------+ | | +-porttype--type-------------------------+ | | +-primaryhost--address-------------------+ | | +-staletimeout--staletimeout-------------+ | | '-sharedbandwidth--size------------------' | +-set--cluster+c2+...--+-maxports--size-------------+-------------+ | +-maxservers--size-----------+ | | +-stickytime--time-----------+ | | +-weightbound--weight--------+ | | +-porttype--type-------------+ | | +-primaryhost--address-------+ | | +-staletimeout--staletimeout-+ | | '-sharedbandwidth--size------' | +-remove--cluster-------------------------------------------------+ +-report--cluster-------------------------------------------------+ +-status--cluster-------------------------------------------------+ +-configure--cluster--+-------------------------+-----------------+ | '-interfacename - netmask-' | '-unconfigure--cluster--------------------------------------------'
ndcontrol cluster add コマンドの例外として、ワイルドカードとしての働きをするコロン (:) を使用することができます。たとえば、次のコマンドndcontrol cluster set : weightbound 80 は、結果的にすべてのクラスターに重み限界 80 を選択することになります。
クラスターの primaryhost を変更すると、プライマリーおよびバックアップは開始済みとなり、相互 high availability を実行します。また、新規のプライマリー・ホストに強制的に引き継ぎを行わなければなりません。スクリプトを更新し、クラスターを手動で正しく構成解除して正しく構成する必要もあります。詳細については、相互 high availabilityを参照してください。
Mailbox Locator の場合は、ステイル・タイムアウトのデフォルトは 60 秒であり、これによって POP3 および IMAP の非活動タイムアウトが上書きされます。Mailbox Locator の staletimeout の詳細については、POP3/IMAP 非アクティブ・タイマーの上書き を参照してください。
例
ndcontrol cluster add 130.40.52.153
ndcontrol cluster remove 130.40.52.153
ndcontrol cluster set 9.6.54.12 proportions 60 35 5 0
ndcontrol cluster add 0.0.0.0
ndcontrol cluster set 9.6.54.12 primaryhost 9.65.70.19
ndcontrol cluster status 9.67.131.167このコマンドによって、以下のような出力が生成されます。
Cluster Status: --------------- Address ................................. 9.67.131.167 Number of target ports .................. 3 Default sticky time ..................... 0 Default stale timeout ................... 30 Default port weight bound ............... 20 Maximum number of ports ................. 8 Default port protocol ................... tcp/udp Default maximum number of servers ....... 32 Proportion given to active connections... 0.5 Proportion given to new connections...... 0.5 Proportion given specific to the port.... 0 Proportion given to system metrics....... 0 Shared bandwidth (KBytes) ............... 0 Primary Host Address .................... 9.67.131.167
>>-ndcontrol--executor--+-report------------------------------+->< +-set--+-nfa--IP address------------+-+ | +-maxclusters--size----------+ | | +-maxports--size-------------+ | | +-fincount--fincount---------+ | | +-fintimeout--fintimeout-----+ | | +-maxservers--size-----------+ | | +-staletimeout--staletimeout-+ | | +-stickytime--time-----------+ | | +-clientgateway--address-----+ | | +-weightbound--weight--------+ | | +-porttype--type-------------+ | | +-wideportnumber--port-------+ | | '-sharedbandwidth--size------' | +-start-------------------------------+ +-status------------------------------+ '-stop--------------------------------'
Mailbox Locatorの場合、staletimeout のデフォルトは 60 秒で、POP3 および IMAP の非アクティブ・タイムアウトをオーバーライドします。 Mailbox Locator の staletimeout の詳細については、POP3/IMAP 非アクティブ・タイマーの上書き を参照してください。
例
ndcontrol executor status Executor Status: ---------------- Nonforwarding address ............... 9.67.131.151 Client gateway address .............. 0.0.0.0 Fin count ........................... 4,000 Fin timeout ......................... 60 Wide area network port number ....... 2,001 Shared bandwidth (Kbytes) ........... 0 Default maximum ports per cluster ... 8 Maximum number of clusters .......... 100 Default maximum servers per port .... 32 Port stale timeout .................. 300 Port sticky time .................... 0 Port weight bound ................... 20 Maximum number of clusters .......... 100
ndcontrol executor set nfa 130.40.52.167
ndcontrol executor set maxclusters 4096
ndcontrol executor start
ndcontrol executor stop
>>-ndcontrol--file--+-delete--file[.ext]----------+------------>< +-appendload--file[.ext]------+ +-report----------------------+ +-save--file[.ext]--+-------+-+ | '-force-' | '-newload--file[.ext]---------'
ファイル拡張子 (.ext) は、任意のものを使用することも省略することもできます。
共通インストール・ディレクトリー・パス -- c:¥Program Files¥ibm¥edge¥nd¥servers¥configurations¥component
固有インストール・ディレクトリー・パス -- c:¥Program Files¥ibm¥nd¥servers¥configurations¥component
例
ndcontrol file delete file3 ファイル (file3) が削除されました。
ndcontrol file newload file1.sv ファイル (file1.sv) は Dispatcher にロードされました。
ndcontrol file appendload file2.sv ファイル (file2.sv) は現行構成に追加されてロードされました。
ndcontrol file report FILE REPORT: file1.save file2.sv file3
ndcontrol file save file3 構成はファイル (file3) に保管されました。
>>-ndcontrol--help--+-help--------------+---------------------->< +-host--------------+ +-executor----------+ +-manager-----------+ +-advisor-----------+ +-cluster-----------+ +-port--------------+ +-rule--------------+ +-server------------+ +-subagent----------+ +-high availability-+ +-file--------------+ +-set---------------+ +-status------------+ '-log---------------'
例
ndcontrol helpこのコマンドによって、以下のような出力が生成されます。
HELP COMMAND ARGUMENTS: --------------------------------- Usage: help <help option> Example: help cluster help - print complete help text advisor - help on advisor command cluster - help on cluster command executor - help on executor command file - help on file command host - help on host command log - help on log command manager - help on manager command metric - help on metric command port - help on port command rule - help on rule command server - help on server command set - help on set command status - help on status command subagent - help on subagent command highavailability - help on high availability command<> 内のパラメーターは変数であることに注意してください。
fintimeout <cluster address>|all <time> -Change FIN timeout (すべてのクラスターを変更するには「all」を使用します)
>>-ndcontrol--high availability--+-status--------------------------------------+->< +-backup--+-add--+-primary-+--+-auto---+--p-+-+ | | +-backup--+ '-manual-' | | | | '-both----' | | | '-delete--------------------------' | +-reach--+-add----+--address--mask------------+ | '-delete-' | +-heartbeat--+-add--srcaddress--dstaddress-+--+ | '-delete--address-------------' | '-takeover--+---------+-----------------------' '-address-'
さらに、status キーワードは、さまざまな副次的な状態に関する情報を戻します。
相互 high availability 構成 (各 Dispatcher マシンの役割は、両方)。
注:
例
ndcontrol highavailability status
出力は以下のとおりです。
High Availability Status: ------------------------- Role ........................primary Recovery Strategy ........... manual State ....................... Active Sub-state.............. Synchronized Primary host........... 9.67.131.151 Port .........................12,345 Preferred Target....... 9.67.134.223 Heartbeat Status: ----------------- Count ................ 1 Reachability Status: -------------------- Count ................ 1
ndcontrol highavailability backup add primary auto 80
ndcontrol highavailability reach add 9.67.125.18
Primary - highavailability heartbeat add 9.67.111.3 9.67.186.8 Backup - highavailability heartbeat add 9.67.186.8 9.67.111.3
ndcontrol highavailability takeover
>>-ndcontrol--host:--remote_host-------------------------------><
ndcontrol host:remote_host
コマンド・プロンプトでこのコマンドを発行した後で、リモート Network Dispatcher マシンへ発行する任意の有効な ndcontrol コマンドを入力してください。
>>-ndcontrol--log--+-start-------------------------+----------->< +-stop--------------------------+ +-set--+-retention-hours------+-+ | '---interval-seconds---' | '-status------------------------'
>>-ndcontrol--manager--+-interval--seconds-------------------+->< +-loglevel--level---------------------+ +-logsize--+-unlimited-+--------------+ | '-bytes-----' | +-quiesce--server--+-----+------------+ | '-now-' | +-reach set--+-interval-seconds-----+-+ | '-+-loglevel-level---+-' | | '---logsize-size---' | +-refresh--refresh cycle--------------+ +-report--+----------------+----------+ | '-cluster+c2+...-' | +-restart--message--------------------+ +-sensitivity--weight-----------------+ +-smoothing--smoothing index----------+ +-start--+-----------------------+----+ | '-log file--metric_port-' | +-status------------------------------+ +-stop--------------------------------+ +-unquiesce--server-------------------+ '-version-----------------------------'
あるいは、サーバー区分化を使用している場合は、論理サーバーの固有名を使用してください。詳細については、サーバーの区分化: 1 つのサーバー (IP アドレス) に対して構成された論理サーバーを参照してください。
デフォルトのファイルは、logs ディレクトリーにインストールされます。付録 F, サンプル構成ファイルを参照してください。ログ・ファイルを保持するディレクトリーを変更するには、ログ・ファイル・パスの変更を参照してください。
例
ndcontrol manager interval 5
ndcontrol manager loglevel 0
ndcontrol manager logsize 1000000
ndcontrol manager quiesce 130.40.52.153
ndcontrol manager refresh 3
ndcontrol manager reportこのコマンドによって、以下のような出力が生成されます。
---------------------------------- | HOST TABLE LIST | STATUS | ---------------------------------- | 9.67.129.221| ACTIVE| | 9.67.129.213| ACTIVE| | 9.67.134.223| ACTIVE| ---------------------------------- ----------------------------------------------------------------------------------- | 9.67.131.18| WEIGHT | ACTIVE % 48| NEW % 48 | PORT % 4 | SYSTEM % 0 | ----------------------------------------------------------------------------------- | PORT: 80 |NOW | NEW |WT | CONN |WT | CONN | WT | LOAD | WT | LOAD | ----------------------------------------------------------------------------------- | 9.67.129.221| 8 | 8 | 10 | 0| 10 | 0 | 7 | 29 | 0 | 0| | 9.67.134.223| 11 | 11 | 10 | 0| 10 | 0 | 12 | 17 | 0 | 0| ----------------------------------------------------------------------------------- | PORT TOTALS:| 19 | 19 | | 0| | 0 | | 46 | | 0| ----------------------------------------------------------------------------------- ----------------------------------------------------------------------------------- | 9.67.131.18| WEIGHT | ACTIVE % 48| NEW % 48 | PORT % 4 | SYSTEM % 0 | ----------------------------------------------------------------------------------- | PORT: 23 |NOW | NEW |WT | CONN |WT | CONN | WT | LOAD | WT | LOAD | ----------------------------------------------------------------------------------- | 9.67.129.213| 10 | 10 | 10 | 0| 10 | 0 | 10 | 71 | 0 | 0| | 9.67.134.223| 0 | 0 | 10 | 0| 10 | 0 |-9999 | -1 | 0 | 0| ----------------------------------------------------------------------------------- | PORT TOTALS:| 10 | 10 | | 0| | 0 | | 70 | | 0| ----------------------------------------------------------------------------------- -------------------------------- | ADVISOR | PORT | TIMEOUT | -------------------------------- | reach | 0 | unlimited | | http | 80 | unlimited | | ftp | 21 | unlimited | --------------------------------
ndcontrol manager restart Restarting the manager to update codeこのコマンドによって、以下のような出力が生成されます。
320-14:04:54 Restarting the manager to update code
ndcontrol manager sensitivity 10
ndcontrol manager smoothing 2.0
ndcontrol manager start ndmgr.log
ndcontrol manager statusこのコマンドによって、以下の例のような出力が生成されます。
Manager status: ============= Metric port................................... 10,004 Manager log filename.......................... manager.log Manager log level............................. 1 Maximum manager log size (bytes).............. unlimited Sensitivity level............................. 0.05 Smoothing index............................... 1.5 Update interval (seconds)..................... 2 Weights refresh cycle......................... 2 Reach log level............................... 1 Maximum reach log size (bytes)................ unlimited Reach update interval (seconds)............... 7
ndcontrol manager stop
ndcontrol manager quiesce 130.40.52.153 now
ndcontrol manager quiesce 130.40.52.153
ndcontrol manager unquiesce 130.40.52.153
ndcontrol manager version
>>-ndcontrol--metric--+-add--cluster+c2+...+cN:metric+metric1+...+metricN--------------+->< +-remove--cluster+c2+...+cN:metric+metric1+...+metricN-----------+ +-proportions--cluster+c2+...+cN proportion1 prop2 prop3...propN-+ '-status--cluster+c2+...+cN:metric+metric1+...+metricN-----------'
注: Cisco Consultant の場合には、クラスター・アドレスは、Cisco CSS スイッチ構成中の所有者のコンテンツ・ルールの仮想 IP (VIP) アドレスと対応しています。
例
sscontrol metric add site1:metric1
sscontrol metric proportions site1 0 100
sscontrol metric status site1:metric1このコマンドにより、以下のような出力が生成されます。
Metric Status: ------------ Cluster ....................... 10.10.10.20 Metric name ................... metric1 Metric proportion ............. 50 Server .................... plm3 Metric data ............... -1
>>-ndcontrol--port--+-add--cluster:port--+----------------------+-+->< | +-crossport--otherport-+ | | +-maxservers--size-----+ | | +-stickymask--value----+ | | +-stickytime--time-----+ | | +-method--type---------+ | | +-staletimeout--value--+ | | +-weightbound--weight--+ | | +-porttype--type-------+ | | '-protocol--type-------' | +-set--cluster:port--+-crossport--otherport-+-+ | +-maxservers--size-----+ | | +-stickymask--value----+ | | +-stickytime--time-----+ | | +-staletimeout--value--+ | | +-weightbound--weight--+ | | +-porttype--type-------+ | | '-maxhalfopen--value---' | +-remove--cluster:port------------------------+ +-report--cluster:port------------------------+ +-status--cluster:port------------------------+ '-halfopenaddressreport--cluster:port---------'
Windows では、これは Windows ネットワーキング・セットアップ中でなければならないことを意味します。 cluster configure コマンドは IP 別名割り当てをシミュレートするだけなので不十分であり、プロキシーをこの偽 IP にバインドできません。他のすべてのオペレーティング・システムでは、 cluster configure コマンドが適しています。これは ifconfig を使用して IP を別名割り当てするためです。
crossport 機能を除去するには、crossport 値をその固有のポート番号に設定し直します。ポート間類縁性機能についての詳細は、ポート間類縁性を参照してください。
最初にクライアント要求がポートへ接続すると、同じサブネット・アドレス (マスクされる IP アドレスの一部によって指定される) をもつクライアントからの以降の要求は、すべて同じサーバーへ送信されます。詳細については、類縁性アドレス・マスクを参照してください。
Dispatcher コンポーネントの場合:
CBR コンポーネントの場合: ポート・スティッキー時間を非ゼロ値に設定した場合は、そのルールに対する類縁性タイプは none (デフォルト) でなければなりません。スティッキー時間がそのポートに対して設定されていると、ルール・ベース類縁性 (受動 Cookie、URI、活動 Cookie) は共存できません。
Mailbox Locatorの場合、staletimeout のデフォルトは 60 秒で、POP3 および IMAP の非アクティブ・タイムアウトをオーバーライドします。 Mailbox Locator の staletimeout の詳細については、POP3/IMAP 非アクティブ・タイマーの上書き を参照してください。
正の値は、現在のハーフ・オープン接続がしきい値を超えるかどうかの検査が行われることを示します。現在値がしきい値を超えている場合は、アラート・スクリプトへの呼び出しが行われます。詳細については、サービス停止攻撃の検出を参照してください。
例
ndcontrol port add 130.40.52.153:80+23
ndcontrol port set 130.40.52.153:0
mlcontrol port add 9.37.60.91:20 protocol pop3
ndcontrol port set 130.40.52.153:80 weightbound 10
ndcontrol port set 130.40.52.153:80+23 stickytime 60
ndcontrol port set 130.40.52.153:80 crossport 23
ndcontrol port remove 130.40.52.153:23
ndcontrol port status 9.67.131.153:80このコマンドによって、以下のような出力が生成されます。
Port Status: ------------ Port number .................... 80 Cluster address ................ 9.67.131.153 Number of servers .............. 2 Stale timeout .................. 30 Weight bound ................... 20 Maximum number of servers ...... 32 Sticky time .................... 0 Port type ...................... tcp/udp Forwarding method .............. MAC Based Forwarding Sticky mask bits ............... 32 Cross Port Affinity ............ 80 Max Half Open Connections ...... 0
ndcontrol port halfopenaddressreport 9.67.127.121:80このコマンドによって、以下のような出力が生成されます。
Half open connection report successfully created: ------------ Half Open Address Report for cluster:port = 9.67.127.121:80 Total addresses with half open connections reported ... 0 Total number of half open connections reported ........ 0 Largest number of half open connections reported ...... 0 Average number of half open connections reported ...... 0 Average half open connection time (seconds) reported .. 0 Total half open connections received .................. 0
>>-ndcontrol--rule--+-add--cluster:port:rule--type--type--| opts |-+->< +-dropserver--cluster:port:rule--server--------+ +-remove--cluster:port:rule--------------------+ +-report--cluster:port:rule--------------------+ +-set--cluster:port:rule--| opts |-------------+ +-status--cluster:port:rule--------------------+ '-useserver--cluster:port:rule--server+s2+...--' opts |--+---------------------------------+--------------------------| +-beginrange--low--endrange--high-+ +-priority--level-----------------+ +-pattern=--pattern---------------+ +-tos--value----------------------+ +-stickytime--time----------------+ +-affinity--affinity_type---------+ +-cookiename--value---------------+ +-evaluate--level-----------------+ '-sharelevel--level---------------'
詳細については、活動 Cookie 類縁性を参照してください。
「activecookie」の類縁性タイプにより、 Network Dispatcher によって生成される Cookie に基づいて、類縁性をもつ Web トラフィックを同じサーバーに対してロード・バランシングできます。
「passivecookie」の類縁性タイプにより、サーバーによって生成される自己識別 cookie に基づいて、類縁性をもつ Web トラフィックを同じサーバーとロード・バランシングすることができます。 cookiename パラメーターに受動 cookie 類縁性を指定して使用する必要があります。
類縁性タイプ "URI" によって、キャッシュのサイズを効果的に増やす方法で、Web トラフィックを caching proxy サーバーにロード・バランシングすることができます。
詳細については、活動 Cookie 類縁性、受動 cookie 類縁性、URI 類縁性を参照してください。
詳細については、受動 cookie 類縁性を参照してください。
あるいは、サーバー区分化を使用している場合には、論理サーバーの固有名を使用してください。詳細については、サーバーの区分化: 1 つのサーバー (IP アドレス) に対して構成された論理サーバーを参照してください。
例
ndcontrol rule add 9.37.67.100:80:trule type true priority 100
ndcontrol rule add 9.37.131.153:80:ni type ip b 9.0.0.0 e 9.255.255.255
ndcontrol rule add cluster1:80:timerule type time beginrange 11 endrange 14 ndcontrol rule useserver cluster1:80:timerule server05
ndcontrol rule add 9.67.131.153:80:tosrule type service tos 0xx1001x
ndcontrol rule add 9.67.131.153:80:rbwrule type reservedbandwidth beginrange 0 endrange 100 evaluate rule
ndcontrol cluster set 9.67.131.153 sharedbandwidth 200 ndcontrol rule add 9.67.131.153:80:shbwrule type sharedbandwidth sharelevel cluster
>>-ndcontrol--server--+-add--cluster:port:server--+-------------------------+-+->< | +-address--address--------+ | | +-collocated--value-------+ | | +-sticky--value-----------+ | | +-weight--value-----------+ | | +-fixedweight--value------+ | | +-mapport--portvalue------+ | | +-router--addr------------+ | | +-cookievalue--value------+ | | +-returnaddress--addr-----+ | | +-advisorrequest--string--+ | | '-advisorresponse--string-' | +-set--cluster:port:server--+-collocated--value-------+-+ | +-sticky--value-----------+ | | +-weight--value-----------+ | | +-fixedweight--value------+ | | +-router--addr------------+ | | +-cookievalue--value------+ | | +-advisorrequest--string--+ | | '-advisorresponse--string-' | +-down--cluster:port:server-----------------------------+ +-remove--cluster:port:server---------------------------+ +-report--cluster:port:server---------------------------+ +-up--cluster:port:server-------------------------------+ '-status--cluster:port:server---------------------------'
あるいは、IP アドレスに対して解決されない固有名を使用する場合は、ndcontrol server add コマンドに、サーバーの address パラメーターを提供しなければなりません。詳細については、サーバーの区分化: 1 つのサーバー (IP アドレス) に対して構成された論理サーバーを参照してください。
例
ndcontrol server add 130.40.52.153:80:27.65.89.42
ndcontrol server set 130.40.52.153:80:27.65.89.42 sticky no
ndcontrol server down 130.40.52.153:80:27.65.89.42
ndcontrol server remove ::27.65.89.42
ndcontrol server set 130.40.52.153:80:27.65.89.42 collocated yes
ndcontrol server set 130.40.52.153:80:27.65.89.42 weight 10
ndcontrol server up 130.40.52.153:80:27.65.89.42
ndcontrol server add 130.40.52.153:80:130.60.70.1 router 130.140.150.0
ndcontrol server set 130.40.52.153:80:27.65.89.42 advisorrequest "¥"HEAD / HTTP/2.0¥""
>>-ndcontrol--set--+-loglevel--level--------+------------------>< +-logsize--+-unlimited-+-+ | '-size------' | '-logstatus--------------'
>>-ndcontrol--status-------------------------------------------><
例
ndcontrol statusこのコマンドによって、以下のような出力が生成されます。
Executor has been started. Manager has been started. -------------------------------- | ADVISOR | PORT | TIMEOUT | -------------------------------- | reach | 0 | unlimited | | http | 80 | unlimited | | ftp | 21 | unlimited | --------------------------------
>>-ndcontrol--subagent--+-loglevel--level--------------------+->< +-logsize--+-bytes-----+-------------+ | '-unlimited-' | +-report-----------------------------+ +-start--+-------------------------+-+ | '-community_name--logfile-' | +-status-----------------------------+ +-stop-------------------------------+ '-version----------------------------'
例
ndcontrol subagent start bigguy bigguy.log
この付録では、CBR コンポーネント用コンテンツ・ルール (パターン) 構文および Dispatcher コンポーネントの CBR 転送方式の使用方法を、その使用のシナリオおよび例とともに説明します。
適用できるのは、ルール・タイプに "content" を選択した場合だけです。
使用したいパターン構文は、以下の制限を使用して入力します。
予約済みキーワードの後ろには、必ず等号 "=" を付けます。
結果的に、ブラウザー・ターゲットの指定 http://www.company.com/path/webpage.htm は次のような値になる可能性があります:
Method=GET URI=/path/webpage.htm Version=/HTTP/1.1 Host=www.company.com Connection=Keep-Alive Referer=http://www.company.com/path/parentwebpage.htm
たとえば、次のコマンドは、cbrcontrol>> プロンプトを使用しているときのみ有効です。
rule add 10.1.203.4:80:cbr_prod_rule_ek type content pattern client=181.0.153.222&uri=http://10.1.203.4/nipoek/*
特殊文字を使用するときは、これと同じコマンドがオペレーティング・システムのプロンプトで機能するためには、次のように、二重引用符 (" ") でパターンの前後が囲まれていなければなりません。
cbrcontrol rule add 10.1.203.4:80:cbr_prod_rule_ek type content pattern "client=181.0.153.222&uri=http://10.1.203.4/nipoek/*"
引用符を使用しないと、ルールを CBR に保管するときにパターンの一部が切り捨てされる場合があります。引用符は cbrcontrol>> コマンド・プロンプトの使用ではサポートされていないことに注意してください。
以下は、パターン構文を使用する場合の使用可能なシナリオおよび例の集合です
シナリオ 1:
1 つのクラスター名のセットアップには、標準 HTML コンテンツの用の 1 セットの Web サーバー、サーブレット要求用の WebSphere Application Server のある別の Web サーバーのセット、NSF ファイル用の別の Lotus Notes サーバーのセットなどが必要となります。要求されたこれらのページを区別するためには、クライアント・でへのアクセスが必要です。また、それらを該当するサーバーに送ることも必要です。コンテンツ・パターン・マッチング・ルールは、これらのタスクを実行するために必要な分離を提供します。要求に必要な分離が自動的に行なわれるように、一連のルールが構成されます。たとえば、次のコマンドは言及された 3 つの分割を実行します:
>>rule add cluster1:80:servlets type content pattern uri=*/servlet/* priority 1 >>rule uses cluster1:80:servlets server1+server2
>>rule add cluster1:80:notes type content pattern uri=*.nsf* priority 2 >>rule uses cluster1:80:notes server3+server4
>>rule add cluster1:80:regular type true priority 3 >>rule uses cluster1:80:regular server5+server6
NSF ファイルに対する要求が Network Dispatcher に到着すると、最初にサーブレット・ルールが検査されますが、一致しません。そうすると、この要求は Notes ルールで検査され、一致を戻します。クライアントは、server3 とserver4 の間でロード・バランシングされます。
シナリオ 2
別の共通シナリオは、メイン Web サイトがいくつかの異なる内部グループを制御する場合です。たとえば、 www.company.com/software には、異なるサーバーのセットおよび www.company.com/hardware 部門からのコンテンツが含まれています。要求はすべてルート www.company.com クラスターには基づいていないので、コンテンツ・ルールは URI の違いを検出してロード・バランシングを完了する必要があります。シナリオのルールは以下のようになります:
>>rule add cluster1:80:div1 type content pattern uri=/software/* priority 1 >>rule uses cluster1:80:div1 server1+server2
>>rule add cluster1:80:div2 type content pattern uri=/hardware/* priority 2 >>rule uses cluster1:80:div2 server3+server4
シナリオ 3
一定の組み合わせは、ルールが検索される順序に依存します。たとえば、シナリオ 2 では、クライアントはそれらの要求パスの中のディレクトリーに基づいて分割されますが、ターゲット・ディレクトリーはパスの複数のレベルで現れることがあり、配置上の別の物を意味することがあります。たとえば、www.company.com/pcs/fixes/software は、www.company.com/mainframe/fixes/software とは違うターゲットです。ルールは、この可能性を考慮して定義しなければならず、同時に多くのシナリオをキャッチしないようにしなければなりません。たとえば、"uri=*/software/*" テストは、この場合のワイルドカード検索には範囲が広すぎます。代わりのルールを次の方法で組み立ててください。
組み合わせ検索を以下の範囲に絞ることができます。
>>rule add cluster1:80:pcs type content pattern (uri=/pcs/*)&(uri=*/software/*) >>rule uses cluster 1:80:pcs server1
使用する組み合わせがない場合には、順序が重要となります。
>>rule add cluster1:80:pc1 type content pattern uri=/pcs/* >>rule uses cluster1:80:pc1 server2
"pcs" が後のディレクトリー (最初ではなく) に現れると、2 番目のルールがキャッチされます。
>>rule add cluster1:80:pc2 type content pattern uri=/*/pcs/* >>rule uses cluster1:80:pc2 server3
ほとんどすべての場合に、他のルールを失敗させるものをすべてキャッチするために、デフォルトのルール 常に真 を使用してルールを完了する必要があります。このクライアントの他のすべてのサーバーが失敗するシナリオの場合は、これは、"このサイトは現在ダウンしています。後からやり直してください。" というサーバーとなることがあります。
>>rule add cluster1:80:sorry type true priority 100 >>rule uses cluster1:80:sorry server5
この付録では、以下の Site Selector sscontrol コマンドの使用法について説明します。
sscontrol コマンド・パラメーターは、最小限バージョンで入力することができます。単に、パラメーターの固有の文字を入力する必要があるだけです。たとえば、file save コマンドに関するヘルプを表示するには、sscontrol help file の代わりに sscontrol he f と入力することができます。
>>-sscontrol--advisor--+-connecttimeout--name--+-port----------+--seconds-------+->< | '-sitename:port-' | +-interval--name--+-port----------+--seconds-------------+ | '-sitename:port-' | +-list---------------------------------------------------+ +-loglevel--name--+-port----------+--level---------------+ | '-sitename:port-' | +-logsize--name--+-port----------+--+-size | unlimited-+-+ | '-sitename:port-' '-bytes------------' | +-receivetimeout--name--+-port----------+--seconds-------+ | '-sitename:port-' | +-report--name--+-port----------+------------------------+ | '-sitename:port-' | +-start--name--+-port----------+--+----------+-----------+ | '-sitename:port-' '-log file-' | +-status--name--+-port----------+------------------------+ | '-sitename:port-' | +-stop--name--+-port----------+--------------------------+ | '-sitename:port-' | +-timeout--name--+-port----------+-----------------------+ | '-sitename:port-' | '-version--name--+-port----------+--seconds--------------' '-sitename:port-'
.
advisor 名 | プロトコル | ポート |
---|---|---|
Connect | 適用なし | ユーザー定義 |
DB2 | 専用のもの | 50000 |
ftp | FTP | 21 |
http | HTTP | 80 |
imap | IMAP | 143 |
nntp | NNTP | 119 |
PING | PING | 0 |
pop3 | POP3 | 110 |
smtp | SMTP | 25 |
ssl | SSL | 443 |
telnet | Telnet | 23 |
デフォルトのファイルは、advisorname_port.log (http_80.log など) です。 ログ・ファイルが保存されるディレクトリーを変更するには、ログ・ファイル・パスの変更 を参照してください。
各 sitename ごとに 1 つの advisor だけを始動できます。
例
sscontrol advisor connecttimeout http 80 30
sscontrol advisor interval ftp 21 6
sscontrol advisor listこのコマンドによって、以下のような出力が生成されます。
--------------------------------------- | ADVISOR | SITENAME:PORT | TIMEOUT | --------------------------------------- | http | 80 | unlimited | | ftp | 21 | unlimited | ---------------------------------------
sscontrol advisor loglevel http mysite:80 0
sscontrol advisor logsize ftp mysite:21 5000
sscontrol advisor receivetimeout http 80 60
sscontrol advisor report ftp 21このコマンドによって、以下のような出力が生成されます。
Advisor Report: --------------- Advisor name ............. http Port number .............. 80 sitename ................. mySite Server address ........... 9.67.129.230 Load ..................... 8
sscontrol advisor start ftp 21 ftpadv.log
sscontrol advisor status http 80このコマンドにより、以下のような出力が生成されます。
advisor 状況: --------------- Interval (seconds) ............ 7 Timeout (seconds) ............. Unlimited Connect timeout (seconds).......21 Receive timeout (seconds).......21 Advisor log filename .......... Http_80.log Log level ..................... 1 Maximum log size (bytes) ...... Unlimited
sscontrol advisor stop http 80
sscontrol advisor timeout ftp 21 5
sscontrol advisor version ssl 443
>>-sscontrol--file--+-delete--filename.ext----------+---------->< +-appendload--filename.ext------+ +-report------------------------+ +-save--filename.ext--+-------+-+ | '-force-' | '-newload--filename.ext---------'
ファイル拡張子 (.ext) は任意指定で、指定する場合は任意のものを指定できます。
共通インストール・ディレクトリー・パス -- c:¥Program Files¥ibm¥edge¥nd¥servers¥configurations¥component
固有インストール・ディレクトリー・パス -- c:¥Program Files¥ibm¥nd¥servers¥configurations¥component
例
sscontrol file delete file3 ファイル (file3) が削除されました。
sscontrol file newload file1.sv ファイル (file1.sv) は Dispatcher にロードされました。
sscontrol file appendload file2.sv ファイル (file2.sv) は現行構成に追加されてロードされました。
sscontrol file report FILE REPORT: file1.save file2.sv file3
sscontrol file save file3 構成はファイル (file3) に保管されました。
>>-sscontrol--help--+-advisor----+----------------------------->< +-file-------+ +-help-------+ +-host-------+ +-manager----+ +-metric-----+ +-nameserver-+ +-rule-------+ +-server-----+ +-set--------+ +-sitename---+ '-status-----'
例
sscontrol helpこのコマンドによって、以下のような出力が生成されます。
HELP COMMAND ARGUMENTS: --------------------------------- Usage: help <help option> Example: help name help - print complete help text advisor - help on advisor command file - help on file command host - help on host command manager - help on manager command metric - help on metric command sitename - help on sitename command nameserver - help on nameserver command rule - help on rule command server - help on server command set - help on set command status - help on status command< > 内のパラメーターは変数です。
logsize <number of bytes | unlimited> -Set the maximum number of bytes to be logged in the log file
>>-sscontrol--manager--+-interval--seconds-------------------------------+->< +-loglevel--level---------------------------------+ +-logsize--+-size | unlimited-+-------------------+ | '-bytes------------' | +-reach set--+-interval-seconds-----------------+-+ | '-+-loglevel-level---------------+-' | | '---logsize-size | unlimited---' | +-report--sitename+sn2+...+snN--------------------+ +-restart--message--------------------------------+ +-sensitivity--weight-----------------------------+ +-smoothing--smoothing index----------------------+ +-start--+----------------------+-----------------+ | '-logfile--metric_port-' | +-status------------------------------------------+ +-stop--------------------------------------------+ '-version-----------------------------------------'
デフォルト・ファイルは、logs ディレクトリーにインストールされます。 付録 F, サンプル構成ファイルを参照してください。ログ・ファイルを保持するディレクトリーを変更するには、ログ・ファイル・パスの変更を参照してください。
例
sscontrol manager interval 5
sscontrol manager loglevel 0
sscontrol manager logsize 1000000
sscontrol manager reportこのコマンドによって、以下のような出力が生成されます。
---------------------------------- | SERVER | STATUS | ---------------------------------- | 9.67.129.221| ACTIVE| | 9.67.129.213| ACTIVE| | 9.67.134.223| ACTIVE| ---------------------------------- -------------------------- | MANAGER REPORT LEGEND | -------------------------- | CPU | CPU Load | | MEM | Memory Load | | SYS | System Metric | | NOW | Current Weight | | NEW | New Weight | | WT | Weight | -------------------------- ------------------------------------------------------------------------ | mySite | WEIGHT | CPU 49% | MEM 50% | PORT 1% | SYS 0% | ------------------------------------------------------------------------ | |NOW NEW | WT LOAD | WT LOAD | WT LOAD | WT LOAD | ------------------------------------------------------------------------ | 9.37.56.180 | 10 10 |-99 -1|-99 -1|-99 -1| 0 0| ------------------------------------------------------------------------ | TOTALS:| 10 10 | -1| -1| -1| 0| ------------------------------------------------------------------------ ----------------------------------------- | ADVISOR | SITENAME:PORT | TIMEOUT | ----------------------------------------- | http | 80 | unlimited | -----------------------------------------
sscontrol manager restart Restarting the manager to update codeこのコマンドによって、以下のような出力が生成されます。
320-14:04:54 Restarting the manager to update code
sscontrol manager sensitivity 10
sscontrol manager smoothing 2.0
sscontrol manager start ndmgr.log
sscontrol manager statusこのコマンドによって、以下の例のような出力が生成されます。
Manager status: ============= Metric port................................... 10004 Manager log filename.......................... manager.log Manager log level............................. 1 Maximum manager log size (bytes).............. unlimited Sensitivity level............................. 5 Smoothing index............................... 1.5 Update interval (seconds)..................... 2 Weights refresh cycle......................... 2 Reach log level............................... 1 Maximum reach log size (bytes)................ unlimited Reach update interval (seconds)............... 7
sscontrol manager stop
sscontrol manager version
>>-sscontrol--metric--+-add--sitename+sn2+...+snN:metric+metric1+...+metricN--------------+->< +-remove--sitename+sn2+...+snN:metric+metric1+...+metricN-----------+ +-proportions--sitename+sn2+...+snN:proportion1 prop2 prop3...propN-+ '-status--sitename+sn2+...+snN metric+metric1+...+metricN-----------'
例
sscontrol metric add site1:metric1
sscontrol metric proportions site1 0 100
sscontrol metric status site1:metric1このコマンドにより、以下のような出力が生成されます。
Metric Status: ------------ sitename ..................... site1 Metric name ................... metric1 Metric proportion ............. 50 Server ......... 9.37.56.100 Metric data .... -1
>>-sscontrol--nameserver--+-start--+----------------------+-+-->< | '-bindaddress--address-' | +-stop----------------------------+ '-status--------------------------'
>>-sscontrol--rule--+-add--sitename+sn2+...+snN:rule+r2+...+rN--type--value--| value |--| opts |-+->< +-dropserver--sitename+sn2+...+snN:rule+r2+...+rN--server+s2+...+snN---------+ +-remove--sitename+sn2+...+snN:rule+r2+...+rN--------------------------------+ +-set--sitename+sn2+...+snN:rule+r2+...+rN--| value |--| opts |--------------+ +-status--sitename+sn2+...+snN:rule+r2+...+rN--------------------------------+ '-useserver--sitename+sn2+...+snN:rule+r2+...+rN--server+s2+...+snN----------' opts |--+---------------------------------+--------------------------| +-beginrange--low--endrange--high-+ +-priority--value-----------------+ '-metricname--value---------------'
例
sscontrol rule add sitename:rulename type true priority 100
sscontrol rule add sitename:rulename type ip b 9.0.0.0 e 9.255.255.255
sscontrol rule add sitename:rulename type time beginrange 11 endrange 14 sscontrol rule useserver sitename:rulename server05
>>-sscontrol--server--+-add--sitename+sn2+...+snN:server+s2+...+sN--+------------------------+-+->< | +-metricaddress--address-+ | | '-weight--value----------' | +-down--sitename+sn2+...+snN:server+s2+...+sN----------------------------+ +-remove--sitename+sn2+...+snN:server+s2+...+sN--------------------------+ +-set--sitename+sn2+...+snN:server+s2+...+sN--+------------------------+-+ | +-metricaddress--address-+ | | '-weight--value----------' | +-status--sitename+sn2+...+snN:server+s2+...+sN--------------------------+ '-up--sitename+sn2+...+snN:server+s2+...+sN------------------------------'
例
sscontrol server add site1:27.65.89.42
sscontrol server down site1:27.65.89.42
sscontrol server remove :27.65.89.42
sscontrol server up site1:27.65.89.42
>>-sscontrol--set--+-loglevel--level--------+------------------>< +-logsize--+-unlimited-+-+ | '-size------' | '-logstatus--------------'
>>-sscontrol--sitename--+-add--sitename+sn2+...+snN--+----------------------------------------+-+->< | +-cachelife--value-----------------------+ | | +-networkproximity--yes | no-------------+ | | +-proportions--cpu--memory--port--metric-+ | | +-proximitypercentage--value-------------+ | | +-stickytime--time-----------------------+ | | +-ttl--time------------------------------+ | | +-waitforallresponses--yes | no----------+ | | '-weightbound--weight--------------------' | +-remove--sitename+sn2+...+snN------------------------------------------+ +-set--sitename+sn2+...+snN--+----------------------------------------+-+ | +-cachelife--value-----------------------+ | | +-networkproximity--yes | no-------------+ | | +-proportions--cpu--memory--port--metric-+ | | +-proximitypercentage--value-------------+ | | +-stickytime--time-----------------------+ | | +-ttl--time------------------------------+ | | +-waitforallresponses--yes | no----------+ | | '-weightbound--weight--------------------' | '-status--sitename+sn2+...+snN------------------------------------------'
例
sscontrol sitename add 130.40.52.153
sscontrol sitename set mySite networkproximity yes
sscontrol sitename set mySite cachelife 1900000
sscontrol sitename set mySite proximitypercentage 45
sscontrol sitename set mySite waitforallresponses no
sscontrol sitename set mySite ttl 7
sscontrol sitename set mySite proportions 50 48 1 1
sscontrol sitename remove 130.40.52.153
sscontrol sitename status mySiteこのコマンドによって、以下のような出力が生成されます。
SiteName Status: --------------- SiteName ........................... mySite WeightBound ........................ 20 TTL ................................ 5 StickyTime ......................... 0 Number of Servers .................. 1 Proportion given to CpuLoad ........ 49 Proportion given to MemLoad ........ 50 Proportion given to Port ........... 1 Proportion given to System metric .. 0 Advisor running on port ............ 80 Using Proximity .................... N
>>-sscontrol--status-------------------------------------------><
例
sscontrol statusこのコマンドによって、以下のような出力が生成されます。
NameServer has been started. Manager has been started. ----------------------------------------- | ADVISOR | SITENAME:PORT | TIMEOUT | ---------------------------------------- | http | 80 | unlimited | -----------------------------------------
この付録では、Consultant for Cisco CSS Switches の以下の lbccontrol コマンドの使用法について説明します:
ndcontrol コマンド・パラメーターは、最小限バージョンで入力することができます。単に、パラメーターの固有の文字を入力する必要があるだけです。たとえば、file save コマンドに関するヘルプを表示するには、lbccontrol help file の代わりに lbccontrol he f と入力することができます。
接頭部 "lbc" はロード・バランシング・コンサルタントを意味します。
>>-lbccontrol--advisor--+-connecttimeout--name--+-port---------+--timeoutseconds---+->< | '-cluster:port-' | +-interval--name--+-port---------+--seconds----------------+ | '-cluster:port-' | +-list-----------------------------------------------------+ +-loglevel--name--+-port---------+--level------------------+ | '-cluster:port-' | +-logsize--+-port---------+--port--+-size | unlimited-+----+ | '-cluster:port-' '-bytes------------' | +-receivetimeout--name--+-port---------+--timeoutseconds---+ | '-cluster:port-' | +-report--name--+-port---------+---------------------------+ | '-cluster:port-' | +-start--name--+-port---------+--+----------+--------------+ | '-cluster:port-' '-log file-' | +-status--name--+-port---------+---------------------------+ | '-cluster:port-' | +-stop--name--+-port---------+-----------------------------+ | '-cluster:port-' | +-timeout--name--+-port---------+--+-seconds | unlimited-+-+ | '-cluster:port-' '-seconds-------------' | '-version--name--+-port---------+--------------------------' '-cluster:port-'
advisor 名 | プロトコル | ポート |
---|---|---|
connect | ICMP | 12345 |
DB2 | 専用のもの | 50000 |
ftp | FTP | 21 |
http | HTTP | 80 |
ibmproxy | HTTP (Caching Proxy 経由) | 80 |
imap | IMAP | 143 |
nntp | NNTP | 119 |
ping | PING | 0 |
pop3 | POP3 | 110 |
smtp | SMTP | 25 |
ssl | SSL | 443 |
telnet | Telnet | 23 |
WLM | 専用のもの | 10007 |
デフォルトのファイルは、advisorname_port.log (http_80.log など) です。ログ・ファイルを保持するディレクトリーを変更するには、ログ・ファイル・パスの変更を参照してください。
manager の割合を設定して、advisor の情報が使用されるようにします。
例
lbccontrol advisor connecttimeout http 80 30
lbccontrol advisor interval ftp 21 6
lbccontrol advisor listこのコマンドによって、以下のような出力が生成されます。
------------------------------ | ADVISOR | PORT | TIMEOUT | ------------------------------ | http | 80 | unlimited | | ftp | 21 | unlimited | ------------------------------
lbccontrol advisor loglevel http 80 0
lbccontrol advisor logsize ftp 21 5000
lbccontrol advisor receivetimeout http 80 60
lbccontrol advisor report ftp 21このコマンドによって、以下のような出力が生成されます。
Advisor Report: --------------- Advisor name ............. Ftp Port number .............. 21 Cluster address .......... 9.67.131.18 Server address ........... 9.67.129.230 Load ..................... 8 Cluster address .......... 9.67.131.18 Server address ........... 9.67.131.215 Load ..................... -1
lbccontrol advisor start ftp 21 ftpadv.log
lbccontrol advisor status http 80このコマンドにより、以下のような出力が生成されます。
Advisor Status: --------------- Interval (seconds) ............ 15 Timeout (seconds) ............. Unlimited Connect timeout (seconds).......21 Receive timeout (seconds).......21 Advisor log filename .......... Http_80.log Log level ..................... 1 Maximum log size (bytes) ...... Unlimited
lbccontrol advisor stop http 80
lbccontrol advisor timeout ftp 21 5
lbccontrol advisor version ssl 443
>>-lbccontrol--cluster--+-add--cluster+c2+...--+-proportions--active--new--port--system-+-+->< | '-weightbound--weight--------------------' | +-set--cluster+c2+...--+-proportions--active--new--port--system-+-+ | '-weightbound--weight--------------------' | +-remove--cluster-------------------------------------------------+ '-status--cluster-------------------------------------------------'
例
lbccontrol cluster add 130.40.52.153
lbccontrol cluster remove 130.40.52.153
lbccontrol cluster proportions 60 35 5 0
lbccontrol cluster status 9.67.131.167このコマンドにより、以下のような出力が生成されます。
Cluster Status: --------------- Address ................................. 9.67.131.167 Number of target ports .................. 3 Default port weight bound ............... 10 Proportion given to active connections .. 49 Proportion given to new connections ..... 49 Proportion given specific to the port ... 2 Proportion given to system metrics ...... 0
>>-lbccontrol--executor--+-set--+-address--value-------+-+----->< | +-communityname--value-+ | | +-timeout--value-------+ | | '-retries--value-------' | '-status------------------------'
例
lbccontrol executor status Executor Status: ---------------- address ............................. 9.67.131.151 community name ...................... public timeout value ....................... 3 retires value ....................... 2
lbccontrol executor set address 130.40.52.167
>>-lbccontrol--file--+-delete--filename.ext-------------+------>< +-appendload--filename.ext---------+ +-report---------------------------+ +-save--filename.ext--force--------+ '-newload--filename.ext--+-------+-' '-force-'
ファイル拡張子 (.ext) は任意指定で、任意に選択できます。
共通インストール・ディレクトリー・パス -- c:¥Program Files¥ibm¥edge¥nd¥servers¥configurations¥component
固有インストール・ディレクトリー・パス -- c:¥Program Files¥ibm¥nd¥servers¥configurations¥component
例
lbccontrol file delete file3 ファイル (file3) が削除されました。
lbccontrol file newload file1.sv ファイル (file1.sv) は Dispatcher にロードされました。
lbccontrol file appendload file2.sv ファイル (file2.sv) は現行構成に追加されてロードされました。
lbccontrol file report FILE REPORT: file1.save file2.sv file3
lbccontrol file save file3 構成はファイル (file3) に保管されました。
>>-lbccontrol--help--+-advisor--+------------------------------>< +-cluster--+ +-executor-+ +-file-----+ +-help-----+ +-host-----+ +-log------+ +-manager--+ +-metric---+ +-port-----+ +-server---+ +-set------+ '-status---'
例
lbccontrol helpこのコマンドによって、以下のような出力が生成されます。
HELP COMMAND ARGUMENTS: --------------------------------- Usage: help <help option> Example: help cluster executor - help on executor command cluster - help on cluster command port - help on port command server - help on server command manager - help on manager command metric - help on metric command advisor - help on advisor command file - help on file command host - help on host command log - help on log command set - help on set command status - help on status command help - print complete help text< > 内のパラメーターは変数です。
>>-lbccontrol--host:--remote_host------------------------------><
lbccontrol host:remote_host
このコマンドをコマンド・プロンプトで実行してから、リモート Cisco Consultant マシンに対して実行したい任意の有効な lbccontrol コマンドを入力してください。
>>-lbccontrol--log--+-start----------------------+------------->< +-stop-----------------------+ +-set--+-retention--hours--+-+ | '-interval--seconds-' | '-status---------------------'
>>-lbccontrol--manager--+-interval--seconds------------------------+->< +-loglevel--level--------------------------+ +-logsize--+-size | unlimited-+------------+ | '-bytes------------' | +-quiesce--server--+-----+-----------------+ | '-now-' | +-reach set--+-interval--seconds---------+-+ | +-loglevel--level-----------+ | | '-logsize--size | unlimited-' | +-refresh--refresh cycle-------------------+ +-report--+----------------+---------------+ | '-cluster+c2+...-' | +-restart--message-------------------------+ +-sensitivity--weight----------------------+ +-smoothing--value-------------------------+ +-start--+-------------------------+-------+ | '-logfilename--metricport-' | +-status-----------------------------------+ +-stop-------------------------------------+ +-unquiesce--server------------------------+ '-version----------------------------------'
デフォルト・ファイルは、logs ディレクトリーにインストールされます。 付録 F, サンプル構成ファイルを参照してください。ログ・ファイルが保存されているディレクトリーを変更する際の情報については、ログ・ファイル・パスの変更 を参照してください。
例
lbccontrol manager interval 5
lbccontrol manager loglevel 0
lbccontrol manager logsize 1000000
lbccontrol manager quiesce 130.40.52.153
lbccontrol manager refresh 3
lbccontrol manager reportこのコマンドによって、以下のような出力が生成されます。
lbccontrol>>manager report ---------------------------------------- | HOST TABLE LIST | STATUS | ---------------------------------------- | server6| ACTIVE| | server5| ACTIVE| | server4| ACTIVE| | server3| ACTIVE| | server2| ACTIVE| | server1| ACTIVE| ---------------------------------------- ------------------------------------------------------------------------------------------------- | 9.67.154.35 | WEIGHT | ACTIVE % 49 | NEW % 50 | PORT % 1 | SYSTEM % 0 | ------------------------------------------------------------------------------------------------- | PORT: 80 | NOW | NEW | WT | CONNECT | WT | CONNECT | WT | LOAD | WT | LOAD | ------------------------------------------------------------------------------------------------- | server1 | 4 | 4 | 5 | 0 | 5 | 0 | 3| 301| -9999| -1| | server2 | 5 | 5 | 5 | 0 | 5 | 0 | 6| 160| -9999| -1| ------------------------------------------------------------------------------------------------- | PORT TOTALS:| 9 | 9 | | 0 | | 0 | | 461 | | -2 | ------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------- | 9.67.154.35 | WEIGHT | ACTIVE % 49 | NEW % 50 | PORT % 1 | SYSTEM % 0 | ------------------------------------------------------------------------------------------------- | PORT: 443 | NOW | NEW | WT | CONNECT | WT | CONNECT | WT | LOAD | WT | LOAD | ------------------------------------------------------------------------------------------------- | server3 | 4 | 4 | 5 | 0 | 5 | 0 | | 0| -9999| -1| | server4 | 5 | 5 | 5 | 0 | 5 | 0 | 0| 0| -9999| -1| ------------------------------------------------------------------------------------------------- | PORT TOTALS:| 9 | 9 | | 0 | | 0 | | 0 | | -2 | ------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------- | 9.67.154.34 | WEIGHT | ACTIVE % 49 | NEW % 50 | PORT % 1 | SYSTEM % 0 | ------------------------------------------------------------------------------------------------- | PORT: 80 | NOW | NEW | WT | CONNECT | WT | CONNECT | WT | LOAD | WT | LOAD | ------------------------------------------------------------------------------------------------- | server5 | 5 | 5 | 5 | 0 | 5 | 0 | 5| 160| -9999| -1| | server6 | 0 | 0 | 5 | 0 | 5 | 0 | -9999| -1| -9999| -1| ------------------------------------------------------------------------------------------------- | PORT TOTALS:| 5 | 5 | | 0 | | 0 | | 159 | | -2 | ------------------------------------------------------------------------------------------------- -------------------------------- | ADVISOR | PORT | TIMEOUT | -------------------------------- | http | 80 | unlimited | --------------------------------
lbccontrol manager restart Restarting the manager to update codeこのコマンドによって、以下のような出力が生成されます。
320-14:04:54 Restarting the manager to update code
lbccontrol manager sensitivity 10
lbccontrol manager smoothing 2.0
lbccontrol manager start ndmgr.log
lbccontrol manager statusこのコマンドによって、以下の例のような出力が生成されます。
Manager status: ============= Metric port .................................. 10004 Manager log filename ......................... manager.log Manager log level ............................ 1 Maximum manager log size (bytes) ............. unlimited Sensitivity level ............................ 0.05 Smoothing index .............................. 1.5 Update interval (seconds) .................... 2 Weights refresh cycle ........................ 1 Reach log level .............................. 1 Maximum reach log size (bytes) ............... unlimited Reach update interval (seconds) .............. 7
lbccontrol manager stop
lbccontrol manager version
>>-lbccontrol--metric--+-add--cluster+c2+...+cN:metric+metric1+...+metricN--------------+->< +-remove--cluster+c2+...+cN:metric+metric1+...+metricN-----------+ +-proportions--cluster+c2+...+cN:proportion1 prop2 prop3...propN-+ '-status--cluster+c2+...+cN:metric+metric1+...+metricN-----------'
注: Cisco Consultant の場合には、クラスター・アドレスは、Cisco CSS スイッチ構成中の所有者のコンテンツ・ルールの仮想 IP (VIP) アドレスと対応しています。
例
lbccontrol metric add 10.10.10.20:metric1
lbccontrol metric proportions 10.10.10.20 48 52
lbccontrol metric status 10.10.10.20:metric1このコマンドにより、以下のような出力が生成されます。
Metric Status: ------------ Cluster ....................... 10.10.10.20 Metric name ................... metric1 Metric proportion ............. 52 Server ......... 9.37.56.100 Metric data .... -1
>>-lbccontrol--port--+-add--cluster:port--+---------------------+-+->< | '-weightbound--weight-' | +-set--cluster:port--+---------------------+-+ | '-weightbound--weight-' | +-remove--cluster:port-----------------------+ '-status--cluster:port-----------------------'
例
lbccontrol port add 130.40.52.153:80+23
lbccontrol port set 130.40.52.153:80 weightbound 10
lbccontrol port remove 130.40.52.153:23
lbccontrol port status 9.67.131.153:80このコマンドによって、以下のような出力が生成されます。
Port Status: ------------ Port number .................... 80 Cluster address ................ 9.67.131.153 Number of servers .............. 2 Weight bound ................... 10
>>-lbccontrol--server--+-add--cluster:port:server--+--------------------+-+->< | +-weight--value------+ | | +-fixedweight--value-+ | | '-address--address---' | +-set--cluster:port:server--+-weight--value------+-+ | '-fixedweight--value-' | +-down--cluster:port:server------------------------+ +-remove--cluster:port:server----------------------+ +-report--cluster:port:server----------------------+ +-up--cluster:port:server--------------------------+ '-status--cluster:port:server----------------------'
例
lbccontrol server add 130.40.52.153:80:27.65.89.42
lbccontrol server remove ::27.65.89.42
lbccontrol server set 130.40.52.153:80:27.65.89.42 weight 10
>>-lbccontrol--set--+-loglevel--level---+---------------------->< +-logsize--+-size-+-+ | '-size-' | '-logstatus---------'
>>-lbccontrol--status------------------------------------------><
例
lbccontrol statusこのコマンドによって、以下のような出力が生成されます。
Manager has been started. -------------------------------- | ADVISOR | PORT | TIMEOUT | -------------------------------- | http | 80 | unlimited | | ftp | 21 | unlimited | --------------------------------
この付録には、 Network Dispatcher の Dispatcher コンポーネントに関するサンプル構成ファイルを記載しています。
サンプル・ファイルは .../nd/servers/samples/ ディレクトリーに入っています。
#!/bin/ksh # # configuration.sample - Sample configuration file for the Dispatcher component # # # Ensure the root user is the one executing this script. # # iam=`whoami` # if [ "$iam" != "root" ]if [ "$iam" != "root" ] # then # echo "You must login as root to run this script" # exit 2 # fi # # First start the server # # ndserver start # sleep 5 # # Then start the executor # # ndcontrol executor start # # The Dispatcher can be removed at any time using the # "ndcontrol executor stop" and "ndserver stop" commands to # stop the executor and server respectively prior to removing # the Dispatcher software. # # The next step in configuring the Dispatcher is to set the # NFA (non-forwarding address) and the cluster address(es). # # The NFA is used to remotely access the Dispatcher machine # for administration or configuration purposes. This # address is required since the Dispatcher will forward packets # to the cluster address(es). # # The CLUSTER address is the hostname (or IP address) to # which remote clients will connect. # # Anywhere in this file, you may use hostnames and IP # addresses interchangeably. # # NFA=hostname.domain.name # CLUSTER=www.yourcompany.com # echo "Loading the non-forwarding address" # ndcontrol executor set nfa $NFA # # The next step in configuring the Dispatcher is to create # a cluster. The Dispatcher will route requests sent to # the cluster address to the corresponding server machines # defined to that cluster. You may configure and server # multiple cluster address using Dispatcher. # Use a similar configuration for CLUSTER2, CLUSTER3, etc. # # echo "Loading first CLUSTER address " # ndcontrol cluster add $CLUSTER # # Now we must define the ports this cluster will use. Any # requests received by the Dispatcher on a defined port will # be forwared to the corresponding port of one of the server # machines. # # echo "Creating ports for CLUSTER: $CLUSTER" # ndcontrol port add $CLUSTER:20+21+80 # # The last step is to add each of the server machines to the # ports in this cluster. # Again, you can use either the hostname or the IP address # of the server machines. # # SERVER1=server1name.domain.name # SERVER2=server2name.domain.name # SERVER3=server3name.domain.name # echo "Adding server machines" # ndcontrol server add $CLUSTER:20+21+80: # $SERVER1+$SERVER2+$SERVER3 # # We will now start the load balancing components of the # Dispatcher. The main load balancing component is called # the manager and the second load balancing components are the # advisors. If the manager and advisors are not running the # Dispatcher sends requests in a round-robin format. Once the # manager is started, weighting decisions based on the number # of new and active connections is employed and incoming # requests are sent to the best server. The advisors give the # manager further insight into a servers ability to service # requests as well as detecting whether a server is up. If # an advisor detects that a server is down it will be # marked down (providing the manager proportions have been # set to include advisor input) and no further requests will be # routed to the server. # The last step in setting up the load balancing components # is to set the manager proportions. The manager updates the # weight of each of the servers based on four policies: # 1. The number of active connections on each server. # 2. The number of new connections to each server. # 3. Input from the advisors. # 4. Input from the system level advisor. # These proportions must add up to 100. As an example, setting # the manager proportions to # ndcontrol manager proportions 48 48 0 0 # will give active and new connections 48% input into the # weighting decision, the advisors will contribute 4% and # the system input will not be considered. # # NOTE: By default the manager proportions are set to 50 50 0 0 # # echo "Starting the manager..." # ndcontrol manager start # echo "Starting the FTP advisor on port 21 ..." # ndcontrol advisor start ftp 21 # echo "Starting the HTTP advisor on port 80 ..." # ndcontrol advisor start http 80 # echo "Starting the Telnet advisor on port 23 ..." # ndcontrol advisor start telnet 23 # echo "Starting the SMTP advisor on port 25 ..." # ndcontrol advisor start smtp 25 # echo "Starting the POP3 advisor on port 110 ..." # ndcontrol advisor start pop3 110 # echo "Starting the NNTP advisor on port 119 ..." # ndcontrol advisor start nntp 119 # echo "Starting the SSL advisor on port 443 ..." # ndcontrol advisor start ssl 443 # # echo "Setting the manager proportions..." # ndcontrol manager proportions 58 40 2 0 # # The final step in setting up the Dispatcher machine is to # alias the Network Interface Card (NIC). # # NOTE: Do NOT use this command in a high availability # environment. The go* scripts will configure the NIC and # loopback as necessary. # ndcontrol cluster configure $CLUSTER # If your cluster address is on a different NIC or subnet from the NFA use the following format for the cluster configure command. # ndcontrol cluster configure $CLUSTER tr0 0xfffff800 # where tr0 is your NIC (tr1 for the second token ring card, en0 # for the first ethernet card) and 0xfffff800 is a valid # subnet mask for your site. # # # The following commands are set to the default values. # Use these commands as a guide to change from the defaults. # ndcontrol manager loglevel 1 # ndcontrol manager logsize 1048576 # ndcontrol manager sensitivity 5.000000 # ndcontrol manager interval 2 # ndcontrol manager refresh 2 # # ndcontrol advisor interval ftp 21 5 # ndcontrol advisor loglevel ftp 21 1 # ndcontrol advisor logsize ftp 21 1048576 # ndcontrol advisor timeout ftp 21 unlimited # ndcontrol advisor interval telnet 23 5 # ndcontrol advisor loglevel telnet 23 1 # ndcontrol advisor logsize telnet 23 1048576 # ndcontrol advisor timeout telnet 23 unlimited # ndcontrol advisor interval smtp 25 5 # ndcontrol advisor loglevel smtp 25 1 # ndcontrol advisor logsize smtp 25 1048576 # ndcontrol advisor timeout smtp 25 unlimited # ndcontrol advisor interval http 80 5 # ndcontrol advisor loglevel http 80 1 # ndcontrol advisor logsize http 80 1048576 # ndcontrol advisor timeout http 80 unlimited # ndcontrol advisor interval pop3 110 5 # ndcontrol advisor loglevel pop3 110 1 # ndcontrol advisor logsize pop3 110 1048576 # ndcontrol advisor timeout pop3 110 unlimited # ndcontrol advisor interval nntp 119 5 # ndcontrol advisor loglevel nntp 119 1 # ndcontrol advisor logsize nntp 119 1048576 # ndcontrol advisor timeout nntp 119 unlimited # ndcontrol advisor interval ssl 443 5 # ndcontrol advisor loglevel ssl 443 1 # ndcontrol advisor logsize ssl 443 1048576 # ndcontrol advisor timeout ssl 443 unlimited #
以下は、configuration.cmd.sample というサンプル Network Dispatcher 構成ファイルであり、Windows で使用するものです。
@echo off rem configuration.cmd.sample - Sample configuration file for the rem Dispatcher component. rem rem ndserver must be started via Services rem rem rem Then start the executor rem rem call ndcontrol executor start rem rem The next step in configuring the Dispatcher is to set the rem NFA (non-forwarding address) and to set the cluster rem address(es). rem rem The NFA is used to remotely access the Dispatcher rem machine for administration configuration purposes. This rem address is required since the Dispatcher will forward rem packets to the cluster address(es). rem rem The CLUSTER address is the hostname (or IP address) to which rem remote clients will connect. rem rem Anywhere in this file, you may use hostnames and IP rem addresses interchangeably. rem NFA=[non-forwarding address] rem CLUSTER=[your clustername] rem rem set NFA=hostname.domain.name rem set CLUSTER=www.yourcompany.com rem echo "Loading the non-forwarding address" rem call ndcontrol executor set nfa %NFA% rem rem The following commands are set to the default values. rem Use these commands to change the defaults rem call ndcontrol executor set fintimeout 30 rem call ndcontrol executor set fincount 4000 rem rem The next step in configuring the Dispatcher is to create rem a cluster. The Dispatcher will route requests sent to rem the cluster address to the corresponding server machines rem defined to that cluster. You may configure and server rem multiple cluster addresses using Dispatcher. rem Use a similar configuration for CLUSTER2, CLUSTER3, etc. rem rem echo "Loading first CLUSTER address " rem call ndcontrol cluster add %CLUSTER% rem rem Now we must define the ports this cluster will use. Any rem requests received by the Dispatcher on a defined port rem will be forwarded to the corresponding rem port of one of the server machines. rem rem echo "Creating ports for CLUSTER: %CLUSTER%" rem call ndcontrol port add %CLUSTER%:20+21+80 rem rem The last step is to add each of the server machines to rem the ports in this cluster. Again, you can use either the rem hostname or the IP address of the server machines. rem rem set SERVER1=server1name.domain.name rem set SERVER2=server2name.domain.name rem set SERVER3=server3name.domain.name rem echo "Adding server machines" rem call ndcontrol server add %CLUSTER%:20+21+80: rem %SERVER1%+%SERVER2%+%SERVER3% rem rem We will now start the load balancing components of the rem Dispatcher. The main load balancing component is called rem the manager and the second load balancing components are the rem advisors. If the manager and advisors are not rem running the Dispatcher sends requests in a round-robin rem format. Once the manager is started, weighting decisions rem based on the number of new and active connections is rem employed and incoming requests are sent to the best rem server. The advisors give the manager further insight rem into a servers ability to service requests as well as rem detecting whether a server is up. If an advisor detects rem that a server is down it will be marked down (providing the rem manager proportions have been set to include advisor rem input) and no further requests will be routed to the server. rem The last step in setting up the load balancing rem components is to set the manager proportions. The rem manager updates the weight of each of the servers based rem on four policies: rem 1. The number of active connections on each server rem 2. The number of new connections for each server rem 3. Input from the advisors. rem 4. Input from the system level advisor. rem rem These proportions must add up to 100. As an example, rem setting the cluster proportions via rem ndcontrol cluster set <cluster> proportions 48 48 4 0 rem will give active and new connections 48% input into the rem weighting decision, the advisor will contribute 4% and rem the system input will not be considered. rem rem NOTE: By default the manager proportions are set to rem 50 50 0 0 rem echo "Starting the manager..." rem call ndcontrol manager start rem echo "Starting the FTP advisor on port 21 ..." rem call ndcontrol advisor start ftp 21 rem echo "Starting the HTTP advisor on port 80 ..." rem call ndcontrol advisor start http 80 rem echo "Starting the Telnet advisor on port 23 ..." rem call ndcontrol advisor start telnet 23 rem echo "Starting the SMTP advisor on port 25 ..." rem call ndcontrol advisor start smtp 25 rem echo "Starting the POP3 advisor on port 110 ..." rem call ndcontrol advisor start pop3 110 rem echo "Starting the NNTP advisor on port 119 ..." rem call ndcontrol advisor start nntp 119 rem echo "Starting the SSL advisor on port 443 ..." rem call ndcontrol advisor start ssl 443 rem rem echo "Setting the cluster proportions..." rem call ndcontrol cluster set %CLUSTER% proportions 58 40 2 0 rem rem The final step in setting up the Dispatcher machine is rem to alias the Network Interface Card (NIC). rem rem NOTE: Do NOT use this command in a high availability rem environment. The go* scripts will configure the NIC and rem loopback as necessary. rem rem ndcontrol cluster configure %CLUSTER% rem If your cluster address is on a different NIC or subnet rem from the NFA use the following format for the cluster rem configure command. rem ndcontrol cluster configure %CLUSTER% tr0 0xfffff800 rem where tr0 is your NIC (tr1 for the second token ring card, rem en0 for the first ethernet card) and 0xfffff800 is rem a valid subnet mask for your site. rem rem rem The following commands are set to the default values. rem Use these commands to guide to change from the defaults. rem call ndcontrol manager loglevel 1 rem call ndcontrol manager logsize 1048576 rem call ndcontrol manager sensitivity 5.000000 rem call ndcontrol manager interval 2 rem call ndcontrol manager refresh 2 rem rem call ndcontrol advisor interval ftp 21 5 rem call ndcontrol advisor loglevel ftp 21 1 rem call ndcontrol advisor logsize ftp 21 1048576 rem call ndcontrol advisor timeout ftp 21 unlimited rem call ndcontrol advisor interval telnet 23 5 rem call ndcontrol advisor loglevel telnet 23 1 rem call ndcontrol advisor logsize telnet 23 1048576 rem call ndcontrol advisor timeout telnet 23 unlimited rem call ndcontrol advisor interval smtp 25 5 rem call ndcontrol advisor loglevel smtp 25 1 rem call ndcontrol advisor logsize smtp 25 1048576 rem call ndcontrol advisor timeout smtp 25 unlimited rem call ndcontrol advisor interval http 80 5 rem call ndcontrol advisor loglevel http 80 1 rem call ndcontrol advisor logsize http 80 1048576 rem call ndcontrol advisor timeout http 80 unlimited rem call ndcontrol advisor interval pop3 110 5 rem call ndcontrol advisor loglevel pop3 110 1 rem call ndcontrol advisor logsize pop3 110 1048576 rem call ndcontrol advisor timeout pop3 110 unlimited rem call ndcontrol advisor interval nntp 119 5 rem call ndcontrol advisor loglevel nntp 119 1 rem call ndcontrol advisor logsize nntp 119 1048576 rem call ndcontrol advisor timeout nntp 119 unlimited rem call ndcontrol advisor interval ssl 443 5 rem call ndcontrol advisor loglevel ssl 443 1 rem call ndcontrol advisor logsize ssl 443 1048576 rem call ndcontrol advisor timeout ssl 443 unlimited rem
以下は、ADV_sample というサンプル advisor ファイルです。
/** * ADV_sample: The Network Dispatcher HTTP advisor * * * This class defines a sample custom advisor for Network Dispatcher. * Like all advisors, this custom advisor extends the function of the * advisor base, called ADV_Base. It is the advisor base that actually * performs most of the advisor's functions, such as reporting loads back * to the Network Dispatcher for use in the Network Dispatcher's weight * algorithm. The advisor base also performs socket connect and close * operations and provides send and receive methods for use by the advisor. * The advisor itself is used only for sending and receiving data to and * from the port on the server being advised. * The TCP methods within the advisor base are timed to calculate the load. * A flag within the constructor in the ADV_base * overwrites the existing load with the new load returned from the advisor * if desired. * * Note: Based on a value set in the constructor, the advisor base supplies * the load to the weight algorithm at specified intervals. If the actual * advisor has not completed so that it can return a valid load, the advisor * base uses the previous load. * * NAMING * * The naming convention is as follows: * * - The file must be located in the following Network Dispatcher * Directories: * * nd/servers/lib/CustomAdvisors/ * (nd¥servers¥lib¥CustomAdvisors on Windows 2000) * * - The Advisor name must be preceded with "ADV_". The advisor can * be started with only the name, however; for instance, the "ADV_sample" * advisor can be started with "sample". * * - The advisor name must be in lowercase. * * With these rules in mind, therefore, this sample is referred to as: * * <base directory>/lib/CustomAdvisors/ADV_sample.class * *
* Advisors, as with the rest of Network Dispatcher, must be compiled with * the prereq version of Java. * To ensure access to Network Dispatcher classes, make sure that the * ibmnd.jar file (located in the lib subdirectory of the base directory) * is included in the system's CLASSPATH. * * * Methods provided by ADV_Base: * * - ADV_Base (Constructor): * * - Parms * - String sName = Name of the advisor * - String sVersion = Version of the advisor * - int iDefaultPort = Default port number to advise on * - int iInterval = Interval on which to advise on the servers * - String sDefaultLogFileName = Unused. Must be passed in as "". * - boolean replace = True - replace the load value being calculated * by the advisor base * False - add to the load value being calculated * by the advisor base * - Return * - Constructors do not have return values. * * Because the advisor base is thread based, it has several other methods * available for use by an advisor. These methods can be referenced using * the CALLER parameter passed in getLoad(). * * These methods are as follows: * * - send - Send a packet of information on the established socket * connection to the server on the specified port. * - Parms * - String sDataString - The data to be sent is sent in the form of a * string * - Return * - int RC - Whether the data was sucessfully sent or not: zero * indicates data was sent; a negative integer indicates an * error. * * - receive - Receive information from the socket connection. * - Parms * - StringBuffer sbDataBuffer - The data received during the receive * call * - Return * - int RC - Whether the data was successfully received or not; zero * indicates data was sent; a negative integer indicates an error. * * If the function provided by the advisor base is * not sufficient, you can create the appropriate function within the * advisor and the methods provided by the advisor base will then be * ignored. * * An important question regarding * the load returned is whether to apply it to the load being generated * within the advisor base, or to replace it; there are valid instances of * both situations. * * This sample is essentially the Network Dispatcher HTTP advisor. It * functions very simply: * a send request--an http head request--is issued. Once a response is * received, the getLoad method terminates, flagging the advisor base to * stop timing the request. The method is then complete. The information * returned is not parsed; the load is based on the time required * to perform the send and receive operations. */ package CustomAdvisors; import com.ibm.internet.nd.advisors.*; public class ADV_sample extends ADV_Base implements ADV_MethodInterface { String COPYRIGHT = "(C) Copyright IBM Corporation 1997, All Rights Reserved.¥n"; static final String ADV_NAME = "Sample"; static final int ADV_DEF_ADV_ON_PORT = 80; static final int ADV_DEF_INTERVAL = 7; // Note: Most server protocols require a carriage return ("¥r") and line // feed ("¥n") at the end of messages. If so, include them in your // string here. static final String ADV_SEND_REQUEST = "HEAD / HTTP/1.0¥r¥nAccept: */*¥r¥nUser-Agent: " + "IBM_Network_Dispatcher_HTTP_Advisor¥r¥n¥r¥n"; /** * Constructor. * * Parms: None; but the constructor for ADV_Base has several parameters * that must be passed to it. * */ public ADV_sample() { super( ADV_NAME, "2.0.0.0-03.27.98", ADV_DEF_ADV_ON_PORT, ADV_DEF_INTERVAL, "", // not used false); super.setAdvisor( this ); } /** * ADV_AdvisorInitialize * * Any Advisor-specific initialization that must take place after the * advisor base is started. * This method is called only once and is typically not used. */ public void ADV_AdvisorInitialize() { return; } /** * getLoad() * * This method is called by the advisor base to complete the advisor's * operation, based on details specific to the protocol. In this sample * advisor, only a single send and receive are necessary; if more complex * logic is necessary, multiple sends and receives can be issued. * For example, a response might be received and parsed. Based on the * information learned thereby, another send and receive could be issued. * * Parameters: * * - iConnectTime - The current load as it refers to the length of time it * took to complete the connection to the server through * the specified port. * * - caller - A reference to the advisor base class where the Network * Dispatcher-supplied methods are to perform simple TCP * requests, mainly send and receive. * * Results: * * - The load - A value, expressed in milliseconds, that can either be * added to the existing load, or that can replace the existing load, * as determined by the constructor's "replace" flag. * * The larger the load, the longer it took the server to respond; * therefore, the higher the weight will be within Network Dispatcher * regarding load balancing. * * If the value is negative, an error is assumed. An error from an * advisor indicates that the server the advisor is trying to reach is * not accessible and has been identified as being down. * Network Dispatcher will not attempt to load balance to a server that * is down. Network Dispatcher will resume load balancing to the server * when a positive value is received. * * A value of zero is typically not returned; Network Dispatcher handles * a load of zero in a special way. Zero is assumed to indicate an * unknown status, and Network Dispatcher gives the server a high * weight in response. */ public int getLoad(int iConnectTime, ADV_Thread caller) { int iRc; int iLoad = ADV_HOST_INACCESSIBLE; // -1 // Send tcp request iRc = caller.send(ADV_SEND_REQUEST); if (iRc >= 0) { // Perform a receive StringBuffer sbReceiveData = new StringBuffer(""); iRc = caller.receive(sbReceiveData); // If the receive is successful, a load of zero is returned. // This is because the "replace" flag is set to false, // indicating that the load built within the base advisor is // to be used. // Since nothing was done with the returned data, additional // load is not necessary. // Note: it is known that the advisor base load will not be // zero, therefore a zero load will // not be returned for use in calculating the weight. if (iRc >= 0) { iLoad = 0; } } return iLoad; } } // End - ADV_sample
この付録では、2 つの Network Dispatcher コンポーネント (Dispatcher コンポーネントおよび CBR コンポーネント) の能力が Caching Proxy と一緒に結合されている 2 層 high availability 構成について説明します。
図 30. Dispatcher、CBR、および Caching Proxy を使用する 2 層 high availability 構成例
図 30用のサーバー・マシン・セットアップは、以下のとおりです。
図 30には、複数のバックエンド Web サーバー間でロード・バランシングされる複数のサーバー (EdgeServer1、EdgeServer2、EdgeServer3) の基本表現が示されています。 CBR コンポーネントは Caching Proxy を使用して、URL のコンテンツを基にして要求をバックエンド Web サーバーに転送します。 Dispatcher コンポーネントは、Edge Server 間の CBR コンポーネントをロード・バランシングするために使用されます。 Dispatcher コンポーネントの high availability フィーチャーは、high availability プライマリー・マシン (EdgeServer1) がいつ失敗しても、バックエンド・サーバーに対する要求が継続されることを保証するために使用されます。
基本構成ガイドライン:
サンプル行は注 1-4 (前述) で次のように参照されています。
Hostname www.company.com SendRevProxyName yes Caching ON CacheMemory 128000 K Proxy /* http://www.company.com/* www.company.com
サンプル構成ファイル:
以下のサンプル構成ファイルは、図 30に示されているとおりの Edge Server 構成のセットアップ時に作成されるファイルと類似しています。サンプル構成ファイルは、Network Dispatcher の Dispatcher および CBR コンポーネント用のファイルを表しています。サンプル構成では、単一のイーサネット・アダプターが Edge Server マシンのそれぞれに使用され、アドレスのすべてはプライベート・サブネット内で表されます。サンプル構成ファイルでは、指定されたマシン用に以下の IP アドレスが使用されます。
プライマリー high availability Edge Server 上の Dispatcher コンポーネント用サンプル構成ファイル:
ndcontrol executor start ndcontrol cluster add 192.168.1.11 primaryhost 192.168.1.10 ndcontrol port add 192.168.1.11:80 ndcontrol server add 192.168.1.11:80:edgeserver1 address 192.168.1.10 ndcontrol server add 192.168.1.11:80:edgeserver2 address 192.168.1.20 ndcontrol server add 192.168.1.11:80:edgeserver3 address 192.168.1.30 ndcontrol manager start manager.log 10004 ndcontrol highavailability heartbeat add 192.168.1.10 192.168.1.20 ndcontrol highavailability backup add primary auto 4567
Edge Server 上の CBR コンポーネント用サンプル構成ファイル:
cbrcontrol set loglevel 1 cbrcontrol executor start cbrcontrol cluster add 192.168.1.11 cbrcontrol port add 192.168.1.11:80 cbrcontrol server add 192.168.1.11:80:webserverA address 192.168.1.71 cbrcontrol server add 192.168.1.11:80:webserverB address 192.168.1.72 cbrcontrol server add 192.168.1.11:80:webserverC address 192.168.1.73 cbrcontrol rule add 192.168.1.11:80:webA_rule type content pattern (URI=*WSA*)|(URI=*wsA*) priority 21 cbrcontrol rule useserver 192.168.1.11:80:webA_rule webserverA cbrcontrol rule add 192.168.1.11:80:webB_rule type content pattern (URI=/WS_B*) priority 22 cbrcontrol rule useserver 192.168.1.11:80:webB_rule webserverB cbrcontrol rule add 192.168.1.11:80:webC_rule type content pattern URI=*webC* priority 23 cbrcontrol rule useserver 192.168.1.21:80:webC_rule webserverC
多くの場合に、マウス・アクションで実行できるオペレーションはキーまたはキーの組み合わせを使用して実行できます。多くのメニュー・アクションはキーボードから開始できます。
キーボード使用上の指示に関するオペレーティング・システムについては、資料をご覧ください。
Network Dispatcher にはオンライン・ヘルプ機能が組み込まれています。これは、製品のインストール、計画、構成、および操作時に実行するタスクについて説明しています。
現行ウィンドウのヘルプを表示するには、右上隅の疑問符 (?) をクリックしてください。以下を選択します。
Network Dispatcher の使用に関する追加情報については、以下を参照してください。
http://www.ibm.com/software/webservers/edgeserver
http://www.ibm.com/software/webservers/edgeserver/support.html
Network Dispatcher のヒントの検索をクリックしてください。
本書において、日本では発表されていない IBM 製品 (機械およびプログラム)、プログラミング、またはサービスについて言及または説明する場合があります。しかし、このことは、弊社がこのような IBM 製品、プログラミングまたはサービスを、日本で発表する意図があることを必ずしも示すものではありません。本書で、IBM ライセンス・プログラムまたは他の IBM 製品に言及している部分があっても、このことは当該プログラムまたは製品が使用可能であることを意味するものではありません。これらのプログラムまたは製品に代えて、IBM の知的所有権を侵害することのない機能的に同等のプログラムまたは製品を使用することができます。ただし、IBM によって明示的に指定されたものを除き、これらのプログラムまたは製品に関連する稼働の評価および検証はお客様の責任で行っていただきます。
IBM は、本書に記載されている内容に関して特許権 (特許出願中のものを含む) を保有している場合があります。本書の提供は、お客様にこれらの特許権について実施権を許諾することを意味するものではありません。実施権、使用権等の許諾については、下記の宛先に、書面にてご照会ください。
〒106-0032 東京都港区六本木 3 丁目 2-31
IBM World Trade Asia Corporation
Intellectual Property Law & Licensing
本プログラムのライセンス保持者で、(i) 独自に作成したプログラムとその他のプログラム(本プログラムを含む)との間での情報交換、および (ii) 交換された情報の相互利用を可能にすることを目的として、本プログラムに関する情報を必要とする方は、下記に連絡してください。
Site Counsel
IBM Corporation
P.O. Box 12195
3039 Cornwallis Avenue
Research Triangle Park, NC 27709-2195
USA
本書で説明されているライセンス・プログラムまたはその他のライセンス資料は、IBM 所定のプログラム契約の契約条項に基づいて、 IBM より提供されます。
本書は、生産的な使用を意図するものではなく、特定物として現存するままの状態で提供され、法律上の瑕疵担保責任を含めて、いかなる保証も適用されません。
本製品には、CERN 社により開発、販売されるコンピューター・ソフトウェアが含まれます。このような使用表示は、ここに含まれる CERN コンピューター・ソフトウェアまたはその一部を含む一切の製品において完全に言及されるものとします。
以下は、 IBM Corporation の商標です。
AIX
IBM
IBMLink
LoadLeveler
OS/2
NetView
WebSphere
Lotus は、 Lotus Development Corporation の商標です。
Domino は、 Lotus Development Corporation の商標です。
Tivoli は、 Tivoli Systems, Inc の商標です。
Java およびすべての Java 関連の商標およびロゴは、 Sun Microsystems, Inc. の米国およびその他の国における商標または登録商標です。
Solaris は、 Sun Microsystems, Inc. の米国およびその他の国における商標または登録商標です。
Microsoft、 Windows、 Windows NT、および Windows ロゴは、 Microsoft Corporation の米国およびその他の国における商標です。
Cisco は Cisco Systems, Inc. の商標です。
HP は Hewlett-Packard Company の商標です。
Linux は、Linus Torvalds の登録商標です。
Red Hat は、Red Hat, Inc. の登録商標です。
UNIX は、The Open Group がライセンスしている米国およびその他の国における登録商標です。
本書において 2 重アスタリスク (**) を付けて示した他の会社名、製品名およびサービス名等はそれぞれ各社の商標または登録商標です。