sábado, octubre 04, 2008







VMware es un programa de virtualización, es el más conocido para virtualizar sistemas operativos en un equipo.

El 9 de febrero de 1999 VMware
introdujo el primer producto de virtualización x86, llamado "Mware
Virtual Plataform", basado en una investigación anterior realizada por
sus fundadores en la Universidad de Stanford.
VMware pidió una patente para su técnica en octubre de 1997, que fue
concedida con el número 6.397.242 el 28 de mayo de 2002. VMware y otros
programas de virtualización similares deben emplear técnicas muy
sofisticadas para virtualizar la ejecución de ciertas instrucciones.
Estas técnicas producen un deterioro en el rendimiento cuando se
comparan con una máquina virtual ejecutándose en una arquitectura
virtualizable nativamente, como IBM System/370 o Motorola MC68020.


Kevin Lawton emprendió el proyecto Plex86 (originalmente llamado "freemware") para crear una implementación libre
para x86. Su proyecto cambió para soportar sólo Linux como sistema
operativo huésped, pero antes de que Lawton publicara el documento Running multiple operating systems concurrently on an IA32 PC using virtualization techniques,
que analiza los aspectos de la arquitectura x86 que son difícilmente
virtualizables y las técnicas que pueden solventar tales dificultades.


Microsoft ofrece dos productos de virtualización basados en Windows, Microsoft Virtual PC y Microsoft Virtual Server, basados en tecnología que adquirieron de Connectix.


Los esfuerzos de investigación recientes buscan proporcionar
virtualización de alto rendimiento en la arquitectura x86 presentando
una interfaz que difiere de la del hardware en crudo. Los sistemas
operativos son portados para ser ejecutados en esta interfaz, que no
emplea las partes difícilmente virtualizables del conjunto de
instrucciones de x86. Esta técnica se conoce como paravirtualización. Los sistemas de desarrollo Denali, L4 y Xen emplean esta técnica para ejecutar versiones modificadas de varios sistemas operativos.


 http://www.vmware.com/

viernes, octubre 03, 2008

Windows Server Virtualization


Windows Server Virtualization utiliza el concepto de hypervisor micro-kernelizado, evolución del diseño de hypervisor monolítico que, de la mano de las nuevas tecnologías de AMD (AMD-V) e Intel (Intel VT), posibilita la virtualización asistida por hardware gracias a la introducción de un anillo de protección dentro de la arquitectura del microprocesador, denominado Anillo -1. Este actúa independientemente del kernel del sistema operativo (Anillo 0) y permite que los diversos sistemas operativos de las máquinas virtuales puedan ejecutar operaciones de Anillo 0 sin afectar a otras o incluso al sistema operativo del Host. Con ello se facilita el aislamiento de las máquinas virtuales necesario para una administración segura y simple, con mayor rendimiento.

A diferencia del modelo monolítico, los drivers de los dispositivos de hardware se reparten en los núcleos de los sistemas operativos de las diferentes máquinas virtuales, lo que permite una mayor flexibilidad en la estructura IT y ayuda a simplificar y aligerar la arquitectura (el driver de hypervisor es más pequeño que el de un mouse), al tiempo que ofrece una superficie de ataque reducida que mejora la confiabilidad de los equipos virtuales basados en Windows Server Virtualization.

Los escenarios donde podrá utilizarse y sacar mejor provecho de esta característica son:

• Consolidación de Servidores: en lugar de desaprovechar varios equipos servidores dedicando cada uno a una carga de trabajo específico, la virtualización permite consolidar estas cargas en un número más reducido e intensificando el uso de los mismos. Esto implica que menos personal maneje estos servidores, menos espacio físico ocupado para los centros de cómputo y una reducción en el consumo de energía. Vale decir, economía y aprovechamiento de recursos que otorgan agilidad al negocio.

• Continuidad del negocio: la fragmentación de las cargas de trabajo en diferentes máquinas virtuales previene que el rendimiento de las aplicaciones sea afectado por otras. Como los sistemas operativos y las instancias de las aplicaciones se conservan en archivos de datos, la virtualización ayuda a automatizar y racionalizar los procesos de backups, duplicación y movimiento de datos. Acompañado de una estrategia de virtualización holística y herramientas adecuadas, se puede lograr un plan de rápida recuperación ante eventos disruptivos.

Pruebas y desarrollo: simplifica los procesos de pruebas de laboratorio, de nuevas aplicaciones o sistemas operativos y de hardware, asegurando compatibilidad entre los nuevos elementos y la estructura vigente. Al ofrecer el mecanismo que permite modelar diferentes entornos para experimentar con situaciones diversas sin expandir significativamente el hardware o los recursos físicos, facilita la implementación en los sectores involucrados.

