Жива міграція вимагає спільного сховища або перенесення всього диска мережею в момент перемикання. Реплікація ZFS вирішує цю проблему інакше: диск віртуальної машини заздалегідь синхронізується на сусідній вузол, і в разі аварії досить увімкнути копію за секунди, а не чекати копіювання терабайтів.
Як працює реплікація ZFS у Proxmox VE
Механізм побудований на знімках ZFS і команді zfs send/receive. Proxmox VE за розкладом створює знімок диска VM, надсилає різницю з попереднім знімком на цільовий вузол і зберігає там актуальну копію. Між вузлами передається лише дельта, а не весь диск, тому повторна реплікація займає секунди навіть для диска на сотні гігабайт.
Вимоги до сховища перед налаштуванням
На обох вузлах — джерелі та отримувачі — має бути налаштований пул ZFS з однаковою назвою (наприклад rpool/data), а самі вузли зобов'язані входити до одного кластера Proxmox VE. Перевірити назву пула та його стан можна командою:
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 відрізняється від резервної копії
Реплікація — це не заміна регулярному резервному копіюванню через розклад бекапів. Вона зберігає лише останню копію на сусідньому вузлі і не захищає від логічних помилок на кшталт видалення файлів усередині гостьової ОС, які одразу реплікуються разом з диском. Реплікацію варто використовувати для швидкого failover, а бекапи — для відновлення на точку в часі.
Чек-лист робочої реплікації
- Пул ZFS з однаковою назвою присутній на обох вузлах.
- Команда
pvesr statusпоказує свіжий час останньої успішної синхронізації. - Rate limit підібрано так, щоб реплікація не заважала звичайному мережевому трафіку кластера.
- Паралельно з реплікацією налаштовано звичайне резервне копіювання на окреме сховище.