jueves, 30 de diciembre de 2010

Importacion XenOpensoure a Xenserver vm windows 2008

Después de pelearme unas horas intentando migrar una máquina virtual Windows 2008 r2 64 bits virtualizada en Xen Opensource hacia un pool de servidores Citrix Xenserver, he encontrado la forma de poder importar los discos correctamente.

Buen el error que me daba era el típico de que no puede importar:
xe vdi-import uuid=3e983e7b-6bd1-405f-a309-13ec2fc26dbf filename=vmwindows.disk.xm
Error code: CLIENT_ERROR
Error parameters:

El tema es curioso ya que originalmente el disco ya es raw:
 qemu-img info vmwindows.disk.xm
image: vmwindows.disk.xm
file format: raw
virtual size: 20G (21474836480 bytes)
disk size: 20G

Si convertimos de raw a raw, luego la podemos importar...
qemu-img convert vmwindows.disk.xm -O raw myserver.img

Desde el servidor XenServer
xe vdi-import --force uuid=3e983e7b-6bd1-405f-a309-13ec2fc26dbf filename=myserver.img

Y sin más problemas, se importa el disco.
Luego da un pantallazo azul cuando se arranca la maquina virtual, entrar a modo a prueba de fallos con conexión de red, instalar las xentools y listos.

miércoles, 29 de diciembre de 2010

Citrix XenServer - Error: Starting VM 'vmachine' on 'dom0server' - Internal error: Failure("The VDI XXX is already attached in RW mode; it can't be attached in RO mode!")

28/12/2010 17:25:47 Error: Starting VM 'vmachine on 'dom0server' - Internal error: Failure("The VDI XXX is already attached in RW mode; it can't be attached in RO mode!") 

Tras ver este error y leer en algunos sitios que cuando sale este error hay que reiniciar el servidor dom0... He encontrado otra solución con menos impacto. En mi caso, tengo otros dom0, en migrar la maquina, tambien fallaba. Con xe-toolstack-restart es suficiente para solventarlo.

Tambien comentar que este error puede venir debido a un fallo con el multipath, no estaría demás reiniciar este servicio y verificar que todos los caminos estan OK.

miércoles, 22 de diciembre de 2010

Citrix XenServer - Importación maquinas virtuales desde Xen Opensource

La migración de una plataforma a otra no es extremadamente complicada si las maquinas virtuales son homogenias y cumplen basicamente estas razones:
  • Haya el menu.lst de grub correctamente configurado.
  • El Kernel dentro de la maquina virtual.
  • La partición donde esta el grub tenga el flag bootable.
En algún caso me he encontrado el siguiente error a la hora de hacer el xe vdi-import 
Error code: CLIENT_ERROR

He buscado por la red pero tampoco he encontrado justificación para este error. Al parecer, pura objeción personal, algun disco de alguna máquina virtual, estaba "corrupto"  pero Xen Opensorce lo arranca igualmente, o si no es corrupto hay algo en el FS que hace que no se pueda importar.

La solución que he encontrado haciendo prueba y error es en el entorno xen opensource añadir un nuevo disco raw con el mismo tamaño y hacer un dd if=/dev/xvda of=/dev/xvdb. Aunque parezca una tonteria, ese nuevo disco sí que se puede importar mediante  xe vdi-import correctamente.


Linux - vlan config red hat

Para crear un dispositivo tipo eth0.115 donde se lleva un trunk al eth0 de N redes, hay que hacer lo siguiente.
Adaptamos el fichero de config relacionado con el adaptador ethX donde le lllega el trunk.

DEVICE=eth0 # use real interface name here
BOOTPROTO=static 
HWADDR=AA:17:31:9C:8D:BC # use real MAC address here 
ONBOOT=no 
TYPE=Ethernet 
IPADDR=0.0.0.0 
NETMASK=255.255.255.0 

Una vez tenemos el interface configurado, creamos el fichero de config del adaptador virtual que switchea con la VLAN. Por ejemplo: eth0.115 /etc/sysconfig/network-scripts/ifcfg-eth0.115 VLAN=yes 
DEVICE=eth0.115 
BOOTPROTO=static 
ONBOOT=yes 
TYPE=Ethernet 
IPADDR=10.1.1.1 
NETMASK=255.255.255.0

Si hacemos el ifup del eth0.115 ya estara funcionando. Para comprobarlo nada mejor que un tcpdump -nei eth0.115 y lanzar un ping hacia esta máquina.

Más info: http://www.mysidenotes.com/2008/01/30/vlan-configuration-on-fedora-core-red-hat-centos/


martes, 14 de diciembre de 2010

Citrix XenServer - Duplicación red management

No se si realmente es un bug o porqué pasa. El problema es que cuando haces join de un servidor a un pool de servidores, si no están los name_label en las networks exactamente como están en el servidor que queremos integrar en el pool, en el momento del join se duplica la network de management.

Para evitar y/o solucionar este problema hay que hacer lo siguiente:
  1. Si ya hemos hecho el join hay que quitaro del pool ("Remove Server form pool")
  2. Mirar los nombres de las redes del pool desde el CLI: xe network-list
  3. Comprovar que las redes de hay en el servidor que queremos integrar tienen el mismo nombre y sino modificarlo desde CLI: xe network-param-set uuid=d93c1e68-4e2c-6f90-db30-2bbfea8c95e3 name-label="Network 0"
  4. Hacer el join