Notas de la versión de Oracle® Solaris Cluster 4.2

Salir de la Vista de impresión

Actualización: Septiembre de 2014
 
 

El timeout de parada de LDom en SUNWscxvm.stop evita el desenlace de LDom (18335346)

Resumen del problema: si se produce el timeout de ldm stop en SUNWscxvm.stop, el dominio lógico (LDom) permanece enlazado y evita que el grupo de recursos del cluster cierre el dominio sin que se produzcan errores. Este comportamiento impide el correcto failover del grupo de recursos. Además, actualmente el valor de STOP TIMEOUT no se tiene en cuenta al detener el LDom y se produce el timeout después de 60 segundos.

Se puede encontrar uno de los siguientes mensajes de error.

[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

Cuando ejecuta ldm list, verá que el LDom se encuentra en el estado 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

Cuando se emite el comando clresourcegroup online después de los mensajes de timeout de parada del LDom, se bloquea porque se lo ha terminado de manera forzada.

Solución alternativa: esta solución solo funciona para los nodos con al menos Logical Domains Manager 3.1. Para modificar el valor de timeout de LDom:

Edite el archivo /opt/SUNWscxvm/bin/functions en todos los nodos mediante la sustitución de:

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

con:

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

Ahora el ldm stop timeout no es de 60 segundos sino de LDOM_TIMEOUT segundos. El comando ldm stop-domain se emite en primer lugar si el LDom no se cierra en LDOM_TIMEOUT segundos. A continuación, se emite ldom stop-domain -q. Este comando genera la detención forzosa automática del LDom. Para dar tiempo a que se ejecute ldom stop-domain -q, LDOM_TIMEOUT se estableció al 80 % de MAX_STOP_TIMEOUT.