Product SiteDocumentation Site

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

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

Примечание

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

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

Управлять заданиями репликации можно как в веб-интерфейсе, так и с помощью инструмента командной строки (CLI) pvesr.
Панель репликации можно найти на всех уровнях (центр обработки данных, узел, ВМ/CT). В зависимости от уровня на панели репликации отображаются все задания (центр обработки данных) или задания, специфичные для узла или гостевой системы.
Список заданий репликации узла pve02
Добавление нового задания репликации в веб-интерфейсе:
  1. Перейти в раздел Репликация (центра обработки данных, узла, ВМ или контейнера, для которых настраивается репликация).
  2. Нажать кнопку Добавить.
  3. В открывшемся окне указать:
    • CT/VM ID — ID гостевой системы (если он еще не выбран);
    • Цель — целевой узел;
    • Расписание — расписание репликации;
    • Ограничение скорости (MB/s) — ограничение скорости репликации (опционально);
  4. Нажать кнопку Создать.
Создание задания репликации
Каждое задание имеет уникальный идентификатор вида <VMID>-<номер задания>. При использовании CLI идентификатор указывается вручную.
Примеры работы с заданиями репликации в командной строке:
  • создать задание репликации для ВМ 214 с репликацией каждые 10 минут и ограничением 10 Мб/с:
    # 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
    
  • включить задание:
    # pvesr enable 214-0
    
  • изменить расписание на один раз в час:
    # pvesr update 214-0 --schedule '*/1:00'