Almacenamiento en Citrix XenServer: cómo funciona y qué puede fallar
En Citrix XenServer, la conexión entre los hosts y el almacenamiento implica a numerosos componentes. Problemas que suelen surgir y cómo resolverlos
El almacenamiento es un aspecto clave en un entorno Citrix Systems Inc. XenServer. Los archivos de imagen de disco de la máquina virtual (VMDK) residen ahí, y si algo falla entonces no es posible arrancar las máquinas virtuales. Por lo tanto, si su centro de datos está ejecutando XenServer y tiene algún poder sobre la administración, debe entender cómo se organiza el almacenamiento.
En un entorno XenServer, los dispositivos de almacenamiento físico están disponibles en un repositorio sobre el que se crea una base de datos que permite a los hosts de XenServer poder conectar con el almacenamiento. Si hay problemas a la hora de reconocer ese almacenamiento, suele deberse a errores de identificación del almacenamiento físico con la identificación de la base de datos de XenServer. Pero antes de explicar cómo poder resolver este problema, hablemos de la relación entre XenServer y el almacenamiento.
En XenServer el almacenamiento se organiza a través de repositorios de almacenamiento, que contienen imágenes de disco virtual, dispositivos de bloque físico y dispositivos de bloque virtual. Y la máquina virtual puede usar el almacenamiento de distintas maneras: como un archivo de disco virtual (creado en el formato de disco duro virtual, o VHD), un gestor de volúmenes lógicos (LVM) o una conexión directa a la SAN a través de Citrix StorageLink.
Si profundizamos en el almacenamiento de XenServer, un repositorio de almacenamiento es una abstracción del dispositivo de disco físico, que pueden ser un dispositivo local o un dispositivo en SAN. En el repositorio de almacenamiento de XenServer, las imágenes de disco virtual se crean como una abstracción del almacenamiento de objetos que pueden ser presentados a una máquina virtual. Para hacerlo, el repositorio de almacenamiento conecta los dispositivos basados en bloques que están ubicados en una máquina local, en SAN o donde sea, usando el objeto de conector de dispositivos de bloque físico de XenServer. Conforme a la imagen de disco virtual, el almacenamiento puede presentarse a la VM. Este almacenamiento se ofrece como objeto de conector de dispositivo de bloque virtual, que la VM ve como su disco virtual.
Como ya hemos indicado antes, hay tres formas para que una VM acceda al almacenamiento. El sistema clásico es mediante archivos VHD. Estos son archivos almacenados en el repositorio de almacenamiento siguiendo el formato estándar definido por Microsoft en 2005. Desde el lanzamiento de XenServer 5.5 en 2009, Citrix también ofrece acceso a través de LVHD o discos duros virtuales basados en LVM. El beneficio de este enfoque es que la capa subyacente de LVM permite aplicar algunas soluciones avanzadas de gestión de almacenamiento como el clonado rápido o las instantáneas. Una tercera opción sería asignar una VM directamente a una LUN en el sistema de almacenamiento. Este sistema solo funciona si su sistema de almacenamiento tiene un complemento que lo soporte.
Un problema frecuente que puede ocurrir en el almacenamiento son los errores en la identificación del almacenamiento. Si esto ocurre se pierde el acceso a todo el almacenamiento. En la plataforma XenServer los dispositivos de disco pueden ser dirigidos de distintas formas por diferentes componentes del sistema. En XenCenter, se refiere al almacenamiento con un identificador de SCSI que corresponde con el UUID que usted puede ver en la consola de XenServer. Si su almacenamiento no es accesible desde XenCenter, compruebe que los UUID usados en XenCenter coinciden con los UUID visibles en la consola XenServer en el directorio /dev/disk/by-uuid.
Si el almacenamiento está basado en LVM, puede encontrar el identificador del almacenamiento del dispositivo de disco a través del comando pvs de la consola de XenServer. Las VM individuales están conectadas a volúmenes lógicos individuales. Para tener una visión general de estos, puede usarse el comando lvs, que muestra de nuevo un identificador que corresponde con el identificador usado en XenCenter.
Si hay un error de configuración en la forma en que se maneja el almacenamiento, entonces usar el comando xe en el host puede ser útil. Este comando le permite ejecutar una consulta directa al host y ver qué dispositivos de almacenamiento «puede ver». El comando necesario es xe sr-list. Este comando muestra los UUID actualmente en uso junto a los demás parámetros que nos permiten identificar el tipo de almacenamiento.
Si usamos xe sr-list, podemos consultar el repositorio de almacenamiento para obtener más información, usando parámetros adicionales. Por ejemplo podemos usar xe sr-list params=name-label,uuid,VDIs,PBDs para ver los diferentes UUID asignados al dispositivo de almacenamiento. El objetivo es encontrar los UUID de los dispositivos reales tal y como se ven en el repositorio de almacenamiento y compararlos con los UUID tal y como se ven en XenCenter. Si hay un error, debe volver a importar los dispositivos de almacenamiento al entorno de administración de XenCenter para reconstruir la base de datos.
Veamos un ejemplo real sobre cómo puede ocurrir esta identificación errónea: una organización de TI con la que trabajo perdió la conexión de todos sus dispositivos de almacenamiento después de migrar sus hosts de XenServer a un nuevo centro de datos. Tras analizar la configuración, resultó que los problemas fueron provocado por un error de los identificadores reales en el almacenamiento y los identificadores tal y como se conocían en la base de datos utilizada por XenServer. Después de encontrar los problemas, la solución fue sencilla: usar el comando xe sr-rescan para escanear de nuevo los identificadores de los dispositivos físicos y volver a construir la base de datos.
Sander van Vugt es formador independiente y consultor residente en Holanda.