Almacenamiento en Cloud

Las tecnologías de almacenamiento disponibles en el mercado (SAS, SATA, SSD) ofrecen diferencias sustanciales tanto de coste como de rendimiento. Conocer sus características y su adecuación a la aplicación que van a soportar es básico para poder elegir la más conveniente.

Resumen del WorkShop 'Tecnologías de almacenamiento en cloud' 

Terminología asociada al almacenamiento

A menudo los términos nos abruman y pueden generar confusión. Así, creemos que antes de empezar este breve recorrido por el Storage, es interesante poner en común la terminología.

Clasificaremos los diferentes términos entre los siguientes ámbitos:

  1. Arquitecturas de redes de almacenamiento
  2. Protocolos de almacenamiento
  3. Tecnologías de disco.
Arquitecturas de almacenamiento:

Hace referencia al modo en que se organizan y conectan los recursos físicos de la infraestructura de almacenamiento. Diferentes modos de establecer esta organización establecerán un modelo de gestión más o menos eficiente de la red de almacenamiento y determinarán también la complejidad de la comunicación a establecer entre los sistemas.

Las arquitecturas de almacenamiento más conocidas se referencian con las siglas SAN y NAS.

SAN – Se distingue principalmente porque conecta múltiples dispositivos de almacenamiento entre sí, con múltiples servidores y clusters de servidores, por lo que su capacidad se puede extender de manera casi ilimitada. Se caracteriza porque su acceso es a muy bajo nivel (acceso por bloque de datos o LUN – Número de Unidad Lógica). Su rendimiento depende casi exclusivamente de la tecnología de red que la soporta.

NAS – Se caracteriza por conectar a una red Ethernet el dispositivo de ficheros. Por tanto, en este caso el acceso es por fichero (a más alto nivel) y no por bloque. Su gestión y administración es mucho más simple, por lo que es una arquitectura comúnmente utilizada en entornos de Cloud Público.

Protocolos de almacenamiento:

Reglas que rigen la comunicación: las peticiones de datos al storage. Se definen en función de la tecnología de red que interconecta los dispositivos. Redes más rápidas, pueden soportar así protocolos de comunicación más eficientes.

En el caso de Arquitecturas SAN, los más habituales son los siguientes: iSCSI, Fiber Channel o FCoE. La selección de una u otra determina finalmente el rendimiento.

En el caso, de arquitecturas NAS, destacan los protocolos de comunicación NFS y CIFS (este último para sistemas Microsoft). NFS es uno de los protocolos más recomendados por los profesionales del sector pues permite una mayor escalabilidad, estabilidad y una excelente comunicación con plataformas virtuales. Además NFS es uno de los protocolos nativos de múltiples sistemas de almacenamiento, permitiendo por tanto a los usuarios de estas cabinas reducir la complejidad de adaptación.

Tecnologías de disco:

Por último tenemos siglas para referirnos a la tecnología del dispositivo físico que finalmente almacena los datos, el disco.

Como tecnologías de disco ampliamente extendidas se encuentran: SAS, SATA y SSD.

Por un lado, las tecnologías SAS y SATA están soportadas por estructuras de discos físicos los cuales, por principios electromagnéticos, son capaces de almacenar información. Estas estructuras contienen varios discos interiores que giran continuamente a alta velocidad, así como un conjunto de mecanismos los cuales hacen posible acceder a diferentes sectores para grabar o leer los datos. Al depender de elementos mecánicos son más vulnerables a fallos y presentan limitaciones de velocidad. En cualquier caso, son tecnologías robustas y muy maduras las cuales han alcanzado ya una gran penetración y por tanto unos costes muy reducidos.

Principales diferencias entre SATA y SAS

SATA – Serial Advanced Technology Attachment: Es una evolución de la tecnología de transmisión de datos por bus serie (antes IDE/ATA). Trabaja de forma síncrona con el procesador. Los discos giran a 7200 rpm. La velocidad influye en los tiempos de acceso a la información, ya que cuanto mayor es la velocidad de giro, más rápido puede accederse a un determinado sector donde se encuentren los datos y leerlos. Actualmente ofrece alta capacidad de almacenamiento a precios muy razonables y el tiempo medio entre fallos hardware que ofrece es bajo pero su tiempo de acceso a disco es muy alto. Esta tecnología presenta un buen comportamiento en condiciones de acceso a disco secuencial (no aleatorio). En general la usaremos cuando el acceso a los datos sea secuencial o no sea crítico, por ejemplo como disco de datos redundado o para almacén de ficheros de consulta no intensiva. Podrían considerarse los discos más domésticos. No aportan tanta velocidad como los SAS (0,02 IOPS/GB), pero si mayor capacidad de almacenamiento a un precio más bajo.

