IntelliCache™
El uso de XenServer® con IntelliCache hace que las implementaciones de infraestructura de escritorio virtual alojada sean más rentables al permitirle usar una combinación de almacenamiento compartido y almacenamiento local. Es especialmente beneficioso cuando muchas máquinas virtuales (VM) comparten una imagen de SO común (la imagen principal). La carga en la matriz de almacenamiento se reduce y el rendimiento mejora. Además, el tráfico de red hacia y desde el almacenamiento compartido se reduce, ya que el almacenamiento local almacena en caché la imagen principal del almacenamiento compartido.
IntelliCache funciona almacenando en caché datos para una VM en el almacenamiento local del host de la VM. Estos datos almacenados en caché localmente incluyen:
- Una copia en caché de la imagen principal (VDI principal de una VM). Este archivo tiene aprovisionamiento ligero y es de solo lectura. Se rellena a medida que se leen datos del VDI de la imagen principal en el almacenamiento compartido. Cuando muchas VM comparten un VDI de imagen principal común, una VM puede usar los datos leídos en la caché de otra VM. No se requiere acceso adicional a la imagen principal en el almacenamiento compartido.
- Una copia en caché del disco delta por VDI. Los cambios se pueden escribir en este disco delta local. Para las VM no persistentes, los datos del disco delta almacenado en caché local se descartan al iniciar la VM. Para las VM persistentes, los datos del disco delta almacenado en caché local se vuelven a escribir en el disco delta del almacenamiento compartido al iniciar la VM.
Requisitos previos
La función IntelliCache tiene los siguientes requisitos:
-
Licencia Premium Edition: IntelliCache solo es compatible cuando se utiliza XenServer Premium Edition con Citrix Virtual Desktops.
-
Almacenamiento: Para usar IntelliCache, necesita tanto un SR local para los datos en caché como un SR compartido para la imagen de disco virtual (VDI) de origen. Utilice estos SR solo para las VM de IntelliCache. No mezcle máquinas virtuales tradicionales y VM de IntelliCache en el mismo SR.
-
Almacenamiento compartido: El almacenamiento compartido utilizado para alojar el VDI de origen debe ser de uno de los siguientes tipos:
- NFS
- SMB3
- LVM compartido (iSCSI o HBA)
-
Almacenamiento local: Recomendamos que utilice un dispositivo de almacenamiento local de alto rendimiento para garantizar la transferencia de datos más rápida posible. Por ejemplo, utilice un disco de estado sólido o una matriz RAID de alto rendimiento. Considere tanto el rendimiento de datos como la capacidad de almacenamiento al dimensionar los discos locales.
Se requiere un SR local EXT3/EXT4 con aprovisionamiento ligero para IntelliCache. El aprovisionamiento ligero debe estar habilitado para que el almacenamiento en caché local de Citrix Virtual Desktops funcione correctamente. Puede habilitar el aprovisionamiento ligero en el momento de la instalación de XenServer o más tarde, en la línea de comandos. El aprovisionamiento ligero cambia el tipo de almacenamiento local predeterminado del host de LVM a EXT4. Para obtener más información, consulte Implementación de IntelliCache.
El aprovisionamiento ligero es una forma de optimizar el uso del almacenamiento disponible. Este enfoque le permite hacer un mayor uso del almacenamiento local en lugar del almacenamiento compartido. Se basa en la asignación bajo demanda de bloques de datos. En otros enfoques, todos los bloques se asignan por adelantado. El aprovisionamiento ligero permite al administrador presentar más espacio de almacenamiento a las máquinas virtuales que se conectan al repositorio de almacenamiento (SR) del que está disponible en el SR. No hay garantías de espacio, y la asignación de una LUN no reclama ningún bloque de datos hasta que la máquina virtual escribe datos.
Los SR con aprovisionamiento ligero pueden quedarse sin espacio físico, ya que las máquinas virtuales que contienen pueden crecer para consumir capacidad de disco bajo demanda. Las máquinas virtuales IntelliCache gestionan esta condición recurriendo automáticamente al almacenamiento compartido cuando la caché del SR local está llena. No mezcle máquinas virtuales tradicionales y máquinas virtuales IntelliCache en el mismo SR, ya que las máquinas virtuales IntelliCache pueden crecer rápidamente de tamaño.
-
Implementación de IntelliCache
Para usar la función IntelliCache, debe habilitarla tanto en XenServer como en Citrix Virtual Apps and Desktops™.
En XenServer
Para usar IntelliCache, el aprovisionamiento ligero del SR local debe habilitarse durante la instalación del host o habilitarse manualmente en un host en ejecución mediante la CLI. El aprovisionamiento ligero cambia el tipo de almacenamiento local predeterminado del host de LVM a EXT4.
Habilitar durante la instalación del host
Para habilitar el aprovisionamiento ligero durante la instalación del host, en la pantalla Virtual Machine Storage, seleccione Enable thin provisioning. Esta opción selecciona el SR local del host como el que se utilizará para el almacenamiento en caché local de los VDI de las máquinas virtuales.

