Habilitación y configuración de la caché de disco de VM de Azure con Azure Portal

Completado

Hemos visto los valores y propiedades que pueden seleccionarse para predecir el rendimiento de disco. Ahora, echemos un vistazo a cómo mejorarlo mediante el almacenamiento en caché.

Almacenamiento en caché de disco

Una caché es un componente especializado que almacena datos, normalmente en la memoria, para que sea posible acceder a ellos de forma más rápida. Los datos de una caché suelen ser datos leídos anteriormente o datos que son el resultado de un cálculo anterior. El objetivo es acceder a los datos más rápido que cuando se obtienen del disco.

El almacenamiento en caché usa almacenamiento temporal especializado y, en ocasiones, costoso, que tiene un rendimiento de lectura y escritura más rápido que el almacenamiento permanente. Dado que el almacenamiento en caché con frecuencia es limitado, la decisión de usarlo o no pasa por reflexionar sobre qué operaciones de datos se benefician más de él. Pero incluso en aquellos casos en los que la caché esté ampliamente disponible, como en Azure, es importante conocer los patrones de carga de trabajo de cada disco antes de decidir qué tipo de almacenamiento en caché usar.

El almacenamiento en caché de lectura intenta acelerar la recuperación de datos. Los datos se leen de la caché, bastante más rápida, que del almacenamiento permanente. Las lecturas de datos llegan a la caché en las siguientes condiciones:

  • Los datos se leyeron anteriormente y existen en la memoria caché.
  • La caché es lo suficientemente grande como para contener todos los datos.

Es importante tener en cuenta que el almacenamiento en caché de lectura resulta útil cuando hay cierta previsibilidad en la cola de lectura, como en un conjunto de lecturas secuenciales. En el caso de E/S aleatoria, donde los datos a los que se accede están dispersos en el almacenamiento, el almacenamiento en caché tiene poca o ninguna ventaja e, incluso, puede reducir el rendimiento del disco.

El almacenamiento en caché de escritura intenta acelerar la escritura de los datos en el almacenamiento persistente. Cuando una aplicación usa una caché de escritura, puede considerar los datos que se van a guardar. En realidad, los datos se ponen en cola en una caché a la espera de que se escriban en un disco. Como se puede imaginar, este mecanismo puede ser un posible punto de error, como cuando un sistema se apaga antes de que estos datos se escriban en la caché. Algunos sistemas, como SQL Server, administran por sí solos la escritura de los datos en caché en almacenamiento de disco persistente.

Almacenamiento en caché en disco de Azure

Hay dos tipos de almacenamiento en caché que conciernen al almacenamiento en disco:

  • Almacenamiento en caché del almacenamiento de Azure
  • Almacenamiento en caché en disco de máquina virtual (VM) de Azure

El almacenamiento en caché del almacenamiento de Azure proporciona servicios de caché para Azure Blob Storage, Azure Files y otro contenido de Azure. La configuración de estos tipos de caché escapa al ámbito de este módulo.

El almacenamiento en caché en disco de máquina virtual de Azure consiste en optimizar el acceso de lectura y escritura a los archivos de disco duro virtual (VHD) asociados a las máquinas virtuales de Azure. En este módulo, nos centramos en el almacenamiento en caché de disco.

El almacenamiento en caché de disco no es compatible con Ultra Disks o SSD prémium v2, pero estos ya se benefician de una latencia significativamente menor, que soluciona algunos de los mismos problemas principales que el almacenamiento en caché de disco.

Tipos de disco de máquina virtual de Azure

Hay tres tipos de discos que se usan con VM de Azure:

  • Disco del sistema operativo: cuando se crea una máquina virtual de Azure, Azure asocia automáticamente un disco duro virtual para el sistema operativo (SO).

  • Disco temporal: cuando se crea una máquina virtual de Azure, Azure también agrega automáticamente un disco temporal. Este disco se usa para los datos, como archivos de página y de intercambio. Los datos de este disco pueden perderse durante el mantenimiento o una nueva implementación de máquina virtual. No lo use para almacenar datos permanentes, como archivos de base de datos o registros de transacciones.

  • Discos de datos: un disco de datos es un disco duro virtual (VHD) adjunto a una máquina virtual para almacenar datos de aplicaciones u otros datos que necesita mantener.

