IntelliCache
Nota:
Esta función solo se admite cuando se usa XenServer Premium Edition con Citrix Virtual Desktops.
Intellicache no es compatible con las máquinas virtuales que utilizan un SR de GFS2 o XFS.
El uso de XenServer con IntelliCache hace que las implementaciones de infraestructura de escritorios virtuales alojados sean más rentables al permitirle usar una combinación de almacenamiento compartido y almacenamiento local. Resulta especialmente beneficioso cuando muchas máquinas virtuales (VM) comparten una imagen de sistema operativo común. La carga en el arreglo de almacenamiento se reduce y se mejora el rendimiento. Además, el tráfico de red hacia y desde el almacenamiento compartido se reduce a medida que el almacenamiento local almacena en caché la imagen principal del almacenamiento compartido.
IntelliCache funciona almacenando en caché los datos de una VDI principal de VM en el almacenamiento local en el host de la VM. Esta memoria caché local se rellena a medida que se leen los datos de la VDI principal. Cuando muchas VM comparten una VDI principal común, una VM puede usar los datos leídos en la memoria caché desde otra VM. No se requiere más acceso a la imagen principal en el almacenamiento compartido.
Se requiere un SR local de aprovisionamiento fino para IntelliCache. El aprovisionamiento controlado es una forma de optimizar el uso del almacenamiento disponible. Este enfoque le permite hacer más 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.
Importante:
Thin Provisioning cambia el tipo de almacenamiento local predeterminado del host de LVM a EXT4. El aprovisionamiento ligero debe estar habilitado para que el almacenamiento en caché local de Citrix Virtual Desktops funcione correctamente.
El aprovisionamiento controlado 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 un LUN no reclama ningún bloque de datos hasta que la VM escribe datos.
Advertencia:
Los SR con aprovisionamiento fino pueden quedarse sin espacio físico, ya que las máquinas virtuales que contienen pueden crecer hasta consumir capacidad de disco a pedido. Las máquinas virtuales de IntelliCache gestionan esta condición recurriendo automáticamente al almacenamiento compartido cuando la memoria caché de SR local está llena. No mezcle máquinas virtuales tradicionales y máquinas virtuales de IntelliCache en la misma SR, ya que las máquinas virtuales de IntelliCache pueden aumentar rápidamente de tamaño.
Implementación de IntelliCache
IntelliCache debe habilitarse durante la instalación del host o habilitarse manualmente en un host en ejecución mediante la CLI.
Le recomendamos que utilice un dispositivo de almacenamiento local de alto rendimiento para garantizar la transferencia de datos lo más rápida posible. Por ejemplo, utilice un disco de estado sólido o una matriz RAID de alto rendimiento. Tenga en cuenta el rendimiento de datos y la capacidad de almacenamiento al dimensionar los discos locales El tipo de almacenamiento compartido, utilizado para alojar la imagen de disco virtual (VDI) de origen, debe basarse en NFS o EXT3/EXT4.
Habilitar la instalación en host
Para habilitar IntelliCache durante la instalación del host, en la pantalla Almacenamiento de máquinas virtuales, seleccione Habilitar aprovisionamiento ligero. Esta opción selecciona el SR local del host para que sea el que se utilizará para el almacenamiento en caché local de los VDI de VM.
Convertir un host existente para usar aprovisionamiento controlado
Para eliminar un SR local de LVM existente y sustituirlo por un SR EXT3/EXT4 de aprovisionamiento fino, introduzca los siguientes comandos.
Advertencia:
Estos comandos eliminan el SR local existente y las VM del 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-->
Comportamiento de las máquinas virtuales con Intellicache
El indicador VDI dicta on-boot
el comportamiento de una VDI de máquina virtual cuando se arranca la máquina virtual y el indicador VDI dicta allow-caching
el comportamiento del almacenamiento en caché.
Los valores que se deben usar para estos parámetros dependen del tipo de máquina virtual que esté creando y de su uso previsto:
-
Para máquinas compartidas o asignadas de forma aleatoria:
- Establezca el parámetro
on-boot
enreset
. - Establezca el
allow-caching
parámetro entrue
Por ejemplo:
xe vdi-param-set uuid=vdi_uuid on-boot=reset allow-caching=true <!--NeedCopy-->
En el arranque de la VM, la VDI se revierte al estado en el que se encontraba en el arranque anterior. Todos los cambios durante la ejecución de la máquina virtual se pierden la próxima vez que se inicia la máquina virtual. Los datos de las nuevas VM se escriben solo en el almacenamiento local. No hay escrituras en el almacenamiento compartido. Este enfoque significa que se reduce la carga en el almacenamiento compartido. Sin embargo, la VM no se puede migrar entre hosts.
Seleccione esta opción si planea entregar escritorios estandarizados en 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-boot
enpersist
. - Establezca el
allow-caching
parámetro entrue
Por ejemplo:
xe vdi-param-set uuid=vdi_uuid on-boot=persist allow-caching=true <!--NeedCopy-->
En el arranque de la VM, la VDI se encuentra en el estado en que se quedó en el último apagado. Los nuevos datos de VM se escriben tanto en el almacenamiento local como en el compartido. Las lecturas de datos almacenados en caché no requieren tráfico de E/S para el almacenamiento compartido, por lo que se reduce la carga en el almacenamiento compartido. Se permite la migración de máquinas virtuales a otro host y la caché local del nuevo host se rellena a medida que se leen los datos.
Seleccione esta opción si va a permitir que los usuarios realicen cambios permanentes en sus escritorios.
- Establezca el parámetro
Nota:
En el caso de las máquinas virtuales cuyos VDI se encuentran en un SR de GFS2, el comportamiento de la máquina virtual durante el arranque es diferente al de las máquinas virtuales con VDI en otros tipos de SR. Para los VDI de una SR de GFS2, la opción de arranque se aplica al apagar la máquina virtual, no al iniciar la máquina virtual.
Detalles de implementación y solución de problemas
P: ¿ IntelliCache es compatible con la migración en vivo y la alta disponibilidad?
R: Puede utilizar 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:
No se puede migrar una máquina virtual si cualquiera de sus VDI tiene indicadores de comportamiento de almacenamiento en caché establecidos en
on-boot=reset
yallow-caching=true
. Los intentos de migración de máquinas virtuales con estas propiedades fallan.
P: ¿Dónde se encuentra la memoria caché local en el disco local?
R: La memoria caché vive 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 va a utilizar para los archivos de caché. Normalmente, esta SR es una SR de tipo EXT3/EXT4. Cuando ejecuta máquinas virtuales con IntelliCache, ve archivos dentro del SR con 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 concreto para usarlo como caché?
A: 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:
-
Tras la instalación del host, si ha elegido la opción “Habilitar aprovisionamiento delgado” en el instalador del host, o
-
Corriendo
xe host-enable-local-storage-caching host=host sr-uuid=sr
. El comando requiere que el host especificado esté inhabilitado. 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 usa el SR que se especifica en la línea de comandos.
Advertencia:
Estos pasos solo son necesarios para los usuarios que han configurado más de una SR local.
P: ¿ Cuándo se elimina la memoria caché local?
R: Un archivo de caché de VDI solo se elimina cuando se elimina la propia VDI. La memoria caché se restablece cuando se conecta una VDI a una VM (por ejemplo, al iniciarse la VM). Si el host está fuera de línea cuando elimina la VDI, la sincronización de SR que se ejecuta en la basura de inicio recopila el archivo de caché.
Nota:
El archivo de caché no se elimina del host cuando una máquina virtual migra a un host diferente o se cierra.