Требования и ограничения для создания РК
Значение параметров см. в разделе Конфигурационный файл /opt/rubackup/etc/rb_module_ovirt.conf.conf
1. Полное резервное копирование
-
Если для полного резервного копирования параметр
backup_using_ovirt_apiустановлен в значениеyes, модуль вычисляет суммарный размер резервируемых данных. Модуль также учитывает размеры дисков резервируемой ВМ и проверяет, что в каталоге для временных операций на узле клиента СРК есть необходимый объем свободного места.При полном резервном копировании средствами oVirt API в каталоге для временных операций на клиенте должно быть достаточно свободного места, чтобы сохранить копии дисков ВМ и до 2% от суммарного размера дисков под метаданные, которые формирует СРК (в процессе работы
rbfd).(суммарный размер дисков ВМ) × 2 + ~0,02 × (суммарный размер дисков ВМ) [1]
Если свободного места недостаточно, задача резервного копирования завершится с ошибкой.
В журнале модуля будет записано подробное сообщение об ошибке с указанием необходимого объема пространства.
-
Если полная РК создана без промежуточного хранилища, и следующая РК в цепочке запланирована как инкрементальная или дифференциальная с промежуточным хранилищем, вместо инкрементальной или дифференциальной будет создана полная РК.
Если полная РК создана с промежуточным хранилищем, и следующая РК в цепочке запланирована как инкрементальная или дифференциальная без промежуточного хранилища, вместо инкрементальной или дифференциальной будет создана полная РК.
2. Инкерементальное резервное копирование
-
Если цепочка РК началась с
backup_using_ovirt_api, установленным в значениеno, при очередной итерации инкрементального РК модуль также проверит значение параметраbackup_using_ovirt_apiв конфигурационном файле модуля, если значение изменилось наyes, будет соответствующее уведомление в журнале модуля, и цепочка РК начнется заново (т.е. вместо инкрементально копии будет создана полная). -
Если цепочка РК началась с
backup_using_ovirt_api, установленным в значениеyes, при очередной итерации инкрементального РК модуль также проверит значение параметраbackup_using_ovirt_apiв конфигурационном файле модуля, если значение изменилось наno, будет соответствующее уведомление в журнале модуля, и цепочка РК начнется заново. -
Если
backup_using_ovirt_apiустановлен вyes, выполняется итерация на создание инкрементальной РК и у какого-либо диска резервируемой ВМ в системе виртуализации значение для параметраBackup typeотличное от incremental, то вместо инкрементальной РК средствами API oVirt будет выполнен полный дамп дисков ВМ (также через oVirt API), далее расчет изменений (дельта с момента создания предыдущей РК) будет выполнятьrbfd(см. rbfd) [2]. -
Если
backup_using_ovirt_apiустановлен вyes, выполняется итерация на создание инкрементальной РК и у какого-либо диска резервируемой ВМ в системе виртуализации значение raw для параметраformat[3], то вместо инкрементальной РК средствами API oVirt будет выполнен полный дамп дисков ВМ, далее расчет изменений (дельта с момента создания предыдущей РК) будет выполнятьrbfd[2]. -
В случае, когда создается цепочка РК, для которой выполняются условия (пунктов 3 и 4) для создания инкремента средствами oVirt API, но на текущей итерации икрементального РК эти условия не выполняются, в такой ситуации будет выведено предупреждение в журнал модуля, и цепочка РК начнется заново (вместо инкрементальной копии будет создана полная).
-
Для случаев, когда поддерживается инкрементальное РК средствами oVirt API (пунктов 3 и 4), при полном РК дампы дисков ВМ сохраняются в каталог для временных операций на клиенте. Файлы дампов имеют
rawформат. На этапе создания инкрементальной копии средствами oVirt API дампы дисков (только дельта с момента предыдущего РК) формируются вqcow2формате. -
Если инкрементальная или дифференциальная РК создана без промежуточного хранилища, и следующая РК в цепочке запланирована как инкрементальная или дифференциальная с промежуточным хранилищем, вместо инкрементальной или дифференциальной будет создана полная РК.
Если инкрементальная или дифференциальная РК создана с промежуточным хранилищем, и следующая РК в цепочке запланирована как инкрементальная или дифференциальная без промежуточного хранилища, вместо инкрементальной или дифференциальной будет создана полная РК.
-
Если параметр
use_tmp_dir_at_backupустановлен вfalseпри создании раззностных РК средствами oVirt API, модуль будет создавать дамп только тех блоков данных на дисках, которые изменились с момента предыдущей итерации резервного копирования. Полученные дампы будут сохранены в каталог для временных операций вне зависимости от значения параметраuse_tmp_dir_at_backup.
| Если в системе виртуализации у диска не включена функция Инкрементальное резервное копирование и используется создание РК без временного хранилища, то вместо инкрементальной или дифференциальной РК будет создана полная РК. |
3. Особенности резервного копирования при отключенном oVirt API
Если параметр backup_using_ovirt_api установлен в no, резервное копирование выполняется напрямую через гипервизор:
-
Для включённой ВМ:
-
Модуль отправляет запрос к гипервизору на создание снимков состояния дисков ВМ (команда
virsh snapshot-create-as <domain_id>) -
"Подмороженные" после снимка состояния диски ВМ запаковываются в архив РК
-
Модуль выполняет коммит снимков состояния (
virsh blockcommit) -
Описанные этапы создания и финализации снимков состояния дисков ВМ отслеживаются через систему просмотра событий на платформе виртуализации
-
-
Для выключенной ВМ:
-
Модуль пытается найти расположение дисков ВМ .
-
Если расположение найдено, диски ВМ запаковываются в архив РК
-
Если расположение не найдено, выполняется дамп дисков в каталог для временных операций, после чего сдампленные файлы дисков запаковываются в архив РК
-