{"id":336,"date":"2009-04-03T13:24:31","date_gmt":"2009-04-03T19:24:31","guid":{"rendered":"http:\/\/www.lastdragon.net\/?p=336"},"modified":"2009-04-03T13:24:31","modified_gmt":"2009-04-03T19:24:31","slug":"lo-nuevo-en-el-sistema-de-archivos-ext4","status":"publish","type":"post","link":"https:\/\/www.lastdragon.net\/?p=336","title":{"rendered":"Lo nuevo en el sistema de archivos EXT4"},"content":{"rendered":"<p>As\u00ed como el Ext3 sali\u00f3 para competir con ReiserFS, Ext4 parece estar listo para competir contra Btrfs (Butter FS) de Oracle<\/p>\n<p>En mi apreciaci\u00f3n personal, ReiserFS era mejor que Ext3 , as\u00ed  como btrfs es mejor que Ext4, sin embargo no le quitare merito al ext4.<\/p>\n<p>Ext3 no era muy diferente a Ext2, la excepci\u00f3n el journaling, sin el journaling Ext3 era Ext2<\/p>\n<p>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<\/p>\n<p>I Pre asignaci\u00f3n de espacio (Mejorado)<\/p>\n<p>Desde el ext2 existe esto, desde el ext2 los sistemas de archivos en Linux con ext2 se fragmentan poco, ya que la pre asignaci\u00f3n, intenta reservar espacio en el disco duro de forma contigua, esta funci\u00f3n 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\u00edan creando archivos con contenido nulo por el total del tama\u00f1o del archivo, esta capacidad fue mejorada, pero dentro del kernel, con una nueva API preallocate() desde el kernel se garantiza que esta asignaci\u00f3n evitando que el driver de ext4 tenga que hacer y de hecho, ya no lo hace por lo tanto se hace m\u00e1s eficiente almacenar archivos.<\/p>\n<p>La pre asignaci\u00f3n de espacio desde el ext2, ext3 y mejorada en ext4 tiene un punto d\u00e9bil y es el mismo incluso en esta versi\u00f3n 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\u00e1nto mide, no puede hacer la pre asignaci\u00f3n, 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\u00f3sito de pre asignaci\u00f3n y no se fragmentan los 100MB, pero que pasa el sistema operativo ni el sistema de archivos saben el tama\u00f1o total del archivo. Pues el sistema no sabe cu\u00e1nto debe reservar y por lo tanto va a escribiendo los datos como le van llegando con una alta probabilidad de fragmentaci\u00f3n, porque no sabe cuando le llegara el \u00faltimo dato, no sabe cu\u00e1nto espacio reservar, solo escribe como van llegando los bytes.<\/p>\n<p> I I Asignaci\u00f3n retrasada la nueva  habilidad en EXT4<\/p>\n<p>El punto d\u00e9bil de la pre asignaci\u00f3n se ha resuelto  con la Asignaci\u00f3n retrasada , esto significa que los archivos no se escribir\u00e1n al disco duro cuando el sistema de archivos no conozca el tama\u00f1o final del archivo, como no conoce el tama\u00f1o y no sabe cu\u00e1nto 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\u00f3n contigua en el disco y descargar de la RAM al disco duro todo el archivo en una zona contigua evitando la fragmentaci\u00f3n.<\/p>\n<p>Esta habilidad tiene 2 puntos d\u00e9biles, la cantidad de RAM y una falla de poder.<\/p>\n<p>La asignaci\u00f3n retrasada solo puede retrasarse, si el archivo no supera la cantidad de ram disponible en el sistema, si la supera irremediablemente tendr\u00e1 que escribir en el disco y sin embargo la fragmentaci\u00f3n ser\u00e1 menor, ya que al menos grandes bloques del archivo ser\u00e1n contiguos<\/p>\n<p>La falla de energ\u00eda parece obvia, como no escribe nada en disco duro evitando la asignaci\u00f3n, todo el contenido del archivo esta en RAM y se perder\u00e1 si en este proceso falla la energ\u00eda.<\/p>\n<p>\u00bfY c\u00f3mo es que puede pasar que el sistema operativo no sepa cu\u00e1nto mide un archivo?<\/p>\n<p>Por ejemplo un programa escrito en C que va escribiendo con putc, sobre un archivo, pr\u00e1cticamente escribe de byte en byte y ni el programa ni el OS saben cuando ser\u00e1 el ultimo byte, en casos m\u00e1s 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\u00e1nto mide el archivo que se va a transmitir.<\/p>\n<p>Por ejemplo los FTPs, la gran mayor\u00eda de los clientes FTP, cuando reciben un archivo no saben el tama\u00f1o 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\u00f3n retrasada evita la fragmentaci\u00f3n. Hay muchos m\u00e1s casos donde ser\u00e1 \u00fatil la asignaci\u00f3n retrasada.<\/p>\n<p>III Desfragmentaci\u00f3n en vivo ( Re Asignaci\u00f3n )<\/p>\n<p>A pesar los esfuerzos con la asignaci\u00f3n retrasada por evitar la fragmentaci\u00f3n, si la memoria RAM se agota, irremediablemente habr\u00e1 que escribir en el disco y con una alta probabilidad de fragmentaci\u00f3n, pero el defragmentador vivo llega al rescate, esta capacidad trata despu\u00e9s de que un archivo quede fragmentado, re asignarlo  en un espacio contiguo desfragmentando el disco duro<\/p>\n<p>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<\/p>\n","protected":false},"excerpt":{"rendered":"<p>As\u00ed como el Ext3 sali\u00f3 para competir con ReiserFS, Ext4 parece estar listo para competir contra Btrfs (Butter FS) de Oracle En mi apreciaci\u00f3n personal, ReiserFS era mejor que Ext3 , as\u00ed como btrfs es mejor que Ext4, sin embargo no le quitare merito al ext4. Ext3 no era muy diferente a Ext2, la excepci\u00f3n&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-336","post","type-post","status-publish","format-standard","hentry","category-consultoria-y-manuales"],"_links":{"self":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/posts\/336","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=336"}],"version-history":[{"count":0,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/posts\/336\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=336"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=336"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=336"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}