vSAN/HCI

Explorando Snapshots de vSAN

Una conversación frecuente que tengo con los clientes es cómo los snapshots de vSAN difieren de los snapshots de VMFS. En esta publicación, quiero identificar las diferencias de arquitectura y cómo mejoran significativamente el rendimiento de vSAN en comparación con las implementaciones de snapshots de máquinas virtuales.

 

vmfsSparse Snapshots

vmfsSparse, comúnmente conocido como el formato de registro de rehacer (redo logs), es el formato de snapshots original utilizado por VMware. Es el formato utilizado en VMFS, NFS (sin VAAI-NAS) y vSAN 5.5.

Cuando se toma un snapshot de un disco base utilizando el formato de registro de rehacer (redo log), se crea un disco delta secundario. El padre se considera una copia de punto en el tiempo (PIT). El punto de funcionamiento de la máquina virtual ahora es el delta. Las nuevas escrituras de la máquina virtual van al delta, pero el disco base u otras instantáneas en la cadena satisfacen las lecturas.

Una preocupación importante con los snapshots de registro vmfsSparse/redo es que pueden afectar negativamente el rendimiento de una máquina virtual. La degradación del rendimiento se basa en lo largo que es el snapshot o su árbol, la profundidad del árbol y cuánto ha cambiado la máquina virtual y su sistema operativo desde el momento en que se tomó el snapshot. Una operación de consolidación (eliminación o conversión de snapshots) puede durar mucho tiempo dependiendo de la cantidad de deltas de snapshots y de cuántos cambios deben revertirse al vmdk base.

Además, es posible que se observe un retraso en la cantidad de tiempo que tarda la máquina virtual en encenderse. Es por eso que VMware no recomienda correr máquinas virtuales de producción de un snapshot utilizando el formato de rehacer de forma permanente. Es por eso que el artículo KB1025279 de VMware KB recomienda no más de tres snapshots vmfsSparse y no retener snapshots más de 72 horas.

vsanSparse Snapshots

Con vSAN, cuando se crea un snapshot de máquina virtual en lugar del objeto de registro vmfsSparse/redo, se crean objetos delta vsanSparse. El objetivo del formato de snapshot vsanSparse es mejorar el rendimiento del snapshot al continuar utilizando el mecanismo de registros de rehacer existente, pero también utilizando un caché de metadatos “en memoria” y un diseño de sistema de archivos disperso más eficiente.

Cómo funciona vsanSparse

Con vSAN, las máquinas virtuales están formadas por objetos. Un objeto de disco delta (instantánea) está formado por un conjunto de granos, donde cada grano es un bloque de sectores que contienen datos de disco virtual. Un objeto VMDK respalda cada delta. Los deltas solo mantienen granos modificados, por lo que ahorran espacio.

En el diagrama a continuación, el objeto de disco Base se llama Disk.vmdk y está en la parte inferior de la cadena. Hay tres objetos de snapshots (Disk-001.vmdk, Disk-002.vmdk y Disk-003.vmdk) tomados en varios intervalos y las escrituras del sistema operativo también se producen en varios intervalos, lo que lleva a cambios en los deltas de snapshots.

  • Objeto base: escribe en el grano 1,2,3 y 6
  • Disco Delta Disk-001 – escribe en el grano 1 y 4
  • Disco Delta Disk-002 – escribe en el grano 2 y 4
  • Disco Delta Disk-003 – escribe en el grano 1 y 6

Una lectura de la VM ahora devolverá lo siguiente:

  • Grano 1: recuperado del objeto Delta Disk-003
  • Grano 2: recuperado del objeto Delta Disk-002
  • Grano 3: recuperado del objeto base
  • Grano 4: recuperado del objeto Delta Disk-002
  • Grano 5 – recuperado del objeto Base – 0 devuelto como nunca se escribió
  • Grano 6 – recuperado del objeto Delta Disk-003

Considere el caso cuando se ha tomado un snapshot de una máquina virtual. Cuando un sistema operativo envía una escritura al disco, el driver de vsanSparse recibe la escritura. Las escrituras siempre van al objeto superior en la cadena de snapshots. Cuando se confirma la escritura, el driver de vsanSparse actualiza su caché de metadatos “en memoria” y confirma la escritura en el sistema operativo. En lecturas posteriores, el driver de vsanSparse puede hacer referencia a su caché de metadatos y, en un éxito de caché, ubicar inmediatamente el bloque de datos.

Las lecturas son atendidas desde uno o más deltas vsanSparse en el árbol de snapshots. El driver de vsanSparse comprueba el caché de metadatos “en memoria” para determinar qué delta o deltas leer. Esto depende de qué partes de los datos se escribieron en un nivel de snapshot particular. Por lo tanto, para satisfacer una solicitud de I/O de lectura, la lógica del snapshot no necesita atravesar cada delta del árbol de snapshot, sino que puede ir directamente al delta vsanSparse necesario y recuperar los datos solicitados. Las lecturas se envían a todos los deltas que tienen los datos necesarios en paralelo.

Sin embargo, en una falla de caché, el driver de vsanSparse aún debe atravesar cada capa para obtener los últimos datos. Esto se realiza de manera similar a las solicitudes de lectura, ya que las solicitudes se envían a todas las capas en paralelo.

Consideraciones

El caché en memoria vsanSparse inicialmente tiene rangos “desconocidos”. En otras palabras, el caché está frío. Cuando hay una solicitud de lectura de un rango desconocido, se genera un error de caché. Este rango se recupera y se almacena en caché para futuras solicitudes. Como puede imaginar, una falta de caché aumenta la latencia de I/O.

La memoria caché está en memoria y nunca se comprometió con el almacenamiento persistente. Esto significa que si hay una falla del servidor, o una máquina virtual se apaga o reinicia, la memoria caché se vacía. Cuando la Maquina Virtual regresa y genere I/O, el caché se rellenará.

A diferencia de los snapshots vmfsSparse, los snapshots vsanSparse no tienen límite de retención, sin embargo, recomendamos verificar regularmente el uso de la memoria caché de lectura y la capacidad del almacén de datos vSAN cuando se usan snapshots durante largos períodos de tiempo.

Los snapshots son una gran herramienta, pero es importante monitorear los snapshots para asegurarse de que no crezcan demasiado. Para evitar posibles problemas de rendimiento, considere configurar una alarma de vCenter Server para alertar cuando una VM se está ejecutando en un snapshot.

Conclusión

El formato de snapshot vsanSparse proporciona a los administradores con snapshots de vSAN y clones de clase empresarial. El propósito es mejorar el rendimiento de los snapshots al continuar utilizando el mecanismo existente de rehacer registros, pero también utilizando un caché de metadatos “en memoria” y un diseño de sistema de archivos disperso más eficiente. Para obtener más detalles, asegúrese de leer la nota técnica Introducción a los snapshots de vsanSparse.