VMware View

Nuevo fling – VMware OS Optimization Tool

Que tal gente el día de hoy les voy a platicar sobre el nuevo fling de VMware, “VMware OS Optimization Tool”, herramienta pensada para poder identificar posibles áreas de oportunidad en imágenes maestras pensadas para ser utilizadas con Horizon View.

Antes que nada entendamos que un “Fling” no es una herramienta soportada por VMware, sino proyectos alternos que tiene el equipo de desarrolladores en VMware por gusto, por iniciativa propia, etc. muchas veces estos flings se toman como base para agregar capacidades a distintos productos de VMware pero generalmente son proyectos a corto plazo.

¿Que flings utilizo personalmente?

ThinApp Factory, Lctree (pueden leer mi articulo sobre Lctree y el appliance de vCD aquí),  I/O analyzer (este me encanta) y Onyx. Aunque existe otros Flings que me gustaría agregar a mi kit de herramientas, como View Pool Manage y vCloud Director REST Api Shell (primero necesito mejorar mis habilidades en REST).

¿De donde puedo descargar los “flings” de VMware?

VMware tiene un portal dedicado para estas herramientas gratuitas, VMware Labs. Incluso podemos registrarnos para que se nos estén enviando notificaciones de cuando se liberan nuevos flings.

Ya que sabemos que es un fling vamos a darle un vistazo a OS Optimization Tool.

¿Como instalo OS Optimization Tool?

La instalación es super sencilla, descargamos de VMware Labs un .MSI hacemos doble click y es una instalación tradicional de “Next, Next, Install”

Screen Shot 2013-07-30 at 11.19.55 PM

Una vez instalado podremos notar que nos deja 2 iconos en el escritorio, en este caso lo instalé en mi vCenter Server para temas de Demo:

iconosOSopti

Como podemos ver tenemos un icono que ejecutará el programa de manera local y otro que es “Remote”, en el caso de ejecutarlo de manera local estaría analizando el OS local y nos da la opción de “optimizarlo” que básicamente estará ejecutando aquellas tareas necesarias para poder tener los puntos recomendados a partir del baseline seleccionado de un sistema operativo “optimo” para ambientes de VDI, básicamente realiza nuestro trabajo.

En el caso de el analizador remoto nos permite conectarnos a un connection server de Horizon View para analizar las máquinas virtuales que están dadas de alta en este, a partir de pooles y de imágenes maestras a diferencia de la herramienta local este no nos permite ejecutar las tareas necesarias para “remediar” u optimizar el sistema operativo de la VM. Esta pensado mas que nada para darnos visibilidad de aquellas áreas de oportunidad que tienen nuestras VMs.

VMware OS optimization tool (herramienta local)

Como les comenté esta herramienta la instalé en mi vCenter Server, por lo que estaremos analizando a partir de un template pensado para Windows 7 cuales son las áreas de oportunidad que debemos resolver para tenerlo optimo para su uso en Horizon View, claramente muchas aplican y existen algunas otras que puede ser que no apliquen del todo.

Ejecutando la herramienta nos permite analizar el sistema local donde esta siendo ejecutada, como lo podemos ver en la siguiente imagen:

Screen Shot 2013-07-30 at 11.31.32 PMAquí podemos notar que se nos muestra la información del sistema analizado, en este caso Windows 2008 R2 Enterprise, nos da información como memoria, CPU entre otras. Después tenemos el área del “Template” o conjunto de recomendaciones a analizar, en este caso podemos notar que tengo seleccionado un template llamado “Master Template” el cual viene integrado con el fling, y en la misma zona podemos ver que se desglosa todos los puntos que están siendo analizados a partir de este template donde del lado derecho incluso se nos da una descripción. Una vez analizado tenemos la opción de hacer click en “optimize” lo cual ejecutará las tareas necesarias para cumplir con estos puntos, esto lo podemos ver ejemplificado en la siguiente imagen:

opti

Lo interesante de esto es que podemos revisar el historial de las optimizaciones que hemos realizado e incluso poder realizar un rollback de las mismas como lo vemos Screen Shot 2013-07-30 at 11.55.30 PMen la imagen de esta manera podemos regresar al estado inicial de la VM.

