Sun Cluster 2.2 のシステム管理

クラスタとクラスタノードの停止

ノードをマルチユーザー以外のモードに設定する場合、あるいはノードを停止または再起動する場合は、Sun Cluster メンバーシップモニターを停止する必要があります。停止した後で、サイトに適した方法でノード管理を継続できます。

クラスタを停止するには、すべてのクラスタノードで scadmin stopnode コマンドを同時に実行し、すべてのノードのメンバーシップモニターを停止する必要があります。


phys-hahost1# haswitch destination_host logicalhost
phys-hahost1# scadmin stopnode

scadmin stopnode コマンドの実行時にそのノードが論理ホストを所有している場合、メンバーシップモニターが停止される前に、その論理ホストをマスターできる別のノードに所有権が移されます。論理ホストのマスターとなることができる別のノードがダウンしている場合、scadmin stopnode コマンドはメンバーシップモニターを停止するとともにデータサービスを停止します。

scadmin stopnode コマンドの実行後、システムを再起動しても Sun Cluster は停止したままとなります。Sun Cluster を起動するには、scadmin startnode コマンドを実行する必要があります。

scadmin stopnode コマンドは、クラスタからノードを削除します。ほかに同時に障害が発生していないかぎり、残っているノードで定足数を満たした範囲で、いくつでもノードを停止できます (定足数が満たされないとクラスタ全体が停止します)。

ディスクの保守のためにノードを停止する場合は、第 10 章「Sun Cluster ローカルディスクの管理」で説明している起動ディスクの作業、またはボリュームマネージャのマニュアルで説明しているデータディスクの作業を行なって、起動ディスクまたはデータディスクを用意する必要もあります。

SBus カードの追加や削除などのハードウェア保守作業を行うには、Sun Cluster ノードを停止しなければならない場合があります。以下の節では、単一のノードまたはクラスタ全体を停止する方法を説明します。


注 -

クラスタに 2 つを超えるノードがあり、ストレージが直接接続されている場合は、クラスタの最後のノードがパニックを起こしたり、(stopnode 移行を行わずに) クラスタから異常な抜け方をすると、問題が起ることがあります。このような場合、すべてのノードがクラスタから削除されているため、クラスタは存在しなくなりますが、最後のノードは、異常な方法でクラスタから抜けたためノードロックをまだ保持している場合があります。この場合には、この後で scadmin startcluster コマンドを実行しても、ノードロックを取得できません。この問題を回避するには、クラスタを再起動する前に、「クラスタパニックの後にノードロックのフリーズを解除するには」の手順を使ってノードロックを手動で解除する必要があります。


1 つのクラスタノードで Sun Cluster を停止するには

  1. データを使用できる状態にしておく必要がない場合は、論理ホスト (ディスクグループ) を保守モードにします。


    phys-hahost2# haswitch -m logicalhost
    

    詳細は、haswitch(1M) マニュアルページを参照してください。


    注 -

    halt(1M) コマンドを使用すると、Sun Cluster ノードを停止し、フェイルオーバーによりバックアップノードで論理ホストサービスを復元できます。しかし、halt(1M) を実行すると、ノードに障害が発生する可能性があります。論理ホストの所有権をスイッチオーバーする方法としては、haswitch(1M) コマンドの方が信頼性があります。


  2. クラスタ内のほかのノードで動作しているサービスを停止することなく、1 つのノードで Sun Cluster を停止します。

    phys-hahost1# scadmin stopnode
    

    注 -

    ノードを停止するときに、次のエラーメッセージが表示されることがあります。 in.rdiscd[517]: setsockopt (IP_DROP_MEMBERSHIP): Cannot assign requested address このエラーは、in.rdiscd デーモンと IP モジュール間のタイミングの問題に起因しています。悪影響はありませんので、無視しても問題ありません。


  3. ノードを停止します。

    phys-hahost1# halt
    

    以上で、ノードの保守作業が行える状態になります。

すべてのノードの Sun Cluster を停止するには

環境状態が極めて悪い場合 (冷却システムの障害や稲光を伴った嵐が発生した場合など) は、Sun Cluster 構成内のすべてのノードを停止できます。

  1. scadmin(1M) コマンドを使用して、すべてのノードでメンバーシップモニターを停止します。

    このコマンドはクラスタの各ノードのコンソールで実行しますが、ノードがクラスタから切り離され、残りのノードが再構成を終了するまで、次のノードに進まないでください。

    phys-hahost1# scadmin stopnode
    ...
  2. halt(1M) を使用して、すべてのノードを停止します。

    phys-hahost1# halt
    ...

