Sun Cluster の概念 (Solaris OS 版)

クラスタインターコネクトによるデータサービストラフィックの送受信

クラスタには、ノード間を結ぶ複数のネットワーク接続が必要です。クラスタインターコネクトは、これらの接続から構成されています。

Sun Cluster ソフトウェアは、複数のインターコネクトを使用して、次の目標を達成します。

内部と外部の両方のトラフィック (ファイルシステムのデータやスケーラブルサービスのデータなど) の場合、メッセージはすべての利用できるインターコネクト間で転送されます。クラスタインターコネクトは、ノード間の通信の可用性を高めるためにアプリケーションから使用することもできます。たとえば、分散アプリケーションでは、個々のコンポーネントが異なるノードで動作することがあり、その場合には、ノード間の通信が必要になります。パブリック伝送の代わりにクラスタインターコネクトを使用することで、個別のリンクに障害が発生しても、接続を持続することができます。

ノードまたはゾーン間の通信にクラスタインターコネクトを使用するには、Sun Cluster のインストール時に設定したプライベートホスト名をアプリケーションで使用する必要があります。たとえば、node1 のプライベートホスト名が clusternode1-priv である場合、クラスタインターコネクトを経由して node1 と通信するときにこの名前を使用する必要があります。この名前を使用してオープンされた TCP ソケットは、クラスタインターコネクトを経由するように経路指定され、プライベートネットワークアダプタに障害が発生した場合でも、この TCP ソケットは透過的に再経路指定されます。任意の 2 つのノード間のアプリケーション通信はすべてのインターコネクト経由で転送されます。ある特定の TCP 接続のトラフィックは、ある特定の時点では、1 つのインターコネクト上を流れます。異なる TCP 接続はすべてのインターコネクト間で転送されます。さらに、UDP トラフィックは常に、すべてのインターコネクト間で利用されます。

アプリケーションでは、ゾーンのプライベートホスト名を使用し、ゾーン間でクラスタインターコネクトを経由して通信することもできます。ただし、各ゾーンのプライベートホスト名をまず設定しないと、アプリケーションは通信を開始することができません。各ゾーンは、通信するための独自のプライベートホスト名を持っている必要があります。あるゾーンで動作中のアプリケーションは、同じゾーン内のプライベートホスト名を使用して、他ゾーン内のプライベートホスト名と通信します。1 つのゾーン内の各アプリケーションは、別のゾーン内のプライベートホスト名を使って通信することはできません。

Sun Cluster のインストール時に複数のプライベートホスト名が設定されているため、クラスタインターコネクトでは、そのときに選択した任意の名前を使用できます。実際の名前を判別するために scha_cluster_get コマンドを scha_privatelink_hostname_node 引数と組み合わせて使用します。詳細は、scha_cluster_get(1HA) のマニュアルページを参照してください。

各ノードまたはゾーンには、固定した per-node アドレスが割り当てられます。この per-node アドレスは、clprivnet ドライブで探索されます。IP アドレスは、ノードまたはゾーンのプライベートホスト名にマッピングされます。つまり、clusternode1-priv です。詳細は、clprivnet(7) のマニュアルページを参照してください。

アプリケーション全体で一貫した IP アドレスが必要な場合、クライアント側とサーバー側の両方でこの per-node アドレスにバインドするようにアプリケーションを設定します。これによって、すべての接続はこの per-node アドレスから始まり、そして戻されるように見えます。