Otro punto bastante interesante es la capacidad de poder crear los “templates” o conjunto de especificaciones, recomendaciones y mejores prácticas a seguir en un ambiente virtual, donde se nos permite en cada punto utilizar acciones como modificación de registro, modificar servicios y ejecutar comandos. Esto nos permite tener acciones bastante complejas que cubran las necesidades específicas incluso de nuestro negocio o de aplicaciones que puedan llegar a requerir ciertas configuraciones en específico. Aquí podemos ver una imagen de esto, en este caso tenemos el template que viene incluido y que es llamado “Master Template”:

Screen Shot 2013-07-30 at 11.59.32 PM Los templates dividen las acciones o puntos a revisar en Grupos y pasos dentro de estos grupos, podemos crear la cantidad de grupos necesarios para ajustarse a nuestras imagenes y dentro de esos grupos crear acciones en especifico donde podremos, a partir de las tareas disponibles que son modificación de registro, de servicios y ejecución de comandos ir creando nuestro template con todo lo necesario y este guardarlo para poder realizar analisis de nuestras VMs y optimizaciones.

VMware OS Remote Analysis Tool:

Esta herramienta como les comenté nos permite analizar de manera remota a través de un connection server los escritorios que están siendo utilizados en Horizon View, debemos de ingresar credenciales validas para acceder al connection server y este llamará a cmdlets de PowerShell de horizon view para poder realizar las tareas de análisis a partir de un template definido:

Screen Shot 2013-07-31 at 12.03.59 AMCuando la conexión fue realizada con éxito nos permitirá seleccionar que escritorios estaremos utilizando e imágenes maestras compartidas de estos como lo podemos ver en la imagen:

Screen Shot 2013-07-31 at 12.15.26 AM Aquí podemos notar que tenemos 2 pooles de escritorios, uno llamado “flotante-linked” y otro llamado “dedicada-linked” de igual manera podemos ver un folder de máquina virtual llamado “Shared Parent Images” donde podemos encontrar la imagen a partir de la cual han sido creados estos pooles de escritorios, es posible que estén utilizando distinto snapshot para su replica pero al final del día estos snapshots pertenecen a la imagen maestra llamada “gold”.

Una vez seleccionados los escritorios hacemos click en analyze y a partir del template seleccionado nos mostrará que cumplimos y que debemos de modificar, a diferencia de la herramienta de optimización este analizador remoto no nos permite ejecutar las tareas, por lo cual es mas que nada una manera de poder identificar problemas y resolverlos con la herramienta de optimización local:

Screen Shot 2013-07-31 at 12.23.29 AM

¿Porque contar con este fling como herramienta en nuestros ambientes de horizon view?

Claramente es una herramienta que tal vez no llega a revolucionar el mundo de VDI/Horizon View, pero es bastante obvio que nos permite poder ahorrarnos tiempo en optimizar imágenes y contar con todos aquellos pasos, recomendaciones, mejores prácticas y lecciones aprendidas en el campo que generalmente aplicamos en nuestras imágenes maestras.

¡Al menos yo la agrego a mi toolkit y me parece un fling excepcional!

Novedades de Horizon View 5.2 – Feature pack 2

Que tal gente, el día de hoy les voy a platicar de las nuevas capacidades que se agregan a Horizon View 5.2 a través de este segundo paquete capacidades, recordemos que el primero nos permite dar únicamente acceso a los escritorios virtuales a través de HTML5 (blast) y este estaba compuesto por dos elementos, tanto el instalador para el connection server como el agente para el vDesktop.

Con este segundo feature pack se agregan 2 nuevas funcionalidades:

  • RTAV – Real Time Audio-Video
  • Flash URL Redirection

Vamos a revisar  estas nuevas funcionalidades mas a fondo para poderlas entender y así ligarlas con distintos casos de uso:

Real Time Audio-Video (RTAV)

