viernes, 29 de julio de 2011

Repensando VDI - Parte I

Si observamos el estado actual de las soluciones VDI, podemos constatar un par de hechos
  • La densidad de Desktops por server es crucial.
  • A partir de un determinado volumen, Las soluciones requieren de infraestructura datacenter.
El primer punto es evidente: Hay que rentabilizar las inversiones en hardware (servidores y almacenamiento) y las software (licencias y mantenimientos).
Es evidente que, por un lado, el incremento de cores en los procesadores y la mejora continua de arquitecturas, y por otro, la reducción del precio de las memorias, favorecen densidades de 80-100 desktops por server, cuando no hace demasiado, hablar de 50 desktops por server hacía temblar a más de un experto. Todas estas innovaciones permiten reducir la factura de los servidores y, consecuentemente, el coste del software asociado (Ya sean licencias de hypervisor, sistemas de gestión de la infraestructura, etc).
Respecto al segundo punto, y siguiendo el paradigma actual de “todo al datacenter”, requerimos de servicios centralizados como son el almacenamiento, la seguridad o las comunicaciones, por no hablar del backup, restore e infraestructura de protección ante desastres y/o continuidad de negocio.
Respecto al primer punto, el elevar el ratio a niveles de 90:1 debido al mayor rendimiento de CPUs y memorias genera, por otro lado, el problema de la congestión de I/O, es decir, la lucha por el acceso a disco y en menor manera, a la red.
Por muy Windows XP, 7 o Linux que sean, siguen siendo máquinas virtuales con requerimientos de acceso a disco. A diferencia de una sesión de terminal server (o citrix XenApp), la sesión de un usuario no implica una instancia más de la aplicación en un sistema operativo server (que suelen estar más optimizados en lo referente al I/O que uno de desktop), sino TODO el conjunto del sistema operativo se instancia para dar servicio a un único usuario. De ahí que, a igual hardware, un servidor de terminales pueda albergar muchísimos más usuarios simultáneos que ese mismo servidor ejecutando una infraestructura VDI. Básicamente la diferencia se encuentra en cuántos recursos (Disco, RAM y CPU) se requieren en el entorno VDI frente al escenario con Terminal Services o Citrix XenApp
Esta sobrecarga de I/O se puede ver incrementada con las habituales aplicaciones o servicios asociadas al desktop: Antivirus, updates (tanto de OS como de aplicaciones, aunque en algunos escenarios se desactive), o por operaciones vinculadas al entorno VDI como el despliegue de nuevos desktops o el refresco de los mismos. Es cierto también que las tecnologías de linked clones disminuyen el acceso a disco eliminando el uso que supone replicar una y otra vez un disco maestro. Recomiendo la lectura del documento “Windows 7 IOPS for VDI: Deep Drive” de Jim Moyle para una visión detallada de la relación entre desktops Windows 7 y los IOPS generados. Recomiendo la lectura adicional de un caso de aplicación donde los IOPS fueron determinantes. Está publicado aquí.
Desde el punto de vista del coste de un despliegue VDI, satisfacer los requerimientos de IO de la infraestructura puede resultar una sorpresa bastante cara.
Aprovechar la infraestructura actual de virtualización (es decir, host y almacenamiento) puede redundar en una pérdida de rendimiento dramática del entorno de servidores y afectar, como no, a la infraestructura VDI.
En algunos proyectos, el estudio de costes saltó hecho añicos cuando en mitad del despliegue hubo que plantear la adquisición de una unidad de almacenamiento específica para el entorno VDI (Y no de las entry level, precisamente). Aún dedicando una unidad SAN/NAS de almacenamiento exclusivamente a VDI, los problemas de rendimiento puede que no desaparezcan, dándose la paradoja de que se requiera una SAN más avanzada para el entorno VDI que la desplegada para los servidores.
Seguimos otro día.
Un saludo.