Требования и ограничения для создания инкрементальных РК

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

  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) [1].

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

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

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

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

    • распаковывается дамп диска в raw формате;

    • выполняется конвертация файла диска из raw в qcow2 формат;

      На эту операцию требуется дополнительное время и на момент окончания конвертации в каталоге распаковки РК будет два файла, относящиеся к конкретному диску ВМ. Таким образом требования к свободному месту в каталоге распакови на этой итерации:

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

    • после конвертации файла диска в qcow2 формат, файл в raw формате более не требуется - модуль его удаляет;

    • на итерации распаковки инкрементальной копии для каждого диска ВМ выполняется rebase процедура (используется базовый файл, полученный на предыдущей итерации распаковки и qcow файл, распакованный на текущей итерации). Это реализовано с помощью утилиты qemu-img. После rebase процедуры, qcow2, распакованный на текущей итерации удаляется, так как он более не нужен. Таким образом требования к свободному месту в каталоге распакови на этой итерации:

      (суммарный размер дисков ВМ) + ~0,02 * (суммарный размер дисков ВМ) + (суммарный размер дисков ВМ, содержащих дельту, полученную на соответствующей итерации РК)

    • после распаковки всей цепочки РК в каталоге распаковки для каждого диска будет существовать только один файл в qcow2 формате.

    • если выполняется восстановление с развертыванием, то модуль выполняет выгрузку данных для каждого диска в систему виртуализации, после чего удаляет уже ненужный файл диска в qcow2 формате из каталога распаковки.


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