RTAV nos brinda la capacidad de poder contar con software de VoIP dentro del escritorio, por ejemplo, skype. Esto siempre ha sido considerado un gran problema debido que anteriormente si queríamos tener video en el vDesktop debíamos hacer el redireccionamiento del dispositivo USB hacia el vDesktop, este redireccionamiento se realizaba a través de el stack de USB de Horizon View y PCoIP,  consumiendo un ancho de banda bastante alto (en promedio podemos hablar de 60-65 Mbps/por sesión) esto debido a que la transmisión de la comunicación de USB se realiza sin ninguna compresión.

Screen Shot 2013-07-12 at 3.12.05 PM

En la imagen podemos ver la solución que se le da a este tipo de escenarios a través de RTAV, básicamente tenemos 2 componentes encargados de capturar tanto la voz como el video en el cliente (Basado en Windows), RTAV Manager y el codec (Theora/speex) una vez que son capturados estos son enviados a través de PCoIP para que en el vDesktop sea procesado y enviados a dos componentes virtuales nuevos, webcam virtual y audio-in virtual, estos recibirán la información y la enviarán a la aplicación que esta utilizándola (ej. skype) por lo que para la aplicación es un acceso directo hacia un dispositivo de webcam.

¿Como puedo agregar esta nueva funcionalidad?

Bueno, RTAV viene incluido tanto en el cliente (los componentes de RTAV Manager) y en el agente, debemos ir a vmware.com para descargar los paquetes del feature pack 2:

Downloading VMware Horizon View Clients for View

Download VMware Horizon View 5.2

En el caso de trabajar con vDestkops en linked clones debemos actualizar la imagen maestra y crear una nueva replica con la nueva versión del agente que ya incluye la funcionalidad de RTAV.

La instalación consta del agente incluido en el feature pack 2 (es acumulativo, incluye las ventajas del feature pack1):

instalador

Una vez instalado el agente debemos de actualizar nuestro cliente de Horizon View para que se incluyan los componentes para la captura y codificación del audio y video en el cliente, recordemos que se requiere un cliente versión 5.4 en adelanta (en esta versión esta limitado exclusivamente a Windows):

versionclientes

Con esto ya tenemos todo listo para poder probar la nueva funcionalidad, el sistema será capaz de poder capturar el audio y video de cualquier dispositivo reconocido y soportado por el cliente (claramente requerimos de los drivers necesarios para poder manejarlo).

Esta vez me di a la tarea de probar en mi laboratorio casero esta nueva funcionalidad, para esto la configuración se veía de la siguiente manera:

Screen Shot 2013-07-13 at 9.25.38 PMEl objetivo de esta prueba era la de redireccionar la webcam integrada en la laptop MacBook Pro hacia el escritorio virtual de Horizon View corriendo dentro de un servidor ESXi Nested (ejecutándose como una VM sobre un servidor físico), mi cliente de horizon view estaba corriendo dentro de una VM sobre VMware Fusion instalado en la laptop MacBook Pro.

¿El resultado?…

pcoipcam Como podemos ver el resultado fue satisfactorio, debido a que la webcam es vista localmente por escritorio virtual Windows 7 que esta siendo ejecutado sobre VMware Fusion, por lo que el cliente sin ningún problema pudo reconocer la webcam y micrófono, capturar tanto el audio y video, una vez capturados el gestionador de RTAV lo envía a través de la conexión de PCoIP al agente instalado en el escritorio virtual para que sea recibido y procesado a través de los componentes virtuales (podemos notar en la imagen estos dos componentes, VMware Virtual Webcam y VMware Virtual Microphone) que Skype puede utilizar sin ningún problema.

Algo interesante era determinar cual fue el consumo que presentó el vDekstop en el momento de realizar las pruebas de video y audio, para eso seleccioné la VM desde el cliente de vSphere y me dirigí a la pestaña de performance para tener una vista avanzada de la red:

vSpherekbpsComo podemos notar el ancho de banda esta en un valor de 400 KBps aprox. mucho menos de lo que estaríamos requiriendo para redirigir todo el dispositivo USB.

Flash URL Redirection

Esta funcionalidad nos permite realizar streaming de video desde un servidor (Adobe Media Server) hacia los escritorios virtuales que están siendo ejecutados en infraestructura vSphere, lo que evita tanto el procesamiento como el consumo de red internamente en el datacenter, aquí podemos ver el concepto lógicamente representado:

