Mostrando entradas con la etiqueta Xenserver. Mostrar todas las entradas
Mostrando entradas con la etiqueta Xenserver. Mostrar todas las entradas

jueves, 15 de mayo de 2014

XenServer - Useful Commands Chart

Hola! Después de unos cuantos años lanzando comandos contra XenServers me planteado hacer un resumen en un solo papel (no se si lo voy a conseguir). De momento les presento la versión mas alpha que beta de lo que me gustaría que sobretodo fuera útil. Espero ir actualizándolo y mejorarlo con sus consejos y sugerencias.


Saludos!

jueves, 8 de mayo de 2014

XenServer - Autenticar XAPI mediante PAM

Hola! ¿Cómo podemos hacer para crearnos un usuario en XenServer que nos sirva para conectarnos a la XAPI por HTTP/RPC?

Pues esto es lo que veremos paso a paso en este Post gracias a mi colega OPP.

Nos conectamos al Host Master y ejecutamos:
#Añadimos PAM como external Auth
xe pool-enable-external-auth auth-type=PAM service-name=pam

#Creamos un usuario, por ejemplo xenapiuser 
useradd -s /sbin/nologin xenapiuser

#Le ponemos un password 
echo "xenapiuser:xpassword" | chpasswd

#Añade un "sujeto" (mola llamarle sujeto...)
xe subject-add subject-name=xenapiuser
#Este comando nos devolvera un uuid, por ejemplo 9fec6479-5114-d69e-c384-e2d00f4c638d

#Le asignamos el rol que queramos, por ejemplo read-only
xe subject-role-add role-name=read-only uuid=9fec6479-5114-d69e-c384-e2d00f4c638d

#Vemos que está OK
xe subject-list
 uuid ( RO)                  : 9fec6479-5114-d69e-c384-e2d00f4c638d
 subject-identifier ( RO): u501
 other-config (MRO): subject-name: xenapiuser; subject-uid: u501; subject-gid: g501; subject-gecos: ; subject-displayname: xenapiuser; subject-is-group: false; subject-account-disabled: false; subject-account-expired: false; subject-account-locked: false; subject-password-expired: false
                 roles (SRO): read-only
En el resto de "Slaves" solo hemos de ejecutar:
useradd -s /sbin/nologin xenapiuser 
echo "xenapiuser:xpassword" | chpasswd
Y con esto ya tendríamos un usuario con que poder atacar la XAPI, sin permisos para hacerle nada ;)
Saludos

miércoles, 18 de diciembre de 2013

XenServer Tools ISO must be ejected from all running VMs

Hola!

Algo que personalmente me parece muy pesado es cuando vas a instalar un patch en XenServer que actualiza las XenTools, como el Service Pack (XS62ESP1), recibas un mensaje de error como el siguiente:

# xe patch-apply uuid=0850b186-4d47-11e3-a720-001b2151a503 host-uuid=d1dda2db-29fe-41c6-a82b-e35ae8f05a69
The patch precheck stage failed with an unknown error.  See attached info for more details.
patch: 0850b186-4d47-11e3-a720-001b2151a503 (XS62ESP1)
info: XenServer Tools ISO must be ejected from all running VMs.

Para contraatacar esta problema, simplemente ejecutamos:
# xe vbd-list vdi-uuid=$(xe vdi-list name-label=xs-tools.iso --minimal) 

Y sabremos que máquinas virtuales tienen la iso de las Xentools "attached". Si lo que quieres es ya directamente, quitar la iso de todas, ejectuar:
# for vbd in `xe vbd-list vdi-uuid=$(xe vdi-list name-label=xs-tools.iso --minimal) --minimal | sed s/','/' '/g` ; do xe vbd-eject uuid=$vbd ; done 

También encontré en el Blog de Citrix un script llamado all-dvd-eject.sh que funciona de maravilla
http://blogs.citrix.com/2010/01/28/eject-all-dvds-from-xenserver-vms/

Saludos!!

lunes, 15 de julio de 2013

Hack Secondary Storage VM (SSVM)

Hola,

