Virtualización, Sanidad y Software Libre

El pasado Noviembre escribí un artículo sobre Virtualización, Sanidad y Software Libre a propósito del congreso de la S.E.I.S celebrado en Valladolid. Como ya ha salido publicado en varios medios, me permito el ponerlo aquí íntegro.

Virtualización, Sanidad y Software Libre

Durante el congreso de la S.E.I.S celebrado en Valladolid a principios de octubre pudimos escuchar diversas ponencias muy intersantes relacionadas con la virtualización aplicada a los CPDs en Sanidad. En dichas ponencias pudimos obtener experiencias de primera mano sobre la aplicación de soluciones de virtualización en diversos entornos y problemáticas.

En este articulo se pretende dar una visión general sobre esta tecnología alrededor de de dos aplicaciones específicas de dicha tecnología: la virtualización de escritorios y la virtualización de puestos de trabajo, proporcionando al mismo tiempo información general sobre las distintas alternativas de solución que existen tanto propietarias como basadas en Software Libre.

La virtualización en este contexto consiste en la posibilidad de crear máquinas virtuales (máquinas lógicas) sobre un hardware físico. A cada máquina virtual se le puede asociar una serie de dispositivos hardware lógicos (memoria RAM, uno o varios discos lógicos, tarjetas de red lógicas, etc) independientemente de los recursos hardware de la máquina física. De este modo, las aplicaciones que se ejecutan en la máquina lógica no saben que se están ejecutando sobre una máquina virtual sino que creen que se ejecutan sobre una máquina física con recursos dedicados.

El concepto de virtualización no es nuevo. De hecho surgió en los años 60 asociado a los mainframes. A finales de los años 90 aparecieron las primeras aplicaciones de virtualización bajo arquitecturas x86 tales como SoftPC o Bochs, especializadas para cubrir necesidades específicas como la creación de entornos simulando arquitecturas o procesadores no disponibles para x86 (por ejemplo, entornos ARM sobre Bochs). Más adelante aparecieron soluciones más orientadas al usuario de escritorio como VMWare, que supuso en su momento una revolución ya que proporcionaba por primera vez la posibilidad de ejecutar aplicaciones Windows sobre sistemas Linux y viceversa con suficiente eficiencia para poder ser usados por el usuario final sobre el hardware disponible entonces (era común disponer de PCs de sobremesa basados en Intel Pentium y 128Mb de RAM).

En la actualidad existen multitud de opciones en el mercado para los sistemas operativos más extendidos. La opción propietaria más conocida es VMware. Son los líderes del mercado y disponen de una gama de productos relacionados con la virtualización muy completa. Otras soluciones propietarias son Virtual PC o zVM. Existen también soluciones basadas en Software Libre como Virtualbox, Xen, Qemu, KVM, OpenVZ, … Las soluciones libres han llegado a tal nivel de madurez y calidad que son opciones realmente sólidas incluso para los entornos de producción más exigentes.

En cualquier caso, tal y como apuntaba Ignacio Martín Llorente de la UCM en el congreso, la falta de interés por parte de los grandes fabricantes para crear estándares que permitan interoperabilidad entre las distintas opciones puede haber ralentizado la disponibilidad de otras alternativas. Posiblemente la presión que las alternativas libres están ejerciendo en favor de la estandarización y la interoperabilidad de las distintas soluciones sea uno de los motivos importantes para los grandes avances tecnológicos que se han podido observar en los últimos 18 meses en el entorno de la virtualización.

Según nos comentaba Carlos Villacastín de Intel, existen unos 30 Millones de servidores físicos en la actualidad, todos ellos consumiendo electricidad y refrigeración, sin olvidar los costes de operación y mantenimiento así como el coste del espacio ocupado en los CPDs. La proporción de servidores virtualizados es únicamente del 12%, por lo que el potencial de crecimiento de las soluciones virtualizadas es enorme. Por tanto cabe esperar un incremento en la cantidad de fabricantes relacionados con virtualización.

