Decidí que un poco de información de fondo podría ser útil para hacer esta respuesta clara, pero como se puede ver que fui un poco OCD por lo que es posible que desee saltar hasta el final y luego volver si es necesario. Aunque sé un poco, no soy un experto en S.S.D. así que si alguien ve un error EDIT. :).
Información de fondo:
¿Qué es un S.S.D.?:
Un S.S.D. o unidad de estado sólido es un dispositivo de almacenamiento sin partes móviles. El término S.S.D. suele referirse específicamente a las unidades de estado sólido basadas en nand-flash y destinadas a actuar como alternativa al disco duro, pero en realidad son sólo una forma de S.S.D., y ni siquiera la más popular. El tipo más popular de S.S.D. son los medios extraíbles basados en nand-flash, como las memorias USB y las tarjetas de memoria, aunque rara vez se les denomina S.S.D. Los S.S.D. también pueden estar basados en la memoria RAM, pero la mayoría de las unidades de memoria RAM son generadas por software y no por hardware físico.
¿Por qué existen los S.S.D. Nand-flash destinados a actuar como alternativa al disco duro?:
Para ejecutar un sistema operativo y su software se necesita un medio de almacenamiento rápido. Aquí es donde entra en juego la memoria RAM, pero históricamente la memoria RAM era cara y las computadoras no podían manejar cantidades masivas. Cuando se ejecuta un sistema operativo, o un programa, las porciones de datos requeridas en ese momento se copian a la memoria RAM, porque el dispositivo de almacenamiento no es lo suficientemente rápido. Se crea un cuello de botella, porque hay que esperar a que los datos se copien del dispositivo de almacenamiento lento a la memoria ram. Aunque no todos los S.S.D. nand-flash tienen un mejor rendimiento que los discos duros más tradicionales, los que sí lo tienen ayudan a reducir el cuello de botella al ofrecer tiempos de acceso, velocidades de lectura y velocidades de escritura más rápidos.
¿Qué es Nand-flash?:
El almacenamiento flash es un medio de almacenamiento que utiliza la electricidad en lugar del magnetismo para guardar los datos. Nand-flash es un almacenamiento flash que utiliza una pasarela NAND. A diferencia de A nor-flash que es de acceso aleatorio, nand-flash es de acceso secuencial.
¿Cómo almacenan los datos los S.S.D. Nand-flash?:
El almacenamiento Nand-flash se compone de bloques, esos bloques se dividen en celdas, las celdas contienen páginas. A diferencia de los discos duros, que utilizan el magnetismo para almacenar los datos, los soportes flash utilizan la electricidad, por lo que los datos no pueden sobrescribirse; hay que borrarlos para reutilizar el espacio. El dispositivo no puede borrar páginas individuales; el borrado debe producirse a nivel de bloque. Como no se pueden escribir datos en un bloque que ya está utilizado (aunque no todas las páginas lo estén), primero se debe borrar todo el bloque y luego se pueden escribir datos en sus páginas en el bloque ahora vacío. El problema es que se perderían los datos que ya están en esas páginas, ¡incluso los que no se quieren descartar! Para evitar esto, los datos existentes que se van a conservar deben copiarse en otro lugar antes de realizar el borrado del bloque. Este procedimiento de copia no lo realiza el sistema operativo del ordenador, sino que se realiza a nivel de dispositivo mediante una función conocida como recolección de basura.
En los discos duros se utiliza un plato magnético para almacenar los datos. Al igual que los discos de vinilo, el plato tiene pistas, y estas pistas están divididas en secciones llamadas sectores. Un sector puede contener una cierta cantidad de datos (normalmente 512 bytes, pero algunos más nuevos son de 4KB). Cuando se aplica un sistema de archivos los sectores se agrupan en clusters (basados en un tamaño que se especifica, llamado tamaño de asignación o tamaño de cluster), y luego los archivos se escriben a través de los clusters. También es posible dividir un sector para hacer clusters más pequeños que el tamaño de su sector. El espacio no utilizado en un clúster después de que un archivo se escribe a través de un clúster (o varios) no es utilizable, el siguiente archivo comienza en un nuevo clúster. Para evitar mucho espacio no utilizable, la gente suele utilizar tamaños de clúster más pequeños, pero esto puede disminuir el rendimiento cuando se escriben archivos grandes. Los S.S.D. Nand-flash no tienen placa magnética, sino que utilizan la electricidad que pasa por los bloques de memoria. Un bloque está formado por celdas que contienen páginas. Las páginas tienen una capacidad X (normalmente 4 KB), por lo que el número de páginas determinará la capacidad de un bloque (normalmente 512 KB). En los SSD, una página equivale a un sector en un disco duro, ya que ambos representan la división más pequeña del almacenamiento.
¿Qué es la nivelación de desgaste?
Los bloques de almacenamiento Nand-flash pueden escribirse y borrarse un número limitado de veces (lo que se conoce como su ciclo de vida). Para evitar que la unidad sufra una reducción de la capacidad (bloques muertos), tiene sentido desgastar los bloques de la forma más uniforme posible. El ciclo de vida limitado es también la razón principal por la que mucha gente sugiere no tener un archivo de página o una partición de intercambio en el sistema operativo si se utiliza un S.S.D. basado en Nand-flash (aunque las rápidas velocidades de transferencia de datos del dispositivo a la memoria RAM son también un factor importante en esta sugerencia).
¿Qué es la sobredotación?:
La sobredotación define la diferencia entre la cantidad de espacio libre que hay, comparada con la que parece haber. Los dispositivos de almacenamiento basados en Nand-flash afirman ser más pequeños de lo que son, de modo que se garantice la existencia de bloques vacíos para que la eliminación de la basura los utilice. Hay un segundo tipo de sobreaprovisionamiento llamado sobreaprovisionamiento dinámico que simplemente se refiere al espacio libre conocido dentro del espacio libre mostrado. Hay dos tipos de sobredotación dinámica: a nivel del sistema operativo y a nivel del controlador de la unidad. En el nivel del sistema operativo se puede utilizar Trim para liberar bloques en los que se puede escribir inmediatamente. En el nivel de la controladora, se puede utilizar el espacio no asignado de la unidad (sin particiones ni sistema de archivos). Tener más bloques libres ayuda a que la unidad funcione a su máximo rendimiento, ya que puede escribir inmediatamente. También aumenta la probabilidad de tener bloques ubicados secuencialmente, lo que reduce los tiempos de acceso, ya que los S.S.D. Nand-flash utilizan el acceso secuencial para leer y escribir datos.
¿Qué es la amplificación de la escritura?:
Dado que los soportes Nand-flash requieren que se borre un bloque antes de poder escribir en él, los datos del bloque que no se borran deben copiarse a un nuevo bloque mediante la eliminación de la basura. Estas escrituras adicionales se denominan amplificación de escritura.
¿Qué es el recorte?:
Los sistemas operativos están construidos pensando en los discos duros tradicionales. Recuerda que un disco duro tradicional puede sobrescribir directamente los datos. Cuando borras un archivo, el sistema operativo lo marca como borrado (está bien sobrescribirlo), pero los datos siguen ahí hasta que se produzca una operación de escritura en él. En los S.S.D. basados en Nand-flash esto es un problema, porque los datos deben ser borrados primero. El borrado se produce a nivel de bloque, por lo que puede haber datos adicionales que no se están borrando. La eliminación de la basura copia los datos que no se van a borrar a bloques vacíos, y luego se pueden borrar los bloques en cuestión. Todo esto lleva tiempo y provoca escrituras innecesarias (amplificación de la escritura). Para evitar esto, se creó una función llamada Trim. Trim le da al sistema operativo el poder de decirle al S.S.D. que borre los bloques con páginas que contengan datos que el sistema operativo haya marcado como borrados durante los periodos de tiempo en los que no se esté solicitando una operación de escritura allí. La recolección de basura hace lo suyo, y como resultado se liberan bloques para que las escrituras puedan ocurrir en bloques que no necesitan ser borrados primero, lo que hace el proceso más rápido, y ayuda a reducir la amplificación de escritura al mínimo. Esto no se hace en base a un archivo; Trim utiliza el direccionamiento lógico de bloques. El L.B.A. especifica que sectores (páginas) se deben borrar, y el borrado ocurre a nivel de bloque.
La respuesta a su pregunta “¿Desventajas de particionar un SSD?
SDs basados en RAM:
¡No hay absolutamente ninguna desventaja porque son de acceso aleatorio!
SDs basados en Nand-flash:
Las únicas desventajas que se me ocurren serían:
La nivelación de desgaste no tendrá tanto espacio libre con el que jugar, porque las operaciones de escritura se repartirán en un espacio más pequeño, por lo que "podría”, pero no necesariamente, desgastar esa parte de la unidad más rápido de lo que lo haría si toda la unidad fuera una sola partición, a menos que se realice un desgaste equivalente en las particiones adicionales (por ejemplo, un arranque dual).
Al igual que los discos duros, los S.S.D. nand-flash son de acceso secuencial, por lo que cualquier dato que escriba/lea desde las particiones adicionales estará más lejos de lo que “podría” estar si se escribiera en una sola partición, ya que la gente suele dejar espacio libre en sus particiones. Esto aumentará los tiempos de acceso para los datos que se almacenan en las particiones adicionales.
Menos espacio total aumenta la probabilidad de escribir archivos fragmentados, y aunque el impacto en el rendimiento es pequeño, tenga en cuenta que generalmente se considera una mala idea desfragmentar un S.S.D. nand-flash porque desgastará la unidad. Por supuesto, dependiendo del sistema de archivos que esté utilizando, algunos resultan en cantidades extremadamente bajas de fragmentación, porque están diseñados para escribir archivos como un todo siempre que sea posible en lugar de volcarlos por todo el lugar para crear velocidades de escritura más rápidas.
Yo diría que está bien tener múltiples particiones, pero la nivelación del desgaste podría ser una preocupación si tienes algunas particiones que reciben mucha actividad de escritura, y otras que reciben muy poca. Si no se particiona el espacio que no se va a utilizar, y se deja para el sobreaprovisionamiento dinámico, se puede recibir un aumento de rendimiento porque será más fácil liberar bloques y escribir datos secuenciales. Sin embargo, no hay garantía de que el espacio de sobreaprovisionamiento sea necesario, lo que nos lleva al punto 1 sobre la nivelación del desgaste.
Algunas otras personas en este hilo han planteado la discusión de cómo el particionamiento afectará a las contribuciones de Trim al sobreaprovisionamiento dinámico. A mi entender, TRIM se utiliza para señalar los sectores (páginas) que tienen datos marcados para ser borrados, y así la eliminación de basura puede liberar esos bloques. Este espacio libre actúa como sobreaprovisionamiento dinámico sólo dentro de ESA partición, porque esos sectores son parte de clusters siendo utilizado por el sistema de archivos de esa partición; otras particiones tienen sus propios sistemas de archivos. Sin embargo, puedo estar totalmente equivocado en esto, ya que la idea de la sobreprovisión es un poco confusa para mí, ya que los datos se escribirán en lugares que ni siquiera tienen sistemas de archivos o aparecen en la capacidad de las unidades. Esto me hace preguntarme si tal vez el espacio de sobreaprovisionamiento se utiliza de forma temporal antes de una operación de escritura final optomizada en bloques dentro de un sistema de archivos. Por supuesto, las contribuciones de Trim a la sobredotación dinámica dentro del sistema de archivos no serían temporales, ya que se podría escribir en ellas directamente, puesto que ya están en el espacio utilizable. Al menos esa es mi teoría. ¿Tal vez mi comprensión de los sistemas de archivos es errónea? No he podido encontrar ningún recurso que entre en detalle sobre esto.