Después de un rato de investigación sobre la System VM, SSVM de CloudSatck hago unos cuantos apuntes:
  • El password por defecto de root es 6m1ll10n
  • La clave RSA para acceder por SSH a susodicha máquina se encuentra en: /usr/lib/cloud/common/scripts/vm/systemvm/id_rsa.cloud (en instalaciones Ubuntu 12.04 por APT). Copiamos esta clave y la dejamos con permisos 0700 en /root/  por ejemplo
  • Por supuesto, si tienes la clave no hace falta el passwd, solo tienes que tener una interface en la red (cloud_link_local_network) 169.254.3.X para acceder por SSH, ssh -i id_rsa.cloud root@169.254.3.121  -p 3922
  • Y ojo con el IPTABLES en la SSVM, por defecto intercepta todas las peticiones HTTP y las bloquea. incluso las de la propia red... iptables -F
Saludos

lunes, 1 de julio de 2013

Upgrade de XCP 1.6 a XenServer 6.2

Hola!!

Desde que XenServer es libre, XCP como distro, en principio ya no tiene sentido. Hasta el punto que la ISO de Citrix y la de XCP será la que esté en xenserver.org.

Solo comentaros que la actualización de XCP 1.6 a XenServer 6.2 funciona sin problemas. He usado la instalación desde ISO, reiniciando nodo por nodo y la configuración a funcionado bien sin ningún problema aparente.


Saludos

viernes, 28 de junio de 2013

Travestir Xen Cloud Platform para ser XenServer

Hola!
Hoy vamos hacer que el panda de XCP 1.5 se ponga traje y corbata para que lo podamos integrar con CloudStack. Para ello hay que seguir los pasos de http://wiki.xen.org/wiki/XCP_CloudStack

Primero hacemos ver que tenemos los repos de XenServer...
cp /etc/xensource/installed-repos/xcp:main /etc/xensource/installed-repos/xs:main

Nos hacemos un backup del fichero NFSSR.py y copiamos el de Citrix

mv /opt/xensource/sm/NFSSR.py /opt/xensource/sm/NFSSR.py.backup
wget http://download.locatrix.com/xcp/cloudstack/NFSSR.py -O /opt/xensource/sm/NFSSR.py

Permisos...
chmod 755 /opt/xensource/sm/NFSSR.py Y con esto ya tendríamos que poder añadirlo a nuestra nube

lunes, 17 de junio de 2013

CentOS 6.4 XenServer HVM domU Install Error

Hola!!


Recientemente he visto un bug a la hora de instalar CentOS 6.4 sobre XenServer tanto en ramas 5.6 como en 6.x. El problema es que no acaba de arrancar la minimal install iso. El truco, sencillo.

En un dom0 del pool, cambiamos los parámetros de la vm HVM que estamos probando:

xe vm-param-set uuid= platform:viridian=false

Con esto y un Control+Alt+Supr y la máquina tendría que arrancar con el setup de Centos 6.4


Saludos!

lunes, 3 de junio de 2013

Configurar memoria para el Dom0

Hola amig@s! Para la versión 6.10 de XenServer, ya no tenemos que ir a rascar el fichero extlinux.conf para ampliar la memoria reservada para el Dom0, simplemente con ejectutar xen-cmdline de este modo:

/opt/xensource/libexec/xen-cmdline --set-xen dom0_mem=2048M,max:2048M

Con esto, una vez reiniciado el host, ya lo tendríamos ampliado a 2048M en vez de los 752M por defecto.

Ahora si ejecutamos cat /proc/xen/ballon deberíamos ver algo así:

(Sin ampliar 752 MB)
#cat /proc/xen/balloon
Current allocation:   759040 kB
Requested target:     761856 kB
Minimum target:       203776 kB
Maximum target:       778240 kB
Low-mem balloon:           0 kB
High-mem balloon:          0 kB
Driver pages:           4096 kB

Ampliado a 2940M
# cat /proc/xen/balloon
Current allocation:  3002368 kB
Requested target:    3002368 kB
Minimum target:       397440 kB
Maximum target:      3018752 kB
Low-mem balloon:           0 kB
High-mem balloon:          0 kB
Driver pages:           4096 kB

Be Zen my Friend ;)
Saludos!

martes, 5 de febrero de 2013

XenServer - Nagios check usando XAPI

