EL NUEVO SISTEMA DE FICHEROS EXT4 EN LINUX

Con el rápido crecimiento de la tecnología, todos los días vamos acumulando más y más información en nuestros discos duros (HD) y se va haciendo necesario que esta transferencia de datos ya sea desde internet o desde un disco a otro, sea cada vez más rápida y confiable.

Cuando hablamos de transferencias de datos a través de una red, se hace necesario que esta me garantice cierto nivel de calidad de servicio (QoS) para que mis datos no se vayan a ver corrompidos o que simplemente se vayan a perder en la transferencia. Ahora cuando hablamos de transferencias de datos por ejemplo de un disco duro a otro, también se necesita que haya cierto grado de confiabilidad, pero esto nos lleva a otro punto interesante, y es que cuando empezamos a llenar nuestro HD, este guarda nuestros datos de una forma no consecutiva, provocando el fenómeno de la fragmentación, este fenómeno produce que cuando se quiera acceder a ciertos archivos le tome mucho tiempo cuando el HD se encuentra muy lleno, porque los datos se encuentran dispersos por todo el HD, el fenómeno de la fragmentación ocurre en cualquier tipo de sistema de fichero sea NTFS, FAT, ext2, ext3, etc. Pero lo que diferencia el problema de un sistema a otro es la regularidad con la que sucede.

Ahora hablando más explícitamente del sistema de ficheros de Linux ext3 utiliza un esquema de mapeado de bloques. Un fichero de 100 MB será mapeado en 25.600 bloques de 4 KB cada uno. Cuanto más grande sea el fichero, más bloques serán mapeados, algo que hará el manejo cada vez más lento. Ext4 introduce el concepto de Extent. Un extent es básicamente un conjunto de bloques. En nuestro ejemplo para un fichero de 100 MB, se dirá básicamente «escribe los datos en los próximos n bloques». En lugar de mapear cada bloque individual por separado, Ext4 soportará extents de hasta 128 MB, de forma que para un fichero de un 1 GB, se mapearán 10 extents en lugar de 256.000 bloques. Esto mejora el rendimiento y reduce la fragmentación.

Explicación: En nuestro ejemplo de 100 MB, Ext3 utiliza un alojador de bloques que decide qué bloques libres van a ser utilizados para escribir los datos. Pero el alojador puede trabajar sólo de bloque en bloque, lo que significa que nuestro fichero de 100 MB necesitará 25.600 llamadas al alojador. Ineficiente, ¿no? Resulta aún peor darse cuenta de que el alojador no puede optimizar sus políticas porque en realidad no sabe cuántas veces va a ser llamado. No sabe el tamaño del fichero para el que se le está pidiendo que aloje bloques. 

Algunas de las mejoras que podrás encontrar en este nuevo sistema de ficheros serán relacionadas en la siguiente tabla.

Mejora

Descripción

Sistema de archivos de gran tamaño

El sistema de archivos ext4 es capaz de trabajar con volúmenes de hasta 1 exbibyte y archivos de tamaño de hasta 16 TiB.
Extents Un extent es un conjunto de bloques físicos contiguos, mejorando el rendimiento al trabajar con ficheros de gran tamaño y reduciendo la fragmentación.
Compatibilidad hacia atrás El ext4 es compatible hacia atrás con ext3 y ext2, siendo posible montar sistemas de archivos ext3 y ext2 como ext4.
Asignación persistente de espacio El espacio reservado para estos archivos está garantizado y con mucha probabilidad será contiguo. El llenado con ceros está obsoleto.
Asignación retrasada de espacio El sistema de archivos ext4 retrasa la reserva de bloques de memoria hasta que la información esté a punto de ser escrita en el disco, mejorando el rendimiento y reduciendo la fragmentación al hacer las decisiones de reserva de memoria basada en el tamaño real del archivo.
Límite de subdirectorios superado El número de subdirectorios que un directorio puede contener fue elevado a 64.000.
Journal checksumming Se usa suma de comprobación para el journal de forma que se aumente la confiabilidad, dado que este es el archivo más usado en el disco.
Chequeo del sistema de archivos más rápido En ext4, los grupos de bloques no asignados y secciones de la tabla de inodos están marcados como tales. Esto permite a e2fsck saltárselos completamente en los chequeos y en gran medida reduce el tiempo requerido para chequear un sistema de archivos del tamaño para el que ext4 está preparado.
Asignador multibloque El sistema de archivos ext4 asigna múltiples bloques para un fichero en una sola operación, lo cual reduce la fragmentación al intentar elegir bloques contiguos en el disco.

El popular blog sobre hardware y Linux Phoronix ha ejecutado unas pruebas extensivas sobre el rendimiento de Ext4 contra otros sistemas de ficheros populares como Ext3, XFS, JFS o ReiserFS. El resultado más impresionante se produjo durante la escritura de un fichero de 4 GB, donde Ext4 literalmente borró al resto de sistemas del mapa.

Bueno esto es todo por el momento, en las próximas entradas se hablara de cómo pasarse de ext3 a ext4 sin necesidad de perder los datos, espero y les haya servido y hasta un próximo artículo.

 Fuente

2 Comments