Sun Cluster の概念 (Solaris OS 版)

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

クラスタには、ノード間を結ぶ複数のネットワーク接続が必要です。クラスタインターコネクトは、これらの接続から構成されています。Sun Cluster ソフトウェアは、複数のインターコネクトを使用して、次の目標を達成します。

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

ノード間の通信にクラスタインターコネクトを使用するには、Sun Cluster のインストール時に設定したプライベートホスト名をアプリケーションで使用する必要があります。たとえば、node 1 のプライベートホスト名が clusternode1-priv である場合、クラスタインターコネクトを経由して node 1 と通信するときにこの名前を使用する必要があります。この名前を使用してオープンされた TCP ソケットは、クラスタインターコネクトを経由するように経路指定され、ネットワークに障害が発生した場合でも、この TCP ソケットは透過的に再経路指定されます。

Sun Cluster のインストール時に複数のプライベートホスト名が設定されているため、クラスタインターコネクトでは、そのときに選択した任意の名前を使用できます。実際の名前を取得するには、scha_cluster_get(3HA) コマンドに scha_privatelink_hostname_node 引数を指定して実行します。

アプリケーション通信と内部クラスタ通信は両方とも、すべてのインターコネクト上でストライプ化されます。アプリケーションは内部クラスタトラフィックとクラスタインターコネクトを共有するため、アプリケーションが使用できる帯域幅は、ほかのクラスタトラフィックに使用される帯域幅に左右されます。障害が発生すると、内部トラフィックとアプリケーショントラフィックは利用できるすべてのインターコネクト上でストライプ化されます。

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

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