Oracle® Solaris Cluster 4.2 リリースノート

印刷ビューの終了

更新: 2014 年 9 月
 
 

SUNWscxvm.stop での LDom の停止タイムアウトにより LDom のバインド解除が妨げられる (18335346)

問題のサマリー: SUNWscxvm.stopldm stop がタイムアウトすると、論理ドメイン (LDom) がバインドされたままになるため、クラスタリソースグループがそのドメインをクリーンな状態でシャットダウンできなくなります。この動作によって、リソースグループの正常なフェイルオーバーが妨げられます。また、現在 LDom の停止中に STOP TIMEOUT 値は考慮されておらず、60 秒後に LDom は自動的にタイムアウトします。

次のエラーメッセージのいずれかが表示されることがあります。

[ID 885590 daemon.notice] Domain domain_name has been forcefully terminated. 
[ID 567783 daemon.notice] domain stop result code : 0 - ldom_name stop timed out. The domain might still be in the process of shutting down. 
[ID 567783 daemon.notice] domain stop result code : 0 - Either let it continue, or specify -f to force it to stop. 
[ID 567783 daemon.notice] domain stop result code : 0 - LDom ldom_name cannot be unbound because it is stopping 
[ID 567783 daemon.notice] domain stop result code : 0 - LDom ldom_name stopped

ldm list を実行すると、この LDom が bound 状態にあることが表示されます。

# ldm list 
NAME STATE FLAGS CONS VCPU MEMORY UTIL NORM UPTIME 
primary active -n-cv- UART 16 15872M 0.1% 0.1% 28m 
ldom-1 active -n---- 5000 8 8G 0.0% 0.0% 28m 
ldom-2 bound ------ 5001 112 112G

LDom の停止タイムアウトメッセージのあとに clresourcegroup online コマンドが発行された場合、LDom が強制的に終了されているため、このコマンドはハングアップします。

回避方法: この回避方法は、少なくとも Logical Domains Manager 3.1 が動作するノードでのみ機能します。LDom のタイムアウト値を変更するには:

すべてのノード上で /opt/SUNWscxvm/bin/functions ファイルを編集して、次の行を

${HATIMERUN} -t ${MAX_STOP_TIMEOUT} -k KILL ${LDM} stop-domain ${DOMAIN} >> $LOGFILE 2&1

次の行に置き換えます。

LDOM_TIMEOUT=$((MAX_STOP_TIMEOUT*80/100)) ${HATIMERUN} -t ${MAX_STOP_TIMEOUT} -k KILL ${LDM} stop-domain -t ${LDOM_TIMEOUT} ${DOMAIN} >> $LOGFILE 2&1

これで、ldm stop timeout は 60 秒ではなく、LDOM_TIMEOUT 秒になりました。LDOM_TIMEOUT 秒内に LDom がシャットダウンしない場合は、最初に ldm stop-domain コマンドが発行されます。次に、ldom stop-domain -q が発行されます。このコマンドは、自動的に LDom を強制的に停止します。ldom stop-domain -q の実行時間を考慮して、LDOM_TIMEOUTMAX_STOP_TIMEOUT の 80% に設定されています。