GNU/Linux >> Tutoriales Linux >  >> Linux

Introducción al sistema de archivos de Linux

Introducción

Un sistema de archivos es un conjunto de procesos que controla cómo, dónde y cuándo se almacenan y recuperan los datos de un dispositivo de almacenamiento. Un sistema de archivos eficiente es esencial para los procesos cotidianos del sistema.

El kernel de Linux admite varios sistemas de archivos, pero el más utilizado es el sistema de archivos ext4.

En este artículo, aprenderá más sobre el desarrollo de los sistemas de archivos de Linux y las características principales del sistema ext4.

Evolución del sistema de archivos de Linux

Echemos un vistazo más de cerca a la evolución del sistema de archivos de Linux:

Sistema de archivos MINIX

El archivo Minix sistema compatible con el sistema operativo Minix. Andrew S. Tanenbaum lo introdujo por primera vez en 1987.

El sistema operativo Minix y su sistema de archivos se utilizaron principalmente con fines de codificación educativa. El rendimiento del sistema de archivos no estaba a la altura en ese momento. La longitud de los nombres de archivo se restringió a catorce caracteres y las particiones se limitaron a 64 MB. En ese momento, los discos duros admitían particiones de hasta 140 MB.

En 1992, Minix estaba prácticamente fuera de uso debido a la falta de rendimiento y desarrollo del sistema de archivos ext. .

ext Sistema de archivos

El sistema de archivos ext significa "Sistema de archivos extendido". Fue el primer sistema de archivos diseñado para admitir el kernel de Linux.

Sistema de archivos virtuales (VFS) se utilizó para el sistema de archivos ext. Su propósito principal era permitir que el kernel de Linux accediera al sistema de archivos ext. El sistema de archivos ext restringió la longitud de los nombres de archivo a 255 caracteres y admitió particiones de hasta 2 GB.

Si bien logró resolver los problemas que tenía el sistema de archivos Minix, tenía una falla importante:la marca de tiempo. A diferencia de hoy, donde cada archivo de Linux tiene tres marcas de tiempo (marca de tiempo de acceso, marca de tiempo modificada y marca de tiempo modificada), el sistema de archivos ext solo permitía una marca de tiempo por archivo.

En enero de 1993, se introdujo el sistema de archivos ext2. Con el tiempo, todos los usuarios cambiaron de ext a ext2.

Sistema de archivos ext2

Remi Card diseñó el sistema de archivos ext2 y lo lanzó en enero de 1993, menos de un año después de introducir el sistema de archivos ext.

El sistema de archivos ext2 permitió la retención de la estructura interna mientras se ampliaban las funcionalidades del sistema de archivos. Los datos de los archivos se mantuvieron en bloques de datos de la misma longitud. El sistema de archivos ext2 admitía el tamaño máximo de archivo de 2 TiB. La longitud de los nombres de archivo no estaba limitada en caracteres, sino en bytes:255 bytes. No admitía el registro en diario.

Si bien este sistema de archivos se usó en gran medida, todavía tenía dos problemas importantes:

  • Corrupción de archivos – Este fenómeno ocurriría si los datos se escribieran en el disco en el momento de una pérdida de energía o un bloqueo del sistema.
  • Pérdida de rendimiento – La fragmentación del disco ocurre cuando un solo archivo se divide en pedazos y se distribuye en varias ubicaciones en el disco. Como resultado, los archivos tardan más en leerse y escribirse, lo que conduce a una degradación del rendimiento.

El sistema ext2 se usó principalmente hasta principios de la década de 2000, cuando se introdujo el sistema de archivos ext3. Actualmente se usa ocasionalmente para dispositivos USB porque no es compatible con el sistema de registro en diario.

Sistema de archivos ext3

Stephen Tweedie diseñó el sistema de archivos ext3 (Tercer Sistema de Archivo Extendido). Se lanzó en noviembre de 2001 con el kernel de Linux 2.4.15. Todavía está en uso hoy.

El sistema de archivos ext3 es una versión mejorada del sistema de archivos ext2. Admite un tamaño de archivo máximo de 2 TiB y restringe la longitud máxima del nombre de archivo a 255 bytes, como el sistema de archivos ext2. La mejora se refleja en el diario.

