Articulo de referencia

Sistema de archivos en clúster

Un sistema de archivos en clúster ( CFS ) es un sistema de archivos compartido que se monta simultáneamente en varios servidores . Existen diversos enfoques para la agrupación e...

Un sistema de archivos en clúster ( CFS ) es un sistema de archivos compartido que se monta simultáneamente en varios servidores . Existen diversos enfoques para la agrupación en clústeres , la mayoría de los cuales no emplean un sistema de archivos en clúster (solo almacenamiento de conexión directa para cada nodo). Los sistemas de archivos en clúster pueden proporcionar características como direccionamiento independiente de la ubicación y redundancia, que mejoran la fiabilidad o reducen la complejidad de las demás partes del clúster. Los sistemas de archivos paralelos son un tipo de sistema de archivos en clúster que distribuye los datos entre varios nodos de almacenamiento, generalmente para mejorar la redundancia o el rendimiento. [ 1 ]

Sistema de archivos de disco compartido

Un sistema de archivos de disco compartido utiliza una red de área de almacenamiento (SAN) para permitir que múltiples computadoras accedan directamente al disco a nivel de bloque . El control de acceso y la traducción de las operaciones a nivel de archivo que utilizan las aplicaciones a las operaciones a nivel de bloque que utiliza la SAN deben realizarse en el nodo cliente. El tipo más común de sistema de archivos en clúster, el sistema de archivos de disco compartido , al agregar mecanismos de control de concurrencia , proporciona una vista consistente y serializable del sistema de archivos, evitando la corrupción y la pérdida involuntaria de datos incluso cuando varios clientes intentan acceder a los mismos archivos al mismo tiempo. Los sistemas de archivos de disco compartido suelen emplear algún tipo de mecanismo de aislamiento para prevenir la corrupción de datos en caso de fallas de nodos, ya que un dispositivo sin aislamiento puede causar corrupción de datos si pierde la comunicación con sus nodos hermanos e intenta acceder a la misma información a la que están accediendo otros nodos.  

La red de área de almacenamiento subyacente puede utilizar cualquiera de varios protocolos a nivel de bloque, incluidos SCSI , iSCSI , HyperSCSI , ATA over Ethernet (AoE), Fibre Channel , dispositivo de bloque de red e InfiniBand .

Existen diferentes enfoques arquitectónicos para un sistema de archivos de disco compartido. Algunos distribuyen la información de los archivos entre todos los servidores de un clúster (distribución completa). [ 2 ]

Ejemplos

Sistemas de archivos distribuidos

Los sistemas de archivos distribuidos no comparten el acceso a nivel de bloque al mismo almacenamiento, sino que utilizan un protocolo de red . [ 3 ] [ 4 ] Estos se conocen comúnmente como sistemas de archivos de red, aunque no son los únicos sistemas de archivos que utilizan la red para enviar datos. [ 5 ] Los sistemas de archivos distribuidos pueden restringir el acceso al sistema de archivos en función de las listas de acceso o las capacidades tanto de los servidores como de los clientes, según cómo esté diseñado el protocolo.

La diferencia entre un sistema de archivos distribuido y un almacén de datos distribuido radica en que un sistema de archivos distribuido permite acceder a los archivos utilizando las mismas interfaces y semántica que los archivos locales ; por ejemplo, montar/desmontar, listar directorios, leer/escribir en límites de bytes y el modelo de permisos nativo del sistema. Los almacenes de datos distribuidos, por el contrario, requieren el uso de una API o biblioteca diferente y tienen una semántica distinta (generalmente la de una base de datos). [ 6 ] 

Objetivos de diseño