• Centro de datos dinámico: transformando el concepto tradicional que establecía que cada capa del ecosistema permanecía estática y era configurada para interactuar y proporcionar soporte para una solución específica, la virtualización contribuye a optimizar el uso de todos los recursos disponibles, independizando cada elemento en función de los otros y convirtiéndolos en servicios que se encuentran disponibles en forma inmediata. Esto facilita la adición, actualización y mantenimiento dinámico de todos los elementos de la infraestructura, agilizando el negocio.


para ampliar la información: www.microsoft.com/latam/technet/articulos/tn/2007/nov07-01.mspx

documente de virtualizaciòn

Virtualización

Una máquina virtual nos permite tener varios ordenadores virtuales ejecutándose sobre el mismo ordenador físico.
En informática, virtualización es un término amplio que se refiere a la abstracción de los recursos de una computadora. Este término es bastante antiguo: viene siendo usado desde antes de 1960, y ha sido aplicado a diferentes aspectos y ámbitos de la informática, desde sistemas computacionales completos hasta capacidades o componentes individuales. El tema en común de todas las tecnologías de virtualización es la de ocultar los detalles técnicos a través de la encapsulación. La virtualización crea un interfaz externo que esconde una implementación subyacente mediante la combinación de recursos en locaciones físicas diferentes, o mediante la simplificación del sistema de control. Un reciente desarrollo de nuevas plataformas y tecnologías de virtualización han hecho que se vuelva a prestar atención a este maduro concepto. De modo similar al uso de términos como “abstracción” y “orientación a objetos”, virtualización es usado en muchos contextos diferentes. En este artículo vamos a ver los usos más comunes de este término, para esto lo dividimos en dos categorías principales:
Virtualización de plataforma que involucra la simulación de máquinas virtuales.
Virtualización de recursos que involucra la simulación de recursos combinados, fragmentados o simples.
Asimismo, el término virtualización es un concepto importante en contextos no computacionales. Muchos sistemas de control implementan interfaces virtuales en un mecanismo complejo; de esta manera el pedal del acelerador de un automóvil moderno hace más que solo aumentar el flujo del combustible hacia el motor; y el sistema de vuelos por cables (fly by wire) presenta un avión virtual simplificado que tiene muy poco que ver con la implementación física.
Virtualización de plataforma
El sentido original del término virtualización, nacido en 1960, es el de la creación de una máquina virtual utilizando una combinación de hardware y software. Para nuestra conveniencia vamos a llamar a esto virtualización de plataforma. El término máquina virtual aparentemente tiene su origen en el experimento del sistema de paginación (paging system) de IBM M44/44X. La creación y administración de las máquinas virtuales también se refiere a la creación de seudo máquinas, en los primeros días de la CP-40, y de virtualización de servidores más recientemente. Los términos virtualización y máquina virtual han adquirido, a través de los años, significados adicionales.
La virtualización de plataforma es llevada a cabo en una plataforma de hardware mediante un software “host” (“anfitrión”, un programa de control) que simula un entorno computacional (máquina virtual) para su software “guest”. Este software “guest”, que generalmente es un sistema operativo completo, corre como si estuviera instalado en una plataforma de hardware autónoma. Típicamente muchas máquinas virtuales son simuladas en una máquina física dada. Para que el sistema operativo “guest” funcione, la simulación debe ser lo suficientemente robusta como para soportar todas las interfaces externas de los sistemas guest, las cuales pueden incluir (dependiendo del tipo de virtualización) los drivers de hardware.
Existen muchos enfoques a la virtualización de plataformas, aquí se listan con base en cuan completamente es implementada una simulación de hardware (estos términos no son reconocidos universalmente como tales, sin embargo todos los conceptos pueden ser ubicados en la bibliografía del tema).
Emulación o simulación: la máquina virtual simula un hardware completo, admitiendo un sistema operativo “guest” sin modificar para una CPU completamente diferente. Este enfoque fue muy utilizado para permitir la creación de software para nuevos procesadores antes de que estuvieran físicamente disponibles. Por ejemplo Bochs, PearPC, Qemu sin aceleración, y el emulador Hercules. La emulación es puesta en práctica utilizando una variedad de técnicas, desde state machines hasta el uso de la recopilación dinámica en una completa plataforma virtual.
Virtualización nativa y virtualización completa: la máquina virtual simula un hardware suficiente para permitir un sistema operativo “guest” sin modificar (uno diseñado para la misma CPU) para correr de forma aislada. Típicamente, muchas instancias pueden correr al mismo tiempo. Este enfoque fue el pionero en 1966 con CP-40 y CP[-67]/CMS, predecesores de la familia de máquinas virtuales de IBM. Algunos ejemplos: VMware Workstation, VMware Server, Parallels Desktop, Virtual Iron, Adeos, Mac-on-Linux, Win4BSD, Win4Lin Pro y z/VM.
Virtualización parcial (y aquí incluimos el llamado “address space virtualization”): la máquina virtual simula múltiples instancias de mucho (pero no de todo) del entorno subyacente del hardware, particularmente address spaces. Este entorno admite compartir recursos y aislar procesos, pero no permite instancias separadas de sistemas operativos “guest”. Aunque no es vista como dentro de la categoría de máquina virtual, históricamente éste fue un importante acercamiento, y fue usado en sistemas como CTSS, el experimental IBM M44/44X, y podría decirse que en sistemas como OS/VS1, OS/VS2 y MVS.
Paravirtualización: la máquina virtual no necesariamente simula un hardware, en cambio ofrece un API especial que solo puede usarse mediante la modificación del sistema operativo “guest”. La llamada del sistema al hypervisor tiene el nombre de “hypercall” en Xen y Parallels Workstation; está implementada vía el hardware instruction DIAG (“diagnose”) en el CMS de VM en el caso de IBM (este fue el origen del término hypervisor). Ejemplo: VMware ESX Server, Win4Lin 9x y z/VM.
Virtualización a nivel del sistema operativo: virtualizar un servidor físico a nivel del sistema operativo permitiendo múltiples servidores virtuales aislados y seguros correr en un solo servidor físico. El entorno del sistema operativo “guest” comparte el mismo sistema operativo que el del sistema “host” (el mismo kernel del sistema operativo es usado para implementar el entorno del “guest”). Las aplicaciones que corren en un entorno “guest” dado lo ven como un sistema autónomo. Ejemplos: Linux-VServer, Virtuozzo, OpenVZ, Solaris Containers y FreeBSD Jails.
Virtualización de aplicaciones: consiste en el hecho de correr una desktop o una aplicación de server localmente, usando los recursos locales, en una máquina virtual apropiada. Esto contrasta con correr la aplicación como un software local convencional (software que fueron “instalados” en el sistema). Semejantes aplicaciones virtuales corren en un pequeño entorno virtual que contienen los componentes necesarios para ejecutar, como entradas de registros, archivos, entornos variables, elementos de uso de interfaces y objetos globales. Este entorno virtual actúa como una capa entre la aplicación y el sistema operativo, y elimina los conflictos entre aplicaciones y entre las aplicaciones y el sistema operativo. Los ejemplos incluyen el Java Virtual Machine de Sun, Softricity, Thinstall, Altiris y Trigence (esta metodología de virtualización es claramente diferente a las anteriores; solo una pequeña línea divisoria los separa de entornos de máquinas virtuales como Smalltalk, FORTH, Tel, P-code).
Virtualización de los recursos
, descrita anteriormente, se extendió a la virtualización de recursos específicos del sistema como la capacidad de almacenamiento, nombre de los espacios y recursos de la red.
Los términos resource aggregation, spanning o concatenation (name spaces) se utiliza cuando se combinan componentes individuales en un mayor recurso o en un recurso de uso común (resource pools). Por ejemplo:
· RAID y volume managers combinan muchos discos en un gran disco lógico.
· La Virtualización de almacenamiento (Storage virtualization) refiere al proceso de abstraer el almacenamiento lógico del almacenamiento físico, y es comúnmente usado en SANs (Storage Area Network). Los recursos de almacenamientos físicos son agregados al storage pool, del cual es creado el almacenamiento lógico. Múltiples dispositivos de almacenamiento independientes, que pueden estar dispersos en la red, le aparecen al usuario como un dispositivo de almacenamiento independiente del lugar físico, monolítico y que puede ser administrado centralmente.
· Channel bonding[1] y el equipamiento de red utilizan para trabajar múltiples enlaces combinados mientras ofrecen un enlace único y con mayor amplitud de banda.
· Red privada virtual (en inglés Virtual Private Network, VPN), Traducción de dirección de red (en inglés Network Address Translation, NAT) y tecnologías de red similares crean una red virtual dentro o a través de subredes.
· Sistemas de computación multiprocessor y multi-core muchas veces presentan lo que aparece como un procesador único, rápido e independiente.
Cluster, grid computing y servidores virtuales usan las tecnologías anteriormente mencionadas para combinar múltiples y diferentes computadoras en una gran metacomputadora.
Particionamiento es la división de un solo recurso (generalmente grande), como en espacio de disco o ancho de banda de la red, en un número más pequeño y con recursos del mismo tipo más fáciles de utilizar. Esto es muchas veces llamado “zoning”, especialmente en almacenamiento de red.
Encapsulación es el ocultamiento de los recursos complejos mediante la creación de un interfaz simple. Por ejemplo, muchas veces CPUs incorporan memoria caché o segmentación (pipeline) para mejorar el rendimiento, pero estos elementos no son reflejados en su interfaz virtual externa. Interfaces virtuales similares que ocultan implementaciones complejas se encuentran en los discos, módems, routers y otros dispositivos “inteligentes” (smart).