KVM / libvirt: como migrar entre 2 hosts com CPUs diferentes

4

Tentei migrar meu host KVM de um host com cpu AMD para um host com CPU Intel, mas quando executo virsh start guest_name , obtive error: unsupported configuration: CPU model ... is not supported by hypervisor .

Eu sei que o KVM suporta essa migração (no FAQ eles até falam sobre migração ao vivo entre processadores AMD / Intel de 64 bits). O que devo fazer?

    
por ndemou 01.07.2018 / 21:11

1 resposta

4

Você deve editar a parte da definição xml do seu convidado para que ele contenha um subconjunto de recursos da CPU encontrados em ambas as CPUs (Intel e AMD). Você pode usar virsh para encontrar esse subconjunto. Veja como:

No 1º host

$ virsh capabilities | virsh cpu-baseline /dev/stdin > /tmp/host1.xml

# copy this file to Host#2 -- e.g.:
$ scp /tmp/host1.xml $HOST2:/tmp/host1.xml

Tudo o resto acontece no 2º host

$ virsh capabilities | virsh cpu-baseline /dev/stdin > /tmp/host2.xml
$ cat /tmp/host1.xml /tmp/host2.xml > /tmp/both-cpus.xml

Agora edite both-cpus.xml e:

  1. mantenha apenas as <cpu>....</cpu> seções
  2. dessas seções remova as linhas com <vendor>....</vendor>

Por fim, execute isto:

$ virsh cpu-baseline /tmp/both-cpus.xml

Se você receber este erro "Erro XML: Arquitetura da CPU ausente" , adicione <arch>x86_64</arch> nas seções <cpu>...</cpu> . Ofcourse x86_64 é para os processadores AMD e Intel modernos, se você trabalha com alguma outra arquitetura, ajuste-se apropriadamente (graças ao harald esta dica).

A saída do comando acima deve ser usada dentro das definições xml do guest.

Referências

por 01.07.2018 / 21:11