Lustre (Sistema de archivos de red)

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 11 de julio de 2019; las comprobaciones requieren 10 ediciones .
Lustre
Tipo de sistema de archivos distribuido y software libre y de código abierto
Autor Pedro Braam [d]
Desarrollador Redes DataDirect [d]
Escrito en C [1]
Sistema operativo núcleo de linux
Primera edición 16 de diciembre de 2003
ultima versión
Licencia GNU GPL 2
Sitio web lustre.org

Lustre  es un sistema de archivos distribuido masivamente en paralelo comúnmente utilizado para la computación en clúster a gran escala . El nombre Lustre es un acrónimo de las palabras L inux y cluster [ 3] . Lanzado bajo la GPL de GNU , el proyecto proporciona un sistema de archivos de alto rendimiento para clústeres con decenas de miles de nodos de red y petabytes de almacenamiento de información.

Los sistemas de archivos Lustre se utilizan en clústeres de computadoras que van desde pequeños clústeres de grupos de trabajo hasta grandes clústeres dispersos geográficamente. Quince de las supercomputadoras "Top 30" del mundo utilizan sistemas de archivos Lustre, incluida la supercomputadora más rápida del mundo, la computadora K [4] .

Los sistemas de archivos Lustre pueden admitir decenas de miles de sistemas cliente , decenas de petabytes (PB) de almacenamiento y cientos de gigabytes por segundo (GB/s) de rendimiento de E/S. Debido a la alta escalabilidad de Lustre, las áreas comerciales como los ISP, las instituciones financieras y la industria del petróleo y el gas están instalando sistemas de archivos de Lustre en sus centros de datos [5] .

Historia

La arquitectura del sistema de archivos Lustre fue desarrollada como parte de un proyecto de investigación en 1999 por Peter Braam, investigador principal de la Universidad Carnegie Mellon . Braam se fue para iniciar su propia empresa, Cluster File Systems , que lanzó Lustre 1.0 en 2003. En 2007, Sun Microsystems adquirió Cluster File Systems [6] [7] e incluyó Lustre en su paquete de software de sistemas de gama alta, con la intención de aprovechar la tecnología de Lustre en el sistema de archivos ZFS de Sun y el sistema operativo Solaris . En noviembre de 2008, Braam dejó Sun Microsystems para trabajar en otro sistema de archivos, dejando el diseño de la arquitectura Lustre a Eric Barton y Andreas Dilger .

En 2010, Oracle adquirió Sun y se hizo cargo del negocio de soporte y desarrollo de Lustre. En abril de 2010, Oracle anunció su intención de limitar el soporte pago para el nuevo Lustre 2.0 para que solo esté disponible en el hardware de Oracle o en el hardware desarrollado por proveedores aprobados por Oracle. Al mismo tiempo, Lustre permaneció disponible para todos los usuarios bajo la licencia GPL y los clientes existentes de Lustre 1.8 continuaron recibiendo soporte técnico de Oracle [8] .

En diciembre de 2010, Oracle anunció que dejaría de desarrollar Lustre. El lanzamiento de Lustre 1.8 se movió al servicio de solo mantenimiento [9] , lo que generó incertidumbre sobre el desarrollo futuro del sistema de archivos. Según este anuncio, las nuevas versiones de Lustre son desarrolladas y respaldadas por una comunidad de desarrolladores que incluye Whamcloud [10] , Xyratex [11] , OpenSFS, European Open Filesystems (OFS) SCE y otros. Ese mismo año, Eric Barton y Andreas Dilger dejaron Oracle para fundar Whamcloud , una startup enfocada en el desarrollo de Lustre [12] .

En julio de 2012, Whamcloud fue adquirida por Intel [13] [14] . Esto sucedió después de que Whamcloud ganó un contrato para el Departamento de Energía de EE. UU. para expandir Lustre como parte de la primera fase de un proyecto de computación exaflop llamado FastForward hasta 2018 [15] . Después de eso, OpenSFS transfirió todos los contratos para el desarrollo de Lustre a Intel.