Los sistemas de archivos distribuidos buscan la "transparencia" en varios aspectos. Es decir, pretenden ser "invisibles" para los programas cliente, que "ven" un sistema similar a un sistema de archivos local. Internamente, el sistema de archivos distribuido se encarga de localizar archivos, transportar datos y, potencialmente, proporcionar otras funcionalidades que se enumeran a continuación.

  • Transparencia de acceso : los clientes desconocen que los archivos se distribuyen y pueden acceder a ellos de la misma manera que acceden a los archivos locales.
  • Transparencia de ubicación : existe un espacio de nombres consistente que abarca tanto archivos locales como remotos. El nombre de un archivo no revela su ubicación.
  • Transparencia de concurrencia : todos los clientes tienen la misma vista del estado del sistema de archivos. Esto significa que si un proceso está modificando un archivo, cualquier otro proceso en el mismo sistema o en sistemas remotos que accedan a los archivos verán las modificaciones de forma coherente.
  • Transparencia ante fallos : el cliente y los programas cliente deben funcionar correctamente después de un fallo del servidor.
  • Heterogeneidad : el servicio de archivos debe proporcionarse en diferentes plataformas de hardware y sistemas operativos.
  • Escalabilidad : el sistema de archivos debe funcionar bien en entornos pequeños (1 máquina, una docena de máquinas) y también escalar sin problemas a entornos más grandes (cientos o decenas de miles de sistemas).
  • Transparencia en la replicación : Los clientes no deberían tener que ser conscientes de la replicación de archivos que se realiza entre varios servidores para admitir la escalabilidad.
  • Transparencia en la migración : los archivos deben poder moverse entre diferentes servidores sin que el cliente lo sepa.

Historia

El Sistema de Tiempo Compartido Incompatible (ITS) utilizaba dispositivos virtuales para el acceso transparente al sistema de archivos entre máquinas en la década de 1960. En la década de 1970 se desarrollaron más servidores de archivos. En 1976, Digital Equipment Corporation creó el File Access Listener (FAL), una implementación del Protocolo de Acceso a Datos (DAP) como parte de DECnet Fase II, que se convirtió en el primer sistema de archivos de red ampliamente utilizado. En 1984, Sun Microsystems creó el sistema de archivos llamado " Network File System " (NFS), que se convirtió en el primer sistema de archivos de red basado en el Protocolo de Internet ampliamente utilizado . [ 4 ] Otros sistemas de archivos de red notables son Andrew File System (AFS), Apple Filing Protocol (AFP), NetWare Core Protocol (NCP) y Server Message Block (SMB), también conocido como Common Internet File System (CIFS).

En 1986, IBM anunció la compatibilidad de cliente y servidor con la Arquitectura de Gestión de Datos Distribuidos (DDM) para los sistemas System/36 , System/38 y los mainframes de IBM que ejecutaban CICS . Posteriormente, se añadió la compatibilidad con IBM Personal Computer , AS/400 , los mainframes de IBM con los sistemas operativos MVS y VSE , y FlexOS . DDM también se convirtió en la base de la Arquitectura de Base de Datos Relacional Distribuida , también conocida como DRDA.

Existen muchos protocolos de red peer-to-peer para sistemas de archivos distribuidos de código abierto para la nube o sistemas de archivos en clúster de código cerrado, por ejemplo: 9P , AFS , Coda , CIFS/SMB , DCE/DFS , WekaFS, [ 7 ] Lustre , PanFS, [ 8 ] Google File System , Mnet , Chord Project .

Ejemplos

Almacenamiento conectado a la red

El almacenamiento conectado a la red (NAS) proporciona tanto almacenamiento como un sistema de archivos, como un sistema de archivos de disco compartido sobre una red de área de almacenamiento (SAN). El NAS normalmente utiliza protocolos basados ​​en archivos (a diferencia de los protocolos basados ​​en bloques que usaría una SAN) como NFS (popular en sistemas UNIX ), SMB/CIFS ( Server Message Block/Common Internet File System ) (utilizado con sistemas MS Windows), AFP (utilizado con ordenadores Apple Macintosh ) o NCP (utilizado con OES y Novell NetWare ).

Consideraciones de diseño

Evitar un único punto de fallo

El fallo del hardware de disco o de un nodo de almacenamiento en un clúster puede crear un punto único de fallo que provoque la pérdida o indisponibilidad de datos. La tolerancia a fallos y la alta disponibilidad se pueden lograr mediante la replicación de datos , de modo que los datos permanezcan intactos y disponibles a pesar del fallo de cualquier componente. Para ver ejemplos, consulte las listas de sistemas de archivos distribuidos tolerantes a fallos y sistemas de archivos distribuidos paralelos tolerantes a fallos .

Actuación

