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

Резервное копирование raw-образов KVM

Я запускаю qemu-img-0.12.1.2-2.355.0.1.el6 в CentOS 6.3, используя необработанные образы для своих виртуальных машин. Есть ли способ безопасно создавать резервные копии гостей, не останавливая их? Я попытался сделать снимок на тестовой гостевой машине, которая не работала, но получила ошибку: «Живой снимок диска не поддерживается этим двоичным файлом qemu». Означает ли это, что необработанный формат не подходит для любого типа снимков, или это что-то из моего пакета KVM? Я читал, что приостановки гостя достаточно для выполнения операции dd, верно? Не могли бы вы поделиться своими лучшими практиками в этой области?

Если вы используете сырой образ файлы тогда единственный способ получить согласованный моментальный снимок - приостановить или выключить виртуальную машину.

Вы можете сделать снимок с помощью файлов изображений qcow2 без приостановки виртуальной машины, но снимок станет частью этого файла. Это может или не может быть подходящим, в зависимости от вашей ситуации.

У вас было бы больше возможностей, если бы вы использовали CentOS 7 или текущий гипервизор Fedora, например тома LVM с моментальными снимками или zvols ZFS. В этих современных системах вы бы virsh domfsfreeze гость, сделай снимок, virsh domfsthaw гостя, а затем сделайте резервную копию снимка. Для этого в гостевой системе должен быть запущен qemu-guest-agent.

Приостановка виртуальных машин с помощью virsh suspend <domain> просто замораживает виртуальную машину, согласно документации все дисковые операции ввода-вывода и сетевой ввод-вывод приостановлены, в то время как виртуальная машина по-прежнему потребляет оперативную память хоста.

Если у вас есть Centos, то с большой вероятностью у вас также есть раздел LVM и, кроме того, раздел XFS. Если утверждение верно, то вы можете сделать резервную копию следующим образом:

  • сбросить кеш на ВМ и приостановить его,
  • сбросить кеш на хосте и сделать снимок LVM,
  • смонтируйте моментальный снимок LVM где-нибудь на хосте и сделайте свой график резервного копирования.

У меня работает даже с серверами баз данных. Резервное копирование файлового сервера (например, samba) совершенно безопасно, без отбрасывания кеша на хосте или виртуальной машине, при условии, что параметры ядра на хосте и guset установлены по умолчанию. Потеря данных минимальна. Например, Ext4 фиксирует грязные страницы в ОЗУ каждые 5 секунд (настройка по умолчанию). Это может привести к потере данных, которые были совершены менее чем за 5 секунд до зависания. Такая потеря данных была для меня приемлемой.

У каждого метода резервного копирования есть свои недостатки. Время простоя или возможная потеря данных. Многие администраторы баз данных полагают, что потеря данных может привести к повреждению данных, когда ядро ​​базы данных (например, MS SQL) обязательно должно фиксировать каждую транзакцию в файловой системе перед принятием изменения. С другой стороны, они соглашаются восстанавливать данные из резервной копии и соглашаются с потерей данных.