Soluciones 100% en software para casos de uso reales (Nutanix y Zerto)

Hace casi un año me enfrente a un gran reto. Nos encontrabamos reemplazando una solucion tradicional de 3 capas (Servidores, Almacenamiento y Switches SAN) en ambientes fisicos, la cual ibamos a virtualizar hacia Nutanix. Teniamos 2 grandes retos, primero que todo la virtualización de las bases de datos de mision critica y segundo el cambio de arquitectura hacia webscale.

Ya habiamos pasado la etapa de la prueba de concepto en donde teniamos ya varios criterios aprobados en Nutanix como Desempeño, Simplicidad, entre otros. Finalizando lo que ya para nosotros era casi otro proyecto, tuvimos un requerimiento bastante especial. Nuestro cliente requeria una solucion de protección local, que le permitiriera tener tiempos de RPO de segundos y RTO de minutos en su base de datos de mision critica que tenia un tamaño aproximado de 6TB con un alto nivel de transaccionabilidad, con puntos de recuperación máximo de 1 minuto por 5 dias. (Un requerimiento bastante exigente).

En principio exploramos varias opciones de protección tipo backup (Le quiero decir que tenemos en el equipo gente que conoce bastante de soluciones de backup) pero era evidente que era imposible recuperar 6TB en minutos, ni siquiera incluyendo tecnologias de backup y recuperación en disco optimizadas sin tener que hacer procesos de recuperación.
Pues bien, luego de varios dias de pensar como lograrlo tuvimos una idea, replicacion local con Zerto, aprovechando CDP, la replicacion a nivel de hipervisor y las técnicas que tiene para realizar test-failover muy rapidamente. Tenia ya alguna experiencia de proyectos con Zerto, conocia sus beneficios, pero evidentemente el requerimiento acá era muy exigente.

Si usted hasta este punto no conoce mucho de Zerto, quiero decirle que su CEO Ziv Kedem en mi opinion es uno de las personas sobre la faz de la tierra que más conoce de replicacion de datos. De hecho EMC adquirio su empresa Kashya http://israel.emc.com/about/news/press/us/2006/05092006-4371.htm en el 2006, justamente por su tecnologia de replicacion avanzada CDP. Despues de la adquisición Ziv fue VP en EMC para Recovery Point, posterior a esto y al mejor estilo de las mentes poderosas en tecnologia como Martin Casado, entre otros, Fundo Zerto. Asi que si hasta este momento usted pensaba de donde salio Zerto? Esta es mi version corta de la historia.
Volviendo al punto, voy a compartir lo que pasaba por mi cabeza en ese momento:
El overhead de tener 2 appliance tratando los datos en linea (CVM-VRA) ??
6TB evidentemente era un gran volumen de datos para una VM sobre vSphere, Zerto tendra algun impacto?
La base de datos tenia altos requerimientos en IOPS, Procesamiento y RAM, Zerto causara Latencias?

Luego de conversar y tener la opinion de algunos amigos y especialistas de la industria, (Michael Webster, Joshua Stenhouse, entre otros), llegamos a la conclusión que seria una buena idea. El equipo de Zerto decia que tiene bases de datos con esa cantidad de datos con RPO de segundos sin problemas, pero en ambientes tradicionales y sitios alternos,pero no replicando de manera local con una arquitectura webscale como Nutanix….acá era donde teniamos el reto.
Pues bien cual era el camino, realizar algunas pruebas antes de considerar la solución y proponerla a nuestro cliente.

A continuacion voy a compartir algunas imagenes de los resultados que obtuvimos en las pruebas. Si usted esta considerando o tiene un requerimiento similar la información que voy a compartir le será de mucha utilidad. (Este post tiene casi un año guardado….quisiera escribir más, pero el tiempo no lo permite)

Lo que yo queria probar con mayor urgencia era lo siguiente:

  1. Comportamiento de recursos en CVM y VRA con alta transaccionalidad en la base de datos.
  2. vMotion con alta transaccionalidad, observando los recursos en CVM y VRA en el host origen y destino.
  3. RPO y RTO de recuperación
  4. Consumo de datos
  5. Consistencia de recuperación (Zerto trabaja en modo crash consistency)
  6. Comportamiento de maquina virtual recuperada, puesto que sobre ella se ejecutarian proceso

Imagen 1 Configuracion de la maquina virtual:

