Virtualizadores o convierte tu computadora en varias.
Pues quebrándome el seso para ponerle título al artículo de virtualizadores, terminé con el que intitula esta nota. Bueno antes que nada imagina que puedes partir tu computadora y convertirla en varias computadoras útiles, mmmmmm, wow me imaginé tu rostro tratando de entender esto. Si, hablo de que tu computadora se puede convertir en varias computadoras independientes de modo virtual. Con virtual me refiero a que no se reproducen los fierros de tu computadora, simplemente es posible que a través de la red o a través de 2 teclados y 2 monitores puedas usar la misma PC y los usuarios verían máquinas diferentes con direcciones y nombres distintos (me imaginé una computadora preñada dando a luz unas pequeñas cajas bebes como ocurre en la película de Robots, pero bueno prosigo luego de desvariar un poco).Te preguntarás ¿para qué quiero tener dos o más computadoras en una? ya tengo bastante con una y que saturo con mi música mi procesador de textos, al tiempo que navego por internet y veo videos, mientras se descargan los correos y juego…… bueno pues tienes razón, no es una buena idea para todos. Es una aplicación que ha encontrado su aplicación en algunas áreas:
- Desarrolladores de Software que requieren usar herramientas de Windows y Linux además de probar sus desarrollos en varios equipos.
- Servidores que son “sub-utilizados” en los centros de cómputo. Cuando se usan aplicaciones para empresas, un porcentaje grande son aplicaciones de legado o viejitas que requieren usar toda la computadora solo para ellos aunque no usen toda su capacidad provocando un promedio de uso de los servidores de un Centro de Cómputo del 30% (esto yo lo viví cuando tenía a mi cargo centros de cómputo).
- Ociosos como yo que buscamos usar las aplicaciones de diversas formas. Para ejemplo ver la nota anterior sobre “Centros de Cómputo Virtual o VDCenters“
A estos sistemas que permiten poner varios sistemas operativos en una sola máquina se les llama “Virtualizadores” pero me concentraré en equipos o PCs basados en procesadores Intel o compatibles.
Los virtualizadores han evolucionado y hoy en día ya tenemos varios productos “maduros”. Incluso desde el mismo diseño de los procesadores hoy dichos procesadores brindan ya mucha ayuda a este proceso, la laptop desde donde estoy escribiendo es de doble-núcleo (double-core), eso significa que tiene 2 procesadores dentro de la misma cajita negra. Hoy día se agregan más y más procesadores o núcleos a los procesadores. Apple recientemente anunció una Mac con 8 núcleos. En el esquema más sencillo o simple de explicar si tengo 8 núcleos puedo partir su uso en 8 computadoras virtuales. Sin embargo esta tecnología permite partir el uso de un solo núcleo en varios equipos (es posible partir un procesador de 3Ghz en más de 4 equipos virtuales), de tal forma que un solo equipo de 8 núcleos podría convertirse por si solo en todo un centro de cómputo de 8×4=32 equipos, siempre y cuando tuviera suficiente memoria y disco duro.
Productos o virtualizadores
Un máquina virtual es llamada también “hypervisor” y fueron creadas a los principios de los 70 para ayudar la sub-utilización de grandes equipos de IBM, HP y otros grandes servidores. Sin embargo los productos que nos interesa mencionar son los que usan procesadores x86 o compatibles con Intel.
La tecnología funciona diferente en distintas plataformas. Hace unos años una empresa llamada Connectix vendió Virtual-PC a Microsoft en 2003. El cual permitía virtualizar en una sola computadora varios ambientes Windows. Este proyecto fue inicialmente diseñado en 1997 para que en ambientes Mac de Apple poder ejecutar Windows , sin embargo también desarrollaron para OS/2, RedHat Linux y Windows.
Sin embargo otros productos tenían una presencia más sólida en el mundo Linux que era VMware el cual es el producto de mayor penetración y mayor solidez. La empresa fue fundada en 1998. Se posicionaron con dos productos uno para servidores y otro para desarrolladores. Con la aparición de un competidor incómodo llamado Xen tuvieron que adaptarse y finalmente es posible para ciertas aplicaciones el empleo de una versión VMware gratuita o freeware.
Un proyecto que surgió de las entrañas de la Universidad de Cambridge fue Xen el cual apareció como un proyecto de “Software Libre” que puso su código al mundo en 2003. La razón de ser un producto de software libre cambió las reglas en el mercado. Xen añadió una nueva tecnología para virtualizar de modo que en ambientes Linux lograba ser mucho más eficiente que cualquier otra tecnología. Esta nueva tecnología es conocida como “Paravirtualización“. En su versión 3 ya logró soportar Windows en su ambiente. El problema que tuvo es que Windows no puede ser “paravirtualizado” pues es de “Código Cerrado” de modo que la eficiencia encontrada para Linux respecto a VMware se equilibraba con Windows por requerir un esquema normal de “hypervisor” (se creo una versión especial de Windows XP para Xen pero Microsoft prohibió su lanzamiento).
Otro sistema que permite una virtualización menos compleja pero igualmente accesible como “Software Libre” es VirtualBox, el cual es ideal para curiosos y desarrolladores. Ese sistema puede instalarse en Windows y virtualizar otros windows y/o Linux, o aún mejor instalarlo en Linux como base y sobre el instalar Windows y/o Linux, la ventaja de esta segunda opción es que es posible correr las ventanas de windows sobre el ambiente gráfico de Linux viendose totalmente integradas como si fueran aplicaciones de Linux. La desventaja de VirtualBox es que solamente es un “Hypervisor nivel 2” lo cual explicamos adelante. La ventaja es que si tienes Windows o Ubuntu por ejemplo lo puedes instalar de inmediato. Escribiré un artículo describiendo el proceso para Ubuntu más adelante, pero si quieres intentarlo es extremadamente simple y rápido.
KVM hizo su debut dentro del último Kernel de Linux (versión 2.6.20) son iniciales que significan “Máquina Virtual basada en el Kernel”. Las ventajas de KVM es que permiten la virtualización aprovechando las nuevas funciones que ya tienen interconstruidas los nuevos procesadores Intel VT o AMD-V. Linux no tiene que hacer casi nada para poder virtualizar varios equipos, dado que el hardware hace el trabajo parecido a la paravirtualización, pero sin requerir cambios ni recompilaciones del Sistema Operativo para poder “virtualizarlo”. La aparición de KVM que está aun en etapas iniciales puede provocar fuertes cambios y afectar a toda la industria de virtualización, especialmente a aquellos que aún piensan que el esquema de “licencias” es viable. KVM requiere usar otro producto llamado QEMU que ya permite virtualizar otros sistemas operativos pero tiene una función muy poderosa para crear imágenes de disco que la máquina virtualizada ve como un disco para instalarse y operar.
Varios de los productos han generado variantes para abarcar más mercado de modo que la paravirtualización, por ejempo, no es exclusiva de Xen.
Hyperevisor
Un Hypervisor es una tecnología que permite utilizar, al mismo tiempo, diversos sistemas operativos (sin modificar) en una misma computadora. Los Hypervisores pueden clasificarse en dos tipos:
- Hypervisor tipo 1: Nativo u unhosted (sin anfitrión) o que se ejecuta directo con la máquina (sin intermediación), es software que se ejecuta directamente sobre el hardware, para ofrecer la funcionalidad del windows o linux.
- Hypervisor tipo 2: También denominado hosted (con anfitrión), es software que se ejecuta sobre un sistema operativo intermediario para ofrecer la funcionalidad del windows o linux.
Paravirtualización
Es una técnica de virtualización que presenta una interfaz de software a “Máquinas Virtuales” que son semejantes al equipo en el que corren. Es decir es una pequeña capa de software que se hace pasar por hardware ante el sistema operativo que instalas. Esto requiere que el sistema operativo que instalas tiene que ser una versión especial para ese “hardware” simulado, lo cual es simple cuando se trata de sistemas operativos abiertos como BSD o Linux, pero casi imposible para sistemas cerrados o propietarios como Windows.
¿Qué se sacrifica cuando virtualizo una PC?
Sin duda si virtualizo una PC en 2 no se obtiene dos equipos con una capacidad del 50% del equipo inicial sino menos. Esto se debe a que no es 100% eficiente la tecnología de virtualización. Es necesario que “el virtualizador” administre los recursos para ambos equipos lo cual necesariamente provoca pérdidas de tiempo dejando disponible un 20% menos de capacidad. Esto significa que un equipo que puede trabajar al 100% al convertirlo en dos obtengo 2 equipos del 40% perdiendo en el proceso 20% de capacidad. Sin embargo es tal la capacidad y potencia del hardware actual que no ha sido igualado por el software actual que no siempre será una pérdida percibible. En el caso de la paravirtualización las penalizaciones son muy bajas y por ello es más eficiente comparado con el 20% de los esquemas normales, este esquema sacrifica entre el 2% y el 8%.
¿Donde no aplica el uso de esta tecnología?
Un ejemplo que muchos seguro han pensado es si podrían una computadora convertirla en varias computadoras para la casa y la respuesta “generalmente” es un no. Cuando se virtualiza un equipo generalmente se pierden algunas funciones como el uso de una tarjeta de video para juegos, cuando se requiere usar “hardware” especializado. No siempre será posible conectar dos o más monitores a la misma máquina y no es trivial conectar varios mouse y teclados (si es posible pero no tan simple).
Si las funciones a emplear es “Navegar por Internet”, “ver Correos”, “ver Fotos” y “usar Mensajería instantánea”, entonces será muy factible si emplear un equipo así en casa. Si se quiere algo más sofisticado como ofrece el proyecto Edubuntu, donde se tiene un gran servidor que ofrece su capacidad a muchos equipos delgados, entonces si aplicará esta tecnología.
los mejores virtualizadores podrian ser vm ware por su sistema y gran ventaja que nos podria dar
quiero porner un ciber de 8 computadoras pero quiero que trabaje con una sola maquina que me recomiendas que piezas puedo utilizar y que sistema es mas factible
Hola Miguel, llego algo tarde a responderte. No existe una sola respuesta a lo que quieres hacer, el problema de un Ciber es que la gente “quiere usar Windows, Internet Explorer y Office”, si no es una restricción puedes usar Linux, Chrome/Firefox y LibreOffice.
En una máquina central puedes usar XenServer (si eres técnico) sino eres tan técnico pon Ubuntu Server que ya cuenta con algo de virtualización y LTSP (Linux Terminal).
Si quieres un poco de caos puedes poner “cualquier sistema operativo en el server” e instalar VirtualBox y generar sesiones remotas en los escritorios a este (no suena muy bien).
Otra opción que probablemente es la que yo exploraría sería poner Zentyal con sus módulos de Infrastructure (ver http://doc.zentyal.org/en/ ). Ya tiene LTSP o Virtualización usando KVM o VirtualBox, pero es muy amistoso.