Mostrando entradas con la etiqueta Repensando VDI. Mostrar todas las entradas
Mostrando entradas con la etiqueta Repensando VDI. Mostrar todas las entradas

viernes, 2 de septiembre de 2011

Repensando VDI - Parte III y final


Bueno… como vimos en los post anteriores, ya tenemos en la mano el diseño de una solución VDI para nuestro proyecto en particular. Ahora, antes de lanzarnos a hacer pedidos parémonos a reflexionar.
Para unos doscientos desktops disponemos encima de la mesa de tres servidores de alta gama, una SAN en la que hemos perdido un entretenido rato en diseñar nuestra SAN teniendo en cuenta aspectos como los IOPS.
Por otro lado, y como parte de un buen diseño, vemos que la granularidad en la escalabilidad de la solución se nos torna baja. Me explico… para 10 desktops más, hemos de adquirir un equipo similar, con un coste que os recuerdo roza los 14K.
Además, y desde el punto de vista de la gestión, hemos añadido la gestión de la SAN y del almacenamiento, lo que dependiendo del departamento de IT del cliente, supone una nueva carga de trabajo, que requerirá cierta monitorización y ajustes durante la vida del entorno.

Todo esto que resumo en unas cuantas líneas supone un nuevo sistema crítico en el entorno del cliente, con los mismos, si no mayores, requerimientos de gestión y monitorización que su entorno de servidores…. Y todo para un entorno, el de PCs, que no requiere, en un entorno de desktop físico, de tanto nivel de administración y conocimiento de las tecnologías implicadas.

Keep it simple
Quizá debamos revisar nuestra concepción de un entorno como el que nos ocupa. Empecemos por los servidores.
Es indiscutible, al menos bajo los parámetros tradicionales, que la densidad es el secreto del éxito en un entorno VDI. Es decir, cuántos más VM “metamos” en un servidor, mejor… ¿mejor?. Servidores más grandes son más caros, y ante el fallo de uno, el impacto es mayor: Enel ejemplo en el que estamos trabajando en el que hemos añadido un tercer servidor sólo por si acaso (recordemos que la pregunta no es si fallará, sino cuando lo hará). Este tercer servidor además nos permite asumir sin paradas las tareas de mantenimiento de la infraestructura, lo que sigue obligándonos a desconectar a cien usuarios de uno de ellos para que se conecten a otro. Así mismo, y tal y como recordamos antes, la granularidad es baja: Ampliamos nuestra infraestructura por mor a la uniformidad de entornos de 100 en 100 desktops.
Por otro lado, el almacenamiento. Según nuestros cálculos, necesitamos al menos 15 discos para satisfacer el hambre de IOPS de nuestra instalación. Nos vemos dimensionando una SAN de un coste respetable (discos de 15K, multipath, etc) únicamente por las necesidades de IOPS….

Servidores: Enanos vs Gigantes
Si incrementamos el número de nodos, disminuyendo a la par la especialización del hardware (nada de memoria ECC, SATA en lugar de SAS, Placas base de desktop con procesadores de alto rendimiento) observamos  que,  a igual número de cores y memoria, la factura baja sustancialmente… más que nada en lo referente a la redundancia. Si sustituimos cada nodo de los antes descritos por 4 0 5 Core I7 980/990 con 24 Gb de RAM, el importe de la factura en lo referente a servidores descenderá bastante, manteniendo (e incluso decrementando) el número de desktops por core. El coste de la redundancia (ese servidor extra) también se reduce (ya que la configuración propuesta cuesta posiblemente entre tres y cinco veces menos).
Almacenamiento: Divide y vencerás.
Respecto al almacenamiento…. Olvidémonos de la SAN. Discos locales SSD de hasta un Tb en / si queremos, configuración RAID. Hoy en día un disco SSD de 500 Gb (que nos va a dar más IOPS que TODA una SAN tradicional)  de 500 MB/sec de lectura/escritura, ronda los 1200€… más que suficiente para un entorno de 20-30 desktops por servidor.  Discos algo más modestos del orden de 300 Gb con ratios de 270/205 MB/s de lectura y escritura rondan los 50 0€.

