Sun Cluster 3.0 ご使用にあたって

マニュアルの訂正

この節では、マニュアル内で誤って記載されている情報を示します。

Sun Cluster 3.0 Hardware Guide

Sun Cluster 3.0 Hardware Guide』では次の手順が誤っているか、または記載されていません。

ディスクケーブルを新しいアダプタに移動する

次の手順で、ディスクケーブルをノード内の新しいアダプタに移動します。

  1. 関係するディスクの I/O をすべて休止します。

  2. 古いアダプタからケーブルを取り外します。

  3. ローカルノードで cfgadm(1M) コマンドを実行し、移動に関連するすべてのドライブの構成を解除します。

    または、次のコマンドでノードを再起動します。


    # reboot -- -r
    
  4. ローカルノードで devfsadm -C コマンドを実行し、Solaris のデバイスリンクをクリーンアップします。

  5. ローカルノードで scdidadm -C コマンドを実行し、DID デバイスパスをクリーンアップします。

  6. 新しいアダプタにケーブルを接続します。

  7. ローカルノードで cfgadm コマンドを実行し、ドライブを新しい場所に構成します。

    または、次のコマンドでノードを再起動します。


    # reboot -- -r
    
  8. scgdevs コマンドを実行し、新しい DID デバイスパスを追加します。

別のノードにディスクケーブルを移動する

ディスクケーブルを、あるノードから別のノードに移動するには次の手順を使用します。

  1. すべてのボリュームマネージャーとデータサービスの構成から、削除するパスへの参照をすべて削除します。

  2. 関連するディスクへの I/O をすべて休止します。

  3. 古いノードからケーブルを取り外します。

  4. 古いノードで cfgadm コマンドを実行し、移動に関連するすべてのドライブの構成を解除します。

    または、次のコマンドでノードを再起動します。


    # reboot -- -r
    
  5. ローカルノードで devfsadm -C コマンドを実行し、Solaris のデバイスリンクをクリーンアップします。

  6. ローカルノードで scdidadm -C コマンドを実行し、DID デバイスパスをクリーンアップします。

  7. 新しいノードにケーブルを接続します。

  8. 新しいノードで cfgadm コマンドを実行し、ドライブを新しい場所に構成します。

    または、次のコマンドでノードを再起動します。


    # reboot -- -r
    
  9. 新しいノードで devfsadm コマンドを実行し、新しい Solaris デバイスリンクを作成します。

  10. 新しいノードで scgdevs コマンドを実行し、新しい DID デバイスパスを追加します。

  11. 新しいノードで必要なボリューム管理ソフトウェアとデータサービスの構成に必要なパスを追加します。

    データサービスを構成するときには、ノードのフェイルオーバーの設定が新しい構成を反映するように設定されていることを確認してください。

クラスタソフトウェアが正しいデバイス構成を反映するよう更新する

この手順が正しく行われていないと、次回に scdidadm -r コマンドや scgdevs コマンドを実行した時にエラーが記録されることがあります。正しいデバイス構成を反映するように、次の手順でクラスタソフトウェアを更新してください。

  1. ケーブル構成が意図した通りであることを確認します。ケーブルが古いノードから取り外してあるかどうかを確認します。

  2. 古いノードが必要なボリューム管理ソフトウェアやデータサービスの構成から削除されていることを確認します。

  3. 古いノードで cfgadm コマンドを実行し、移動に関連するすべてのドライブの構成を解除します。

    または、次のコマンドでノードを再起動します。


    # reboot -- -r
    
  4. ケーブルを取り外したノードで devfsadm -C コマンドを実行します。

  5. ケーブルを取り外したノードで scdidadm -C コマンドを実行します。

  6. 新しいノードで cfgadm コマンドを実行し、ドライブを新しい場所に構成します。

    または、次のコマンドでノードを再起動します。


    # reboot -- -r
    
  7. 新しいノードで scgdevs コマンドを実行し、新しい DID デバイスパスを追加します。

  8. 新しいノードで scdidadm -R デバイス名 コマンドを実行し、SCSI の予約が正しい状態にあるかどうかを確認します。

Sun Cluster 3.0 データサービス開発ガイド

