6 votes

KVM/libvirt : comment migrer entre 2 hôtes avec des CPUs différents ?

J'ai essayé de migrer mon hôte KVM d'un hôte avec un processeur AMD vers un hôte avec un processeur Intel, mais lorsque je lance le programme de migration, je ne sais pas comment faire. virsh start guest_name J'ai error: unsupported configuration: CPU model ... is not supported by hypervisor .

Je sais que KVM prend en charge une telle migration (dans la FAQ, ils parlent même de migration en direct entre les CPU AMD/Intel 64 bits). Que dois-je faire ?

7voto

ndemou Points 1133

Vous devez modifier la partie de la définition xml de votre invité afin qu'elle contienne un sous-ensemble de capacités de CPU que l'on trouve dans les deux CPU (Intel et AMD). Vous pouvez utiliser virsh pour trouver ce sous-ensemble. Voici comment :

Au 1er hôte

$ 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

Tout le reste se passe au niveau du 2ème hôte

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

Modifier maintenant both-cpus.xml et :

  1. ne gardez que le <cpu>....</cpu> sections
  2. Dans ces sections, supprimez les lignes avec <vendor>....</vendor>

Enfin, lancez ceci :

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

Si vous obtenez cette erreur "Erreur XML : Architecture CPU manquante" ajouter <arch>x86_64</arch> dans les deux <cpu>...</cpu> sections. Bien sûr, x86_64 est pour les processeurs modernes AMD et Intel, si vous travaillez avec une autre architecture, ajustez-la de manière appropriée (grâce à harald pour ce conseil).

La sortie de la commande ci-dessus doit être utilisée dans les définitions xml de l'invité.

Références

1 votes

Pour que cela fonctionne, j'ai dû ajouter "<arch>x86_64</arch>" aux deux sections <cpu>...</cpu>. Sinon, virsh cpu-baseline crachait "error : Erreur XML : Missing CPU architecture". Ceci est avec libvirt 4.4.0 sur Arch.

1 votes

Pour que cela fonctionne, j'ai dû supprimer le mode='custom' de l'attribut cpu et ajouter <arch>x86_64</arch>.

0 votes

Il serait peut-être préférable d'utiliser "hôte source" et "hôte destination" au lieu de "premier hôte" et "deuxième hôte". Ou "source" et "cible".

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X