Rubén Bernardo Guzmán Mercado

Virtualización

¡Ya no es el futuro, es el ahora!


Introducción

El área de tecnologías de la información soporta una tremenda presión para mantener los servicios de red y ser más ágil en la respuesta ante eventos, para lograr este objetivo es necesario tener pleno conocimiento del negocio y hacia donde este se dirige, los administradores de TI debemos considerar que los procesos manuales complejos y la infraestructura no integrada, no pueden proporcionar la potencia, la sencillez y la velocidad necesarias para satisfacer las necesidades del negocio.

Las aplicaciones están creciendo más rápido de lo que la TI puede ofrecer, en la actualidad la gestión de TI consume más del 80 % del tiempo y presupuesto, los gastos se están incrementando a un ritmo acelerado, para contrarrestar esto los sistemas de infraestructura convergente potencian el rendimiento para superar estos desafíos, reducir el costo y la complejidad de su entorno de TI y proporcionar la tecnología que la empresa necesita.

Virtualización

Sin duda hoy en día, mas que en ningún otro ámbito, la tecnología de la información, avanza tan rápido que no da tiempo a asimilar todos los conceptos nuevos que se presentan, sin embargo un concepto nada nuevo pero que esta creciendo y cambiando el modelo de administración de sistemas para los líderes de TI y que inevitablemente está llegando a los usuarios, es la virtualización de sistemas operativos.

La virtualización se considera actualmente una arquitectura dominante, con muchas empresas comprometidas con la implementación de todas las nuevas aplicaciones en entornos destinados para este fin, en cuanto a servidores ha encontrado su camino en las infraestructuras de TI de casi todos los tamaños, una reciente encuesta de Spiceworks entre profesionales de TI encontró que el 80% de las pequeñas y medianas empresas ya han adoptado alguna forma de virtualización de servidores.

La virtualización de servidores se sitúa, en la actualidad, en una de las etapas más importantes dentro de la tendencia de modernización e implantación de las nuevas tecnologías en el mundo empresarial, estos sistemas incluyen la virtualización del almacenaje, red, y control de carga de trabajo, en los sistemas informáticos se usa para mejorar y en muchos casos eliminar, la infrautilización de servidores, haciendo un uso más eficiente de los recursos, mejorando su disponibilidad, facilitando la recuperación, y descentralizando los servicios de administración.