Existen varias técnicas de virtualización, cada una de ellas adecuada para una tarea determinada. Así encontramos:

  • Emulación de hardware: Consiste en que la máquina virtual simula completamente los componentes hardware. Software como Qemu o Bochs siguen este planteamiento. Es el más versátil ya que las máquinas virtuales pueden emular arquitecturas totalmente distintas a las del hardware real, pero su utilidad práctica en entornos de propósito general se disminuye debido a la importante pérdida de rendimiento que la emulación provoca en el sistema final.
  • Virtualización completa: Permite la ejecución de múltiples máquinas virtuales simulando un conjunto de dispositivos hardware suficientes para que un sistema operativo pueda ejecutarse sin modificaciones sobre el hardware real. Recientes procesadores de AMD e Intel implementan tecnología que permiten en última instancia aumentar el rendimiento de estos sistemas. VMware Workstation o Parallels Desktop son dos ejemplos de este tipo.
  • Paravirtualización: Mediante paravirtualización podemos lograr rendimientos realmente cercanos a la máquina física, pero requiere ciertas modificaciones en el Sistema Operativo de la máquina virtual de modo que coopere con el sistema anfitrión. Una de las opciones más interesantes en este ámbito la presenta Xen.
  • Virtualización a nivel del Sistema Operativo: Se ejecuta una única instancia del Sistema Operativo y no se virtualiza el hardware, pudiendo crear múltiples espacios de ejecución aislados muy similares en concepto a máquinas virtuales. La pérdida de rendimiento debida a la virtualización es prácticamente nula. El ejemplo más representativo lo podemos encontrar en el producto basado en Software Libre OpenVZ o su equivalente propietario Virtuozzo.

A pesar de ser la virtualización una de las tecnologías más veteranas, es en los últimos años cuando realmente se ha convertido en una tecnología disruptiva, sobre todo en los CPD (Centros de Proceso de Datos) proporcionando múltiples ventajas, algunas de las cuales las apuntaba Jesús Rodríguez (hospital Gregorio Marañón):

  • Optimización de uso del hardware disponible
  • Ahorro de energía
  • Simplicidad de administración
  • Ahorro de costes
  • Mejora en la seguridad
  • Menor espacio utilizado en el CPD
  • Continuidad del servicio

Un aspecto crítico que está afectando al mundo de la virtualización en el entorno del servidor es la disponibilidad de entornos de virtualización fiables y de gran calidad basados en Software Libre tales como KVM, Xen o Virtualbox que proporcionan acceso a dicha tecnología sin necesidad de grandes desembolsos de dinero. Esto elimina las barreras de entrada a la tecnología y la convierte en una ‘commodity’ accesible por cualquiera. Esto en mi opinión debe llevar en un futuro bastante cercano a importantes cambios en el mapa de empresas que ofrecen soluciones de virtualización.

La consolidación de las distintas tecnologías de virtualización lleva a que aparezcan diversas herramientas y entornos de gestión de máquinas virtuales muy interesantes. Ignacio Martín Llorente de la UCM nos presentó en el congreso de Valladolid de la S.E.I.S una herramienta libre llamada Opennebula (http://www.opennebula.org). Es una herramienta más de gestión de máquinas virtuales, pero con un aspecto realmente diferencial: se integra de forma transparente con Amazon EC2 (servicio de máquinas virtuales a demanda a coste variable por consumo de CPU, disco y memoria). Las posibilidades son impresionantes. Desde cubrir picos de carga puntuales, sistemas de backup o proporcionar servidores en alta disponibilidad sobre una plataforma que -supuestamente- nunca falla y proporciona capacidades de proceso y almacenamiento a medida.

Una de las aplicaciones de la virtualización con más potencial es la virtualización orientada a escritorio (denominada VDI). Aunque en el congreso no se profundizó en este tema concreto, es una de las aplicaciones más interesantes ya que proporciona unos beneficios si cabe más obvios que en la virtualización de servidores. VDI puede proporcionar ahorros de coste de hasta el 40% en la gestión y aprovisionamiento del parque de PCs de una organización además de la simplicidad de administración que se obtiene. Esta tecnología se basa esencialmente en la ejecución del entorno de trabajo completo de cada puesto de trabajo en el servidor. De este modo se hace irrelevante la capacidad de proceso de cada puesto, pudiendo alargar enormemente la vida útil de los PCs junto a otras muchas ventajas como el ahorro enorme de espacio de almacenamiento al compartir imágenes de sistemas, acceso remoto a tu puesto de trabajo, etc.

Como conclusión creo que es importante plantear que, si bien la virtualización es una tecnología muy veterana, realmente se ha generalizado su uso en los últimos años. A pesar de esto, todavía la amplia mayoría de los servidores están sin virtualizar, por lo que cabe esperar un crecimiento sostenido del mercado de la virtualización así como un aumento del número de fabricantes que ofrezcan soluciones de virtualización.

No utilizar este artículo sin autorización expresa de su autor Fernando Monera (fmonera@opensistemas.com).
Referencias: