문제 요약: ldm stop에서 SUNWscxvm.stop에 시간 초과가 발생하면 논리 도메인(LDom)이 바인드된 상태로 남아서 클러스터 리소스 그룹에서 도메인이 깔끔하게 종료되지 못합니다. 이 동작은 리소스 그룹의 페일오버 성공을 방해합니다. 또한 LDom을 중지하는 동안 현재 STOP TIMEOUT 값을 고려하지 않고 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%로 설정되었습니다.