Ventajas

  1. Económica - Podría ser esta la ventaja más atractiva:

    Se consigue una reducción de servidores que puede suponer una relación entre 10 a 1 en el caso más optimista a un 6 a 1 en el caso menos optimista, dicho de otra manera, que por cada seis máquinas que virtualicemos nos hará falta un solo servidor que las aloje.

    Reducción del consumo eléctrico y el dióxido de carbono emitido a la atmósfera al reducir el número de máquinas.

    Mejora de TCO y ROI - Al reducir el número de máquinas estamos disminuyendo el costo total de la propiedad (total cost of ownership, TCO) y por lo tanto conseguiremos un retorno de la inversión (return of investment, ROI) mejor, si añadimos que estamos ahorrando en la factura eléctrica, en el ROI se vera aun mas reflejado el ahorro.

  2. Competitividad - Al no tener que adquirir equipos costosos, las pequeñas empresas pueden tener acceso a las más nuevas tecnologías a precios a su alcance pagando únicamente por consumo, de este modo las organizaciones de cualquier tipo podrían competir en igualdad de condiciones en áreas de TI con empresas de cualquier tamaño, la ventaja competitiva no está en quien tiene los recursos de cómputo, sino en quien la emplea mejor.
  3. Disponibilidad - El área de TI está obligado a garantizar que el servicio siempre esté disponible para el usuario, en este aspecto, la virtualización es fundamental, ya que al hacer uso de esta tecnología, se debe diseñar una infraestructura redundante que permita ofrecer un servicio constante de acuerdo a las especificaciones del negocio.
  4. Escalabilidad - La empresa no tiene que preocuparse por actualizar el equipo de cómputo sobre el que se está proporcionando un servicio, una de las mejores particularidades de esta tecnología es que podemos incrementar su capacidad de almacenamiento, memoria, tarjetas en algunos casos en Hot plug o disponiendo de tiempo de soporte en un horario que no afecte a las operaciones, un cambio así se ve reflejado para todas las maquinas virtuales que tengamos en ese equipo, las actualizaciones y nuevas funcionalidades son instaladas prácticamente de manera inmediata.
  5. Configuración - Todas las máquinas virtuales pueden configurarse de forma aislada e independiente de las demás, sin influir en el hardware o en el resto de máquinas virtuales.
  6. Estandarizan - Permite homogeneizar todos los recursos, por lo que se llega a estandarizar procedimientos y configuraciones.
  7. Prevención - Mejora la tolerancia a fallos, mayor eficiencia, flexibilidad y soporte al uso dinámico de procesos, disminución del consumo eléctrico, ante un fallo general de sistema de una máquina virtual no afecta al resto de máquinas virtuales y aumenta de la capacidad de respuesta entre otros.
  8. Espacio - Al tener menos máquinas necesitaremos menos espacio físico para poder desplegar nuestro centro de procesamiento de datos.
  9. Administración global centralizada y simplificada - Definitivamente son menos máquinas físicas las que hay que administrar, además de que el software de virtualización ayuda a la gestión remota de las máquinas virtuales.
  10. Integración - Rápida incorporación de nuevos recursos para los servidores virtualizados, se trata de una tecnología escalable donde es fácil la incorporación de nuevas máquinas virtuales en una máquina anfitriona.
  11. Seguridad del sistema - Mejora en los procesos de clonación y copia de seguridad del sistema.
  12. Pruebas Aisladas - Mayor facilidad para la creación de entornos de prueba que permiten utilizar nuevas aplicaciones sin afectar a la producción en un entorno controlado agilizando el proceso.
  13. Transparencia - El usuario ve los recursos que necesita como si fueran dedicados.

Desventajas

  • Demanda de Recursos - Necesidad de mayor cantidad de recursos hardware del servidor, conectividad, memoria RAM, procesamiento y disco.
  • Compatibilidad - Problemas con los dispositivos Hardware virtualizados y software.
  • Configuración Compleja - Dificultad en la configuración de servicios de Microsoft Windows, Exchange, SQL Server, la sensación de un incremento en la complejidad de los sistemas, la aparición de nuevos retos en el testing de las nuevas aplicaciones a implementar y la baja disponibilidad de perfiles técnicos especializados.
  • Licenciamiento - Vacíos legales respecto al uso de licencias virtuales.
  • Respaldo - La falta de convencimiento de la administración que ve el ahorro económico, contra la inversión inicial y abandona los proyectos de virtualización, así como la apatía a involucrarse en una renovación tecnológica en beneficio del negocio.
  • Insertidumbre - En pocos entornos han realizado virtualizaciones de servidores críticos, ya que se tiene el temor al concepto, por lo tanto los servicios que mayormente se virtualizan son servidores no críticos como servidores de DNS y DHCP.
  • Solución de problemas poco claro - En ocasiones podemos identificar una falta de visibilidad en la solución de problemas en entornos virtuales.
  • Trampas de la virtualización - Una mala estrategia de migración de servicios a soluciones virtuales, sin duda experimentan más problemas que soluciones, puede desencadenar más problemas que beneficios si no se sabe implementar adecuadamente.
  • Administradores de virtualización - Los problemas están relacionados a que los administradores de virtualización, carecen de los conocimientos y experiencia para gestionar adecuadamente la tecnología a implementar.
Tipos de Virtualización

Fundamentos de Virtualización

