Ciao Ragazzi,
oggi vi spiego come migrare un LVM da un server ad un altro. La domanda sorge spontanea…Perchè?
Il perchè è semplice da spiegare, una volta capito lo scenario:
Ho due proxmox diversi, su due server diversi e devo migrare una VM di grandi dimensioni dal server 1 al server 2.
Bene, chi è più esperto e conosce come funziona Proxmox mi dirà che la strada migliore è quella di fare un backup della prima macchina, trasferirla sul secondo server e ripristinare il backup: questa è la soluzione ideale da prediligere sempre!
Con la soluzione del backup/ripristino siamo sicuri che non perdiamo nessun tipo di informazione e non abbiamo possibilità di errore.
Nel mio caso è diverso, non posso fare così perchè la VM pesa 230GB e fare backup e ripristino comporterebbe troppo tempo e soprattutto tenerla spenta per troppo tempo (ebbene si non posso evitare di spegnerla per molto perchè stiamo parlando di un Mail Server) per cui il pensiero di fare qualcosa “a caldo” o quasi è balenato nella mia testa e quella del mio amico Frank
Vi risparmio le prove fatte e vi do già il metodo funzionante.
Creiamo sul server 2 una VM con le stesse caratteristiche di quella che dobbiamo spostare così da allocare i dischi nel LVM.
Andiamo su server 1 e con il comando lvdisplay identifichiamo i dischi da spostare:
— Logical volume —
LV Path /dev/vg0/vm-106-disk-1
LV Name vm-106-disk-1
VG Name vg0
LV UUID xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
LV Write Access read/write
LV Status available
# open 0
LV Size 100,00 GiB
….
— Logical volume —
LV Path /dev/vg0/vm-106-disk-2
LV Name vm-106-disk-2
VG Name vg0
LV UUID xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
LV Write Access read/write
LV Status available
# open 0
LV Size 130,00 GiB
….
Questi sono gli LVM da copiare sul server 2. Procediamo per prima cosa spegnendo la VM sul server 1 e poi, sempre dal server 1:
root@server1:~# dd if=/dev/vg0/vm-106-disk-1 bs=4096 | ssh root@server2 'dd of=/dev/vg0/vm-110-disk-1 bs=4096'
root@server1:~# dd if=/dev/vg0/vm-106-disk-2 bs=4096 | ssh root@server2 'dd of=/dev/vg0/vm-110-disk-2 bs=4096'
Se i due server si trovano sulla stessa rete la copia sarà molto più veloce del previsto e soprattutto molto più veloce che effettuare un backup+ripristino da Proxmox.
Può succedere però che, una volta finita la copia, sul server 2 la VM non parta per questo errore:
file system may not support O_DIRECT
Questo può accadere se i Proxmox dei due server sono diversi o se c’erano configurazioni particolari dietro.
La soluzione è semplice, basta mettere la cache del disco in write-through come in figura:
Fatemi sapere se avete altre soluzioni migliori di questa o alternative!
E mi raccomando, prima di provare queste cose assicuratevi di avere sempre un backup a portata di mouse!
Enjoy!