Una medida de rendimiento común en un sistema de archivos en clúster es el tiempo necesario para atender las solicitudes de servicio. En los sistemas convencionales, este tiempo se compone del tiempo de acceso al disco y un pequeño tiempo de procesamiento de la CPU . Sin embargo, en un sistema de archivos en clúster, el acceso remoto conlleva una sobrecarga adicional debido a su estructura distribuida. Esto incluye el tiempo de entrega de la solicitud al servidor, el tiempo de entrega de la respuesta al cliente y, en cada dirección, la sobrecarga de la CPU derivada de la ejecución del software del protocolo de comunicación .

Concurrencia

El control de concurrencia se convierte en un problema cuando más de una persona o cliente accede al mismo archivo o bloque y desea actualizarlo. Por lo tanto, las actualizaciones del archivo por parte de un cliente no deben interferir con el acceso y las actualizaciones de otros clientes. Este problema es más complejo en los sistemas de archivos debido a las escrituras superpuestas concurrentes, donde diferentes escritores escriben simultáneamente en regiones superpuestas del archivo. [ 9 ] Este problema generalmente se maneja mediante el control de concurrencia o el bloqueo , que puede estar integrado en el sistema de archivos o ser proporcionado por un protocolo adicional.

Historia

En la década de 1970, los mainframes de IBM podían compartir discos físicos y sistemas de archivos si cada máquina tenía su propia conexión de canal a las unidades de control de las unidades. En la década de 1980, los clústeres TOPS-20 y OpenVMS (VAX/ALPHA/IA64) de Digital Equipment Corporation incluían sistemas de archivos de disco compartidos. [ 10 ]

Véase también

Referencias

  1. Saify, Amina; Kochhar, Garima; Hsieh, Jenwei; Celebioglu, Onur (mayo de 2005). "Mejora de clústeres de computación de alto rendimiento con sistemas de archivos paralelos" (PDF) . Dell Power Solutions . Dell Inc. Consultado el 6 de marzo de 2019 .
  2. Mokadem, Riad; Litwin, Witold; Schwarz, Thomas (2006). "Copia de seguridad en disco mediante firmas algebraicas en estructuras de datos distribuidas escalables" (PDF) . DEXA 2006 Springer . Consultado el 8 de junio de 2006 .
  3. Silberschatz, Abraham; Galvin, Peter; Gagne, Greg (2009). "Conceptos de sistemas operativos, 8.ª edición" (PDF) . University of Babylon . John Wiley & Sons, Inc. págs. 705–725 . Archivado del original (PDF) el 6 de marzo de 2019. Recuperado el 4 de marzo de 2019 . 
  4. 1 2 Arpaci-Dusseau, Remzi H.; Arpaci-Dusseau, Andrea C. (2014), Sistema de archivos de red de Sun (PDF) , Libros de Arpaci-Dusseau
  5. Sandberg, Russel (1986). "El sistema de archivos de red Sun: diseño, implementación y experiencia" (PDF) . Actas de la Conferencia y Exposición Técnica USENIX de verano de 1986. Sun Microsystems, Inc. Recuperado el 6 de marzo de 2019. NFS fue diseñado para simplificar el uso compartido de recursos del sistema de archivos en una red de máquinas no homogéneas.
  6. Sobh, Tarek (2008). Avances en Ciencias e Ingeniería Informática y de la Información . Springer Science & Business Media. pp. 423– 440. Bibcode : 2008acis.book.....S . 
  7. "Sistemas de archivos distribuidos de Weka (DFS)" . weka.io. 27 de abril de 2021. Consultado el 12 de octubre de 2023 .
  8. "Sistema de archivos paralelos PanFS" . panasas.com . Consultado el 12 de octubre de 2023 .
  9. Pessach, Yaniv (2013). Almacenamiento distribuido: conceptos, algoritmos e implementaciones . ISBN 978-1482561043.
  10. Murphy, Dan (1996). "Orígenes y desarrollo de TOPS-20" . Dan Murphy. Planes ambiciosos para Júpiter . Consultado el 6 de marzo de 2019. Finalmente, tanto VMS como TOPS-20 incorporaron este tipo de capacidad.

Lecturas adicionales

  • Una taxonomía de sistemas de almacenamiento distribuido
  • Una taxonomía y un estudio sobre sistemas de archivos distribuidos
  • Un estudio sobre sistemas de archivos distribuidos
  • La evolución de los sistemas de archivos