# Lustre (sistema de archivos)

Lustre es un sistema de archivos distribuido Open Source, normalmente utilizado en clusters a gran escala. El nombre es una mezcla de Linux y clusters. El proyecto intenta proporcionar un sistema de archivos para clusters de decenas de miles de nodos con petabytes de capacidad de almacenamiento, sin comprometer la velocidad o la seguridad, y está disponible bajo la GNU GPL.
Cluster File Systems son los diseñadores, desarrolladores y mantenedores de Lustre con colaboraciones de otras compañías y particulares.
Muchos de los superordenadores más rápidos del mundo son clusters que utilizan el sistema de archivos Lustre como almacenamiento, como los sistemas en ORNL, PNNL, LLNL y LANL.
Se considera a cada archivo almacenado en el sistema de archivos Lustre un objeto. Lustre presenta a todos los clientes una semántica POSIX estándar y acceso concurrente lectura y escritura para los objetos compartidos. Un sistema de archivos Lustre tiene cuatro unidades funcionales. Estas son: Meta data server (MDS) para almacenar los metadatos; un Object storage target (OST) para guardar los datos reales; un Object storage server (OSS) para manejar los OSTs; cliente(s) para acceder y utilizar los datos. Los OSTs son dispositivos de bloques. Un MDS, OSS, y un OST pueden residir en el mismo nodo o en nodos diferentes. Lustre no administra directamente los OSTs, y delega esta responsabilidad en los OSSs para asegurar la escalabilidad para grandes clusters y supercomputadores.
En un Massively Parallell Processor (MPP), los procesadores pueden acceder al sistema de archivos Lustre redirigiendo sus peticiones I/O hacia el nodo con el servicio lanzador de tareas si está configurado como un cliente Lustre. Aunque es el método más sencillo, en general proporciona un bajo rendimiento. Una manera ligeramente más complicada de proporcionar un rendimiento global muy bueno consiste en utilizar la biblioteca liblustre. Liblustre es una biblioteca de nivel de usuario que permite a los procesadores montar y utilizar el sistema de archivos Lustre como un cliente, sorteando la redirección hacia el nodo de servicio. Utilizando liblustre, los procesadores pueden acceder al sistema de archivos Lustre, incluso si el nodo de servicio en el que se lanzó el trabajo no es un cliente Lustre. Liblustre proporciona un mecanismo para mover datos directamente entre el espacio de aplicación y los OSSs de Lustre sin necesidad de realizar una copia de datos a través del núcleo ligero, logrando así una baja latencia, y gran ancho de banda en el acceso directo de los procesadores al sistema de archivos Lustre.
Gracias a su gran rendimiento y escalabilidad características, utilizar Lustre en sistemas MPP es lo más adecuado. Liblustre es la mayor diferencia de diseño entre Lustre en un MPP como el Cray XT3 y los clusters convencionales.
Arquitectura Lustre
La arquitectura Lustre escalable tiene los siguientes componentes:
* Servidor de Gestión (MGS) Un MGS almacena información de configuración para uno o más sistemas de archivos Lustre y proporciona esta información a otros hosts Lustre. Este recurso global puede soportar varios sistemas de archivos.
* Uno o más nodos de servidores de metadatos (MDS) que tienen uno o más dispositivos de destino de metadatos (MDT) por sistema de archivos Lustre que almacena metadatos de espacios de nombres, como nombres de archivos, directorios, permisos de acceso y diseño de archivos. Los datos de MDT se almacenan en un sistema de archivos de disco local. Sin embargo, a diferencia de los sistemas de archivos distribuidos basados en bloques, como GPFS y PanFS, donde el servidor de metadatos controla toda la asignación de bloques, el servidor de metadatos de Lustre solo participa en las verificaciones de permisos y nombres de ruta, y no participa en ninguna operación de E/S de archivos, lo que evita cuellos de botella de escalabilidad de E/S en el servidor de metadatos. La capacidad de tener múltiples MDT en un solo sistema de archivos es una característica nueva en Lustre 2.4 y permite que los subárboles de directorios residan en los MDT secundarios, mientras que 2.7 y versiones posteriores también permiten distribuir grandes directorios individuales en múltiples MDT.
* Servidores de Almacenamiento de Objetos (OSS) Un OSS proporciona el almacenamiento masivo de datos para todo el contenido de archivos en un sistema de archivos Lustre. Cada OSS proporciona acceso a un juego de volúmenes de almacenamiento, llamados destinos de almacenamiento de objetos (OST). Cada OST contiene varios objetos binarios que representan los datos de archivos en Lustre. Los archivos de Lustre están compuestos por uno o más objetos OST, además del inodo de metadatos almacenado en el MDS, Uno o más nodos de servidor de almacenamiento de objetos (OSS) que almacenan datos de archivo en uno o más dispositivos de destino de almacenamiento de objetos (OST) . Dependiendo del hardware del servidor, un OSS generalmente sirve entre dos y ocho OST, y cada OST administra un solo sistema de archivos de disco local. La capacidad de un sistema de archivos Lustre es la suma de las capacidades proporcionadas por los OST.
* Clientes de Lustre Los clientes son instancias informáticas que acceden al sistema de archivos Lustre, estos acceden y utilizan los datos dentro del sistema de archivos. Lustre presenta a todos los clientes un espacio de nombres unificado para todos los archivos y datos del sistema de archivos, utilizando la semántica POSIX estándar , y permite el acceso de lectura y escritura simultáneo y coherente a los archivos del sistema de archivos.
* Red virtual en la nube (VCN) y subredes Una VCN es una red definida por software que se configura en una región Oracle Cloud Infrastructure. Las VCN se pueden segmentar en subredes, que pueden ser específicas de una región o de un dominio de disponibilidad. Tanto las subredes específicas de cada región como las específicas de dominio de disponibilidad pueden coexistir en la misma VCN. Una subred puede ser pública o privada.
* Listas de seguridad Para cada subred, puede crear reglas de seguridad que especifiquen el origen, destino y tipo de tráfico que se debe permitir dentro y fuera de la subred.
* Dominios de disponibilidad Los dominios de disponibilidad son centros de datos independientes e independientes dentro de una región. Los recursos físicos en cada dominio de disponibilidad están aislados de los recursos en los otros dominios de disponibilidad, lo que proporciona tolerancia a fallos. Los dominios de disponibilidad no comparten infraestructura, como energía o refrigeración, o la red de dominio de disponibilidad interna. Por lo tanto, es poco probable que un fallo en un dominio de disponibilidad afecte a los otros dominios de la región.
* El almacenamiento utilizado para los sistemas de archivos de respaldo MDT y OST normalmente lo proporcionan los dispositivos RAID de hardware , aunque funcionará con cualquier dispositivo de bloque. Desde Lustre 2.4, MDT y OST también pueden usar ZFS para el sistema de archivos de respaldo además de ext4 , lo que les permite usar JBOD de manera efectiva.almacenamiento en lugar de dispositivos RAID de hardware. Los servidores Lustre OSS y MDS leen, escriben y modifican datos en el formato impuesto por el sistema de archivos de respaldo y devuelven estos datos a los clientes. Esto permite que Lustre aproveche las mejoras y funciones del sistema de archivos subyacente, como la compresión y las sumas de verificación de datos en ZFS. Los clientes no tienen acceso directo al almacenamiento subyacente, lo que garantiza que un cliente malintencionado o que funcione mal no pueda corromper la estructura del sistema de archivos.

