Purtroppo vmware non ha ancora rilasciato un convertitore p2v (da macchina fisica a macchina virtuale) degno di quello per la piattaforma windows.
Linux però ci da già di predefinito tutti gli strumenti per fare una copia perfetta di un disco in rete.
Per fare questo ci servono solo 2 applicazioni semplicissime: dd e netcat.
Guida
Per semplicità chiameremo Master (ip: 10.0.0.1) la macchina fisica e Slave quella virtuale (ip: 10.0.0.2).
Slave:
Creare una nuova vm con un hard disk di dimensioni maggiori o uguali al disco Master
Avviare una distribuzione live (knoppix o il “Prova ubuntu senza installare” vanno benissimo)
Impostare come ip l’indirizzo 10.0.0.2
aprire il terminale e digitare:
nc -l -p 9000 | dd of=/dev/sda oppure
nc -l 9000 | dd of=/dev/sda
(dipende da quale vi funziona in base alla versione di netcat)
NB1: è importantissimo partire dallo slave
NB2: sostituire /dev/sda con il disco adatto. Un fdisk -l può risolvere i vostri dubbi
Master:
Qui ci sono 3 alternative valide per preparare la copia:
- Spegnere il pc e avviare una distro live. (copia perfetta e non crea mai errori)
- Smontare un disco del raid e usarlo per la copia. Successivamente si potrà fare un rsync degli ultimi dati copiati (potete fare un p2v continuando ad erogare i servizi associati al vostro server)
- Fermare tutti i servizi e programmi che accedono al disco (solo in caso in cui non si abbia una distro live pronta)
Attenzione!! Fare un p2v con un mysql o un samba server attivo (con molti i/o) rende il disco di destinazione inutilizzabile perché il filesystem sarà corrotto.
Ok adesso aprite il terminale e digitate un:
dd if=/dev/sda | nc 10.0.0.2 9000
Adesso armatevi di tanta pazienza perchè il processo impiegherà molto tempo:
- Su una rete in megabit: copia di 8 MB/s circa: 2 minuti per ogni GB di hard disk, 3 ore e mezzo per 100 GB
- Su una rete in gigabit: copia di 80 MB/s circa: 12 secondi per ogni GB di hard disk, 20 minuti per 100 GB
Attenzione! Le prestazioni del disco Master influiscono molto sulle performance
Il p2v può fallire se:
- Qualcosa è cambiato nel disco durante la copia in rete
- Il kernel del linux installato è troppo vecchio e non supporta vmware
Articolo molto illuminante e utile: solo una precisazione e un paio di domande.
Precisazione: sulla macchina master il comando da dare dovrebbe essere dd if=/dev/sda | nc 10.0.0.2 9000 dato che questo e’ l’IP stabilito per la macchina slave.
Domanda 1: il manuale in linea di ‘nc’ dice che e’ un errore usare l’opzione -l insieme all’opzione -p. Che ne pensi?
Domanda 2: perche’ il SO sul master deve supportare VMware dato che stiamo facendo una copia da Linux a Linux?
@Peppino
Grazie ho corretto l’ip
1 – la nuova versione di netcat ha cambiato i comandi. adesso nello slave bisogna fare nc -l 9000
2 – Per copiare il disco non c’è problema, per farlo bootare si!
Molto bello l’articolo mi è servito a meno del fatto che usando fedora i lvm non funzionano
Puoi fare la stessa cosa anche se il disco ha delle lvm, non dovrebbero esserci problemi!
Ti ho scritto perchè ho provato. i filesystem lvm non viene letto correttamente e quindi la macchina non parte