Inicio Empresa Revisión del dispositivo de contenedor Diamanti D10

Revisión del dispositivo de contenedor Diamanti D10

Aparato contenedor Diamanti

Conocimos a Diamanti por primera vez hace dos años en KubeCon 2017, y nos impresionó su visión: proporcionar una plataforma de contenedores completa diseñada específicamente para microservicios y entornos nativos de la nube, y optimizada para Kubernetes o, básicamente, una plataforma hiperconvergente. dispositivo de infraestructura para Kubernetes. Vimos esto como una jugada interesante y el año pasado en KubeCon 2018 comenzamos a hablarles sobre trabajar con nosotros para comprender el almacenamiento en Kubernetes y cómo se puede probar y cuantificar el almacenamiento de Kubernetes de manera metódica para que podamos comenzar a probar y documentar. Rendimiento del almacenamiento de Kubernetes.


Conocimos a Diamanti por primera vez hace dos años en KubeCon 2017, y nos impresionó su visión: proporcionar una plataforma de contenedores completa diseñada específicamente para microservicios y entornos nativos de la nube, y optimizada para Kubernetes o, básicamente, una plataforma hiperconvergente. dispositivo de infraestructura para Kubernetes. Vimos esto como una jugada interesante y el año pasado en KubeCon 2018 comenzamos a hablarles sobre trabajar con nosotros para comprender el almacenamiento en Kubernetes y cómo se puede probar y cuantificar el almacenamiento de Kubernetes de manera metódica para que podamos comenzar a probar y documentar. Rendimiento del almacenamiento de Kubernetes.

Ha sido excelente trabajar con Diamanti y ha podido brindarnos la comprensión profunda de Kubernetes y el almacenamiento de Kubernetes que necesitábamos para crear nuestra metodología de prueba. Diamanti fue iniciada por antiguos ingenieros de VMware, VERITAS y Cisco y está financiada por Goldman Sachs y otros VC conocidos, lo cual es impresionante, pero lo que es más impresionante es que Diamanti ha sido un importante contribuyente a los estándares de almacenamiento y redes (es decir, FlexVolume/CSI y CNI) que han sido aceptados en el código de Kubernetes ascendente.

Los negocios empresariales están evolucionando a la velocidad de la luz, y las empresas están tratando de seguir el ritmo de esta evolución con nuevas tecnologías para acelerar todo su ciclo de producción de aplicaciones. Los contenedores fueron la tecnología diseñada para acelerar el desarrollo y la implementación de aplicaciones, pero crearlos en una infraestructura heredada puede ser complicado y rápidamente se convierte en un obstáculo considerable para estructurar una pila de contenedores completamente funcional. Los contenedores son incompatibles con el almacenamiento tradicional y la infraestructura de red, por lo que un enfoque de "hágalo usted mismo" (DIY) para crear un entorno de contenedores es un desafío de TI, costoso y lento. La plataforma Diamanti Enterprise Kubernetes está destinada a brindar a los arquitectos de infraestructura, las operaciones de TI y los propietarios de aplicaciones la velocidad, la simplicidad, la eficiencia y el control que necesitan para ejecutar aplicaciones en contenedores con estado a escala.

La plataforma Diamanti Enterprise Kubernetes es una plataforma de contenedores completa centrada en los aspectos de redes y almacenamiento para ponerse en marcha rápidamente, especialmente para las grandes empresas. Con Docker y Kubernetes de código abierto totalmente integrados, junto con hardware especialmente diseñado y soporte completo para toda la pila, Diamanti Enterprise Kubernetes Platform es una solución de contenedor completo que se puede implementar en minutos. Diamanti afirma tener un rendimiento y una utilización inigualables en su plataforma Enterprise Kubernetes; el ingrediente secreto para este rendimiento es usar una arquitectura hiperconvergente única diseñada específicamente para la forma en que los contenedores de Kubernetes usan los recursos de red y almacenamiento.