Nota: Recomiendo tener presente el documento de mejores practicas para SQL, con el fin de tener presente todas las consideraciones.


Imagen 2: Carga de IOPS


Imagen 3: Monitoreo de recursos


Rojo:
Maquina virtual 3TB con carga  830 a 1000 IOPS 100% write, Latencia 1ms. CPU Usage 2%, Memory Usage 9%
Azul: VRA Zerto destino 334 IOPS Read Latencia 2.79ms. CPU Usage 91%, Memory Usage 6% (Config de CPU en esta máquina es 1 vCPU)
Verde: CMV local. CPU Usage 46.5%, Memory Usage 16%
Nota: Cuando vi esta imagen tuve un muy buen dia.
Imagen 4: Monitoreo de puntos de consistencia (Para cumplir con requerimientos de RPO e historico de 4 dias)

 

Nota: Como lo imaginada, aunque la maquina tenia alto nivel de transaccionalidad, los puntos de consistencia eran igual que en maquinas virtuales de propósito general. Es decir segundos, Sin afectar las 2 capas de control por software que estaban teniendo los datos CVM y VRA.


Imagen 5,6,7,8,9,10,11 : Monitoreo de fail-over test (Para cumplir con requerimiento de RTO)

Notas: Realice 4 pruebas de test-failover obteniendo en las 4 pruebas menos de 10 minutos de RTO. Lo más interesante de todo es que siempre la maquina virtual principal estuvo ejecutando procesos de escritura de datos.


Imagen 12,13 : Monitoreo de recursos en estado fail-over test generando carga en la maquina de recuperacion (testing-recovery)

Rojo: Maquina virtual 3TB con carga  800 iops 100% write, Latencia 3.2ms. CPU Usage 2%, Memory Usage 5%.
Azul: VRA Zerto destino 258 IOPS Read , 464 iops Write, Latencia 9.8ms. CPU Usage 5%, Memory Usage 14%.  (Configuración de CPU en esta máquina es 1 vCPU)
Verde: CMV local. CPU Usage 71%, Memory Usage 19%.
Amarillo: Maquina virtual iniciada en test fail-over 120 iops Read, 159 iops Write, Latencia 7ms, CPU Usage 5%, Memory Usage 14%.

Notas: Una de las cosas que más interesantes que se observan en la imagen es el poder de la localidad de los datos (Data Locality), el buen desempeño que pudimos obtener, teniendo en todo momento carga de datos.

Ahora entiendo porque a diferencia de otras HCI del mercado que tienen temor de ofrecer para misión critica sus soluciones, NUTANIX dice con toda tranquilidad, yo lo hago y lo hago muy bien.

Acá vemos trabajando los algoritmos de DFS de Nutanix realmente. Una de las pruebas que realice cuando tuve mis primeros nodos en frente fue vMotion hacia otro host con carga 100% write, en donde los principios de distribución se verian a profundidad. Pues bien una de las cosas que pude evidenciar es que la penalización (por llamarlo de algun modo) mientras el sistema de archivos detecta que la maquina esta trabajando en otro host y mueve los datos para que esten servidos de manera local fue unicamente del 20% un par de minutos. Es decir que sobre esta maquina con 100% write (lo cual seria el peor escenario) dando 1000 IOPS, una vez movida hacia otro host en caliente, pude observar que durante 1 o 2 minutos disminuyo su performance unicamente en un 20%, es decir paso de 1000 IOPS a 800 IOPS unicamente durante 2 o 3 minutos, luego de esto recupero nuevamente sus 1000 IOPS cual el sistema de archivos distribuido identifico que la maquina estaba en otro host. Interesante no?. En este aspecto Nutanix golpea fuertemente a cualquier solución HCI del mercado .
Para no hacer más larga esta gran historia, a nuestro cliente le gusto mucho la solución propuesta. Ya en producción tuvimos que hacer algunos ajustes para cumplir 100% como algunos scripts para mantener un poco más los CP (consistency Points).

Hoy en dia el cliente esta muy satisfecho con toda la solución propuesta. De hecho luego de esta muy buena experiencia, vinieron otros proyectos en donde la combinacion de Nutanix + Zerto es impresionante.

 

Rock on!

Buena combinación no creen? Nutanix + Zerto + PernixData será sobre lo que escribiré en el futuro.

Leave a Reply

Your email address will not be published. Required fields are marked *