La comparación de los sistemas de archivos BTRFS VS EXT4

La comparación de los sistemas de archivos BTRFS VS EXT4
Hay muchos sistemas de archivos para Linux. Los más comunes son ext4, btrfs, xfs, zfs, etc. Cada uno de los sistemas de archivos tiene sus casos de uso, pros y contras. Es posible que tenga dificultades para decidir qué sistema de archivos usar.

En este artículo, compararé el sistema de archivos EXT4 y BTRFS. Entonces, si está teniendo dificultades para decidir si usar el sistema de archivos ext4 o el sistema de archivos BTRFS, entonces

Introducción a los sistemas de archivos EXT4 y BTRFS:

Sistema de archivos ext4: Ext4 es la cuarta versión del sistema de archivos EXT (extendido). Es un sucesor del sistema de archivos ext3. La primera versión del sistema de archivos EXT se lanzó en 1992 para el sistema operativo Minix. Más tarde se portó en los sistemas operativos de Linux. El sistema de archivos ext4 se lanzó en 2008. Ext4 es un sistema de archivos diario.

Sistema de archivos BTRFS: BTRFS o el sistema de archivos B-tree es un sistema de archivos moderno de copia en escritura (vaca). Es nuevo en comparación con el sistema de archivos EXT. Fue diseñado para los sistemas operativos de Linux en Oracle Corporation en 2007. En noviembre de 2013, el sistema de archivos BTRFS se declaró estable para el núcleo de Linux.

Comparaciones de características de los sistemas de archivos EXT4 y BTRFS:

El sistema de archivos EXT4 y BTRFS fue diseñado para resolver diferentes tipos de problemas. Entonces, el objetivo de diseño del sistema de archivos ext4 era diferente al sistema de archivos BTRFS. Aún así, son sistemas de archivos. Tienen algunas similitudes que podemos comparar.

i. Tamaño máximo de partición: El sistema de archivos ext4 admite tamaños de partición de hasta 1 EIB.

El sistema de archivos BTRFS admite tamaños de partición de hasta 16 EIB.

II. Tamaño máximo de archivo: El sistema de archivos EXT4 admite tamaños de archivo de hasta 16 TIB (para el tamaño estándar de bloque de 4 kib).

El sistema de archivos BTRFS admite tamaños de archivo de hasta 16 EIB.

III. Longitud máxima del nombre de archivo: El sistema de archivos ext4 admite hasta 255 caracteres (255 bytes) nombres de archivo de largo.

El sistema de archivos BTRFS también admite hasta 255 caracteres (255 bytes) nombres de archivo de largo.

IV. Permitidos caracteres en directorio y nombres de archivo: El sistema de archivos ext4 permite cualquier caracteres excepto el / y Nulo (\ 0) Caracteres en los nombres de directorio y archivos.

NOTA: No puede crear un archivo o directorio con el nombre. y ... en el sistema de archivos EXT4 o BTRFS.

V. Longitud máxima del camino: El sistema de archivos ext4 no tiene ningún límite a la longitud de la ruta de un archivo o directorio. Por lo tanto, puede crear estructuras de directorio muy muy profundas y mantener sus archivos allí.

Lo mismo es cierto para el sistema de archivos BTRFS.

VI. Número máximo de archivos: Puede crear a Max 232 (= 4,294,967,296 ~ = 4 mil millones) archivos en un sistema de archivos EXT4.

Puede crear en el máximo 264 (= 18,446,744,073,709,551,616 ~ = 18 quintillones) en un sistema de archivos BTRFS.

VII. Método de asignación de inodo: Un inodo es una estructura de datos del sistema de archivos que se utiliza para describir un archivo o un directorio. Entonces, un directorio o un archivo requiere 1 inodo. 2 directorios o 2 archivos requerirán 2 inodos.

En el sistema de archivos ext4, define el número de inodos que el sistema de archivos puede admitir mientras crea el sistema de archivos. No puede cambiarlo después de que se cree el sistema de archivos. Si crea demasiados archivos pequeños, es posible que quede espacio de disco gratuito en su sistema de archivos, pero no podrá crear nuevos archivos/directorios a menos que tenga inodos gratuitos. Esta es una gran limitación del sistema de archivos ext4.

