Tenemos una máquina virtual de Parallels Bare Metal. En este entorno esto se llamaría hypervisor.
¿Cuál es el procedimiento para migrar a KVM?
Si operásemos con una máquina física podríamos levantar una ISO con un Linux Live CD, Clonezilla o similar pero, en este entorno tenemos el problema que una máquina virtual de PBMS no levanta la red sino tiene las Parallels Tools incluidas.
Por tanto, utilizaremos el truco.
Truco: tenemos la máquina fuente, la que queremos mover. Ok, creamos otra en paralelo con CentOS por ejemplo, instalamos tools le damos red, etc. Ahora, paramos la máquina virtual fuente y añadimos su disco duro a la máquina nueva.
En nuestro caso, la máquina fuente era una virtual con Windows Server 2K3. Así que deberemos hacer fdisk y ver un disco duro con formato NTFS
Disco /dev/sdb: 298.2 GB, 298156294144 bytes 255 heads, 63 sectors/track, 36248 cylinders Units = cilindros of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000080 Disposit. Inicio Comienzo Fin Bloques Id Sistema /dev/sdb1 * 1 36248 291162028+ 7 HPFS/NTFS /dev/sdb2 1 1 0 0 VacÃa La partición 2 no termina en un lÃmite de cilindro. /dev/sdb3 1 1 0 0 VacÃa La partición 3 no termina en un lÃmite de cilindro. /dev/sdb4 1 1 0 0 VacÃa La partición 4 no termina en un lÃmite de cilindro.
Cuando tengamos este punto, tenemos una máquina linux levantada con red que tiene visible el disco duro de una máquina virtual windows (específico esto porque luego tiene importancia)
Ahora, seguimos los pasos para poder mover (basados en mi escenario)
1. Tenemos una máquina virtual via KMV con ID 1 con un disco duro más grande que el tamaño del disco duro a mover.
2. La máquina virtual está parada. El disco a mover de la máquina física es /dev/sdb1 (NTFS)
3. La MV tiene id 1.
4. El nombre del volumen lógico es “lvmvol”
5. Así que el espacio LVM del disco de nuestra máquina es:/dev/lvmvol/vol001
6. Loguearse en ambas máquinas, física y virtual
7. En la máquina destino KVM (pero a nivel de anfitrión) ejecutar:
# date; nc -nvv -w30 -l 3333 | gzip -dc > /dev/lvmvol/vol001; date
8. en la máquina virtual origen que ejecutamos:
# dd if=/dev/sdb | pv -s 64G |gzip -c | nc -w30 -vvn 10.0.0.100 64GB 0:22:38 [48,3MB/s] [======================================================================== 134217728+0 records in 134217728+0 records out 68719476736 bytes (69 GB) copied, 1358,05 s, 50,6 MB/s
Ejecutar el segundo comando (punto 8) en menos de 30 segundos!!!!!
Con el “pv -s” evitamos tener que enviar señales kill al dd para que nos muestre el proceso. Lo malo es que previamente tenemos que conocer que tamaño de bloque de disco estamos moviendo pero es útil.
Ahora deberíamos poder levantar la máquina ya como host KVM.
Links
http://pve.proxmox.com/wiki/Migration_of_servers_to_Proxmox_VE
http://www.walkernews.net/2007/07/02/how-to-create-linux-lvm-in-3-minutes/
http://laforjadeunbit.blogspot.com.es/2012/02/convertir-maquina-kvm-vmware-ii.html
http://www.ingent.net/ca/tag/kvm/
https://wiki.inf.ed.ac.uk/DICE/SimpleKVMHost
http://vitobotta.com/setting-up-kvm-lvm-virtual-machine-host/
http://www.howtoforge.com/virtualization-with-kvm-on-a-centos-5.2-server
http://www.ingent.net/en/2012/01/from-physical-to-virtual-with-dd-over-the-net/