© Josep Ros. Con la tecnología de Blogger.

Convencer a gerencia de que la virtualización es útil

Mi colega Fred Ramírez, desde Perú, me formula la siguiente consulta:

Hola Josep.

Permiteme saludarte y a la vez presentarme. Mi nombre es Fred Ramirez de Perú, y actualmente me encuentro investigando tecnologías sobre virtualización.

Estuve buscando información y me topé con tu blog que me resultó especialmente útil, no solo para este tema, sino para tecnología en general (Ya estas en mis Favoritos)

Realicé algunas pruebas y me animé por implementarlo en mi empresa y presentarlo a mi gerencia como proyecto a desarrollar.

Como primera demostración deseo migrar a un servidor virtual, un web server en Linux con el aplicativo en PHP mas importante para la empresa (Intranet).

Mi escenario actual es el siguiente:

1. Produccion Server:
HP Xeon 1.8Ghz + 2GB RAM + 1SATA
Centos 5.7 32bits. + Apache + PHP + PostgreSQL

2. Virtual HOST Server (ESXi)
IBM Xeon 3.0Ghz + 4GB RAM + 1SATA
ESXi 5 - Free
1. Virtual Machine : Centos 5.7 32bits + Apache + PHP + PostgreSQL (Mismas versiones y configuración que el servidor de Producción)

Lo raro en esto es que al acceder a ciertas opciones del sistema, el ambiente virtualizado es mucho mas lento que el antiguo server de Producción, y que en otras opciones que demandan mas carga del CPU (Ejm. Querys pesados en la BD) el servidor virtual responde mucho mas rapido incluso en la mitad de tiempo.

Pensé que tal vez era un tema de transferencia de archivos a través de la RED asi que instalé en mi servidor virtual una tarjeta Gigabit y lo coloque en un switch GIGA. pero igual el tiempo de demora es el mismo.

Estos son los gráficos obtenidos de dichas pruebas:

Lo redondeado de amarillo es cuando cargo la opción del sistema en el ambiente virtualidad.

Lo redondeado de verde es cuando cargo la misma opción en el sistema de producción.
Como se puede apreciar el ambiente de Producción responde en menor tiempo y utiliza mas ancho de banda. Este mismo comportamiento se da cuando uso la red en 100mbps o en 1Gbps.

Viendo el anterior resultado realice otras pruebas de transferencia por SAMBA a ambos servidores, teniendo como resultado:



Izquierda es el servidor Virtual y transfiere un ISO sin mayor problema llegando a la máxima transferencia.

Derecha es el servidor Produccion y transfiere el mismo ISO con algunas fluctuaciones pero sin ningún problema al final.

Después copie un ISO a ambos servidores y lo descargué desde una PC local via Web, teniendo lo siguiente:



Izquierda descargando desde el servidor virtual sin mayor problema.
Derecha descargando el mismo archivo desde el servidor producción sin contratiempos.

Finalmente realicé una transferencia de varios archivos pequeños a ambos servidores por SAMBA, teniendo lo siguiente:



Izquierda copiado de varios archivos PHP e imagenes al servidor Virtual sin problemas.
Derecha copiado de los mismos archivos PHP e imagenes al servidor de Produccion, sin problemas.

Para descartar que sea un problema de acceso a disco he reemplazado el disco del Host virtual por uno de estado solido Intel, dando los mismos resultados.

Para descartar que sea problema del hardware del servidor instalé el Linux con la misma configuración sin virtualizar y resultó ser el doble de rápido en TODAS las opciones frente al servidor de producción.

Para descartar tecnología de virtualización he probado con Centos+VMWareServer, ESXi 4 y 5 , Proxmox, Centos5 y 6 utilizando KVM, y XEN pero todos me dan idénticos resultados (Mayor capacidad de procesamiento pero lentitud en algunas opciones).

¿Que crees que pueda estar pasando? tengo entendido que siempre habrá un menor performance en un ambiente virtualizado, pero no creo que sea el caso ya que en varias otras opciones el servidor virtual responde hasta el doble de rápido.

