Tras una buena temporada de ausencia de Be Virtual, debido no a las vacaciones, sino a una serie de cambios profesionales que me han traído de cabeza, me propongo a volver con renovados ánimos (si no, me temo que el maestro Ros se va a enfadar en serio), y empiezo con este post que he titulado "Mis razones para preferir VMware". Las razones aquí expuestas se dividen en dos grandes grupos: Técnicas y no técnicas. Las primeras, por supuesto, son fruto de mi visión del mercado (cuestionable o no) y las segundas, fruto de mi experiencia técnica y mi día a día. (Con esto quiero decir que quien las cuestione, por favor use el mismo tipo de argumentos).
Empecemos.
Madurez de producto: VMware ESX (En cualquiera de sus versiones) es, indiscutiblemente, el producto más maduro en lo que a hipervisores se refiere. A casi diez años de evolución deben prepuonérseles madurez, estabilidad y rendimiento. Creo que esta presunción es aplicable a todos los fabricantes de software en todas sus gamas de producto: Microsoft, con SQL Server o Windows Server, Oracle con su base de datos, etc.
Liderazgo del mercado: Con un 85% de cuota del mercado (la misma que Microsoft en el mercado de servers x86), VMware ha convencido a una inmensa mayoría de las empresas más importantes que han apostado por la virtualización de que usen su producto. El cómo lo haya hecho (Calidad técnica o marketing) no es algo que esté en mi mano evaluar (al igual que tampoco lo está el cómo lo ha conseguido, por ejemplo, Microsoft u Oracle). Simplemente uso el mismo parámetro que usan otros.
Amplio soporte de la comunidad: Al igual que el Cisco IOS, Microsoft Server y demás, Oracle y otros, la comunidad en el caso de VMware, resulta un gran apoyo en lo que a soporte se refiere, tanto en resolución de incidencias como en apoyo a la hora de configurar y gestionar.
Precio: Resulta que, además, ahora incorporar la tecnología insignia de VMware, Virtual Infrastructure, es gratis. Por 0 €/$, hoy podemos utilizar un hypervisor de última generación con características avanzadas, clustered filesystem (Sí, para los que tienen dudas o no han podido/no han querido leerse qué incluye 3i, VMFS también es gratis), y con la capacidad de escalar (eso sí, mediante pago) a las características completas de la suite: DRS, vMotion, HA, etc. Además, y siempre opcionalmente, es posible contratar el soporte completo por un precio realmente asequible (595 US$ en modalidad 24x7 para dos CPU), que resulta inferior que UNA sola consulta de soporte de otros fabricantes. Además, no debemos olvidar que ESX 3i no requiere el pago de una licencia de sistema operativo para funcionar. En determinados entornos (Linux y similares), esto supone un ahorro de unos 600€ (aproximadamente)
Política/naturaleza de compañía: Mientras VMware se esfuerza en que su producto sea cada vez más compatible con los sistemas operativos del mercado (no le queda otro remedio, ya que la propia VMware no fabrica ninguno) , colabora en todos los foros de otros fabricantes (Es miembro del Microsoft Server Virtualization Validation Program - SVVP), e incluso dona a la comunidad tecnologías como VMI (Virtual Machine Interface), o estrena iniciativas como vSafe (a la que ya se han adherido todos los fabricantes de productos de seguridad), otros fabricantes no hacen lo mismo. La impresión que se extrae es clara: VMware colabora (porque no le queda otra) mientras otros no lo hacen (porque el core de su facturación no está en el hypervisor). Así mismo, por la propia naturaleza de la compañía, y por el accionariado que tiene detrás (EMC, Cisco, Intel, etc) se puede inferir que mantendrán su producto a la última, ofreciendo siempre lo mejor que la tecnología pueda dar. En el caso de otras compañías más generalistas, no es la primera vez que vemos como un producto anunciado desaparece en medio de las políticas de empresa: WinFS, OracleFS, Oracle Mail, etc. No es desdeñable el hecho de que VMware no tiene "sardina" a la que arrimar su "ascua", lo que quiere decir que su desarrollo no beneficiará más o menos a cierto sistema operativo, o a cierta solución de seguridad, o a cierto motor de base de datos, por poner ejemplos.
Solución completa e integridad del producto: Mientras VMware ofrece virtualización "extremo a extremo" (al igual que otros fabricantes lo hacen en otros aspectos - Microsoft sin ir más lejos ofrece tanto el Sistema Operativo, como el motor de base de datos, así como las herramientas que los rodean), Hypervisor, clustered file system, HA, gestión de Disaster recovery, gestión de operaciones y ciclo de vida, Virtual Desktop, backup, etc, otras requieren de productos de terceros porque en su catálogo no incorporan las soluciones requeridas. Como ejemplo, el clustered file system. Mientras la necesidad de un clustered file system fué identificada por VMware como fundamental para la Live Migration o la futura Continuous Availability (HA sin disrupción de servicio) (recordemos que VMFS existe desde ESX 1.0 y ya va por su versión 3.2x), otras compañías confían en productos de terceros que no son precisamente baratos (MelioFS, de SANbolic es un claro ejemplo).
Vamos con los técnicos.
Virtualización completa de extremo a extremo: Sin entrar a discutir términos como los diferentes tipos de hypervisor (Tipo 1, Tipo 2... o Tipo 1 y dos cuartos, o Tipo 1.25), ESX es el único hypervisor que gestiona integramente todos los aspectos de la virtualización: Gestion de VM e I/O. Mientras Hyper-V y Xen escogen la opción de dejar el I/O en manos del sistema operativo que se ejecuta en el dominio raíz, ESX gestiona integramente el I/O, independizándose de un sistema operativo que no deja de ser una VM más. Es decir, todo el I/O (red y disco) de las VM virtualizadas depende de una máquina virtual más. No lo digo yo, cito a mi respetado David Cervigón:
"1.- Las arquitecturas de Hyper-V y ESX son diferentes (Xen e Hyper-V tienen la misma aproximación). En hyper-V el hypervisor es delgado, 800Kb, en microkernel. En ESX hablamos de un hypervisor monolítico, donde deben incluirse toda la funcionalidad de I/O a bajo nivel, en particular red y almacenamiento. ESX no necesita más, cierto, pero solamente tiene la funcionalidad limitada que "cabe" en esos aprox 32 MB. De ahi que se restrinja a una HCLlimitada. Hyper-V depende de Windows, cierto, pero en su arquitectura en su arquitectura la particion padre (que no deja de ser una VM) es la encargada de interaccionar con el sistema de red y de almacenamiento."
En un entorno Hyper-V o Xen, todo el I/O depende de un driver que puede o no estar optimizado para la virtualización, y que puede o no ser adecuado para un entorno de múltiples máquinas virtuales. VMware blinda sus drivers y los adapta para el uso por parte de un Hypervisor.
Por otra parte, TODAS las funciones de virtualizacíon están aisladas del resto de las funciones (como las que provee el COS - Console Operating System), lo que supone que el I/O NO es un punto de exposición del Hypervisor.
Virtualización independiente del hardware: ESX usa el método de traslación binaria (es decir, las instrucciones son traducidas por el Hypervisor), mientras Hyper-V y Xen delegan en el hardware (Intel/AMD VT) la gestión de las diferentes VM. Es decir: Sin VT no hay virtualización, lo que, evidentemente, hace que estos Hypervisores sean meros gestores de una capacidad hardware que puede o no variar con las diferentes versiones de las especificaciones de virtualización. Mi conclusión es clara: Virtualiza Intel o AMD, gestiona Xen o Hyper-V. para más info, un post anterior sobre la virtualización asistida por hardware. Así mismo, la traslación binaria permite soslayar muchas (no todas, gracias a Intel y a AMD) de las incompatibilidades entre distintas series de procesadores. El masking de registros nos permite incluir equipos con diferentes series de procesadores en un entorno vMotion. Por otro lado, Hyper-V y Xen recomiendan (lo que en la práctica se convierte en un requerimiento), que los procesadores sean IDENTICOS. Todos sabemos que, incluso para un mismo modelo de servidor, con unos meses de diferencia, es bastante posible encontrarse con diferentes generaciones de procesadores.
Live Migration: La capacidad de movimiento de VM entre un host ya no es una curiosidad técnica. En mi caso, si me privasen de ella, tendría que reorganizar prácticamente todos los procedimientos de explotación de plataforma virtual, e incrementaría drásticamente los downtimes. Evidentemente mi caso no es el de todos, pero estoy seguro que, en algún momento, todos echaríamos en falta esta característica. Hyper-V no la tiene (aunque está anunciada para su versión R2) y Xen presenta ciertos problemas de rendimiento y estabilidad que hacen de su implementación de Live Migration algo no apto para producción (cierto factor de indeterminismo bastante poco ponderable)
Virtualización de I/O: El soporte total de NPIV (N Port ID Virtualization), las capacidades anunciadas por Intel para la virtualización de I/O (VMDq) apoyan el precepto de que deben existir tecnologáis especificas para la virtualización, y que consecuentemente el hardware, los drivers y demás deben diseñarse especificamente para este propósito.
Memory Overcommit: Digan lo que digan, y hablando en plata, el Overcommit mola. Y si no que se lo cuenten al que compra un big node de 16 cores y "solo" 32 Gb de RAM.... Sin él, probablemente se quedará con la mitad de los cores sin usar. Evidentemente el overcommit no se aplica a todas las VM (Oracle bajo linux presenta inconvenientes), pero, como dice el anuncio, para todo lo demás....
Seguridad: ESX es monolítico, es verdad, y en eso consiste, para mí, su ventaja. No depende para nada del exterior, exceptuando los servicios de gestión que provee el COS (Console Operating System). Esta aproximación es similar a las de los Appliances, es decir, un SO personalizado, reforzado y especializado en una sola función... O al menos eso es lo que nos cuentan los fabricantes de appliaces... entre los que se incluye Microsoft con ISA Server o Windows Storage Server. Si vale para lo uno, vale para lo otro.
Herramientas, complementos de terceros: Sin duda, VI3 es la suite de virtualización más apoyada tanto por los fabricantes tradicionales como por nuevas startup: Veritas, Cisco, Intel son sólo un ejemplo de las primeras. VEEAM, vKernel, etc son ejemplo de las segundas.
Rendimiento y capacidad: Digan lo que digan quien lo diga, los ratios de virtualización con ESX son, como mínimo, un 30% superiores. Es decir, podemos ejecutar un 30% más de VM en ESX que sobre cualquier otra plataforma. Así mismo, el rendimiento, en especial en sistemas con múltiples VM, es, por término medio, mayor. Tampoco lo digo yo: Preguntad a San Google bendito.
Para terminar, analicemos ciertas afirmaciones que van corriendo por la blogosfera:
"Siendo Hyper-V de Microsoft, es razonable pensar que Windows funcionará mejor bajo Hyper-V". Bueno, Yo uso Windows Vista, y mi teclado es logitech, como mi ratón. Y no veo que los marca Microsoft vayan mejor. Puestos a seguir esa línea, Oracle no se vendería bajo Windows, desplazado por MS SQL, o Veritas se tendría que haber retirado del mercado, ahora que microsoft saca su producto de backup. Pero puestos a seguir, la realidad me va diciendo que esa afirmación no es del todo correcta: Veritas Cluster supera con mucho a Microsoft Cluster Service, o Forefront habría desplazado a McAfee... MelioFS parece que lo hace sobre NTFS, y así hasta el infinito. El producto estrella de Microsoft es Windows (en toda su familia) y es donde invierte. Es su negocio, y junto con Office, el "gordo" de su facturación. Si requerimos algo especial o con prestaciones adicionales.... recurrimos a software de terceros. ¿porqué con la virtualización debería ser distinto?
"El Hypervisor debe ser parte del sistema operativo": Vaya... es como si me dijesen que la BIOS debe ser parte del Sistema operativo.... o que el RAID5 debe hacerlo el OS... o que el routing de core de nuestra compañia debe ejecutarse en un servidor 2003/2008 con routing & remote Access....Cada uno que evalúe esta afirmación.
"Muchos GRANDES clientes están migrando a Hyper-V/Xen desde VMware": A ver. Migrar es dejar VMware y pasarse a Xen/Hyper-V. Yo que por mi actividad profesional, que incluye dar conferencias sobre temas de infraestructura, lidio con muchas de las grandes compañias de este pais, aún no conozco ningún caso donde se haya sustituído, en sistemas de producción, ESX por Hyper-V/Xen. Sí conozco casos donde los entornos de prueba, desarrollo y test se han virtualizado utilizando Hyper-V y por Xen (Y no siempre por motivos tecnológicos, y a veces por cierta presión). Recientemente un cliente (bastante importante en este país) me ha llamado para decirme que, con 3i gratuíto, iba a eliminar Hyper-V y Xen de sus entornos de desarrollo. Tampoco incluyo dentro de "migrar" la famosa actitud de los clientes de "Sí, hombre, móntalo por ahí y no me des más la barra".... actitud que yo sufrí allá por el 2000 a 2003 cuando empecé con esto de la virtualización.
Ultimo comentario para los que de último se dedican a decir que estoy vendido: Sí, estoy vendido. A la integridad de mis instalaciones, a la satisfacción de mis clientes, a los proyectos cerrados en fecha, a la fiabilidad y, por supuesto, a mi empleador... que no es VMware.