Sun Cluster 3.0 データサービス開発ガイド』の付録 B のサンプルコードには、次の問題があります。

Sun Cluster 3.0 の概念

Sun Cluster 3.0 の概念』では次の点に注意する必要があります。

アプリケーショントラフィックのためのクラスタインターコネクトの利用

クラスタでは、ノード間に複数のネットワーク接続が存在してクラスタインターコネクトを形成しなければなりません。クラスタリングソフトウェアは、複数のインターコネクトを高可用性とパフォーマンスの向上のために利用します。内部のトラフィックでは (たとえばファイルシステムのデータやスケーラブルサービスのデータ)、メッセージは利用可能なすべてのインターコネクトの間でラウンドロビンによりストライプ化されます。

クラスタインターコネクトは、アプリケーションからもノード間の可用性の高い通信のために利用できます。たとえば、分散アプリケーションでは、構成要素が異なるノードで実行されていて通信が必要なことがあります。パブリックインターコネクトの代わりにクラスタインターコネクトを使用することで、これらの接続は個別リンクのエラーを回避できます。

ノード間の通信にクラスタインターコネクトを使用するには、アプリケーションは、クラスタをインストールした際に構成されたプライベートホスト名を使用する必要があります。たとえば、ノード 1 のプライベートホスト名が clusternode1-priv である場合には、ノード 1 とクラスタインターコネクトで通信する際にこの名前を使用します。この名前で開いた TCP ソケットは、クラスタインターコネクトを経由して転送され、ネットワークエラーが発生した際には透過的に再転送できます。

プライベートホスト名はインストール時に構成できるため、その時にはクラスタインターコネクトに任意の名前を使用できます。実際の名前は、scha_cluster_get(3HA) に scha_privatelink_hostname_node 引数を指定することで取得できます。

アプリケーションレベルでクラスタインターコネクトを使用する場合は、各ノードのペアの間で単一のインターコネクトを使用しますが、異なるノードのペアに対しては、可能であれば独立したインターコネクトを使用します。たとえば、3 ノードで実行中のアプリケーションがあり、クラスタインターコネクトで通信しているとします。この場合、ノード 1 と 2 の間の通信には hme0 インタフェースが使用され、ノード 1 と 3 の通信には qfe1 インタフェースが使用されることになります。つまり、アプリケーションが任意の 2 ノード間で通信する場合は、単一のインターコネクトに限られますが、内部クラスタリングの通信は、すべてのインターコネクトでストライプ化されます。

アプリケーションは、インターコネクトを内部クラスタリングのトラフィックと共有しており、従って、アプリケーションが利用可能な帯域幅は、他のクラスタリングトラフィックが使用している帯域幅に依存していることに注意してください。エラーが発生した場合、内部トラフィックは残っているインターコネクトにラウンドロビンできますが、アプリケーションの接続でインターコネクトにエラーが出た場合は、稼動中のインターコネクトに切り替わります。

2 種類のアドレスがクラスタインターコネクトをサポートしており、プライベートホスト名に gethostbyname(3N) を実行すると、通常 2 つの IP アドレスを返します。最初のアドレスは論理 pairwise アドレスと呼ばれ、2 番目のアドレスは論理 pernode アドレスと呼ばれます。

各ノードのペアには、独立した論理 pairwise アドレスが割り当てられています。この小規模な論理ネットワークが、接続のフェイルオーバーをサポートしています。各ノードには固定 pernode アドレスも割り当てられています。つまり、clusternode1-priv の論理 pairwise アドレスはノードごとに異なっていますが、clusternode1-priv の論理 pernode アドレスは各ノードで同じです。しかし、ノードは pairwise アドレスを自分で持っているわけではないため、ノード 1 に gethostbyname(clusternode1-priv) を実行しても、戻るのは論理 pernode アドレスだけです。

アプリケーションが、クラスタインターコネクトによる接続を受け入れてから IP アドレスを確認する際には、セキュリティ上の理由から、gethostbyname で返される最初の IP アドレスだけではなく、すべての IP アドレスを検査する必要があることに注意してください。

