SSH ключи: Желательно, чтобы между серверами был настроен вход по SSH ключам, иначе при передаче больших объемов сессия может отвалиться по таймауту, пока вы вводите пароль.
Сеть: Если диски NVMe, а сеть между серверами 1 Гбит/с, то передача 100 ГБ займет примерно 15-20 минут.
qm list
Предполодим, нам нужно машина 301
zfs list
Предположим, диск называется rpool/data/vm-301-disk-0
scp /etc/pve/qemu-server/301.conf root@pretendetn.mlp.pp.ua:/etc/pve/qemu-server/
Важно, что бы не было ВМ с номером 301 на конечном сервере. Иначе переименовать конфиг
scp /etc/pve/qemu-server/301.conf root@pretendetn.mlp.pp.ua:/etc/pve/qemu-server/331.conf
Если вы меняете ID (с 301 на 331) Если вы переименовываете конфиг при копировании (301.conf -> 331.conf), вам нужно обязательно отредактировать этот файл на целевом сервере:
Внутри файла 331.conf нужно заменить все упоминания старого диска vm-301-disk-0 на новое имя vm-331-disk-0.
ZFS датасет на втором сервере тогда тоже должен называться rpool/data/vm-331-disk-0.
Чтобы перенос прошел без проблем, лучше всего сделать это в два этапа:
1. передать основной объем данных на живую
2. остановить ВМ и быстро дослать изменения.
Это позволит передать 99% данных, пока пользователи еще работают.
zfs snapshot rpool/data/vm-301-disk-0@migration
Ключ -v покажет прогресс, а -C включит сжатие для ускорения
zfs send -v rpool/data/vm-301-disk-0@migration | ssh root@pretendetn.mlp.pp.ua zfs receive rpool/data/vm-301-disk-0
Чтобы увидеть прогресс в реальном времени, скорость и расчетное время (ETA), нужно использовать утилиту pv (Pipe Viewer). Она вставляется в середину «конвейера» (pipe).
apt install pv
Важно: убрать ключ -v
zfs send rpool/data/vm-201-disk-0@migration_ovpn | pv -s 1540M | ssh root@pretendetn.mlp.pp.ua "zfs receive rpool/data/vm-201-disk-0"
1. Останавливаем ВМ на srv1
qm stop 301
2. Делаем инкрементальный снапшот
zfs snapshot rpool/data/vm-301-disk-0@final
3. Отправляем только разницу (delta)
zfs send -v -i rpool/data/vm-301-disk-0@migration rpool/data/vm-301-disk-0@final | ssh root@all1 zfs receive -F rpool/data/vm-301-disk-0
Ключ -F (Force) откатывает диск на приемнике к состоянию снапшота @migration перед тем, как наложить на него изменения из @final
rpool/data/vm-301-disk-0 @ migration
|______________________| |_________|
| |
Путь к датасету Имя снапшота
|
zfs list -t snapshot | grep vm-301
(Там вы увидите ваш @migration).
zfs destroy rpool/data/vm-301-disk-0@migration
zfs rollback rpool/data/vm-301-disk-0@migration