Blog de Amazon Web Services (AWS)

Logrando un alto throughput con un sistema de archivos Windows de bajo costo

Contenido escrito originalmente por Darryl Osborne , Arquitecto Principal de Soluciones. Disponible en inglés aquí.

 

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 y totalmente administrado, 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 informáticas Windows, Linux y macOS que se ejecutan en AWS o en las instalaciones.

Este mes, hemos lanzado soporte para aumentar la capacidad de almacenamiento y cambiar la capacidad de rendimiento 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 capacidad para cambiar la capacidad de rendimiento, puede ajustar dinámicamente la capacidad de rendimiento para cargas de trabajo cíclicas o para ráfagas individuales, comunes para migraciones dependientes del tiempo. 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 rendimiento

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 rendimiento (8, 16, 32, 64, 128, 256, 512, 1024 o 2048 MB/s). La capacidad de rendimiento es el atributo que más contribuye al rendimiento y el rendimiento totales alcanzables de un file system. Sin embargo, hay tres componentes de características que afectan significativamente el rendimiento 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).

 

Figura 1: Componentes de rendimiento de un servidor de archivos de Amazon FSX para Windows

 

La sección de rendimiento de la Guía del usuario de Amazon FSx tiene una tabla completa que muestra el rendimiento de disco, memoria caché, IOPS y red para todas las capacidades de rendimiento posibles. La tabla siguiente (Tabla 1) es un subconjunto de esta tabla, que muestra la información de rendimiento 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 la capacidad de rendimiento de un sistema de archivos, está seleccionando el rendimiento previsto disponible para ese sistema de archivos (línea base de rendimiento de disco). Normalmente, este es el componente de rendimiento más lento de un sistema de archivos. El rendimiento de disco intermitente, la caché en memoria y el rendimiento de red del filesystem son funcionalidades que le permiten operar a un rendimiento sustancialmente mayor que el rendimiento de línea base del disco. Esto permite un rendimiento real mucho mayor que la velocidad elegida al crear el sistema de archivos.

Veamos cómo los file systems de Amazon FSx ofrecen un rendimiento superior a los niveles de rendimiento previstos.

 

Probando

Inicialmente, creamos un sistema de archivos usando Amazon FSx con los siguientes atributos (simple, solo para nuestras pruebas):

Tipo de implementación Single-AZ

Tipo de almacenamiento HDD

Capacidad de almacenamiento de 5120 GiB

Capacidad de rendimiento de 32 MB (s)

Figura 2 — Configuración de FSX

 

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.

Figura 3: Instalació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.

Figuras 4 y 5 — Inicio de la prueba de burst

 

$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 rendimiento máximo de 400 MB/s varias veces, con un rendimiento 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).

Figura 6: Rendimiento de red del cliente de EC2 que muestra el rendimiento de ráfaga de una prueba de escritura

 

En los resultados de DiskSPD, tenemos 258Mib/s de escritura:

Figura 7 — Resultado de escritura (258 MB /s).

 

El sistema de archivos es capaz de reventar más de nuestra prueba de 15 minutos, 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 rendimiento, sabemos que la capacidad de burst está agotada y finalizamos la prueba para la siguiente prueba: una prueba de rendimiento de referencia de escritura.

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 de escritura de baseline.

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 de línea de 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).

Figura 8: Rendimiento de red de clientes de EC2 que muestra la velocidad de transferencia de referencia de una prueba de escritura

 

Figura 9 — Resultado de escritura (29,43 MB /s).

 

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 rendimiento de la 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 rendimiento consistente de 5,0 Gbps o aproximadamente 600 MB mientras la lectura se produce en el sistema de archivos:

Figura 10: lectura consistente de 568MB.

 

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 rendimiento de red variable para Windows File Server. Además, estas cargas de trabajo suelen utilizar picos o altos niveles de rendimiento durante períodos cortos, pero generan niveles más bajos de rendimiento 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 rendimiento incluso por encima del rendimiento 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 2 — Más características: Copia instantánea, espacio de nombres DFS, deducción de datos y cuotas

Amazon FSX para Windows File Server, capítulo 3 — Asignación de FSX a servidores Linux

Amazon FSX para Windows File Server, capítulo 4 – Migración de datos con AWS DataSync (escenario de varias regiones)

 


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.