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
а также:
- оставить только
<cpu>....</cpu>
разделы - из этих разделов удалите строки с
<vendor>....</vendor>
Наконец запустите это:
$ virsh cpu-baseline /tmp/both-cpus.xml
Если вы получаете эту ошибку " Ошибка XML: отсутствует архитектура процессора", добавьте <arch>x86_64</arch>
в обоих <cpu>...</cpu>
разделы. Конечно x86_64
предназначен для современных процессоров AMD и Intel, если вы работаете с другой архитектурой, Harald соответствующим образом (спасибо Harald за этот совет).
Выходные данные вышеупомянутой команды должны использоваться в определениях гостя xml.