SAS – Serial Attached SCSI: Evolución mejorada de SCSI paralelo. Es una tecnología especialmente pensada para sistemas intensivos en lectura/escritura y escrituras o lecturas aleatorias. Una de las principales características es que aumenta la velocidad de transferencia al aumentar el número de discos que pueden conectarse mediante RAID y que en SCSI estaba limitado. Los discos giran a 15000 rpm. Es la tecnología reina en servidores de uso empresarial por su excelente compromiso entre rendimiento y precio, y suelen utilizarse para la gestión de aplicaciones críticas. Los discos suelen tener una capacidad máxima de 600Gb.

Por otra parte, y eliminando las limitaciones que impone la mecánica de los discos SAS y SATA, una tercera tecnología crece con fuerza.

SSD - Solid-State Drive (discos de estado sólido): 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 anteriores. Además de ofrecer mejores tiempos de escritura/lectura respecto a tecnologías anteriores, al no soportar partes móviles, tiene menor consumo, no genera ruido y pesa mucho menos. Esta tecnología ofrece tiempos de acceso a disco muy bajos y por tanto debe considerarse en sistemas de acceso intensivo a disco, especialmente de sólo lectura. Suelen utilizarse especialmente para aplicaciones que requieran alto ritmo de trabajo, tales como caches de procesadores, primeras caches, o sistemas 'calientes' en general.

 

 

SATA 2TB

SAS 600GB

SSD 200GB

Velocidad Interfaz

300 MB/s

320 MB/s

320 MB/s

RPM típica

7,2k

15k

n/a

Latencia rotacional promedio

4 ms

2 ms

n/a

IOPS con latencia <20ms

75

200

8.000

Throughput con bloque 4KB

300 KB/s

800 KB/s

32 MB/s

IOPS/GB

0,02

0,26

40

Comparativa entre discos duros y discos SSD

 

Almacenamiento en Cloud

Las dificultades y riesgos que entraña el diseño y dimensionado de cualquier infraestructura TIC, y en concreto también la selección de la tecnología de almacenamiento pueden ser minimizados a través del modelo de consumo de Cloud, el cual facilita la toma de decisiones, pues permite elegir la tecnología sin incurrir en grandes inversiones iniciales, medir su rendimiento y adaptar la plataforma a medida que crece nuestra experiencia sobre ella.

Así pues, como primera recomendación: si no tienes claro cuál es la tecnología de almacenamiento más apropiada, prueba primero sobre un entorno de test antes de desplegar toda tu plataforma. De todos modos, si deseas ver qué factores asociados al almacenamiento inciden en el rendimiento y cómo enfocar mejor tú elección sigue leyendo.

Factores que inciden en el rendimiento

Fundamentalmente tres factores que inciden en el rendimiento de una aplicación en lo que se refiere al acceso a disco:

  • Throughput: Se refiere al ancho de banda disponible para la transferencia de datos. Es un factor dependiente de la arquitectura y la tecnología subyacente. Define el nivel de absorción de los flujos de datos que se generan.
  • IOPs: Número de operaciones de lectura y escritura por segundo.
  • Latencia: Tiempo transcurrido entre la demanda de un paquete de datos y su recepción. Dependiendo de dónde se ubiquen los extremos de interés para la medida, impactarán en este tiempo más o menos elementos (ms).

Cuando consideramos una plataforma de cloud pública en la que los recursos de almacenamiento son compartidos por múltiples clientes con proyectos y necesidades diversas y deseamos garantizar el funcionamiento de nuestra aplicación, debemos preguntarnos por el tratamiento que de estos tres factores hace nuestro proveedor. En tal caso, es importante tanto conocer el diseño y la implementación de la solución como que exista transparencia respecto a estos parámetros de calidad de servicio.

Si lo que deseamos es implementar nuestra propia solución de Cloud privado, debemos conocer las limitaciones de tecnologías para elegir la más conveniente.

En el caso de las IOPs por ejemplo, el siguiente gráfico es representativo de las diferencias entre las tecnologías de disco mencionadas. Como puede verse la respuesta es mucho mejor en SSD que en SAS o SATA. También es cierto que su coste es muy superior.

rendimiento SAS SATA SSD

Respuesta en IOPs según tecnología utilizada

Respecto de la latencia, los elementos que ayuden a dinamizar las peticiones más comunes (por ejemplo mediante mecanismos de caché) ayudan a optimizar el servicio. En este sentido, no todos los fabricantes de almacenamiento proveen equipos con las mismas prestaciones. Elegir bien, significa en este caso preguntar también sobre este tipo de mecanismos al proveedor.

Ejemplo: almacenamiento en el Cloud de Nexica

A modo de ejemplo a continuación explicamos las características generales de nuestro Cloud Público, haciendo especial hincapié en el storage. La plataforma de Cloud de Nexica se basa en el entorno FlexPod©: Servidores blade CISCO UCS, cabinas de almacenamiento NetApp y sistemas de virtualización VMware. Nuestro entorno multi-tenant provee infraestructura como servicio (IaaS) a nuestros clientes, permitiéndoles elegir diferentes modelos de consumo (reserva de recursos, pago por uso, etc.).

