De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

Un sistema de archivos en clúster es un sistema de archivos que se comparte al montarse simultáneamente en varios servidores . Existen varios 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 adjunto directo para cada nodo). Los sistemas de archivos agrupados pueden proporcionar características como el direccionamiento independiente de la ubicación y la redundancia que mejoran la confiabilidad o reducen la complejidad de las otras partes del clúster. Los sistemas de archivos paralelos son un tipo de sistema de archivos en clúster que distribuye datos a través de múltiples nodos de almacenamiento, generalmente por redundancia o rendimiento. [1]

Sistema de archivos de disco compartido [ editar ]

Un sistema de archivos de disco compartido utiliza una red de área de almacenamiento (SAN) para permitir que varias computadoras obtengan acceso directo 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 utilizadas por la SAN deben tener lugar en el nodo del cliente. El tipo más común de sistema de archivos en clúster, el sistema de archivos de disco compartido, al agregar mecanismos para el control de la concurrencia, brinda una vista consistente y serializable del sistema de archivos, evitando la corrupción y la pérdida de datos involuntaria incluso cuando varios clientes intentan acceder a los mismos archivos. al mismo tiempo. Los sistemas de archivos de disco compartido comúnmente emplean algún tipo de cercado mecanismo para evitar la corrupción de datos en caso de fallas en los nodos, porque un dispositivo sin valla 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 acceden otros nodos.

La red de área de almacenamiento subyacente puede utilizar cualquiera de varios protocolos de nivel de bloque, incluidos SCSI , iSCSI , HyperSCSI , ATA sobre 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 información de archivos en todos los servidores de un clúster (totalmente distribuidos). [2]

Ejemplos [ editar ]

  • Sistema de archivos agrupados de ballena azul (BWFS)
  • Sistema de archivos en clúster de Silicon Graphics (SGI) ( CXFS )
  • Sistema de archivos de clúster de Veritas
  • Volúmenes compartidos de clúster de Microsoft (CSV)
  • Sistema de archivos DataPlow Nasan
  • Sistema de archivos paralelo general de IBM (GPFS)
  • Sistema de archivos de clúster de Oracle (OCFS)
  • Sistema de archivos OpenVMS Files-11
  • Soluciones de almacenamiento PolyServe
  • Quantum StorNext File System (SNFS), ex ADIC, ex CentraVision File System (CVFS)
  • Sistema de archivos global de Red Hat (GFS2)
  • Sun QFS
  • Tecnologías TerraScale TerraFS
  • Veritas CFS (Cluster FS: Clustered VxFS)
  • Versity VSM (SAM-QFS portado a Linux), ScoutFS
  • VMware VMFS
  • WekaFS
  • Apple Xsan

Sistemas de archivos distribuidos [ editar ]

Los sistemas de archivos distribuidos no comparten el acceso a nivel de bloque al mismo almacenamiento, pero 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 según 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 distribuidos es que un sistema de archivos distribuido permite acceder a los archivos utilizando las mismas interfaces y semánticas que los archivos locales, por ejemplo, montar / desmontar, enumerar directorios, leer / escribir en los límites de bytes, modelo de permiso 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 diferente (la mayoría de las veces, las de una base de datos). [6]

Objetivos de diseño [ editar ]

Los sistemas de archivos distribuidos pueden apuntar a la "transparencia" en varios aspectos. Es decir, pretenden ser "invisibles" para los programas cliente, que "ven" un sistema que es similar a un sistema de archivos local. Detrás de escena, el sistema de archivos distribuido se encarga de localizar archivos, transportar datos y, potencialmente, proporcionar otras funciones 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 forma que se accede a los archivos locales.
  • Transparencia de ubicación : existe un espacio de nombres coherente que abarca tanto archivos locales como remotos. El nombre de un archivo no da su ubicación.
  • Transparencia de simultaneidad : todos los clientes tienen la misma visión del estado del sistema de archivos. Esto significa que si un proceso está modificando un archivo, cualquier otro proceso en el mismo sistema o sistemas remotos que estén accediendo a los archivos verán las modificaciones de manera coherente.
  • Transparencia de fallas : el cliente y los programas del cliente deben funcionar correctamente después de una falla del servidor.
  • Heterogeneidad : el servicio de archivos debe proporcionarse en diferentes plataformas de hardware y sistema operativo.
  • Escalabilidad : el sistema de archivos debería funcionar bien en entornos pequeños (1 máquina, una docena de máquinas) y también escalar con gracia a otros más grandes (cientos a decenas de miles de sistemas).
  • Transparencia de la replicación : los clientes deben desconocer la replicación de archivos realizada en varios servidores para admitir la escalabilidad.
  • Transparencia de la migración : los archivos deben poder moverse entre diferentes servidores sin el conocimiento del cliente.

