Глава 27. Репликация хранилища
Репликация хранилища в PVE позволяет синхронизировать данные между узлами кластера. Она обеспечивает избыточность для ВМ и контейнеров, использующих локальное хранилище, а также сокращает время миграции за счёт передачи только изменённых данных. Репликация работает на уровне блоков, что делает её эффективной для синхронизации больших объёмов данных.
Управление репликацией осуществляется с помощью утилиты командной строки pvesr.
Репликация использует моментальные снимки для минимизации сетевого трафика: после начальной полной синхронизации передаются только инкрементальные изменения.
Репликация выполняется автоматически по настраиваемому расписанию. Минимальный интервал — 1 минута, максимальный — 1 раз в неделю. Формат расписания соответствует подмножеству формата событий календаря systemd (см.
Формат расписания).
Одну гостевую систему можно реплицировать на несколько целевых узлов, но не более одного раза на один узел.
Чтобы избежать перегрузки хранилища или сервера можно ограничить пропускную способность репликации.
Если ВМ/CT мигрирует на узел, куда уже настроена репликация, то при последующей миграции (например, обратно) передаются только изменения с момента последней синхронизации. Это значительно ускоряет процесс. Направление репликации автоматически переключается, если гостевая система мигрировала на целевой узел репликации.
Например, если VM100 находилась на узле pve02 и реплицировалась на узел pve03, то после миграции VM100 на узел pve03, ВМ будет автоматически реплицироваться с узла pve03 на узел pve02.
В случае если ВМ/CT мигрирует на узел, не входящий в список целевых, после миграции задание репликации продолжает реплицировать эту гостевую систему на настроенные узлы.
Репликация может использоваться совместно с механизмами высокой доступности (HA). Однако возможна небольшая потеря данных между моментом последней синхронизации и отказом узла.
Репликация поддерживается только для хранилищ типа
Локальный ZFS.
Для использования функции репликации должны быть выполнены следующие условия:
исходный и целевой узлы находятся в одном кластере;
все диски ВМ или контейнера размещены в хранилище ZFS;
на исходном и целевом узле настроено ZFS-хранилище с одинаковым идентификатором (именем);
целевой узел имеет достаточно свободного места.
27.1. Управление заданиями
Управлять заданиями репликации можно как в веб-интерфейсе, так и с помощью инструмента командной строки (CLI) pvesr.
Панель репликации можно найти на всех уровнях (центр обработки данных, узел, ВМ/CT). В зависимости от уровня на панели репликации отображаются все задания (центр обработки данных) или задания, специфичные для узла или гостевой системы.
Добавление нового задания репликации в веб-интерфейсе:
Перейти в раздел (центра обработки данных, узла, ВМ или контейнера, для которых настраивается репликация).
Нажать кнопку Добавить.
В открывшемся окне указать:
CT/VM ID — ID гостевой системы (если он еще не выбран);
Цель — целевой узел;
Расписание — расписание репликации;
Ограничение скорости (MB/s) — ограничение скорости репликации (опционально);
Нажать кнопку Создать.
Каждое задание имеет уникальный идентификатор вида <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'