Discos SSD

May 14, 2013

Una unidad de estado sólido o SSD es un dispositivo de almacenamiento de datos que usa una memoria no volátil, como la memoria flash, o una memoria volátil como la SDRAM, para almacenar datos, en lugar de los platos giratorios magnéticos encontrados en los discos duros convencionales. En comparación con los discos duros tradicionales, las unidades de estado sólido son menos sensibles a los golpes, son prácticamente inaudibles y tienen un menor tiempo de acceso y de latencia. Las SSD hacen uso de la misma interfaz que los discos duros y, por lo tanto, son fácilmente intercambiables sin tener que recurrir a adaptadores o tarjetas de expansión para compatibilizarlos con el equipo.

HDD vs SSD

En términos prácticos los beneficios que obtienes al comprar un disco SSD son:

  • El sistema operativo carga en menos tiempo
  • Los programas y los archivos se ejecutan mucho más rápido
  • La transferencia de datos es mucho más veloz
  • Silencio. Como no tienen partes mecánicas estos discos no emiten ruido.
  • Los discos SSD emiten menos calor que los discos duros.
  • Menor consumo de energía, que se traduce en mayor tiempo de vida de las baterías en las laptops.
  • Mayor resistencia a los golpes y a la vibración.

Comando Trim

El comando TRIM ayuda al sistema operativo en la optimización de los procesos de recolección de basura (garbage collection) y es fundamental que funcione correctamente para obtener el mayor rendimiento de los discos SSD. ECC es el acrónimo de "error correction code", y es una tecnología que se encarga tanto de la detección como de la corrección de errores. Para obtener el mejor desempeño de tu unidad SSD es recomendable habilitar el modo AHCI en la Bios de tu placa base.

Diferencias entre SATA II y SATA III

  • SATA II (revisión 2.x) interfaz, formalmente conocido como SATA 3Gb/s, es una segunda generación de interfaz SATA a 3.0 Gb/s. El ancho de banda de tasa de transferencia, el cual es soportado por el interfaz, es más de 300Mb/s
  • SATA III (revisión 3.x) interfaz, formalmente conocido como SATA 6Gb/s, es la tercera generación de interfaz SATA a 6.0Gb/s. El ancho de banda de tasa de transferencia, el cual es soportado por el interfaz, es más de 600Mb/s. Este interfaz es compatible con el interfaz SATA 3 Gb/s.

IOPS

IOPS es una unidad de benchmark utilizada para medir el rendimiento.

IOPS ( Input / Output de operaciones por segundo) es un campo común de referencia para los discos duros , unidades de estado sólido , y otros soportes informáticos dispositivos. Al igual que con cualquier punto de referencia, número de IOPS publicado por unidad y SAN vendedores pueden ser manipulados y no garantizan en el mundo real el rendimiento de aplicaciones.

IOPS se puede medir con aplicaciones como Iometer (originalmente desarrollado por Intel ), así como IOzone y FIO y se utiliza principalmente con servidores para encontrar la mejor configuración de almacenamiento.

El número específico de IOPS posible en cualquier configuración del sistema puede variar enormemente dependiendo de las variables del probador entra en el programa, incluyendo el saldo de las operaciones de lectura y escritura, la mezcla de patrones de acceso secuencial o aleatorio, el número de trabajadores las discusiones y la profundidad de la cola , así como los tamaños de bloque de datos. Existen otros factores relacionados con la configuración del sistema, los conductores, las operaciones de fondo del sistema operativo, etc, que también puede afectar a los resultados de IOPS. Además, cuando las pruebas unidades de estado sólido, hay consideraciones de preacondicionamiento que hay que tener en cuenta.

  • Total IOPS Número total de operaciones de E / S por segundo (cuando se realiza una mezcla de las pruebas de lectura y escritura).
  • De lectura aleatoria IOPS: Número medio de lectura aleatoria operaciones de I / O por segundo.
  • Escritura aleatoria IOPS: Número medio de escritura aleatoria operaciones de I / O por segundo.
  • De lectura secuencial IOPS: Número promedio de lectura secuencial operaciones de I / O por segundo.
  • Escritura secuencial IOPS: Número medio de escritura secuencial operaciones de I / O por segundo.

¿Qué debemos de considerar al momento de elegir un buen Disco SSD?

Hay algunos puntos que debemos considerar para elegir un buen disco SSD y son los siguientes:

  • Soporte TRIM: Esta tecnología evita que el disco SSD disminuya su desempeño conforme más se utilice.
  • Soporte TRIM para RAID: Cuando se emplean dos o más discos SSD en una configuración RAID, se requiere que los discos soporten TRIM en estas condiciones (RAID) para evitar la pérdida de rendimiento con el uso continuo.
  • Velocidad de acceso secuencial de Lectura y Escritura: Nos permite saber la velocidad máxima de lectura y escritura cuando se trabaja con datos secuenciales, por ejemplo cuando se lee o graba un archivo de gran tamaño.
  • Velocidad de escritura aleatoria 4K: Es un indicador que se mide en IOPS (cantidad de operaciones de entrada/salida por segundo). Este indicador nos permite saber que tan rápido puede trabajar nuestro disco con archivos pequeños.
  • Precio por Gigabyte: Nos permite saber cuánto nos cuesta cada Gigabyte de almacenamiento.

Optimizar Linux para el uso de discos SSD

En primer lugar vamos a tocar el archivo /etc/fstab, dónde se le dice al sistema los puntos de montaje y las opciones de montaje. Así deberían quedar las líneas referente al montaje a las particiones (si alguno le pone alguna opción más que la incluya).

