¿Alguna vez se han preguntado por qué sus distribuciones favoritas no vienen con herramientas preinstaladas para desfragmentar el contenido almacenado en sus discos duros?
Pues la respuesta reside en la manera en que funcionan los sistemas de archivos más populares que se usan en Linux.
Qué es fragmentación
En resumen, una unidad de disco duro tiene una serie de sectores en los que, cada uno de los cuales puede contener una pequeña pieza de información. Los archivos, en particular los grandes, deben ser almacenados a través de una serie de sectores diferentes. Digamos que querés guardar un número de archivos diferentes en tu disco.
Cada uno de estos archivos se almacenan en un grupo contiguo de sectores. Más tarde,
cuando se actualiza uno de los archivos guardados originalmente, se aumenta el tamaño del archivo. El sistema de archivos intenta almacenar las piezas nuevas del archivo justo al lado (digamos que de manera contigua) de las piezas originales.
Por desgracia, si no hay espacio suficiente sin interrupciones, el archivo debe ser dividido en varias piezas - obviamente esto ocurre de forma transparente al usuario. Cuando el disco duro lee el archivo, sus cabezas deben saltar de un lado entre las distintas ubicaciones físicas en el disco duro para leer cada fragmento de los sectores - esto ralentiza las cosas.
Entonces decimos que
desfragmentación es un proceso e intenso en el cual se mueven los bits de los archivos con el objetivo de que estos queden almacenados de manera continua en el disco.
Como funcionan los sistemas de archivos de windows
El sistema de archivos FAT, que todavía es usado en pendrives o memorias USB, trabaja de una manera no tan inteligente. Cuando guarda un archivo lo intenta hacer lo más cercano al inicio del disco como le es posible. De esta manera cuando este archivo aumenta de tamaño seguramente ya hay otro archivo ocupando el espacio contiguo por lo que un fragmento de este debe de guardarse en el primer espacio de disco disponible que se encuentra libre.
El diseño de NTFS es un poco más astuto, deja un pequeño buffer para cada archivo para permitir que este aumente de tamaño, pero como ya sabemos no es suficiente y a fin de cuentas siempre terminan archivos fragmentados.
Las últimas versiones de windows ejecutan procesos de desfragmentación en segundo plano (o permiten hacerlo como tareas programadas)
Cómo funcionan los sistemas de archivos de linux?
Ext2, ext3 y ext4 almacenan los archivos de una manera más inteligente. En lugar de alojarlos de manera contigua lo hacen de manera dispersa por todo el disco dejando suficiente espacio libre entre cada uno. Cuando un archivo es editado y necesita crecer normalmente hay suficiente espacio para este. Si la fragmentación se presenta, el sistema de archivos intentará mover los archivos (automáticamente) para reducir la fragmentación, esto sin el uso de una utilidad de fragmentación.
Por la manera en la que trabaja la fragmentación se presentará cuando el disco se encuentra lleno o cerca de llenarse. En el caso de que necesitemos defragmentar la partición la manera más simple será mover los archivos a otra partición y devolverlos al origen.
Algunas maneras de medir la fragmentación en tu sistema de archivos son:
-invocar a
fsck (file system check) y buscar en la salida los "
non-contiguous inodes"
-Usar
defrag
-Usar
Fragger
-Usar
filefrag (es parte de E2fsprogs: Utilidades para sistemas de archivos ext2, ext3 y ext4)
[color=#000000]# filefrag -v /var/log/messages
Checking /var/log/messages
Filesystem type is: ef53
Filesystem cylinder groups is approximately 9448
Blocksize of file /var/log/messages is 4096
File size of /var/log/messages is 72 (1 blocks)
First block: 1841075
Last block: 1841075
/var/log/messages: 1 extent found[/color]
La manera en que interpretamos la salida del programa es la siguiente
Si aparece "1 extend found" es archivo no está fragmentado, si aparece 2 o más extends entonces si lo está pero basta con crear una copia y borrar el originar, algo como lo siguiente.
cp -v archivoFragmentado{,.bk} && mv -v archivoFragmentado.bk archivoDesfargmentado
Si volvemos a invocar filefrag verificaremos que no está más en distintos fragmentos
Si te ha gustado el artículo inscribete al feed clicando en la imagen más abajo para tenerte siempre actualizado sobre los nuevos contenidos del blog:
El Mundo de Ubuntu en las Redes Sociales
Espero que esta publicación te haya gustado. Si tienes alguna duda, consulta o quieras complementar este post, no dudes en escribir en la zona de comentarios. También puedes visitar Facebook, Twitter, Google +, Linkedin, Instagram, Pinterest, restantes Redes Sociales y Feedly donde encontrarás información complementaria a este blog. COMPARTE EN!