Detecção de “migração ao vivo concluída” do KVM

3

Estou usando o KVM (através do libvirt na verdade) para um projeto de pesquisa. Estamos migrando ao vivo uma máquina virtual entre diferentes sub-redes, portanto, após a migração, o endereço IP e as tabelas de roteamento precisam ser atualizados. Caso contrário, a VM estará inacessível em sua nova sub-rede. O objetivo é fazer isso o mais rápido possível.

Atualmente, estou usando o ssh em um endereço IPv6 de link local para se conectar à VM após a migração ao vivo. Em seguida, ele executa um script que atribui o novo endereço IP e gateway. Mas isso adiciona muita sobrecarga desnecessária.

O que eu gostaria de ter é uma maneira de um daemon na máquina virtual detectar que uma migração ao vivo acabou de terminar. Há algum gancho que eu possa usar?

    
por Jochen Ritzel 25.02.2010 / 00:31

3 respostas

3

Se você estivesse fazendo uma marcação vlan convidada, veria essa alteração e poderia roteirizar dessa maneira. Como alternativa, você poderia usar um servidor DHCP com alta atribuição de portas em ambas as VLANs, com o mesmo MAC listado em vários escopos, você poderia então acionar a atualização na alteração de vlan.

    
por 24.06.2010 / 15:46
2

Se bem me lembro, ao concluir a migração, a VM deve enviar um pacote gratuito anunciando a si mesmo. De qualquer forma, até que as tabelas arp sejam atualizadas, sempre haverá um certo atraso, não VM - > rede, mas rede - > VM

O que você pode fazer é capturar uma VM "chegando" ao fazer polling de virsh dominfo Uma VM migrando para um host aparecerá como "pausada" no início e, assim que estiver "em execução", você sabe que terminou de migrar . no alvo você deve obter o evento de início de domínio com detalhes dizendo que foi migrado e na origem você deve ser interrompido / migrado evento

A melhor maneira seria usar algo como link no alvo você deve obter o evento de início de domínio com detalhes dizendo que foi migrado e na origem você deve ser interrompido / migrado evento

Esta é sua melhor aposta para capturar um evento de migração do libvirt usando a API apropriada.

Capturar migrações de dentro de uma VM não é possível, porque toda a ideia da migração ao vivo é que uma VM não está ciente disso e não deve sentir a migração

    
por 28.06.2010 / 15:58
0

Eu acho que você veria algo aparecer no dmesg durante essa migração. Você pode testar e ver se você faz? Se assim for, é muito fácil de acionar, seja escrevendo um módulo de kernel rápido e sujo, ou simplesmente seguindo a rota rápida de escrever um daemon de script de shell para assistir ao dmesg.

    
por 28.06.2010 / 15:37