Articulo de referencia

Monte Unión

En los sistemas operativos de computadoras , el montaje de unión es una forma de combinar varios directorios en uno que aparentemente contiene su contenido combinado. [ 1 ] El m...

En los sistemas operativos de computadoras , el montaje de unión es una forma de combinar varios directorios en uno que aparentemente contiene su contenido combinado. [ 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 de unión, consideremos la necesidad de actualizar la información contenida en un CD-ROM o DVD . Si bien un CD-ROM no es grabable, se puede superponer el punto de montaje del CD con un directorio grabable en un montaje de unión. De esta manera, al actualizar los archivos en el directorio de unión, estos se añadirán al directorio grabable, dando la impresió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 (desde mediados de la década de 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 único directorio /bin , reemplazan la variable PATH para la búsqueda de comandos en el shell. [ 3 ]

La semántica de unión del 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 su contenido, por lo que un listado de directorios de la unión puede mostrar nombres duplicados. Además, no se realiza ningún esfuerzo para fusionar subdirectorios de forma recursiva, lo que da como resultado una implementación extremadamente simple. [ 4 ] Los directorios se unen en un orden controlable; u/nombre , donde u es un directorio de unión, denota el archivo llamado nombre 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 las limitaciones del comportamiento tradicional del sistema de archivos Unix, lo que complica enormemente su implementación y a menudo conlleva compromisos. [ 5 ] Los problemas que encuentra el montaje de uniones en sistemas operativos tipo Unix incluyen:

  • No se aceptan nombres de archivo duplicados dentro de un directorio, ya que esto rompería las expectativas de las aplicaciones sobre cómo funciona un sistema de archivos Unix. Establecer un orden de precedencia lógico, similar a una pila , en los constituyentes de la unión resuelve parcialmente este problema, pero requiere memoria para registrar qué archivos deben omitirse durante la lista de directorios (que, de otro modo, es una operación prácticamente sin estado). [ 5 ]
  • La eliminación requiere soporte especial: si existen archivos con el mismo nombre en varios de los componentes del directorio de unión, simplemente eliminarlo de uno de los componentes hace que reaparezca un archivo de uno de los otros en su lugar. [ 5 ]
  • La inserción de un directorio en la pila puede causar incoherencia en la caché de nombres de archivo del kernel . [ 5 ]
  • Cambiar el nombre de un archivo dentro de un único sistema de archivos montado (mediante la llamada al sistema ` rename` ) debería ser una operación atómica , pero cambiar el nombre dentro de un montaje de unión puede requerir cambios en varios de los directorios que lo componen. Una posible solución es prohibir el cambio de nombre en tales situaciones y exigir que las implementaciones copien y eliminen en su lugar. [ 2 ]
  • Los números de inodo estables para archivos, enlaces duros y E/S mapeada en memoria ( mmap ) son difíciles de implementar correctamente. [ 2 ]

Los primeros intentos de agregar uniones a los sistemas de archivos Unix incluyeron el sistema de archivos 3-d ( Bell Labs ) y el Servicio de Archivos Translúcidos en SunOS ( Sun Microsystems , 1988 [ 2 ] ). Se agregó una implementación de montaje de unión a la versión BSD de Unix en la versión 4.4 (1994), tomando inspiración de 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. Como 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 el contenido de los subdirectorios aparece fusionado 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 solo lectura: la modificación de archivos en la unión hace que su contenido se copie 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 borrado en el directorio superior, lo que tiene el efecto de marcar el nombre del archivo como inexistente y ocultar los archivos con el mismo nombre en las capas inferiores de la pila. [ 1 ] Los borrados 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ó Sistema de Archivos Heredado, 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 UnionFS, aufs , se lanzó 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 estándar del kernel de Linux . [ 7 ]

De manera similar, GlusterFS ofrece la capacidad de montar diferentes sistemas de archivos distribuidos en 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 en desarrollo activo que permite la agrupación de directorios arbitrarios. [ 9 ]

Referencias

  1. 1 2 3 4 Pendry , Jan-Simon; Marshall Kirk McKusick (diciembre de 1995). "Union Mounts en 4.4BSD-Lite" . Actas de la Conferencia Técnica USENIX sobre UNIX y Sistemas Informáticos Avanzados : 25–33 . Recuperado el 25 de noviembre de 2007 .
  2. 1 2 3 4 5 6 Aurora, Valerie; Henson (marzo de 2009). "Unión de sistemas de archivos: arquitectura, características y opciones de diseño" . LWN.net . Recuperado el 21 de diciembre de 2009 .
  3. Pike, R.; Presotto, D.; Thompson, K.; Trickey, H.; Winterbottom, P. "El uso de espacios de nombres en el Plan 9" . Sitio web de la Organización Insurgente Contraria Aleatoria cat-v.org . Bell Labs . Consultado el 27 de octubre de 2016 .
  4. 1 2 3 Aurora, Valerie; Henson (marzo de 2009). "Sistemas de archivos de unión: implementaciones, parte I" . LWN.net . Recuperado el 21 de diciembre de 2009 .
  5. 1 2 3 4 5 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 de 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). "Propuesta de OverlayFS para el kernel de Linux 3.18" . Phoronix.com . Consultado el 12 de octubre de 2015 .
  8. "Acerca de" . GlusterNews. 14 de noviembre de 2009. Archivado del original el 7 de abril de 2013. Recuperado el 4 de marzo de 2013. GlusterFS es un sistema de archivos distribuido de código abierto capaz de escalar a varios petabytes (¡en realidad, 72 brontobytes!) y manejar miles de clientes. GlusterFS agrupa bloques de construcción de almacenamiento a través de 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 brindar un rendimiento excepcional para diversas cargas de trabajo.
  9. "Proyecto MergerFS en GitHub" . github.com . Consultado el 15 de septiembre de 2021 .
Obtenido de " https://en.wikipedia.org/w/index.php?title=Union_mount&oldid=1329361619 "