GNU/Linux Centos 7 Libvirt + QEMU + KVM vs VMware VSphere

En el 2011 escribí un articulo llamado Migrando de VMware Server a VSphere, ha funcionado muy bien desde entonces, el problema es que a veces la versión gratuita ( no libre ) no hace todo lo que si puede hacer la versión comercial, como migrado de máquinas virtuales dentro del datacenter. Para lograr esto hay que comprar la versión comercial que tiene un costo por licencia de 4,229.00 USD.

Libvirt + QEMU + KVM vs VMware
Ver mas grande

Es hora de abandonar VMWARE por software completamente libre, usando para esto Libvirt + KVM + QEMU , en suma crean un entorno similar al de VMWARE en su versión comercial y un rendimiento impresionante.

Emulando un sistema de trabajo a VMWARE Sphere

Se requiere un RedHat o CentOS en sus versiones 7

1 Instalar el sistema operativo en su versión mínima

2 Particionamiento, si decides controlar tus particiones y aunque las máquinas virtuales las podrás colocar donde desees, el lugar por default es: /var/lib/libvirt
Por default ahi es donde se almacenan imágenes ISO para instalar sistemas operativos virtualizados y también donde se almacenan los discos duros virtuales de las maquinas virtuales, debes dejar tu mayor espacio de particionamiento montado en /var/lib/libvirt

3 Terminada la instalación debes actualizar e instalar los paquetes necesarios, aquí se usa yum

yum update
yum groupinstall "Host de virtualización"
yum install net-tools virt-manager xauth

4 Configuracion del Sistema operativo

Desactivar selinux

Desactivar los firewall con:

systemctl disable firewalld
systemctl stop firewalld

Desactivar interfaces bridge por default, se pueden crear nuevas dentro del administrador de virtualizacion o manualmente en la parte opcional de este articulo al final de el.

virsh net-destroy default
virsh net-undefine default

5 Preparar Linux para tener un cliente de administración en Windows con tunnel ssh
Modificar /etc/ssh/sshd_config

Asegurarse que no está comentado o que las siguientes líneas están presentes.

X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes

6 Reiniciar shutdown -r now

Al arrancar la maquina esta lista para empezar a virtualizar, desde otro GNU/Liunx con libvirt y la aplicación virt-manager se puede administrar remotamente, como se hace actualmente con vmware que desde un Windows usando vmware client se puede administrar.

Libvirt + QEMU + KVM vs VMware
Ver mas grande

Si usa Windows como escritorio también puede usar virt-manager exportado mediante X Server a Windows con seguridad vía ssh

Libvirt + QEMU + KVM vs VMware
Ver mas grande

Preparar Windows para poder usar el virt-manager

1 Descargar la aplicación Xming X Server for Windows la URL es:
http://sourceforge.net/projects/xming/
2 Instalar Xming y ejecutarlo, Abrir putty

En category -> Connection -> SSH -> X11
Activar ( Enable ) X11 Forwarding
Escribir la IP del nuestro Nuevo virtualizador
Dentro del Shell ya sea como root o como otro usuario según el nivel de seguridad aplicado, ejecutar el comando virt-manager

Esto hará que el virt-manager del servidor de virtualización sea exportado al escritorio Windows.

Libvirt + QEMU + KVM vs VMware
Ver mas grande

Migrar de VMWARE a QEMU+KVM

Es posible traer las máquinas virtuales de VMWARE a nuestro nuevo servidor de virtualización

Traer máquinas de VMWARE

Los pasos del 1 al 4 es específicamente para maquinas virtuales con Windows

1 Desinstalar VMware-tools, si es que está instalado

2 Descargar mergeide.reg y parchar con el, el registro de Windows debido a que VMWARE usa los discos en modo SCSI y QEMU en modo IDE, este cambio de interface hace que aparezcan pantallas azules al iniciar Windows, mergeide.reg debe solucionar este problema.

3 Comprobar que existen los archivos Atapi.sys, Intelide.sys, Pciide.sys y Pciidex.sys en la carpeta %SystemRoot%\System32\Drivers. Si falta alguno, puede extraerse de %SystemRoot%\Driver Cache\I386\Driver.cab

4 Apagar completamente la máquina virtual en VMWARE

5 Si cuando se creo la maquina virtual en VMWARE se uso SPLIT de discos, entonces deberán ser concatenados a uno solo, comando de ejemplo

vmware-vdiskmanager -r disco-origen.vmdk -t 0 disco-destino.vmdk

6 Finalmente convertir el formato de VMWARE po el usado con QEMU con el comando

qemu-img convert -f vmdk disco-destino.vmdk -O qcow2 disco-destino.qcow2

Migrar maquinas entre distintos servidores de virtualización en el datacenter

Con virt-manager, se conecta a otros libvirt en la pestaña de conexión y depues esto es muy fácil, solo se le indica a la maquina a donde debe migrar. Virt-Manager puede migrar en caliente/vivo una máquina virtual en producción, pero solo mueve la configuración y la memoria ram

Para que la migración ocurra exitosamente en la maquina destino debe existir el mismo disco duro virtual de la máquina virtual y las mismas interfaces de red, aquí podría ser un buen lugar para aplicar la bridge llamadas br0 , br1, etc, de forma que sin importar a que interface física este enlazada siempre encuentre que hay una llamada brX.

Como virt-manager espera encontrar el disco duro virtual de la maquina en la maquina virtualizadora destino y el administrador espera al mismo tiempo que los archivos en cada lugar sean iguales todo el tiempo, la forma de hacer esto es con sistemas de archivos distribuidos como NFS, de forma que haya un repositorio global para los archivos de disco duro de las máquinas virtuales, montados en la misma ruta en cada una de las maquinas virtualizadoras del datacenter.

Libvirt + QEMU + KVM vs VMware
Ver mas grande

Este video demuestra cómo se migran maquinas vivas que están en producción

Opcionalmente

Se puede instalar que las máquinas virtuales soporten EFI además de BIOS y configurar una interface bridge manualmente, la mayoría de las veces no necesitara hacer los siguientes pasos.

Soportar EFI

1 Descargar repositorio e instalar firmware

wget http://www.kraxel.org/repos/firmware.repo -O /etc/yum.repos.d/firmware.repo
yum install edk2.git-ovmf-x64

2 Modificar /etc/libvirt/qemu.conf agregando al inicio.

nvram = [
“/usr/share/edk2.git/ovmf-x64/OVMF_CODE-pure-efi.fd:/usr/share/edk2.git/ovmf-x64/OVMF_VARS-pure-efi.fd”, ]

3 Recargar libvirt

systemctl restart libvirtd

Configurar interface bridge

No estará ligada a ninguna tarjeta de red físicamente, debe adjuntar la tarjeta bridge a la tarjeta física que necesite para su propia configuración, si la necesita.

1 en /etc/sysconfig/network-scripts crear el archivo ifcfg-br0 con el contenido

DEVICE=br0
TYPE=Bridge
ONBOOT=yes
DELAY=0
NM_CONTROLLED=no

2 en /root crear el archivo bro.xml con el contenido

<network>
  <name>bridge-br0</name>
  <forward mode="bridge"/>
  <bridge name="br0"/>
</network>

3 Activar la interface

virsh net-define bridge-br0.xml
virsh net-autostart bridge-br0
virsh net-start bridge-br0

3 Reiniciar la red interna del CentOS o RedHat

systemctl restart network

6 Comments

Add a Comment

Comment spam protected by SpamBam