Настройка Disaster Recovery

Этот раздел описывает настройку утилиты rv-dr-sync и Disaster Recovery, а также требования, выполнение которых необходимо для их работы.

Для использования утилиты rv-dr-sync и Disaster Recovery должны быть обеспечены следующие условия:

  • Настроенная основная виртуализация (ОВ):
  • Хост с центром управления основной виртуализации (ОЦУ) и гипервизором основной виртуализации (РХ) должны быть запущены (онлайн).
  • Настроенная резервная виртуализация (РВ):
  • Хост с центром управления резервной виртуализации (РЦУ) и хост со смонтированным хранилищем резервной виртуализации (РХ) должны быть запущены (онлайн).
  • Настроенное инкрементальное резервное копирование rv-backup:
  • Доступ c хоста rv-backup к хосту ОЦУ.
  • Доступ с хоста rv-backup к хосту РХ.
  • Доступ c хоста РЦУ к хосту РХ.

Важно ‒ На хосте с РХ должен быть установлен rsync.

Для примера будет использована следующая конфигурация:

  • Основная виртуализация:
  • head1.loca‒ хост с центром управления основной виртуализацией (ОЦУ);
  • host1.local‒ гипервизор основной виртуализации плюс rv-backup;
  • 3b4d6a7c-b6f0-463f-bda8-e3337484eac8‒ UUID тестовой ВМ, расположенной в ОВ, для которой настраивается процедура Disaster Recovery.
  • Резервная виртуализация:
  • head2.local‒ хост с центром управления резервной виртуализацией (РЦУ);
  • host2.local‒ гипервизор резервной виртуализации плюс смонтированное хранилище резервной виртуализации (РХ);
  • b45cbfc3-9aab-4019-9ef1-793d0e408161 ‒ UUID РХ, с которым будет синхронизироваться состояние тестовой ВМ;
  • 7c9a549e-bfe4-11f0-8554-000005a0b0c0 ‒ UUID целевого кластера в РВ;
  • 58ca604e-01a7-003f-01de-000000000250 ‒ UUID целевого CPU-профиля в РВ;
  • 00000000-0000-0000-0000-000000000009 ‒ UUID целевого сетевого интерфейса в РВ (их может быть несколько).

Примерная конфигурация rv-backup с настроенным инкрементальным резервным копированием (описание параметров конфигурации см. в п. Настройка конфигурационного файла):

[Urls]
engine_url = head1.local
cert = http://${engine_url}/ovirt-engine/services/pki-resource?resource=ca-certificate&format=X509-PEM-CA
api = https://${engine_url}/ovirt-engine/api
[Paths]
cert = /etc/rv-backup/ovirt.pem
storage_dir = /BACKUPS
syslog_address = /dev/log
[Options]
api_version = 4.5.6-1.0.37.rv40
api_timeout = 15
app_timeout_extra = 0
app_vm_id =
storage_space_warning_threshold = 10GB
storage_space_critical_threshold = 2GB
stdout_level = warning
syslog_level = info
console_width = auto
debug_mode = true
[Options.vm]
rotation_threshold_backup_size =
rotation_threshold_checkpoints_count =
[Options.DisasterRecovery]
main_db_host =
main_db_port =
main_db_password =
storage_domain_host =
storage_domain_user =
storage_domain_dir =
storage_domain_UUID =
allow_disk_deletion_on_merge = false
[Options.DisasterRecovery.vm.00000000-0000-0000-0000-000000000000]
target_cluster_id = <UUID>
target_cpu_profile_id = <UUID>
target_network_ids = <old_net1_UUID>:<new_net1_UUID>, <old_net2_UUID>:<new_net2_UUID>[, ...]
check_interval = <integer> (seconds, > 0)
[Auth]
login = admin@internal
password = PcWalBxCIr9cyBKFMZWGv6bAGMk3riI5f3Rd4n92JgyEs+rWJ1H7KDdahkBdurwINMa//zAKfUE=

Установка rv-dr-sync

Для установки утилиты rv-dr-sync на хост РЦУ нужно выполнить следующие действия:

  1. выполнить команду:
dnf install rv-dr-sync
  1. остановить systemd-сервис rv-dr-sync.service:
rv-dr-sync setup service
  1. установить связь с РХ (описание команды storage), для чего определить UUID РХ в веб-интерфейсе РЦУ "Хранилище  Домены хранилищ", нажав левой кнопкой мыши по имени хранилища;
  • во вкладке "Общее" найти поле с именем "Идентификатор"; значением этого поля и будет UUID хранилища: b45cbfc3-9aab-4019-9ef1-793d0e408161;
  • узнать расположение точки монтирования хранилища, которое указано в поле с именем "Путь": host2.local:/data/hs;
  • выполнить команду:
    rv-dr-sync setup storage b45cbfc3-9aab-4019-9ef1-793d0e408161 root@host2.local:/data/hs
    

