PCoIP

Videos para la instalación de una PoC de Horizon View 5.2

rsz_vmware

Que tal gente, el día de hoy les voy a compartir una seríe de links a videos donde muestro como instalar un ambiente de horizon view 5.2, desde el servidor de conexión hasta la creación de pooles de escritorios. Espero les sea de utilidad: Modulo1 – prueba concepto horizon view 5 2   —– http://youtu.be/BQK-nkDzZHU /// […]

PCoIP y Modem de Telmex

Que tal gente, quiero compartir con ustedes como configuré el acceso remoto a mi laboratorio, claramente utilizando PCoIP (que mejor considerando el poco ancho de banda que muchas veces se nos brinda), esto a través de un modem de Telmex (Infinitum).

Primero revisemos cual es la configuración de mi lab:

archhispremotoComo podemos notar tenemos 2 puntos importantes en esta imagen, la primera es el hecho que el acceso sucede a través de un Modem de Telmex lo cual básicamente nos dicta que la conexión será realizada hacia un ambiente que esta detrás de un NAT y segundo punto importante es que la VM llamada “controlcenter” donde requiero conectarme a través de PCoIP esta detrás de esta NAT. Aquí muchos me dirían, ¿Porque no utilizas un Security Server de Horizon View para brindar acceso? (para poder contar con PSG o PCoIP Secure Gateway), bueno básicamente siempre busco que la configuración de mi homelab sea sencilla sin mucha complicación, tratar de ahorrar recursos y que sea fácil de realizar troubleshooting, por lo que opté por un agente directo de PCoIP, que es el mismo utilizado en los laboratorios hands on de VMworld y Partner Exchange, con este podemos conectar un cliente de PCoIP (en mi caso Mac) directamente a un escritorio con el agente de Horizon View sin necesidad de un Connection Server y un Security server para este tipo de escenarios.

Lo primero es entender como viaja el tráfico de PCoIP detrás de una NAT, para esto les comparto la siguiente imagen:

natpcoip

En este caso en específico el tráfico al estar por detrás de una NAT era muy posible que no funcionara de manera correcta (es por eso que se tiene el componente de PSG en el Security Gateway) debido a que el primero se entabla la comunicación TCP y después se envía por un canal UDP PCoIP, el problema esta en que una vez entablada la comunicación TCP el cliente de Horizon View selecciona como Destino para el paquete UDP la IP interna o “nateada” del vDesktop con el puerto 4172 de PCoIP cosa que claramente falla debido a que dichas IPs no son ruteables desde el exterior. En el caso del Security Server el componente de PSG (PCoIP Secure Gateway) se encarga de crear la conexión con la correcta ip, es por eso que tenemos que dar de alta el “External URL”:

Screen Shot 2013-08-05 at 1.18.10 AMCon el componente de PSG la comunicación sucede sin ningún problema ya que los paquetes llegan las IPs correctas. En el caso de PCoIP Direct Connect necesitamos modificar algunos puntos específicos para que esto se de (ya que no contamos con un security server que lo realize). Las modificaciones son realizadas a nivel de registro donde damos necesitamos especificar la Ip externa (lo que vendría siendo el PCoIP External URL cuando configuramos un PCoIP Secure Gateway), los puertos externos para UDP y TCP (en el caso que no sea 4172, en mi caso utilizo 4172) y el puerto para el canal de “framework” (aquí viaja el tráfico de USB):

Screen Shot 2013-08-05 at 1.23.39 AM

Con estas modificaciones (simulando lo que el componente de PSG realiza en un security server) el tráfico sucede de esta manera:

pcoipnatcorrecto

Una vez listo esto debemos definir reglas de firewall en el gOS del vDesktop (en el caso que estemos utilizando firewall en el sistema operativo local) y para mi caso solo definir el forward de los puertos hacia la ip interna de mi escritorio con el agente de conexión directa de PCoIP, por lo que nos firmamos en el modem de Telmex y definimos esto (en mi caso se trata de un modem TG582n de Technicolor)