Historial de lanzamientos

El sistema de archivos Lustre se instaló por primera vez para su uso en producción en marzo de 2003 en MCR Linux Cluster en LLNL [16] , una de las supercomputadoras más potentes de la época [17] .

Lustre 1.2.0, lanzado en marzo de 2004, admitía el kernel de Linux 2.6, la función de "vistazo de tamaño" para evitar la revocación de bloqueo en archivos grabables y la contabilidad de caché de reescritura de datos del lado del cliente.

Lustre 1.4.0, lanzado en noviembre de 2004, proporcionó compatibilidad de protocolo entre versiones, soporte para redes InfiniBand y soporte para extensiones y mballoc en el sistema de archivos de disco ldiskfs .

Lustre 1.6.0, lanzado en abril de 2007, configuración de montaje compatible ("mountconf"), que permite configurar servidores con "mkfs" y "mount", adición dinámica admitida de objetivos de almacenamiento de objetos (OST), incluido un bloqueo distribuido de administrador escalable manager Lustre (Gestor de bloqueo distribuido de Lustre - LDLM) para multiprocesadores simétricos (SMP), y también admitió la gestión del espacio libre al distribuir objetos.

Lustre 1.8.0, lanzado en mayo de 2009, proporcionó OSS Read Cache, mejoró la recuperación de fallas múltiples, agregó administración básica de almacenamiento heterogéneo a través de OST Pools, tiempos de espera de red adaptativos y recuperación basada en versiones. También fue una versión de transición, proporcionando interoperabilidad tanto con Lustre 1.6 como con Lustre 2.0 [18] .

Lustre 2.0.0, lanzado en agosto de 2010, contenía una pila de servidor de metadatos reescrita que organizaba la base de metadatos agrupados (Metadatos agrupados - CMD), lo que hizo posible distribuir metadatos de Lustre en varios servidores de metadatos, una nueva pila de E/S de cliente (Client IO stack - CLIO) para la portabilidad con otros sistemas operativos de clientes, como Mac OS , Microsoft Windows , Solaris , así como un dispositivo de almacenamiento de objetos abstractos (Object Storage Device - OSD) para la portabilidad con otros sistemas de archivos, como ZFS .

Muchas organizaciones han adoptado el sistema de archivos Lustre y su software de código abierto asociado. Por ejemplo, tanto Red Hat como SUSE ( Novell ) ofrecen kernels de Linux que se ejecutan en clientes sin complementos, lo que facilita la implementación.

Arquitectura

El sistema de archivos Lustre contiene tres módulos funcionales principales:

Los componentes de MDT, OST y clientes pueden residir en el mismo nodo, pero cuando se instalan, generalmente se colocan en nodos separados que se comunican a través de la red. La capa Lustre Network (LNET) admite múltiples plataformas de comunicación, incluidas Infiniband , TCP/IP sobre Ethernet y otras redes, Myrinet , Quadrics y tecnologías de red patentadas. Lustre también aprovecha el DMA remoto , siempre que sea posible, para aumentar el rendimiento y reducir el uso de la CPU.

El almacenamiento utilizado para los sistemas de archivos MDT y OST duplicados se subdivide y se puede organizar a través de un volumen lógico y/o gestión de RAID , normalmente formateado en el sistema de archivos ext4 . Los servidores Lustre OSS y MDS leen, escriben y modifican datos en el formato introducido por estos sistemas de archivos.

OST es un sistema de archivos dedicado que exporta una interfaz a regiones de bytes de objetos para operaciones de lectura/escritura. MDT es un sistema de archivos dedicado para controlar el acceso a los archivos y decirle a los clientes qué objeto(s) son parte de la estructura del archivo. MDT y OST actualmente usan una versión mejorada de ext4 llamada ldiskfs para el almacenamiento de datos . En 2008, Sun inició un proyecto para portar Lustre a Sun ZFS /DMU para almacenamiento interno [19] , continuando como un proyecto de código abierto [20] .