El diario El sistema mantiene un "diario" de todos los cambios en la estructura de datos que aún no se han confirmado. En caso de pérdida de energía o falla del sistema, los registros almacenados a través del sistema de diario devuelven datos en cuestión de segundos, lo que reduce el riesgo de corrupción o pérdida de datos. El sistema escribe los datos en las áreas correctas del sistema de archivos cuando se actualiza el registro.

El kernel de Linux admite tres niveles de registro en diario:

  • Diario – Consiste en escribir metadatos y contenidos de archivos en un diario antes de que se realicen cambios en el sistema de archivos principal. Esto guarda datos en caso de pérdida de energía o falla del sistema. La desventaja de este nivel de registro en diario es que el rendimiento del sistema disminuye.
  • Pedido – Este nivel de diario escribe los metadatos en el diario, mientras que el contenido del archivo se almacena automáticamente en el sistema de archivos principal. El proceso se realiza en un orden específico. Primero, los metadatos se escriben en el diario. Luego, el contenido del archivo se escribe en el sistema de archivos principal. Finalmente, los metadatos se conectan al sistema de archivos principal. Por lo tanto, el sistema de archivos principal no se corrompe en caso de que se bloquee el sistema. Solo se pueden dañar los archivos que están en proceso de escritura durante un bloqueo.
  • Reescribir – Este nivel de registro en diario solo escribe metadatos en el diario. El contenido del archivo se escribe en el sistema de archivos principal solo después de que se actualiza el diario. Debido a la falta de sincronización de los metadatos y el contenido del archivo, es probable que el sistema de archivos se dañe si el sistema falla.

Sistema de archivos ext4

El sistema de archivos ext4 es el sistema de archivos predeterminado del kernel de Linux actual. Se introdujo en octubre de 2008 con el kernel de Linux 2.6.28.

El sistema de archivos ext4 admite un tamaño de archivo máximo de 16 TiB y restringe la longitud máxima de los nombres de archivo a 255 bytes.

Características del sistema de archivos ext4

Veamos las características principales del sistema de archivos ext4.

Compatibilidad con versiones anteriores

El sistema de archivos ext4 es compatible con versiones anteriores de los sistemas de archivos ext3 y ext2. Una función adicional es el montaje automático del sistema de archivos ext3 en modo ext3 mediante el uso de un controlador ext4.

Mejoras en la asignación

El sistema de archivos ext4 asigna bloques de almacenamiento de manera más eficiente antes de escribirlos en el disco. Eso mejora el rendimiento de lectura y escritura.

Mejoras en la marca de tiempo

El sistema de archivos ext4 agrega otros 408 años a la marca de tiempo y admite fechas hasta el 10 de mayo de 2446. Las marcas de tiempo también se miden más rápido, en nanosegundos.

Extensiones

Las versiones obsoletas del sistema de archivos ext asignan todos los bloques que se correlacionan con cada archivo. El proceso no funciona cuando se trata de archivos grandes que requieren una gran cantidad de bloques. Las extensiones han resuelto el problema en el sistema de archivos ext4.

Extensiones reducir la cantidad de metadatos necesarios para mapear los bloques de cada archivo. El sistema guarda la dirección del primer y último bloque correspondiente al archivo grande.

Mejoras en la asignación de bloques múltiples

Un asignador de bloques busca bloques libres que se pueden usar para escribir datos en el disco. El sistema de archivos ext4 utiliza asignaciones múltiples que permiten la asignación de múltiples bloques por llamada. Esto reduce la fragmentación del disco.

Asignación retrasada

La asignación retrasada La función asigna bloques solo cuando el archivo se escribe en el disco. Con esta función, la memoria caché no se llena con datos innecesarios y aumenta el rendimiento del sistema.

Número ilimitado de subdirectorios

La versión 2.6.23 del kernel de Linux admite una cantidad ilimitada de subdirectorios. El sistema de archivos ext4 introdujo la estructura de datos HTree para evitar caídas en el rendimiento. La estructura de datos HTree representa una versión especializada del árbol B.

Sumas de control del diario

El sistema de archivos ext4 utiliza la suma de comprobación opción. Esta opción se introdujo para reducir el riesgo de corrupción de archivos.

