Empezaré este post con una cita de Henry Ford que vi hace tiempo en una presentación: “Si hubiese preguntado a la gente sobre lo que hubiesen querido, me hubiesen dicho que caballos más rápidos”.
La mentalidad de un innovador hace que sus planteamientos vayan siempre mucho mas adelantados a la realidad, consiguiendo que una idea disruptiva se acabe convirtiendo en un estándar. Gracias a Ford conseguimos abandonar hace ya mas de un siglo el planteamiento de aquella época que hoy nos suena ridículo, al menos en lo que al transporte nos atañe…
Sin embargo, en la industria de la IT se viene siguiendo ese arcaico planteamiento desde los albores del ENIAC y, en parte, se continua en ello porque la tecnología lo hace posible: queremos computadores más rápidos, la solución es crear procesadores más rápidos, inicialmente de mayor frecuencia de reloj hasta que se explotó su límite de integración y se comenzaron a fabricar mas cores por procesador a menor frecuencia; queremos comunicaciones más rápidas, pues allá que se ha rizado el rizo duplicando cada poco tiempo los ciclos y la velocidad del medio de transmisión .
Pero ¿y la industria de almacenamiento? Aquí también se ha pensado tradicionalmente en tener caballos más rápidos en forma de discos de más revoluciones y con mayor densidad pero la tecnología de disco rotacional se quedó estancada no habiendo muchos cambios prácticamente desde la última década (los discos eran cada vez más grandes pero seguían rotando a 10K-15Krpm y no daban mas de 200MB/s de ancho de banda con un tiempo de respuesta de unos 5ms en el mejor y más favorable de los casos). Hasta que nos dimos cuenta que en lugar de tener caballos más rápidos, teníamos que poner diligencias con un montón de caballos y que todas estas realizasen el transporte al mismo tiempo…o sea intentar poner a trabajar en paralelo cuantos más discos rotacionales nos fuese posible hasta que estrangulásemos el canal de comunicación. Esto, además de crear complejidad (a veces hasta había que tener un doctorado para poder afrontar el diseño, puesta a punto, mantenimiento y operación de la solución) disparaba los costes; en fin no creo que aquí cuente nada nuevo.

Hasta que llegó la tecnología de almacenamiento en estado sólido con sus SSDs y pensamos que ya habíamos solucionado el problema…en parte.
En realidad, lo que está a punto de pasar con los SSDs es lo mismo que nos pasó ya con los HDDs, pero esta vez el problema no ha venido por una limitación mecánica sino por una limitación del interface de conexión y el protocolo.

A día de hoy las capacidades y densidades de los SSDs han superado incluso hasta el disco SATA mas grande: hace meses que Seagate anunció un SSD de 60TB y Samsung sacó a la venta su modelo de 16TB (el PM1633a):

60tb_ssd

La realidad de esto es que todo el potencial en rendimiento que ofrece el medio flash de mayor densidad sigue estando “encorsetado” por el uso de interfaces y mecanismos pensados para el disco rotacional, es decir, por el interface SATA/SAS. Y esto nos conducirá irremediablemente a un dejavú :

  • La fiabilidad de la solución de almacenamiento se ve reducida. Ejemplo muy simple: con 9 SSDs de 16TB consigo unos 100TB netos en RAID-5, si un SSD falla eso significa que un 10% de mi capacidad se ha perdido y tengo que reconstruirla;  dada la ingente cantidad de datos que acabo de perder, teniendo en cuenta el ancho de banda del que dispone el SSD es limitado y que el sistema de almacenamiento tiene una carga en IO que procesar simultáneamente, esta operación me puede llevar casi un día (tiempo durante el cual mis datos están comprometidos). Por poner una analogía, lo que ocurre aquí es como si en una cabina de 300 discos me fallan 30 simultáneamente (de grupos raid distintos).
  • El ratio rendimiento/densidad se reduce dramáticamente: el rendimiento de un SSD pequeño es similar al de uno grande, de nuevo porque el límite no está ya en el medio flash sino en el interface. Volviendo al mismo ejemplo del punto anterior y haciendo unos cálculos simples, si asumimos que cada SSD nos puede ofrecer 5.000 IOPs mi backend podría dar 40.000 IOPS…como tengo 100TB de datos, mi ratio rendimiento/densidad es de 400 IOPS/TB lo cual es algo que está a la par de cualquier solución de disco híbrida tradicional.

A continuación un gráfico que muestra una imagen aún mas realista e interesante:

ssd-performance-density

En este otro, sacado del Storage Developer Conference de la SNIA en el 2015, se muestra la curva de escalabilidad del rendimiento de un SSD en relación con el paralelismo limitado por el uso de un interface pensado y diseñado para disco rotacional (comandos AHCI en SATA o comandos SCSI en SAS):

escalabilidad_ssds

Y si hacemos una rápida comparativa de los distintos interfaces actuales de comunicación de disco, memoria y CPU se nos hará evidente que es necesario recuperar planteamientos como los del Sr. Ford y empezar a pensar en algo específicamente para el medio flash que solucione el problema:

comparativa_interfaces

La nueva realidad, donde los sistemas de cómputo están alcanzando y explotando unos niveles de paralelismo sin precedentes, está haciendo que la industria del almacenamiento esté a punto de comenzar una nueva transición que permitirá explotar todo el potencial de la tecnología flash e incluso dar los siguientes pasos en la evolución del medio. El primer paso ya se ha dado mediante el desarrollo de iniciativas y estándares NVM (Non-Volatile Memory) y protocolos específicos (NVMe), que abordaré en una próxima publicación.

Lo que queda patente es que, hasta que no utilicemos un protocolo e interface adecuado al medio, no tiene mucho sentido diseñar e implantar soluciones de almacenamiento All-Flash basadas en estas nuevas capacidades y densidades. Siguiendo con el ejemplo básico que había puesto anteriormente, es preferible elegir un sistema de almacenamiento flash con unos 56 SSDs de 2TB en RAID-5 para obtener 100TB netos en lugar de uno con solo 9 SSDs de 16TB…en un sistema de almacenamiento con una arquitectura correcta no debería de haber mucha diferencia en huella ni en coste. Es más, dada la casuística del medio flash, utilizar un RAID-5 especialmente en SSDS de elevada densidad es arriesgar la disponibilidad e integridad del dato. Al menos deberíamos de contar con doble protección, o paridad doble…por lo que un mecanismo de protección de paridad simple como el RAID-5 es algo que debería de quedar descartado directamente.

Por último, y no menos importante, es igual de cierto que la aceleración de la obsolescencia de las soluciones y tecnologías en el mundo de la IT tiene una evolución exponencial con los años; hace una década un sistema de almacenamiento quedaba obsoleto a los 6 años, la realidad actual es que a los 3 años los componentes que lo conforman a nivel de procesamiento están bastante obsoletos en relación con el resto de componentes del datacenter y la llegada de la tecnología flash no ha hecho mas que pisar el acelerador más fuerte aún. Por tanto, a la hora de elegir una nueva solución de almacenamiento All-Flash hay que considerar si ésta estará ya preparada para esta nueva transición permitiendo adoptar estas nuevas iniciativas y estándares sin compromiso e impacto en coste y operación, haciendo frente así al efecto acelerador en la obsolescencia.

Anuncios

Un comentario sobre “Una aproximación incorrecta para el almacenamiento All-Flash

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s