Hoy en día se dan diversas definiciones de lo que se denomina virtualización de servidores, aunque todas coinciden en que consiste básicamente en agrupar diferentes aplicaciones y servicios de sistemas heterogéneos dentro de un mismo hardware, de forma que los usuarios y el propio sistema los vean como máquinas independientes dedicadas, para ello, el sistema operativo virtualizado debe ver el hardware de la máquina real como un conjunto normalizado de recursos independientemente de los componentes reales que lo formen, de esta manera, para virtualizar un sistema de servidores, los administradores deben, básicamente, optimizar los recursos disponibles, incluyendo el número y la identidad de los servidores físicos individuales, procesadores, y sistemas operativos, con el objetivo de producir una mejora tanto en la gestión como en el manejo de sistemas informáticos complejos, utilizar un software para la división del servidor físico en entornos virtuales aislados, estos entornos es lo que se conoce técnicamente como servidores privados virtuales, particiones, instancias, contenedores o emulaciones de sistemas.

Modelos de Virtualización

Máquina Virtual

El modelo de máquina virtual está basado en la arquitectura cliente/servidor, donde cada cliente funciona como una imagen virtual de la capa hardware. Este modelo permite que el sistema operativo cliente funcione sin modificaciones. Además, permite al administrador crear diferentes sistemas clientes con sistemas operativos independientes entre sí. La ventaja principal de este modelo radica en el desconocimiento por parte de los sistemas huésped del sistema hardware real sobre el que está instalado. Sin embargo, realmente todos los sistemas virtuales hacen uso de recursos hardware físicos. Estos recursos son administrados por un sistema denominado hypervisor que coordina las instrucciones CPU. El hypervisor es denominado comúnmente monitor de máquina virtual (VMM) y es el encargado de validar todas las peticiones e instrucciones de los sistemas virtuales a la CPU, supervisando todas las ejecuciones que requieran cambios de privilegios.

Máquina Paravirtual

El modelo de máquina paravirtual (PVM) se basa, como el modelo anterior, en la arquitectura cliente/servidor, incluyendo también la necesidad de contar con un sistema monitor. Sin embargo, en este caso, el VMM accede y modifica el código del sistema operativo del sistema huésped. Esta modificación se conoce como porting. El porting sirve de soporte al VMM para que pueda realizar llamadas al sistema directamente. Al igual que las máquinas virtuales, los sistemas paravirtuales son capaces de soportar diferentes sistemas operativos instalados en el hardware real. Modelos de máquinas paravirtuales son UML y XEN.

Virtualización a nivel de Sistema Operativo

La virtualización a nivel de sistema operativo se diferencia de las anteriores en que, en este caso, no existe un sistema cliente/servidor propiamente dicho. En este modelo el sistema principal exporta la funcionalidad del sistema operativo desde su propio núcleo. Por esta razón, los sistemas virtuales usan el mismo sistema operativo que el nativo (aunque en la mayoría de los casos pueden instalar distintas distribuciones). Esta arquitectura elimina las llamadas del sistema entre capas, lo que favorece una reducción importante en el uso de CPU. Además, al compartir los ficheros binarios y librerías comunes del sistema en la misma máquina, la posibilidad de escalado es mucho mayor, permitiendo que un mismo servidor virtual sea capaz de dar servicio a un gran número de clientes al mismo tiempo. Ejemplos sistemas que usan virtualización a nivel de sistema operativo son Virtuozzo y Solaris (Sun Microsystem, 2004; SWsoft, 2006).

También conocida como virtualización de software, es similar a la virtualización de hardware, pero en este caso la máquina anfitriona ejecuta un sistema operativo, y el software de virtualización interactúa contra él. De este modo, independientemente de los sistemas operativos propios de cada máquina virtual, podremos utilizar la máquina anfitriona ya que posee su propio sistema operativo, ya sea personal o de servidor (figura 2). Existe un gran catálogo de software que nos puede ayudar a realizar virtualizaciones de sistema operativo, como Virtuozzo, Solaris Containers y KVM. Por ejemplo, podemos tener una computadora con un sistema operativo Windows 7 ejecutando una máquina virtual con un Ubuntu 10.10. De esta manera podremos ejecutar software de Ubuntu sin tener que cambiar de máquina o sin tener que instalar en la máquina dos sistemas operativos

Virtualización de hardware