En el sistema de archivos BTRFS, la asignación de inodo es flexible. El sistema de archivos puede agregar tantos inodos como sea necesario. Entonces, nunca te quedarás sin inodos.

VIII. Soporte de suma de verificación/ECC: El sistema de archivos ext4 no mantiene la suma de verificación de los datos almacenados en el sistema de archivos.

El sistema de archivos BTRFS mantiene la suma de verificación CRC32C de los datos almacenados en el sistema de archivos. Entonces, en el caso de cualquier corrupción de datos, el sistema de archivos BTRFS puede detectarlo y recuperar el archivo corrupto.

ix. Soporte de revista y copia en escritura: El sistema de archivos ext4 es un sistema de archivos de diario. No tiene ningún soporte de copia en escritura (vaca).

El sistema de archivos BTRFS es un sistema de archivos Copy-on-write (COW), y no tiene ningún soporte de revista.

X. Forma del sistema de archivos: El sistema de archivos ext4 no puede tomar instantáneas del sistema de archivos.

El sistema de archivos BTRFS puede tomar instantáneas. Puede tomar instantáneas de solo lectura y instantáneas de escritura.

NOTA: FileSystem Snapshot es una característica importante. Usando esta función, puede tomar una instantánea de su sistema de archivos antes de probar algo arriesgado. Si las cosas no salen según lo planeado, puede volver a un estado temprano donde todo funcionó. Esta es una característica incorporada del sistema de archivos BTRFS. No necesita herramientas/software de terceros para hacerlo en un sistema de archivos BTRFS.

xi. Cifrado de nivel de sistema de archivos: El sistema de archivos ext4 tiene soporte experimental para el cifrado a nivel de sistema de archivos.

El sistema de archivos BTRFS no tiene ningún soporte para el cifrado a nivel de sistema de archivos.

xii. Deduplicación a nivel de sistema de archivos: El sistema de archivos ext4 no tiene soporte de deduplicación.

El sistema de archivos BTRFS admite la deduplicación en el nivel del sistema de archivos. No necesita herramientas/software de terceros para eso.

NOTA: La depulación es una técnica para eliminar/eliminar copias duplicadas de datos del sistema de archivos y mantener solo una copia de datos (datos únicos) en el sistema de archivos. Esta técnica se utiliza para guardar espacios en disco.

xiii. Soporte de múltiples dispositivos: El sistema de archivos BTRFS admite múltiples dispositivos y tiene soporte RAID incorporado. El sistema de archivos BTRFS tiene un Administrador de volumen lógico incorporado (LVM) que se utiliza para agregar múltiples dispositivos o particiones de almacenamiento a un solo sistema de archivos BTRFS. Un solo sistema de archivos BTRFS puede abarcar en múltiples discos y particiones.

El sistema de archivos ext4 no admite múltiples dispositivos. No puede abarcar un solo sistema de archivos EXT4 en múltiples discos o particiones. Para combinar múltiples dispositivos y particiones de almacenamiento en un sistema de archivos EXT4, debe usar administradores de volumen lógicos de terceros como LVM 2. Para configurar RAID, debe usar herramientas de terceros como DM-RAID o MDADM.

xivón. Compresión a nivel de sistema de archivos: El sistema de archivos Ext4 no tiene soporte de compresión a nivel de sistema de archivos incorporado.

El sistema de archivos BTRFS tiene soporte de compresión a nivel de sistema de archivos incorporado. Puede comprimir un solo directorio o un solo archivo o todo el sistema de archivos para guardar el espacio de disco.

xv. Capacidades de cambio de tamaño del sistema de archivos fuera de línea: El sistema de archivos Ext4 tiene soporte para el crecimiento del sistema de archivos fuera de línea (aumentar el tamaño del sistema de archivos) y la reducción (disminuir el tamaño del sistema de archivos).

