Подготовка:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
0. Проверяем доступность между серверами kvm (iptables -L -n -v, ipset list kvm) 1. Проверяем соответствие конфигурации live и config по части сети и дисков virsh dumpxml VM_NAME cat /etc/libvirt/qemu/VM_NAME.xml virsh net-dumpxml default 2. Проверяем конфиг VM_NAME virsh dumpxml --inactive --security-info VM_NAME > /tmp/VM_NAME.xml vim /tmp/VM_NAME.xml В случае различия в процессорах можно их выровнять по младшему процессору, отключив некоторые фичи (потребуется перезагрузка): <cpu mode='host-model'> <model fallback='allow'/> <feature policy='disable' name='aes'/> <feature policy='disable' name='pclmuldq'/> </cpu> 3. Проверяем лимит скорости при миграции virsh migrate-getspeed VM_NAME Ограничиваем скорость, если требуется virsh migrate-setspeed VM_NAME Speed-in-B virsh migrate-setspeed VM_NAME 20000000 Увеличиваем простой ВМ после миграции (фриз на время копирования памяти, дефолт: 500) virsh migrate-setmaxdowntime VM_NAME milliseconds |
Миграция без удаления (виртуальная машина не удаляется после перемещения):
1 2 3 4 5 6 7 |
!!! Рекомендуется к применению virsh migrate --live --copy-storage-all --persistent --abort-on-error --verbose VM_NAME qemu+ssh://TO_KVM_SERVER/system дополнительно можно указать --xml filename.xml для таргета дополнительно можно указать --compressed для уменьшения передаваемых при миграции данных ** Не забываем, что после миграции создаётся файл текущей конфигурации, а не указанной в --xml, поэтому надо применять конфиг отдельно. |
Миграция с удалением и созданием в новом KVM:
1 2 3 4 5 6 7 8 9 10 |
!!! Внимание лучше использовать вариант без удаления !!! мигрировать надо с двумя важными опциями !!! --undefinesource - удалить ВМ из того гипервизора откуда мигрируем(логично, да?) !!! --persistent - добавить ВМ в список ВМ на новом месте Миграция: virsh migrate VM_NAME qemu_ssh://KVM_NAME/system --undefinesource --persistent Проверка: virsh dominfo VM_NAME | grep persistent |
Пример переноса ВМ:
1 2 3 4 5 6 7 8 9 10 |
На хосте с которого копируем ВМ: 0) Копируем диск на новый хост (файл myserver.qcow2) 1) Выгружаем настройки ВМ virsh dumpxml myserver > /mnt/data-1/myserver.xml - сохранить настройки ВМ На хосте на котором разворачиваем бэкап: 0) Восстанавливаем ВМ virsh define /home/user/myserver.xml 1) При необходимости правим (указываем месторасположение образа жесткого диска): virsh edit myserver |
virt-clone:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
!!! Перед клонирование ВМ необходимо выключить или поставить на паузу. !!! virsh shutdown !!! vursh suspend Первый вариант: virt-clone --original {Domain-Vm-Name-Here} --auto-clone Второй вариант: virt-clone --original {Domain-Vm-Name-Here} --name {New-Domain-Vm-Name-Here} --auto-clone Третий вариант: virt-clone --original {Domain-Vm-Name-Here} --name {New-Domain-Vm-Name-Here} --file {/var/lib/libvirt/images/File.Name.here} Пример: virsh suspend Name_VM_1 virt-clone --original Name_VM_1 --name Name_VM_2 --file /var/lib/libvirt/images/Name_VM_2.qcow2 virsh resume Name_VM_1 virt-sysprep -d Name_VM_2 --hostname Name_VM_2 --enable user-account,ssh-hostkeys,net-hostname,net-hwaddr,machine-id --keep-user-accounts vivek --keep-user-accounts root --run 'sed -i "s/192.168.122.16/192.168.122.25/" /etc/network/interfaces' |
ссылки:
1 |