## Historia

La arquitectura del sistema de archivos Lustre se inició como un proyecto de investigación en 1999 por Peter J. Braam , que en ese momento formaba parte del personal de la Universidad Carnegie Mellon (CMU). Braam fundó su propia empresa Cluster File Systems en 2001, a partir del trabajo en el sistema de archivos InterMezzo en el proyecto Coda en CMU. Lustre se desarrolló en el marco del proyecto Path Forward de la Iniciativa de Computación Estratégica Acelerada , financiado por el Departamento de Energía de Estados Unidos , que incluía a Hewlett-Packard e Intel . En septiembre de 2007, Sun Microsystems adquirió los activos de Cluster File Systems Inc., incluida su propiedad intelectual. Sun incluyó Lustre con sus ofertas de hardware informático de alto rendimiento , con la intención de llevar las tecnologías Lustre al sistema de archivos ZFS de Sun y al sistema operativo Solaris . En noviembre de 2008, Braam dejó Sun Microsystems y Eric Barton y Andreas Dilger tomaron el control del proyecto. En 2010, Oracle Corporation, mediante la adquisición de Sun, comenzó a administrar y lanzar Lustre.
En diciembre de 2010, Oracle anunció que dejarían de desarrollar Lustre 2.x y colocarían a Lustre 1.8 en soporte de solo mantenimiento, creando incertidumbre sobre el desarrollo futuro del sistema de archivos. Tras este anuncio, surgieron varias organizaciones nuevas para brindar apoyo y desarrollo en un modelo de desarrollo comunitario abierto, como Whamcloud, Open Scalable File Systems, Inc. (OpenSFS) , EUROPEAN Open File Systems (EOFS) y otros. A finales de 2010, la mayoría de los desarrolladores de Lustre habían dejado Oracle. Braam y varios asociados se unieron al Xyratex orientado al hardware cuando adquirió los activos de ClusterStor, mientras que Barton, Dilger y otros formaron el inicio de software Whamcloud , donde continuaron trabajando en Lustre.
En agosto de 2011, OpenSFS otorgó un contrato para el desarrollo de características de Lustre a Whamcloud. Este contrato cubría la finalización de funciones, incluida la mejora del escalado del rendimiento de metadatos de servidor único, que permite a Lustre aprovechar mejor el servidor de metadatos de muchos núcleos; la verificación del sistema de archivos distribuido Lustre en línea (LFSCK), que permite la verificación del estado del sistema de archivos distribuido entre los servidores de datos y metadatos mientras el sistema de archivos está montado y en uso; y Distributed Namespace Environment (DNE), anteriormente Clustered Metadata (CMD), que permite que los metadatos de Lustre se distribuyan entre varios servidores. El desarrollo también continuó en el almacenamiento de objetos back-end basado en ZFS en el Laboratorio Nacional Lawrence Livermore . Estas características estaban en la hoja de ruta de lanzamiento de la comunidad de Lustre 2.2 a 2.4. En noviembre de 2011, se otorgó un contrato por separado a Whamcloud para el mantenimiento del código fuente de Lustre 2.x para garantizar que el código de Lustre recibiría suficientes pruebas y corrección de errores mientras se desarrollaban nuevas funciones.
En julio de 2012, Whamcloud fue adquirida por Intel , después de que Whamcloud ganara el contrato FastForward DOE para preparar Lustre para su uso con sistemas informáticos de exaescala en el plazo de 2018. OpenSFS luego transfirió los contratos para el desarrollo de Lustre a Intel.
En febrero de 2013, Xyratex Ltd. anunció que adquirió la marca comercial, el logotipo, el sitio web y la propiedad intelectual asociada originales de Lustre de Oracle. En junio de 2013, Intel comenzó a expandir el uso de Lustre más allá de la HPC tradicional, como dentro de Hadoop . Para 2013 en su totalidad, OpenSFS anunció una solicitud de propuestas (RFP) para cubrir el desarrollo de características de Lustre, las herramientas del sistema de archivos paralelos, abordar la deuda técnica de Lustre y las incubadoras de sistemas de archivos paralelos. OpenSFStambién estableció el Portal de la comunidad de Lustre, un sitio técnico que proporciona una colección de información y documentación en un área para referencia y orientación para apoyar a la comunidad de código abierto de Lustre. El 8 de abril de 2014, Ken Claffey anunció que Xyratex/Seagate estaba donando el dominio lustre.org a la comunidad de usuarios, y esto se completó en marzo de 2015.
En junio de 2018, DDN adquirió el equipo y los activos de Lustre de Intel . DDN organizó la nueva adquisición como una división independiente, reviviendo el nombre Whamcloud para la nueva división.
En noviembre de 2019, OpenSFS y EOFS anunciaron en el SC19 Lustre BOF que la marca comercial Lustre les había sido transferida conjuntamente desde Seagate .

