Estou usando o XEN no CentOS 6.5 64. Quero uma maneira de parar todas as máquinas virtuais quando o servidor XEN for desligado. Eu construo uma chamada de serviço parada, xm shutdown -a
mas não funciona
#!/bin/bash
# chkconfig: 2345 95 20
# description:
# processname:
stop()
{
/usr/sbin/xm shutdown -a
while [[ true ]]; do
if [[ `virsh list|wc -l` == 4 ]]; then
break
fi
sleep 1
done
}
case "$1" in
stop)
stop
;;
*)
echo $"Usage: $prog {stop}"
esac
Responder1
Se você estiver usando o Xen4CentOS, eu recomendaria usarlibvirt. Embora esteja usando um driver xen para fazer interface xm
e xl
não uma interface dedicada ao dom0, ele automatizará coisas como inicialização, desligamento, interfaces de rede e uma interface de fácil instalação. A desvantagem de usar uma camada de abstração extra é compensada por ter um sistema que está muito mais próximo da virtualização KVM padrão, que é padrão no CentOS (e RHEL).
Ao usar o libvirt, a ação de desligamento padrão será 'suspender', o que não é suportado por esta combinação de software no momento. A alteração /etc/sysconfig/libvirt-guests
da configuração ON_SHUTDOWN=shutdown
fornecerá um script de desligamento adequado para as VMs.