ATM とするノードのオペレーティングシステムは、Turbolinux 11 Server である必要があります。サービスノードは、他のオペレーティングシステムを用いることもできますが、ターボリナックスでは、他のオペレーティングシステムをサービスノードとしたクラスタの動作をサポートしていません。
ATM からサービスノードへパケットを転送するには、前に述べたように、NAT、ダイレクトフォワーディング、トンネリングと 3 つの異なる転送方法があります。NAT 転送方法は最も単純な方法です。これは、正しい IP アドレス、ネットワークマスク、およびデフォルトゲートウェイを設定する以外は、サービスノードに特別な設定を行う必要がありません。ダイレクトフォワーディングおよびトンネリングは、サービスノードに特別な設定が必要です。NAT 転送方法 は特別な設定を必要としないため、この章ではダイレクトフォワーディングおよびトンネリングを使用するサービスノードの設定方法のみを説明します。
この章で説明する設定に加えて、サービスノードでは、実行するネットワークサービスの設定も必要です。それらの手順については、サービスと使用するソフトウェアによって異なるため、このマニュアルでは説明しません。しかし、そのサービスをスタンドアロンの非クラスタ環境ですでに実行している場合は、構成方法に違いはありません。その場合は、この章の説明を参考にして、クラスタの仮想 IP アドレスでサービス要求を受け入れられるようにサービスノードの設定を行うだけです。
ここでは、以下のオペレーティングシステムをサービスノードとする手順を説明します。
Turbolinux 11 Server
システムをサービスノードとするには、手動と自動の 2 つの方法があります。最も簡単な方法はサービスノードへも Turbolinux Cluster LoadBalancer 11 をインストールすることです。これによってシステムは自動的にサービスノードとして構成され、クラスタ管理がより簡単に行えます。clusterserverd デーモンがサービスノードで必要になるすべての構成を自動的に設定します。また、この方法を使用すると、他のクラスタノード間で構成ファイルやコンテンツを簡単に同期化することができます。また、この方法は、システムを ATM とサービスノードの両方として動作させることのできる唯一の方法でもあります。
サービスノードへ Turbolinux Cluster LoadBalancer 11 をインストールせずに、ユーザーが手動で設定することも可能です。手動でサービスノードを設定する場合は、以下の手順に従います。しかし、先に述べたようにサービスノードへも Turbolinux Cluster LoadBalancer 11 をインストールされることをお勧めします。
サービスノードがクラスタの仮想 IP アドレスに送信される要求に応答できるようにするには、ネットワークインターフェイスにエイリアスを設定する必要があります。これを行うには、カーネルの IP エイリアシングを有効にしなければなりません。エイリアスは、同じネットワークインターフェイスにアタッチされる追加の IP アドレスを定義します。ここで行いたいのは、ネットワークインターフェイスがプライマリ ATM から転送されたパケットを受け取ったときに、それに応答するように設定することです。ATM はパケットをサービスノードに転送するときに宛先アドレスを変更しないため、サービスノードのエイリアスに設定する IP アドレスはクラスタの仮想 IP アドレスを設定する必要があります。
エイリアスを作成するには、ifconfig プログラムを使用します。IP アドレスが 10.0.0.3 で、クラスタの仮想 IP アドレスが 10.0.0.99 だと仮定します。eth0 ネットワークインターフェイスの設定を表示すると、以下のようになります。
# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:AB:CD:12:12:3F
IPaddr:10.0.0.3 Bcast:10.0.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:608 errors:0 dropped:0 overruns:0 frame:0
TX packets:992 errors:1 dropped:0 overruns:0 carrier:0
collisions:15 txqueuelen:100
Interrupt:10 Base address:0x210 |
エイリアスを追加するには、以下のコマンドを実行します。
# ifconfig eth0:1 10.0.0.99 up |
eth0 の後ろに付いている :1 は、同じ物理ネットワークカードのエイリアスアドレスを示すのに UNIX および Linux が使用する構文です。このエイリアスの部分には、任意に 4 文字までの文字列を指定できます。
エイリアスの作成には、1 つの問題点があります。それは、ネットワーク上の別のホストが同じサブネットの IP アドレスにパケットを送信する場合、その IP アドレスを持っているのはどのホストであるかを判断するために ARP ブロードキャストを送信することです。その IP アドレスを持つホストは、その IP アドレスおよび一致する MAC アドレスを返します。しかし、すべてのクラスタノードが同じ IP アドレスを持っていると、それらすべてがこの ARP 要求に応答することになります。したがって、プライマリ ATM を除くすべてのシステムは、 ARP 要求に応答しないよう設定する必要があります。つまり、クラスタの仮想IPアドレスへ送信されるすべてのトラフィックは、まず最初にプライマリ ATM を通過するようにしなければなりません。
これに対する解決策は、イーサネットインターフェイスの代わりに、ループバックインターフェイスにエイリアスを作成することです。ループバックインターフェイスは、それに関連付けられているハードウェアまたは物理ネットワークを持たないネットワークインターフェイスです。したがって、eth0:1 のエイリアスを作成する代わりに、例えば、以下ようにコマンドを実行してループバックインターフェイス(lo)にエイリアスを追加します。
# ifconfig lo:1 10.0.0.99 netmask 255.255.255.255 up |
次に、インターフェイスの ARP 応答をオフにします。ARP 応答をオフにするには、/proc ファイルシステムを使用します。これを行うには、1 を /proc/sys/net/ipv4/conf/all にある hidden ファイルおよび使用しているインターフェイスの hidden ファイルにエコーします。以下に、ループバックインターフェイスの ARP 応答をオフにする例を示します。
# echo 1 > /proc/sys/net/ipv4/conf/all/hidden # echo 1 > /proc/sys/net/ipv4/conf/lo/hidden |
![]() | サービスノードを再起動した場合でも、これらの設定が有効となるようにしておくことをお勧めします。例えば、/etc/rc.d/rc.local スクリプトにこれらのコマンドを記述します。また、Turbolinux であれば、turbonetcfg を使用してエイリアスの設定が行えます。 |