P2V Linux en XenServer
Hola amig@s, soy Ferran Serafini y aquí estoy como cada miércoles para ver algo más sobre los ecosistemas XenServer
Para los más Linuxeros, no tenemos una herramienta gráfica e intuitiva como XenConvert para poder virtualizar nuestros servidores físicos en caliente. Para ello tenemos que trabajar un poco más. Destaco también que hay diferentes formas de hacerlo. Yo os expongo una que me ha funcionado unas cuantas veces.
Primeramente instalamos el kernel Xen de la distribución del servidor físico y localizamos donde quedan los ficheros de kernel y initrd. Normalmente en /boot:
/boot/vmlinuz-2.6.24-24-xen
/boot/initrd.img-2.6.24-24-xen
En el grub no hay que modificar nada ya que la idea es que el servidor físico siga funcionando.
Arrancamos una máquina virtual GNU/Linux con nuestro template favorito que tenga acceso por SSH al servidor físico y le añadimos un disco VDI del espacio utilizado + el margen que prefieras del servidor físico. La llamaremos TransferVM
Una vez arrancada creamos una partición de todo el disco que hemos añadido.
# cfdisk /dev/xvdb
Importante, marcar como bootable.
Formateamos como ext3
#mkfs.ext3 # cfdisk /dev/xvdb1
La montamos como /mnt/virutal
#mkdir /mnt/virtual
#mount /dev/xvdb1 /mnt/virtual
Añadimos los directorios que exculir del rsync mágico que utilizaremos para el P2V en el fichero /root/exclued.txt
/proc
/dev
Ejecutamos el rsync:
rsync -acvvzhx –exclude-from=/root/exclued.txt root@HOST_a VIRTUALIZAR:/ /mnt/virtual/
En función de los datos que haya en el servidor físico, este proceso puede tardar minutos e incluso horas. Una vez finalizado ejecutamos.
#mkdir /dev
#mkdir /proc
Una vez finalizado, modificamos el fichero /mnt/virtual/boot/grub/menú.lst y localizamos la linia del kernel, lo modificamos para que arranque con kernel xen y los suficientes parámetros:
root=/dev/xvda1 ro xencons=tty console=tty1 console=hvc0
Quedaría más o menos así:
title Ubuntu 8.04.3 LTS, kernel 2.6.24-24-xen
root (hd0,0)
kernel /boot/vmlinuz-2.6.24-24-xen root=/dev/xvda1 ro xencons=tty console=tty1 console=hvc0
initrd /boot/initrd.img-2.6.24-24-xen
Ahora, ya solo queda crear una nueva VM que utilice pygrub para arrancar y hacer detach del disco secundario de la TransferVM y hacer attach en la nueva VM, Con un poco de suerte arrancará a la primera. Una vez arrancado instalamos las XenTools y ya tenemos nuestro servidor físico como domU en nuetros entorno XenServer.
Si falla, siempre podemos recurrir a pasarle los parámetros del kernel a nuestra máquina virtual con:
xe vm-param-set uuid=UUID-VM PV-bootloader-args=»–kernel=/boot/vmlinuz-xen –ramdisk=/boot/initrd-xen» 876 xe vm-param-set uuid= UUID-VM PV-args=»root=/dev/xvda1 ro quiet console=hvc0 xencons=hvc0″
O bien volver a ver el disco en nuestra transferVM volviendo hacer attach en la transferVM.
Esto es todo por hoy, espero como siempre haber podido aportar mi granito de arena para facilitarte tu día a día con XenServer. Saludos
¿Crees que este artículo puede interesar a alguien a quien conoces? Compártelo clicando los botones de Twitter y Facebook de abajo o arriba. Gracias.