Важно ‒ Здесь root ‒ это пользователь, имеющий доступ к точке монтирования /data/hs на хосте host2.local. Это может быть любой другой пользователь, который имеет доступ к точке монтирования через SSH|SFTP.

Примечание ‒ С помощью rv-dr-sync можно проверить возможность чтения и записи в точку монтирования РХ.

Настройка конфигурации rv-backup

Настройка общих параметров Disaster Recovery.

Общие параметры Disaster Recovery описаны в разделе Настройка конфигурационного файла.

Пример незаполненных параметров:

[Options.DisasterRecovery]
main_db_host =
main_db_port =
main_db_password =
storage_domain_host =
storage_domain_user =
storage_domain_dir =
storage_domain_UUID =
allow_disk_deletion_on_merge = false

Примечание‒ Параметры main_db_host, main_db_port можно не указывать в конфигурации. Они будут заполнены автоматически при выполнении команды:

rv-backup storage disaster setup

Важно ‒ Параметр main_db_password заполняется только автоматически.

В качестве значения параметра main_db_host указывается адрес хоста ОЦУ, где расположена база данных. Если его не указать, он будет взят из параметра Urls.engine_url. Значение для параметра main_db_port можно взять из файла /etc/ovirt-engine/aaa/internal.properties, расположенного на хосте ОЦУ, со следующим примерным содержимым:

config.datasource.jdbcurl=jdbc:postgresql://localhost:5432/engine?sslfactory=org.postgresql.ssl.NonValidatingFactory
config.datasource.dbuser=engine
config.datasource.dbpassword=FL3eYrtylhZH0pOjRhGdIJ
config.datasource.jdbcdriver=org.postgresql.Driver
config.datasource.schemaname=aaa_jdbc

где порт 5432 ‒ это стандартный порт для базы данных PostgreSQL.

Значение для параметра storage_domain_host ‒ это адрес хоста с РХ. В данном случае ‒ это host2.local:

[Options.DisasterRecovery]
main_db_host = head1.local
main_db_port = 5432
main_db_password =  # оставляем пустым
storage_domain_host = host2.local
storage_domain_user =
storage_domain_dir =
storage_domain_UUID =
allow_disk_deletion_on_merge = false

Значение для параметра storage_domain_user ‒ это имя SSH-пользователя, т. к. подключение к РХ осуществляется по протоколу SSH. В данном случае ‒ root:

[Options.DisasterRecovery]
main_db_host = head1.local
main_db_port = 5432
main_db_password =  # оставляем пустым
storage_domain_host = host2.local
storage_domain_user = root
storage_domain_dir =
storage_domain_UUID =
allow_disk_deletion_on_merge = false

Значения для параметров storage_domain_dir и storage_domain_UUID определяются на этапе установки rv-dr-sync.

Значение для параметра storage_domain_dir ‒ это точка монтирования РХ. В данном случае ‒ /data/hs.

Значение параметра storage_domain_UUID ‒ это UUID РХ. В данном случае ‒ b45cbfc3-9aab-4019-9ef1-793d0e408161:

[Options.DisasterRecovery]
main_db_host = head1.local
main_db_port = 5432
main_db_password =  # оставляем пустым
storage_domain_host = host2.local
storage_domain_user = root
storage_domain_dir = /data/hs
storage_domain_UUID = b45cbfc3-9aab-4019-9ef1-793d0e408161
allow_disk_deletion_on_merge = false

Примечание ‒ Параметр allow_disk_deletion_on_merge можно установить в true, если заранее принимается, что при слиянии разных состояний ВМ диски могут быть удалены, т. к. новое состояние ВМ (чек-пойнт) их не содержит (например, если перед очередным инкрементальным копированием диск был удалён из ВМ). Подробнее см. комбинацию №6 в таблице комбинаций дисков для ротации чек-пойнтов. Установка этого параметра в true позволит пропустить интерактивный диалог с пользователем, подтверждающий намерения пользователя.

Итоговый вид заполненных общих параметров Disaster Recovery:

[Options.DisasterRecovery]
main_db_host = head1.local
main_db_port = 5432
main_db_password =
storage_domain_host = host2.local
storage_domain_user = root
storage_domain_dir = /data/hs
storage_domain_UUID = b45cbfc3-9aab-4019-9ef1-793d0e408161
allow_disk_deletion_on_merge = false

