KVM/libvirt: как мигрировать между двумя хостами с разными процессорами

Я пытался перенести мой KVM-хост с хоста с процессором AMD на хост с процессором Intel, но при запуске virsh start guest_name я получил error: unsupported configuration: CPU model ... is not supported by hypervisor,

Я знаю, что KVM поддерживает такую ​​миграцию (в FAQ они даже говорят о прямой миграции между 64-битными процессорами AMD/Intel). Что я должен делать?

1 ответ

Решение

Вам следует отредактировать часть определения xml вашего гостя так, чтобы он содержал подмножество возможностей ЦП, которые имеются в обоих ЦП (Intel и AMD). Ты можешь использовать virsh найти это подмножество. Вот как:

На 1-м хосте

$ 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

Все остальное происходит на 2-м хосте

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

Сейчас редактирую both-cpus.xml а также:

  1. оставить только <cpu>....</cpu> разделы
  2. из этих разделов удалите строки с <vendor>....</vendor>

Наконец запустите это:

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

Если вы получаете эту ошибку " Ошибка XML: отсутствует архитектура процессора", добавьте <arch>x86_64</arch> в обоих <cpu>...</cpu> разделы. Конечно x86_64 предназначен для современных процессоров AMD и Intel, если вы работаете с другой архитектурой, Harald соответствующим образом (спасибо Harald за этот совет).

Выходные данные вышеупомянутой команды должны использоваться в определениях гостя xml.

Рекомендации

Другие вопросы по тегам