El sistema de diario es la parte más utilizada del disco. Cuando ocurre una falla de hardware, los bloques se vuelven inutilizables y se dañan los archivos. La opción de suma de comprobación comprueba constantemente si un bloque está dañado. Este proceso también mejora el rendimiento porque acorta el tiempo de registro.

Comprobaciones más rápidas del sistema de archivos

En un sistema de archivos ext4, se marcan grupos de bloques y tablas de inodos no distribuidos. El tiempo requerido para ejecutar fsck El comando se acorta significativamente porque se omiten los grupos marcados. Mejora el rendimiento general.

Desfragmentación en línea

La fragmentación del disco conduce a la degradación del rendimiento, que era un problema importante con los sistemas de archivos ext2 y ext3. El sistema de archivos ext4 es compatible con e4defrag herramienta que permite a los usuarios desfragmentar archivos individuales o el sistema de archivos completo.

Limitaciones del sistema de archivos ext4

Aunque el sistema de archivos ext4 se considera el mejor sistema de archivos para las distribuciones de Linux, existen algunas limitaciones que deben tenerse en cuenta en el desarrollo posterior del sistema:

  • Recuperación de datos dañados – El sistema de archivos ext4 no puede detectar ni recuperar datos corruptos ya escritos en el disco.
  • Tamaño máximo del volumen – El tamaño de volumen máximo se establece en 1 EiB. Sin embargo, el sistema de archivos no puede manejar más de 100 TiB de datos sin una pérdida significativa de rendimiento y una mayor fragmentación del disco.

Sistemas de archivos Linux alternativos

Hay varias alternativas al sistema de archivos ext4. El kernel de Linux es compatible con todas las alternativas enumeradas a continuación.

XFS

XFS es un sistema de archivos de 64 bits que se introdujo por primera vez en 1994 y está integrado en el kernel de Linux desde 2001. Es el sistema de archivos predeterminado para RedHat Linux.

XFS admite un tamaño de archivo máximo de 8 EiB y restringe la longitud del nombre de archivo a 255 bytes. Admite el registro en diario y, al igual que ext4, guarda los cambios en un diario antes de que los cambios se confirmen en el sistema de archivos principal. Esto reduce la posibilidad de corrupción de archivos.

Los datos están estructurados en árboles B+ , que proporciona una asignación de espacio eficiente y, por lo tanto, un mayor rendimiento.

La principal desventaja de este sistema se refleja en el difícil proceso de cambio de tamaño de un sistema de archivos XFS existente.

Abrir ZFS

AbrirZFS es una plataforma que combina sistemas de archivos con administradores de volumen. Se introdujo por primera vez en 2013.

OpenZFS admite un tamaño de archivo máximo de 16 EiB y limita la longitud máxima del nombre de archivo a 255 caracteres. Algunas de las funciones de este sistema son la protección contra la corrupción de datos, el cifrado, la compatibilidad con altas capacidades de almacenamiento, copia en escritura y RAID-Z.

La principal desventaja de OpenZFS es la incompatibilidad legal entre las licencias CDDL (OpenZFS) y GPL (Linux kernel). Eso se resuelve compilando y cargando el código ZFS en el kernel de Linux.

BtrFS

BtrFS diseñado por Oracle (significa “B-tree file system”) y lo lanzó en 2009 con el kernel de Linux 2.6.29.

BtrFS admite un tamaño de archivo máximo de 16 EiB y limita la longitud máxima del nombre de archivo a 255 caracteres. Algunas de las funciones de BtrFS son la desfragmentación en línea, la adición y eliminación de dispositivos de bloqueo en línea, la compatibilidad con RAID, la compresión configurable por archivo o volumen, la clonación de archivos, las sumas de verificación y la capacidad de manejar archivos de intercambio y particiones de intercambio.


Linux
  1. Copiar archivos en la terminal de Linux

  2. Comprender el sistema de archivos Btrfs en Fedora Linux

  3. Introducción al comando de alternativas en Linux

  4. Una introducción al archivo Linux /etc/fstab

  5. Linux:¿con qué frecuencia se actualiza el sistema de archivos Proc en Linux?

Arch Linux – Personalizando el sistema

La introducción de un administrador de sistemas de Linux a cgroups

El archivo de hosts en Linux

Elija el mejor sistema de archivos para su Linux

Todo lo que necesita saber sobre el sistema de archivos de Linux

Comprender el archivo /etc/fstab en Linux