Consideraciones de rendimiento del almacén de datos de Azure VMware Solution para Azure NetApp Files
En este artículo se proporcionan consideraciones de rendimiento para el diseño y el ajuste de tamaño del almacén de datos de Azure VMware Solution cuando se usan con Azure NetApp Files. Este contenido es aplicable a un administrador de virtualización, un arquitecto de la nube o un arquitecto de almacenamiento.
Las consideraciones que se describen en este artículo le ayudarán a lograr los niveles más altos de rendimiento de las aplicaciones con una rentabilidad optimizada.
Azure NetApp Files proporciona un servicio de almacenamiento escalable, de alto rendimiento y altamente confiable para Azure VMware Solution. Las pruebas incluían varias configuraciones diferentes entre Azure VMware Solution y Azure NetApp Files. Las pruebas pudieron controlar más de 10 500 MiB/s y más de 585 000 operaciones de entrada y salida por segundo (IOPS) con solo cuatro hosts de Azure VMware Solution/ESXi y un único grupo de capacidad de Azure NetApp Files.
Lograr un mayor rendimiento de almacenamiento para Azure VMware Solution mediante Azure NetApp Files
El aprovisionamiento de varios almacenes de datos, potencialmente más grandes, en un nivel de servicio puede costar menos, al tiempo que proporciona un mayor rendimiento. El motivo se debe a la distribución de la carga entre varios flujos TCP de hosts de Azure VMware Solution a varios almacenes de datos. Puede usar el almacén de datos de Azure NetApp Files para el estimador de TCO de Azure VMware Solution para calcular posibles ahorros de costos cargando un informe de RVTools o especificando el tamaño medio manual de las máquinas virtuales.
Al determinar cómo configurar almacenes de datos, la solución más sencilla desde una perspectiva de administración es crear un único almacén de datos de Azure NetApp Files, montarlo y colocar todas las máquinas virtuales. Esta estrategia funciona bien para muchas situaciones, hasta que se requiera más rendimiento o IOPS. Para identificar los distintos límites, las pruebas usaron un generador de cargas de trabajo sintéticas, el programa fio
, para evaluar un intervalo de cargas de trabajo para cada uno de estos escenarios. Este análisis puede ayudarle a determinar cómo aprovisionar volúmenes de Azure NetApp Files como almacenes de datos para maximizar el rendimiento y optimizar los costos.
Antes de empezar
Para obtener datos de rendimiento de Azure NetApp Files, consulte:
Azure NetApp Files: cómo sacar el máximo partido del almacenamiento en la nube
En un host de Azure VMware Solution, se establece una única conexión de red por almacén de datos NFS similar al uso de
nconnect=1
en las pruebas de Linux a las que se hace referencia en la sección 6 (Las opciones de ajuste). Este hecho es fundamental para comprender cómo Azure VMware Solution escala el rendimiento tan bien en varios almacenes de datos.
Metodología de prueba
En esta sección se describe la metodología utilizada para las pruebas.
Escenarios de prueba e iteraciones
Esta prueba sigue la metodología de "cuatro esquinas", que incluye operaciones de lectura y escritura para cada entrada y salida (E/S) secuencial y aleatoria. Las variables de las pruebas incluyen hosts de Azure VMware Solution de uno a varios, almacenes de datos de Azure NetApp Files, máquinas virtuales (por host) y discos de máquina virtual (VMDK) por máquina virtual. Se seleccionaron los siguientes puntos de datos de escalado para encontrar el rendimiento máximo e IOPS para los escenarios especificados:
- Escalado de VMDK, cada uno en su propio almacén de datos para una sola máquina virtual.
- Escalado del número de máquinas virtuales por host en un único almacén de datos de Azure NetApp Files.
- Escalado del número de hosts de Azure VMware Solution, cada uno con una máquina virtual que comparte un único almacén de datos de Azure NetApp Files.
- El escalado del número de almacenes de datos de Azure NetApp Files, cada uno con un VMDK distribuido por igual entre los hosts de Azure VMware Solution.
Las pruebas de las operaciones de bloque pequeñas y grandes y la iteración a través de cargas de trabajo secuenciales y aleatorias garantizan que las pruebas de todos los componentes de las pilas de proceso, almacenamiento y red se realicen en el "perímetro". Para cubrir las cuatro esquinas con tamaño de bloque y selección aleatoria, se usan las siguientes combinaciones comunes:
- Pruebas secuenciales de 64 KB
- Las cargas de trabajo de streaming de archivos grandes suelen leer y escribir en tamaños de bloque grandes, así como el tamaño de extensión de MSSQL predeterminado.
- Las pruebas de bloques de gran tamaño suelen producir el mayor rendimiento (en MiB/s).
- 8 KB de pruebas aleatorias
- Esta configuración es el tamaño de bloque usado habitualmente para el software de base de datos, incluido el software de Microsoft, Oracle y PostgreSQL.
- Las pruebas de bloques pequeñas suelen producir el mayor número de IOPS.
Nota:
En este artículo solo se tratan las pruebas de Azure NetApp Files. No cubre el almacenamiento de vSAN incluido con Azure VMware Solution.
Detalles del entorno
Los resultados de este artículo se lograron con la siguiente configuración de entorno:
- Hosts de Azure VMware Solution:
- Tamaño: AV36
- Número de hosts: 4
- VMware ESXi versión 7u3
- Conectividad de nube privada de Azure VMware Solution: puerta de enlace UltraPerformance con FastPath
- Máquinas virtuales invitadas:
- Sistema operativo: Ubuntu 20.04
- CPU/memoria: 16 vCPU/64 GB de memoria
- Controlador SCSI de SAS de LSI virtual con un disco de sistema operativo de 16 GB en el almacén de datos vSAN de Azure VMware Solution
- Controlador SCSI paravirtual para pruebas de VMDK
- Configuraciones de LVM/Disk:
- Un volumen físico por disco
- Un grupo de volúmenes por volumen físico
- Una partición lógica por grupo de volúmenes
- Un sistema de archivos XFS por partición lógica
- Protocolo Azure VMware Solution a Azure NetApp Files: NFS versión 3
- Generador de cargas de trabajo:
fio
versión 3.16 - Scripts de Fio:
fio-parser
Resultados de prueba
En esta sección se describen los resultados de las pruebas realizadas.
Escalado de una sola máquina virtual
Al configurar el almacenamiento presentado por el almacén de datos en una máquina virtual de Azure VMware Solution, debe tener en cuenta el impacto del diseño del sistema de archivos. La configuración de varios VMDK distribuidos entre varios almacenes de datos proporciona las mayores cantidades de ancho de banda disponible. La configuración de VMDK de uno a varios colocados en un único almacén de datos garantiza la mayor simplicidad en lo que respecta a las copias de seguridad y las operaciones de recuperación ante desastres, pero a costa de un límite máximo de rendimiento inferior. Los datos empíricos proporcionados en este artículo le ayudarán con las decisiones.
Para maximizar el rendimiento, es habitual escalar una sola máquina virtual entre varios VMDK y colocar esos VMDK en varios almacenes de datos. Una sola máquina virtual con solo una o dos VMDK se puede limitar mediante un almacén de datos NFS, ya que se monta a través de una única conexión TCP a un host de Azure VMware Solution determinado.
Por ejemplo, los ingenieros a menudo aprovisionan un VMDK para un registro de base de datos y, a continuación, aprovisionan VMDK de uno a varios para los archivos de base de datos. Con varios VMDK, hay dos opciones. La primera opción es usar cada VDMK como un sistema de archivos individual. La segunda opción es usar una utilidad de administración de almacenamiento, como LVM, grupos de archivos MSSQL o ASM de Oracle para equilibrar la E/S mediante la seccionamiento entre VMDK. Cuando los VMDK se usan como sistemas de archivos individuales, la distribución de cargas de trabajo entre varios almacenes de datos es un esfuerzo manual y puede resultar complicado. El uso de utilidades de administración de almacenamiento para distribuir los archivos entre VMDK permite la escalabilidad de la carga de trabajo.
Si distribuye volúmenes entre varios discos, asegúrese de que el software de copia de seguridad o el software de recuperación ante desastres admite la copia de seguridad de varios discos virtuales simultáneamente. A medida que las escrituras individuales se seccionan entre varios discos, el sistema de archivos debe asegurarse de que los discos se "inmovilizan" durante las operaciones de instantánea o copia de seguridad. La mayoría de los sistemas de archivos modernos incluyen una operación de inmovilización o instantánea, como xfs
(xfs_freeze
) y NTFS (instantáneas de volumen), que el software de copia de seguridad puede aprovechar.
Para comprender cómo se escala una sola máquina virtual de Azure VMware Solution a medida que se agregan más discos virtuales, se realizaron pruebas con uno, dos, cuatro y ocho almacenes de datos (cada uno que contiene un único VMDK). En el diagrama siguiente se muestra un disco único promedio de alrededor de 73 040 IOPS (escalado de 100 % de escritura / 0 % de lectura, a 0 % de escritura / 100 % de lectura). Cuando esta prueba se incrementó a dos unidades, el rendimiento aumentó en un 75,8 % a 128 420 IOPS. El aumento a cuatro unidades comenzó a mostrar los retornos decrecientes de lo que una sola máquina virtual, con el tamaño probado, podría insertar. El pico de IOPS observado fue de 147 000 IOPS con 100 % de lecturas aleatorias.
Escalado de host único - Almacén de datos único
Se escala de forma deficiente para aumentar el número de máquinas virtuales que impulsan la E/S a un único almacén de datos desde un único host. Este hecho se debe al flujo de red único. Cuando se alcanza el rendimiento máximo para una carga de trabajo determinada, a menudo es el resultado de una sola cola usada a lo largo del camino al almacén de datos NFS único del host a través de una sola conexión TCP. Con un tamaño de bloque de 8 KB, el número total de IOPS aumentó entre el 3 % y el 16 % al escalar de una máquina virtual con un único VMDK a cuatro máquinas virtuales con 16 VMDK totales (cuatro por máquina virtual, todo en un único almacén de datos).
Aumentar el tamaño del bloque (a 64 KB) para cargas de trabajo de bloques grandes tenía resultados comparables, alcanzando un pico de 2148 MiB/s (máquina virtual única, VMDK único) y 2138 MiB/s (4 máquinas virtuales, 16 VMDK).
Escalado de host único - Múltiples almacenes de datos
En el contexto de un único host Azure VMware Solution, mientras que un único almacén de datos permitía a las máquinas virtuales impulsar unas 76 000 IOPS, repartir las cargas de trabajo entre dos almacenes de datos aumentó el rendimiento total en un 76 % de media. Al pasar más de dos almacenes de datos a cuatro, se produjo un aumento del 163 % (más de un almacén de datos, un aumento del 49 % de dos a cuatro), como se muestra en el diagrama siguiente. Aunque todavía se han aumentado los rendimientos, aumentando más allá de ocho almacenes de datos, lo que ha demostrado una disminución de los retornos.
Escalado de varios hosts - Único almacén de datos
Un único almacén de datos de un solo host produjo más de 2000 MiB/s de rendimiento secuencial de 64 KB. La distribución de la misma carga de trabajo en los cuatro hosts produjo una ganancia máxima del 135 % que conducía más de 5000 MiB/s. Este resultado probablemente representa el límite superior de un único rendimiento del volumen de Azure NetApp Files.
Al reducir el tamaño del bloque de 64 KB a 8 KB y volver a ejecutar las mismas iteraciones, se produjeron cuatro máquinas virtuales que generaron 195 000 IOPS, como se muestra en el diagrama siguiente. El rendimiento se escala a medida que aumenta el número de hosts y el número de almacenes de datos, ya que aumenta el número de flujos de red. El rendimiento aumenta mediante el escalado del número de hosts multiplicados por el número de almacenes de datos, ya que el recuento de flujos de red es un factor de los almacenes de datos de tiempo de los hosts.
Escalado de varios hosts - Varios almacenes de datos
Un único almacén de datos con cuatro máquinas virtuales distribuidas entre cuatro hosts produjo más de 5000 MiB/s de E/S secuenciales de 64 KB. Para cargas de trabajo más exigentes, cada máquina virtual se mueve a un almacén de datos dedicado, lo que genera más de 10 500 MiB/s en total, como se muestra en el diagrama siguiente.
Para cargas de trabajo aleatorias de bloque pequeño, un único almacén de datos produjo 195 000 IOPS aleatorios de 8 KB. El escalado a cuatro almacenes de datos produjo más de 530 000 IOPS aleatorias de 8K.
Implicaciones y recomendaciones
En esta sección se describe por qué distribuir las máquinas virtuales entre varios almacenes de datos tiene importantes ventajas de rendimiento.
Como se muestra en los resultados de las pruebas, las funcionalidades de rendimiento de Azure NetApp Files son abundantes:
- Las pruebas muestran que un almacén de datos puede impulsar un promedio de ~148 980 IOPS de 8 KB o ~4147 MiB/s con IOPS de 64 KB (promedio de todas las pruebas de escritura/lectura) de una configuración de cuatro hosts.
- Una máquina virtual en un almacén de datos –
- Si tiene máquinas virtuales individuales que pueden necesitar más de ~75 000 IOPS de 8 KB o más de ~1700 MiB/s, extienda los sistemas de archivos a través de varios VMDK para escalar el rendimiento del almacenamiento de máquinas virtuales.
- Una máquina virtual en varios almacenes de datos - Una sola máquina virtual en 8 almacenes de datos logró hasta ~147 000 IOPS de 8 KB o ~2786 MiB/s con un tamaño de bloque de 64 KB.
- Un host - Cada host fue capaz de soportar una media de ~198 060 8-KB IOPS o ~2351 MiB/s si se utilizan al menos 4 máquinas virtuales por host con al menos 4 almacenes de datos Azure NetApp Files. Así que tiene la opción de equilibrar el aprovisionamiento de suficientes almacenes de datos para un rendimiento máximo, potencialmente explosivo, frente a la complicación de la administración y el costo.
Recomendaciones
Cuando las funcionalidades de rendimiento de un único almacén de datos son insuficientes, propague las máquinas virtuales entre varios almacenes de datos para escalar aún más. La simplicidad suele ser lo mejor, pero el rendimiento y la escalabilidad pueden justificar la complejidad añadida, aunque limitada.
Cuatro almacenes de datos Azure NetApp Files proporcionan hasta 10 GBps de ancho de banda utilizable para grandes IO secuenciales o la capacidad de impulsar hasta 500.000 IOPS aleatorias de 8K. Aunque un almacén de datos puede ser suficiente para muchas necesidades de rendimiento, para obtener el mejor rendimiento, comience con un mínimo de cuatro almacenes de datos.
Para el ajuste pormenorizados del rendimiento, los sistemas operativos invitados Windows y Linux permiten el seccionamiento entre varios discos. Por lo tanto, debe distribuir los sistemas de archivos entre varios VMDK distribuidos entre varios almacenes de datos. Sin embargo, si la coherencia de las instantáneas de la aplicación es un problema y no se puede superar con LVM o espacios de almacenamiento, considere la posibilidad de montar Azure NetApp Files desde el sistema operativo invitado o investigar el escalado de nivel de aplicación, de los cuales Azure tiene muchas opciones excelentes.
Si distribuye volúmenes entre varios discos, asegúrese de que el software de copia de seguridad o el software de recuperación ante desastres admite la copia de seguridad de varios discos virtuales simultáneamente. A medida que las escrituras individuales se seccionan entre varios discos, el sistema de archivos debe asegurarse de que los discos se "inmovilizan" durante las operaciones de instantánea o copia de seguridad. La mayoría de los sistemas de archivos modernos incluyen una operación de inmovilización o instantánea, como xfs (xfs_freeze) y NTFS (instantáneas de volumen), que el software de copia de seguridad puede aprovechar.
Dado que Azure NetApp Files factura la capacidad aprovisionada en el grupo de capacidad en lugar de la capacidad asignada (almacenes de datos), pagará lo mismo por almacenes de datos de 4x20 TB o almacenes de datos de 20x4 TB. Si lo necesita, puede ajustar la capacidad y el rendimiento de los almacenes de datos a petición, dinámicamente a través de la API o la consola de Azure.
Por ejemplo, a medida que se aproxima al final de un año fiscal, se encuentra que necesita más rendimiento de almacenamiento en el almacén de datos estándar. Puede aumentar el nivel de servicio de los almacenes de datos durante un mes para permitir que todas las máquinas virtuales de esos almacenes de datos tengan más rendimiento disponibles para ellos, al tiempo que mantiene otros almacenes de datos en un nivel de servicio inferior. No solo ahorra costo, sino que obtiene más rendimiento al tener cargas de trabajo distribuidas entre más conexiones TCP entre cada almacén de datos a cada host de AVS.
Puede supervisar las métricas del almacén de datos a través de vCenter Server o a través de la API o la consola de Azure. Desde vCenter Server, puede supervisar las IOPS medias agregadas de un almacén de datos en los Gráficos de rendimiento/avanzados, siempre que active la recopilación de métricas de control de E/S de almacenamiento en el almacén de datos. La API y la consola de Azure presentan métricas para WriteIops
, ReadIops
, ReadThroughput
y WriteThroughput
, entre otras, para medir sus cargas de trabajo a nivel de almacén de datos. Con las métricas de Azure, puede establecer reglas de alerta con acciones para cambiar automáticamente el tamaño de un almacén de datos a través de una función de Azure, un webhook u otras acciones.
Pasos siguientes
- Seccionar discos en Azure
- Crear volúmenes seccionados en Windows Server
- Arquitectura de almacenamiento de Azure VMware Solution
- Asociación de almacenes de datos de Azure NetApp Files a hosts de Azure VMware Solution
- Conexión de Azure NetApp Files con máquinas virtuales de Azure VMware Solution
- Consideraciones sobre el rendimiento de Azure NetApp Files
- Procedimientos recomendados de las opciones de montaje de NFS de Linux para Azure NetApp Files