XenServer

Almacenamiento en caché de lectura

El almacenamiento en caché de lectura mejora el rendimiento del disco de una VM, ya que, después de la lectura inicial desde el disco externo, los datos se almacenan en la memoria libre del host. Mejora el rendimiento en situaciones en las que muchas VM se clonan a partir de una única VM base, ya que reduce drásticamente el número de bloques leídos del disco. Por ejemplo, en entornos de Citrix Virtual Desktops Machine Creation Services™ (MCS).

La mejora del rendimiento se puede observar siempre que los datos se leen del disco más de una vez, ya que se almacenan en la memoria caché. Este cambio es más notable en la degradación del servicio que se produce durante situaciones de E/S intensivas. Por ejemplo, en las siguientes situaciones:

  • Cuando un número significativo de usuarios finales arrancan en un período de tiempo muy corto (tormenta de arranque)
  • Cuando un número significativo de VM están programadas para ejecutar análisis de malware al mismo tiempo (tormentas de antivirus).

El almacenamiento en caché de lectura está habilitado de forma predeterminada cuando tiene el tipo de licencia adecuado.

Nota:

El almacenamiento en caché de lectura está disponible para los clientes de XenServer® Premium Edition.

Habilitar y deshabilitar el almacenamiento en caché de lectura

Para los SR basados en archivos, como los tipos de SR NFS, EXT3/EXT4, SMB y GFS2, el almacenamiento en caché de lectura está habilitado de forma predeterminada. El almacenamiento en caché de lectura está deshabilitado para todos los demás SR.

Puede optar por deshabilitar el almacenamiento en caché de lectura en SR NFS, EXT3/EXT4 o SMB. Para los SR GFS2, el almacenamiento en caché de lectura no se puede deshabilitar.

Para deshabilitar el almacenamiento en caché de lectura para un SR específico mediante la CLI de xe, ejecute el siguiente comando:

xe sr-param-set uuid=sr-uuid other-config:o_direct=true
<!--NeedCopy-->

Para deshabilitar el almacenamiento en caché de lectura para un SR específico mediante XenCenter®, vaya al cuadro de diálogo Propiedades del SR. En la pestaña Almacenamiento en caché de lectura, puede seleccionar habilitar o deshabilitar el almacenamiento en caché de lectura.

Para obtener más información, consulte Cambio de propiedades de SR.

Limitaciones

  • El almacenamiento en caché de lectura solo está disponible para SR de NFS, EXT3/EXT4, SMB y GFS2. No está disponible para otros tipos de SR.

  • El almacenamiento en caché de lectura solo se aplica a los VDI de solo lectura y a los VDI principales. Estos VDI existen cuando las máquinas virtuales se crean a partir de ‘Fast Clone’ o instantáneas de disco. Las mayores mejoras de rendimiento se pueden observar cuando se clonan muchas máquinas virtuales a partir de una única imagen ‘golden’.

  • Las mejoras de rendimiento dependen de la cantidad de memoria libre disponible en el dominio de control (dom0) del host. Aumentar la cantidad de memoria de dom0 permite asignar más memoria a la caché de lectura. Para obtener información sobre cómo configurar la memoria de dom0, consulte Cambiar la cantidad de memoria asignada al dominio de control.

  • Cuando el almacenamiento en caché de lectura en memoria está activado, un fallo de caché hace que la E/S se serialice. Esto a veces puede ser más costoso que tener el almacenamiento en caché de lectura desactivado, porque con el almacenamiento en caché de lectura desactivado la E/S se puede paralelizar. Para reducir el impacto de los fallos de caché, aumente la cantidad de memoria dom0 disponible o desactive el almacenamiento en caché de lectura para el SR.

Comparación con IntelliCache™