## Conexión de redes

La comunicación entre los clientes y servidores de Lustre se implementa mediante Lustre Networking (LNet), que originalmente se basaba en Portals de Sandia, una interfaz de programación de aplicaciones de programación de red. El almacenamiento en disco está conectado a los nodos de servidor Lustre MDS y OSS mediante almacenamiento conectado directo (SAS, FC, iSCSI) o tecnologías de la red de área de almacenamiento tradicional (SAN), que es independiente de la red de cliente a servidor.
LNet puede usar muchos tipos de redes de uso común, como las redes InfiniBand y TCP (comúnmente Ethernet), y permite la disponibilidad simultánea en múltiples tipos de redes con enrutamiento entre ellas. El acceso directo a memoria remota (RDMA) se utiliza para la transferencia de datos y metadatos entre nodos cuando lo proporcionan las redes subyacentes, como InfiniBand, RoCE, IWARP y Omni-Path, así como redes de alta velocidad patentadas, como Cray Aries y Gemini. y Atos BXI. Las funciones de alta disponibilidad y recuperación permiten una recuperación transparente junto con servidores de conmutación por error.
Desde Lustre 2.10, la función LNet Multi-Rail (MR) permite la agregación de enlaces de dos o más interfaces de red entre un cliente y un servidor para mejorar el ancho de banda. No es necesario que los tipos de interfaz LNet sean del mismo tipo de red. En 2.12, Multi-Rail se mejoró para mejorar la tolerancia a fallas si hay múltiples interfaces de red disponibles entre pares.
LNet proporciona un rendimiento de extremo a extremo a través de redes Gigabit Ethernet de más de 100 MB/s, un rendimiento de hasta 11 GB/s con enlaces InfiniBand de velocidad de datos mejorada (EDR) y un rendimiento de más de 11 GB/s a través de interfaces de 100 Gigabit Ethernet.

