Professional Documents
Culture Documents
Para decirlo de una forma sencilla la virtualizacin es la creacin de un entorno virtual donde puedes ejecutar otros programas de manera independiente, esos programas sern los mismos que ejecutas normalmente en tu computadora, pero funcionarn, por as decirlo, en una rplica de un sistema operativo. Por tanto la virtualizacin es un programa que ofrece el soporte para instalar otros sistemas operativos sobre tu misma mquina, los que funcionarn de manera encapsulada dentro de ese entorno virtual.
HISTORIA: La virtualizacin no es un tema novedoso en informtica, de hecho se considera que existe, aproximadamente, desde hace cuatro o cinco dcadas. Por aquel entonces y hasta hace pocos aos era aplicada en mbitos exclusivos, slo prcticamente para los grandes centros de clculo, tanto bancarios como militares y universitarios. Algunos de los usos pioneros de la virtualizacin incluyen al IBM 7044(en el que la mquina fsica era la M44, que albergaba varias mquinas lgicas 44Xpara los procesos) el CTSS (Compatible Time Sharing System) desarrollado por el MIT(Massachusetts Institute of Technology)en el IBM 7044, y el proyecto Atlasde la Manchester University (uno de los primeros supercomputadores del mundo, operativo en 1962), pionero en el uso de paginacinbajo demanda y llamadas en modo supervisor.
El proyecto Atlas tuvo especial importancia ya que Christopher Strachey incluy en l caractersticas novedosas para la poca (aos sesenta) y que venan a solucionar los graves problemas surgidos del uso comn de un nico ordenador por parte de muchos trabajadores a travs de terminales. Bsicamente consista en un mecanismo para el reparto y uso al mismo tiempo de los recursos del computador (fundamentalmente procesador y disco), y la seguridad y fiabilidad de que el trabajo de un empleado no interfiriera en el de los otros. En la poca de los mainframes, estas cuestiones superaban en importancia al rendimiento en la rapidez de los resultados. As es como naci la virtualizacin, con la necesidad de particionar recursos de disco, memoria y capacidad de cmputo. Estas particiones (mquinas virtuales) podran acoger una instancia de un sistema operativo, comunicarse a travs de red, usar sus recursos o utilizar los del resto en el que caso de que no estn ocupados, se podran tomar imgenes de su estado, o incluso ser migradas entre distintos servidores que las alojaran. IBM reflej la importancia de la virtualizacin en los aos sesenta con el desarrollo de varios sucesores para el IBM 7044. Uno de ellos, el Model 67virtualiz todas las interfaces hardware a travs del VMM (Virtual Machine Monitor), un monitor de mquinas virtuales, llamado posteriormente en la dcada de los setenta hipervisor debido a la habilidad que posea de correr sistemas operativos dentro de otros, y que era ejecutado encima del hardware subyacente. En estos primeros das de la virtualizacin los sistemas operativos que eran ejecutados en mquinas virtuales eran llamados Conversational Monitor Systemso CMS. Estas primeras mquinas virtuales continuaron desarrollndose y avanzando, e incluso en nuestros das se pueden encontrar corriendo en el mainframe System z9TM, mostrado en la figura 1.3. Esto muestra un detalle importante en la evolucin de la virtualizacin, que es la compatibilidad hacia atrs.
Otro de los primeros usos de la virtualizacin es el uso del procesador simulado, Pode (Pseudo-code). P-Codees un lenguaje mquina que es ejecutado en una mquina virtual ms que en el hardware real, lo que permiti a los programas codificados en P-Codeser altamente portables y correr en cualquier lugar en el que est disponible la mquina virtual P-Code. Mquinas virtuales de uso extendido en la actualidad siguieron este mismo modelo, como es el caso de la Java Virtual Machine (JVM). El mismo concepto que en el que se fundament P-Codefue usado en los aos sesenta tambin por el Basic Combined Programming Language o BCPL, predecesor de C. Con la llegada de los computadores personales el concepto de acceso al mismo tiempo a los recursos de un nico supercomputador fue desapareciendo, y con l se vio eclipsada la virtualizacin: lo importante era el rendimiento ms que la seguridad y fiabilidad. Al ocaso de la virtualizacin tambin contribuy el que no fuera una buena idea la particin de los recursos de los miniordenadores o computadores personales debido a su escasez; los mainframes quedaron reducidos a lugares crticos y puntuales. La evolucin con los aos sigui la misma lnea, hasta llegar a la situacin que conocemos en la que prcticamente existe un ordenador por persona. Afortunadamente la virtualizacin junto a tecnologas como los sistemas operativos multiusuario y multitarea sobrevivieron en las Universidades y en sectores en los que su uso y fiabilidad eran crticos: grandes empresas, bancos, sistemas militares, etc. Estos sistemas fueron evolucionando y ya no eran los mainframes usados antiguamente, sino que eran sistemas que usaban hardware de miniordenador y con arquitectura mainframe, como la familia IBM AS/400, cuyo primer modelo vio la luz en 1988. Con el aumento de complejidad y potencia de los ordenadores que ya podan ejecutar sistemas multitarea y multiusuario, se pudieron retomar las caractersticas del sistema Unix que fueron eliminadas en sus primeras versiones (reducidas para posibilitar la ejecucin en sistemas de baja potencia); entre ellas la virtualizacin. Surgi de nuevo el trmino de consolidacin de almacenamiento, recorriendo el camino inverso desde un disco duro por persona a un disco duro para todos. En el presente, la virtualizacin ha llegado al escritorio, lo que ha hecho que incremente exponencialmente de nuevo su popularidad y esto provoque que sea una de las tecnologas ms innovadoras del momento debido a las notables ventajas que supone su aplicacin. Uno de los hechos que justifican esto es que prcticamente todas las grandes empresas dentro del mundo informtico han desarrollado productos de virtualizacin o han adquirido empresas que los ofrecan. Hoy en da, las empresas disponen de ordenadores con una potencia de clculo muy superior a la de decenas de servidores de hace varios aos. Ahora que el rendimiento no es problema ste consiste en la seguridad, fiabilidad y separacin de privilegios necesaria, es decir, como ocurra hace aproximadamente cuarenta aos en bancos, organizaciones militares y universidades. Estos problemas son ahora las nicas razones para seguir manteniendo servicios separados en diferentes servidores en las empresas.
DOS CONCEPTOS FUNDAMENTALES: MAQUINA VIRTUAL E HIPERVISOR : Veamos con mayor detalle los que han sido considerados los dos conceptos ms importantes en la terminologa de la virtualizacin: mquina virtual e hipervisor. Es fundamental comprender con claridad el papel que juegan cada uno de ellos ya que ello nos permitir acercarnos un poco ms al nivel de abstraccin impuesto por la virtualizacin y su funcionamiento interno. Comenzamos hablando de mquinas virtuales ds conveniente distinguir entre dos contextos muy importantes en los que en la actualidad se ubica el concepto de mquina virtual segn las caractersticas y funcionalidad de la propia mquina podemos hablar bien de mquinas virtuales de hardware o de sistema o bien de mquinas virtuales de proceso o de aplicacin. Las mquinas virtuales de hardware o de sistema, que son las que conforman el corazn del modelo de virtualizacin, son las que corren paralelamente sobre una mquina fsica anfitrin o host, de manera que tienen acceso y hacen uso de los recursos hardware que son abstrados de l. Cada mquina virtual es engaada ya que cree que posee de forma exclusiva los recursos hardware de los que dispone cuando en realidad lo hace de manera virtual, ejecuta una instancia de sistema operativo sobre el que corren determinados servicios o aplicaciones tal y como consideremos necesario. Grficamente se puede observar la diferencia entre un servidor virtualizado y uno sin virtualizacin:
La funcionalidad de este tipo de mquinas virtuales es muy amplia, aunque algunas de las caractersticas ms destacables son la coexistencia de diferentes sistemas operativos, la consolidacin de servidores (virtualizacin de servidores), y la prueba o testeo de proyectos tanto software, como hardware ya que pueden proporcionar arquitecturas de instrucciones (ISA) diferentes a las que implemente la mquina fsica anfitriona. stas son las mquinas virtuales que componen la base de la virtualizacin, junto a la capa software existente debajo de ellas y que permite esta distribucin y administracin de los recursos, el hipervisor (hypervisor en ingls) tambin llamado habitualmente monitor, ya que una de sus funciones fundamentales es la monitorizacin de las mquinas virtuales. Esta capa, que puede correr directamente sobre el hardware de la mquina fsica anfitriona o sobre un sistema operativo anfitrin tambin como otra mquina virtual- ser presentada en este mismo apartado a continuacin. De esta acepcin de mquina virtual brotan todos los proyectos desarrollados que se presentarn bajo el modelo de virtualizacin de plataforma, como Xen, VMware, Hiper-V, Linux V-Server, User-mode Linux, KVM uOpenVZ. Al otro lado se encuentran las mquinas virtuales de proceso o de aplicacin. La primera diferencia es que stas no representan una mquina completa al uso. Son ejecutadas como un nico proceso sobre el sistema operativo y como lo hacen habitualmente los procesos, y adems soportan la ejecucin de tan slo un proceso sobre ellas. Su objetivo fundamental es proporcionar un entorno de ejecucin independiente del hardware y del propio sistema operativo para las aplicaciones que ejecutarn; stas arrancan la mquina a su inicio y de igual manera la apagan cuando finalizan. Las dos mquinas virtuales de proceso o de aplicacin de mayor importancia en la actualidad son JVM (Java Virtual Machine, entorno de ejecucin para lenguaje Java de Sun Microsystems) y CLR (Common Language Runtime, entorno de ejecucin para la plataforma .NET de Microsoft, ya citadas anteriormente). El hipervisor ohypervisor es un pequeo monitor de bajo nivel de mquinas virtuales que se inicia durante el arranque, antes que las mquinas virtuales, y que normalmente corre justo sobre el hardware (denominado en alguna bibliografa como native o baremetal) como podemos observar en la figura que se muestra a continuacin, aunque tambin lo puede hacer sobre un sistema operativo (llamado en este caso hipervisor hosted)
Como podemos imaginar esta capa adicional de virtualizacin no es usada en todos los modelos y soluciones existentes: es incluida en tcnicas de virtualizacin completa y paravirtualizacin, aunque tradicionalmente ha sido identificado ms con soluciones de paravirtualizacin. Proporciona dos funcionalidades bsicas: Identifica, capta, maneja y responde a operaciones de CPU e instrucciones privilegiadas o protegidas emitidas por las mquinas virtuales. Maneja el encolado, envo y devolucin de resultados de peticiones de acceso a los recursos hardware instalados en el host anfitrin por parte de las mquinas virtuales. Como se muestra en la figura anterior, el sistema operativo corre sobre el hipervisor tal y como lo hacen las mquinas virtuales, el cual puede comunicarse con el hipervisor y cuyo objetivo fundamental es la gestin y administracin de las instancias de las mquinas virtuales, por lo que lo habitual es que incluya diversas herramientas de gestin y monitorizacin, funcionalidad que puede ser tambin extendida con otras que deseemos instalar por cuenta propia. El hipervisor es utilizado como capa de virtualizacin en los modelos virtualizacin completa y paravirtualizacin independientemente de la existencia y uso de hardware con soporte de virtualizacin especfico. La paravirtualizacin es el modelo basado en hipervisor ms popular debido a que introduce cambios en los sistemas operativos invitados permitindoles la comunicacin directa con el hipervisor, mejorando as el rendimiento ofrecido y no introduciendo penalizaciones adicionales a la emulacin usada en otros modelos como la virtualizacin completa. Cualquiera de los modelos basado en hipervisor slo podr gestionar mquinas virtuales con sistema operativo, libreras y utilidades compiladas para el mismo hardware y juego de instrucciones que el de la mquina fsica. El que el sistema operativo de la mquina virtual deba ser modificado o no ya depender de si hablamos de paravirtualizacin o virtualizacin completa.
MODELOS DE VIRTUALIZACION
En nuestros das muchos conceptos y tecnologas son englobados bajo el paradigma de la virtualizacin, en ocasiones de manera errnea y en otras acertada. Y es que comparando todos en ocasiones o son prcticamente iguales o no tienen ninguna similitud, lo que puede provocar en el usuario confusin y que no llegue a comprender fielmente qu es lo que puede ofrecer cada solucin. No es correcto mezclar por ejemplo los conceptos emulacin, simulacin, virtualizacin o paravirtualizacin en el mismo paquete. A continuacin se intentar arrojar un poco de luz en este aspecto y plantear todo el entramado con mayor claridad. De manera general se puede decir que virtualizacin es el efecto de abstraer los recursos de un computador, proporcionar acceso lgico a recursos fsicos. La virtualizacin separa de manera lgica la peticin de algn servicio y los recursos fsicos que realmente proporcionan el servicio. Dependiendo del recurso que se
abstraiga, que puede ser un recurso individual almacenamiento, red- o bien una plataforma - un servidor, mquina- completa, y de por quin sea usado ese recurso, atenderemos entonces a distintos modelos de virtualizacin. Por ejemplo, en el caso de que mediante algn mecanismo un sistema hardware completo sea abstrado de forma que pueda ser usado por diferentes instancias de sistemas operativos (y sus respectivas aplicaciones) de forma que stas tengan la ilusin de que poseen los recursos de manera exclusiva y no compartida, estaremos hablando de un tipo de virtualizacin concreto, virtualizacin de plataforma, en el que el recurso que se abstrae es un servidor completo hardware y estamos virtualizando (disponen de algn tipo de recurso de forma virtual, aunque no sean conscientes) diferentes instancias de diferentes sistemas operativos. Por lo tanto, es importante distinguir para entender con mayor claridad la virtualizacin entre dos conceptos como son el recurso virtual que se abstrae y el ente (aplicacin, sistema operativo, mquina) que, virtualizado, dispone de ese recurso. Dependiendo de ambos trminos, al unirse, hablaremos de un modelo de virtualizacin distinto. Teniendo en mente todo esto, podemos distinguir cuatro modelos principales de virtualizacin:
1.
Virtualizacin de plataforma:
El recurso abstrado es un sistema completo, por ejemplo un sistema o servidor. En trminos generales consiste en la abstraccin de todo el hardware subyacente de una plataforma de manera que mltiples instancias de sistemas operativos puedan ejecutarse de manera independiente, con la ilusin de que los recursos abstrados les pertenecen en exclusiva. Esto es muy importante, ya que cada mquina virtual no ve a otra mquina virtual como tal, sino como otra mquina independiente de la que desconoce que comparte con ella ciertos recursos. Este es un modelo especialmente a tener en cuenta, ya que es el aplicado para lo que se llama consolidacin de servidores. La virtualizacin o consolidacin de servidores puede verse como un particionado de un servidor fsico de manera que pueda albergar distintos servidores dedicados (o privados) virtuales que ejecutan de manera independiente su propio sistema operativo y dentro de l los servicios que quieran ofrecer, haciendo un uso comn de manera compartida y aislada sin ser conscientes del hardware subyacente. Los distintos tipos y paradigmas de virtualizacin de plataforma existentes, que son los siguientes:
podrn ser ejecutadas mquinas virtuales cuyo sistema operativo, utilidades y aplicaciones hayan sido compiladas para hardware y juego de instrucciones diferentes al de la mquina fsica anfitriona, en caso contrario no. Algunos ejemplos de soluciones de este tipo sonVMware Workstation, Parallels Desktop, Sun xVM VirtualBox, VMware Player, y Microsoft Virtual PC.
b. Emulacin:
Un emulador que replica una arquitectura hardware al completo procesador, juego de instrucciones, perifricos hardware- permite que se ejecuten sobre l mquinas virtuales. Por lo tanto se permite la ejecucin de sistemas operativos y aplicaciones distintos al instalado fsicamente en la mquina que ejecuta el emulador. Los emuladores ms importantes actualmente son Bochs, MAME, DOSBox, Hercules, MESS, VirtualPC, y Qemu.
c. Virtualizacin completa:
Tambin llamada nativa. La capa de virtualizacin, un hipervisor, media entre los sistemas invitados y el anfitrin, la cual incluye cdigo que emula el hardware subyacente si es necesario- para las mquinas virtuales, por lo que es posible ejecutar cualquier sistema operativo sin modificar, siempre que soporte el hardware subyacente. El cdigo de emulacin puede provocar prdida en el rendimiento. Puede hacer uso de soporte hardware especfico paravirtualizacin y as mejorar su rendimiento. Sin duda dentro de esta categora podemos encontrar algunas de las soluciones ms importantes sobre virtualizacin junto a las correspondientes a pararvirtualizacin- comoVMware Server, XenServer, z/VM, Oracle VM, Sun xVM Server, Virtual Server, VMware ESX Server, VMware Fusion, Xen, Hyper-V(en algunos casos solo es posible si existe hardware con soporte de virtualizacin).
d. Paravirtualizacin:
Similar a la virtualizacin completa porque introduce hipervisor como capa de virtualizacin, pero adems de no incluir emulacin del hardware, introduce modificaciones en los sistemas operativos invitados que por consiguiente estn al tanto del proceso (deben poder ser modificables). stos cooperan as en la virtualizacin eliminando la necesidad de captura de instrucciones privilegiadas o conflictivas por parte del hipervisor, mejorando el rendimiento hasta obtenerlo casi similar a un sistema no virtualizado (supone ms una ventaja que una desventaja la modificacin de los sistemas operativos invitados). Las libreras y utilidades ejecutadas por las mquinas virtuales deben estar compiladas para el mismo hardware y juego de instrucciones que el de la mquina fsica anfitriona. Puede hacer uso de soporte hardware especfico paravirtualizacin y as mejorar su rendimiento, adems de para la ejecucin de sistemas operativos no modificados ya que este soporte hardware puede manejar operaciones
privilegiadas y protegidas y peticiones de acceso al hardware, adems de comunicarse con y gestionar las mquinas virtuales. Las soluciones ms extendidas e importantes dentro del paradigma de la paravirtualizacin son Xen, Logical Domains, Oracle VM, y Sun xVM Server.
2.
Virtualizacin de recursos:
En este segundo caso el recurso que se abstrae es un recurso individual de un computador, como puede ser la conexin a red, el almacenamiento principal y secundario, o la entrada y salida. Existe un gran nmero de ejemplos dentro de la virtualizacin de recursos, como por ejemplo el uso de memoria virtual, los sistemas RAID(Redundant Array of Independent Disks), LVM(Logical Volume Manager), NAS (Network-Attached Storage)o la virtualizacin de red. Veamos con mayor detenimiento los distintos modelos de virtualizacin de recursos, los recursos que abstraen y las tecnologas y aplicaciones ms notables a clasificar dentro de cada uno:
a. Encapsulacin:
Se trata de la ocultacin de la complejidad y caractersticas del recurso creando una interfaz simplificada. Es el caso ms simple de virtualizacin de recursos, como se puede ver.
b. Memoria virtual:
Permite hacer creer al sistema que dispone de mayor cantidad de memoria principal y que se compone de segmentos contiguos. Como sabemos, es usada en todos los sistemas operativos modernos. Por lo tanto, en este caso el recurso individual que es abstrado es la memoria y disco. Ejemplos conocidos por todos son el espacio Swap utilizados por los sistemas operativos Unix, o las tcnicas de paginado de memoria usadas en sistemas operativos Microsoft.
c. Virtualizacin de almacenamiento:
Abstraccin completa del almacenamiento lgico sobre el fsico (disco y almacenamiento son el recurso abstrado). Es completamente independiente de los dispositivos hardware. Como ejemplos de virtualizacin de almacenamiento tenemos soluciones tan extendidas como RAID (Redundant Array of Independent Disks), LVM (Logical Volume Manager), SAN (Storage Area Network), NAS (Network-Attached Storage), NFS (Network File Systems), AFS, GFS, iSCSI (Internet SCSI), AoE (ATA over Ethernet). d. Virtualizacin de red. La virtualizacin de red consiste en la creacin de un espacio de direcciones de red virtualizado dentro de otro o entre subredes. Es fcil ver que el recurso abstrado es la propia red. Ejemplos bien conocidos de virtualizacin de redson OpenVPN y OpenSwarm, que permiten crear VPNs.
f. Virtualizacin de Entrada/Salida:
Abstraccin de los protocolos de capas superiores de las conexiones fsicas o del transporte fsico. En este caso, los recursos que se abstraen son las conexiones de entrada/salida y transporte. Ejemplo(s): XsigoSystems, 3LeafSystems, y en el futuro lo ser: Cisco Systems, Brocade.
g. Virtualizacin de memoria:
Virtualizaremos bajo este modelo cuando unamos los recursos de memoria RAM de sistemas en red en una memoria virtualizada comn.
3.
Virtualizacin de aplicaciones:
Las aplicaciones son ejecutadas encapsuladas sobre el sistema operativo recurso usado en este tipo de virtualizacin- de manera que aunque creen que interactan con l y con el hardware- dela manera habitual, en realidad no lo hacen, sino que lo hacen bien con una mquina virtual de aplicacin o con algn software de virtualizacin. Este tipo de virtualizacin es usada para permitir a las aplicaciones de caractersticas como portabilidad o compatibilidad, por ejemplo para ser ejecutadas en sistemas operativos para los cuales no fueron implementadas. Debe quedar claro que la virtualizacin es solamente de las aplicaciones, lo que no incluye al sistema operativo anfitrin. Un ejemplo bien conocido es Wine, que permite la ejecucin de aplicaciones de Microsoft Windows virtualizadas correr sobre GNU/Linux, dentro de lo que son llamadas tcnicas de simulacin. Otros ejemplos muy importantes son JVM (Java Virtual Machine, entorno de ejecucin para lenguaje Java de Sun Microsystems) y CLR (Common Language Runtime, entorno de ejecucin para la plataforma .NET de Microsoft). Podemos diferenciar adems entre los dos siguientes tipos de virtualizacin de aplicaciones:
operativo. Ejemplos utilizados en la mayora de los sistemas son Java Virtual Machine, Common Language Runtime, Mono, LLVM, Portable .NET, Perl Virtual Machine, Citrix XenApp,
b. Simulacin:
Reproduccin del comportamiento de una aplicacin concreta o una funcionalidad especfica de una aplicacin. Ahora, el recurso que se abstrae es la API (Application Program Interfaces) del sistema operativo, o cualquier interfaz. Antes ya se coment Wine como ejemplo de este modelo de virtualizacin de aplicaciones, adems disponemos de Crossover office, coLinux, Zebra, o Quagga.
4.
Virtualizacin de escritorio:
Consiste en la manipulacin de forma remota del escritorio de usuario (aplicaciones, archivos, datos), que se encuentra separado de la mquina fsica, almacenado en un servidor central remoto en lugar de en el disco duro del computador local. El escritorio del usuario es encapsulado y entregado creando mquinas virtuales. De esta forma, es posible permitir al usuario el acceso de forma remota a su escritorio desde mltiples dispositivos, como pueden ser computadores, dispositivos mviles, etc. Por lo tanto, en este caso el recurso que se abstrae es el almacenamiento fsico del entorno de escritorio del usuario como usuarios, no somos conscientes del lugar fsico en el que se encuentra nuestro escritorio, simplemente tenemos acceso a l-. Ejemplos muy importantes de soluciones que trabajan con virtualizacin de escritorio son Wyse Technology, VMware View, Sun VDI, vDesk de Ring Cube, XenDesktop de Citrix, vWorkspace de Quest Software, o ThinLinc de Cendio.
virtualizacin, ya que la construccin de un data center puede llegar a costar del orden de unos7 millones de euros.
ao, y al mismo tiempo que su fiabilidad y rendimiento se mantengan elevados e inalterables. En un escenario as, sumado al hecho de que dispongamos servidores cuyos recursos se encuentran infrautilizados, se hace an ms patente la necesidad de aplicar alguna tcnica de virtualizacin. Por ejemplo, en los casos ms habituales en los que caractersticas de alto rendimiento y/o alta disponibilidad son implementadas son necesarias mquinas o servidores adicionales, bien para situar servicios a la espera la cada de otros o bien para la distribucin de carga, por ejemplo. Como se puede intuir, tanto las mquinas primarias que sirven los servicios como estas mquinas adicionales pueden ser integradas en una infraestructura virtual de forma que no necesitemos adquirir nuevos sistemas ni hardware adicional, al mismo tiempo que consolidamos los servidores en un nico servidor fsico anfitrin cuyo porcentaje de utilizacin aumentar. Resumiendo, usando consolidacin de servidores nos otorga la posibilidad de cambiar el modelo de gestin de nuestros data centers reduciendo costes en todos los sentidos, nmero de servidores fsicos, la infrautilizacin de su capacidad y recursos, energa, espacio, y administracin asociada. Adems, y como vamos a ver a continuacin, la virtualizacin adems aade una serie de funcionalidades en la administracin de sistemas cuyas ventajas son innumerables, como por ejemplo la migracin en caliente de mquinas virtuales, la cual bien por motivos de mantenimiento, o balanceo de carga, alta disponibilidad y alto rendimiento, nos permite migrar una mquina virtualsu memoria, sistema operativo, y aplicaciones- de un servidor fsico de un clster a otro servidor fsico dentro del mismo clster o incluso a otros data centers incluso, situados en continentes distintos-. A continuacin se exponen las ventajas derivadas del uso de la virtualizacin, tanto las comentadas anteriormente como otras:
1.
Consolidacin de servidores:
Quizs una de las caractersticas ms notables del uso de la virtualizacin y el hecho por el cual se encuentra en continua expansin en el mundo empresarial informtico. En s, consolidar servidores consiste en reducir el nmero de los mismos al mismo tiempo que aumenta el porcentaje de su utilizacin. Al consolidar servidores, se permitir usar despliegues ms modulares y escalables y centralizar su administracin, notablemente simplificada. Como veremos, muchas de las ventajas restantes de la virtualizacin derivan del hecho de consolidar servidores.
2.
ejemplo: la virtualizacin de escritoriopuede simplificar enormemente el despliegue de nuevos sistemas reduciendo la cantidad de software que se requiere sea instalado localmente; sin duda incrementando la centralizacin de recursos compartidos y estandarizando el proceso de despliegue de sistemas puede proporcionar grandes ventajas a los administradores. Siempre hay que recordar que el nmero de mquinas de las que es responsable el administrador siempre ser el mismo; sean fsicas o sean virtuales. Para aprovechar al mximo las ventajas derivadas del uso de la virtualizacin es fundamental mantener la infraestructura lo ms independiente posible de los sistemas fsicos; el propsito de las mquinas fsicas que alojan mquinas virtuales no deber ser otro que exclusivamente ese, y no deben proporcionar servicios externos por ellas mismas.
3.
4.
5.
Reduccin de costes:
La aplicacin de tcnicas de virtualizacin supone el ahorro de costes en prcticamente todos los mbitos, pudiendo destinar esfuerzos y recursos a otros aspectos como la innovacin. Se ahorrar en costes de instalacin, configuracin, monitorizacin, administracin y soporte del servicio, asociados a licencias, del software -usando soluciones software libre como Xencon unos grandes beneficios en rendimiento y un bajo coste-, copias de seguridad, recuperacin, consumo energtico, seguridad tanto a corto como largo plazo, al disponer de escalabilidad y agilidad sostenible. Tambin nos permite ahorrar costes en la adquisicin de nuevo hardware combinando la consolidacin de servidores con una planificacin adecuada de las capacidades para hacer un mejor uso del hardware existente. La virtualizacin tambin puede ayudar en la reduccin de los costes en nuestra infraestructura informtica en cuanto a potencia y requerimientos de refrigeracin; aadir mquinas virtuales a un anfitrin existente no aumentar su consumo. Otros aspectos en los que es posible ahorrar son: costes de acceso remoto y fiabilidad (menos equipos con teclado, video y ratn necesarios), menos conexiones a aparatos suministradores de potencia ininterrumpible los cuales se encontrarn ms liberados y disponibles en tiempos de fallo en el suministro de potencia-, y relacionados con la infraestructura de red: si dependiendo de cmo sea configurado el acceso a la red por parte de las mquinas virtuales, es posible simplificar el cableado de la red y reducir el nmero de hubs y switches necesarios.
6.
7.
diferentes procesadores o cores, haciendo unuso mejor de los recursos de computacin totales disponibles.
8.
Gran escalabilidad:
Crecimiento gil soportado y con gran contencin de costes. Una infraestructura virtual proporciona caractersticas de escalabilidad muy superiores a una fsica tradicional, al tratarse de mquinas virtuales lgicas. Un servidor fsico, podr gestionar ms nmero de mquinas virtuales a medida que disponga de mayores recursos. As, por ejemplo, si en nuestra infraestructura de mquinas virtuales quisiramos integrar un nuevo servidor web, slo tendramos que crear y configurar la mquina virtual correspondiente (si dispusiramos de una preconfigurada, bastara slo con copiarla) en un servidor fsico que ya estuviera funcionando salvo que no tuviramos recursos suficientes en alguno- ahorrando tiempo, espacio, costes de administracin, licencias, instalacin, configuracin. En cambio, si acturamos como siempre lo han hecho las empresas, habra que adquirir un nuevo servidor o, en el mejor de los casos, integrar el servicio con otros diferentes en uno mismo.
9.
10.
hardware sobre el que corre la solucin de virtualizacin; en el caso en el que queramos ejecutar uno que necesite otra arquitectura hardware diferente, haremos uso de una solucin de virtualizacin que integre emulacin, como Qemu.
11.
12.
13.
Prueba y depuracin:
Fcil establecimiento de entornos virtuales iguales a los reales en los que realizar prueba y depuracin de sistemas operativos, aplicaciones, sin las consecuencias que lgicamente eso tendra en un entorno fsico real. Tambin, por ejemplo, una aplicacin muy importante es la prueba y depuracin de software que se desarrolla para correr sobre sistemas y arquitecturas hardware an no desarrolladas ni fabricadas, y que s estarn disponibles en el futuro, no teniendo que esperar a que ello ocurra para su prueba. Hay que considerar antes qu solucin de virtualizacin es ms apropiada para el conjunto de pruebas y tests que vayamos a desarrollar, por ejemplo soluciones basadas en hipervisor no suelen ser muy recomendadas para la depuracin de drivers de hardware debido al propio hecho de introducir el nivel adicional de operacin y acceso al hardware.
14.
Seguridad y aislamiento:
La virtualizacin puede proporcionarnos mayores niveles de seguridad y aislamiento, y a un coste menor. Tenemos la posibilidad de proteger aplicaciones y sistemas operativos aislndolos en mquinas virtuales que son totalmente independientes entre s y con el hipervisor o sistema anfitrin. Cada una de las mquinas virtuales tiene un acceso en modo supervisor nico, por lo que un ataque de seguridad que logre acceder a una aplicacin o sistema operativo de una de las
mquinas afectar sola y exclusivamente a la mquina en la que ocurri el fallo de seguridad, y no en el resto de mquinas ni en el anfitrin por lo que no los comprometer. Esto es beneficioso tanto para empresas como a nivel de usuario particular.
15.
16.
17.
18.
Personalizacin:
En el caso de las soluciones de virtualizacin que son software libre, como Xen, KVM, Qemu, stas pueden ser personalizadas y extendidas para alcanzar los requisitos necesarios especficos.
19.
20.
21.
Flexibilidad:
Las caractersticas hardware y software de las mquinas virtuales son totalmente configurables a nuestro gusto. As, podemos crear servidores virtuales con RAM, CPU, disco, y red que estrictamente necesitemos. Gran flexibilidad en el reparto de recursos del sistema anfitrin entre las mquinas que aloja. Esta flexibilidad se ve aumentada por el hecho de la posibilidad de asignacin de determinados dispositivos de manera exclusiva a ciertas mquinas virtuales segn nuestros intereses. Por ejemplo, si dispondremos de un servidor que deber soportar una gran cantidad de trfico de red podremos asignar a su mquina virtual de manera exclusiva una de las tarjetas de red disponibles fsicamente en el servidor anfitrin.
22.
Gran agilidad:
La creacin de mquinas virtuales es un proceso que se puede llevar a cabo con gran rapidez e incluso se puede automatizar. Disponiendo incluso de mquinas virtuales pre configuradas, podemos poner en funcionamiento servidores con un simple clic o ejecutando tan slo un comando. Esto nos posibilita tambin ganar en rapidez ante cambios bajo demanda, para realizar mejoras, impuestos por el modelo de negocio.
23.
Portabilidad, migracin:
Incrementando el aislamiento de las mquinas virtuales de hardware fsico especfico aumenta la disponibilidad de los sistemas aumentando la portabilidad de las mquinas virtuales, permitindoles ser migradas. La migracin de mquinas virtuales es un proceso transparente al usuario al mismo tiempo que transparente a cualquiera de los procesos que se encuentren corriendo en las mquinas virtuales. Portar mquinas virtuales entre distintos servidores fsicos es muy sencillo. Mecanismos de migracin en parada o en caliente aparte, podemos portar mquinas virtuales simplemente copiando los archivos de configuracin que definen las mismas o los ficheros/imgenes que constituyen sus discos, de un tamao que permite usar dispositivos de almacenamiento USB, discos duros externos.
24.
Automatizacin:
Existen herramientas de automatizacin que permiten fijar mtricas comunes (por ejemplo sobre rendimiento) de las mquinas virtuales y que pueden llegar a reconfigurarlas si es necesario para cumplir con las condiciones expuestas. Por ejemplo, se puede asignar dinmicamente mayor CPU a una mquina que lo precise para cumplir unos determinados tiempos de respuesta, tomando CPU de otra mquina que tenga menos carga o migrndola a un servidor con mayor CPU disponible. As, la infraestructura virtual est altamente ligada con el negocio.
25.
Cola unificada:
Trato de los servidores como una cola unificada de recursos, tratando de esta forma los servidores de que dispongamos ganaremos en agilidad, consistencia y efectividad en el proceso de administracin de sistemas.
No sera recomendable entrar a valorar solamente las ventajas que puede aportar la adopcin de infraestructuras virtuales en lugar de las usadas tradicionalmente. Antes de aplicar tcnicas de virtualizacin es completamente necesario y debe ser considerado de obligatoriedad tener en cuenta las posibles desventajas que pueden surgir de su implantacin; algunas de ellas podran condicionar el plantear si finalmente llevar a cabo nuestro proyecto de virtualizacin o no. A pesar de ello, no debemos temer el encontrarnos con grandes dificultades y barreras que nos impidan virtualizar; debemos poner en una balanza las ventajas y desventajas que pueden aparecer en nuestro caso particular, teniendo en cuenta la variedad de posibilidades y modelos de virtualizacin disponibles. Presentamos a continuacin las desventajas ms habituales que suelen aparecer cuando virtualizamos:
1.
Prdida de rendimiento:
Como es normal, la ejecucin de un sistema operativo y de aplicaciones en una mquina virtual nunca ofrecer un rendimiento igual y mucho menos superior
al obtenido con la ejecucin directamente sobre el servidor fsico. Como sabemos, algunas soluciones introducen capas intermedias como son los hipervisores, que capturan las llamadas de las mquinas virtuales, gestionan su acceso concurrente a los recursos fsicos y las monitorizan. Por lo general, una aplicacin que corre en una mquina virtual lo hace de maneras ms lenta a como lo hara en una mquina fsica directamente, aunque recientemente se estn obteniendo performances cercanas al rendimiento nativo de los sistemas anfitriones (ms con paravirtualizacin que con virtualizacin completa). La prdida en rendimiento depende por lo general de tres factores: la aplicacin en s, la tecnologa de virtualizacin utilizada, y la configuracin del hipervisor. Aplicaciones con un gran volumen de operaciones de entrada y salida experimentan peor rendimiento.
2.
3.
4.
5.
sobre una mquina virtual. Hay alguna excepcin (como puede ocurrir con VMware Fussion o Parallels, que soportan algunas versiones de OpenGL o DirectX), pero conviene comprobar en primer lugar su rendimiento.
6.
7.
8.
9.
Portabilidad condicionada:
La portabilidad de las mquinas entre distintas plataformas est condicionada por el software de virtualizacin que elijamos. Dependiendo si elegimos soluciones sobre GNU/Linux, MacOS, Windows, para nuestro sistema anfitrin tendremos unas posibilidades u otras para esta portabilidad. Puede que en un futuro sea un requisito indispensable esta portabilidad y migracin de las mquinas virtuales, por lo que debe ser planificado y estudiado con antelacin.
10.
11.
12.
13.
planificar el uso futuro de los recursos por parte de las mquinas virtuales. Debemos pensar dinmicamente, ya que el uso de los recursos ser cambiante: por temas de carga de trabajo, al disponer de un mayor o menor nmero de mquinas, si las mquinas son portadas entre distintos servidores al implementar migraciones, hacen que sea extremadamente importante la monitorizacin de los recursos de procesamiento, memoria, red, capacidad.
14.
15.
16.
con ellas-, o puede que ocurra tambin si usamos al mismo tiempo diferentes soluciones de virtualizacin. Aunque no sea un problema de gran importancia, siempre es bueno tenerlo en mente.
17.
Nuevas problemticas:
Se introducen nuevas problemticas que no existan en los entornos fsicos al virtualizar: por ejemplo, debemos conocer en cada momento qu mquinas se encuentran arrancadas en cada servidor fsico de las que aloja, o si hay mquinas que pueden ejecutarse en varios servidores fsicos en cual se encuentran en funcionamiento en cada momento, si es necesario migrar mquinas para balanceo de carga, otra problemtica es la convivencia en la monitorizacin tanto de servidores fsicos habituales como de servidores virtuales. Lo mismo ocurre si disponemos de diversas tecnologas de virtualizacin: deben ser gestionadas centralizadamente y de una manera transparente, lo ms homognea posible.
18.
VirtualBox:
Oracle VM VirtualBox es un software de virtualizacin para arquitecturas x86/amd64, creado originalmente por la empresa alemana innotek GmbH. Actualmente es desarrollado por Oracle Corporation como parte de su familia de productos de virtualizacin. Por medio de esta aplicacin es posible instalar sistemas operativos
adicionales, conocidos como sistemas invitados, dentro de otro sistema operativo anfitrin, cada uno con su propio ambiente virtual. Entre los sistemas operativos soportados (en modo anfitrin) se encuentran GNU/Linux, Mac OS X, OS/2 Warp , Microsoft Windows, y Solaris/OpenSolaris, y dentro de ellos es posible virtualizar los sistemas operativos FreeBSD, GNU/Linux, OpenBSD, OS/2 Warp, Windows, Solaris, MS-DOS y muchos otros. La aplicacin fue inicialmente ofrecida bajo una licencia de software privativo, pero en enero de 2007, despus de aos de desarrollo, surgi VirtualBox OSE (Open Source Edition) bajo la licencia GPL 2. Actualmente existe la versin privativa Oracle VM VirtualBox, que es gratuita nicamente bajo uso personal o de evaluacin, y est sujeta a la licencia de "Uso Personal y de Evaluacin VirtualBox" (VirtualBox Personal Use and Evaluation License o PUEL) y la versin Open Source, VirtualBox OSE, que es software libre, sujeta a la licencia GPL. VirtualBox ofrece algunas funcionalidades interesantes, como la ejecucin de mquinas virtuales de forma remota, por medio del Remote Desktop Protocol (RDP), soporte iSCSI, aunque estas opciones no estn disponibles en la versin OSE. En cuanto a la emulacin de hardware, los discos duros de los sistemas invitados son almacenados en los sistemas anfitriones como archivos individuales en un contenedor llamado Virtual Disk Image, incompatible con los dems softwares de virtualizacin. Otra de las funciones que presenta es la de montar imgenes ISO como unidades virtuales pticas de CD o DVD, o como un disquete.Tiene un paquete de controladores que permiten aceleracin en 3D, pantalla completa, hasta 4 placas PCI Ethernet (8 si se utiliza la lnea de comandos para configurarlas), integracin con teclado y ratn.
Sistema operativo invitado compatible: o Windows XP La caracterstica Aplicaciones virtuales es compatible nicamente con Windows XP Service Pack 3 (SP3) Professional. o Windows Vista La caracterstica Aplicaciones virtuales es compatible nicamente con Windows Vista Enterprise y Windows Vista Ultimate. o Windows 7 La caracterstica Aplicaciones virtuales es compatible nicamente con Windows 7 Enterprise y Windows 7 Ultimate.
Redireccin de impresoras
Los usuarios pueden imprimir directamente en la impresora asociada desde la aplicacin de conexin directa o la mquina virtual.
VMware
VMware para usuarios de escritorio viene en dos principales formas: VMware Player y VMware Workstation. VMware Player es una solucin gratuita dirigida a los usuarios ocasionales que necesitan crear y ejecutar mquinas virtuales, pero no necesitan soluciones de avanzada a nivel de empresa. VMware Workstation incluye todas las caractersticas de VMWare Player, la creacin de mquinas virtuales fciles, la optimizacin del hardware, y aade la capacidad de clonar mquinas, tomar varias instantneas del sistema operativo invitado, y repetir los cambios realizados en la misma mquina virtual, muy til para pruebas de software. Funciona bajo los siguietes sistemas operativos: Windows/Linux, el precio es el siguiente Bsico: Gratis, Premium: $189 VMware es similar a su homlogo Virtual PC, aunque existen diferencias entre ambos que afectan a la forma en la que el software interacta con el sistema fsico. El rendimiento del sistema virtual vara dependiendo de las caractersticas del sistema fsico en el que se ejecute, y de los recursos virtuales (CPU, RAM, etc.) asignados al sistema virtual. Mientras que VirtualPC emula una plataforma x86, Vmware la virtualiza, de forma que la mayor parte de las instrucciones en VMware se ejecutan directamente sobre el hardware fsico, mientras que en el caso de Virtual PC se traducen en llamadas al sistema operativo que se ejecuta en el sistema fsico.