Sistema de archivos paralelos
NFS ha evolucionado del mundo empresarial a estar diseñado para controlar el acceso simultáneo a los archivos a escala creciente. Pero hay un límite superior para el rendimiento y la escala que puede obtener con las soluciones NFS. También hay clases de cargas de trabajo que necesitan mucho más acceso en paralelo a archivos, incluida la capacidad de varios procesos simultáneos de escribir en alguna sección de un archivo.
La necesidad de leer y escribir a gran escala ha crecido de manera considerable durante las dos últimas décadas. Las soluciones de los sistemas de archivos paralelos son la opción principal para agilizar las cargas de trabajo de alto rendimiento más grandes. Los sistemas de archivos paralelos se originaron en centros de supercomputación. Ahora se implementan de forma generalizada para varios escenarios. Por ejemplo, soluciones de procesamiento e interpretación sísmica usadas por las principales empresas de petróleo y gas, y el análisis secundario y terciario de datos de genoma.
En esta unidad se presenta un tratamiento ligero de los sistemas de archivos paralelos. Si ha estado ejecutando estas cargas de trabajo, probablemente esté familiarizado con los controladores, las necesidades y la arquitectura de estas soluciones. Hay un área gris entre las soluciones NAS distribuidas que sirven a NFS y a los sistemas de archivos paralelos. El uso de sistemas de archivos paralelos puede satisfacer mejor sus requisitos.
Una vez que haya completado esta unidad, estará más familiarizado con las principales características de los sistemas de archivos paralelos.
Históricamente, los sistemas de archivos paralelos han sido una clase completa de capacidad que requiere un conocimiento profundo de la E/S de aplicaciones. Esta información le facilitará la comprensión, no la experiencia.
Diferencias entre sistemas de archivos NAS distribuidos (NFS) y en paralelo
Tanto el NAS distribuido como los sistemas de archivos paralelos son sistemas de archivos compartidos. Los archivos se pueden leer mediante varios clientes simultáneamente, se puede escribir en ellos y bloquearlos, se pueden modificar metadatos, etc.
Ambos sistemas se pueden escalar mediante la adición o actualización de tecnologías de hardware de almacenamiento, con la adición de servidores de front-end para el escalado del acceso de los clientes o mediante la mejora de la conectividad de red.
E/S en paralelo
Los sistemas de archivos en paralelo dividen los archivos en bloques discretos o franjas, y distribuyen estos archivos entre varios servidores de almacenamiento. Hay sistemas de archivos distribuidos que seccionan los datos. La diferencia estriba en que los sistemas de archivos en paralelo las exponen directamente a los clientes, mediante la comunicación con los propios servidores de almacenamiento de hospedaje. La división en franjas permite una E/S en paralelo significativa en un sistema NAS distribuido estándar. Los clientes NFS que se ejecutan con los entornos de escalado horizontal NAS más comunes deben acceder a un archivo por medio de un solo servidor. Cuando los clientes acceden a un solo servidor, genera problemas cuando el número de solicitudes simultáneas aumenta más allá de lo que puede controlar el servidor. Y el enfoque de sistemas de archivos en paralelo para el acceso y la fragmentación en paralelo hace que sean una buena opción para las cargas de trabajo que necesitan acceder a archivos grandes en un gran número de clientes simultáneos.
A continuación se muestran tres sistemas de archivos paralelos principales:
- GPFS de IBM, conocido como Spectrum Scale
- Lustre, que es de código abierto pero tiene algunas implementaciones comerciales
- BeeGFS
Estos sistemas logran la E/S en paralelo de distintas maneras. GPFS usa servidores conocidos como dispositivos de almacenamiento de red (NSD) que se conectan a una red de área de almacenamiento (SAN) de alto rendimiento. Por lo tanto, los servidores de GPFS tienen una E/S de disco sin procesar como almacenamiento de copia de seguridad. BeeGFS tiene muchos de los mismos componentes arquitectónicos que Lustre, pero también una sólida arquitectura de metadatos distribuidos. BeeOND, abreviatura de BeeGFS On Demand (BeeGFS a petición), permite entornos BeeGFS a petición que usan almacenamiento en cada cliente. Estos entornos de sistema de archivos temporales se pueden usar para el almacenamiento en búfer en ráfagas.
Pero en los dos casos, los sistemas de archivos en paralelo se pueden escalar mediante la adición de más servidores de almacenamiento, lo que a su vez ofrece más E/S en paralelo a los clientes. Además, el recuento total de clientes puede ser elevado y alcanzar decenas de miles.
Metadatos
Los clientes NFS interactúan directamente con un servidor NFS, que proporciona información de metadatos y recupera datos de los clientes. Debe ajustar el tamaño del componente de servidor de acuerdo con la cantidad de clientes y la tasa de tráfico esperada. Este componente puede convertirse en un cuello de botella. Los proveedores de NAS pueden implementar algunas optimizaciones de metadatos, pero la mayoría de las implementaciones de NFS no reconocen un servicio de metadatos independiente.
En cambio, los sistemas de archivos en paralelo suelen implementar estrategias para mejorar la escala del acceso a los datos de cliente. Lustre, por ejemplo, implementa un servidor de metadatos (MDS) independiente. Los clientes recuperan todos los metadatos de ese sistema. Además, los clientes de Lustre pueden acceder directamente al servidor de almacenamiento donde se encuentra un archivo determinado y pueden leer y escribir varios subprocesos paralelos. Este enfoque permite a la arquitectura escalar el ancho de banda en función del número de servidores de almacenamiento implementados.
Tamaño de bloque
Hemos analizado el tamaño de bloque antes, en el contexto de NFS. Los tamaños de bloque de los sistemas de archivos en paralelo pueden ser mayores que los de NFS. El valor predeterminado de rsize/wsize para los clientes NFS suele ser 64 000. Lustre, por ejemplo, tiene tamaños de bloque en MB. Este tamaño mayor tiene dos efectos. En primer lugar, la lectura y escritura de archivos grandes es superior en un sistema de archivos en paralelo. Pero los sistemas de archivos en paralelo apenas suponen una ventaja cuando los tamaños de archivo son pequeños y el número de archivos es alto.
Complejidad
Las soluciones de sistema de archivos distribuidas que ejecutan NFS son fáciles de configurar y ejecutar en casos de uso comunes. Como sucede con cualquier sistema, se pueden optimizar para el rendimiento, incluida la manipulación de los tamaños de bloque de cliente-servidor (rsize/wsize) en función de las cargas de trabajo.
Los sistemas de archivos paralelos suelen funcionar con cargas de trabajo complejas en entornos de escala. Es más probable que requieran una configuración y ajuste para garantizar un rendimiento y una escala suficientes.
Consideraciones de la implementación
Azure ofrece varias ofertas de sistema de archivos en paralelo propias. Puede ir a Azure Marketplace para ver las opciones, entre las que se incluyen BeeGFS y Lustre (busque Whamcloud). También puede instalar Lustre en máquinas virtuales estándar de Linux o bien puede usar las plantillas de Azure Resource Manager (ARM) que se encuentran en el sitio de inicio rápido de Azure.