GNU/Linux >> Tutoriales Linux >  >> Linux

¿Un Superblock, Inode, Dentry Y Un Archivo?

Del artículo Anatomy of the Linux file system de M. Tim Jones, leí que Linux ve todos los sistemas de archivos desde la perspectiva de un conjunto común de objetos y estos objetos son superbloque , inodo , entrada y archivo . Aunque el resto del párrafo explica lo anterior, no me sentí muy cómodo con esa explicación.

¿Alguien podría explicarme estos términos?

Respuesta aceptada:

En primer lugar, y me doy cuenta de que no era uno de los términos de su pregunta, debe comprender metadatos . Sucintamente, y robado de Wikipedia, los metadatos son datos sobre datos. Es decir, los metadatos contienen información sobre un dato. Por ejemplo, si tengo un automóvil, tengo un conjunto de información sobre el automóvil, pero que no es parte del automóvil en sí. Información como el número de registro, marca, modelo, año de fabricación, información del seguro, etc. Toda esa información se conoce colectivamente como los metadatos. En los sistemas de archivos Linux y UNIX, los metadatos existen en varios niveles de organización, como verá.

La supermanzana es esencialmente metadatos del sistema de archivos y define el tipo, el tamaño, el estado y la información del sistema de archivos sobre otras estructuras de metadatos (metadatos de metadatos). El superbloque es muy importante para el sistema de archivos y, por lo tanto, se almacena en múltiples copias redundantes para cada sistema de archivos. El superbloque es una estructura de metadatos de muy "alto nivel" para el sistema de archivos. Por ejemplo, si el superbloque de una partición, /var, se corrompe, el sistema operativo no podrá montar el sistema de archivos en cuestión (/var). Comúnmente en este evento, necesita ejecutar fsck que seleccionará automáticamente una copia de seguridad alternativa del superbloque e intentará recuperar el sistema de archivos. Las copias de seguridad en sí mismas se almacenan en grupos de bloques distribuidos a través del sistema de archivos con el primero almacenado en un desplazamiento de 1 bloque desde el inicio de la partición. Esto es importante en caso de que sea necesaria una recuperación manual. Puede ver información sobre copias de seguridad de superbloques ext2/ext3/ext4 con el comando dumpe2fs /dev/foo | grep -i superblock lo cual es útil en caso de un intento de recuperación manual. Supongamos que el comando dumpe2fs genera la línea Backup superblock at 163840, Group descriptors at 163841-163841 . Podemos usar esta información y conocimientos adicionales sobre la estructura del sistema de archivos para intentar usar esta copia de seguridad de superbloque:/sbin/fsck.ext3 -b 163840 -B 1024 /dev/foo . Tenga en cuenta que asumí un tamaño de bloque de 1024 bytes para este ejemplo.

Un inodo existe en o sobre un sistema de archivos y representa metadatos sobre un archivo. Para mayor claridad, todos los objetos en un sistema Linux o UNIX son archivos; archivos reales, directorios, dispositivos, etc. Tenga en cuenta que, entre los metadatos contenidos en un inodo, no hay un nombre de archivo como lo piensan los humanos, esto será importante más adelante. Un inodo contiene esencialmente información sobre la propiedad (usuario, grupo), el modo de acceso (permisos de lectura, escritura y ejecución), el tipo de archivo y los bloques de datos con el contenido del archivo.

Relacionado:¿Cómo hacer cola -f de salida con colores usando solo Awk y mostrar el resto de la salida?

Una entrada es el pegamento que mantiene unidos los inodos y los archivos al relacionar los números de inodos con los nombres de los archivos. Los dentries también desempeñan un papel en el almacenamiento en caché de directorios que, idealmente, mantiene a mano los archivos utilizados con más frecuencia para un acceso más rápido. El recorrido del sistema de archivos es otro aspecto de dentry, ya que mantiene una relación entre los directorios y sus archivos.

Un archivo , además de ser lo que los humanos suelen pensar cuando se les presenta la palabra, en realidad es solo un bloque de datos arbitrarios relacionados lógicamente. Comparativamente muy aburrido teniendo en cuenta todo el trabajo realizado (arriba) para realizar un seguimiento de ellos.

Soy plenamente consciente de que algunas oraciones no brindan una explicación completa de ninguno de estos conceptos, así que no dude en solicitar detalles adicionales cuando y donde sea necesario.


Linux
  1. Cómo aumentar el número de inodo de disco en Linux

  2. ¿Diferencia entre un sistema de archivos distribuido y uno de clúster?

  3. Tabla de permisos para un archivo/directorio y tipos de usuarios del sistema de archivos

  4. Aislamiento del entorno de compilación y diferenciación del sistema de archivos

  5. Sistema de archivos multiplataforma

Introducción al sistema de archivos de Linux

5 formas de encontrar una descripción y ubicación de un "comando binario" en el sistema de archivos

Crear y ampliar el sistema de archivos XFS basado en LVM

Qué es EFS (Elastic File System) en AWS y cómo usarlo

Cómo comprobar y reparar un sistema de archivos en RHEL Linux

¿Cómo verificar el uso de Inode desde cPanel y la línea de comandos?