Требования и ограничения для создания РК

Значение параметров см. в разделе Конфигурационный файл /opt/rubackup/etc/rb_module_ovirt.conf.conf

1. Полное резервное копирование

  1. Если для полного резервного копирования параметр backup_using_ovirt_api установлен в значение yes, модуль вычисляет суммарный размер резервируемых данных. Модуль также учитывает размеры дисков резервируемой ВМ и проверяет, что в каталоге для временных операций на узле клиента СРК есть необходимый объем свободного места.

    При полном резервном копировании средствами oVirt API в каталоге для временных операций на клиенте должно быть достаточно свободного места, чтобы сохранить копии дисков ВМ и до 2% от суммарного размера дисков под метаданные, которые формирует СРК (в процессе работы rbfd).

    (суммарный размер дисков ВМ) × 2 + ~0,02 × (суммарный размер дисков ВМ) [1]

    Если свободного места недостаточно, задача резервного копирования завершится с ошибкой.

    В журнале модуля будет записано подробное сообщение об ошибке с указанием необходимого объема пространства.

  2. Если полная РК создана без промежуточного хранилища, и следующая РК в цепочке запланирована как инкрементальная или дифференциальная с промежуточным хранилищем, вместо инкрементальной или дифференциальной будет создана полная РК.

    Если полная РК создана с промежуточным хранилищем, и следующая РК в цепочке запланирована как инкрементальная или дифференциальная без промежуточного хранилища, вместо инкрементальной или дифференциальной будет создана полная РК.

2. Инкерементальное резервное копирование

  1. Если цепочка РК началась с backup_using_ovirt_api, установленным в значение no, при очередной итерации инкрементального РК модуль также проверит значение параметра backup_using_ovirt_api в конфигурационном файле модуля, если значение изменилось на yes, будет соответствующее уведомление в журнале модуля, и цепочка РК начнется заново (т.е. вместо инкрементально копии будет создана полная).

  2. Если цепочка РК началась с backup_using_ovirt_api, установленным в значение yes, при очередной итерации инкрементального РК модуль также проверит значение параметра backup_using_ovirt_api в конфигурационном файле модуля, если значение изменилось на no, будет соответствующее уведомление в журнале модуля, и цепочка РК начнется заново.

  3. Если backup_using_ovirt_api установлен в yes, выполняется итерация на создание инкрементальной РК и у какого-либо диска резервируемой ВМ в системе виртуализации значение для параметра Backup type отличное от incremental, то вместо инкрементальной РК средствами API oVirt будет выполнен полный дамп дисков ВМ (также через oVirt API), далее расчет изменений (дельта с момента создания предыдущей РК) будет выполнять rbfd (см. rbfd) [2].

  4. Если backup_using_ovirt_api установлен в yes, выполняется итерация на создание инкрементальной РК и у какого-либо диска резервируемой ВМ в системе виртуализации значение raw для параметра format [3], то вместо инкрементальной РК средствами API oVirt будет выполнен полный дамп дисков ВМ, далее расчет изменений (дельта с момента создания предыдущей РК) будет выполнять rbfd [2].

  5. В случае, когда создается цепочка РК, для которой выполняются условия (пунктов 3 и 4) для создания инкремента средствами oVirt API, но на текущей итерации икрементального РК эти условия не выполняются, в такой ситуации будет выведено предупреждение в журнал модуля, и цепочка РК начнется заново (вместо инкрементальной копии будет создана полная).

  6. Для случаев, когда поддерживается инкрементальное РК средствами oVirt API (пунктов 3 и 4), при полном РК дампы дисков ВМ сохраняются в каталог для временных операций на клиенте. Файлы дампов имеют raw формат. На этапе создания инкрементальной копии средствами oVirt API дампы дисков (только дельта с момента предыдущего РК) формируются в qcow2 формате.

  7. Если инкрементальная или дифференциальная РК создана без промежуточного хранилища, и следующая РК в цепочке запланирована как инкрементальная или дифференциальная с промежуточным хранилищем, вместо инкрементальной или дифференциальной будет создана полная РК.

    Если инкрементальная или дифференциальная РК создана с промежуточным хранилищем, и следующая РК в цепочке запланирована как инкрементальная или дифференциальная без промежуточного хранилища, вместо инкрементальной или дифференциальной будет создана полная РК.

  8. Если параметр use_tmp_dir_at_backup установлен в false при создании раззностных РК средствами oVirt API, модуль будет создавать дамп только тех блоков данных на дисках, которые изменились с момента предыдущей итерации резервного копирования. Полученные дампы будут сохранены в каталог для временных операций вне зависимости от значения параметра use_tmp_dir_at_backup.

Если в системе виртуализации у диска не включена функция Инкрементальное резервное копирование и используется создание РК без временного хранилища, то вместо инкрементальной или дифференциальной РК будет создана полная РК.

3. Особенности резервного копирования при отключенном oVirt API

Если параметр backup_using_ovirt_api установлен в no, резервное копирование выполняется напрямую через гипервизор:

  1. Для включённой ВМ:

    • Модуль отправляет запрос к гипервизору на создание снимков состояния дисков ВМ (команда virsh snapshot-create-as <domain_id>)

    • "Подмороженные" после снимка состояния диски ВМ запаковываются в архив РК

    • Модуль выполняет коммит снимков состояния (virsh blockcommit)

    • Описанные этапы создания и финализации снимков состояния дисков ВМ отслеживаются через систему просмотра событий на платформе виртуализации

  2. Для выключенной ВМ:

    • Модуль пытается найти расположение дисков ВМ .

    • Если расположение найдено, диски ВМ запаковываются в архив РК

    • Если расположение не найдено, выполняется дамп дисков в каталог для временных операций, после чего сдампленные файлы дисков запаковываются в архив РК


1. Первое слагаемое — под файлы дисков ВМ (raw и qcow2), второе слагаемое — под метаданные СРК.
2. Определение дельты выполняет не система виртуализации, а СРК (уже после дампа диска в каталог для временных операций).