stringtranslate.com

Monte de la Unión

En los sistemas operativos de computadoras , el montaje de unión es una forma de combinar múltiples directorios en uno que parece contener sus contenidos combinados. [1] El montaje de unión es compatible con Linux , BSD y varios de sus sucesores, y Plan 9 , con un comportamiento similar pero sutilmente diferente.

Como ejemplo de aplicación del montaje por unión, considere la necesidad de actualizar la información contenida en un CD-ROM o DVD . Si bien un CD-ROM no es escribible, se puede superponer el punto de montaje del CD con un directorio escribible en un montaje por unión. Luego, la actualización de archivos en el directorio de unión hará que terminen en el directorio escribible, dando la ilusión de que el contenido del CD-ROM se ha actualizado. [1] [2]

Implementaciones

Plan 9

En el sistema operativo Plan 9 de Bell Labs (mediados de los años 1980 en adelante), el montaje de unión es un concepto central, que reemplaza varias convenciones antiguas de Unix con directorios de unión; por ejemplo, varios directorios que contienen ejecutables , unidos en un solo directorio /bin , reemplazan la variable PATH para la búsqueda de comandos en el shell. [3]

La semántica de unión de Plan 9 se simplifica enormemente en comparación con las implementaciones para sistemas operativos de estilo POSIX : la unión de dos directorios es simplemente la concatenación de sus contenidos, por lo que un listado de directorios de la unión puede mostrar nombres duplicados. Además, no se hace ningún esfuerzo para fusionar subdirectorios de forma recursiva, lo que conduce a una implementación extremadamente simple. [4] Los directorios se unen en un orden controlable; u/name , donde u es un directorio de unión, denota el archivo llamado name en el primer directorio constituyente que contiene dicho archivo. [4]

Unix y BSD

Las implementaciones de uniones en Unix/POSIX tienen requisitos diferentes a los de la implementación de Plan 9 debido a restricciones en el comportamiento del sistema de archivos Unix tradicional, lo que complica enormemente su implementación y a menudo conduce a compromisos. [5] Los problemas que encuentra el montaje de uniones en sistemas operativos tipo Unix incluyen:

Los primeros intentos de añadir unión a los sistemas de archivos de Unix incluyeron el sistema de archivos 3-d ( Bell Labs ) y el Translucent File Service en SunOS ( Sun Microsystems , 1988 [2] ). Una implementación del montaje de unión se añadió a la versión BSD de Unix en la versión 4.4 (1994), inspirándose en estos intentos anteriores, Plan 9 y los sistemas de archivos apilables en Spring (Sun, 1994). [1] 4.4BSD implementa el enfoque de pila de directorios descrito anteriormente. Al igual que en Plan 9, las operaciones recorren esta pila de arriba hacia abajo para resolver nombres, pero a diferencia de Plan 9, los montajes de unión de BSD son recursivos, de modo que los contenidos de los subdirectorios aparecen fusionados en el directorio de unión. También a diferencia de la versión de Plan 9, todas las capas excepto la superior son de sólo lectura: modificar archivos en la unión hace que sus contenidos se copien primero en la capa superior de la pila, donde luego se aplican las modificaciones. La eliminación de archivos se implementa escribiendo un tipo especial de archivo llamado whiteout en el directorio superior, lo que tiene el efecto de marcar el nombre del archivo como inexistente y ocultar archivos con el mismo nombre en las capas inferiores de la pila. [1] Los whiteouts requieren soporte del sistema de archivos subyacente. [4]

Linux

El montaje de unión se implementó para Linux 0.99 en 1993; esta implementación inicial se llamó Inheriting File System, pero fue abandonada por su desarrollador debido a su complejidad. [2] La siguiente implementación importante fue UnionFS , que surgió del proyecto FiST en la Universidad de Stony Brook . [6] [5] Un intento de reemplazar a UnionFS, aufs , fue lanzado en 2006, seguido en 2009 por OverlayFS . [2] En 2014, la implementación de montaje de unión OverlayFS se agregó al código fuente del kernel estándar de Linux . [7]

De manera similar, GlusterFS ofrece la capacidad de montar diferentes sistemas de archivos distribuidos a través de una red, en lugar de estar ubicados en la misma máquina. [8]

MergerFS, lanzado originalmente en 2014, es un complemento FUSE de código abierto desarrollado activamente que permite la agrupación de directorios arbitrarios. [9]

Referencias

  1. ^ abcd Pendry , Jan-Simon; Marshall Kirk McKusick (diciembre de 1995). "Montajes de unión en 4.4BSD-Lite". Actas de la Conferencia técnica de USENIX sobre UNIX y sistemas informáticos avanzados : 25–33 . Consultado el 25 de noviembre de 2007 .
  2. ^ abcdef Aurora, Valerie; Henson (marzo de 2009). "Unión de sistemas de archivos: arquitectura, características y opciones de diseño". LWN.net . Consultado el 21 de diciembre de 2009 .
  3. ^ Pike, R. ; Presotto, D.; Thompson, K.; Trickey, H.; Winterbottom, P. "El uso de espacios de nombres en Plan 9". Sitio web de Random Contrarian Insurgent Organization cat-v.org . Bell Labs . Consultado el 27 de octubre de 2016 .
  4. ^ abc Aurora, Valerie; Henson (marzo de 2009). "Union file systems: Implementations, part I" (Sistemas de archivos de unión: Implementaciones, parte I). LWN.net . Consultado el 21 de diciembre de 2009 .
  5. ^ abcde Wright, Charles P.; Jay Dave; Puja Gupta; Harikesavan Krishnan; Erez Zadok; Mohammad Nayyer Zubair. "Versatilidad y semántica Unix en un sistema de archivos de unificación Fan-Out". Informe técnico FSL-04-01b de la Universidad Stony Brook . Consultado el 25 de noviembre de 2007 .
  6. ^ Aurora, Valerie; Henson (abril de 2009). "Unión de sistemas de archivos: Implementaciones, parte 2". LWN.net . Consultado el 21 de diciembre de 2009 .
  7. ^ Larabel, Michael (29 de septiembre de 2014). "OverlayFS propuesto para el kernel Linux 3.18". Phoronix.com . Consultado el 12 de octubre de 2015 .
  8. ^ "Acerca de". GlusterNews. 14 de noviembre de 2009. Archivado desde el original el 7 de abril de 2013. Consultado el 4 de marzo de 2013. GlusterFS es un sistema de archivos distribuido de código abierto capaz de escalar hasta varios petabytes (en realidad, ¡72 brontobytes!) y manejar miles de clientes. GlusterFS agrupa bloques de almacenamiento mediante interconexión Infiniband RDMA o TCP/IP, agregando recursos de disco y memoria y administrando datos en un único espacio de nombres global. GlusterFS se basa en un diseño de espacio de usuario apilable y puede ofrecer un rendimiento excepcional para diversas cargas de trabajo.
  9. ^ "Proyecto MergerFS en GitHub". github.com . Consultado el 15 de septiembre de 2021 .