12.6. VIRTUAL SERVERS

VIRTUAL SERVERSパネルには、現在定義済みの各仮想サーバに関する情報が表示されます。各テーブルエントリには、仮想サーバのステータス、サーバ名、そのサーバに割り当てられている仮想IPアドレス、サービスが通信に使用するポート番号、使用するプロトコル、仮想デバイスインターフェイスが表示されます。

図 12-5. VIRTUAL SERVERSパネル

VIRTUAL SERVERSパネルに表示される各サーバは、後続の画面すなわちサブセクションで設定することができます。

サービスを追加するには、ADDボタンをクリックします。サービスを削除するには、仮想サーバの隣にあるラジオボタンをクリックして削除するサービスを選択してから、DELETEボタンをクリックします。

このテーブルで仮想サーバを有効または無効にするには、その仮想サーバのラジオボタンをクリックしてから、ACTIVATEボタンまたはDEACTIVATEボタンをクリックします。

仮想サーバを追加した後で、設定することができます。その仮想サーバの左にあるラジオボタンをクリックしてから、EDITボタンをクリックすると、VIRTUAL SERVERサブセクションが表示されます。

12.6.1. VIRTUAL SERVERサブセクション

図12-6 に示すVIRTUAL SERVERサブセクションパネルを使うと、仮想サーバを個別に設定することができます。特にこのサーバに関連したサブセクションに対するリンクが、このページの最上部にあります。ただし、この仮想サーバに関連するサブセクションを設定する前に、このページの作業を完了してから、ACCEPTボタンを押します。

図 12-6. VIRTUAL SERVERSサブセクション

Name

仮想サーバを識別するための説明的な名前を入力します。この名前は、マシンのホスト名ではありませんので、説明的でわかりやすいものにします。仮想サーバで使用するプロトコル(HTTPなど)を名前に使うこともできます。 HTTP.

Application port

サービスアプリケーションがリッスンするポート番号を入力します。この例はHTTPサービス用なので、ポート80が使用されています。

Protocol

ドロップダウンメニューのUDPとTCPの間で選択します。一般に、WebサーバはTCPプロトコルを使って通信するので、上記の例ではTCPが選択されています。

Virtual IP Address

仮想サーバの浮動IPアドレスを、このテキストフィールドに入力します。

Virtual IP Network Mask

仮想サーバのネットマスクを、ドロップダウンメニューを使って設定します。

Firewall Mark

マルチポートプロトコルをバンドルしているか、別の関連するプロトコル用のマルチポート仮想サーバを作成している場合を除き、ファイアウォールマークの整数値を入力してはいけません。この例では、ポート80でのHTTPに対する接続と、ポート443でのHTTPSに対する接続を、ファイアウォールマークの値80を使ってバンドルしているので、上記の仮想サーバにFirewall Markの値80が設定されています。パーシステンスと組み合わせた場合、このテクニックは標準のWebページとセキュアWebページの両方にアクセスするユーザーに、状態を持続している同じリアルサーバを経由させます。

警告警告
 

このフィールドにファイアウォールマークを入力することにより、このファイアウォールマークが付加されているパケットを同じものとして処理することをIPVSに認識させることができますが、実際にファイアウォールマークを指定するには、Piranha 設定ツールの外側でさらに設定を行う必要があります。マルチポートサービスの作成についての説明は、項11.3を 参照してください。アベイラビリティの高いFTP仮想サーバの構築については、項11.4 を参照してください。

Device

Virtual IP Addressフィールドで定義されている浮動IPアドレスをバインドするネットワークデバイスを入力します。

公開の浮動IPアドレスには、公衆ネットワークに接続しているEthernetインターフェイスに対するエイリアスを設定する必要があります。この例では、公衆ネットワークはeth0インターフェイスで接続しているので、デバイス名としてeth0:1を入力する必要があります。

Re-entry Time

障害が発生した後で、アクティブLVSルータがリアルサーバのクラスタへの復帰を試みるまでの経過時間を定義する整数値を、秒単位で入力します。

Service Timeout

リアルサーバが停止状態と見なされ、クラスタから削除されるまでの経過時間を定義する整数値を、秒単位で入力します。

Quiesce server

Quiesce serverラジオボタンを選択した場合、新しいリアルサーバノードがオンラインに接続するたびに、最少接続テーブルがゼロ(0)にリセットされるので、アクティブLVSルータはすべてのリアルサーバがクラスタに新しく追加されたのと同じ状態で、要求をルーティングすることができます。このオプションにより、新しいサーバがクラスタに加入した時点で多数の接続により機能停止に陥るのを防ぎます。

Load monitoring tool

LVSルータは、多様なリアルサーバ上の負荷を、rupruptimeを使って監視することができます。ドロップダウンメニューからrupを選択した場合、各リアルサーバでrstatdサービスが稼働していなければなりません。ruptimeを選択した場合、各リアルサーバでrwhodサービスが稼働していなければなりません。

注意注意
 

負荷の監視は、負荷分散と同じではないので、負荷の重いスケジュールアルゴリズムと組み合わせた場合のスケジュール動作を予測するのは困難です。また、負荷の監視を使用する場合、クラスタ内のリアルサーバはLinuxマシンでなければなりません。

Scheduling

ドロップダウンメニューから、適当なスケジュールアルゴリズムを選択します。デフォルトは、Weighted least-connectionです。スケジュールアルゴリズムの詳細については、 項9.3.1 を参照してください。

Persistence

管理者がクライアントのトランザクション中に、仮想サーバに対するパーシステントコネクションを必要とする場合、無活動状態で接続がタイムアウトするまで待機する秒数を、このテキストフィールドに入力します。