Screen Shot 2013-08-05 at 1.28.33 AMUna vez dentro de nuestro portal de gestión debemos ir a Herramientas > Uso compartido de juegos y aplicaciones y ahí hacer click en “crear un nuevo juego o aplicación”, donde estaremos dando de alta todos los puertos que serán redirigidos a nuestro vDesktop, para esto como les comenté anteriormente yo utilizo los puertos por default no he modificado ningún puerto pero podemos fácilmente definir puertos externos que se traduzcan a puertos internos en nuestro vDesktop, podemos ver un ejemplo en la siguiente imagen donde se traduce del puerto 4173 a 4172 internamente:

creacionpuerto

Una vez dados de alta todos los puertos necesarios nos debe quedar algo como esto (en el caso de no haber modificado los puertos por default) solo el puerto 80 en este caso esta de sobra:

Screen Shot 2013-08-05 at 1.32.47 AM Aquí podemos notar que tengo todos los puertos necesarios para poder entablar una comunicación con mi escritorio a través de PCoIP incluso poder mapear dispositivos USB desde cualquier conexión de internet por lo que lo único que resta es asignar este “perfil” o conjunto de redireccionamiento de puertos a nuestro vDesktop, esto se vería muy parecido si lo estuviéramos realizando con un Connection Server o un Security Server por lo que podrían guiarse de esto para aplicarlo en sus laboratorios debido a la falta del agente de conexión directa de PCoIP, para asignar el perfil simplemente hacemos click en “Asignar un juego o aplicación a un dispositivo de red local”.

Y pues bueno lo mas facil fué probar mi escritorio a través del cliente de Horizon View para Mac:

Screen Shot 2013-08-05 at 1.42.49 AM  Es importante tener en mente que en mi caso utilizo DynDNS para poder siempre tener un FQDN a través del cual resolver la IP que mi ISP (Telmex) le brinda a mi modem (en el caso de apagarse o reiniciarlo esta puede llegar a cambiar), es por eso que si quieren tener este tipo de configuración tienen que primero crear en algún servicio de DNS Dinámicos esta relación entre un FQDN público y su IP externa brindada por su ISP, de igual manera para que esto persista entre apagones y reinicio de su modem deben de configurar un cliente que este actualizando constantemente la IP pública que tiene su modem en el sistema de DNS dinámico, lo interesante en el caso de este modem es que si cuenta con este cliente para estar actualizando la IP externa con un servicio de DNS Dinámico, para configurarlo solo es cuestión de ir dentro de nuestro portal de gestión del modem hacia “Herramientas > DNS Dinámico”.

Lamentablemente el agente de conexión directa de PCoIP no esta disponible para su descarga, este solo es entregado a nuestros partners que son VSPP (VMware Service Provider Program) o proveedores de servicio basados en VMware, esto pensado en que existen varias arquitecturas de DaaS que utilizan este tipo de configuración sin necesidad de contar con un connection server y/o un security server.

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 – VMware View & PCoIP

Que tal gente vamos a revisar algunas consideraciones de diseño para VMware View, en este caso estaremos revisando consideraciones de red.

Lo primero que debemos de tener en cuenta es que debemos conocer el perfil de los usuarios que estarán utilizando la solución de view, es decir debemos identificar que necesidades tiene cada uno de ellos, para esto, debemos de preguntarnos lo siguiente:

– aplicaciones que se utilizan
– ¿manejo de gráficos? (Software vs hardware)
– ¿Se requiere procesar video? (MMR o host video decoding)
– ¿manejo de audio? (¿Bidireccional?)
– ¿dispositivos USB?
– ubicación
– medio de acceso

En estas preguntas o checklist no consideramos todos los temas como políticas de respaldo, manejo de persona, etc.

Con estas preguntas podemos irnos dando una idea clara de lo que el usuario estaría consumiendo en cuanto a números de red se refiere. Lo más recomendado es que tengamos una etapa de assesment del ambiente existente, es decir, poder tener almenos los días considerados como “pico” o de mayor stress a nivel de el ciclo productivo y poder incluir días de consumo medio en un sistema de análisis del comportamiento a nivel de escritorios, como lo es stratusphere Fit de liquidwarelabs.