Hola! Este es el nuevo checkeo para XenServer que he estado haciendo. Es basicamente diferentes petiociones que realiza el servidor nagios contra la XAPI directamente. Es decir que no hace falta tener nrpe en los hosts. Simplemente con visibilidad al puerto 80/433 el checkeo es capaz de funcionar. 

Lo puedes descargar usando git en:

Por defecto, recomiendo poner el Master-Host en la definicion del servicio, pero no es mandatorio ya que el scrpt comprueba automáticamente si es el host master o no, y si no es master, se conecta al master. (obey your master, master!)

#!/usr/bin/python
# WTFPL (Do What The Fuck You Want To Public License)
#
#           DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
#                   Version 2, December 2004
#
#Copyright (C) 2013 Ferran Serafini 
#
#Everyone is permitted to copy and distribute verbatim or modified
#copies of this license document, and changing it is allowed as long
#as the name is changed.
#
#           DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
#  TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
#
# 0. You just DO WHAT THE FUCK YOU WANT TO.

import sys, time
import os
import XenAPI

...
Definicón del comando
define command{
        command_name check_xen
        command_line $USER1$/check_xen.py $ARG1$ root $ARG2$ $ARG3$ $ARG4$ $ARG5$
        }

Utilizaremos el mismo command para definir 3 servicios, uno para monitorizar los Hosts del pool, otro para verificar que estos hosts estan conectados a la cabina y otro que verifica el espacio disponible en los SR

Definicion de los servicios
#Cluster Hosts
define service{
        use                             C-XEN_HW
        host_name                       SB-XENBOX
        service_description             SB-XENBOX-CLUSTER_HOSTS
        check_command                   check_xen!Master_Host!passwd!HOSTS!0!0
        }
#Cluster PBDs
define service{
        use                             C-XEN_HW
        host_name                       SB-XENBOX
        service_description             SB-XENBOX-CLUSTER_STORAGE_PBDs
        check_command                   check_xen!Master_Host!passwd!SR!0!0
        }
#Free Storage
define service{
        use                             C-XEN_HW
        host_name                       SB-XENBOX
        service_description             SB-XENBOX-SHARED_STORAGE_FREE
        check_command                   check_xen!Master_Host!passwd!DISK!95!98
        }

Y con esto ya tenemos un nuevo check para Nagios ;)

lunes, 3 de diciembre de 2012

Chef Knife Proxy HTTP y XenServer 6.1

Hola! Este tip es para los que tienen en su red un proxy http y una máquina con knife que necesita usarlo para bajar ficheros desde sus repositorios. Por ejemplo a la hora de lanzar un bootstrap para un cliente:

knife bootstrap --bootstrap-proxy http://

Sigue leiendo si lo vas a instalar en un XenServer

XenServer + Chef

 

Si vas a instalar un cliente chef a un XenServer 6.1, que sepas de antemano que tendrás que instalar el bootstrap como lo he mostrado anteriormente ya que requiere que le pases el sistema operativo, en ese caso centos-5. Pero vayamos por partes.
  1. Necesitamos primero habilitar los repos de Centos (bajo tu responsabilidad). /etc/yum.repos.d/CentOS-Base.repo con activar el base ya hay suficiente. enabled=1
  2. Creamos la llamada vulgarmente "relación de confianza ssh"
     entre el servidor chef y el servidor XenServer para el user root
  3. Instalamos el cliente con:
    knife bootstrap  -d centos5-gems
  4. Una vez finalizado el paso anterior, ejectuar: sudo mkdir -p /etc/chef
    cd /etc/chef
    knife configure client ./
  5. configuramos el client.rb
    log_level        :info
    log_location     STDOUT
    chef_server_url  'http://chef-server:4000'
    validation_client_name 'chef-validator'
  6. Copiamos la clave RSA en validation.pem
  7. Lanzamos chef-client.
Y listos, a configurar recetas que una vez empieza a correr todo, tiene muy buena pinta.

jueves, 12 de julio de 2012

CloudStack en XenServer

CloudStack es un software de Cloud open source hecho en Java diseñado para gestionar granjas de máquinas virtuales. Da soporte a múltiples Hypervisores (VMware, XenServer, KVM, Oracle VM, XCP). Utiliza principalmente tres métodos para gestionar, mediante UI Web, CLI y mediante API.

La idea es instalarlo y ver como gestionarlo mediante su API y Chef. Ya veremos como funciona.

