Blog de Amazon Web Services (AWS)
Logrando un alto throughput con un sistema de archivos Windows de bajo costo
Por Darryl Osborne, Arquitecto Principal de Soluciones.
A principios de este año, anunciamos la disponibilidad de una opción de almacenamiento de bajo costo, «Nueva opción de almacenamiento HDD de bajo costo para Amazon FSX for Windows File Server» que ofrece a los clientes la opción de seleccionar almacenamiento en disco duro (HDD) o unidad de estado sólido (SSD) al crear sistemas de archivos en Amazon FSx. La opción de almacenamiento HDD está diseñada para una amplia gama de cargas de trabajo, incluidos directorios personales, recursos compartidos departamentales y sistemas de administración de contenido. En esta publicación, compartiremos cómo los sistemas de archivos HDD ofrecen un alto rendimiento para sus aplicaciones basadas en archivos. Para las pruebas de resistencia, usaremos DiskSPD, una herramienta de rendimiento de almacenamiento de Microsoft que se utiliza comúnmente para pruebas sintéticas (actividad simulada), para probar componentes de un servidor de archivos de Amazon FSX para Windows utilizando diferentes operaciones de lectura y escritura.
Amazon FSx proporciona almacenamiento de archivos escalable, altamente confiable, totalmente administrado y accesible a través del protocolo SMB (Server Message Block). Está basado en Microsoft Windows Server y ofrece una amplia gama de funciones administrativas, como la deduplicación de datos, la restauración de archivos de usuario final y la integración de Microsoft Active Directory (AD). Proporciona opciones de implementación Single-AZ o Multi-AZ, copias de seguridad totalmente administradas y cifrado de datos en reposo y en tránsito. Se puede acceder al almacenamiento de archivos de Amazon FSX en dispositivos e instancias de cómputo Windows, Linux y macOS que se ejecutan en AWS o en las instalaciones.
Esta semana, hemos lanzado soporte para aumentar la capacidad de almacenamiento y cambiar la capacidad de throughput de los file systems. Esto le permite aumentar dinámicamente la capacidad de almacenamiento de un sistema de archivos a medida que aumentan sus necesidades de datos. Con la nueva característica para cambiar la capacidad de throughput, puede ajustar dinámicamente la capacidad de throughput para cargas de trabajo cíclicas o para ráfagas individuales, comunes para migraciones urgentes. Puede obtener más información sobre estas nuevas características en el blog de AWS: «Amazon FSX for Windows File Server — Storage Size and Throughthroughput Capacity Scaling».
Componentes de alto throughput
Hay algunas decisiones necesarias al crear un sistema de archivos con Amazon FSx. Debe seleccionar el tipo de implementación (Multi-AZ o Single-AZ), el tipo de almacenamiento (SSD o HDD), la capacidad de almacenamiento (32 a 65.536 GiB para SSD; 2.000 a 65.536 GiB para HDD) y la capacidad de throughput (8, 16, 32, 64, 128, 256, 512, 1024 o 2048 MB/s). La capacidad de throughput es el atributo que más contribuye al rendimiento global alcanzable y al rendimiento de un sistema de archivos. Sin embargo, hay tres componentes de características que afectan significativamente el throughput general de un sistema de archivos: rendimiento de red, caché en memoria y rendimiento de disco. Estos componentes se ilustran en el siguiente diagrama (Figura 1).
La sección de rendimiento de la Guía del usuario de Amazon FSx tiene una tabla completa que muestra el throughput de disco, memoria caché, IOPS y red para todas las capacidades de throughput posibles. La tabla siguiente (Tabla 1) es un subconjunto de esta tabla, que muestra la información de throughput y caché.
Capacidad de rendimiento del sistema de archivos (MB/s) | – Red. rendimiento (MB/s) |
Memoria para almacenamiento en caché (GB) |
Rendimiento del disco (MB/s) |
||
Baseline | Variable | Baseline | Burst | ||
8 | 8 | Hasta 600 | 0.5 | 8 | Hasta 260 |
16 | 16 | Hasta 600 | 1 | 16 | Hasta 260 |
32 | 32 | Hasta 600 | 2 | 32 | Hasta 260 |
64 | 64 | Hasta 600 | 4 | 64 | Hasta 350 |
128 | 150 | Hasta 1250 | 8 | 128 | Hasta 600 |
256 | 300 | Hasta 1250 | 16 | 256 | Hasta 600 |
512 | 600 | Hasta 1250 | 32 | 512 | — |
10 | 1500 | — | 64 | 10 | — |
2048 | 3125 | — | 128 | 2048 | — |
Tabla 1: Rendimiento de Amazon FSX para el servidor de archivos de Windows
Cuando selecciona el throughput de un sistema de archivos, está seleccionando el throughput de disco de referencia disponible para ese sistema de archivos. Normalmente, este es el componente con el rendimiento más lento de un sistema de archivos. El incremento de throughput de disco, caché en memoria y el rendimiento base y variable de un sistema de archivos, son funcionalidades que le permiten operar a una tasa mayor de throughput que el throughput referencia del disco. Esto permite un throughput mayor al elegido al momento de crear un sistema de archivos.
Veamos cómo los file systems de Amazon FSx ofrecen un rendimiento superior a los niveles base de throughput.
Pruebas
Inicialmente, creamos un sistema de archivos usando Amazon FSx con los siguientes atributos:
Tipo de implementación Single-AZ
Tipo de almacenamiento HDD
Capacidad de almacenamiento de 5120 GiB
Throughput de 32 MB/s
En segundo lugar, lanzaremos una instancia m5n.8xlarge de Amazon EC2 utilizando la última imagen de máquina de Amazon (AMI) de Windows Server 2019. Hemos seleccionado este tipo de instancia intencionalmente debido a su rendimiento de red no variable para garantizar que el rendimiento de EC2 no sea un factor limitante. Es decir, necesitamos un rendimiento coherente de la red Amazon EC2 para el sistema de archivos.
Tercero, instalaremos la última versión de DiskSPD.
# install DiskSpd (windows) $path = "C:\Tools\DiskSpd-2.0.21a" $url = "https://gallery.technet.microsoft.com/DiskSpd-A-Robust-Storage-6ef84e62/file/199535/2/DiskSpd-2.0.21a.zip" $destination = "C:\Tools\DiskSpd-2.0.21a.zip" $download = New-Object -Typename System.Net.WebClient New-Item -Type Directory -Path $path $download.DownloadFile($url,$destination) $extract = New-Object -ComObject Shell.Application $files = $extract.Namespace($destination).Items() $extract.NameSpace($path).CopyHere($files)
Ahora, crearemos un archivo de 8 GiB y usaremos DiskSPD para escribir continuamente en este archivo durante 15 minutos. Para hacer esto, omitiremos la caché local en el cliente usando la opción «-Sr», usaremos solo 1 hilo y usaremos un tamaño de bloque de 1 MB.
$random = $(Get-Random) fsutil file createnew \\amznfsxovuaxsaw.example.com\share\${env:computername}- $random.dat 8589934592
C:\Tools\DiskSpd-2.0.21a\amd64\DiskSpd.exe -d900 -s1M -w100 -t1 -o32 -b1M -Sr -L \\amznfsxovuaxsaw.example.com\share\${env:computername}-$random.dat
Durante esta prueba, abriremos el Administrador de tareas y supervisaremos el tráfico de red saliente desde la instancia de EC2. Ocasionalmente, la prueba de escritura alcanza un throughput máximo de 400 MB/s varias veces, con un throughput de 287,5 MB/s entre picos. Este patrón es muy consistente durante toda la prueba. Consulte la siguiente captura de pantalla del Administrador de tareas (Figura 2).
En los resultados de DiskSPD, tenemos 258Mib/s de escritura:
El sistema de archivos es capaz de incrementar más que los 15 minutos de prueba, por lo que ampliaremos la duración de la prueba de escritura para que consuma toda la capacidad de burst. Cuando se produce una caída significativa en el throughput, sabemos que la capacidad de burst está agotada y finalizamos para la siguiente prueba: una prueba de escritura de referencia de throughput.
Para hacer esto, cambio mi script de d900 a d90000
C:\Tools\DiskSpd–2.0.21a\amd64\DiskSpd.exe –d90000 –s1M –w100 –t1 –o32 –b1M –Sr –L \\amznfsxovuaxsaw.example.com\share\${env:computername}-$random.dat
Ahora que se ha consumido la capacidad de ráfaga del sistema de archivos, ejecutaremos nuevamente el mismo script DiskSPD, ahora probando el rendimiento base de escritura.
La siguiente captura de pantalla (Figura 3) del Administrador de tareas muestra el tráfico de red saliente desde la instancia de EC2. Durante la prueba base de escritura, vemos que la instancia obtiene un rendimiento de 32 MB/s en el sistema de archivos (lo que también confirma los 32MB que configuramos este FSx).
Ahora esperaremos algún tiempo para que se restablezcan los créditos de burst antes de comenzar la siguiente prueba. Esta vez, solo probaremos el throughput de red del sistema de archivos para crear un archivo de 2GB que pueda residir completamente en la memoria caché. Ejecutaremos un comando DiskSPD que lee el archivo continuamente durante 15 minutos. Este comando, al igual que los demás, utiliza la opción -Sr para omitir la caché local de la instancia de EC2.
Esto significa que todas mis solicitudes de E/S provienen de la red desde la caché de memoria del sistema de archivos y no desde el disco.
$random = $(Get-Random) fsutil file createnew \\amznfsxovuaxsaw.example.com\share\${env:computername}-$random.dat 2000000000 C:\Tools\DiskSpd-2.0.21a\amd64\DiskSpd.exe -d900 -s1M -r100 -t1 -o32 -b1M -Sr -L \\amznfsxovuaxsaw.example.com\share\${env:computername}-$random.dat
Una vez más, abriremos el Administrador de tareas para supervisar el tráfico de red saliente desde la instancia de EC2 a medida que se produzca la lectura en FSx. Hay un throughput consistente de 5,0 Gbps o aproximadamente 600 MB mientras la lectura se produce en el sistema de archivos:
Algunas cargas de trabajo pueden ser mucho más grandes que la memoria designada para el almacenamiento en caché. Sin embargo, la parte del conjunto de trabajo activo de su carga de trabajo debería poder aprovechar esta caché en memoria y el alto rendimiento de red variable de estos sistemas de archivos.
Las herramientas de prueba como DiskSPD son útiles si están configuradas para imitar patrones de E/S reales. Al hablar con los clientes, enfatizamos la importancia de probar sus cargas de trabajo reales en el sistema de archivos. Para las pruebas finales, descargaremos una colección de conjuntos de datos de Earth Science mantenidos por la NASA, disponibles como parte del registro de datos abiertos en AWS.
Dentro de este conjunto de datos, hay algunas transformaciones cartográficas inversas de archivos NDVI globales de GIMMS AVHRR. Vamos a comprimir y descomprimir un subconjunto de este conjunto de datos, alrededor de 757 archivos.N07-v13g de los años 1980, 1990, 2000 y 2010, con un total de 13,1 GB. Para ello, utilizaremos WinRAR y cuatro subprocesos en paralelo para comprimir el conjunto de datos a 2,29 GB en el sistema de archivos de Amazon FSX. Este zip tardó 99 segundos en completarse. La captura de pantalla del Administrador de tareas muestra el rendimiento de lectura durante la compresión (237,5 MB/s).
La prueba final es desempaquetar el archivo comprimido en una nueva carpeta en el sistema de archivos de Amazon FSx. La siguiente figura muestra una captura de pantalla del Administrador de tareas durante la misma operación de descompresión, con un rendimiento de escritura que alcanza 187,5 MB/s. Esto descompresión fue completada en 73 segundos.
El sistema de archivos utilizado en estas últimas pruebas (descomprimir) se encuentra en la región oeste de Estados Unidos (Oregón) y es un sistema de archivos de Amazon FSX Multi-AZ HDD 5120 GiB de 32 MB.
Alcanzamos 625 MBps durante la prueba de lectura de caché en memoria, 400 MBps de burst durante la prueba de escritura y 32 MBps de escritura de línea base. Este servidor de archivos se ejecutó durante 2 horas y cuesta solo 0,742 USD, lo que equivale a 270,72 USD por mes (excluyendo las copias de seguridad).
Para este valor, obtuvimos:
- Almacenamiento de archivos de Windows, administrado y de alta disponibilidad de alto rendimiento
- Funcionalidad completa de conmutación por error entre dos zonas de disponibilidad;
- Datos replicados dentro de cada zona de disponibilidad para una gran durabilidad;
- Cifrado de datos en reposo y en tránsito;
- Deduplicación de datos, instantáneas de volumen (instantáneas);
- Cumplimiento de varios programas de cumplimiento como PCI DSS, ISO (9001, 27001, 27017 y 27018), SOC (1, 2 y 3) y GDPR;
- Un sistema de archivos elegible para HIPAA.
Las cargas de trabajo basadas en archivos suelen tener una pequeña parte del conjunto de datos general que se utiliza activamente en un momento determinado. Estas cargas de trabajo se beneficiarán de la caché en memoria de Amazon FSX y del alto throughput de red variable para Windows File Server. Además, estas cargas de trabajo suelen utilizar picos o altos niveles de throughput durante períodos cortos, pero generan niveles más bajos durante períodos más largos.
Como muestran los resultados, incluso los sistemas de archivos HDD de bajo costo son capaces de lograr altos niveles de throughput incluso por encima del básico (documentamos los niveles de red basados en los niveles de caché y burst) de estos sistemas de archivos.
Para obtener más información sobre los sistemas de archivos HDD de Amazon FSX para Windows File Server, visite nuestra guía del usuario y sitio web de Amazon FSX para Windows File Server.
Lectura recomendada (tenga en cuenta que estos fueron escritos en portugués, pero estamos trabajando en la traducción al español)—
Amazon FSX para Windows File Server, Capítulo 1 – Creación y configuración
Amazon FSX para Windows File Server, capítulo 3 — Asignación de FSX a servidores Linux
Este artículo fue traducido del Blog de AWS en Inglés.
Sobre los autores
Darryl Osborne es un arquitecto de soluciones para servicios de archivos en Amazon Web Services (AWS). Es miembro de los equipos de servicio de Amazon EFS y Amazon FSx y es responsable de evangelizar las ofertas de servicios de archivos nativos de AWS. Le gusta pasar tiempo al aire libre en su estado natal de Texas.
Caio Ribeiro Cesar actualmente trabaja como arquitecto de soluciones especializado en tecnología de Microsoft en la nube de AWS. Comenzó su carrera profesional como administrador de sistemas, que continuó durante más de 13 años en áreas como seguridad de la información, identidad en línea y plataformas de correo electrónico corporativo. Recientemente se hizo fanático de la computación en la nube de AWS y ayuda a los clientes a aprovechar el poder de la tecnología de Microsoft en AWS.
Revisores
Luisa Vesga es Startup Solutions Architect en AWS Colombia.