ノードをマルチユーザー以外のモードに設定する場合、あるいはノードを停止または再起動する場合は、Sun Cluster メンバーシップモニターを停止する必要があります。停止した後で、サイトに適した方法でノード管理を継続できます。
クラスタを停止するには、すべてのクラスタノードで scadmin stopnode コマンドを同時に実行し、すべてのノードのメンバーシップモニターを停止する必要があります。
メンバーシップモニターを停止できるのは、ローカルの Sun Cluster ノードが論理ホストを所有していない場合だけです。
1 つのノードでメンバーシップモニターを停止するには、haswitch(1M) コマンドを使用してその論理ホストを別のノードにスイッチオーバーし、次のコマンドを入力してメンバーシップモニターを停止します。
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 コマンドを実行しても、ノードロックを取得できません。この問題を回避するには、クラスタを再起動する前に、「クラスタパニックの後にノードロックのフリーズを解除するには」の手順を使ってノードロックを手動で解除する必要があります。
データを使用できる状態にしておく必要がない場合は、論理ホスト (ディスクグループ) を保守モードにします。
phys-hahost2# haswitch -m logicalhost |
詳細は、haswitch(1M) マニュアルページを参照してください。
halt(1M) コマンドを使用すると、Sun Cluster ノードを停止し、フェイルオーバーによりバックアップノードで論理ホストサービスを復元できます。しかし、halt(1M) を実行すると、ノードに障害が発生する可能性があります。論理ホストの所有権をスイッチオーバーする方法としては、haswitch(1M) コマンドの方が信頼性があります。
クラスタ内のほかのノードで動作しているサービスを停止することなく、1 つのノードで Sun Cluster を停止します。
phys-hahost1# scadmin stopnode |
ノードを停止するときに、次のエラーメッセージが表示されることがあります。 in.rdiscd[517]: setsockopt (IP_DROP_MEMBERSHIP): Cannot assign requested address このエラーは、in.rdiscd デーモンと IP モジュール間のタイミングの問題に起因しています。悪影響はありませんので、無視しても問題ありません。
ノードを停止します。
phys-hahost1# halt |
以上で、ノードの保守作業が行える状態になります。
環境状態が極めて悪い場合 (冷却システムの障害や稲光を伴った嵐が発生した場合など) は、Sun Cluster 構成内のすべてのノードを停止できます。
scadmin(1M) コマンドを使用して、すべてのノードでメンバーシップモニターを停止します。
このコマンドはクラスタの各ノードのコンソールで実行しますが、ノードがクラスタから切り離され、残りのノードが再構成を終了するまで、次のノードに進まないでください。
phys-hahost1# scadmin stopnode ... |
phys-hahost1# halt ... |
Sun Cluster ノードはどれも、halt(1M) コマンドまたは uadmin(1M) コマンドで停止できます。
ノードの停止時にメンバーシップモニターが動作している場合、そのノードは通常「Failfast タイムアウト」をとり、次のメッセージを表示します。
panic[cpu9]/thread=0x50f939e0: Failfast timeout - unit |
この状況を避けるには、ノードを停止する前にメンバーシップモニターを停止します。詳細は、「すべてのノードの Sun Cluster を停止するには」の作業を参照してください。
クラスタに 2 つを超えるノードがあり、ストレージが直接接続されている場合は、クラスタの最後のノードがパニックを起こしたり、(stopnode 移行を行わずに) クラスタから異常な抜け方をすると、問題が起ることがあります。このような場合、すべてのノードがクラスタから削除されているため、クラスタは存在しなくなりますが、最後のノードは、異常な方法でクラスタから抜けたためノードロックをまだ保持している場合があります。この場合には、この後で scadmin startcluster コマンドを実行しても、ノードロックを取得できません。
この問題を回避するには、クラスタを再起動する前にノードロックを手動で解除する必要があります。クラスタが完全に異常終了した後に、ノードロックを手動で解除し、クラスタを再起動するには、次の手順を実行します。
root でクラスタ構成を表示します。
# scconf clustername -p |
出力から次の行を探します。
clustername Locking TC/SSP, port : A.B.C.D, E |
端末集配信装置 (TC) に対するノードロックの場合は、次の各手順を行います。
端末集配信装置 tc-name に対し telnet 接続を開始します。
$ telnet tc-name Trying 192.9.75.51... Connected to tc-name. Escape character is `^]'. |
Return キーを押して処理を続けます。
cli (コマンド行インタフェース) を指定します。
Enter Annex port name or number: cli |
root でログインします。
admin コマンドを実行します。
annex# admin |
Port E をリセットします。
admin : reset E |
telnet 接続を閉じます。
annex# hangup |
手順 4 に進みます。
システムサービスプロセッサ (SSP) に対するノードロックの場合は、次の各手順を行います。
SSP に接続する。
$ telnet ssp-name |
ユーザー ssp でログインします。
次のコマンドを使って clustername.lock ファイルの情報を表示します (このファイルは、/proc/csh.pid への記号リンクになっています)。
$ ls -l /var/tmp/clustername.lock |
プロセス csh.pid を検索します。
$ ps -ef | grep csh.pid |
ps -ef の出力に csh.pid プロセスがある場合は、次のコマンドを使ってこのプロセスを強制終了します。
$ kill -9 csh.pid |
clustername.lock ファイルを削除します。
$ rm -f /var/tmp/clustername.lock |
SSP からログアウトします。
クラスタを再起動します。
$ scadmin startcluster |
データベースサーバーインスタンスをノード上で実行するには、あらかじめ 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 コマンドを実行すると、データベースがハングアップし、使用できなくなります。