Cuando un cliente accede a un archivo, el nombre del archivo se busca en la MDS. Como resultado, el archivo se crea en nombre del cliente o la ubicación del archivo existente se devuelve al cliente. En las operaciones de lectura o escritura, el cliente interpreta la ubicación del volumen lógico del objeto , que asigna el desplazamiento y el tamaño a uno o más objetos, cada uno ubicado en un OST independiente. Luego, el cliente bloquea una variedad de archivos para trabajar y realiza una o más lecturas o escrituras paralelas directamente en el OST. Este enfoque elimina el cuello de botella de la interacción del cliente con el OST, de modo que el ancho de banda total disponible para el cliente para lectura y escritura escala casi linealmente con la cantidad de OST en el sistema de archivos.

Los clientes no modifican los objetos del sistema de archivos OST directamente, delegando esta tarea a OSS. Este enfoque proporciona escalabilidad para clústeres y supercomputadoras a gran escala, y mejora la seguridad y la confiabilidad. Por el contrario, los sistemas de archivos compartidos en bloque, como Global File System y OCFS , deben admitir el acceso directo al almacenamiento para todos los clientes en el sistema de archivos, lo que aumenta el riesgo de que los clientes incorrectos dañen el sistema de archivos.

Implementación

Durante una instalación típica de Lustre en un cliente Linux, el módulo del controlador del sistema de archivos de Lustre se carga en el kernel y el sistema de archivos se monta como cualquier otro sistema de archivos local o de red. Las aplicaciones cliente ven un sistema de archivos unificado, aunque puede estar compuesto por decenas de miles de servidores individuales y sistemas de archivos MDT/OST.

En algunos procesadores paralelos masivos (MPP), los procesadores informáticos pueden acceder al sistema de archivos de Lustre redirigiendo sus solicitudes de E/S a un nodo de E/S dedicado configurado como un cliente de Lustre. Este enfoque se utiliza en Blue Gene [21] instalado en el Laboratorio Nacional de Livermore .

Otro enfoque reciente es la biblioteca liblustre , que proporciona aplicaciones de espacio de usuario con acceso directo al sistema de archivos. Esta es una biblioteca a nivel de usuario que permite que los procesadores de cómputo del cliente monten y usen el sistema de archivos Lustre. Con liblustre, los procesadores informáticos pueden acceder al sistema de archivos de Lustre incluso si el nodo del servidor que inició el trabajo no es un cliente de Lustre. La biblioteca liblustre permite que los datos se muevan directamente entre el espacio de la aplicación y el OSS de Lustre sin necesidad de una copia intermedia de los datos a través del kernel, lo que permite a los procesadores acceder al sistema de archivos de Lustre con baja latencia y alto rendimiento.

Objetos de datos e intercambio de datos

En los sistemas de archivos de disco UNIX tradicionales, la estructura de datos de inodo contiene información básica sobre cada archivo, como dónde se almacenan los datos contenidos en el archivo. El sistema de archivos Lustre también usa inodos, pero un inodo MDT apunta a uno o más objetos OST asociados con un archivo, no a bloques de datos. Estos objetos se implementan como archivos OST. Cuando un cliente abre un archivo, la operación de apertura pasa un conjunto de punteros de objeto y su ubicación desde el MDS al cliente, después de lo cual el cliente puede interactuar directamente con el host OSS que contiene el objeto, lo que permite que el cliente realice E/S para el archivo sin más interacción con el MDS.

