En esta serie de posts vamos a hablar exclusivamente de performance. Las recomendaciones de configuración, disponibilidad o cualquier cosa no relacionada con performance no la vamos a cubrir en estos articulos.
Hoy empezamos con una serie de posts dedicados a performance de vSAN. Vamos a cubrir el hardware, diferentes aspectos de la red, configuraciones, el comportamiento de como un I/O como ser mueve por vSAN etc.
Si tienes alguna pregunta o sugerencia por favor compártela en la sección de comentarios e intentaré responderla y posiblemente añadirla al contenido de la serie!
La primera entrada trata de lo que es posiblemente el punto mas relevante en el performance de vSAN, el hardware. Cubriremos cada componente de vSAN en los hosts/clusters y veremos que opciones hay para cada uno de ellos.
Componentes de Hardware de vSAN
Controladora de almacenamiento
La controladora gestiona las lecturas y escrituras de los discos que están directamente conectados a ella. Es tan importante o mas que los propios discos, por lo que no deberíamos elegirla a la ligera sin hacer una estimación de nuestras necesidades.
Debemos tener en cuenta una serie de puntos importantes sobre las controladoras:
- Los NVMe y 3D XPOINT tienen su propia controladora embebida. Estos discos se conectan directamente al chipset a través de las líneas PCI y obviamente son la mejor opción si solo tenemos en cuenta el rendimiento.
- Lo mas recomendable es tener al menos dos diskgroups y, si es posible, dedicar una controladora para cada uno de ellos. Si tenemos dos diskgroups y una única controladora, incluso si es capaz de manejar esa carga, tendríamos un único punto fallo.
- La propiedad mas importante de la controladora para nosotros es el tamaño de cola. Lo mínimo soportado para vSAN es 256, pero una cola mayor probablemente nos de mejor rendimiento.
- Un tamaño de cola pequeño puede impactar al tiempo de rebuild/resyncs de los hosts.
- Los diskgroups contienen 1 discos de cache y hasta 7 discos de capacidad. Podemos tener hasta 5 diskgroups. Asegúrate de tener una controladora de discos con la capacidad de manejar la carga que todos esos discos generen.
- Ya que vamos a desactivar la mayoría de las funcionalidades de la controladora (la configuraremos en modo JBOD/passthorugh y desactivaremos la caché etc…), no deberíamos comprar una controladora pensando en estas funciones extra. Probablemente sea mejor comprar una controladora mas barata con un tamaño de cola mejor.
- No es buena idea mezclar discos de vSAN con discos que no son para vSAN en una misma controladora. (mas detalles de este punto en la siguiente KB)
Best practices when using vSAN and non-vSAN disks with the same storage controller (2129050)
https://kb.vmware.com/s/article/2129050
Discos
Hay dos configuraciones posibles en vSAN, híbrido y all-flash. En una configuración híbrida los discos flash se usan para caché y los discos magnéticos para capacidad, mientras que en una configuración all-flash se usan discos flash tanto para caché como para capacidad.
Discos de caché:
Dependiendo del diseño de vSAN (Híbrido o all-flash) la caché tiene distintos roles:
- En un despliegue híbrido los discos de caché tienen dos funciones. Una es servir de caché de lectura, lo que mejora enormemente el rendimiento con discos SATA-SAS. Esta es una manera de reducir la cantidad de lecturas que se harán en discos magnéticos lentos. La segunda función consiste en utilizar el resto del espacio como caché de escritura.
- En despliegues all-flash los discos de caché se utilizan completamente como caché de escritura.
Discos de capacidad:
- Los discos de capacidad guardan los datos después de haber sido escritos en la capa de caché. A este proceso se le llama «destaging».
- En un despliegue híbrido, primero se intenta leer en la capa de caché y si el dato no está disponible se accede a la capa de capacidad.
- En un despliegue all-flash siempre se lee directamente desde los discos de capacidad.
El proceso de «Destaging» será explicado en detalle en un post de esta serie.
Clases disco (Tiers)
Hay distinta clasificación para los SSD y los discos magnéticos dependiendo de su rendimiento y su durabilidad. Es importante considerar la clase del disco no solo para los discos de caché sino también para los discos de capacidad. Unos discos de capacidad de bajo rendimiento podrían afectar al rendimiento del datastore.
SSD Endurance
Los discos SSD están clasificados en diferentes tiers de «endurance» o durabilidad dependiendo de cuantas escrituras pueden realizar durante su vida útil. Este numero es una estimación basada en la garantía del disco que nos da el fabricante, pero es una buena métrica para saber cuanto durará aproximadamente el disco antes de romperse.
Es importante elegir discos de un tier alto de «endurance» para la caché ya que es una capa con un uso intensivo en operaciones de escritura.
TBW= Terabytes escritos.
SSD Performance
La clasificación de performance en los SSD es fácil de entender, ya que estos tiers se basan en el numero de escrituras por segundo. La elección de discos se suele hacer dependiendo de cual es el requerimiento mínimo de la aplicación y coste ya que a mayor rendimiento mas caro suele ser el disco.
Discos Magnéticos
Los discos magnéticos tradicionales son mas baratos y tienen mayor capacidad que un disco SSD, ademas son mas fiables pero son bastante mas lentos.
El rendimiento de los discos magnéticos se mide en «Revoluciones por minuto» (RPM)
Personalmente pienso que con con la caida del coste de los discos NVMe y los discos SSD que hemos tenido estos años solo recomendaria usar clusters híbridos de vSAN con discos magneticos para «Archiving» o entornos no productivos.
https://www.vmware.com/resources/compatibility/vsan_profile.html
Discos, Ancho de banda y tamaño de cola
Es muy importante tener en cuenta la tecnología del disco y que clase de interfaz se usa para ser conectado, ya que SATA, SAS y NVMe no tienen todos el mismo ancho de banda o tamaño de cola.
En discos SATA/SAS tenemos una controladora de almacenamiento común que maneja varios discos, por esto tenemos que tener en cuenta el tamaño de cola de los discos y su ancho de banda. En ACHI y SATA se tiene un tamaño cola de 32 (1 cola y 32 comandos). SAS en cambio puede manejar 256 (1 o 2 colas), mientras que NVMe puede administrar un tamaño de cola de hasta 65k.
Los discos SATA tienen distintos valores de ancho de banda, dependiendo de la versión SATA 1,5Gb/s, 3Gb/s, 6Gb/s mientras que SAS puede llegar hasta 22,5Gb/s. Los NVMe funcionan de manera diferente ya que están conectados directamente usando las líneas PCI (normalmente PCI 4x) así que su ancho de banda es significativamente superior.
https://es.wikipedia.org/wiki/NVM_Express
Latencia
Hay una diferencia muy grande entre la latencia de los discos SATA/SAS (puede ser de hasta 3-4ms) y la de un NVMe, que tiene una latencia muy baja (0,5-0,7ms). Esto debe tenerse en cuenta dependiendo de la aplicación que vamos a desplegar en vSAN y de si vamos a usar el disco para capacidad o para caché.
3D Xpoint (Intel Optane, QuantX) es un tipo de disco NVMe con ultra baja latencia y unas velocidades superiores a un NVMe normal. Estos discos son bastante caros pero son bastante útiles para aplicaciones criticas o clusters con necesidades muy altas.
Aprenderemos sobre el comportamiento de un IO en un post dedicado completamente a este tema.
Network
Los requisitos mínimos de vSAN son:
- 1Gbps dedicado para configurationes híbridas.
- 10Gbps dedicados o compartidos para configuraciones all-flash.
Debemos tratar estos números solo como un mínimo y, además, deberíamos pensar como diseñar la red física y virtual. Necesitamos una red capaz de manejar el trafico que vSAN vaya a generar dependiendo de cada caso.
Podría ocurrir que preparemos una red de 10Gbps compartida con otras VMs o servicios y luego nos gastemos mucho dinero en hosts llenos de discos muy caros, esto probablemente cree un cuello de botella en la red que no solo impacte en el rendimiento de vSAN, sino también en el rendimiento de las máquinas virtuales y otros servicios en la red.
Si los uplinks físicos estan compartidos es recomendable configurarlos en «activo-pasivo» de la siguiente manera:
- vSAN usa el primer uplink y configuramos el segundo uplink en «Standby».
- Configuramos la segunda interfaz para el resto de los servicios y dejamos la primera interfaz como «Standby».
- En el caso de que fallen alguno de los uplinks es recomendable configurar «Network IO Control». De este modo, si ocurre algo y los servicios empiezan a usar todos el mismo uplink, NIOC priorizará vSAN sobre el resto del tráfico.
Ejemplo de diseño de hardware en vSAN
Basándome en mi experiencia personal podemos crear una tabla como ejemplo de como podriamos diseñar el hardware para diferentes clusters, dependiendo de los requisitos de las aplicaciones que vamos a desplegar en ellos.
Como podemos apreciar en la tabla, es buena idea crear distintos clusters separando las aplicaciones dependiendo de sus necesidades de rendimiento. No es buena idea mezclar aplicaciones criticas con aplicaciones no-productivas, por ejemplo, ya que el hardware necesario es caro y no seria eficiente.
vSAN Ready Nodes
Como hemos visto elegir los componentes que vamos a usar para vSAN no es tarea fácil. Tenemos muchas opciones y necesitamos estar seguros de que no vamos a crear cuellos de botella en las distintas capas. Esta es una de las razones por las que deberíamos considerar siempre que sea posible usar vSAN Ready Nodes.
Los vSAN Ready nodes han sido probados con unas configuraciones de hardware muy especificas para asegurarnos que esa combinación de hardware funciona perfectamente con ese número de diskgroups, esa cantidad de discos y con ese tier de rendimiento, la controladora de almacenamiento con ese tamaño de cola etc.
Para mas información sobre los distintos vSAN Ready nodes:
vSAN Hardware Quick Reference Guide
https://www.vmware.com/resources/compatibility/vsan_profile.html
vSAN ReadyNode Configurator
https://vsanreadynode.vmware.com/RN/RN
HCI Assessment
https://www.vmware.com/products/hyper-converged-infrastructure/assessment.html
Comentarios