Se llama también virtualización de plataforma (Popek; Goldberg, 1974) y se refiere a la creación de máquinas virtuales que se comportan como máquinas reales con su propio sistema operativo, funcionando en una máquina anfitrión que carece de sistema operativo. La máquina anfitriona sólo ejecuta un software de virtualización para poder ejecutar las máquinas virtuales (ver figura 1). Esta suele ser la opción más utilizada cuando tenemos varios servidores, ya sean servidores de email, impresoras en red, ficheros, gestores de contenido, etc. y queremos hacerlos funcionar en una sola máquina.

Virtualización de almacenamiento

Es la unión de múltiples dispositivos de almacenamiento conectados en red, de tal manera que parezcan una única unidad (figura 3). Es un concepto muy fácil de entender, aunque muy complicado de implementar tecnológicamente (SNIA, 2008). Existe un amplio catálogo de software que nos permite hacer virtualización de almacenamiento. Algunos ejemplos son HP StorageWorks, DataCore y EMC Networker.

Virtualización de escritorio

Consiste en la separación del entorno de escritorio de la máquina física, permitiendo que sea en una máquina servidora de escritorios donde se ejecuten los programas y se realicen los cálculos, mientras que en otra máquina remota se muestra la interfaz gráfica del escritorio con la que el usuario interactúa (ver figura 3). De esta manera conseguimos tener unos clientes “delgados”, sin apenas software instalado, ya que sólo funcionan como interfaces para interactuar con los procesos, que están ejecutándose en el servidor. El software más utilizado para la virtualización de escritorio es Citrix XenDesktop, Microsoft Remote Desktop Services, MokaFive Suite, Sun Virtual Desktop Infrastructure, VMware View, etc.

Virtualización de red

Consiste en poder unir en una red virtual varios elementos de red heterogéneos, ya sean hardware o software, conectados a distintas redes y dispersos topológicamente. Es decir, podemos tener varios elementos de red como computadoras, impresoras, servidores de ficheros, nuestra computadora personal en nuestra casa, etc. localizados en distintos puntos geográficos que, con sólo una conexión a internet, podemos agrupar formando una red virtual, con las ventajas administrativas que ello conlleva.

Rberny
PROCESADOR

De la misma forma que a nivel físico, un procesador virtual tiene como función primaria realizar cálculos complejos utilizando los datos que le proporciona el sistema, la mayoría de las plataformas de virtualización están diseñadas para soportar un procesador virtual único, sin embargo, el procesador virtual no es completamente emulado ya que una emulación completa derivaría en lo que se conoce como un cuello de botella. Para solucionar esto, la plataforma de virtualización generalmente atrapa las instrucciones emitidas por las máquinas virtuales manejándolas de dos formas diferentes, o pasa la instrucción directamente hasta el procesador físico o emula la instrucción descomponiéndola en una o más diferentes instrucciones para el procesador físico, para finalmente regresar el resultado esperado al procesador virtual.

Memoria RAM

Las máquinas virtuales necesitan de la memoria RAM de la misma forma que sus contrapartes físicas, ambas utilizan este tipo de memoria como medio de almacenamiento temporal y de alta velocidad, para los datos que van a ser utilizados por los procesadores, la memoria virtual asignada a una máquina virtual usualmente mapea directamente en la memora física del servidor anfitrión, es el VMM de la plataforma de virtualización el que se encarga de administrar las direcciones de memoria asignadas a una máquina virtual.

Rberny
Rberny
Conexiones de red

La virtualización de red es cualquier forma de partición o combinación de recursos de red con una presentación a los usuarios de manera que, cada usuario perciba que su conjunto de recursos es una vista única y separada de la red. Los recursos pueden ser fundamentales nodos o enlaces y derivados, pueden ser virtualizados recursivamente.

Almacenaje

La unidad de disco duro virtual almacena datos dentro de uno o más archivos residentes en el servidor anfitrión, estos archivos contienen la imagen almacenada de un disco duro completo, pero ante el sistema operativo huésped, aparecen como un simple disco duro físico, esta unidad de disco virtual es creada por la plataforma de virtualización, usualmente a través de sus interfaces de administración y en el momento de su creación, el tipo de interface y su tamaño deben ser especificados.