Un equipo de estas características (dependiendo de si ponemos o no el disco SSD en RAID) puede oscilar entre los 2000 y 3000€. Si volvemos  al coste de los servidores propuestos (13K por servidor x 3), vemos que con el mismo presupuesto (39000€), podremos adquirir  entre  13 y 19 de estos equipos, suministrando entre 78 cores/ 312 Gb de RAM y 114 cores con 459 Gb de RAM comparados con los 72 Cores y 288 Gb de RAM de la solución inicial. En lo referente al almacenamiento,  la solución SSD provee entre 3000 y 6000 IOPS por microservidor frente a 3500-4000 para toda la infraestructura del ejemplo inicial.

¡Almacenamiento local! ¿Vade retro?
No tiene porqué. Hay cierta tendencia a reevaluar el valor del almacenamiento local, sobre todo con SSD, en entornos VDI. Citrix ya plantea usar los discos locales de los servidores como caché para eliminar accesos a la SAN/NAS (Intellicache), y otras tecnologías más disruptivas como nutanix ya hablan directamente de sustituir a la SAN/NAS como almacenamiento de runtime de entornos de virtual desktops.
Caso aparte es el de Kaviza, recientemente adquirida por Citrix, que con su concepto de Grid elimina la necesidad de almacenamiento compartido.

Brokers.

Xendesktop.
Mediante el uso de Intellicaché, nos podemos plantear el uso de un servidor NFS que almacene las gold copy para que posteriormente Intellicache las despliegue en los SSD locales: Cualquier NAS tipo IOMEGA Storcenter, TheCus o similar, que nos suministran NFS a costes inferiores a los 1200€ resulta suficiente. También Windows 2008 nos ofrece un servidor NFS de alto rendimiento, con el añadido de que esta misma máquina puede usarse para los perfiles de los usuarios.


Kaviza.
Kaviza parte de la premisa de que no existe almacenamiento compartido, aunque puede usarse. El controlador de Kaviza se instala en cada uno de los equipos como una máquina virtual, se agrupan entre ellos en un grid, y hagas lo que hagas en uno de ellos, se replica al grid sin configuración adicional. Así mismo el grid se encarga de proveer de tolerancia a fallos, redirigiendo al usuario de un nodo al otro en caso de caída del primero. Esta característica nos permite reducir el número de microservers, al no ser necesarios más de uno o dos para proveer de tolerancia a fallos al entorno. Así mismo, el grid se encarga de replicar las gold images entre todos sus miembros sin necesidad de configuración extra.




Otra ventaja de kaviza es el hecho de no requerir plataforma de gestión de hypervisor (vCenter o similar) ya que habla directamente con cada hypervisor.
En el caso de kaviza, los microservers irían equipados con un disco adicional SATA para almacenar el appliance y las gold copys (no vamos a desperdiciar SSD en eso, ¿no?)
Ya hablaré sobre kaviza en mayor profundidas en futuros post.

El hypervisor.
Bueno, este entorno evidentemente eleva el número de licencias de los hipervisores, aunque en determinado caso, el de ESX, nos puede reducir la cuenta gracias al maravilloso licenciamiento que nos ha calzado VMware… básicamente porque cada host se mantiene en los límites de memoria de la edición más económica (que además no incluye nada que necesitemos, incluyendo vMotion o HA).


Foto final
Pues venga, dibujemos el entorno final:



A simple vista se percibe la sencillez del modelo. Es un modelo en una sola capa, y que escala añadiendo unidades adicionales a un coste limitado. Cada ampliación incrementa los IOPS globales del sistema con una granularidad elevada (15-25 desktops), y a un coste totalmente mantenible. Eliminamos la SAN y la red FC de la ecuación, creando un entorno simple de gestionar, y dependiendo del broker elegido, puede ser mantenido por personal no experto en entornos virtuales.

Evolución del modelo.
Sobre este modelo se me ocurre que, al ser la unidad de crecimiento tan económica.... ¿porqué no plantearnos un entorno distribuído?

