Product SiteDocumentation Site

Глава 27. Репликация хранилища

27.1. Управление заданиями
27.2. Обработка ошибок
27.3. Миграция гостевой системы в случае ошибки
Репликация хранилища в PVE позволяет синхронизировать данные между двумя или более узлами кластера. Репликация хранилища обеспечивает избыточность для гостевых систем, использующих локальное хранилище, и сокращает время миграции. Репликация работает на уровне блоков, что делает её эффективной для синхронизации больших объёмов данных.
Инфраструктурой репликации хранилища PVE управляет инструмент командной строки pvesr.
Репликация использует моментальные снимки для минимизации трафика, отправляемого по сети. Поэтому новые данные отправляются только пошагово после первоначальной полной синхронизации.
Репликация выполняется автоматически с настраиваемыми интервалами. Минимальный интервал репликации составляет одну минуту, максимальный — раз в неделю. Формат, используемый для указания этих интервалов, является подмножеством событий календаря systemd, см. Формат расписания.
Можно реплицировать гостевую систему на несколько целевых узлов, но не дважды на один и тот же целевой узел.
Чтобы избежать перегрузки хранилища или сервера можно ограничить пропускную способность репликации.
Если ВМ/CT мигрирует на узел, на который он уже реплицирован, необходимо переносить только изменения с момента последней репликации (так называемые дельты). Это значительно сокращает время миграции. Направление репликации автоматически переключается, если гостевая система мигрировала на целевой узел репликации.
Например, если VM100 находилась на узле pve02 и реплицировалась на узел pve03, то после миграции VM100 на узел pve03, ВМ будет автоматически реплицироваться с узла pve03 на узел pve02.
В случае если ВМ/CT мигрирует на узел, на которую гостевая система не реплицируется, после миграции задание репликации продолжает реплицировать эту гостевую систему на настроенные узлы.

Примечание

Высокая доступность допускается в сочетании с репликацией хранилища, но может быть некоторая потеря данных между последним временем синхронизации и временем отказа узла.
Для репликации поддерживается тип хранилища Локальный ZFS.
Для использования функции репликации должны быть выполнены следующие условия:
  • исходный и целевой узлы должны находиться в одном кластере;
  • все диски ВМ или контейнера должны храниться в хранилище ZFS;
  • на исходном и целевом узле должно быть настроено хранилище ZFS с одинаковым идентификатором (именем);
  • целевой узел должен иметь достаточно места для хранения.

27.1. Управление заданиями

Управлять заданиями репликации можно как в веб-интерфейсе, так и с помощью инструмента командной строки (CLI) pvesr.
Панель репликации можно найти на всех уровнях (центр обработки данных, узел, ВМ/CT). В зависимости от уровня на панели репликации отображаются все задания (центр обработки данных) или задания, специфичные для узла или гостевой системы.
Список заданий репликации узла pve02
Добавление нового задания репликации в веб-интерфейсе:
  1. Перейти в раздел Репликация (центра обработки данных, узла, ВМ или контейнера, для которых настраивается репликация).
  2. Нажать кнопку Добавить.
  3. В открывшемся окне указать:
    • CT/VM ID — ID гостевой системы (если он еще не выбран);
    • Цель — узел, на который будут реплицироваться данные;
    • Расписание — расписание репликации;
    • Ограничение скорости (MB/s) — ограничение скорости репликации (если нужно);
  4. Нажать кнопку Создать.
Создание задания репликации
Задание репликации имеет уникальный идентификатор. Идентификатор состоит из VMID и номера задания. Идентификатор необходимо указывать вручную только при использовании инструмента CLI.
Примеры работы с заданиями репликации в командной строке:
  • создать задание репликации, которое запускается каждые 10 минут с ограниченной пропускной способностью 10 Мб/с для ВМ с идентификатором 214:
    # pvesr create-local-job 214-0 pve03 --schedule "*/10" --rate 10
    
  • отключить активное задание с идентификатором 214-0:
    # pvesr disable 214-0
    
  • просмотреть список заданий репликации:
    # pvesr list
    JobID                Target                 Schedule  Rate  Enabled
    213-0                local/pve02              */1:00     -      yes
    214-0                local/pve03                */10    10       no
    
  • проверить статус репликации:
    # pvesr status
    JobID     Enabled    Target                      LastSync             NextSync   Duration  FailCount State
    213-0     Yes        local/pve02      2025-02-26_10:10:48  2025-02-26_11:00:00   2.455654          0 OK
    
  • включить деактивированное задание с идентификатором 214-0:
    # pvesr enable 214-0
    
  • изменить интервал расписания задания с идентификатором 214-0 на один раз в час:
    # pvesr update 214-0 --schedule '*/1:00'