Si solo hay un objeto OST asociado con el inodo MDT, ese objeto contiene todos los datos en el archivo Lustre. Si hay más de un objeto asociado con un archivo, los datos del archivo se "dividen" entre los objetos, de forma similar a RAID 0 . Dividir un archivo en varios objetos proporciona importantes beneficios de rendimiento. Cuando se utiliza la división, el tamaño máximo de archivo no se limita al tamaño de un solo destino. La capacidad y el ancho de banda de E/S total se escalan con la cantidad de OST en los que se divide el archivo. Además, dado que el bloqueo de cada objeto para cada OST se gestiona de forma independiente, la adición de partes (OST) escala las capacidades de bloqueo de E/S al archivo de forma proporcional. Cada archivo en el sistema de archivos puede tener una ubicación dividida diferente, de modo que la capacidad y el rendimiento se puedan ajustar de manera óptima para cada archivo.

Bloqueo

Lustre utiliza un administrador de bloqueo distribuido estilo VMS para proteger la integridad de los datos y los metadatos de cada archivo. El acceso y la modificación del archivo Lustre es totalmente coherente en todos los clientes. Los bloqueos de metadatos son administrados por el MDT que almacena el inodo del archivo utilizando un identificador de archivo Lustre de 128 bits (FID que consta de un número de secuencia y un identificador de objeto) utilizado como nombre de recurso. Los bloqueos de metadatos se dividen en varias partes que protegen el proceso de descubrimiento de archivos (propietario y grupo del archivo, permisos y modo, así como ACL , estado de inodo (tamaño del directorio, contenido del directorio, recuento de enlaces, marcas de tiempo) y ubicación (división de archivos). puede adquirir múltiples partes de un bloqueo de metadatos en un solo inodo con una sola solicitud RPC, pero actualmente solo se otorgan bloqueos de lectura de inodo MDS administra todas las modificaciones de inodo para evitar la contención de recursos y actualmente solo un nodo puede adquirir bloqueos de escritura de inodo.

Los bloqueos de datos del archivo son administrados por el OST en el que se particiona cada objeto de archivo, utilizando bloqueos de extensión de bytes. Los clientes pueden adquirir bloqueos de lectura de extensiones superpuestas en parte o en todo un archivo, lo que permite varios lectores simultáneos en el mismo archivo y bloqueos de escritura de extensiones no superpuestas en regiones de un archivo. Esto permite que muchos clientes de Lustre tengan acceso simultáneo de lectura/escritura al archivo, evitando problemas de E/S de archivos. En la práctica, los clientes de Linux administran su caché de datos en unidades de páginas , por lo que solicitarán bloqueos que siempre son un múltiplo entero del tamaño de la página (4096 bytes en la mayoría de los clientes). Cuando un cliente solicita un bloqueo de extensión, el OST puede otorgar un bloqueo mayor para reducir la cantidad de solicitudes de bloqueo realizadas por el cliente. El tamaño real de un bloqueo otorgado depende de varios factores, incluida la cantidad de bloqueos ya adquiridos, la presencia de bloqueos de escritura en conflicto y la cantidad de solicitudes de bloqueo. El bloqueo establecido nunca será inferior a la medida solicitada. Los bloqueos de extensión de OST usan Lustre FID como el nombre del recurso para bloquear. Dado que la cantidad de servidores de bloqueo de extensión crece con la cantidad de OST en el sistema de archivos, esto también aumenta el sistema de archivos combinado y el rendimiento del bloqueo de un solo archivo si se divide en varios OST.

Redes

En un clúster con un sistema de archivos Lustre, la red del sistema que conecta servidores y clientes se implementa a través de Lustre Networking (LNET), que proporciona la infraestructura de comunicación requerida por el sistema de archivos Lustre. El almacenamiento en disco se conecta a MDS y OSS con tecnología SAN tradicional .

LNET admite muchos tipos de redes conocidas, como InfiniBand e IP, lo que permite el acceso simultáneo a redes de diferentes tipos con enrutamiento entre ellas. Remote DMA está habilitado cuando es compatible con su red subyacente, como Quadrics Elan, Myrinet e InfiniBand. Las capacidades de alta disponibilidad y recuperación permiten una recuperación transparente cuando se utilizan servidores de conmutación por error.

LNET proporciona ancho de banda sobre Ethernet (GigE) de más de 100 MB/s [22] , un rendimiento de hasta 3 GB/s a través de enlaces InfiniBand QDR, un rendimiento de más de 1 GB/s a través de interfaces de 10 GigE.

Alta disponibilidad

La alta disponibilidad del sistema de archivos Lustre incluye un sólido mecanismo de conmutación por error y recuperación que reinicia los servidores de manera transparente en caso de falla. La interoperabilidad de versiones entre versiones menores del software Lustre le permite actualizar el servidor apagándolo (o cambiando a un servidor en espera), actualizar y reiniciar el servidor, con todos los trabajos activos continuando ejecutándose, solo detectando un retraso cuando se transfiere el almacenamiento al servidor en espera.

Los MDS de Lustre están configurados como un par activo/pasivo, mientras que los OSS generalmente se implementan en una configuración activa/activa, lo que brinda confiabilidad sin una sobrecarga significativa. A menudo, el MDS en espera es el MDS activo para otro sistema de archivos Lustre, por lo que no hay nodos inactivos en el clúster.

Instalaciones

Lustre se utiliza en muchas supercomputadoras TOP500 y grandes clústeres . Quince de las 30 supercomputadoras más potentes del mundo utilizan el sistema de archivos Lustre, incluida la supercomputadora K más rápida del mundo en RIKEN [4] y la segunda supercomputadora más rápida (la más poderosa desde noviembre de 2010 hasta junio de 2011), Tianhe-1 en el Centro Nacional de Supercomputación en Tianjin (República Popular China). Otras supercomputadoras que utilizan el sistema de archivos Lustre son la tercera Jaguar más grande en el Laboratorio Nacional Oak Ridge (ORNL) y los sistemas del Centro Nacional de Computación Científica de Investigación Energética ubicados en el Laboratorio Nacional Lawrence Berkeley (LBNL), el Laboratorio Nacional Lawrence Livermore (LLNL), el Laboratorio Nacional del Noroeste del Pacífico Laboratory , Texas Advanced Computing Center y NASA [23] en América del Norte, Tokyo Institute of Technology [24] en Asia, y uno de los sistemas más grandes de Europa - CEA [25] .

Soporte comercial

El soporte comercial para Lustre lo proporciona una amplia gama de proveedores. En la mayoría de los casos, se brinda soporte para el sistema informático o el hardware de almacenamiento vendido por el fabricante. Una lista parcial de proveedores que venden computación y almacenamiento con Lustre incluye a Cray , Dell , Hewlett-Packard , BULL , SGI y otros. Sun Microsystems ya no envía sistemas que contengan Lustre. Los principales proveedores que venden hardware de almacenamiento compatible con Lustre son Data Direct Networks (DDN), Dell , Terascala, Xyratex y otros.

La plataforma de Amazon Web Services ofrece Amazon FSx for Lustre, un servicio completamente administrado para procesar Amazon S3 y datos nativos (locales).

Notas

  1. The lustre Open Source Project en Open Hub: Página de idiomas - 2006.
  2. https://www.mail-archive.com/[email protected]/msg00221.html
  3. Lustre Home (enlace descendente) . Archivado desde el original el 23 de agosto de 2000. 
  4. 1 2 Una descripción general del sistema de archivos basado en Lustre de Fujitsu (enlace no disponible) . Fujitsu limitada. Consultado el 24 de junio de 2011. Archivado desde el original el 3 de marzo de 2012. 
  5. Presentación de Lustre File System (enlace no disponible) . Video de Google. Fecha de acceso: 28 de enero de 2008. Archivado desde el original el 3 de marzo de 2012. 
  6. Sun Assimilates Lustre Filesystem (enlace descendente) . Revista Linux (13 de septiembre de 2007). Archivado desde el original el 3 de marzo de 2012. 
  7. Sun da la bienvenida a los clientes y socios de Cluster File Systems (enlace no disponible) . Sun Microsystems Inc. (2 de octubre de 2007). Archivado desde el original el 3 de marzo de 2012. 
  8. Compatibilidad con Lustre 2.0 limitada a clientes de hardware de Oracle (enlace no disponible) . Infostor (28 de abril de 2010). Archivado desde el original el 3 de marzo de 2012. 
  9. Oracle ha pateado a Lustre a la acera (enlace descendente) . Dentro de HPC (10 de enero de 2011). Archivado desde el original el 3 de marzo de 2012. 
  10. Whamcloud tiene como objetivo asegurarse de que Luster tenga futuro en HPC (enlace descendente) . Dentro de HPC (20 de agosto de 2010). Archivado desde el original el 3 de marzo de 2012. 
  11. Xyratex adquiere ClusterStor, Lustre File System Expertise/ (enlace no disponible) . HPCwire (9 de noviembre de 2010). Archivado desde el original el 3 de marzo de 2012. 
  12. Whamcloud se prepara para Brighter Lustre (enlace no disponible) . Dentro de HPC. Archivado desde el original el 3 de marzo de 2012. 
  13. Joab Jackson. Intel compra Luster Purveyor Whamcloud . PC World (16 de julio de 2012). Consultado el 7 de enero de 2015. Archivado desde el original el 6 de mayo de 2017.
  14. Timothy Prickett Morgan. Intel engulle al experto en sistemas de archivos Lustre Whamcloud . El Registro (16 de julio de 2012). Consultado el 29 de septiembre de 2017. Archivado desde el original el 8 de julio de 2017.
  15. Timothy Prickett Morgan. DOE reparte dinero en efectivo a AMD, Whamcloud para la investigación de exaescala . El Registro (11 de julio de 2012). Consultado el 29 de septiembre de 2017. Archivado desde el original el 19 de agosto de 2016.
  16. Lustre ayuda a impulsar la tercera supercomputadora más rápida . dsstar. Archivado desde el original el 3 de febrero de 2013.
  17. MCR Linux Cluster Xeon 2.4 GHz - Quadrics (enlace no disponible) . Top500.Org. Archivado desde el original el 3 de marzo de 2012. 
  18. Hoja de ruta y planes futuros de Lustre (enlace no disponible) . Microsistemas Sun. Consultado el 21 de agosto de 2008. Archivado desde el original el 18 de mayo de 2011. 
  19. Lustre para ejecutarse en ZFS (enlace descendente) . Government Computer News (26 de octubre de 2008). Archivado desde el original el 3 de marzo de 2012. 
  20. ZFS on Lustre (enlace descendente) (10 de mayo de 2011). Archivado desde el original el 12 de marzo de 2016. 
  21. DataDirect seleccionado como tecnología de almacenamiento que alimenta a BlueGene/L (enlace no disponible) . HPC Wire , 15 de octubre de 2004: vol. 13, núm. 41. Archivado desde el original el 3 de diciembre de 2007. 
  22. Lafoucrière, Jacques-Charles. Lustre Experience en CEA/DIF (enlace no disponible) . HEPiX Forum, abril de 2007. Archivado desde el original el 3 de marzo de 2012. 
  23. Supercomputadora Pléyades (enlace no disponible) . www.nas.nasa.gov (18 de agosto de 2008). Archivado desde el original el 3 de marzo de 2012. 
  24. Lista TOP500 - noviembre de 2006 (enlace no disponible) . TOP500.Org. Archivado desde el original el 3 de marzo de 2012. 
  25. Lista TOP500 - Junio ​​de 2006 (enlace no disponible) . TOP500.Org. Archivado desde el original el 3 de marzo de 2012. 

Enlaces