## Alta disponibilidad

Las funciones de alta disponibilidad del sistema de archivos de Lustre incluyen un sólido mecanismo de conmutación por error y recuperación, lo que hace que las fallas y los reinicios del servidor sean transparentes. La interoperabilidad de versiones entre versiones secundarias sucesivas del software Lustre permite actualizar un servidor desconectándolo (o cambiándolo a un servidor en espera), realizando la actualización y reiniciándolo, mientras todos los trabajos activos continúan ejecutándose, experimentando un retraso mientras que el servidor de respaldo se hace cargo del almacenamiento.
Los MDS de Lustre se configuran como un par activo/pasivo que exporta un solo MDT, o uno o más pares de MDS activo/activo con DNE que exporta dos o más MDT separados, mientras que los OSS se implementan normalmente en una configuración activo/activo que exporta OST separados para proporcionar redundancia sin sobrecarga adicional del sistema. En los sistemas de archivos de un solo MDT, el MDS en espera para un sistema de archivos es el MGS y/o el nodo de supervisión, o el MDS activo para otro sistema de archivos, por lo que no hay nodos inactivos en el clúster.

## Utilización

El software del sistema de archivos Lustre proporciona sistemas de archivos de alto rendimiento para grupos de computadoras que varían en tamaño, desde grupos de grupos de trabajo pequeños hasta sistemas de sitios múltiples a gran escala. Desde junio de 2005.
Este sistema considera a cada archivo almacenado en el sistema de archivos Lustre un objeto. Lustre presenta a todos los clientes una semántica POSIX estándar y acceso concurrente lectura y escritura para los objetos compartidos. Un sistema de archivos Lustre tiene cuatro unidades funcionales.
Estas son Meta data server (MDS) para almacenar los metadatos; un Object storage target (OST) para guardar los datos reales; un Object storage server (OSS) para manejar los OSTs; cliente(s) para acceder y utilizar los datos.
Los OSTs son dispositivos de bloques. Un MDS, OSS, y un OST pueden residir en el mismo nodo o en nodos diferentes.
Con esto, industrias como Oracle, Google y Amazon almacenan sus datos. Por ejemplo, Oracle tiene Oracle Cloud Region, Google con Google Cloud con DDN EXAScaner y Amazon usando Amazon FSx for Lustre.
Este sistema considera a cada archivo almacenado en el sistema de archivos Lustre un objeto. Lustre presenta a todos los clientes una semántica POSIX estándar y acceso concurrente lectura y escritura para los objetos compartidos.