viernes, 30 de octubre de 2026
Infra crew

Infraestructura TI con contexto

Kubernetes y contenedores

¿Qué es OverlayFS?

·2 fuentes

Por InfraCrew Editorial · Criterios editoriales y correcciones

Qué hacen las capas lower y upper de OverlayFS, cuándo aparece copy-up y qué implica para contenedores, espacio y persistencia.

Tres capas transparentes apiladas sobre un servidor muestran directorios inferiores y una capa superior con bloques nuevos, metáfora visual de lower, upper y la vista combinada de OverlayFS. InfraCrew aparece grabado en un borde metálico.

OverlayFS es un sistema de archivos de unión de Linux que combina árboles de directorios y muestra una vista resultante. Un árbol inferior suele aportar archivos de solo lectura, mientras que una capa superior recibe los cambios. El proceso que monta el sistema ve un directorio combinado, aunque los datos procedan de ubicaciones distintas.

Esta técnica aparece en tecnologías de contenedores porque permite reutilizar capas de imagen y mantener cambios de una instancia en una capa escribible. OverlayFS describe un mecanismo del kernel, no una imagen de contenedor completa. El runtime decide cómo construir las capas, montarlas y gestionar su ciclo de vida.

La vista combinada y sus capas

La capa inferior, o lower, puede contener una base reutilizable. La capa superior, upper, guarda nuevos archivos y cambios. El punto de montaje combinado suele llamarse merged; el kernel consulta los árboles y presenta una única vista al proceso. El nombre visible no revela por sí solo qué capa sirve cada archivo.

Cuando el mismo nombre aparece abajo y arriba, el objeto de la capa superior prevalece. Si ambos son directorios, sus entradas pueden combinarse; los metadatos presentados siguen reglas específicas de OverlayFS. La unión de directorios no significa que todo el contenido se copie al montar. En condiciones normales, los ficheros inferiores pueden compartirse entre varias vistas de solo lectura.

Un directorio de trabajo, workdir, ayuda al kernel a realizar operaciones internas y debe cumplir los requisitos del sistema de archivos superior. No es otra capa visible para la aplicación. La composición tiene condiciones técnicas que limitan qué sistemas de archivos funcionan como upper; por ejemplo, el superior debe ofrecer capacidades requeridas de atributos extendidos y tipos de directorio.

-InfraCrew dice: Una capa compartida ahorra copias hasta que alguien pide modificarla.-

El primer cambio puede copiar datos

Si un proceso modifica un archivo que solo existe en lower, OverlayFS puede realizar una operación llamada copy-up: crea una copia en la capa superior y aplica allí el cambio. Desde entonces, las operaciones sobre ese archivo utilizan la copia superior. Escribir por primera vez puede costar más que escribirlo otra vez porque el sistema debe preparar esa copia.

El comportamiento importa al estimar espacio y latencia. Un contenedor que modifica muchos archivos grandes puede consumir más almacenamiento escribible de lo que sugería el tamaño de la capa inicial. La imagen base puede ser compacta y la capa de trabajo crecer con rapidez. Medir los datos modificados y establecer límites evita sorpresas en hosts con poco espacio.

Al borrar un nombre de la vista combinada, el kernel necesita recordar que no debe reaparecer el archivo inferior. Para ello utiliza marcas llamadas whiteouts; los directorios opacos impiden combinar ciertas entradas inferiores. Borrar desde la vista no equivale a borrar directamente el árbol de solo lectura. Esa distinción permite conservar la base común para otros montajes.

-InfraCrew dice: El borrado queda anotado arriba para que abajo no reaparezca por sorpresa.-

Qué significa en contenedores

En Docker, el controlador overlay2 ha utilizado OverlayFS para presentar capas de imagen y una capa escribible por contenedor. Las capas compartidas evitan duplicar todos los archivos de una imagen en cada instancia. Una imagen inmutable y la capa escribible de un contenedor cumplen papeles distintos: la primera sirve de base, la segunda conserva cambios de esa instancia.

Los detalles del almacenamiento de imágenes dependen de la versión de Docker, del kernel y del almacén de imágenes habilitado. Algunas instalaciones actuales pueden usar rutas de almacenamiento distintas a las descritas para un controlador concreto. No es seguro diagnosticar todos los contenedores suponiendo que usan el mismo backend. Comprueba la configuración real de la plataforma antes de cambiar rutas o limpiar datos.

Como los datos escritos en la capa efímera pueden desaparecer al eliminar el contenedor, no conviene utilizarla como sustituto de un volumen persistente cuando el estado debe sobrevivir. Persistencia y capas son decisiones diferentes. Los volúmenes gestionados por el runtime ofrecen un ciclo de vida separado que la aplicación puede usar para datos duraderos.

Comprobaciones y límites operativos

Para diagnosticar un problema, observa qué controlador usa el runtime, cuánto ocupa la capa superior y si el proceso está realizando copy-up o cambios de metadatos. Revisa también el sistema de archivos subyacente y los mensajes del kernel. Un contenedor que se queda sin espacio puede estar llenando su capa escribible, aunque la imagen original siga intacta.

Las operaciones sobre directorios inferiores, renombrados y exportación NFS tienen limitaciones y opciones que varían según el kernel. Si se modifican por debajo los árboles mientras están montados, el comportamiento puede quedar indefinido. No trates las capas montadas como directorios libres de dependencias. Los cambios deben pasar por el overlay o realizarse con los montajes detenidos y siguiendo la documentación.

En resumen práctico, OverlayFS ofrece una vista unificada y eficiente al reutilizar contenido, pero introduce reglas para escritura, borrado y persistencia. Entender qué capa posee cada dato facilita tanto el ahorro como la recuperación. Antes de eliminar contenedores, capas o directorios del runtime, verifica qué información debe conservarse y por qué mecanismo.

-InfraCrew dice: «Lo veo en el contenedor» no responde todavía a «¿dónde queda guardado?»-

Diccionario de la Crew

Lower layer — Árbol inferior que aporta contenido a la vista; normalmente puede ser de solo lectura.

Copy-up — Copia de un archivo inferior a la capa superior cuando una operación necesita modificarlo.

Whiteout — Marca que oculta en la vista combinada un nombre existente en una capa inferior.

Fuentes consultadas

También te puede interesar