No hace demasiado demostraba a alguien que en un entorno VDI el movimiento de datos entre el puesto local (ficheros, corta y pega, etc) puede suponer un gran impacto en la infraestructura de acceso a los VDI. Su uno de nuestros usuarios decide subir desde su PC una imagen ISO de 2 Gb desde su disco local, el resto de los usuarios lo van a sufrir a menos que establezcamos mecanismos de control de ancho de banda más o menos avanzados para impedirlo. En escenarios donde hay grandes grupos de usuarios que acceden a los VDI contra el centro de datos, el ancho de banda y los protocolos de display remoto deben ser exprimidos al máximo para facilitar una experiencia de usuario cercana a la que está habituado. Mientras nadie se plantea localizar servidores de gama alta en oficinas de 20-30 usuarios, este entorno (especialmente  con los brokers nombrados), nos permiten desplegar "caches" locales a costes razonables, eliminando la necesidad de dispositivos de control de ancho de banda y mejorando la experiencia del usuario al acceder a los desktops a velocidad LAN.

Este tipo de arquitecturas no debieran de sorprendernos... sin ir más lejos ya hace mucho que los accesos a internet utilizan proxyes o las centralitas IP cuelgan de una central.



Conclusión.
Alguien que conozco siempre me dice que hay más de una manera de coger un pájaro, y no deberíamos olvidar que la tecnología no debiera estar limitada a los pdf de los fabricantes. ¡Nos pagan para pensar!





lunes, 8 de agosto de 2011

Repensando VDI - Parte II

En el post anterior de esta serie os proponía una reflexión sobre los despliegues VDI. En este, vamos a aplicar las ideas expuestas a un caso particular.