Rberny

Técnicas de virtualización

Las técnicas de agrupamiento o pooling, son aquellas en que distintos elementos trabajan juntos para formar una única entidad lógica.

La abstracción se caracteriza simplemente por proveer una capa de emulación, sin que tenga porqué existir ni agrupamiento ni particiones

El particionamiento consiste en subdivisiones lógicas de algún recurso hardware emulando cada una de ellas el comportamiento del recurso padre.

Virtualización en pequeñas y medianas empresas

Obtener el mayor beneficio de la virtualización implica determinar cuidadosamente la estrategia desde el inicio del proyecto.

Comprender qué requiere la virtualización

La virtualización plantea un conjunto diferente de exigencias sobre los servidores, lo que era típico en el modelo (deteriorado por el tiempo) de un servidor por cada aplicación. Los servidores necesitan más energía para procesadores, memoria, almacenamiento y capacidad de E/S a fin de manejar las necesidades de múltiples máquinas virtuales. Para obtener más información sobre las exigencias específicas de la virtualización, consulte "Una base de servidores diseñada para adaptarse"

Insistir con una arquitectura abierta y estándar

Algunos proveedores fabrican servidores con CPU de propiedad, un método que restringe las opciones de hardware y software. Los sistemas de propiedad también exigen, en general, determinada experiencia para administrar, incluso en el caso de las tareas de mantenimiento básicas. Elegir máquinas que usen una arquitectura estándar x86 reduce los costos, dado que elimina la necesidad de contar con personal especializado y experiencia costosa, a la vez que se preservan opciones futuras de software y hardware. Usar chips estándares en el centro de un sistema también significa que el proveedor aprovecha una base de fabricación más grande y, por lo tanto, productos menos costosos. Debido a que la dependencia de un proveedor restringe la flexibilidad empresarial y limita las opciones empresariales estratégicas, es conveniente buscar servidores con una arquitectura flexible y abierta.

Prestar atención a las opciones de sistema operativo

Del mismo modo que algunos proveedores usan chips de propiedad, otros también usan sistemas operativos de propiedad, generalmente algún tipo de Unix. Depender de la marca propia de un proveedor de Unix limita las opciones en aplicaciones y hardware compatibles, lo que puede suponer precios más altos para el sistema operativo y otro software del proveedor que podría necesitarse. Elija un servidor que sea compatible con un sistema operativo de terceros estándar, como Windows Server de Microsoft o una de las principales variaciones de distribución de Linux.

Comprobar la compatibilidad del software de virtualización

Varias empresas (por ejemplo, VMware, Microsoft, Red Hat y Novell) fabrican hipervisores, el nombre técnico para el software de virtualización. Asegúrese de que cualquier servidor que elija sea compatible con todos los hipervisores principales. Incluso si su empresa usa solo uno de ellos, el hardware que es compatible con todos ofrece la opción de cambiar a otro hipervisor o integrar nuevos sistemas a partir de una adquisición u otro desarrollo empresarial.

Asegurar una amplia compatibilidad de hardware y software

Algunos servidores carecen de la extensa popularidad necesaria para obtener el apoyo de los fabricantes de software y hardware de terceros. Incluso si el proveedor de servidores puede ofrecer la gama completa de productos adicionales que podría necesitar para administrar adecuadamente el equipo, la falta de opciones invoca la ley de suministro y demanda, lo que garantiza que sus costos serán más altos.

Las empresas en crecimiento que desarrollan su infraestructura en la plataforma de servidores correcta pueden aprovechar los beneficios de la virtualización, del mismo modo que lo han hecho las grandes empresas durante años.

Rubén Bernardo Guzmán Mercado

Ingeniero en Sistemas Computacionales

Solicitud de Información

Para mayor informacion, no dudes en escribirme a:
ruben.guzman@rberny.com