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