El sistema de archivos BTRFS también es compatible con el sistema de archivos fuera de línea.

xvi. Capacidades de cambio de tamaño del sistema de archivos en línea: El sistema de archivos Ext4 tiene soporte para el crecimiento en línea (aumentar el tamaño del sistema de archivos cuando se monta). Pero no tiene soporte para la reducción del sistema de archivos en línea (disminuir el tamaño del sistema de archivos cuando se monta).

Puede crecer (aumentar el tamaño del sistema de archivos) y reducir (disminuir el tamaño del sistema de archivos) BTRFS Files Systems en línea (cuando se monta).

xvii. Archivos dispersos: La función de archivo escaso Guardar espacio en disco cuando los archivos pequeños (más pequeños que el tamaño del bloque) se almacenan en el sistema de archivos. El sistema de archivos EXT4 y BTRFS admite archivos dispersos.

xviii. Bloque Subleación: El sistema de archivos Ext4 no admite la sub-asignación de bloque.

El sistema de archivos BTRFS admite sub-asignación de bloque.

NOTA: Cuando un sistema de archivos almacena archivos grandes en un sistema de archivos, el archivo grande se divide en bloques y los bloques se almacenan en el sistema de archivos. El último bloque del archivo no ocupa todo el bloque. Este último bloque se llama bloque de cola. De la misma manera, cuando se almacenan muchos archivos pequeños, no ocupan todo el bloque. Entonces, se desperdicia mucho espacio en disco. La subalocación del bloque es un método para almacenar partes de otro bloque de archivo al bloque de cola (el último bloque de otro archivo que no ocupó todo el bloque) y guardar espacios en disco.

xix. Embalaje de la cola: El sistema de archivos ext4 no admite el empaque de la cola.

El sistema de archivos BTRFS admite el empaque de la cola.

NOTA: El embalaje de la cola es parte de la subashocación de bloques. Como ya he discutido, los archivos pequeños no ocupan un bloque de archivo completo. Entonces, para almacenar eficientemente archivos pequeños (yo.mi. Códigos de origen del programa) En el sistema de archivos, el bloque de cola de un archivo pequeño se usa para almacenar otros archivos pequeños. El embalaje de la cola mejora el rendimiento del sistema de archivos y guarda mucho espacio en disco en un sistema de archivos donde muchos archivos pequeños (i.mi. Los códigos de origen del programa) se almacenan.

xx. Sistema de archivos basado en extensiones: Los sistemas de archivos EXT4 y BTRFS son sistemas de archivos basados ​​en extensiones.

NOTA: Una extensión es un área contigua del dispositivo de almacenamiento que está reservado para un archivo en un sistema de archivos. Los sistemas de archivos basados ​​en extensiones almacenan archivos grandes en un área de almacenamiento contigua. Esto mejora el rendimiento del sistema de archivos y aumenta la eficiencia de almacenamiento.

xxi. Tamaño de bloque de archivo variable: El sistema de archivos ext4 admite el tamaño de bloque fijo. El tamaño del bloque se establece antes de que se cree el sistema de archivos. Una vez que se crea el sistema de archivos, no puede cambiar el tamaño del bloque.

El sistema de archivos BTRFS admite el tamaño del bloque variable. El sistema de archivos puede determinar el mejor tamaño de bloque posible para almacenar un archivo en el sistema de archivos basado en el tamaño del archivo. Esta característica puede ahorrar mucho espacio en disco.

xxii. Asignar sobre flujo: Tanto el sistema de archivos EXT4 como BTRFS admite asignar.

NOTA: El sistema de archivos asigna algún espacio de búfer en la memoria de la computadora. Cuando hay solicitudes de escritura de disco, el sistema de archivos no escribe los bloques de datos directamente en el dispositivo de almacenamiento. En su lugar, el sistema de archivos almacena los bloqueos de datos en la memoria del búfer. Cuando la memoria del búfer está llena, el sistema de archivos escribe todos los bloques de datos pendientes en el dispositivo de almacenamiento a la vez. Esto reduce el uso de la CPU, acelera el disco de disco y reduce la fragmentación del disco.