Una vez obtenidos datos reales de como se comporta el ambiente que estaremos virtualizando debemos de conocer los distintos términos y metodologías para el cálculo correcto de ancho de banda necesario para nuestros escritorios, recuerden en este post solo estamos hablando de Networking.

Daremos por hecho que estamos trabajando con PCoIP, protocolo de despliegue que es utilizado por VMware view y que esta pensado para ser un protocolo sin perdida y que se adapta a las condiciones del medio.

20121210-095300.jpg

Debemos primero conocer un poco más sobre PCoIP, mantengamos lo siguiente en mente:

tenemos dos tipos de PCoIP software y hardware

– software PCoIP nos entrega hasta 30 FPS y tiene una tolerancia máxima de latencia de 250 ms (round trip).

– hardware PCoIP nos entrega un máximo de 60 FPS y tiene una tolerancia máxima de latencia de 150 ms (round trip).

*estos datos de latencia son importantes debido a que debemos considerarlos para poder hacer tuning de nuestro switches/routers en cuanto a buffer de los mismos se refiere y que estos no sean la causa de que lleguemos sobrepasar los máximos

Tenemos los siguientes valores para el cálculo de ancho de banda (obtenidos de lista de requerimientos de Networking creada por teradici):

20121210-185848.jpg

debemos conocer lo siguiente:

– utilización esperada de la red, es decir, cuanto ancho de banda estará asignado a view/PCoIP, esto lo sabremos después de determinar la cantidad de ancho de banda que será utilizado para tráfico de alta prioridad, por ejemplo:

20% VoIP, 80%PCoIP

– número de usuarios concurrentes

* usuarios con audio
* usuarios con video de 480p (se considera un buen valor que estos estarán utilizando 1Mbps por sesión)

– ¿se tendrán sesiones con exclusivamente a través de software PCoIP o también con hardware?

*esto determinará el MTU requerido. En el caso de PCoIP por software y zero clients de PCoIP será un MTU de 1300 y para hardware PCoIP (apex) y hardware zero clients estaremos hablando de un MTU de 1400

– recordemos que al ser un protocolo en tiempo real puede llegar a verse afectado. Se recomienda que 50-150 ms de la comunicación se encuentre como máximo en buffer, reduciendo así la latencia causada por los dispositivos.

– asegurarnos de tener el 80% del tráfico remanente después de haber determinado los servicios críticos que estarán utilizando el medio.

– debemos de asegurarnos de marcar el tráfico de PCoIP mediante el uso de QoS para que este sea considerado como tráfico en tiempo real y solo después de VoIP.

– debemos asegurarnos de nunca tener fragmentación en nuestro medio, para esto de inicio debemos confirmar que todos los dispositivos tengan un MTU mayor al de PCoIP, que por default es de 1400 aunque puede ser modificado a través de la GPO “PCoIPMtuSize”

– debemos tratar de reducir la pérdida de paquetes en el medio, se requiere tener menos de 0.1% por sesión ya que aquellos paquetes que lleguen fuera de orden pueden ser considerados como perdidos. Debemos tener en mente que después de 30 segundos de pérdida en paquetes las sesiones se desconectarán.

– Debemos asegurarnos de no perder el orden en los paquetes, esto incluye métodos de balanceo (ej. Balanceo por paquete) para el caso específico de balanceadores debemos de utilizar sticky sessions (afinidad de las sesiones/persistencia).

– debemos considerar ancho de banda para posibles picos en las sesiones con esto podemos definir fácilmente el límite que podremos aplicar a las sesiones a través de las GPOs:

((anchodebandadisponible parapcoip)/(n usuarios))+500kbps

– en el caso de tener un medio con pérdida de paquetes podemos considerar el modificar la variable de “bandwith floor” con lo que nos aseguramos que se reserva dicha cantidad de ancho de banda considerando siempre que la suma de todos las sesiones no sobrepase el máximo de ancho de banda disponible para PCoIP. Apoyandonos de los logs de PCoIP (principalmente pcoip_server.txt) podemos definir cual es la latencia y el rto (la cantidad de paquetes perdidos al recibir y enviar en un periodo definido). Si tomamos en cuenta esto es muy posible que PCoIP comienze a realizar throttling en el ancho de banda de las sesiones lo cual nos llevaría fácilmente a saturar los medios.