Sun Cluster ノードを停止するには

Sun Cluster ノードはどれも、halt(1M) コマンドまたは uadmin(1M) コマンドで停止できます。

ノードの停止時にメンバーシップモニターが動作している場合、そのノードは通常「Failfast タイムアウト」をとり、次のメッセージを表示します。

panic[cpu9]/thread=0x50f939e0: Failfast timeout - unit 

この状況を避けるには、ノードを停止する前にメンバーシップモニターを停止します。詳細は、「すべてのノードの Sun Cluster を停止するには」の作業を参照してください。

クラスタパニックの後にノードロックのフリーズを解除するには

クラスタに 2 つを超えるノードがあり、ストレージが直接接続されている場合は、クラスタの最後のノードがパニックを起こしたり、(stopnode 移行を行わずに) クラスタから異常な抜け方をすると、問題が起ることがあります。このような場合、すべてのノードがクラスタから削除されているため、クラスタは存在しなくなりますが、最後のノードは、異常な方法でクラスタから抜けたためノードロックをまだ保持している場合があります。この場合には、この後で scadmin startcluster コマンドを実行しても、ノードロックを取得できません。

この問題を回避するには、クラスタを再起動する前にノードロックを手動で解除する必要があります。クラスタが完全に異常終了した後に、ノードロックを手動で解除し、クラスタを再起動するには、次の手順を実行します。

  1. root でクラスタ構成を表示します。


    # scconf clustername -p
    

    出力から次の行を探します。


    clustername Locking TC/SSP, port  : A.B.C.D, E
    

    • E が正数の場合は、ノードロックは、端末集配信装置 (TC) A.B.C.D とポート E に対して保持されています。この場合は、手順 2 に進んでください。

    • E が -1 の場合は、ロックは SSP に対して保持されています。この場合は、手順 3 に進んでください。

  2. 端末集配信装置 (TC) に対するノードロックの場合は、次の各手順を行います。

    1. 端末集配信装置 tc-name に対し telnet 接続を開始します。


      $ telnet tc-name
      Trying 192.9.75.51...
      Connected to tc-name.
      Escape character is `^]'.

      Return キーを押して処理を続けます。

    2. cli (コマンド行インタフェース) を指定します。


      Enter Annex port name or number: cli
      

    3. root でログインします。

    4. admin コマンドを実行します。


      annex# admin
      

    5. Port E をリセットします。


      admin : reset E
      

    6. telnet 接続を閉じます。


      annex# hangup
      

    7. 手順 4 に進みます。

  3. システムサービスプロセッサ (SSP) に対するノードロックの場合は、次の各手順を行います。

    1. SSP に接続する。


      $ telnet ssp-name
      

    2. ユーザー ssp でログインします。

    3. 次のコマンドを使って clustername.lock ファイルの情報を表示します (このファイルは、/proc/csh.pid への記号リンクになっています)。


      $ ls -l /var/tmp/clustername.lock
      

    4. プロセス csh.pid を検索します。


      $ ps -ef | grep csh.pid
      

    5. ps -ef の出力に csh.pid プロセスがある場合は、次のコマンドを使ってこのプロセスを強制終了します。


      $ kill -9 csh.pid
      

    6. clustername.lock ファイルを削除します。


      $ rm -f /var/tmp/clustername.lock
      

    7. SSP からログアウトします。

  4. クラスタを再起動します。


    $ scadmin startcluster
    

RDBMS インスタンスの実行中におけるメンバーシップモニターの停止

データベースサーバーインスタンスをノード上で実行するには、あらかじめ startnode オプションを呼び出し、そのノードをクラスタに加える必要があります。stopnode オプションの呼び出しは、すべてのデータベースインスタンスを停止した後に行います。


注 -

Oracle7 Parallel Server、Oracle8 Parallel Server、または Informix XPS を使用している場合は、各製品のマニュアルで停止方法を参照してください。


ノードで Oracle7 または Oracle8 インスタンスが動作している間に stopnode コマンドを実行すると、stopnode はハングアップし、コンソールに次のメッセージが表示されます。

ID[vxclust]: stop: waiting for applications to end

stopnode コマンドを正常に終了させるためには、Oracle7 または Oracle8 インスタンスを停止する必要があります。

ノード上で Informix-Online XPS インスタンスが動作している間に stopnode コマンドを実行すると、データベースがハングアップし、使用できなくなります。