/dev/sda1 / ext4 defaults,errors=remount-ro,noatime,discard 0 1
/dev/sda2 /home ext4 defaults,noatime,discard 0 1

Por último vamos a tratar del tema del scheduler de I/O. Nomalmente los discos tradicionales usan el scheduler CFQ, mientras que para las memorias flash y discos de estado solido se recomiendas los schedulers noop y deadline. Sin embargo en los test más recientes que he visto (Agosto 2011) para escenarios normales los schedulers noop y deadline dan mejores resultados incluso en los HDDs, así que será uno de estos el que usaré para todos los discos. He probado los 2 y yo me quedo con noop.

Para ajustar el scheduler que queramos hay 2 opciones:

  • Cargarlo una vez arrancado el sistema, que sería hacerlo mediante el archivo /etc/rc.local (en arch y algunas otras distros), /etc/init.d/rc.local (en Debian y derivadas) añadiendo:
  echo noop > /sys/block/sda/queue/scheduler
  • O añadirlo como opcion de arranque del kernel. Editando ya sea el /boot/grub/menu.lst para grub o el /etc/default/grub para grub2. El parámetro a añadir es:
  elevator=noop
  • SPIN TIME: Los SSD arrancan de manera instantánea. Los discos duros convencionales requieren de algunos segundos para lograr la velocidad constante de los platos.
  • No Park: Los discos duros convencionales requieren estacionar los cabezales en la zona segura una vez que se retira la corriente eléctrica, esto los protege en caso de traslado, movimiento o shock. Los SSD no tienen cabezales que parquear.
  • Rendimiento: El rendimiento de un SSD es superior en el doble o triple de un disco convencional. Los SSD actuales (masivos – económicos) alcanzan velocidades de 150 ~ 280mb/s en lectura/escritura.
  • No mechanical parts: los SSD no contienen partes mecánicas  Por lo tanto, son menos susceptibles a daños de este tipo. Es mas probable que se dañe un motor, platos, y las partes mecánicas de los cabezales que un chip.
  • MTBF: Aunque no lo parezca, los discos duros sólidos pueden llegar a durar más que un disco convencional. El disco mecánico tiene un mtbf (maximum time between failure) de 200 mil horas mientras que un SSD tiene 1 o 2 millones de horas.
  • Calor: los discos sólidos generan mucho menos calor que los mecánicos. Trabajan más fríos, lo cual es muy bueno sobre todo para las laptops.
  • RandomReads: las lecturas aleatorias son mas rápidas en los SSD. Recuerden que no todos los files están contiguos en un disco duro. Esto se nota mucho en el boot del sistema operativo.
  • Consumo: un disco SSD consume menos corriente que un disco mecánico. Esto es especial para las laptops. Agregar un SSD a la laptop incrementa el tiempo de batería.
  • Golpes: Al no tener partes móviles, es menos propenso a daños por vibraciones, golpes, caídas, etc. Pero no son inmunes. Cuídalo!
  • Niveles acústicos: son mucho más silenciosos que los discos comunes. El disco solidó no tiene platos que girar ni cabezas que mover.
  • Latencia: mejores valores de latencia en lectura y escritura.
  • Tiempo de acceso: los tiempos de acceso de un SSD son increíblemente rápidos. Los benchmarks muestran una mejora sustancial con su contraparte mecánica.
  • Peso: son más ligeros que los discos mecánicos. Otra ventaja para las laptops.
  • No afecciones magnéticas: los SSD no se afectan por campos magnéticos o dispositivos que emiten dichos campos. Los discos mecánicos son muy propensos a sufrir fallas o perdidas de datos.
  • No fragment: los discos sólidos no necesitan defragmentarse.

Controlador Flash NAND de los SSD

SSDs utilizan microchips, y no contienen partes móviles. Los componentes del SSD incluyen un controlador, que es un procesador embebido que ejecuta el firmware del software de nivel y es uno de los factores más importantes del rendimientoSSD; caché, donde un directorio de la colocación de bloques de datos y el desgaste de nivelación se mantienen también, y de almacenamiento de energía - una condensadores o baterías - para que los datos de la caché puede ser enviado a la unidad de potencia cuando se ha caído. El componente de almacenamiento primario en un disco SSD de memoria DRAM ha sido volátil desde que se desarrolló por primera vez, pero desde 2009 es más comúnmente NAND de memoria flash. El rendimiento de la SSD puede escalar con el número de chips flash NAND paralelos utilizados en el dispositivo. Un chipNAND solo es relativamente lento. Cuando varios dispositivos NAND funcionar en paralelo dentro de un SSD, las escalas de ancho de banda, y las latencias altas se pueden ocultar, siempre y cuando suficientes operaciones pendientes están pendientes y la carga se distribuye uniformemente entre los dispositivos.

Las memorias NAND Flash se utilizan en un gran número de dispositivos como: Cámaras digitales, PDA, Teléfonos celulares, PMP (Portal Media Player), GPS, instrumentos musicales, reproductores de música MP3, consola de videojuegos, dispositivos de comunicación, discos SSD, discos híbridos etc etc y desde luego dispositivos de almacenamiento tan populares y utilizados como los Pendrive.

¿Que controladora es más fiable y estable?

Las más conocidas son de SandFocse y Marvell (hay dos: 88SS9174 y 88SS9187) y también está la de Samsung. Por ahora SandForce va perdiendo, demasiado fallos y errores da esta controladora.