アプリケーション全体にわたって一貫した IP アドレスが必要な場合は、クライアントとサーバーの両側で pernode アドレスをバインドするようにアプリケーションを構成し、すべての接続が pernode アドレスで行き来するようにしてください。

Sun Cluster 3.0 データサービスのインストールと構成

Sun Cluster 3.0 データサービスのインストールと構成』の第 5 章「Sun Cluster HA for Apache のインストールと構成」では、Apache Web Server を Apache の Web サイト (http://www.apache.org) からインストールする方法について説明していますが、Apache Web Server は Solaris 8 オペレーティング環境の CD-ROM からインストールすることもできます。

Apache のバイナリは SUNWapchrSUNWapchuSUNWapchd という 3 つのパッケージに含まれており、SUNWCapache パッケージのメタクラスタを構成しています。SUNWapchr は、SUNWapchu より先にインストールする必要があります。

Web サーバーのバイナリは、各クラスタノードのローカルファイルシステムか、クラスタファイルシステムに置きます。

Solaris 8 CD-ROM から Apache をインストールする

この手順では、Sun Cluster HA for Apache データサービスを Solaris 8 オペレーティング環境 CD-ROM に含まれている Apathe Web Server で使用する場合に必要な手順について説明します。

  1. Apache パッケージの SUNWapchrSUNWapchuSUNWapchd をインストールしていない場合は、インストールします。

    パッケージがすでにインストールされているかどうかを確認するには pkginfo(1) コマンドを実行します。


    # pkgadd -d Solaris_8_Product_directory SUNWapchr SUNWapchu SUNWapchd
    ...
    Installing Apache Web Server (root) as SUNWapchr
    ...
    [ verifying class initd ]
    /etc/rc0.d/K16apache linked pathname
    /etc/rc1.d/K16apache linked pathname
    /etc/rc2.d/K16apache linked pathname
    /etc/rc3.d/S50apache linked pathname
    /etc/rcS.d/K16apache linked pathname
    ...
  2. SUNWapchr パッケージの一部としてインストールした、実行開始/停止制御スクリプトを無効にします。

    データサービスを構成した後は、Sun Cluster HA for Apache データサービスが Apache アプリケーションの起動と停止を行うため、このスクリプトを無効にする必要があります。次の手順を実行してください。

    1. Apache 開始制御スクリプトのリストを表示します。

    2. Apache 開始制御スクリプトの名前を変更します。

    3. すべての Apache 関連のスクリプトの名前が変更されたことを確認します。


    注 -

    次の例では、開始制御スクリプトの名前の最初の文字を大文字から小文字に変更しています。このスクリプトの名前は、通常のシステム管理の方針に合わせて、任意の名前に変更しても構いません。



    # ls -1 /etc/rc?.d/*apache
    /etc/rc0.d/K16apache
    /etc/rc1.d/K16apache
    /etc/rc2.d/K16apache
    /etc/rc3.d/S50apache
    /etc/rcS.d/K16apache
    # mv /etc/rc0.d/K16apache  /etc/rc0.d/k16apache
    # mv /etc/rc1.d/K16apache  /etc/rc1.d/k16apache
     
    # mv /etc/rc2.d/K16apache  /etc/rc2.d/k16apache
     
    # mv /etc/rc3.d/S50apache  /etc/rc3.d/s50apache
     
    # mv /etc/rcS.d/K16apache  /etc/rcS.d/k16apache
     
     
     
    # ls -1 /etc/rc?.d/*apache
    /etc/rc0.d/k16apache/etc/rc1.d/k16apache/etc/rc2.d/k16apache/etc
    /rc3.d/s50apache/etc/rcS.d/k16apache

マニュアルページ

Sun Cluster 3.0 ソフトウェアと共に提供される各データサービスには、新しいマニュアルページ (英語) が含まれています。データサービスのマニュアルページには、SUNW.apache(5)、SUNW.dns(5)、SUNW.iws(5)、SUNW.nfs(5)、SUNW.nsldap(5)、SUNW.oracle_listener(5)、SUNW.oracle_server(5)、SUNW.HAStorage(5)、scalable_service(5) があります。これらのマニュアルページには、各データサービスが使用する標準および拡張プロパティが説明してあります。