La instalación la he realizado sobre ubuntu 10.04 con la versión CloudStack-3.0.2-1. 
  1. Descargamos el fichero CloudStack-oss-3.0.2-1-ubuntu10.04.tar.gz y lo descomprimimos.
  2. Ejecutamos ./install.sh
  3. Instalamos primero el "Management Server" > M
  4. Una vez finalizado, volvemos a ejecutar ./install.sh e instalamos la base de datos
  5. > D
  6. Editamos el fichero /etc/my.cnf y establecemos max_connections=350 por cada Management Server que vayamos a tener.
  7. Creamos las bases de datos necesarias con:
  8. cloud-setup-databases cloud:@localhost --deploy-as=root:
  9. cloud-setup-management 
Preparamos la parte de NFS de la siguiente manera.
  1. apt-get install protmap nfs-kernel-server
  2.  mkdir -p /export/primary && mkdir -p /export/secondary
  3.  Configuramos los exports vim /etc/exports
  4. /export *(rw, async, no_root_squash)
  5. exportfs -a
Descargamos los templates para XenServer en el secondary export, tarda un buen rato
  • /usr/lib64/cloud/agent/scripts/storage/secondary/cloud-install-sys-tmplt -m /export/secondary -u http://download.cloud.com/templates/acton/acton-systemvm-02062012.vhd.bz2 -h xenserver -F
 Instalamos el agente en los XenServer Hosts. Lo descargamos de: http://download.cloud.com/releases/2.2.0/xenserver-cloud-supp.tgz (version 5.6 SP2)

Lo descomprimimos y lo instalamos como supplemental pack:
  • xe-install-supplemental-pack xenserver-cloud-supp.iso
Con esto, ya podemos acceder a la UI web y empezar a jugar con la interface (admin : password).
http://cloudstack-ip:8080/client

miércoles, 16 de mayo de 2012

XenServer - Ubuntu 12.04

Hola! vamos a ver como instalar Ubuntu12.04 en XenServer. Como siempre utilizo el metodo HVM y luego la conversión a PV.

Instalamos desde la ISO como un "Other Install Media", poniendo así el espacio de disco, RAM y CPU que queramos, arrancamos desde CD e instalamos Ubuntu. A tener en cuenta: 
  • Utilizar EXT3 o si quereis utilizar EXT4, hay que tener la partición /boot en un disco EXT3 o EXT2
  • Utilizar un particionado personalizado y poner que la Swap sea el disco xdva1 y la raiz (o el disco susceptible a ser ampliado como xvda2) o mejor ahun, no pongas Swap (si hace falta, la montas luego como un VDI aparte ;)
Una vez instalado ajustamos la máquina para que sea paravirtual. 

  1. apt-get install linux-virtual
  2. cd /boot/ y  hacemos lo siguiente:
root@ubuntu12:/boot# ln -s vmlinuz-3.2.0-24-virtual vmlinuz.xen
root@ubuntu12:/boot# ln –s initrd.img-3.2.0-24-virtual initrd.img.xen

Nos conectamos al Dom0 y modificamos los siguientes parametros de la máquina virtual:
xenserver# xe vm-param-set uuid= HVM-boot-policy=""

xenserver# xe vm-param-set uuid= HVM-boot-params=""

xenserver# xe vm-param-set uuid= HVM-shadow-multiplier=""

xenserver# xe vm-param-set uuid= PV-bootloader-args="--kernel=/boot/vmlinuz.xen --ramdisk=/boot/initrd.img.xen"

xenserver# xe vm-param-set uuid= PV-args="root=/dev/xvda1 ro quiet console=hvc0 xencons=hvc0"

xenserver# xe vm-param-set uuid= PV-bootloader="pygrub"

xenserver# xe vbd-param-set uuid= bootable=true

Arrancamos la máquina virtual y si todo funciona OK ya estará corriendo para virtualizada, instalamos las XenTools y modificamos el fichero /etc/fstab

/dev/xvda1 / ext3 errors=remount-ro,barrier=0 0 1

Sin esta config en el fstab, la raiz se monta en RO eventualmente, de este modo funciona bien.

Tambien es necesario ajustar la tty por defecto para que sea hvc0:

