Blog de Amazon Web Services (AWS)
Ejecución de un clúster SAS Grid Manager de alto rendimiento en AWS con Amazon FSx for Lustre
Por Neelam y Dilip Rajan
SAS® es un proveedor de software especializado en Análisis y Ciencia de Datos utilizado por empresas y organizaciones gubernamentales. SAS Grid es una plataforma de Análisis de Procesamiento rápido, de alta disponibilidad, que ofrece una administración centralizada la cual balancea cargas de trabajo en diferentes nodos de cómputo. Este paquete de aplicaciones es capaz de gestionar datos para análisis visual, gobernanza y seguridad, previsión y minería de textos, análisis estadístico, además de la administración del ambiente. En tiempos recientes, SAS y AWS han colaborado para realizar pruebas en conjunto utilizando el sistema de archivos compartidos Amazon FSx for Lustre y determinar el desempeño de las cargas de trabajo estándares en AWS utilizando SAS Grid Manager. Para obtener un informe detallado sobre los resultados, consulte el documento técnico Aceleración de SAS mediante sistemas de archivos de alto rendimiento en Amazon Web Services.
En esta publicación, analizamos la arquitectura propuesta para implementar la infraestructura AWS subyacente necesaria para ejecutar SAS Grid con FSx for Lustre; esta arquitectura también puede considerarse para ejecutar aplicaciones similares con requisitos de “entrada y salida” (E/S) exigentes.
Descripción general de la Arquitectura
La ejecución de cargas de trabajo de alto rendimiento, con alta dependencia en el desempeño de la infraestructura, especialmente en la latencia de la red, requiere enfoques distintos a los utilizados en el diseño de aplicaciones típicas. AWS generalmente recomienda que las aplicaciones se extiendan a varias Zonas de Disponibilidad (Availability Zones) para lograr una alta disponibilidad; sin embargo, considerando el requerimiento de conectividad con muy baja latencia en este tipo de aplicaciones, se recomienda que el trafico se mantenga localmente, logrando de esta forma un óptimo rendimiento. Existen diferentes técnicas para lograr este objetivo:
- Ejecución en una Nube Privada Virtual (Amazon VPC), utilizando tipos de instancia que permiten redes mejoradas
- Ejecución de instancias en la misma zona de disponibilidad
- Ejecución de instancias dentro de un grupo de ubicación(Placement Groups)
El siguiente diagrama ilustra la arquitectura SAS Grid con FSx for Lustre en AWS.
La arquitectura SAS Grid consta de nodos de nivel medio, servidores de metadatos y nodos informáticos Grid. Los nodos de nivel medio son responsables de ejecutar los componentes Platform Web Services (PWS) y Load Sharing Facility (LSF). Estos componentes gestionan los trabajos enviados y devuelven el estado de cada uno de ellos.
Para ejecutar PWS y LSF de forma eficaz en nodos de nivel medio, se requieren instancias de Amazon Elastic Compute Cloud (Amazon EC2) con gran capacidad de memoria. En especial, para este caso de uso, la familia de instancias r5, optimizadas en este tipo de recursos, cumplirá con este requisito.
Los servidores de Metadatos contienen el repositorio que almacena las definiciones de metadata referente a todos los productos que gestiona SAS Grid Manager; la familia de instancias r5 también cumple de manera eficaz debido a sus capacidades. Es necesario cumplir o superar el pre-requisito de memoria recomendado de 24 GB de RAM u 8 MB por núcleo físico (lo que sea mayor). Los servidores de metadatos no dependen de recursos de computo intensivos o ancho de banda de E/S elevado; por lo tanto, la familia de instancias r5 seleccionada cumple las necesidades y permite un equilibrio entre precio y rendimiento.
Los nodos SAS Grid son responsables de ejecutar los trabajos recibidos por el grid, y las instancias EC2 capaces de manejar estos trabajos dependen del tamaño, la complejidad y el volumen del trabajo que realiza el grid. Para cumplir con los requisitos mínimos de cargas de trabajo SAS Grid, es recomendado tener un mínimo de 8 GB de RAM física por núcleo y un rendimiento de E/S asegurado de 100 a 125 MB/segundo por núcleo físico. Para este caso de uso, las familias de instancias EC2 m5n y r5n, cuentan con los recursos suficientes para cumplir con los requisitos de memoria RAM y rendimiento, mientras que también permiten alojar bibliotecas SASDATA, SASWORK y UTILLOC, necesarias para la correcta operación de la solución, en un sistema de archivos compartido. En caso de habilitar SASWORK dentro del almacenamiento de las instancias, la familia de instancias i3en satisface la necesidad porque permite integrar almacenamiento de más de 1,2 TB. En la siguiente sección, analizamos cómo se realizaron las pruebas de rendimiento para llegar a las recomendaciones de la instancia EC2 con FSx for Lustre.
Pasos para maximizar el rendimiento de E/S de almacenamiento
SAS Grid requiere de un sistema de archivos compartidos, y se buscó comparar el rendimiento de FSx for Lustre, como el sistema de archivos compartidos elegido, entre diferentes familias de instancias EC2 que cumplen con los requisitos mínimos de 8 GB de RAM física por núcleo y 100-125 MB/segundo rendimiento por núcleo físico.
FSx for Lustre es un servicio de almacenamiento de archivos totalmente administrado, diseñado para aplicaciones que requieren un almacenamiento rápido. Como sistema de archivos compatible con POSIX, puede utilizar FSx for Lustre con las aplicaciones actuales basadas en Linux sin tener que realizar ningún cambio. Aunque FSx for Lustre ofrece la posibilidad de elegir entre sistemas de archivos scratch y persistentes, recomendamos que SAS Grid utilice el sistema de archivos FSx de tipo persistente para Lustre dado que es necesario almacenar los datos y bibliotecas SASWORK, SASDATA y UTILLOC durante períodos más largos, asegurando el alta disponibilidad y la durabilidad de los datos. Para cumplir con el rendimiento de E/S, asegúrese de seleccionar la capacidad de almacenamiento adecuada para el rendimiento por unidad de almacenamiento para lograr el rango deseado de 100 a 125 MB / segundo.
Después de configurar el sistema de archivos, recomendamos montar FSx for Lustre con la opción de montaje “flock”, el cual habilita el soporte de bloqueo coherente de archivos en todos los nodos del clúster. El siguiente ejemplo de código es un comando de montaje y una opción de montaje para FSx for Lustre:
$ sudo mount -t lustre -o noatime,flock fs-0123456789abcd.fsx.us-west- 2.amazonaws.com@tcp:/za3atbmv /fsx $ mount -t lustre 172.31.41.37@tcp:/za3atbmv on /fsx type lustre (rw,noatime,seclabel,flock,lazystatfs)
Pruebas y resultados de rendimiento
Para seleccionar las instancias EC2 mejor ubicadas para ejecutar SAS Grid con FSx for Lustre, realizamos una serie de pruebas de rendimiento de red altamente paralelas, desde instancias EC2 independientes contra un sistema de archivos persistente de 100,8 TiB, al cual se le habilitó una capacidad de rendimiento agregada de 19.688 GB/segundo. Ejecutamos estas pruebas en varias regiones utilizando varias familias de instancias EC2 (c5, c5n, i3, i3en, m5, m5a, m5ad, m5n, m5dn, r5, r5a, r5ad, r5n y r5dn). Las pruebas se ejecutaron durante 3 horas para cada instancia y la métrica DataWriteBytes del sistema de archivos se registró cada minuto. Solo una instancia accedía al sistema de archivos a la vez y se capturaron los resultados de p99.9. Las métricas fueron consistentes en cuatro regiones distintas.
Observamos que las familias de instancias EC2 i3en, m5n, m5dn, r5n y r5dn cumplen o superan las recomendaciones mínimas de memoria y rendimiento de red. Para obtener más información sobre los resultados de rendimiento, consulte el documento técnico Aceleración de SAS mediante sistemas de archivos de alto rendimiento en Amazon Web Services. La familia de instancias i3 está en el límite de cumplir con el rendimiento mínimo de la red, por lo que, en el caso especifico de requerir el almacenamiento de instancia para las librerías SASWORK y UTILLOC, se puede considerar las instancias i3en.
M5n y r5n son una buena combinación de precio y rendimiento, y recomendamos la familia de instancias m5n para nodos SAS Grid. Sin embargo, si su carga de trabajo está limitada a la memoria, considere usar instancias r5n, que proporcionan mayor memoria por núcleo físico por un precio más alto que las instancias m5n.
Así mismo, se ejecutó el script de pruebas de E/S predefinido por SAS: rhel_iotest.sh, el cual está disponible en el repositorio de herramientas de muestras de soporte técnico de SAS (SASTSST), utilizando la misma configuración de FSx for Lustre que se mencionó anteriormente. La siguiente tabla muestra el rendimiento de lectura y escritura por núcleo físico para una variedad de tamaños de instancias en las familias m5n y r5n.
A | B | C | |
1 | Tipo de Instancia | Pico de rendimiento de red variable por núcleo físico | |
2 | Lectura (MB/segundo) | Escritura (MB/segundo) | |
3 | m5n.large | 850.2 | 357.07 |
4 | m5n.xlarge | 519.46 | 386.25 |
5 | m5n.2xlarge | 283.01 | 446.84 |
6 | m5n.4xlarge | 202.89 | 376.57 |
7 | m5n.8xlarge | 154.98 | 297.71 |
8 | r5n.large | 906.88 | 429.93 |
9 | r5n.xlarge | 488.36 | 455.76 |
10 | r5n.2xlarge | 256.96 | 471.65 |
11 | r5n.4xlarge | 203.31 | 390.03 |
12 | r5n.8xlarge | 149.63 | 299.45 |
Para aprovechar la elasticidad, la escalabilidad y la flexibilidad de la nube, recomendamos distribuir SAS Grid y calcular la carga de trabajo en una mayor cantidad de instancias de menor tamaño en lugar de utilizar una menor cantidad de instancias de mayor tamaño. Para el nivel medio, use un mínimo de dos instancias, y para los servidores de metadatos, recomendamos un mínimo de tres instancias para la arquitectura SAS Grid.
Conclusiones
Antes de Amazon FSx para el sistema de archivos Lustre, se tenia que considerar Amazon Elastic File System (Amazon EFS), o algún sistema de archivos de terceros disponible en AWS Marketplace, en conjunto con Amazon Elastic Block Store (Amazon EBS) para el almacenamiento de las librerías SASWORK, SASDATA y UTILLOC. Cada una de estas opciones de almacenamiento integra sus propias configuraciones y limitaciones, lo que representaba una afectación al rendimiento. Con FSx for Lustre, se tiene una única solución para todos los requisitos de almacenamiento de SAS Grid, lo que permite concentrarse en administrar su negocio de una manera optimizada, en vez de enfocar esfuerzos dedicados a mantener un sistema de archivos. Así mismo, dados los resultados documentados en este texto, es recomendado que los administradores de SAS implementen SAS Grid sobre instancias m5n y r5n para los nodos de computo que requiere SAS Grid al integrar FSx para el sistema de archivos Lustre.
Si tiene preguntas o sugerencias, deje un comentario.
Más información:
Este artículo fue traducido del Blog de AWS en Inglés.
Sobre los traductores
Christian Castro es Senior Solutions Architect en AWS Mexico.
Manuel Cuellar es Solutions Architects en AWS Centro America y Caribe.