# Репликация ZFS между узлами Proxmox VE: настройка

> Как настроить репликацию ZFS между узлами Proxmox VE: интервалы, storage.cfg, ручной запуск и восстановление после сбоя.

Живая миграция требует общего хранилища или переноса всего диска по сети в момент переключения. Репликация ZFS решает эту проблему иначе: диск виртуальной машины заранее синхронизируется на соседний узел, и при аварии остаётся включить копию за секунды, а не ждать копирования терабайтов.

## Как работает репликация ZFS в Proxmox VE

Механизм построен на снапшотах ZFS и команде `zfs send/receive`. Proxmox VE по расписанию создаёт снапшот диска VM, отправляет разницу с предыдущим снапшотом на целевой узел и хранит там актуальную копию. Между узлами передаётся только дельта, а не весь диск, поэтому повторная репликация занимает секунды даже для диска на сотни гигабайт.

## Требования к хранилищу перед настройкой

На обоих узлах — источнике и получателе — должен быть настроен пул ZFS с одинаковым названием (например `rpool/data`), а сами узлы обязаны входить в один [кластер Proxmox VE](https://www.zevshost.net/ru/kb/proxmox-cluster-nastroika/). Проверить название пула и его состояние можно командой:

```
zpool status rpool
zfs list rpool/data
```

Если пулы называются по-разному, репликацию придётся настраивать через ручной storage.cfg с явным указанием целевого пула.

## Настройка задания репликации в интерфейсе

Задание создаётся в свойствах виртуальной машины, в разделе **Replication**. Заполните параметры:

| Параметр | Значение | Комментарий |
| --- | --- | --- |
| Target | имя узла-получателя | второй или третий узел кластера |
| Schedule | \*/15 | интервал репликации в минутах |
| Rate limit | 50 MB/s | ограничение полосы на общей сети |

После сохранения задание появится в общем списке репликации узла и начнёт первый полный снапшот — он самый долгий, дальше пойдут только инкрементальные передачи.

## Как запустить репликацию вручную и проверить статус

Для разовой синхронизации или диагностики используйте команду из консоли узла:

```
pvesr run --id 101-0
pvesr status
```

Команда `pvesr status` показывает время последней успешной репликации по каждому заданию и причину сбоя, если он был. Типичная ошибка — рассинхронизация снапшотов после ручного удаления диска или переноса VM без обновления задания.

## Что делать при обрыве репликации

Если задание падает с ошибкой про отсутствующий общий снапшот, восстановите синхронизацию, удалив локальную копию на получателе и запустив полную репликацию заново:

```
pvesr delete 101-0 --force
qm set 101 --delete replicate
```

После этого создайте задание репликации заново через интерфейс — Proxmox VE снимет свежий базовый снапшот и перезапустит цепочку инкрементов с нуля.

## Чем репликация ZFS отличается от бэкапа

Репликация — это не замена регулярному резервному копированию через [расписание бэкапов](https://www.zevshost.net/ru/kb/proxmox-backup-schedule/). Она хранит только последнюю копию на соседнем узле и не защищает от логических ошибок вроде удаления файлов внутри гостевой ОС, которые тут же реплицируются вместе с диском. Репликацию стоит использовать для быстрого failover, а бэкапы — для восстановления на точку во времени.

## Чек-лист рабочей репликации

- Пул ZFS с одинаковым именем присутствует на обоих узлах.
- Команда `pvesr status` показывает свежее время последней успешной синхронизации.
- Rate limit подобран так, чтобы репликация не мешала обычному сетевому трафику кластера.
- Параллельно с репликацией настроено обычное резервное копирование на отдельное хранилище.

---

Источник: https://www.zevshost.net/ru/kb/proxmox-zfs-replikaciya/