sed -e “s/tty1/hvc0/ig” /etc/init/tty1.conf | sudo bash -c ‘cat > /etc/init/hvc0.conf
Con esto, ya teneis el nuevo template ;)
Saludos

miércoles, 28 de marzo de 2012

Manual de Supervivencia XenServer y Multipath + iscsi

El Storage como parte fundamental de la mayoría de entornos, hay que tenerlo muy controlado. Para ello la siguiente guía:

Para los que utilizamos multipath en XenServer, hay que tener en cuenta algunos trucos para realizar tareas sobre este daemon.

Como ver los caminos que tenemos configurados:
[root@xenserv ~]# multipath -ll
[size=1.5T][features=1 queue_if_no_path][hwhandler=1 emc][rw]
\_ round-robin 0 [prio=2][active]
 \_ 1:0:0:1 sdc 8:32  [active][ready]
 \_ 3:0:0:1 sdh 8:112 [active][ready]
\_ round-robin 0 [prio=0][enabled]
 \_ 2:0:0:1 sde 8:64  [active][ready]
 \_ 4:0:0:1 sdi 8:128 [active][ready]
3600601601a4024006a4f2b3c2635e111 dm-3 DGC,VRAID
[size=500G][features=1 queue_if_no_path][hwhandler=1 emc][rw]
\_ round-robin 0 [prio=1][active]
 \_ 2:0:0:2 sdj 8:144 [active][ready]

Si queremos ver con más detalle el estado actual de multipath:
[root@xenserv ~]# multipath -v3

Hay que tener en cuenta que multipath trabaja con los caminos que le sirve open-iscsi, por lo tanto, un reinicio de open-iscsi, afecta al servicio multipath. 
Si queremos logearnos a nuestra cabina de discos por solo un camino:
[root@xenserv ~]# iscsiadm -m node -l
Por ejemplo:
iscsiadm --mode node --targetname iqn.cabina... --portal 192.168.1.15 --login

Si por el contrario queremos logearnos en todos los caminos:
[root@xenserv ~]# iscsiadm -m node -L all

Si queremos eliminar caminos de multipath e iscsi, hemos de buscar en el directorio /etc/iscsi/nodes
iqn....com.emc:cx.ckm00103200040.a4
iqn....com.emc:cx.ckm00103200040.b4
iqn....com.emc:cx.ckm00103200040.b5

[root@xenserv ~]# rm -fr iqn....emc:cx.ckm00103200040.b5

Volvemos a logearnos a la cabina:
[root@xenserv ~]# iscsiadm -m node -l

Reinciar open-iscsi
[root@xenserv ~]#/etc/init.d/open-iscsi restart

 Reiniciar multipath
[root@xenserv ~]# /etc/init.d/multipath restart

Si solo queremos probar de quitar un camino unicamente "flush", por ejemplo del multipath sin que sea permanente como en el caso anterior, podemos hacerlo mediante:
[root@xenserv ~]# multipath -f sdm

Si queremos hacer este flush para todos los caminos (OJO que se los pule todos!)
[root@xenserv ~]# multipath -F

miércoles, 29 de febrero de 2012

XenServer - iscsi allocated

Es posible que algún día, veas que tus SR I-SCSI crece el espacio allocated desmesuradamente. Antes de temblar y buscar en google como arreglarlo, es mejor que leas las siguientes líneas ;)

Por ejemplo ponemos que tenemos una LUN de 1TB presentada como el SR principal de nuestro POOL,  de este espacio tienes ya ocupado 500GB en varias máquinas virtuales y ves que tienes "allocated(500GB)". Hasta aquí lo vemos bien, no hay problema. Pero, que pasa si un día ves que tu allocated está en 3TB...

La verdad es que nada :) Lo más seguro es que tengas un sistema de backup que realiza snapshots y la XAPI no se entera que se borran cuando finaliza el proceso de copia.


Tan sencillo como hacer un "rescan" en el SR para que los valores de allocated vuelvan a la normalidad. 


Saludos!

miércoles, 22 de febrero de 2012

XenServer y Ubuntu Server - Problemas con los Kernel de los DomU

