Résumé du problème : si ldm stop arrive à expiration dans SUNWscxvm.stop, le domaine logique (LDom) reste lié et empêche le groupe de ressources de cluster d'arrêter correctement le domaine. Ce comportement empêche la réussite du basculement du groupe de ressources. La valeur STOP TIMEOUT n'est actuellement pas prise en compte lors de l'arrêt du LDom et celui-ci expire après 60 secondes.
L'un des messages d'erreur suivants peut s'afficher.
[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
Lorsque vous exécutez ldm list, vous pouvez voir que le LDom est dans un état 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
Lorsque la commande clresourcegroup online est exécutée suite à l'affichage des messages relatifs au délai d'attente d'arrêt du LDom, celui-ci est bloqué car son arrêt a été forcé.
Solution : cette solution fonctionne uniquement pour les noeuds disposant au minimum de Logical Domains Manager 3.1. Pour modifier la valeur de délai d'attente du LDom :
Modifiez le fichier /opt/SUNWscxvm/bin/functions sur tous les noeuds en remplaçant les éléments suivants :
${HATIMERUN} -t ${MAX_STOP_TIMEOUT} -k KILL ${LDM} stop-domain ${DOMAIN} >> $LOGFILE 2&1
par :
LDOM_TIMEOUT=$((MAX_STOP_TIMEOUT*80/100)) ${HATIMERUN} -t ${MAX_STOP_TIMEOUT} -k KILL ${LDM} stop-domain -t ${LDOM_TIMEOUT} ${DOMAIN} >> $LOGFILE 2&1
La valeur de ldm stop timeout n'est désormais plus de 60 secondes, mais de LDOM_TIMEOUT secondes. La commande ldm stop-domain est exécutée en premier lorsque le LDom ne s'arrête pas dans un délai de LDOM_TIMEOUT secondes. La commande ldom stop-domain -q est ensuite exécutée. Cette commande force automatiquement l'arrêt du LDom. Pour laisser le temps à la commande ldom stop-domain -q de s'exécuter, la valeur de LDOM_TIMEOUT a été définie sur 80 % de MAX_STOP_TIMEOUT.