sábado, 17 de enero de 2009

Virtualizando con VMWare Server

Poco que contar de esta maravillosa herramienta (que llevo años usando) que no se haya escrito ya. Precisamente ahora, en estos tiempos de crisis en los que el reaprovechamiento de hardware resulta esencial, aprovecho para explicar cómo me va esto de tener varios ordenadores (Guests) dentro de uno solo (Host) usando esta herramienta y qué usos son los que yo he aplicado en mi día a día.

Básicamente, trabajo a diario con estas máquinas virtuales (Guests) y usando estas aplicaciones, todo bajo Hosts de marca con VMWare Server 1.0x:

  • Windows 2003 Server + MS Exchange Server 2003 (menos de 60 usuarios)
  • Windows 2003 Server + MS Sharepoint 2K7 .
  • Windows 2003 Server + MS SQL Server 2005 (BBDD de Sharepoint, menos de 8 Gb).
  • Windows 2003 Server como controlador secundario de Active Directory (ojo, el primario no recomiendan virtualizarle).
  • Varios Windows 2003 Server + IIS.
  • Varios Windows 2003 Server + IIS en clúster.
  • Windows 2003 Server + IIS + Apache + SQL Server Express + MySQL.
  • Windows 2000 Server + IIS + SQL Server 2000.
  • Varios Windows 2000 Server para aplicaciones bajo Terminal Server (menos de 15 usuarios por máquina, hasta 20 aplicaciones distintas).
  • Varios Windows XP para uso de usuario final usando RDP.

Desde el punto de vista del mantenimiento y sostenibilidad del sistema, esta muy bien contar con las ventajas que puede ofrecer VMWare Server:

  • El uso de máquinas virtuales te independiza del hardware usado, pues pasar de un servidor a otro se limita a instalar VMWare Server en el nuevo servidor, copiar los ficheros de los Guests y configurarlos dentro de VMWare Server.
  • Se puede instalar en varios sistemas operativos (Windows, Linux, Solaris, ...). Por si el día de mañana toca cambiar...
  • Es posible mantener Hosts fríos sin coste económico del software. Si el equipo no está encendido...
  • Es maravilloso para hacer pruebas y experimentos con los servidores (usando los de backup, claro).
  • Tiene multitud de Appliances gratuitas disponibles (Guests con aplicaciones preconfiguradas y listas para funcionar), lo que se merece un artículo por si solo.
  • Es asombrosamente estable si el host está bien configurado y cuenta con el hardware apropiado.
No todo es perfecto, al ser una versión gratuita tiene sus limitaciones pero puede ser suficiente para la mayoría:
  • Admite Guests de un máximo de 3.6 Gb de RAM (v1.0x) y 8 Gb (v2.0)
  • Admite Guests de un máximo de 2 procesadores virtuales.
  • No hace magia: Si los Guests hacen uso intensivo de disco, mantenlos en discos duros separados o irá muy despacio. Tampoco puedes montar el proxy de la red de la empresa en un clónico con una sola tarjeta de red a 10 Mb/s, ni ejecutar tu servidor desde el pendrive USB..

A través de mi experiencia, me aventuro a dar estas recomendaciones para los Hosts:

  • La más importante: Compra hardware de marca, con componentes de calidad, porque la fiabilidad tiene que estar garantizada. Haz contrato de mantenimiento con la casa.
  • Procura usar RAID por hardware:0, 1, 0+1 o 1+0, dependiendo de lo que necesites. No uses RAID 5, porque se escribe más despacio en disco respecto a las lecturas y penaliza a las máquinas.
  • Compra toda la RAM que vayas a necesitar, no seas roñoso.
  • Configura VMWare Server para que reserve RAM en exclusiva para cada máquina y no haga SWAP en disco.
  • Procura usar el Host en exclusiva para los Guests.
  • Haz backups periódicos de los Guests y/o mantén copias frías (apagadas) en otros servidores.

