Recolección y recorte de basura: SSD Dirty Little Secret
Los rumores en línea y en ciertos círculos de TI han demostrado ser ciertos: Las velocidades de SSD pueden ralentizarse con el tiempo. Afortunadamente, hay cosas que puede hacer que pueden evitar que esto suceda y ayudarlo a mantener la naturaleza rápida de sus SSD.
Qué es la recolección de basura de SSD
Al igual que sacar la basura es una tarea necesaria para mantener su hogar, la recolección de basura también es un tipo de mantenimiento de SSD. Es un nombre poco apropiado, ya que la recolección de basura no tiene nada que ver con la eliminación de archivos que ya no son necesarios. Es más como deshacerse de cajas vacías de cosas que ya has tirado. En esencia, la recolección de basura SSD es un proceso automatizado diseñado para mejorar el rendimiento.
Todos sabemos que los SSD son inicialmente muy rápidos, pero estamos descubriendo que se vuelven más lentos con el tiempo, especialmente a medida que la unidad comienza a llenarse. Esto es exactamente lo que la recolección de basura SSD está diseñada para evitar. Con un mantenimiento adecuado, se puede conservar la velocidad de un SSD.
La gran desaceleración de SSD
Para comprender por qué las SSD se ralentizan con el tiempo, es importante saber cómo funcionan los sistemas de archivos. Cada sistema de archivos tiene su propia forma de hacer las cosas, pero en términos generales, cuando elimina un archivo, ese archivo no se ha ido realmente. Por lo general, el sistema operativo no borra los bloques de almacenamiento que antes estaban habitados por el archivo. En su lugar, el sistema operativo simplemente marca los bloques como disponibles y almacena esa información en un archivo de directorio. Esta es la razón por la que el software de recuperación como Hard Disk Warrior es capaz de recuperar archivos que han sido ‘borrados’. El archivo todavía existe en esos bloques en el disco, pero el archivo de directorio los enumera como vacíos para que sean invisibles para su computadora.
Con los discos duros, este método de eliminar un archivo no era un problema. El sistema operativo simplemente marcaría los bloques como disponibles, y el disco duro podría escribir nuevos datos sobre la parte superior de los datos antiguos. Las SSD no pueden hacer eso. Para los SSD, los bloques de almacenamiento deben borrarse antes de que puedan sobrescribirse. Es este requisito para borrar bloques usados anteriormente lo que hace que las unidades SSD se vuelvan más lentas con el tiempo.
Sacar la basura de SSD
Para evitar que ocurra esta situación indeseable, los SSD modernos ejecutan rutinas complejas llamadas recolección de basura para mantener siempre una reserva lo más grande posible de bloques vacíos prístinos listos para escribir. La recolección de basura implica que el controlador busque en su inventario de páginas escritas páginas que han sido marcadas como «obsoletas», es decir, en las que se escribieron y luego los datos que contenían debían ser modificados por el sistema operativo; debido a que cambiar el estado de la página es imposible sin borrarla primero, los cambios siempre se escriben en páginas nuevas y las páginas antiguas se marcan obsoletas. La recolección de basura busca bloques que contienen una mezcla de páginas buenas y obsoletas y luego duplica todas las páginas buenas en bloques nuevos y deja solo páginas obsoletas en el bloque antiguo. Luego borra el bloque viejo y lo marca listo para usar.
Sin embargo, hay un detalle más a tener en cuenta sobre la recolección de basura SSD. Los SSD pueden leer y escribir a nivel de página, que suele ser de 8 KB para las unidades modernas, pero tienen un defecto peculiar en el sentido de que no pueden borrarse a nivel de página. Los SSD solo pueden borrar bloques enteros, que por lo general se componen de cientos de páginas. La razón de esto es que borrar el contenido de una página requiere zapear esa página con una cantidad no insignificante de voltaje, y el diseño de estilo NAND de todas las unidades SSD modernas hace que sea prohibitivamente difícil aislar ese voltaje solo a las páginas que necesitan borrarse.
Y aquí es donde entra en juego el mal nombre de «Recolección de basura», porque en realidad son buenas páginas las que se «recopilan», con la basura dejada atrás. El objetivo detrás de este proceso es tratar de optimizar el rendimiento haciendo que los bloques estén completamente vacíos (y luego borrando el bloque) o completamente llenos.
¿Qué hay De TRIM?
En un disco duro generalmente hay una correlación fija entre los clústeres del sistema de archivos y los sectores del disco. Pero en una SSD, donde no hay una correlación fija y donde las páginas en uso tienen que ser rastreadas y recogidas por la recolección de basura, puede ser un gran problema. Las páginas que contienen archivos eliminados parecen páginas válidas, y se siguen recopilando junto con páginas realmente buenas.
Esta es la situación que se introdujo para remediar. TRIM (que está correctamente en mayúscula, pero no es un acrónimo) es un comando ATA que el sistema operativo puede hacer que se envíe cuando elimina un archivo. El comando TRIM proporciona ese puente desde el nivel de archivo al nivel de bloque, lo que le da al sistema operativo una forma de decirle a la SSD que está eliminando archivos y marcar las páginas de esos archivos como obsoletas.
Con TRIM, un SSD ya no está obligado a guardar páginas pertenecientes a archivos eliminados. TRIM no es una alternativa a la recolección de basura, funciona con la recolección de basura para marcar las páginas como obsoletas de manera más adecuada. Y no es necesario RECORTAR para que la recolección de basura funcione—pero RECORTAR hace que la recolección de basura de un SSD sea más eficiente.
Dicho esto, si está utilizando un Mac, Apple no admite TRIM en SSD de terceros. Era posible evitar esta limitación en versiones anteriores de OS X, pero no se puede hacer en Yosemite sin abrir un agujero de seguridad; no lo haga, porque aunque TRIM hace una diferencia al reducir la amplificación de escritura y extender la vida útil y el rendimiento de un SSD, no vale la pena abrir los agujeros de seguridad del tamaño de un granero que tiene que abrir para obtenerlo.
Por lo tanto, siempre use TRIM si puede. Hará que la recolección de basura de su SSD funcione mucho mejor. Pero si te encuentras en una situación en la que el acabado no está disponible, no entres en pánico: es bueno tenerlo, pero no es un requisito.