Ya he probado tu Tip de los "Polvos Magicos" para las VMs pero no mejora la performance. Ya he cambiado a los 4 tipos de adaptadores de Red (me quede con E1000 al final) y cambie el tipo de disco virtualizado de SCSI a IDE y viceversa.

En total existen una aprox. de 100 usuarios registrados en la aplicación, pero de manera concurrente tengo una media de 30 usuarios.

Cabe señalar que las pruebas que le menciono anteriormente sobre la aplicacion web, se hicieron con un solo usuario (osea yo solito).
Mi idea de esta primera etapa, es migrar todos los servicios internos de uso no intensivo (Active Directory, FTP, Aplicaciones contables sobre Windows, Base de datos, Aplicaciones Web en Linux, Monitoreador, etc).

Si esta etapa resulta bien, entonces procederia a migrar todos los servicios de valor agregado de cara a nuestros clientes. (Ahi si estimo un aproximado de 700 a 800 usuarios)

Disculpa por lo extenso del mail, pero creo que era necesario para que puedas entender mejor cual es mi problema.

La verdad quiero sacar adelante este proyecto pero si voy a tener este tipo de inconvenientes no podré convencer a la gerencia para que inviertan en esta solución y aún no quiero darme por vencido.

Apelo a tu gran experiencia en el tema para que puedas ilustrarme y darme algunas pistas de como puedo solucionar este inconveniente en la implementación que estoy realizando.

De antemano ya tienes a un seguidor mas en tu Blog y desde ya muchas gracias por la atención brindada.

Exitos!
_____________________
Fred Ramirez U.

Muy buenas Fred y gracias por leer mi blog, me alegra mucho que le haya sido de utilidad.

Está genial que indiques el número de usuarios global de vuestra organización para saber la 'dimensión de la tragedia' :-)

Imagina que ya hemos convencido a gerencia y que te dan el OK. si empiezas a virtualizar todos esos equipos no podrás hacerlo en local, necesitarás una cabina (SAN). Esa cabina tiene que ser suficientemente flexible para soportar todos los servidores que te vendrán encima que, muy probablemente, sean más de los que tienes ahora pensados.

El problema que tienes es que estás jugando con un servidor con un sólo disco y sin una controlador en condiciones. Lógicamente el mejor consejo sería que adquieras una SAN, pero empezamos la casa por el tejado. Si lo que quieres es convencer a tu jefe te doy 2 opciones:

1. Adquiere una controladora potente para tu servidor, con 512MB de caché o 1GB y con batería. Adquiere también varios discos y haz un RAID 5, por ejemplo ya verás como entonces si que funciona bien la VM.

2. Si quieres hacer una prueba con una cabina, yo tengo una cabina de demo donde puedes alojar tu VM y ver el rendimiento, máxime si es un servidor web, me ofrezco desinteresadamente a hacer esa prueba.

Es interesante, en cualquier caso, que tengas en cuenta que la virtualización siempre va a perder algo de rendimiento respecto a un sistema físico. Tienes que alejarte un poco del rendimiento puro y duro y pensar en la flexibilidad y manejabilidad que te va a dar la virtualización, teniendo un entorno replicado con Veeam Backup, por ejemplo, vas a poder levantar toda la empresa en un periquete, eso es algo muy a tener en cuenta. Vas a poder hacer backup en caliente, vas a poder hacer clones y probar cambios en tus sistemas sin alterar el entorno en producción. Todo esto se llama continuidad de negocio y seguro que tu Gerente será sensible.

Un abrazo!

Josep

3 comentarios:

Fred_R dijo...

Hola Josep.

Soy Fred. Gracias por el interes en el caso. Te hago llegar una copia de la VM para poder realizar las pruebas con la cabina que gentilmente has ofrecido.
Obviamente que los resultados de la prueba y mis conclusiones finales lo comentaré en tu blog.

Fred_R dijo...
Este comentario ha sido eliminado por el autor.
Josep Ros dijo...

Gracias Fred,

Te lo preparo en seguida y ya lo pruebas.

Un abrazo!

Consulta Técnica

[Consulta Técnica][bleft]

Virtualización

[Virtualización][twocolumns]

Naturaleza

[Naturaleza][grids]