Y estas son recomendaciones para los Guests:

  • Instala las VMWare Tools. Siempre.
  • Sólo si el suministro eléctrico está asegurado (SAI) y el hardware es apropiado, se pueden deshabilitar los volcados de RAM a disco en el fichero .VMX, con lo que la velocidad de la máquina aumentará muy significativamente al no trabajar con los ficheros .VMEM. Si tienes un Guestcon >3 Gb de RAM, figúrate que uso de disco hace...
  • Procura no partir de una máquina procedente de P2V a no ser que no te quede más remedio. Si procuras instalarla de 0, con lo justo y necesario que vayas a usar, tendrás un mejor control del Guest y consumirá menos recursos.
  • Si se va a usar el disco del Guest intensivamente, créalo de un tamaño fijo desde el principio (allocate disk space now), si no se hace un uso intensivo o para máquinas de prueba, procura ahorrar espacio.
  • Procura asignar las direcciones IP por DHCP y MAC. Te ahorrará sustos y disgustos.
  • Ojo al copiar, clonar o mover los Guests: Necesitarás conservar los datos identificativos únicos del Guest o volver a generarlos.

Sistemas operativos que uso en servidor (Host):

  • Windows Server 2003 Enterprise: Fiabilidad total, meses sin reiniciar (mala praxis, lo sé...). La versión Enterprise es por aprovechar más de 4 Gb de RAM en el Host. Los Performance Counters de VMWare Server son indispensables para depurar problemas de interacción y/o configuración de los Guests.
  • Fedora 9: Para hacer lo mismo que el anterior, pero gratis. Fiabilidad total. El "pero" es que la instalación es más complicada y cada upgrade del kernel requiere recompilar la aplicación y rezar para que tire (o quedarse con una versión de kernel fija).
  • Windows XP Professional: Tan estable como sea el Windows XP... Sólo recomendable para pruebas o máquinas no críticas. Los problemas no los dará VMWare Server ;-)

Por cierto, respuestas a ciertas preguntas que quedaban en el aire....:

  • ¿Qué aprovechamiento Host/Guest tengo? Actualmente trabajo con unos 4 equipos (Guests) montados en cada servidor (Hosts con SCSI, RAID y doble procesador). Con el mismo coste final, me parece mejor usar un servidor de marca de 6000 Euros que 4 servidores clónicos de 1500 Euros. El ahorro energético también es significativo. Si los Guests consumen poca CPU y disco, se pueden montar más Guests en menos Hosts, pero si trabajan intensivamente cambia la película.
  • ¿Por qué uso la versión 1.0x y no la 2.0? Como dice el viejo dicho del informático: "Si funciona no lo toques...". Me han hablado bien de la v 2.0, pero siempre trabajo con a 1.
  • ¿Por qué VMWare Server y no VMWare Player, gratuito también? Muy sencillo, VMWare Server corre como servicio y no requiere intervención para los encendidos y apagados controlados de las máquinas virtuales cuando se apaga el host: VMWare Server no requiere que un usuario inicie una sesión y es más fácil para trabajar con él de cara a instalarlo en servidores o correr varios Guests.
  • ¿Por qué VMWare Server y no VMWare ESXi (gratuito)? Supongo que porque todavía no lo he probado. Tiene pinta de ser un auténtico cristo trabajar con esa versión. Si realmente necesitase aprovechar la virtualización al máximo, me iría a la versión de pago.
  • ¿Por qué VMWare y no otra plataforma de virtualización? Principalmente trabajo con Hosts/Guests WIndows y Linux y, hoy por hoy, es la mejor opción con diferencia.
  • ¿Cambiaría VMWare Server en un futuro por otro sistema? Estoy siguiendo de cerca las mejoras en Linux y paravirtualización, especialmente XEN. Si tuviese un Mac usaría Parallels sin duda. Pero me parece que los tiros van a ir por otro sitio: alquilar el Host en internet. Mi problema del día de mañana va a consistir en reducir los requisitos de los Guests al mínimo por costes y exprimir la paravirtualización en entornos multiguest.

Enlaces interesantes:

Tabla comparativa de plataformas de virtualización.

No hay comentarios: