Desde los primeros días de los sistemas operativos multitarea, la fragmentación ha sido un problema. Afectando el rendimiento de lectura y escritura en los discos duros magnéticos tradicionales, la fragmentación tiene su cuota de efectos negativos incluso en los medios de estado sólido actuales. ¿Cómo reducimos la fragmentación y deberíamos combatirla en las unidades SSD? ¡Sigue leyendo para descubrirlo!
Contenido
- ¿Cómo Ocurre la Fragmentación?
- Reducción de la Fragmentación
- Unidades de Estado Sólido y Fragmentación
¿Cómo Ocurre la Fragmentación?
Cualquier archivo que estés a punto de escribir en ese disco se colocará en el bloque contiguo más grande de espacio. Cuando tienes un disco duro nuevo con mucho espacio vacío, el bloque contiguo más grande será mayor que el archivo que vas a guardar. Avanza unos días, semanas y meses guardando archivos, eliminándolos y guardándolos nuevamente, y ya no tendrás tanto espacio libre en tu disco duro. E incluso si lo tienes, probablemente esté disperso por el disco en forma de múltiples bloques más pequeños de espacio libre. Cualquier archivo que estés a punto de escribir ahora se colocará en el bloque más grande de espacio libre, solo que esta vez el archivo puede ser realmente más grande que el bloque libre más grande disponible.
Cuando esto ocurre, el sistema operativo almacenará partes del archivo en diferentes bloques sin importar su ubicación física en el disco. Si tienes un archivo realmente grande y un disco duro realmente fragmentado, el archivo podría dividirse en varios cientos de fragmentos. Al leer dicho archivo, el sistema tendrá que acceder a cada bloque uno tras otro. El disco duro necesitará realizar operaciones de búsqueda, moviendo las cabezas magnéticas a un nuevo lugar y esperando a que se estabilicen. Esto ocurre para cada bloque, reduciendo significativamente la velocidad de lectura del archivo. En lugar de una lectura única y contigua con la tasa de transferencia máxima que tu disco duro es capaz de alcanzar (tal vez 100-150 MB/s), obtendrás una tasa mucho, mucho más lenta de alrededor de 10-30 MB/s (dependiendo de cuán grande y fragmentado esté el archivo). ¿Suena lo suficientemente mal? La peor parte aún está por venir.
Tener un gran número de archivos altamente fragmentados en tu disco duro no solo reduce el rendimiento de lectura y escritura, sino que también puede afectar la longevidad del propio disco duro. Los movimientos constantes de las cabezas magnéticas ponen un desgaste adicional en la mecánica del disco, causando desgaste prematuro y reduciendo su vida útil efectiva.
Si eso no es suficiente, tenemos la última mala noticia para ti. Los archivos fragmentados son mucho más difíciles de recuperar si algo le sucede a tus datos. Una pequeña corrupción en el sistema de archivos, un documento eliminado accidentalmente o un emocionante experimento con Ubuntu pueden fácilmente hacer que tus datos desaparezcan de repente.
Si has seguido nuestro blog por algún tiempo, ya puedes conocer los algoritmos de recuperación conscientes del contexto basados en la búsqueda de firmas. La recuperación consciente del contexto funciona escaneando el disco a bajo nivel en un intento de detectar archivos de tipos conocidos analizando datos en bruto y comparándolos con una base de datos de patrones conocidos. En otras palabras, la recuperación consciente del contexto lee la superficie del disco sector por sector, analizando su contenido y tratando de averiguar si el sector contiene lo que parece ser una cabecera de archivo.
Después de encontrar una cabecera de archivo, el algoritmo la analizará para determinar la longitud del archivo (esta información a menudo se encuentra en la cabecera o puede determinarse analizando los datos subsecuentes). Ahora, sabiendo dónde comienza el archivo y cuánto mide, el algoritmo consciente del contenido puede intentar determinar qué sectores del disco pertenecen a ese archivo.
Hay varias formas de hacer esto. La forma tonta es simplemente asumir que un cierto número de sectores después del que contiene la cabecera del archivo pertenecen a ese archivo. Este método es tonto debido, bueno, a la fragmentación. Sin embargo, si no hay un sistema de archivos disponible, incluso el algoritmo de recuperación de datos más inteligente tendrá que usar el método ‘tonto’, ya que no estarán disponibles técnicas más avanzadas.
El método más inteligente verifica el sistema de archivos antes de hacer suposiciones. Si tenemos los sectores 1, 2, 3 y 4, el sector 1 está listado como «disponible» y se detectó una cabecera de archivo JPEG con una longitud de archivo de exactamente 2 sectores, ¿cuáles deberíamos elegir? El algoritmo tonto siempre elegirá los sectores 1 y 2 sin importar nada más. El más inteligente verificará el sistema de archivos para determinar si el sector 2 está listado como «espacio libre» o si ya es parte de otro archivo. Si el sector 2 pertenece a otro archivo, el algoritmo verificará los sectores 3 y 4. Si, por ejemplo, el sector 3 está listado como «espacio libre», el algoritmo inteligente asumirá que el archivo JPEG en cuestión estaba ubicado en los sectores 1 y 3.
Por supuesto, ambos algoritmos podrían estar equivocados. Pero entiendes la idea. Cuantos menos fragmentos tenga el archivo, mayor será la probabilidad de una recuperación exitosa.
Reducción de la Fragmentación
¿Cómo se reduce la fragmentación al mínimo absoluto? Primero y ante todo, existen herramientas de desfragmentación. Windows tiene una herramienta decente de optimización y desfragmentación de discos integrada en Windows 7. Una realmente buena apareció en Windows 8, y una excelente utilidad de desfragmentación está disponible con Windows 10. Independientemente de la versión de Windows que uses, configurar la utilidad de Optimización y Desfragmentación de Discos para que se ejecute periódicamente en todos los discos y particiones es una excelente manera de reducir la fragmentación.
En discos duros ocupados con poco espacio libre disponible, la desfragmentación puede no ser efectiva. Realmente no hay una solución alternativa aparte de asegurarse de que cada partición en tu disco duro tenga un cierto porcentaje de su espacio sin usar. Generalmente, mantener un espacio libre de alrededor del 20 al 40 por ciento del disco es suficiente para asegurar un funcionamiento fluido de las herramientas de desfragmentación de discos. Además, mantener tanto espacio libre como sea posible permite a Windows elegir bloques contiguos más grandes cada vez que estás a punto de guardar un nuevo archivo, evitando que ocurra la fragmentación desde el principio.
Entonces: programa un desfragmentador para que se ejecute periódicamente y asegúrate de que tu disco tenga mucho espacio libre, y estarás bien. Pero, ¿se aplica este consejo a medios de estado sólido como unidades flash USB, tarjetas de memoria y, lo más importante, unidades SSD?
Unidades de Estado Sólido y Fragmentación
Es de conocimiento común que las unidades SSD no deben (o NO DEBEN) ser desfragmentadas. De hecho, las unidades SSD no tienen partes mecánicas móviles. No hay cabezales móviles que necesiten saltar a un nuevo sector y estabilizarse. Una unidad SSD es tan rápida leyendo varios sectores consecutivos como leyendo varios sectores aleatorios (bueno, hasta cierto punto y siempre que el tamaño de un sector del disco sea el mismo y esté alineado con el tamaño del bloque de datos mínimo de la SSD).
Si eso no es suficiente argumento, considere que las unidades SSD basadas en memoria flash NAND tienen una vida útil limitada. Su vida útil está limitada por el número de operaciones de escritura en cada celda flash. Mover datos de un lado a otro (que es lo que hace una herramienta de desfragmentación de disco) pone un desgaste innecesario en las celdas flash sin proporcionar ningún beneficio visible en las velocidades de lectura o escritura.
Finalmente, las unidades SSD no almacenan datos de manera contigua o consecutiva internamente. En su lugar, los controladores integrados en las unidades SSD remapean constantemente los bloques de datos lógicos y físicos para distribuir el desgaste de manera equitativa entre las muchas celdas flash.
Sin desfragmentación disponible, ¿cómo mantienes tus archivos en una sola pieza? La única manera de evitar la fragmentación en las unidades SSD es mantener una cantidad considerable de espacio libre. Asegúrate de tener al menos 30 por ciento de espacio libre en tu unidad SSD. Lo sé, no es fácil ya que las unidades SSD son típicamente mucho más pequeñas que sus contrapartes mecánicas. Sin embargo, mantener espacio libre dedicado en una SSD ayuda al disco a realizar tareas de mantenimiento interno como nivelación de desgaste y borrado preventivo de bloques (TRIM y recolección de basura) mucho más rápido y eficientemente en comparación con una unidad casi llena.