Historia [ editar ]

El Incompatible Timesharing System utilizó 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ó File Access Listener (FAL), una implementación del Protocolo de acceso a datos como parte de DECnet Phase II, que se convirtió en el primer sistema de archivos de red ampliamente utilizado. En 1985, Sun Microsystems creó el sistema de archivos llamado " Sistema de archivos de red " (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ó el soporte de cliente y servidor para la Arquitectura de administración de datos distribuidos (DDM) para las computadoras centrales System / 36 , System / 38 e IBM que ejecutan CICS . A esto le siguió el soporte para IBM Personal Computer , AS / 400 , mainframe IBM bajo los sistemas operativos MVS y VSE , y FlexOS . DDM también se convirtió en la base de la arquitectura de bases de datos relacionales distribuidas , también conocida como DRDA.

Existen muchos protocolos de red peer-to-peer para sistemas de archivos distribuidos de código abierto para sistemas de archivos en clúster de código cerrado o en la nube , por ejemplo: 9P , AFS , Coda , CIFS / SMB , DCE / DFS , WekaFS , Lustre , PanFS , Google Sistema de archivos , Mnet , Proyecto de acordes .

Ejemplos [ editar ]

  • Alluxio
  • BeeGFS (Fraunhofer)
  • CephFS (Inktank, Red Hat, SUSE)
  • Sistema de archivos distribuido de Windows (DFS) (Microsoft)
  • Infinit (adquirido por Docker)
  • GfarmFS
  • GlusterFS (Red Hat)
  • GFS (Google Inc.)
  • HDFS (Apache Software Foundation)
  • IPFS
  • iRODS
  • JuiceFS (Juicedata)
  • LizardFS (tecnología del cielo)
  • Lustre
  • MapR FS
  • MooseFS (Tecnología central / Gemius)
  • ObjetivoFS
  • OneFS (EMC Isilon)
  • OrangeFS (Clemson University, Omnibond Systems), anteriormente Parallel Virtual File System
  • PanFS (Panasas)
  • Sistema de archivos virtual paralelo (Universidad de Clemson, Laboratorio Nacional de Argonne, Centro de supercomputación de Ohio)
  • RozoFS (Rozo Systems)
  • Torus (CoreOS)
  • WekaFS (WekaIO)
  • XtreemFS

Almacenamiento conectado a la red [ editar ]

El almacenamiento conectado a la red (NAS) proporciona almacenamiento y un sistema de archivos, como un sistema de archivos de disco compartido en la parte superior de una red de área de almacenamiento (SAN). NAS generalmente usa 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 ( Bloque de mensajes de servidor / Sistema común de archivos de Internet ) (usado con sistemas MS Windows) , AFP (utilizado con computadoras Apple Macintosh ) o NCP (utilizado con OES y Novell NetWare ).

Consideraciones de diseño [ editar ]

Evitar un solo punto de falla [ editar ]

La falla del hardware del disco o de un nodo de almacenamiento determinado en un clúster puede crear un único punto de falla que puede resultar en la pérdida o indisponibilidad de los datos . Se puede proporcionar tolerancia a fallas y alta disponibilidad mediante la replicación de datos de un tipo u otro, de modo que los datos permanezcan intactos y disponibles a pesar de la falla de cualquier pieza de equipo. Para obtener ejemplos, consulte las listas de sistemas de archivos distribuidos tolerantes a errores y sistemas de archivos distribuidos paralelos tolerantes a errores .

Rendimiento [ editar ]

Una medida de rendimiento común de un sistema de archivos en clúster es la cantidad de tiempo necesaria para satisfacer las solicitudes de servicio. En los sistemas convencionales, este tiempo consiste en un tiempo de acceso al disco y una pequeña cantidad de tiempo de procesamiento de la CPU . Pero en un sistema de archivos en clúster, un acceso remoto tiene una sobrecarga adicional debido a la estructura distribuida. Esto incluye el tiempo para entregar la solicitud a un servidor, el tiempo para entregar la respuesta al cliente y, para cada dirección, una sobrecarga de CPU para ejecutar el software de protocolo de comunicación .

Simultaneidad [ editar ]

El control de simultaneidad 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 de un cliente no deberían interferir con el acceso y las actualizaciones de otros clientes. Este problema es más complejo con los sistemas de archivos debido a escrituras superpuestas concurrentes, donde diferentes escritores escriben en regiones superpuestas del archivo al mismo tiempo. [7] Este problema generalmente se maneja mediante el control de concurrencia o el bloqueo, que puede estar integrado en el sistema de archivos o proporcionado por un protocolo adicional.

Historia [ editar ]

Los mainframes de IBM en la década de 1970 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, Digital Equipment Corporation 's TOPS-20 y OpenVMS racimos (VAX / ALPHA / IA64) incluido compartió sistemas de archivos en el disco. [8]

Ver también [ editar ]

  • Sistema de archivos distribuido
  • Almacenamiento conectado a la red
  • Red de área de almacenamiento
  • Recurso compartido
  • Almacenamiento adjunto directo
  • Intercambio de archivos de igual a igual
  • Compartir disco
  • Almacén de datos distribuidos
  • Sistema de archivos distribuido para la nube
  • Sistema de archivos global
  • Gopher (protocolo)
  • Lista de sistemas de archivos distribuidos
  • CacheFS
  • REDADA

Referencias [ editar ]

  1. ^ Saify, Amina; Kochhar, Garima; Hsieh, Jenwei; Celebioglu, Onur (mayo de 2005). "Mejora de clústeres informáticos de alto rendimiento con sistemas de archivos paralelos" (PDF) . Soluciones de energía de Dell . 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 del sistema operativo, octava edición" (PDF) . Universidad de Babilonia . John Wiley & Sons, Inc. págs. 705–725 . Consultado el 4 de marzo de 2019 .
  4. ↑ a b Arpaci-Dusseau, Remzi H .; Arpaci-Dusseau, Andrea C. (2014), Sun's Network File System (PDF) , Arpaci-Dusseau Books
  5. ^ Sandberg, Russel (1986). "El sistema de archivos Sun Network: diseño, implementación y experiencia" (PDF) . Actas de la conferencia técnica y exposición de verano de 1986 de USENIX . Sun Microsystems, Inc . Consultado el 6 de marzo de 2019 . NFS fue diseñado para simplificar el intercambio de recursos del sistema de archivos en una red de máquinas no homogéneas.
  6. ^ Sobh, Tarek (2008). Avances en Ingeniería y Ciencias de la Información y la Computación . Springer Science & Business Media. págs. 423–440.
  7. ^ Pessach, Yaniv (2013). Almacenamiento distribuido: conceptos, algoritmos e implementaciones . ISBN 978-1482561043 . 
  8. ^ Murphy, Dan (1996). "Orígenes y desarrollo de TOPS-20" . Dan Murphy. Planes ambiciosos para Júpiter . Consultado el 6 de marzo de 2019 . En última instancia, tanto VMS como TOPS-20 enviaron este tipo de capacidad.

Lectura adicional [ editar ]

  • Una taxonomía de sistemas de almacenamiento distribuidos
  • Una taxonomía y encuesta sobre sistemas de archivos distribuidos
  • Una encuesta de sistemas de archivos distribuidos
  • La evolución de los sistemas de archivos