Screen Shot 2013-07-13 at 10.18.09 PM

Es importante notar que esta capacidad NO esta pensada para el redireccionamiento de cualquier elemento Flash (ej. Youtube) sino esta pensado para cubrir casos de uso como el envio masivo de videos internamente en una empresa, videoconferencias localmente, etc.

 

 

 

 

 

En la siguiente imagen podemos entender su funcionamiento de mejor manera:

Screen Shot 2013-07-13 at 10.23.19 PMEl usuario hace click en el URL dentro de su explorar  y el agente de Horizon View detecta que esto será enviado desde el servidor de Adobe Media (esto gracias a javascript dentro del MIME de la página Web), por lo tanto se abre localmente una ventana donde se estará reproduciendo el contenido (importante notar que es localmente en el cliente linux/Windows no dentro de la sesión de Horizon View por lo que no estará consumiendo ancho de banda de la sesión de Horizon View.

Tips de Diseño – Limites de View HTML (Blast)

Que tal, el día de hoy les voy a dar un tip muy rápido de diseño para infraestructuras de Horizon View. Recordemos que desde la versión 5.2 tenemos la capacidad de poder acceder a nuestros escritorios desde el HTML5 (utilizando tecnología basada en blast de VMware.

Con esto en mente, tenemos una nueva consideración de diseño en nuestra infraestructura de View, como sabemos la metodología probada para diseñar un ambiente de Horizon View esta basada en el concepto de “Pods” donde tenemos un máximo de 10,000 usuarios este a su vez esta constituido por hasta 5 bloques de escritorios (Procesamiento, storage, etc) permitiendo por bloque 2,000 conexiones.

El límite que tenemos a nivel de View HTML es de 100 conexiones concurrentes por Security server, si esto lo vemos desde una perspectiva de el “Pod” en nuestro diseño estaríamos hablando de un máximo de 5 security servers que están en pair con un connection server en cuestión teniendo como máximo 5 servidores de conexión activos (con capacidad de 2 en spare) permitiendonos un máximo de 500 sesiones concurrentes de usuarios a través de HTML a sus escritorios por Pod. En el caso que se hable de conexiones directas de blast hacia un connection server (sin pasar a través de un security server) el límite es el mismo que en el caso de PCoIP, 2,0000 sesiones.

UPDATE (11/25/2013): Para la versión 5.3 de Horizon View se incrementa el soporte de sesiones Blast de 100 a 350 por security server (conexiones a través de tunel), https://www.vmware.com/pdf/horizon-view/horizon-view-53-feature-pack-document.pdf .

Limpiando lista de paquetes ThinApp en Horizon Workspace

Que tal gente, el día de hoy les voy a mostrar como poder limpiar o liberar paquetes de ThinApp en Horizon Workspace, para ser mas precisos en el Connector-VA.

Para poder asignar paquetes (aplicaciones) de ThinApp a nuestros usuarios a través de Horizon Workspace lo primero que debemos hacer es configurar el appliance virtual llamado Connector-va para que sincronize con AD y después dar de alta una carpeta (ruta UNC) donde estarán residiendo todos los paquetes capturados via ThinApp.

connector-vathinapp

El problema esta en el hecho de que al querer cambiar de ruta (carpeta/UNC) los paquetes de ThinApp registrados continúan ahí aún cuando en la nueva carpeta o ruta no tengamos dichos paquetes:

listathinapps

Para poder limpiar estos paquetes y tener solo listados aquellos que nosotros tenemos en la nueva ruta debemos de seguir los siguientes pasos:

  • Paso 1 – Abrimos la consola de el appliance virtual connector-va o nos conectamos a través de SSH

consolaconnectorva

  • Paso 2 – Detenemos el servicio de repositorio con el siguiente comando:

/opt/likewise/bin/lwsm stop thinapprepo

serivciorepo

  • Paso 3 – Borramos la base de datos del repositorio con el siguiente comando:

rm /var/lib/vmware/tam/repo/repodb

repodbthinapp

  • Paso 4 – Iniciamos el servicio de repositorio con el siguiente comando

/opt/likewise/bin/lwsm start thinapprepo

serviciostart

Siguiendo estos pasos podemos librarnos de paquetes que no deben de estar registrados en la siguiente imagen pueden ver como se eliminó todos los paquetes, ahora puedo proceder a sincronizar con mi nueva carpeta de paquetes de thinapp.

cleanpaq

Aumentando espacio en disco para archivos de usuario en Horizon Workspace

Que tal gente, como ustedes deben de saber, VMware liberó su suite Horizon Suite donde se incluyen distintos productos como Horizon Workspace, Horizon Mirage, Horizon View (Antes VMware View), etc.  En el caso de Horizon Workspace tenemos la capacidad de poder ofrecer una sincronización de archivos y almacenamiento de los mismos para nuestros usuarios, en la imagen lo podemos ver:

archivos-workspace

O también tenemos la capacidad de acceder a los mismos archivos desde nuestra carpeta sincronizada con workspace:

Horizon folder

Claramente estos archivos son almacenados en algún espacio de disco duro, ¿Donde reside este espacio? muy fácil, en el appliance virtual que forma parte del vApp de Workspace llamado Data-va, esta se encarga de ofrecer estos servicios además de almacenar los datos:vApp-Workspace

Este appliance virtual se encarga de entregar el Web UI para los usuarios, de manejar políticas para los archivos almacenados, almacenar archivos y realizar el preview de los archivos en la interfaz web (el preview lo vemos claro en la primera imagen de este post). Claramente con todas estas funciones lo primero que nos llega a la mente es ¿Que hay del espacio disponible? ¿Si requiero mas como puedo agregarlo?, les voy a mostrar lo simple que es este proceso.

Por default el appliance virtual tiene el siguiente layout de almacenamiento:

storagelayout-datava

Como podemos ver se le entrega a la carpeta /opt/zimbra/store solo 10GB donde se estarán almacenando los datos de usuario (archivos) estos son almacenados en un almacenamiento de tipo blob, por lo que no estarán como archivos planos.

La recomendación es que este espacio sea montado en un export de NFS (igual a lo que hacemos con el espacio de transfer de las celulas de vCD)

Agregando espacio a Data-va

  • Lo primero es agregar un nuevo disco a la VM, este será agregado al LVM de /opt/zimbra/store posteriormente a través de un script necesitamos apagar la vm y agregar el disco:

disco

  • Una vez agregado el disco encendemos la vm y nos firmamos como root o a través de ssh con el usuario sshuser y ejecutamos el script:

/opt/vmware-hdva-installer/bin/zca-expand-lv

discoagregado-datava

Como podemos ver en esta última imagen el disco se expandió a 109.99 GB y esta listo para ser usado, la información que existía anteriormente aún existe en dicho blob store. Para confirmar que efectivamente fue agregado este disco podemos ejecutar el comando

df

lo cual nos mostrará el espacio total y disponible del sistema de archivos:

comandodf

Load Balancing & multi-sitios en VMware View

Que tal gente el día de hoy vamos a hablar sobre las consideraciones que debemos de tener al diseñar un ambiente constituido por múltiples sitios para VMware View.

Comenzemos por entender la arquitectura de Pods y Bloques recomendada para VMware View debido a su modularidad y escalabilidad:

podbloque

*El almacenamiento puede ser de cualquier vendor, 3par solo es por referencia

Un Pod esta constituido por N cantidad de bloques que satisfacen la capacidad de computo necesario para cumplir los SLAs definidos en nuestro ambiente y poder alojar a los usuarios proyectados. Todos los bloques que se requieran para poder dar servicio a la cantidad de usuarios necesarios van a estar compartiendo almacenamiento, podemos aislar los distintos bloques en distintos datastores pero por cuestiones de gestión es mejor que el mismo almacenamiento provea servicio para cada bloque que agreguemos. En cuestiones de red, estaremos utilizando vDS teniendo uno por bloque, recordemos que los vDS no se pueden expandir entre DCs virtuales o entre vCenter Servers.
Otro punto que pueden notar es el caso de las instancias de vCenter, vamos a necesitar una instancia por cada bloque, los ambientes de VMware View pueden llegar a ser bastante activos dependiendo de el diseño, ej. En el caso de requerir operaciones de refresh cada que los usuarios terminan su sesión, las VMs de vCenter estarán residiendo en el cluster de management para no consumir recursos dedicados a los escritorios. De igual manera tendremos al menos 2 View Connection Servers por bloque para poder cumplir con alta disponibilidad y poder balancear las sesiones entre ellos, aunque el máximo soportado de un connection server sea de 2000 sesiones con una configuración de 4 vCPUs y 10GB de RAM.
Por último tenemos el cluster de management donde se estarán ejecutando todas las VMs de servicio e infraestructura como vCenters de los bloques, View Connection Servers, View Transfer Servers, View Security Servers, vShield Manager (vCNS),etc.

Una vez entendidos los conceptos básicos de un diseño en “POD” debemos de conocer las limitantes que tenemos al diseñarlo:

  • Los PODs no deben de estar expandidos geográficamente, esto es debido a que pueden llegar a presentarse problemas con la replicación de ADAM (a través de JMS) entre Connection Servers y sus replicas.
  • Tenemos un máximo de 8 hosts por cluster en el caso de utilizar VMFS y 32 hosts en el caso de NFS.
  • Es importante considerar en el caso de balanceo de cargas que DNS Round-Robin no debe de ser utilizado ya que no podriamos asegurar la persistencia de la sesión y esto podría resultar en la entrega de un nuevo escritorio por otro broker.

Puede llegarse a dar el caso que se tengan otras limitantes dependiendo del diseño en cuestión, pero estas son las principales que debemos de considerar para VMware View, ya que utilizamos vSphere las consideraciones y lineamientos de diseño de la misma aplican de igual manera a dicha capa.

Vamos a revisar algunos puntos en específico:

  • Balanceo de cargas global entre sitios (Global Site Load Balancing, GSLB) – En este tipo de diseños que existen entre múltiples sitios debemos de contar con un mecanismo para balancear las cargas de las sesiones y que estas sean distribuidas geográficamente una vez que la sesión ha sido direccionada al DC en cuestión se contarán con balanceadores locales para distribuir las cargas entre View Connection Servers.
    Todos los balanceadores que participan deben de asegurar la persitencia de sesión entre sitios y view connection servers, esto es de vital importancia para eventos de desconexión.Los escritorios persistentes no pueden ser utilizados en este tipo de configuración debido a que estos existirán en un solo datacenter.

Beneficios

Contradicciones

Una única URL para conectarse al ambiente de VMware View en el caso de escritorios no persistentes.

Algunos fabricantes requieren que sus balanceadores sean autorizados (authoritative).
 Ofrece el mejor balanceo para escritorios no persistentes debido a su balanceo geográfico e interno.  No esta pensado para escritorios persistentes
 A diferencia de Round-robin no direccionará sesiones de escritorios a sitios fuera de línea.  Puede resultar algo compleja debido a el seguimiento entre sitios y sesiones.
  • Balanceo de cargas a nivel DC o sitio (Site Load Balancing) – En este caso al igual que en el balanceo global debemos de asegurarnos de la persistencia en cada una de las sesiones, en este caso si no estamos haciendo balanceo global el overhead de administración es mayor debido a que la distribución de sesiones entre sitios o DCs será manualmente asignando usuarios a cada URL (sitio/DC).

Beneficios

Contradicciones

Ideal para ambientes donde tenemos escritorios persistentes, ya que los usuarios estan “casados” con un sitio. A menos que se utilice Roud-Robin DNS o reconfiguración a través de DHCP (se necesitaría tener un release de el lease) si atravesamos una falla de el DC/sitio los clientes deberán ser configurados manualmente.
 Existen Zero-clients que soportan la reconfiguración de el mismo a través de opciones en el scope de DHCP, permitiendo redireccionarlas a un sitio alterno.  Una distribución equitativa de sesiones activas puede no balancearse de manera efectiva.