Hola amig@os, en diferentes entornos XenServer he visto que la configuración de los domU Ubuntu 10.04 o 8.04 paravirtualizados, tienen problemas de kernel. Estos problemas se manifiestan cuando por ejemplo hacemos una XenMotion, en algunos casos el domU queda totalmente colgado, o bien, parece que esta ok, pero tiene un problema de clocking que deja de dar servicios. Voy  a intentar resumir como arreglarlos.

En Ubuntu Server 8.04 LTS
  • Asegúrate de como mínimo tener un kernel 2.6.24-24-xen
  • Comprueba tu clocksource:
cat /sys/devices/system/clocksource/clocksource0/current_clocksource

Si este te retorna xen, significa que esta utilizando el reloj de su Dom0 y en algunos casos, da problemas con las XenMotions. Recomiendo el uso de jiffies, un reloj local para el DomU y configurar NTP.

Para cambiar el  clocksource hay que editar el fichero grub y añadir el flag clocksource=jiffies. Por ejemplo:
title        Ubuntu 8.04.3 LTS, kernel 2.6.24-24-xen
root        (hd0,0)
kernel        /boot/vmlinuz-2.6.24-24-xen root=UUID=f0b969d7-9d41-46b5-8662-5f62a7f1ae25 ro quiet splash clocksource=jiffies
initrd        /boot/initrd.img-2.6.24-24-xen
Despues de reiniciar el domU, el reloj estara bien configurado. Ahora ya puedes usar tu NTP para sincronizar la hora con tus domU.

En Ubuntu Server 10.04 LTS
  • Actualizamos el kernel al backport-natty de este modo:
apt-get install linux-headers-generic-lts-backport-natty  linux-image-generic-lts-backport-natty 
  • Añadimos el modulo xen_blkfront al initramfs 
 echo xen_blkfront >> /etc/initramfs-tools/modules
  • Actualizamos initramfs
update-initramfs -c -k all
  • Reniciamos con el nuevo kernel.



viernes, 9 de diciembre de 2011

Monitorizar XAPI XenServer Nagios

Hola! hoy traigo un nuevo script para comprobar que la XAPI de vuestros XenServer están funcionando correctamente. Totalmente probado :) Lo puedes descargar desde github aquí.

A grandes rasgos el script chequea que la XAPI esta operativa tanto a nivel de procesos como a nivel de consultas
check_xapi.sh
#!/bin/bash
#Check que comprueba el estado de la XAPI

#contamos los procesos que hay de xapi
procs=`ps -elf | grep xapi | grep -v grep | wc -l`

#Verificamos que haya algun proc xapi y si no lo hay, critical
if [ -z "$procs" ] ; then
   echo "Critical: No hay procesos de Xapi"
   exit=2

else #Hay procesos, pues lanzamos una peticion para ver si respnde ok

 #Vemos si es capaz de conectar con la Xapi y extramos el numero de hosts del pool
   test_xapi=`sudo xe host-list | grep name-label | wc -l`
 #test_xapi="1" #Fuerza a warning
 if [ $test_xapi -gt 0 ]; then
    ok_test=$(sudo xe host-list name-label=`hostname` params=name-label --minimal)
    echo "OK: XAPI respondiendo en $ok_test "
    exit=0
else
    new_test=$(sudo xe host-list name-label=`hostname` params=name-label --minimal)
    echo "Warning: Hay procs de XAPI pero algo falla $new_test"
    exit=1
 fi
fi

#Salida con el codigo de error para Nagios
exit $exit

jueves, 10 de noviembre de 2011

Citrix XenServer Snapshots y Backups 0% on disk

Hola!! Este problema, que ya solucionamos en el blog de la virtualización y del cloud computing por José María Gonzalez, voy a comentarlo un poco más, ya que para muchos ha sido un dolor de cabeza.

El problema reside en el momento en el que hacemos un snapshot y luego lo transformamos a una máquina virtual, la exportamos y borramos dicha máquina virtual:

xe template-param-set is-a-template=false ha-always-run=false uuid=$snapshotUUID
xe vm-export vm=$snapshotUUID filename=$exportstring
xe vm-uninstall uuid=$snapshotUUID force=true

Este vm-uninstall según en que máquina virtual, la asociación del VDI con el VBD se elimina pero el VDI sigue en el SR.

Si listamos los VBD de una maquina virtual con este problema veremos:

