Lo nuevo en el sistema de archivos EXT4

Así como el Ext3 salió para competir con ReiserFS, Ext4 parece estar listo para competir contra Btrfs (Butter FS) de Oracle

En mi apreciación personal, ReiserFS era mejor que Ext3 , así como btrfs es mejor que Ext4, sin embargo no le quitare merito al ext4.

Ext3 no era muy diferente a Ext2, la excepción el journaling, sin el journaling Ext3 era Ext2

Ahora llega el Ext4 y parece ser realmente un brinco adelante de lo que fue ext2 y ext3, aunque no trae tantas opciones con btrfs, ya tiene 2 nuevas y una mejorada que ha existido desde ext2

I Pre asignación de espacio (Mejorado)

Desde el ext2 existe esto, desde el ext2 los sistemas de archivos en Linux con ext2 se fragmentan poco, ya que la pre asignación, intenta reservar espacio en el disco duro de forma contigua, esta función es propia del sistema de archivos, por lo que era el driver de ext2 y ext3 los responsables de pre asignar el espacio y lo hacían creando archivos con contenido nulo por el total del tamaño del archivo, esta capacidad fue mejorada, pero dentro del kernel, con una nueva API preallocate() desde el kernel se garantiza que esta asignación evitando que el driver de ext4 tenga que hacer y de hecho, ya no lo hace por lo tanto se hace más eficiente almacenar archivos.

La pre asignación de espacio desde el ext2, ext3 y mejorada en ext4 tiene un punto débil y es el mismo incluso en esta versión mejorada y es que el sistema de archivos debe conocer de ante mano cuanto mide el archivo que se va a almacenar, si no sabe cuánto mide, no puede hacer la pre asignación, por ejemplo, si sabe que mide 100MB, se busca un espacio contiguo de 100MB y se reserva ( pre asigna) de esta forma se cumple con el propósito de pre asignación y no se fragmentan los 100MB, pero que pasa el sistema operativo ni el sistema de archivos saben el tamaño total del archivo. Pues el sistema no sabe cuánto debe reservar y por lo tanto va a escribiendo los datos como le van llegando con una alta probabilidad de fragmentación, porque no sabe cuando le llegara el último dato, no sabe cuánto espacio reservar, solo escribe como van llegando los bytes.

I I Asignación retrasada la nueva habilidad en EXT4

El punto débil de la pre asignación se ha resuelto con la Asignación retrasada , esto significa que los archivos no se escribirán al disco duro cuando el sistema de archivos no conozca el tamaño final del archivo, como no conoce el tamaño y no sabe cuánto va asignar, va almacenando todos los datos que le llegan en la RAM, hasta que le llega el EOF, entonces ahora que ya conoce finalmente cuanto mide el archivo completo, ya puede hacer la asignación contigua en el disco y descargar de la RAM al disco duro todo el archivo en una zona contigua evitando la fragmentación.

Esta habilidad tiene 2 puntos débiles, la cantidad de RAM y una falla de poder.

La asignación retrasada solo puede retrasarse, si el archivo no supera la cantidad de ram disponible en el sistema, si la supera irremediablemente tendrá que escribir en el disco y sin embargo la fragmentación será menor, ya que al menos grandes bloques del archivo serán contiguos

La falla de energía parece obvia, como no escribe nada en disco duro evitando la asignación, todo el contenido del archivo esta en RAM y se perderá si en este proceso falla la energía.

¿Y cómo es que puede pasar que el sistema operativo no sepa cuánto mide un archivo?

Por ejemplo un programa escrito en C que va escribiendo con putc, sobre un archivo, prácticamente escribe de byte en byte y ni el programa ni el OS saben cuando será el ultimo byte, en casos más cercanos, las transmisiones de archivos por internet, algunas veces los servidores y los clientes no se ponen de acuerdo y no se informan mutuamente cuánto mide el archivo que se va a transmitir.

Por ejemplo los FTPs, la gran mayoría de los clientes FTP, cuando reciben un archivo no saben el tamaño final del archivo por lo que van escribiendo como van llegando los datos, con la alta probabilidad de fragmentar, en casos como este es donde la asignación retrasada evita la fragmentación. Hay muchos más casos donde será útil la asignación retrasada.

III Desfragmentación en vivo ( Re Asignación )

A pesar los esfuerzos con la asignación retrasada por evitar la fragmentación, si la memoria RAM se agota, irremediablemente habrá que escribir en el disco y con una alta probabilidad de fragmentación, pero el defragmentador vivo llega al rescate, esta capacidad trata después de que un archivo quede fragmentado, re asignarlo en un espacio contiguo desfragmentando el disco duro

El EXT4 tiene muchas otras mejoras, pero a mi gusto estas 3 son las mas significativas y por las que vale la pena actualizar a EXT4

11 Comments

Add a Comment

Comment spam protected by SpamBam