Escenario.
Hagamos números para un despliegue de VDI de unos 200 desktops con capacidad de tolerancia a fallos de al menos la mitad de la infraestructura. Tenemos tres gold images (copias maestras) de unos 40 Gb y pretendemos utilizar tecnología de linked clones para al menos el 80% (unos 160 desktops). El resto, son desktop completos.
Localizaciones.
El 100% de los usuarios accederán desde las 3 oficinas de la compañía, (aproximadamente, 60 usuarios por localización), aunque se estima que diez usuarios requerirán acceso más o menos constante desde localizaciones móviles. A corto plazo, se pretende extender el número de oficinas (entre 3 y 15 personas) en varios países europeos.
Aplicaciones.
Aparte de las ofimáticas (Microsoft Office y Open Office en algunos casos), hay que añadir el ERP corporativo, bases de datos Access para algunos departamentos, tres aplicaciones específicas del negocio basadas en web.
Otras actividades.
La navegación web y las descargas de ciertos documentos y archivos debe ser fluída, ya que gran parte de la actividad de la compañía se basa en el procesamiento de datos externos.
Experiencia de usuario.
En lo referente a la experiencia de usuario, nuestro entorno requerirá que al menos un 10% de nuestros usuarios dispongan de audio bidireccional para telefonía IP (disponemos, por ejemplo, de un Asterisk usando softphones), y al menos unos 15 usuarios requerirán de capacidades medias de manipulación de gráficos (composición de documentos ricos y/o manipulación de imágenes). La impresión (sí, señor, el eterno dolor de cabeza) se realiza en impresoras conectadas a servidores de impresión IP. El uso de dispositivos USB se limita a pen-drives y, opcionalmente, alguna cámara digital para la adquisición de fotografías previamente tomadas con estas. Se requiere de interacción entre determinados puestos locales y los desktops virtuales, al menos durante el primer año. Esta interacción se basa en el traspaso de datos entre la aplicación de un cliente y los empleados de la compañía desplazados al mismo.
Servidores.
Para ello utilizaremos tres host con las siguientes características
- 2 Procesadores de 12 cores
- 96 Gb de RAM
- 2 Fiber channel dual de 4 Gb
- RAID 1 x 3 discos de 73
El equipo seleccionado es un dell R715, equipado con dos Opteron 6180SE de 12 cores, doble fuente de alimentación.
Según el configurador de Dell (por poner un ejemplo), cada host nos cuesta unos 13.072€ (Calculemos un +- 15% entre descuentos y preferencias de configuración)
Con esta configuración, en la que minimizamos el número de host para evitar problemas con el licenciamiento, ya sea del hypervisor o plataforma de gestión, el coste de los host se eleva a 39.216€, lo que nos supone, aproximadamente, unos 196€ por desktop en lo referente a los servidores.
Almacenamiento.
Pasemos al almacenamiento. Una cabina de gama media-alta, con soporte FC y su correspondiente switch puede rondar los 30.000-40.000€ (dependiendo, claro, del fabricante).
Los IOPS (Input/Output Operations per Second)
Los IOPS (Input/Output Operations per Second) también serán determinantes a la hora de configurar el número de discos y los RAIDs correspondientes. Sumerjámonos en el siempre interesante mundo del almacenamiento.
Los discos.
Como referencia, tengamos en cuenta los IOPS medios de los discos actualmente en el mercado:
RPM
IOPS
SSD
4000-6000
15.000
170-180
10.000
110-130
7.200
70-78
5.400
45-50
Para los que nos gusta calcular estas cosas, si queremos tener una estimación de IOPS de nuestros discos, usaremos los siguientes parámetros para evaluar los IOPS de nuestros discos)
Velocidad de rotación: Número de revoluciones por minuto que dan los platos de los discos. Este parámetro está íntimamente relacionado con los otros dos que usaremos para el cálculo: Latencia Media y Tiempo medio de búsqueda.
Latencia media: Es el tiempo que tarda un sector del disco determinado en posicionarse bajo la cabeza de lectura/escritura del disco.
Tiempo medio de búsqueda: Es el tiempo medio que la cabeza tarda en posicionarse sobre un sector determinado para escribir o leer.
IOPS aproximados= Divide 1 por la suma de la latencia media del disco en milisegundos (aL) más el tiempo médio de búsqueda del disco también en miligegundos (aS)
IOPS=1/(aL+aS)
El gran Scott Lowe nos lo explica claramente en este post publicado en TechRepublic., Así mismo en el siguiente artículo en zdnet hay más datos interesantes sobre las RPM.
El RAID
Adicionalmente, hemos de contar con la posible penalización en escritura que el RAID de nuestra cabina nos imponga. Es importante tener claro que el RAID nos penalizará en escritura, mientras que puede (dependiendo del tipo de RAID) beneficiarnos en escritura. En un RAID0, por ejemplo, las operaciones de lectura se realizarán a la velocidad de uno de los discos de la SAN, ya que al estar los datos almacenados en un solo disco, estos nos serán devueltos a la velocidad del mismo. En un RAID 5, sin embargo, son todos los discos del RAID los que nos devuelven el dato, ya que este está dividido entre ellos).
A efectos de escritura, la siguiente tabla ilustra las distintas penalizaciones que, desde el punto de vista de la escritura, nos imponen los diferentes tipos de RAID.
Tipo de RAID
Penalización
RAID 0
0 (Una sola escritura en un disco)
RAID 1
2 (Dos escrituras en dos discos)
RAID 5
4 (lectura dato existente, lectura de paridad, escritura de nuevo dato, escritura de paridad)
RAID 6
6 (lectura de dato existente, lectura de paridad 1, lectura paridad 2, escritura de nuevo dato, escritura de paridad 1, escritura de paridad 2)
RAID 10
2 (igual que RAID 1)
RAID DP
2 (Escritura de dato, Escritura de paridad)
(Se admiten correcciones, opiniones y demás sobre el contenido de esta tabla)
Para más información: Niveles de RAID Estándar, Niveles de RAID no estándar según Wikipedia… recordad que cada fabricante puede “aliñar” los niveles de RAID para obtener un máximo rendimiento.
Para calcular el rendimiento de nuestra SAN el número de discos es crucial. No nos dará los mismos IOPS un volumen de 500Gb formado por 3 discos que por 6.
También el uso del disco es determinante. Me refiero al porcentaje de lecturas frente al de escrituras. No es lo mismo, a efectos de IOPS de la SAN, que el 80% del tiempo nos lo pasemos escribiendo y el 20% leyendo que al contrario (por aquello de las penalizaciones de escritura y beneficios de lectura)
Para no entrar en demasiadas controversias sobre las lecturas y escrituras que genera o no un Virtual Desktop (que dependerán, evidentemente, del diseño de la VM y del “opinador” en cuestión), estimemos un porcentaje de 80% de lecturas por un 20% de escrituras
Para calcularlo, usemos las siguientes fórmulas:
IOPS Brutos= Nº de discos(nD) * los IOPS de cada disco individual(iD)
IOPS Netos=((IOPS brutos * Porcentaje de escritura)/Penalización tipo RAID)+(IOPS Brutos * Porcentaje de lectura)
En base a estos datos, podemos definir una fórmula que nos indique cuántos discos necesitamos para calcular cuántos discos y en qué tipo de RAID hemos de montarlos para obtener un nivel de IOPS determinado.
Nº de discos=((IOPS * Porcentaje de lectura + (IOPS * Porcentaje de escritura * Penalización RAID)/IOPS individuales de cada disco)
Os dejo por aquí otro post que profundiza en los niveles de RAID.
Caches y otras hierbas…
Por si no fuese poco, a todo el lío que os he montado, añadid los caches, etc. Los fabricantes, conscientes de las limitaciones de las IOPS en entornos RAID, intentan minimizar el impacto de estas mediante el uso de Caches. Los que hayáis trabajado con RAID5 (con o sin SAN) estáis acostumbrados al concepto de cache, es decir, la controladora escribe en un caché de RAM alimentado por batería, difiriendo la escritura en el tiempo, de forma que podamos trabajar a velocidades RAM en lugar de a velocidades RAID. El problema es que la RAM se queda corta, así que no es extraño oir hablar de caches en flash, o directamente de un pool de discos SSD donde escribimos (por aquello del tamaño), y la SAN, posteriormente, mueve el contenido de los SSD/Flash a los RAID.´
El impacto de estos métodos en el rendimiento del RAID no son predecibles a priori, ya que dependerá de tamaño del caché, su tecnología y el método que use la SAN para mover los datos del caché a los discos. Vuestro comercial de almacenamiento seguro que dispone de un par de toneladas de PDFs que os lo aclararán.
A lo que íbamos.
Después de tamaño rollazo sobre el tema del almacenamiento (insisto y soy pesado con esto porque si en entornos de servidores es CRUCIAL para alcanzar altos ratios de consolidación, en VDI no os quiero contar), veamos como aplica esto a nuestro caso…
Estimando los requerimientos de IOPS entre 10 y 20 por Desktop (dependerá del sistema operativo, las aplicaciones, dónde se almacenen perfiles y datos y la arquitectura de la VM maestra – en negrita para destacar su importancia), nuestros 200 desktops requerirán de entre 2000 y 4000 IOPS, más incluso dependiendo de las operaciones de encendido, procesos de escaneo de antivirus y operaciones de despliegue masivo.
Si dimensionamos para la media, tendremos unas necesidades de entre 2000 IOPS y hasta 4000 si dimensionamos para el pico. Ahora es el momento de usar la formulita que os dejé para calcular cuántos discos necesitaríamos, me sale (ser admiten correcciones), que para dimensionar al pico (es decir, a 4000), necesito entre 18 y 36 discos de 15000 RPM y 178 IOPS. Una cantidad nada despreciable… Añadidle que los discos vayan en FC… ¿Porqué y no iSCSI? Si estimamos un rango de 10-20 IOPS por segundo en los desktops (más teórico que práctico) y descartamos el pico (lo que implica que en determinados momentos el I/O se habrá colapsado), tendremos que cada host puede generar constantemente unos 1000/2000 IOPS de media. Si el pico (arranque de VDIs, por ejemplo) se elevase al doble (unos 3000 IOPS) la latencia inherente a iSCSI (no olvidemos que sigue siendo IP, además de ser SCSI) puede resultar determinante. No obstante, y para que no se diga, en determinadas configuraciones iSCSI puede obtener rendimientos envidiables (véase 1,000,000 IOPS with iSCSI - That's Not a Typo...) También es verdad que una SAN de esas características no está al alcance de cualquiera…. Salvo que deseemos “montárnosla” por nuestra cuenta.. Ya sea con un servidor Windows Server y el Target iSCSI o con soluciones Open tipo Nexenta, Open-e o similares... opciones nada desdeñables y de las que escribiré otro día.
Bueno. Ya hemos acabado nuestro diseño, y salvo el coste de lo ya definido, ¿ya estamos listos para el despliegue? pues va a ser que la respuesta, en el próximo post.

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.