Los discos del sistema operativo y los discos de datos aprovechan las ventajas del almacenamiento en caché en disco de máquina virtual de Azure. El tamaño de caché de un disco de VM depende del tamaño de la instancia de la máquina virtual y del número de discos montados en ella. El almacenamiento en caché solo se puede habilitar para discos de hasta 4 TiB.

Opciones de caché para máquinas virtuales de Azure

Hay tres opciones comunes para el almacenamiento en caché en disco de VM:

  • Lectura y escritura: caché con escritura diferida. Use esta opción solo si su aplicación controla correctamente la escritura de datos en caché en discos persistentes cuando es necesario.
  • Solo lectura: las lecturas se realizan desde la caché.
  • Ninguno: sin caché. Seleccione esta opción para los discos de solo escritura y con numerosas operaciones de escritura. Los archivos de registro son un buen candidato, dado que son operaciones de uso intensivo de escritura.

No todas las opciones de almacenamiento en caché están disponibles para todos los tipos de disco. En la tabla siguiente se muestran las opciones de almacenamiento en caché para cada tipo de disco:

Solo lectura Lectura y escritura Ninguna
Disco del sistema operativo Sí (valor predeterminado)
Disco de datos Sí (valor predeterminado)
Disco temporal no no no

Nota:

No se pueden cambiar las opciones de almacenamiento en caché de disco para las máquinas virtuales de las series B y L.

Consideraciones sobre rendimiento del almacenamiento en caché en disco de máquina virtual de Azure

Así que, ¿de qué modo la configuración de caché afecta al rendimiento de las cargas de trabajo que se ejecutan en VM de Azure?

Disco del sistema operativo

El comportamiento predeterminado de un disco del sistema operativo de máquina virtual es usar la memoria caché en modo de lectura y escritura. Por lo tanto, si tiene aplicaciones que almacenan archivos de datos en el disco del sistema operativo y realiza muchas operaciones aleatorias de lectura y escritura en los archivos de datos. Considere la posibilidad de mover esos archivos a un disco de datos que tenga desactivado el almacenamiento en caché. ¿A qué se debe? Si la cola de lectura no contiene lecturas secuenciales, el almacenamiento en caché tiene poca o ninguna ventaja. El rendimiento de disco puede verse reducido debido a la sobrecarga de mantener la caché como si los datos fueran secuenciales.

Discos de datos

Cuando las aplicaciones dependen del rendimiento, debe usar discos de datos en lugar del disco del sistema operativo. El uso de discos independientes le permite configurar las opciones de caché adecuadas para cada uno.

Por ejemplo, en VM de Azure que ejecutan SQL Server, habilitar el almacenamiento en caché de Solo lectura en los discos de datos (para datos normales y de TempDB) puede dar lugar a importantes mejoras en el rendimiento. Los archivos de registro, por otro lado, son buenos candidatos a discos de datos sin almacenamiento en caché.

Advertencia

Al cambiar la configuración de caché de un disco de Azure, se desasocia y se vuelve a asociar el disco de destino. Si se trata del disco del sistema operativo, se reiniciará la máquina virtual. Detenga todas las aplicaciones y servicios que podrían verse afectados por esta interrupción antes de cambiar la configuración de caché de disco.

Puede realizar la configuración de la caché de disco de máquina virtual con cualquiera de las siguientes herramientas:

  • Azure Portal
  • Azure CLI
  • Azure PowerShell
  • Plantillas de Resource Manager

Uso de Azure Portal para configurar el almacenamiento en caché

Al aprovisionar una nueva VM mediante Azure Portal, no puede cambiar la configuración de almacenamiento en caché predeterminada de lectura y escritura del disco del sistema operativo hasta que se implemente la VM.

Al agregar un disco de datos a una máquina virtual existente, puede configurar la opción de caché antes de que el disco se implemente en la máquina virtual.

Vamos a crear una máquina virtual y a cambiar la configuración de caché mediante Azure Portal.