xxiii. Soporte de recorte: TIMA TRIMA EXT4 y el sistema de sistemas de archivos BTRFS. Es una característica muy importante para los dispositivos de almacenamiento SSD.

NOTA: Cuando elimina un archivo de un SSD, el comando TRIM notifica el dispositivo de almacenamiento SSD de las páginas (bloques de archivos) que ya no son necesarios. El SSD borra las páginas innecesarias (bloques de archivos) del almacenamiento flash y prepara las páginas (bloques de archivos) para almacenar nuevos datos. Sin soporte de TRIM, la velocidad de escritura SSD se volvería más lenta a medida que el SSD se llena con nuevos datos.

Ventajas de Ext4 sobre BTRFS:

El sistema de archivos ext4 es un sistema de archivos muy antiguo. Se ha utilizado en el sistema operativo Linux durante mucho, mucho tiempo. Debido a eso, el sistema de archivos ext4 es muy estable. El sistema de archivos ext4 sigue siendo el sistema de archivos predeterminado en muchas distribuciones de Linux populares (I.mi. Ubuntu/Debian). Si necesita almacenar algunos datos como un usuario ordinario de Linux, puede mantener los ojos cerrados y usar el sistema de archivos ext4. El sistema de archivos ext4 tiene soporte de diario. Entonces, sus archivos deben estar seguros incluso cuando hay una falla de energía. Es un buen sistema de archivos para el uso diario.

Ventajas de BTRFS sobre Ext4:

El sistema de archivos BTRFS es un sistema de archivos moderno de copia en escritura (COW) que fue diseñado para servidores de almacenamiento de alta capacidad y alto rendimiento. Por lo tanto, tiene muchas características avanzadas que el sistema de archivos ext4 no tiene. El sistema de archivos ext4 fue diseñado para ser un sistema de archivos local simple.

Las características principales del sistema de archivos BTRFS que son útiles para los usuarios diarios de Linux son:

  1. Instantáneas de nivel de archivos incorporados.
  2. Soporte de múltiples dispositivos.
  3. Soporte de incursión incorporado.
  4. Asignación de inodo flexible.
  5. Optimizaciones para almacenar archivos más pequeños (archivos dispersos, subalocación de bloque, embalaje de cola, tamaño de bloque variable).
  6. Soporte de compresión a nivel de sistema de archivos incorporado.

Estas son las características del sistema de archivos para las cuales puede elegir usar el sistema de archivos BTRFS a través del sistema de archivos EXT4.

Conclusión:

En este artículo, he comparado el BTRFS y los sistemas de archivos EXT4. He comparado las características principales del sistema de archivos BTRFS y Ext4. Este artículo debería ayudarlo a decidir entre el sistema de archivos BTRFS y Ext4.

Referencias:

  1. ext4 - wikipedia - https: // en.Wikipedia.org/wiki/ext4
  2. Btrfs - wikipedia - https: // en.Wikipedia.org/wiki/btrfs
  3. kernel/git/torvalds/linux.Git - Árbol de origen del kernel de Linux - https: // git.núcleo.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?ID = 4204617D142C0887E45FDA2562CB5C58097B918E
  4. Comparación de archivos sistemas - wikipedia - https: // en.Wikipedia.org/wiki/comparación_of_file_systems
  5. Deduplicación de datos - Wikipedia - https: // EN.Wikipedia.org/wiki/data_deduplication
  6. Archivo escaso - Wikipedia - https: // EN.Wikipedia.org/wiki/sparse_file
  7. Bloque Sublegación - Wikipedia - https: // en.Wikipedia.org/wiki/block_suballocation
  8. Extensión (sistemas de archivos) - wikipedia - https: // en.Wikipedia.org/wiki/extent_ (file_systems)
  9. Asignar on -flush - wikipedia - https: // en.Wikipedia.org/wiki/asignación en flujo
  10. TRIM (computación) - Wikipedia - https: // en.Wikipedia.org/wiki/trim_ (computación)