Имеется сервер Ubuntu 12.04 с настроенной kvm. В виртуальной среде работают несколько машин. Необходимо сохранять состояние виртуальных машин при выключении сервера. Когда-то давно я делал такую задачу и все отличненько работало, но, к сожадению , не записал - приходится вновь изобретать велосипед. Сразу скажу - в прошлый раз схема была намного изящней, но не могу вспомнить как было настроено. Если кто подскажет более правильное решение - буду благодарен.
Итак есть тфкой файлик на сервере /etc/init/libvirt-bin.conf
В нём необходимо найти такие строки :
for domain in $(run_virsh -c "$uri" list | awk '$3 == "running" {print $2}'); do
log_msg "libvirt-bin: attempting clean shutdown of $domain at $(date)"
run_virsh -c "$uri" shutdown "$domain" >/dev/null
done
где указывается, чтобы все запущенные виртуальные машины выключить.
Вот и заменим команду выключения на команду сохранения:
for domain in $(run_virsh -c "$uri" list | awk '$3 == "running" {print $2}'); do
log_msg "libvirt-bin: attempting clean shutdown of $domain at $(date)"
run_virsh -c "$uri" save "$domain" "/kvm-state/$domain.save">/dev/null
done
Таким образом в каталоге /kvm-state/ сохранятся файлы имя_виртуалки.save
Восстановить состояние машин можно командой
virsh restore /kvm-state/domain_name.save
При этом не забыть предварительно убрать автостартующие виртуалки из каталога /etc/libvirt/qemu/autostart
Итак есть тфкой файлик на сервере /etc/init/libvirt-bin.conf
В нём необходимо найти такие строки :
for domain in $(run_virsh -c "$uri" list | awk '$3 == "running" {print $2}'); do
log_msg "libvirt-bin: attempting clean shutdown of $domain at $(date)"
run_virsh -c "$uri" shutdown "$domain" >/dev/null
done
где указывается, чтобы все запущенные виртуальные машины выключить.
Вот и заменим команду выключения на команду сохранения:
for domain in $(run_virsh -c "$uri" list | awk '$3 == "running" {print $2}'); do
log_msg "libvirt-bin: attempting clean shutdown of $domain at $(date)"
run_virsh -c "$uri" save "$domain" "/kvm-state/$domain.save">/dev/null
done
Таким образом в каталоге /kvm-state/ сохранятся файлы имя_виртуалки.save
Восстановить состояние машин можно командой
virsh restore /kvm-state/domain_name.save
При этом не забыть предварительно убрать автостартующие виртуалки из каталога /etc/libvirt/qemu/autostart
Сохранение состояния виртуальных машин при выключении/ребуте гипервизора.
ОтветитьУдалитьНастройки в файле
Centos
/etc/sysconfig/libvirt-guests
Ubuntu
/etc/default/libvirt-guests
Меняем поведение при выключении:
ON_SHUTDOWN=suspend