[root@xensrv01 ~]# xe vbd-list vm-name-label=vmtest04
uuid ( RO)             : 2d1eed3f-27e4-1cca-830c-dbeb538f2c67
          vm-uuid ( RO): 6242434e-fbc2-a318-9cdc-9259204d81fe
    vm-name-label ( RO): vmtest04
         vdi-uuid ( RO): 528e5cb6-3605-464c-9e87-fcce1bae74f1
            empty ( RO): false
           device ( RO): xvda

Si listamos los VDIs con el nombre de la maquina virtual (los pongo así cada vez que creo un disco). Veremos que hay muchos más de los que están asociados con los VBD. Muchos son justamente son los VDIs de 0% on disk.

Buscamos el vbd de nuestra máquina virtual.
xe vbd-list vm-name-label=vmachine04 type=Disk

Al final la solución es muy sencilla. Consiste en añadir el siguiente parámetro al vbd de nuestra máquina virtual problemática: 
xe vbd-param-set uuid=UUID_VBD other-config:owner

A partir de este punto ya no tendremos más VDIs huérfanos por el sistema.
Saludos!!



viernes, 4 de noviembre de 2011

Citrix XenServer + FreeNas iscsi múltiples clientes target


¡Que lastima! Dicho por los creadores de FreeNAS, las conexiones de múltiples a un mismo target iSCSI no se pueden realizar por protocolo iSCSI, solamente esta soportado en estos casos usar CIFS o NFS. 

Así que para montar un entorno de Citrix XenServer con varios nodos, hay que usarlo como NFS VHD, que tampoco esta mal, ya que así los VDIs son sparse de modo que el espacio se va asignando según el crecimiento del disco de la máquina virtual.

viernes, 30 de septiembre de 2011

XenServer Nagios Check

Para los fans de Nagios y Citrix XenServer, hoy he subido en mi github un script en python que interroga la XAPI para ver el estado de los hosts físicos. En el mismo script hay la web donde se expone la versión original, esta es la adaptación para mi entorno. check_XenServer.py
     
Básicamente se conecta al host que le definimos en la  primera línea y si este no es el master, se conecta al master e interroga mediante host_metrics el estado de cada servidor.

Establecemos una política de n+1 es decir, si el numero de hosts "vivos" es inferior al valor de todos los hosts -1 nos aparecerá Critical.
       
Espero que les sea de utilidad :)
Saludos

martes, 30 de agosto de 2011

XenServer - The VDI is not available

Al parecer en la versión 5.6 SP2 de XenServer este error es más común de lo que tendría que ser. Cuando por ejemplo un domain0 tiene una caída "cafre" por corte eléctrico algunos vdi quedan bloqueados e impiden volver arrancar las vm. 

Aparece el siguiente mensaje de error:
29/08/2011 13:23:18 Error: Starting VM 'virtualmachineX' on 'xendom01' - The VDI is not available

Doy por supuesto que ya has probado de hacer un "xe task-list" y ver que no hay tareas pendientes. Si es así primeramente hay que cancelarlas con un xe task-cancel uuid=UUID tarea" y volver a probar, pero si así tampoco arranca... A mi no me aparecía ninguna tarea XD.

Para solucionar esto he seguido los siguientes pasos:
1.- Localizamos el vdi:
[root@xendom01 ~]# xe vdi-list name-label=vmachine01-disk0
uuid ( RO)                : 1ffdd67d-3ff9-46b0-860e-eabe95844fb5
name-label ( RW): vmachine01-disk0
name-description ( RW): vmachine01-disk0
sr-uuid ( RO): 6b12a905-af60-cea1-88a5-854b6898c219
virtual-size ( RO): 13958643712
sharable ( RO): false
read-only ( RO): false

2.- Despresentamos el vdi:
xe vdi-forget uuid=1ffdd67d-3ff9-46b0-860e-eabe95844fb5

3.- Reescaneamos el SR donde estaba el vdi
xe sr-scan uuid=6b12a905-af60-cea1-88a5-854b6898c219

Si miramos en el XenCenter vermos que en el SR aparecera un nuevo disco sin nombre ni descripción. Ese es el vdi nuevamente presentado. Le ponemos el nombre, descripción y lo volvemos a asociar con la maquina virtual.

Arrancamos la maquina virtual y ya vuelve a funcionar correctamente.