InicioLinuxExt4 explicado para todos

Ext4 explicado para todos

Linux3/4/2009
ext4 (fourth extended filesystem o "cuarto sistema de archivos extendido" ) es un sistema de archivos con registro por diario (en inglés Journaling), anunciado el 10 de octubre de 2006 por Andrew Morton, como una mejora compatible de ext3. El 25 de diciembre de 2008 se liberó el kernel de Linux 2.6.28, que elimina ya la etiqueta de "experimental" de código de ext4.



Las principales mejoras son:

* Soporte de volúmenes de hasta 1024 PiB.
* Soporte añadido de extent.
* Menor uso del CPU.
* Mejoras en la velocidad de lectura y escritura.

Mejoras

Sistema de archivos de gran tamaño

El sistema de archivos ext4 es capaz de trabajar con volúmenes de hasta 1 exbibyte[1] y ficheros de tamaño de hasta 16 TiB.

Extents

Los extents han sido introducidos para reemplazar al tradicional esquema de bloques usado por los sistemas de archivos ext2/3. 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. Un extent simple en ext4 es capaz de mapear hasta 128MiB de espacio contiguo con un tamaño de bloque igual a 4KiB.



Compatibilidad hacia adelante

El sistema de archivos ext3 es compatible adelante con ext4, siendo posible montar un sistema de archivos ext3 como ext4 y usarlo transparentemente.

Compatibilidad hacia atrás

Ext4 es parcialmente compatible hacia atrás con ext3 ya que puede ser montado como una partición ext3 con la excepción de que si la partición ext4 usa extents, se pierde esta posibilidad. Extents están configurados por defecto desde la versión del kernel 2.6.23. Anteriormente, esta opción requería ser activada explícitamente (por ejemplo mount /dev/sda1 /mnt/point -t ext4dev -o extents).

Asignación persistente de espacio

El sistema de archivos ext4 permite la reserva de espacio en disco para un fichero. La actual metodología consiste en rellenar el fichero en el disco con ceros en el momento de su creación. Esta técnica no es ya necesaria con ext4, ya que una nueva llamada del sistema "preallocate()" ha sido añadida al kernel de Linux para uso de los sistemas de archivos que permitan esta función. El espacio reservado para estos ficheros quedará garantizado y con mucha probabilidad será contiguo. Ésta función tiene útiles aplicaciones en streaming y bases de datos.



Asignación retrasada de espacio

Ext4 hace uso de una técnica de mejora de rendimiento llamada Allocate-on-flush, también conocida como reserva de memoria retrasada. Consiste en retrasar la reserva de bloques de memoria hasta que la información esté a punto de ser escrita en el disco, a diferencia de otros sistemas de archivos, los cuales reservan los bloques necesarios antes de ese paso. Esto mejora el rendimiento y reduce la fragmentación al mejorar las decisiones de reserva de memoria basada en el tamaño real del fichero.

Límite de 32000 subdirectorios superado

En ext3 el nivel de profundidad en subdirectorios permitido estaba limitado a 32000. Este límite ha sido aumentado a 64000 en ext4, permitiendo incluso ir más allá de este límite (haciendo uso de "dir_nlink" ). Para permitir un rendimiento continuo, dada la posibilidad de directorios mucho más grandes, htree está activado por defecto en ext4. Esta función está implementada desde la versión 2.6.23. htree está también disponible en ext3 cuando la función dir_index está activada.

Journal checksumming

ext4 usa checksums en el registro para mejorar la fiabilidad, puesto que el journal es uno de los ficheros más utilizados en el disco. Esta función tiene un efecto colateral beneficioso: permite de forma segura evitar una lectura/escritura de disco durante el proceso de registro en el journal, mejorando el rendimiento ligeramente. La técnica del journal checksumming está inspirada en la investigación de la Universidad de Wisconsin en sistemas de archivos IRON (Sección 6, bajo el nombre "checksums de transacciones" ).

Desfragmentación online

Incluso haciendo uso de diversas técnicas para evitar la fragmentación, un sistema de larga duración tiende a fragmentarse con el tiempo. Ext4 dispondrá de una herramienta que permite defragmentar ficheros individuales o sistemas de ficheros enteros.

Chequeo del sistema de ficheros 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. Esta función está implementada desde la versión 2.6.24 del kernel de Linux.

Asignador multibloque

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 asignador multibloque está activo cuando se usa 0_DIRECT o si la asignación retrasada está activa. Esto permite al fichero tener diversos bloques "sucios" solicitados para escritura al mismo tiempo, a diferencia del actual mecanismo del kernel de solicitud de envío de cada bloque al sistema de archivos de manera separada para su asignación.

