Características de los Sistemas de Archivos

Rafa Morales 11 Septiembre 2013
3min
0
Linux

Características del Sistema de Archivos

El sistema de archivos Linux consta de varias partes importantes:

  • Bloque de carga: Está reservado para almacenar el gestor de arranque del sistema operativo.

  • Superbloque: Contiene la información sobre el sistema de archivos.

  • Tabla de inodos: Por cada archivo o directorio, existe en esta tabla un elemento que contiene un número y que identifica la ubicación del archivo o directorio dentro del área de datos.

  • Bloques de datos: Ocupa el resto del disco y almacena los archivos y directorios del sistema.

Sistemas de archivos

Esquema del sistema de archivos

 

Tipos de Sistemas de Archivos

Linux soporta gran variedad de sistemas de archivos, por un lado los basados en discos, como por ejemplo EXT3, EXT4, ReiserFS, XFS, JFS, UFS, FAT, NTFS, etc; y por otro lado los basados en comunicación por red, como por ejemplo NFS o SMB.

 

Journaling

El journaling o “registro por diario” es un mecanismo que poseen algunos sistemas de archivos que se basa en llevar un journal o un diario en el que se almacena la información necesaria para restablecer los datos afectados por una transacción en caso de que ésta falle.

El procedimiento es básicamente el siguiente:

  1. Se bloquean las estructuras de datos afectadas por la transacción para que ningún otro proceso pueda modificarlas mientras dura la transacción.

  2. Se reserva un recurso para almacenar el journal. Por lo general suelen ser unos bloques de disco, de modo que si el sistema se para de forma abrupta (corte eléctrico, avería, fallo del sistema operativo...) el journal siga disponible una vez reiniciado el sistema.

  3. Se efectúan una a una las modificaciones en la estructura de datos. Para cada una:

    1. Se apunta en el journal como deshacer la modificación y se asegura de que esta información se escribe físicamente en el disco.

    2. Se realiza la modificación.

  4. Si en cualquier momento se quiere cancelar la transacción se deshacen los cambios uno a uno leyéndolos y borrándolos del journal.

  5. Si todo ha ido bien, se borra el journal y se desbloquean las estructuras de datos afectadas.

 

En el caso concreto de los sistemas de archivos, el journaling se suele limitar a las operaciones que afectan a las estructuras que mantienen información sobre:

  1. Estructuras de directorio.

  2. Bloques libres de disco.

  3. Descriptores de archivo (tamaño, fecha de modificación...).

 

El hecho de que no se suela implementar el journaling de los datos concretos de un archivo suele carecer de importancia, puesto que lo que persigue el journaling de sistemas de archivos es evitar los engorrosos y largos chequeos de disco que efectúan los sistemas al apagarse bruscamente, ya que el sistema al arrancar solo deberá deshacer el journal para tener un sistema coherente de nuevo.

Los sistemas de archivos EXT3, ReiserFS, XFS, JFS, UFS y NTFS poseen esta característica.