O KVM pode suspender ou encerrar convidados automaticamente no encerramento do host?

15

Temos um host CentOS 5.5 KVM, executando convidados com várias versões do CentOS e possivelmente outros sistemas operacionais posteriormente.

Gostaríamos de poder (a) enviar automaticamente um desligamento da ACPI para todos os convidados ou (b) suspender todos os convidados para o disco, no desligamento do host.

Existe um método padrão para realizar qualquer um desses, ou é uma situação de rolagem? Obrigado!

    
por Andrew Clegg 11.11.2010 / 13:13

4 respostas

5

Sim.

O comando virsh shutdown (ou outras implementações de "shutdown" usando libvirt, como em virt-manager ) instrui o sistema operacional convidado a encerrar de forma limpa. Na página do manual:

   shutdown domain-id

   Gracefully shuts down a domain.  This coordinates with the domain
   OS to perform graceful shutdown, so there is no guarantee that it
   will succeed, and may take a variable length of time depending on
   what services must be shutdown in the domain.

   The exact behavior of a domain when it shuts down is set by the
   on_shutdown parameter in the domain’s XML definition.

Com o KVM, isso deve enviar um evento ACPI system_powerdown.

No Fedora e no RHEL 6, um script libvirt-guests init sai da caixa configurado para suspender todos os convidados no desligamento do sistema. Não é particularmente mágico, portanto, é possível copiar isso para o CentOS 5 com pouca modificação.

    
por 08.12.2010 / 17:21
4

Este é agora um recurso padrão no recente Fedora e RHEL 6.

    
por 08.12.2010 / 16:50
0

Até onde eu sei, não existe script padrão para o CentOS. É possível codificar, mas um pouco perigoso, já que você precisa lidar com clientes que demoram muito para desligar. Apenas matá-los depois que um tempo limite pode destruir dados, enquanto espera por eles pode deixar seu desligamento desligado.

Em vez disso, é melhor desligar os convidados manualmente antes de fazer uma reinicialização. Por um tempo eu tive um script que substituiu o desligamento e reinicialização. Esse script me avisou se havia algum convidado em execução (simples lc na lista de máquinas virtuais) e bloqueou o comando caso houvesse convidados em execução.

    
por 11.11.2010 / 13:40
-1

Os convidados do KVM são apenas processos do espaço do usuário. você deve ter algum monitoramento de processo no local. o mais comum lá fora parece ser o libvirt (ele é desenvolvido pelo RedHat, então eu acho que deveria estar disponível no CentOS).

    
por 11.11.2010 / 16:20