Timestamps mejorado

Puesto que los ordenadores se tornan en general cada vez más rápidos y que Linux está pasando a ser cada vez más usado en aplicaciones críticas, la granularidad de los timestamps basados en segundos se está volviendo insuficiente. Para resolver esto, ext4 tendrá timestamps medidos en nanosegundos. Ésta función está actualmente implementada en la versión 2.6.23 del kernel. Adicionalmente se han añadido 2 bits del timestamp extendido a los bits más significativos del campo de segundos de los timestamps para retrasar casi 500 años el problema del año 2038.



Rami Taibah es editor de Royal Linuxing, un blog en el que se permite presumir de degradar, ridiculizar y sodomizar el software propietario hasta el fin de los tiempos. En este articulo presenta una explicación no excesivamente técnica del nuevo sistema de ficheros oficial para Linux, el Ext4. Traducido por Ismael Valladolid, editor de Linux AV.

Rami Taibah
La versión 2.6.28 del kernel Linux fue liberada mientras estábamos celebrando la Nochevieja, y declaró el tan esperado sistema de ficheros Ext4 como estable. Se habló tanto sobre cómo de rápido y de fiable es Ext4 que la comunidad Ubuntu se permitió celebrar la noticia de que la próxima versión 9.04 de la distribución incluirá Ext4. Ext4 incorpora multitud de mejoras, pero para alguien sin perfil técnico como yo la explicación puede aparecer confusa, con multitud de términos técnicos que no parecen tener mucho sentido. Así que pensé en informarme y en hacer todo lo posible por entender Ext4 y cómo mejorará nuestra experiencia informática diaria.

Para que un sistema escriba un fichero en un disco duro se necesita una metodología, e instrucciones específicas para alojar el espacio necesario. El viejo 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.

Con la explosión de los accesos a Internet de alta velocidad y los contenidos multimedia este método aparece como claramente ineficiente. 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 1.000 MB ó 1 GB, se mapearán 10 extents en lugar de 256.000 bloques. Esto mejora el rendimiento y reduce la fragmentación.



¿Confuso? Permíteme explicarlo: 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.

Ext4 va a soportar alojar multi-bloques, en una sola llamada, en lugar de una llamada por bloque, evitando sobrecargas de proceso.

Si quieres las ventajas de Ext4, tu sistema Ext3 existente puede ser fácilmente actualizado a Ext4 sin necesidad de formatear. Esto significa que tus datos permanecerán intactos después de actualizar —lo que no quiere decir que no debas hacer un backup antes—.

Lo explicado ya reduce en gran medida la cantidad de fragmentación en tu disco duro, aunque ésta acabará sucediendo de una forma u otra. Ext4 incorporará una herramienta que permitirá desfragmentar ficheros individuales o sistemas de ficheros completos —no disponible aún en 2.6.28 pero sí en futuras versiones—.

Otras características:

* Comprobación más rápida del sistema de ficheros; los bloques sin alojar son simplemente ignorados
* Marcas temporales mejoradas, lo que retrasa el problema con el año 2038
* Subdirectorios ilimitados; donde Ext3 tenía un límite de 32.000
* Ficheros más grandes; Ext4 soporta volúmenes de hasta 1 EB y tamaños de fichero de hasta 16 TB.

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.



Softpedia ha ejecutado otra prueba distinta en un sistema Ubuntu y descubierto que el uso de Ext4 ahorra hasta 8,7 segundos durante el arranque del sistema.

* Ubuntu 8.10 con sistema de ficheros Ext3 arranca en 31,8 segundos (en un sistema AMD Sempron)
* Ubuntu 9.04 Alpha (Build 20090112.1) con sistema de ficheros Ext3 arranca en 28,3 segundos (en un sistema AMD Sempron)
* Ubuntu 9.04 Alpha (Build 20090112.1) con sistema de ficheros Ext4 arranca en 23,1 segundos (en un sistema AMD Sempron)
* Ubuntu 8.10 con sistema de ficheros Ext3 arranca en 26,8 segundos (en un sistema Intel Core 2 Duo;
* Ubuntu 9.04 Alpha (Build 20090112.1) con sistema de ficheros Ext3 arranca en 24,5 segundos (en un sistema Intel Core 2 Duo)
* Ubuntu 9.04 Alpha (Build 20090112.1) con sistema de ficheros Ext4 arranca en 21,4 segundos (en un sistema Intel Core 2 Duo)

Fuentes: javascript:void(0)
http://es.wikipedia.org/wiki/Ext4
Datos archivados del Taringa! original
17puntos
4,855visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
1visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

M
Menocino🇦🇷
Usuario
Puntos0
Posts43
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.