La selección de estas tecnologías se ha basado en pruebas exhaustivas buscando que la plataforma respondiera al modelo de servicio que Nexica desea ofrecer a sus clientes: Cloud personal y adaptable para aplicaciones y entornos críticos de cliente, pero con las ventajas en coste que suponen la compartición de recursos y la unificación de la gestión.

Así, por una parte, la solución de FlexPod© garantiza la buena adaptación entre los diferentes elementos del sistema. Desde el punto de vista del almacenamiento, esto se traduce en que la propia computación CISCO UCS integra la red de almacenamiento y servicio, simplificando el uso de HBAs y ahorrando tarjetas de acceso a storage (reducción del 50% de la latencia de red respecto a switching convencional). Obviamente eso mejora los tiempos de acceso, y esa mejora puede cuantificarse entorno a los 3.2 microsegundos. De nuevo, la tecnología importa.

storage cloudPor otra parte, la infraestructura de almacenamiento elegida es NetApp, soportada en nuestro caso bajo NFS y con disponibilidad de los tres tiers de disco (SATA, SAS y SSD) bajo un entorno de cluster. Esta arquitectura, permite crecer tanto verticalmente (tamaño) como horizontalmente (número de unidades). El uso del protocolo NFS sobre tecnología NetApp proporciona alta estabilidad y latencias muy bajas. NetApp además proporciona un algoritmo de RAI que simplifica el proceso de gestión pues distribuye la información entre los diferentes discos de manera inteligente, evitando la sobresaturación de recursos (discos calientes) y mejorando las IOPs. Aporta además protocolos adicionales para la monitorización de las operaciones de lectura y escritura así como mecanismos de Flash Cache (1Tb flash cache por cabina) que aceleran el rendimiento de la cabina, al servir antes los datos más solicitados. La facilidad en la monitorización de los diferentes parámetros nos permite una óptima gestión de capacidad en tiempo real (redistribuir clientes, ampliar cabinas, etc.).

Sobre estas infraestructuras se soporta nuestro catálogo comercial de servicios, servidores virtualizados y almacenamiento compartido NFS tanto SATA, SAS como SSD, ofreciendo al cliente flexibilidad en la elección, costes contenidos gracias a la compartición de recursos e indicadores de calidad controlados.

Conclusiones

La elección de un proveedor u otro y posteriormente de la tecnología de almacenamiento que soportará tu plataforma, deberá considerar las características de capacidad, rendimiento, fiabilidad y latencia que necesiten tus aplicaciones y ver las que te ofrece el proveedor.

Si consideramos únicamente el coste y el número de operaciones de lectura/escritura que deben asumir el servicio, las pautas podrían ser: para servicios de back up, archivo de datos o almacenamiento con un número reducido de lecturas/escrituras a disco, pero con requisitos de capacidad elevados se recomiendan discos SATA. En estos casos si se desea mejorar el rendimiento a costa del precio, por ejemplo en los casos en los que el volumen de datos no es muy elevado, SAS puede ser una elección atractiva. Para aplicaciones más activas, tales como tablas de contenidos, bases de datos o ficheros de repositorios compartidos SAS es la mejor alternativa hoy en día. Por último para uso de datos calientes, aplicaciones de e-commerce o logs transaccionales que requieran muchas IOPs se recomienda utilizar SSD. Todo ello condicionado a los costes que podemos soportar y que especialmente sobre SSD son más elevados.

Por otra parte, puede ser interesante considerar la frecuencia de uso de la información en la estrategia de gestión del storage. Así pueden hacerse residir los datos de uso frecuente sobre tecnologías rápidas (SSD o SAS) migrándolos hacia SATA a medida que decrece su uso.

Así mismo, para afrontar un proyecto de necesidades desconocidas o ambiguas, el modelo de Cloud nos permite construir entornos de simulación de bajo coste y mitigar así el riesgo de una mala decisión inicial. La construcción final de la plataforma se realizará una vez verificado que la infraestructura que soporta el servicio, y la tecnología de disco elegida es la adecuada en dicho entorno de pruebas.

Es importante destacar aquí también el papel del proveedor, que será quien al final nos podrá dar información real de latencia e IOPs sobre la que se opera nuestro servicio, y quien a través de las políticas adecuadas de gestión de capacidad y del servicio, nos las podrán garantizar o no con independencia del nivel de compartición de recursos.

Contratando cloud en modo IaaS el proveedor de servicios abstrae al cliente de la problemática y de la evolución tecnológica, aunque sigue siendo necesaria una adecuada implementación tecnológica y la aplicación de políticas de gestión de capacidad que garanticen los niveles de servicio a lo largo del tiempo.

Por último el los discos duros 'tradicionales' son una tecnología muy madura, pero todavía con un largo recorrido por delante, y representan una commodity a precios bajos. La tecnología SSD está suficientemente madura para usos profesionales, aporta grandes ventajas competitivas, especialmente en rendimiento y eficiencia. Su precio es notablemente más alto, pero es una tecnología en proceso de desarrollo, por lo que sus costes pueden ir disminuyendo al tiempo que aumentan sus prestaciones y fiabilidad.