Diamanti D10 Especificaciones

Nuestra red 4 × 10 GbE a través de una única conexión QSFP+ (por nodo)
Storage
Almacenamiento de datos Configuración de 4 TB (4 SSD NVMe de 1000 GB por nodo)
Configuración de 8 TB (4 SSD NVMe de 2000 GB por nodo)
​Configuración de 32 TB (4 SSD NVMe de 8000 GB por nodo)
Sistema operativo host y almacenamiento de imágenes de Docker 960 GB (2 SSD SATA de 480 GB por nodo)
Calcular
CPU 2 procesadores Intel Xeon con 20/32/44 núcleos (por nodo)
RAM 192 GB/384 GB/768 GB (por nodo
Físico
Factor de forma 1U
Dimensiones y peso (por nodo) 17.25″Ancho x 28″Profundidad x 1.72″Alto / 52 lbs.
43.8 cm x 71.1 cm x 4.4 cm / 24 kg
Potencia Fuentes de alimentación dobles redundantes de 110/220 V
Medio ambiente Temperatura de funcionamiento: 50 ° F a 95 ° F (10 ° C a 35 ° C)

Construcción y Diseño

El dispositivo Diamanti es el hardware físico de la solución de apilamiento de contenedores de Diamanti. Este dispositivo se ofrece en un clúster mínimo de tres nodos, donde cada nodo es un bastidor de 1U que proporciona hasta 32 TB de capacidad de almacenamiento de datos y 960 GB para el almacenamiento de imágenes Docker y el sistema operativo host.

El frente de un nodo muestra una rejilla de aluminio diseñada para un flujo de aire eficiente con el registro de la empresa en el medio y en la parte superior izquierda, un mecanismo de bloqueo. En la parte superior derecha del frente, se encuentra el panel de control que proporciona un interruptor de encendido, junto con indicadores LED para el estado del sistema. Al retirar la rejilla de aluminio, se revelarán las ubicaciones de las ranuras para unidades, además de un puerto VGA y dos puertos USB.

Moviéndonos hacia la parte trasera del dispositivo, vemos los puertos del dispositivo. Aquí destacamos a la izquierda dos fuentes de alimentación independientes y un sistema ventilado; y en el centro/derecha, los dos puertos de gestión, un puerto de 10 GbE para conectar nodos de alto rendimiento y baja latencia, un puerto QSFP+ (para 4x10G SFP+) y 4 puertos USB para conectar un teclado y otros periféricos.

Equipo Directivo 

El dispositivo se envía con una pila de software completa preintegrada que incluye OS, Docker, Kubernetes y otros servicios de convergencia de contenedores. Proporciona paneles y funciones de informes a través de un navegador, CLI o API REST y Diamanti OS. La plataforma Diamanti Enterprise Kubernetes cuenta con la certificación K8s; una certificación diseñada por la organización CNCF.

Para la gestión nos fijamos en la consola Diamanti. Al abrirlo, vamos directamente al tablero que tiene información básica que es fácil de leer rápidamente. Aquí podemos ver cuántos nodos se están ejecutando, cuántos contenedores y cuántos pods. El uso de la CPU, el almacenamiento, la memoria y la red también se ven fácilmente en porcentajes a la izquierda. A la derecha está el ancho de banda en Kbps.

La siguiente pestaña principal hacia abajo es Crear aplicaciones. Una vez que los usuarios tienen las aplicaciones que desean crear, la subpestaña es Implementar con un pequeño ícono de Kubernetes. Desde aquí, los usuarios deben ingresar información como el nombre, la imagen, el entorno, el puerto, los montajes de volumen y la cantidad de CPU y memoria.

La siguiente pestaña principal hacia abajo es Aplicaciones. Debajo de la pestaña principal se encuentran las subpestañas: Pods, Controladores de replicaciones, Conjuntos de réplicas, Conjuntos con estado, Conjuntos de demonios, Implementaciones y Trabajos. Los pods brindan a los usuarios un breve resumen del estado de un pod seleccionado, así como la computación, la red y el almacenamiento atribuidos.

La subpestaña Conjuntos con estado permite a los usuarios profundizar más en los conjuntos y exportarlos si es necesario. Aquí se nos presenta información básica como el nombre, el espacio de nombres, el número deseado, el número actual, el número listo, la edad y las opciones sobre qué acciones tomar.

Los usuarios también pueden profundizar en los registros de Pod para ver la actividad y cualquier problema potencial.

La siguiente pestaña principal hacia abajo es Configuraciones de K8S. Aquí los usuarios pueden administrar configuraciones de aplicaciones relacionadas con Kubernetes, como cuentas de servicio, ver secretos, mapas de configuración y crear espacios de nombres.

Desde la pestaña Administración de nodos, los usuarios pueden ver, agregar o eliminar nodos, así como monitorear la utilización de recursos de nodos. Nuevamente, aquí los usuarios pueden monitorear el estado general de un nodo determinado y los recursos: cómputo, red y almacenamiento.

Como implica el nombre de la pestaña, Administración de almacenamiento permite a los usuarios ver todo lo relacionado con el almacenamiento, incluidos volúmenes, instantáneas, unidades, volúmenes persistentes, reclamaciones de volumen persistente, clases de almacenamiento y copias de seguridad. En la subpestaña Volúmenes, tenemos la capacidad de crear un nuevo volumen o ver un resumen de uno existente, incluido su estado, rendimiento de almacenamiento y uso.

La subpestaña Unidades permite a los usuarios ver las ventajas de las unidades físicas con información como en qué ranura se encuentra la unidad, su S/N, capacidad bruta, capacidad utilizable, capacidad asignada, su firmware y en qué estado se encuentra. Las unidades se puede formatear desde esta subpestaña.

La subpestaña Volúmenes persistentes permite a los usuarios crear o exportar volúmenes persistentes, además de brindar información como su nombre, tipo de capacidad, acceso, reclamo, estado, reclamo, disponibilidad de almacenamiento, edad y una lista de acciones que incluyen editar, exportar y borrar.

Persistent Volume Claims hace lo mismo que arriba para PVC.

Nuestra siguiente pestaña principal es la pestaña Administración de red. Aquí los usuarios pueden crear, eliminar, editar o exportar redes. Aquí se nos brinda información como el nombre, el grupo, si es la red predeterminada, la red host, su subred, la puerta de enlace, la dirección de inicio, la dirección final y la dirección IP.

La administración de usuarios es bastante sencilla. Aquí los administradores pueden crear usuarios y grupos y configurar varias políticas para el control de acceso.

La configuración avanzada permite a los administradores crear y ajustar los niveles de clúster y rendimiento.

Si bien generalmente pasamos por varias funciones de administración para dar a los lectores una idea general de qué esperar a medida que pasan por algo, estamos haciendo algo un poco diferente en esta ronda. También ejecutamos nuestros puntos de referencia para que podamos ver qué hace la GUI con una carga de trabajo más pesada ejecutándose en ella. Para cada uno de estos puntos de referencia estaremos en la pestaña Administraciones de nodos.

Con nuestras pruebas básicas (aleatorias y secuenciales), uno puede ver fácilmente el sorteo en el cálculo, así como las métricas de rendimiento a la derecha.

Nuestra prueba de SQL causó un costo bastante bajo en el cómputo y la red, mientras que el almacenamiento alcanzó casi 1 millón de IOPS.

Finalmente, damos un ejemplo de lo que uno espera mientras se ejecuta nuestra prueba de Oracle.

Performance

Análisis de carga de trabajo de VDBench

Cuando se trata de comparar matrices de almacenamiento, las pruebas de aplicaciones son las mejores y las pruebas sintéticas ocupan el segundo lugar. Si bien no es una representación perfecta de las cargas de trabajo reales, las pruebas sintéticas ayudan a los dispositivos de almacenamiento de referencia con un factor de repetibilidad que facilita la comparación de manzanas con manzanas entre las soluciones de la competencia. Estas cargas de trabajo ofrecen una gama de diferentes perfiles de prueba que van desde pruebas de "cuatro esquinas" y pruebas comunes de tamaño de transferencia de bases de datos, así como capturas de seguimiento de diferentes entornos VDI. Todas estas pruebas aprovechan el generador de carga de trabajo común de Vdbench, con un motor de secuencias de comandos para automatizar y capturar resultados en un gran clúster de pruebas informáticas. Esto nos permite repetir las mismas cargas de trabajo en una amplia gama de dispositivos de almacenamiento, incluidos arreglos flash y dispositivos de almacenamiento individuales.

perfiles:

  • Lectura aleatoria 4K: 100 % de lectura, 128 subprocesos, 0-120 % de iorate
  • Escritura aleatoria 4K: 100 % de escritura, 64 subprocesos, 0-120 % de iorate
  • Lectura secuencial de 64 K: 100 % de lectura, 16 subprocesos, 0-120 % de iorate
  • Escritura secuencial de 64 K: 100 % de escritura, 8 subprocesos, 0-120 % de iorate
  • Base de datos sintética: SQL y Oracle

En todas nuestras pruebas de VDBench, probamos el dispositivo Diamanti en función de diferentes implementaciones que ejecutan 3, 6, 9 o 12 pods de Vdbench a la vez para superar el límite del dispositivo. Comenzando con un rendimiento de lectura aleatorio de 4K, todos los pods de Vdbench comenzaron con una latencia de 120 μs; y un rendimiento de E/S que oscila entre los 3 pods a 95,863 12 IOPS y los 269,208 pods a 600 3 IOPS. En cuanto al rendimiento máximo, todas las configuraciones se mantuvieron por debajo de la latencia de 947,619 μs. Con 370 pods de Vdbench, vimos un pico de 6 1,745,344 IOPS con una latencia de 436 μs; con 9 pods, un pico de 2,492019 447 12 IOPS con una latencia de 2,753,170 μs; con 554 pods, un pico de XNUMX IOPS a una latencia de XNUMX μs; y la última implementación, XNUMX pods, alcanzó un máximo de XNUMX XNUMX XNUMX IOPS con una latencia de XNUMX μs.

En cuanto al rendimiento de escritura de 4K, todas las implementaciones de prueba comenzaron con una latencia de 300 μs, pero aumentaron rápidamente entre 26 ms y 28 ms al alcanzar el rendimiento máximo. El rendimiento alcanzó su punto máximo con 3 pods a 13,719 6 IOPS; 27,747 pods a 9 42,805 IOPS; 12 pods a 58,559 XNUMX IOPS; y con XNUMX pods a XNUMX XNUMX IOPS. Mostrando un aumento constante del rendimiento en más pods agregados.

Cambiando a cargas de trabajo secuenciales, observamos el rendimiento de lectura de 64K del dispositivo, y aquí la implementación de 3 pods comenzó a 14,560 910 IOPS o 297 MB/s con una latencia de 18,000 μs. Todas las demás implementaciones comenzaron cerca de las 1.1 227 IOPS o 3 GB/s con una latencia de 143,431 μs. Con respecto al rendimiento máximo de las implementaciones, la implementación de 9 pods alcanzó un máximo de 327 179,000 IOPS o 11.1 GB/s con una latencia de 12 μs. Todas las demás implementaciones alcanzaron un máximo de casi el mismo rendimiento de 1 XNUMX IOPS o XNUMX GB/s, siendo la implementación de XNUMX pods la única que superó la marca de latencia de XNUMX ms.

En escritura secuencial de 64K, todas las implementaciones de Vdbench comenzaron con una latencia cercana a los 350 μs. Las implementaciones alcanzaron su punto máximo de la siguiente manera: 3 pods, a 9,693 IOPS o 606 MB/s con una latencia de 4.9 ms; los 6 pods, a 22,202 IOPS o 1.39 GB/s con una latencia de 4.3 ms; los 9 pods, a 30,475 1.9 IOPS o 4.7 GB/s con una latencia de 12 ms; y, finalmente, los 32,052 módulos alcanzaron un máximo de 2.4 4.9 IOPS o XNUMX GB/s con una latencia de XNUMX ms.

Nuestro próximo conjunto de pruebas son nuestras cargas de trabajo de SQL: SQL, SQL 90-10 y SQL 80-20. Para SQL, todas las implementaciones comenzaron con una latencia de 180 μs. Los 3 pods comenzaron con 26,291 261,573 IOPS y alcanzaron un máximo de 366 6 IOPS con una latencia de 57,061 μs. Los 570,642 pods tenían 336 9 IOPS y alcanzaron un máximo de 86,197 885,269 IOPS con una latencia de 332 μs. Los 12 pods comenzaron con 101,753 1,106,860 IOPS y alcanzaron un máximo de 346 XNUMX IOPS con una latencia de XNUMX μs. Y la implementación de XNUMX pods comenzó con XNUMX XNUMX IOPS y llegó a un máximo de XNUMX XNUMX XNUMX IOPS con una latencia de XNUMX μs.

Para SQL 90-10, todas las implementaciones comenzaron cerca de la latencia de 200 μs. La implementación de 3 pods comenzó con 10,753 105,877 IOPS y alcanzó un máximo de 904 6 IOPS con una latencia de 49,361 μs. Los 245,158 pods tenían 782 9 IOPS y alcanzaron un máximo de 80,157 401,444 IOPS con una latencia de 716 μs. Los 12 pods comenzaron con 55,748 554,685 IOPS y alcanzaron un máximo de 690 XNUMX IOPS con una latencia de XNUMX μs. Y la implementación de XNUMX pods comenzó con XNUMX XNUMX IOPS y llegó a un máximo de XNUMX XNUMX IOPS con una latencia de XNUMX μs.

Para nuestra última prueba de SQL, la 80-20, vimos que las implementaciones de Vdbench también comenzaron muy cerca de la latencia de 200 μs. Las implementaciones alcanzaron su punto máximo de la siguiente manera: la implementación de 3 módulos a 57,944 1.6 IOPS con una latencia de 6 ms; los 132,384 pods alcanzaron un máximo de 1.4 9 IOPS con una latencia de 217,273 ms; los 1.3 pods 12 IOPS con una latencia de 305,426ms; y la implementación de 1.2 pods alcanzó un máximo de XNUMX XNUMX IOPS con una latencia de XNUMX ms.

Lo siguiente son nuestras cargas de trabajo de Oracle: Oracle, Oracle 90-10 y Oracle 80-20. Con Oracle, todas las implementaciones comenzaron por debajo de los 210 μs. Aquí vemos el rendimiento máximo de las implementaciones. Los 3 pods alcanzaron un máximo de 54,844 2.2 IOPS con una latencia de 6 ms. Los 125,633 pods alcanzaron un máximo de 1.9 9 IOPS con una latencia de 206,024 ms. Los 1.7 pods alcanzaron un máximo de 12 290,313 IOPS con una latencia de 1.6 ms. Y la implementación de XNUMX pods alcanzó un máximo de XNUMX XNUMX IOPS con una latencia de XNUMX ms.

En Oracle 90-10, las implementaciones comenzaron por debajo de los 200 μs. La implementación de 3 pods alcanzó un máximo de 106,182 620 IOPS con una latencia de 6 μs. Los 243,383 pods alcanzaron un máximo de 541 9 IOPS con una latencia de 393,727 μs. Los 502 pods alcanzaron un máximo de 12 544,584 IOPS con una latencia de 483 μs. Y, por último, la implementación de XNUMX pods alcanzó un máximo de XNUMX XNUMX IOPS con una latencia de XNUMX μs.

Para Oracle 80-20, vimos una vez más todas las implementaciones a partir de una latencia de 210 μs. Si observamos el rendimiento máximo de las implementaciones, vemos que los 3 pods alcanzan un máximo de 58,037 1.1 IOPS con una latencia de 6 ms; los 132,911 pods alcanzan un máximo de 991 9 IOPS con una latencia de 215,817 μs; los 915 pods alcanzan un máximo de 12 304,391 IOPS con una latencia de 865 μs; y, por último, la implementación de XNUMX pods alcanzó un máximo de XNUMX XNUMX IOPS con una latencia de XNUMX μs.

Conclusión

Kubernetes ha sido aceptado por empresas más pequeñas y ahora se está convirtiendo en una tecnología que la mayoría, si no todas las empresas de Fortune 500, están analizando y, algunas de las más progresistas, están comenzando a implementar. Kubernetes solo ha existido durante 5 años, pero ha superado el tramo de innovadores en la curva de adopción de tecnología y está sólidamente en el campo de los primeros en adoptar. Este posicionamiento en la curva de adopción de tecnología es importante ya que la comunidad de Kubernetes ha descubierto cómo hacer que Kubernetes funcione y ahora se está enfocando en lograr que funcione bien y esperamos que pruebas como estas ayuden a los consumidores de Kubernetes a decidir con qué proveedores ir. y ayude a los proveedores brindándoles un estándar con el que compararse.

Diamanti ha creado una solución de Kubernetes convincente con el dispositivo de contenedor D10, que ofrece una interfaz de administración informativa y fácil de usar y una plataforma de almacenamiento de back-end muy rápida para alojar contenedores. Como este es todavía un campo emergente, no hay muchas soluciones completamente desarrolladas en el mercado, pero por lo que hemos visto, el D10 es capaz de acertar en todas las marcas de lo que tradicionalmente veríamos desde un solución de almacenamiento o HCI. En general, el rendimiento es fantástico y ofrece más de 2.7 millones de IOP de lectura aleatoria 4K de nuestro clúster que prueba de 3 a 12 pods. Desde la perspectiva de la latencia, comenzamos con poco más de 100 microsegundos y alcanzamos un máximo de 600 microsegundos. En términos de almacenamiento, tiene un rendimiento increíble y, desde una plataforma de tecnología emergente, es bastante increíble. Desde una perspectiva de escritura, el dispositivo ofrecía 50 4 IOPS 11K aleatorias, lo que parece ser la única debilidad, pero algo que la empresa debería poder abordar a través del software o quizás incluso de los medios de almacenamiento. El ancho de banda secuencial ofreció velocidades de lectura de más de 2.4 GB/s, nuevamente un rendimiento muy sólido y utilizable, con velocidades de escritura de XNUMX GB/s en el pico.

En general, para los clientes que implementan Kubernetes en su entorno, el dispositivo de contenedor Diamanti D10 ofrece un excelente enfoque llave en mano desde la perspectiva del alojamiento y el almacenamiento para aquellos que buscan analizar seriamente el mercado de contenedores rápidos y flexibles. Para ser justos, esto no es para todos, el grupo es bastante específico en su orientación. Pero si se ajusta a ese objetivo, Diamanti ofrece exactamente lo que quieren esos clientes, está diseñado específicamente para este tipo de cargas de trabajo de contenedores emergentes. Si bien es completamente posible, por supuesto, aprovechar PKS para VMware o soluciones alternativas que estén más enfocadas en la empresa, Diamanti ofrece un sistema que tiene poca complejidad y debería tener una ventaja de costos sobre las pilas empresariales tradicionales. Debido a la integridad de la solución (tiene una buena GUI para variar) y el muy buen perfil de rendimiento, hemos determinado que el D10 es un digno ganador del premio StorageReview Editor's Choice Award.

Diamantes D10

Discutir esta revisión

Suscríbase al boletín de StorageReview