IntelliCache y el almacenamiento en caché de lectura basado en memoria son, en algunos aspectos, complementarios. IntelliCache no solo almacena en caché en un nivel diferente, sino que también almacena en caché las escrituras además de las lecturas. IntelliCache almacena en caché las lecturas de la red en un disco local. El almacenamiento en caché de lectura en memoria almacena en caché las lecturas de la red o del disco en la memoria del host. La ventaja del almacenamiento en caché de lectura en memoria es que la memoria sigue siendo un orden de magnitud más rápida que un disco de estado sólido (SSD). El rendimiento mejora en las tormentas de arranque y otras situaciones de E/S intensivas.

Tanto el almacenamiento en caché de lectura como IntelliCache se pueden habilitar simultáneamente. En este caso, IntelliCache almacena en caché las lecturas de la red en un disco local. Las lecturas de ese disco local se almacenan en caché en la memoria con el almacenamiento en caché de lectura.

Establecer el tamaño de la caché de lectura

El rendimiento de la caché de lectura se puede optimizar asignando más memoria al dominio de control de XenServer (dom0).

Importante:

Establezca el tamaño de la caché de lectura en TODOS los hosts del grupo individualmente para su optimización. Cualquier cambio posterior en el tamaño de la caché de lectura también debe establecerse en todos los hosts del grupo.

En el host de XenServer, abra un shell local e inicie sesión como root.

Para establecer el tamaño de la caché de lectura, ejecute el siguiente comando:

/opt/xensource/libexec/xen-cmdline --set-xen dom0_mem=nnM,max:nnM
<!--NeedCopy-->

Establezca los valores inicial y máximo con el mismo valor. Por ejemplo, para establecer la memoria de dom0 en 20.480 MiB:

/opt/xensource/libexec/xen-cmdline --set-xen dom0_mem=20480M,max:20480M
<!--NeedCopy-->

Importante:

Reinicie todos los hosts después de cambiar el tamaño de la caché de lectura.

¿Cómo ver la asignación de memoria actual de dom0?

Para ver la configuración actual de la memoria de dom0, introduzca:

free -m
<!--NeedCopy-->

La salida de free -m muestra la configuración actual de la memoria de dom0. El valor puede ser inferior al esperado debido a varias sobrecargas. La tabla de ejemplo siguiente muestra la salida de un host con dom0 configurado en 2,6 GiB.

|                     | Total  | Used | Free  | Shared | Buffer/cache | Available |
|---------------------|--------|------|-------|--------|--------------|-----------|
| Mem:                | 2450   | 339  | 1556  | 9      | 554          | 2019      |
| Swap:               | 1023   | 0    | 1023  |        |              |           |
<!--NeedCopy-->

¿Qué rango de valores se puede utilizar?

Dado que el dominio de control de XenServer (dom0) es de 64 bits, se pueden utilizar valores grandes, por ejemplo, 32 768 MiB. Sin embargo, le recomendamos que no reduzca la memoria de dom0 por debajo de 1 GiB.

Notas de visualización de XenCenter

La memoria de todo el host puede considerarse que comprende el hipervisor Xen®, dom0, las máquinas virtuales y la memoria libre. Aunque la memoria de dom0 y de las máquinas virtuales suele ser de tamaño fijo, el hipervisor Xen utiliza una cantidad variable de memoria. La cantidad de memoria utilizada depende de varios factores. Estos factores incluyen el número de máquinas virtuales que se ejecutan en el host en un momento dado y cómo están configuradas esas máquinas virtuales. No es posible limitar la cantidad de memoria que utiliza Xen. Limitar la cantidad de memoria puede hacer que Xen se quede sin memoria e impedir que se inicien nuevas máquinas virtuales, incluso cuando el host tenía memoria libre.

Para ver la memoria asignada a un host, en XenCenter seleccione el host y, a continuación, haga clic en la pestaña Memoria.

El campo XenServer muestra la suma de la memoria asignada a dom0 y la memoria de Xen. Por lo tanto, la cantidad de memoria mostrada podría ser superior a la especificada por el administrador. El tamaño de la memoria puede variar al iniciar y detener máquinas virtuales, incluso cuando el administrador ha establecido un tamaño fijo para dom0.

Almacenamiento en caché de lectura