Sun Cluster 2.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) 上にノードロックがある場合は、次の手順を実行します。そうでない場合は、手順 3 に進みます。

    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. ポート 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. プロセス csh.pidps -ef の出力に存在する場合は、次のコマンドでこのプロセスを強制終了します。

      $ kill -9 csh.pid 
      
    6. clustername.lock ファイルを削除します。

      $ rm -f /var/tmp/clustername.lock
      
    7. SSP からログアウトします。

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

    $ scadmin startcluster