Convertir un host existente para usar el aprovisionamiento ligero
Para eliminar un SR local LVM existente y reemplazarlo por un SR EXT3/EXT4 con aprovisionamiento ligero, introduzca los siguientes comandos.
Advertencia:
Estos comandos eliminan su SR local existente y las máquinas virtuales en el SR se eliminan permanentemente.
localsr=`xe sr-list type=lvm host=hostname params=uuid --minimal`
echo localsr=$localsr
pbd=`xe pbd-list sr-uuid=$localsr params=uuid --minimal`
echo pbd=$pbd
xe pbd-unplug uuid=$pbd
xe pbd-destroy uuid=$pbd
xe sr-forget uuid=$localsr
sed -i "s/'lvm'/'ext'/" /etc/firstboot.d/data/default-storage.conf
rm -f /var/lib/misc/ran-storage-init
systemctl restart storage-init.service
xe sr-list type=ext
<!--NeedCopy-->
Para habilitar el almacenamiento en caché local, introduzca los siguientes comandos:
xe host-disable host=hostname
localsr=`xe sr-list type=ext host=hostname params=uuid --minimal`
xe host-enable-local-storage-caching host=hostname sr-uuid=$localsr
xe host-enable host=hostname
<!--NeedCopy-->
En Citrix Virtual Apps and Desktops
Al conectarse desde Citrix Virtual Apps and Desktops a XenServer en Citrix Studio, seleccione usar IntelliCache. Si el aprovisionamiento ligero del SR local se ha habilitado en XenServer, Citrix Studio muestra la opción Usar IntelliCache para reducir la carga en el dispositivo de almacenamiento compartido al crear la conexión a XenServer.
Para obtener más información, consulte la documentación del producto Citrix Virtual Apps and Desktops.
Comportamiento de la VM con IntelliCache
El indicador VDI on-boot dicta el comportamiento de un VDI de VM cuando se inicia la VM y el indicador VDI allow-caching dicta el comportamiento de almacenamiento en caché.
Los valores que se deben usar para estos parámetros dependen del tipo de VM que esté creando y de su uso previsto:
-
Para máquinas compartidas o asignadas aleatoriamente:
- Establezca el parámetro
on-bootenreset. - Establezca el parámetro
allow-cachingentrue
Por ejemplo:
xe vdi-param-set uuid=vdi_uuid on-boot=reset allow-caching=true <!--NeedCopy-->Al iniciar la VM, el VDI vuelve al estado en el que se encontraba en el arranque anterior. Todos los cambios realizados mientras la VM está en ejecución se pierden la próxima vez que se inicia la VM. Los nuevos datos de la VM se escriben solo en el almacenamiento local. No hay escrituras en el almacenamiento compartido. Este enfoque significa que la carga en el almacenamiento compartido se reduce. Sin embargo, la VM no se puede migrar entre hosts.
Seleccione esta opción si planea ofrecer escritorios estandarizados a los que los usuarios no puedan realizar cambios permanentes.
- Establezca el parámetro
-
Para máquinas estáticas o dedicadas:
- Establezca el parámetro
on-bootenpersist. - Establezca el parámetro
allow-cachingentrue
Por ejemplo:
xe vdi-param-set uuid=vdi_uuid on-boot=persist allow-caching=true <!--NeedCopy-->Al arrancar la VM, la VDI se encuentra en el estado en que se dejó en el último apagado. Los nuevos datos de la VM se escriben tanto en el almacenamiento local como en el compartido. Las lecturas de datos en caché no requieren tráfico de E/S al almacenamiento compartido, por lo que se reduce la carga en el almacenamiento compartido. Se permite la migración de la VM a otro host y la caché local del nuevo host se rellena a medida que se leen los datos.
Seleccione esta opción si tiene previsto permitir que los usuarios realicen cambios permanentes en sus escritorios.
- Establezca el parámetro
Nota:
Para las VM cuyas VDI están en un SR GFS2, el comportamiento de arranque de la VM es diferente al de las VM con VDI en otros tipos de SR. Para las VDI en un SR GFS2, la opción de arranque se aplica al apagar la VM, no al arrancar la VM.
Detalles de implementación y solución de problemas
P: ¿Es IntelliCache compatible con la migración en vivo y la alta disponibilidad?
R: Puede usar la migración en vivo y la alta disponibilidad con IntelliCache cuando los escritorios virtuales están en modo privado, es decir, cuando on-boot=persist.
Advertencia:
Una VM no se puede migrar si alguna de sus VDI tiene las marcas de comportamiento de caché establecidas en
on-boot=resetyallow-caching=true. Los intentos de migración de VM con estas propiedades fallan.
P: ¿Dónde reside la caché local en el disco local?
R: La caché reside en un Repositorio de almacenamiento (SR). Cada host tiene un parámetro de configuración (denominado local-cache-sr) que indica qué SR (local) se utilizará para los archivos de caché. Normalmente, este SR es un SR de tipo EXT3/EXT4. Cuando ejecuta VM con IntelliCache, verá archivos dentro del SR con los nombres uuid.vhdcache. Este archivo es el archivo de caché para la VDI con el UUID dado. Estos archivos no se muestran en XenCenter. La única forma de verlos es iniciando sesión en dom0 y enumerando el contenido de /var/run/sr-mount/sr-uuid
P: ¿Cómo especifico un SR particular para usarlo como caché?
R: El campo de objeto de host local-cache-sr hace referencia a un SR local. Puede ver su valor ejecutando el siguiente comando:
xe sr-list params=local-cache-sr,uuid,name-label
<!--NeedCopy-->
Este campo se establece de dos maneras:
-
Después de la instalación del host, si ha elegido la opción “Habilitar aprovisionamiento ligero” en el instalador del host, o
-
Ejecutando
xe host-enable-local-storage-caching host=host sr-uuid=sr. El comando requiere que el host especificado esté deshabilitado. Apague las máquinas virtuales cuando use este comando.
La primera opción utiliza el SR local de tipo EXT3/EXT4 y se crea durante la instalación del host. La segunda opción utiliza el SR de tipo EXT3/EXT4 que se especifica en la línea de comandos.
Advertencia:
Estos pasos solo son necesarios para los usuarios que han configurado más de un SR local.
P: ¿Cuándo se elimina la caché local?
R: La caché local incluye dos tipos de información:
- Una caché compartida para el disco de imagen principal. Este archivo de caché compartido refleja el VDI de solo lectura del almacenamiento compartido y no se elimina ni se restablece cuando se realizan acciones en VDIs individuales.
-
Una caché de disco delta por VDI para cada VDI. Para una VM no persistente, la caché de disco delta se restablece cuando un VDI se adjunta a una VM (por ejemplo, al iniciar la VM). Este archivo de caché solo se elimina cuando se elimina el propio VDI. Si el host está sin conexión cuando elimina el VDI, la sincronización de SR que se ejecuta al inicio recolecta el archivo de caché.
Nota:
El archivo de caché de disco delta no se elimina del host cuando una VM migra a un host diferente o se apaga.