誓要項目重要
 

上記のFirewall Markフィールドに値を入力した場合、 パーシステンスの値も入力する必要があります。また、 ファイアウォールマークとパーシステンスを一緒に使う場合、 ファイアウォールマークを使う各仮想サーバのパーシステンスの数値は すべて同じ値に設定してください。パーシステンスとファイアウォールマークについては、 項9.5 を参照してください。

Persistence Network Mask

特定のサブネットのパーシステンスを制限するには、ドロップダウンメニューから該当するネットワークマスクを選択します。

注意注記
 

ファイアウォールマークが導入される前は、サブネットによってパーシステンスを制限するのは、粗雑な方法でした。現在では、ファイアウォールマークと関連させてパーシステンスを使用することが、同じ結果がもたらす最善の方法です。

警告警告
 

このパネルで設定を変更したら、ACCEPTボタンをクリックして、新しいパネルを選択しても、変更内容が失われないようにするのを忘れないでください。

12.6.2. REAL SERVERサブセクション

パネルの最上部にあるREAL SERVERサブセクションリンクをクリックすると、EDIT REAL SERVERサブセクションが表示されます。ここには、特定の仮想サービス用の物理サーバホストのステータスが表示されます。

図 12-7. REAL SERVERサブセクション

ADDボタンをクリックして、新規サーバを追加します。既存のサーバを削除するには、そのサーバの隣にあるラジオボタンを選択してから、DELETEボタンをクリックします。EDITボタンをクリックすると、図12-8に示すようなEDIT REAL SERVERパネルが表示されます。

図 12-8. REAL SERVER設定パネル

このパネルには3つの入力フィールドがあります。

Name

リアルサーバ用の説明的な名前。

ティップヒント
 

この名前は、マシンのホスト名ではありませんので、説明的でわかりやすいものにします。

Address

リアルサーバのIPアドレス。関連する仮想サーバのリッスンするポート番号はすでに指定されているので、ポート番号を付加してはいけません。

Weight

このホストの処理能力を、プール内の他のホストと比較した整数値。任意の値を設定できますが、クラスタ内の他のリアルサーバと比較した割合として処理します。サーバの負荷係数の詳細については、項9.3.2 を参照してください。

警告警告
 

このパネルで設定を変更したら、ACCEPTボタンをクリックして、新しいパネルを選択しても、変更内容が失われないようにするのを忘れないでください。

12.6.3. EDIT MONITORING SCRIPTSサブセクション

ページの先頭にあるMONITORING SCRIPTSリンクをクリックします。EDIT MONITORING SCRIPTSサブセクションで、 管理者はsendまたはexpect文字列シーケンスを指定することにより、各リアルサーバ上で仮想サーバのサービスが機能しているか検証することができます。 また、管理者はこのサブセクションでカスタマイズしたスクリプトを指定して 動的に変化するデータが必要なサービスを検査することもできます。

図 12-9. EDIT MONITORING SCRIPTSサブセクション

Sending Program

サービスをより高度に検証する場合、このフィールドを使って、サービスチェックスクリプトのパスを指定することができます。この機能は、HTTPSやSSLなど、動的に変化するデータが必要なサービスの場合に、特に役立ちます。

この機能を使用するには、テキスト形式の応答を戻すスクリプトを作成し、実行可能形式にした上で、Sending Programフィールドにパスを入力する必要があります。

ティップヒント
 

リアルサーバプール内の各サーバが検査されるようにするには、Sending Programフィールドでスクリプトのパスの後に特別なトークン%hを指定します。このトークンは、nannyデーモンによってスクリプトが呼び出されると、各サーバのIPアドレスによって置き換えられます。

以下に、外部サービスチェックスクリプトの作成時に役に立つスクリプトの例を示します。

#!/bin/sh

TEST=`dig -t soa example.com @$1 | grep -c dns.example.com

if [ $TEST != "1" ]; then
	echo "OK
else
	echo "FAIL"
fi

注意注記
 

外部プログラムをSending Programフィールドに入力した場合、Sendフィールドは無視されます。

Send

nannyデーモン用の各リアルサーバに送信する文字列を、このフィールドに入力します。デフォルトでは、SendフィールドはHTTP用に設定されています。必要に応じて、この値を変更することができます。このフィールドを空のままにしておくと、nannyデーモンが、(成功する場合は)サービスが稼働していると想定しているポートのオープンを試みます。

このフィールドに指定できるsendシーケンスは1つだけであり、指定できる文字は、印字可能なASCII文字と以下のエスケープ文字だけです。

  • \n(改行)

  • \r(キャリッジリターン)

  • \t(タブ)

  • \(直後の文字をエスケープすることを示す文字)

Expect

サーバが正常に機能している場合に戻す、テキスト形式の応答を、このフィールドに入力します。独自の送信プログラムを作成した場合は、そのプログラムで成功した場合に送信するよう指定した応答を入力します。

ティップヒント
 

指定したサービスに送信する内容を決めるには、リアルサーバ上のポートに対するtelnet接続をオープンすることで、戻される内容を確認することができます。たとえば、FTPは接続時に220をレポートするので、Sendフィールドにquitと入力し、Expectフィールドに220と入力します。

警告警告
 

このパネルで設定を変更したら、ACCEPTボタンをクリックして、新しいパネルを選択しても、変更内容が失われないようにするのを忘れないでください。

Piranha 設定ツールを使って仮想サーバを設定したら、 特定の設定ファイルをバックアップLVSルータにコピーする必要があります。 詳細については、項12.7 を参照してください。