PROXMOX. Миграция VM

Материал из megapuper
Версия от 14:04, 21 мая 2026; Root (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

В Proxmox VE версии 7.3 появилась штатная возможность миграции виртуальных машин на другой кластер.


1. Миграция работает только на локальных хранилищах (highio/local)
2. Работает online миграция ВМ с минимальным даунтаймом в миллисекунды, пинги не пропадают, вм фризится.


Миграция

Для перемещения диска cloud-init без остановки VM(если он нужен):

Cloud-init change stor
qm set <VMID> --ide0 none  # это делаем до миграции
qm set <VMID> --ide0 <Storage_name>:cloudinit # это делаем после миграции уже на новом гипервизоре

#VMID = 30174, Storage_name = highio
qm set 30174 --ide0 none  # это делаем до миграции 
qm set 30174 --ide0 highio:cloudinit # это делаем после миграции уже на новом гипервизоре
update VM 30174: -ide0 none
Removing image: 100% complete...done.


Перед миграцией выносим креды в переменные

APITOKEN='PVEAPIToken=<api_user>!<token_id>=<token_secret>'

INGERPRINT - отпечаток сертификата хоста, на который осуществляем миграцию, смотрим Node -> System -> Certificates -> pve-ssl.pem -> Fingerprint

qm remote-migrate <vmid> [<target-vmid>] <target-endpoint> --target-bridge <string> --target-storage <string> [OPTIONS]

Если хотим удалить VM после успешной миграции, добавляем --delete 1 (default = 0)
Онлайн миграция --online


Итоговые команды миграции

export APITOKEN='PVEAPIToken=prx-nbx-sync@pve!prx-nbx-sync=57026558-d39a-4340-9574-6563e8f46b94'
export FINGERPRINT='FF:DE:F7:F6:DD:B1:45:35:C5:8E:62:F1:5D:BB:92:10:84:0C:16:16:96:E3:67:E0:E8:C5:61:88:EC:1C:C2:22'
qm remote-migrate 125 125 apitoken='PVEAPIToken=prx-nbx-sync@pve!prx-nbx-sync=57026558-d39a-4340-9574-6563e8f46b94',host=172.16.38.1,fingerprint='FF:DE:F7:F6:DD:B1:45:35:C5:8E:62:F1:5D:BB:92:10:84:0C:16:16:96:E3:67:E0:E8:C5:61:88:EC:1C:C2:22' --target-bridge vmbr1 --target-storage local --online --delete 1

Смигрирвать сразу все ВМ можно так

qm list | awk '{print $1}' | while read VMID;do qm set $VMID --ide0 none; qm remote-migrate $VMID $VMID apitoken=${APITOKEN},host=172.16.38.1,fingerprint=${FINGERPRINT} --target-bridge vmbr1 --target-storage local --online --delete 1; done  

Fngerprint удалённого proxmox ещё можно посмотреть так

openssl s_client -connect 172.16.38.1:8006 -servername 172.16.38.1 </dev/null 2>/dev/null | openssl x509 -noout -subject -issuer -fingerprint -sha256
subject=CN = pve38.iwad.ru
issuer=C = US, O = Let's Encrypt, CN = R13
sha256 Fingerprint=FF:CE:F7:F6:DD:B1:45:20:C5:8E:62:F1:4D:BB:92:10:84:0C:16:24:96:E3:67:E0:E8:C5:61:77:EC:1C:C2:22

Осторожно с миграцией patroni, обрубается, не успевает долить, т.к. I/O высокий