– en el caso que tengamos un medio con pérdida y falta de ancho de banda podríamos reducir la calidad de despliegue permitiendo un máximo de frames por segundo para mantener una sesión que responda de manera correcta, para esto nos enfocamos en la GPO pcoip_admin.

¿Como cambiar el puerto de PCoIP en el servidor de seguridad?

Que tal gente, el día de hoy me encontré con una platica interesante en las listas de distribución de VMware recordandome un parámetro que nos puede servir en ocaciones en las cuales el puerto por defecto de PCoIP (4172) este siendo ya utilizado o por cuestiones propias del cliente, situación o diseño de la solución se requiera modificar. Esto es bastante simple, solo necesitamos navegar en el editor de registro (Regedit) a la siguiente llave:

HKEY_LOCAL_MACHINE\SOFTWARE\Teradici\SecurityGateway

Donde modificaremos el valor de los siguientes REG_SZ:

ExternalTCPPort

ExternalUDPPort

En el valor debemos ingresar el nuevo puerto que deseamos para dichas conexiones, como podemos ver tenemos TCP y UDP que corresponden a la conexión SSL (TCP) y a la conexión IPSec (UDP).

 

VMware View 4.5 – Conociendo lo nuevo – parte 1

Que tal gente, el día de hoy les voy a hablar de VMware View 4.5 porque como todos sabemos ya se libero y ya esta descargable en la siguiente liga :

http://downloads.vmware.com/d/info/desktop_downloads/vmware_view/4_5

Bueno como pueden ver el titulo del post en esta serie de posts les estaré describiendo que hay de nuevo en esta versión incluyendo capacidades como también lo nuevo en la interfaz.

Comencemos por conocer la nueva imagen de la consola de administración web:

Desde el inicio podemos ver un cambio en la pantalla de login :

Una vez ingresadas nuestras credenciales, podemos ver el dashboard o pantalla principal donde se nos muestra información del estado de toda los componentes de nuestra infraestructura View :

Aquí se nos muestra información sobre los siguientes componentes:

  • Estado de los componentes de nuestra infraestructura , Hosts ESX/ESXi , servidor (es) vCenter,  Base de datos para eventos , etc.
  • Estado de los escritorios , si estan funcionando correctamente , si tienen problemas ej. que no responda el agente de view y escritorios que se esten preparando (pooles automatizados).
  • Por ultimo tenemos un vistazo de los datastores disponibles y el espacio disponible de los mismos.

Una parte muy interesante es la capacidad de tener una base de datos para guardar todos los eventos que se esten presentando en nuestra infraestructura, como podemos ver en la siguiente imagen :

Aquí tenemos eventos desde configuraciones de  nuestra infraestructura como inicio de sesiones, entre otros. En este post les estaré demostrando como configurar la base de datos para nuestros eventos con una instancia de Sql 2005 express.

Continuando con nuestro vistazo a la consola de administración tenemos la sección de sesiones:

Donde podemos como en la versión anterior desconectar la sesión, terminar la sesión, hacer un reset la vm y en esta versión tenemos la capacidad de enviar un mensaje a dicha sesión como lo podemos ver en la siguiente imagen:

Para finalizar esta primera parte de esta serie terminamos aprendiendo como configurar la base de datos para los eventos:

puntos importantes para la configuración en sql express 2005:

  • Sql express no utiliza el puerto estandard de sql (1433) se tiene que verificar el puerto en uso, en el video les muestro como.
  • La base de datos tiene que permitir el acceso por autentifiicación de SQL (sa)
  • Para una administración mas simple de nuestra base sql express les recomiendo la interfaz management studio , aquí les dejo el link de descarga:

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=c243a5ae-4bd1-4e3d-94b8-5a0f62bf7796&displaylang=en