Установка связи rv-backup с РХ

Важно ‒ Параметры Disaster Recovery обязательны и необходимы для того, чтобы rv-backup мог сконструировать корректный инкремент базы данных для его последующего применения утилитой rv-dr-sync. Параметры содержат информацию из РЦУ, где работает утилита rv-dr-sync.

Перед началом заполнения индивидуальных параметров Disaster Recovery для ВМ следует ознакомиться с описанием параметров конфигурации.

Пример незаполненных индивидуальных параметров Disaster Recovery для ВМ.

[Options.DisasterRecovery.vm.00000000-0000-0000-0000-000000000000]
target_cluster_id =
target_cpu_profile_id =
target_network_ids =
check_interval =

где 00000000-0000-0000-0000-000000000000 ‒ это UUID ВМ, к которой будут применены эти параметры. Узнать UUID ВМ можно в веб-интерфейсе ЦУ. В данном случае это UUID тестовой ВМ ‒ 3b4d6a7c-b6f0-463f-bda8-e3337484eac8:

[Options.DisasterRecovery.vm.3b4d6a7c-b6f0-463f-bda8-e3337484eac8]
target_cluster_id =
target_cpu_profile_id =
target_network_ids =
check_interval =

Значения для параметров target_cluster_id и target_cpu_profile_id можно определить с помощью утилиты rv-dr-sync:

rv-dr-sync list

Подробнее о команде можно узнать в п. rv-dr-sync list. Эти параметры необходимы для того, чтобы РЦУ определял, к какому кластеру будет относится синхронизируемая ВМ и с профилем какого процессора её запускать.

Примерный вывод команды:

cluster_id            cpu_profile_id                     network_ids
─────────────────────────────────────────────────────
7c9a549e-bfe4-11f0-8554-000005a0b0c0
58ca604e-01a7-003f-01de-000000000250
00000000-0000-0000-0000-000000000009

где:

  • значение параметра target_cluster_id ‒ 7c9a549e-bfe4-11f0-8554-000005a0b0c0;
  • значение параметра target_cpu_profile_id ‒ 58ca604e-01a7-003f-01de-000000000250.
[Options.DisasterRecovery.vm.3b4d6a7c-b6f0-463f-bda8-e3337484eac8]
target_cluster_id = 7c9a549e-bfe4-11f0-8554-000005a0b0c0
target_cpu_profile_id = 58ca604e-01a7-003f-01de-000000000250
target_network_ids =
check_interval =

Далее необходимо заполнить параметр target_network_ids, который содержит сопоставление сетевых интерфейсов, что необходимо для привязки ВМ к сетям кластера РВ. В данном случае в РВ имеется всего одна сеть (00000000-0000-0000-0000-000000000009), поэтому будет указано одно сопоставление:

[Options.DisasterRecovery.vm.3b4d6a7c-b6f0-463f-bda8-e3337484eac8]
target_cluster_id = 7c9a549e-bfe4-11f0-8554-000005a0b0c0
target_cpu_profile_id = 58ca604e-01a7-003f-01de-000000000250
target_network_ids = 00000000-0000-0000-0000-000000000009:00000000-0000-0000-0000-000000000009
check_interval =

где:

  • до ":" (двоеточия) указан UUID сетевого интерфейса ОВ;
  • после":" (двоеточия) ‒ сетевой интерфейс РВ.

В данном случае UUID совпадают, т. к. они являются сетевыми интерфейсами по умолчанию.

Значение для параметра check_interval указывается в секундах на усмотрение администратора. Параметр отвечает за то, с каким интервалом будет осуществляться перепроверка актуальности текущего состояния синхронизируемой ВМ в РВ. Обычно указывается 900 секунд (15 минут).

Итоговый вид заполненных индивидуальных параметров DR для ВМ ‒ 3b4d6a7c-b6f0-463f-bda8-e3337484eac8:

[Options.DisasterRecovery.vm.078fd21e-7942-4c41-8281-560759dc6555]
target_cluster_id = 7c9a549e-bfe4-11f0-8554-000005a0b0c0
target_cpu_profile_id = 58ca604e-01a7-003f-01de-000000000250
target_network_ids = 00000000-0000-0000-0000-000000000009:00000000-0000-0000-0000-000000000009
check_interval = 900

После завершения всех настроек хост РЦУ можно отключать и переходить к исполнению основного сценария Disaster Recovery.

Примечание ‒ По условию процедуры Disaster Recovery РЦУ в статусе "онлайн" необходим только для настройки и запуска синхронизированных ВМ после сбоя ОВ.