Ext4 explicado para todos

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.

ext4 extents

¿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.

ext4 prueba rendimiento escritura

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)

Visto en Ext4 Filesystem Explained in Plain English.

¿Te pareció interesante? Sé tan amable de menear este artículo.

amd benchmark ext3 ext4 extent intel jfs kernel Linux reiserfs Ubuntu xfs

Bookmark and Share votar

5 Respuestas to “Ext4 explicado para todos”

  1. Información Bitacoras.com…

    Valora en Bitacoras.com: 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 excesivamen….

  2. Ext4 explicado con sencillez…

    Era necesario que hablase de este excelente artículo publicado en Royal Linuxing! (en inglés) y traducido al español por Ismael Valladolid de Linux AV.
    Se trata de una explicación sencilla y didáctica de lo que es y lo que representa el nuevo sist…

  3. Excelente! gracias por la información, buen trabajo :) ahora si ya entiendo Ext4 XD.

    Salu2!

  4. Gracias por la explicación!!! :)

  5. Bien por la explicación gracias y saludos desde México.

Deja una Respuesta

El enlace de tu firma no es válido para los buscadores. Cualquier intento por tu parte de hacer spam no tendrá el resultado esperado. Haz un comentario interesante y contribuye a la discusión.