Назад | Перейти на главную страницу

Есть ли способ сделать живую резервную копию qcow2 без приостановки виртуальной машины?

Я пытаюсь настроить решение для резервного копирования KVM для наших серверов, которое будет выполнять резервное копирование в реальном времени без остановки системы.

Я нашел несколько готовых сценариев, которые я протестировал, но все они либо останавливают, либо «замораживают» виртуальную машину на некоторое время, чтобы сохранить состояние памяти. Но нам это нехорошо.

У нас есть несколько настраиваемых приложений, которые записывают журналы, которые должны быть согласованными, и у нас не может быть 10-60-секундных пауз, пока система "зависает" на время резервного копирования, также это "зависание" вызывает рассинхронизацию часов виртуальной машины (часы отстает от продолжительности "зависания"), что в конечном итоге портит работу нашего пользовательского программного обеспечения, где одной из его функций является отслеживание временных меток некоторых измерительных устройств.

Итак, вопрос в том, есть ли способ делать полные резервные копии виртуальных машин, которые можно делать последовательно, не замораживая виртуальную машину, и восстановление резервной копии должно работать так же :)

вот один из нескольких сценариев, которые я пробовал для примера: KVM QCOW2 Live Backup

Я бы выбрал другой подход: вместо сохранения всего состояния виртуальной машины я бы сохранил первозданный образ только что установленной виртуальной машины на всякий случай и делайте регулярные резервные копии данных, которые я хочу сохранить. Конкретный метод создания такой резервной копии зависит от используемых вами инструментов (MySQL? InfluxDB?).

Если вы используете LVM для хранения виртуальной машины, вы также можете использовать моментальные снимки LVM, которые работают быстро и не мешают работе. У этого есть недостаток, заключающийся в том, что не учитывается оперативная память виртуальной машины, поэтому она МОЖЕТ иметь недопустимые данные на любой момент времени.

Самым простым и наиболее распространенным решением было бы сделать снимок виртуальной машины в реальном времени (fsfreeze / flush / использовать qemu-ga для поддержания согласованности fs перед созданием снимка), создать резервную копию базового образа, пока виртуальная машина записывает снимок, а затем объедините их, когда резервное копирование будет завершено.