Oracle® Solaris Cluster 4.2 发行说明

退出打印视图

更新时间: 2014 年 9 月
 
 

SUNWscxvm.stop 中的 LDom 停止超时阻止未绑定的 LDom (18335346)

问题摘要: 如果 ldm stopSUNWscxvm.stop 中超时,则逻辑域 (logical domain, LDom) 保持绑定并阻止群集资源组完全关闭域。该行为会阻止资源组成功故障转移。此外,当前停止 LDom 时未考虑 STOP TIMEOUT 值,LDom 会在 60 秒后自动超时。

您可能会遇到以下错误消息之一:

[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 命令时,该命令会挂起,因为已强制终止该命令。

解决方法: 该解决方法仅对至少具有 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 不在 LDOM_TIMEOUT 秒内关闭,则首先发出 ldm stop-domain 命令。然后发出 ldom stop-domain -q。该命令自动强制停止 LDom。为了使 ldom stop-domain -q 有时间执行,已将 LDOM_TIMEOUT 设置为 MAX_STOP_TIMEOUT 的 80%。