De Wikipedia, la enciclopedia libre
Ir a navegaciónSaltar a buscar

En informática , la virtualización asistida por hardware es un enfoque de virtualización de plataforma que permite una virtualización completa eficiente utilizando la ayuda de las capacidades del hardware, principalmente de los procesadores host. Se utiliza una virtualización completa para emular un entorno de hardware completo, o máquina virtual , en el que un sistema operativo invitado sin modificar (utilizando el mismo conjunto de instrucciones que la máquina host) se ejecuta de forma eficaz en completo aislamiento. La virtualización asistida por hardware se agregó a los procesadores x86 ( Intel VT-x o AMD-V ) en 2005 y 2006 (respectivamente).

La virtualización asistida por hardware también se conoce como virtualización acelerada ; Xen lo llama máquina virtual de hardware ( HVM ) y Virtual Iron lo llama virtualización nativa .

Historia

La virtualización asistida por hardware apareció por primera vez en IBM System / 370 en 1972, para su uso con VM / 370 , el primer sistema operativo de máquina virtual. Con la creciente demanda de gráficos por computadora de alta definición (por ejemplo, CAD ), la virtualización de mainframes perdió algo de atención a fines de la década de 1970, cuando las próximas minicomputadoras fomentaron la asignación de recursos a través de la computación distribuida , abarcando la mercantilización de microcomputadoras .

IBM ofrece virtualización de hardware para sus CPU POWER bajo AIX (por ejemplo, System p ) y para su IBM- Mainframes System z . IBM se refiere a su forma específica de virtualización de hardware como "partición lógica", o más comúnmente como LPAR .

El aumento de la capacidad informática por servidor x86 (y, en particular, el aumento sustancial de los anchos de banda de las redes modernas) reavivó el interés por la informática basada en centros de datos, que se basa en técnicas de virtualización. El impulsor principal fue el potencial para la consolidación de servidores: la virtualización permitió que un solo servidor consolidara de manera rentable la potencia informática en varios servidores dedicados infrautilizados. El sello más visible de un regreso a las raíces de la computación es la computación en la nube , que es sinónimo de computación basada en centros de datos (o computación tipo mainframe) a través de redes de gran ancho de banda. Está estrechamente relacionado con la virtualización.

La implementación inicial de la arquitectura x86 no cumplió con los requisitos de virtualización de Popek y Goldberg para lograr la "virtualización clásica":

  • Equivalencia : un programa que se ejecuta bajo el monitor de máquina virtual (VMM) debe exhibir un comportamiento esencialmente idéntico al demostrado cuando se ejecuta en una máquina equivalente directamente.
  • control de recursos (también llamado seguridad ): el VMM debe tener el control total de los recursos virtualizados
  • eficiencia : una fracción estadísticamente dominante de las instrucciones de la máquina debe ejecutarse sin la intervención de VMM

Esto dificultó la implementación de un monitor de máquina virtual para este tipo de procesador. Las limitaciones específicas incluían la incapacidad de atrapar algunas instrucciones privilegiadas . [1]

Para compensar estas limitaciones arquitectónicas, los diseñadores han logrado la virtualización de la arquitectura x86 a través de dos métodos: virtualización completa o paravirtualización . [2] Ambos crean la ilusión de hardware físico para lograr el objetivo de independencia del sistema operativo del hardware, pero presentan algunas compensaciones en rendimiento y complejidad.

  1. Se implementó la virtualización completa en VMM x86 de primera generación. Se basa en la traducción binaria para atrapar y virtualizar la ejecución de ciertas instrucciones sensibles no virtualizables. Con este enfoque, las instrucciones críticas se descubren (estática o dinámicamente en tiempo de ejecución) y se reemplazan con trampas en el VMM para ser emuladas en el software. La traducción binaria puede incurrir en una gran sobrecarga de rendimiento en comparación con una máquina virtual que se ejecuta en arquitecturas virtualizadas de forma nativa, como IBM System / 370. VirtualBox , VMware Workstation (solo para invitados de 32 bits) y Microsoft Virtual PC son implementaciones comerciales bien conocidas de virtualización completa.
  2. La paravirtualización es una técnica en la que el hipervisor proporciona una API y el sistema operativo de la máquina virtual invitada llama a esa API, lo que requiere modificaciones del sistema operativo.

En 2005 y 2006, Intel y AMD (trabajando de forma independiente) crearon nuevas extensiones de procesador para la arquitectura x86 llamadas Intel VT-x y AMD-V, respectivamente. En la arquitectura Itanium , la virtualización asistida por hardware se conoce como VT-i. La primera generación de procesadores x86 para admitir estas extensiones se lanzó a finales de 2005 a principios de 2006:

  • El 13 de noviembre de 2005, Intel lanzó dos modelos de Pentium 4 (Modelo 662 y 672) como los primeros procesadores Intel compatibles con VT-x.
  • El 23 de mayo de 2006, AMD lanzó Athlon 64 ("Orleans"), Athlon 64 X2 ("Windsor") y Athlon 64 FX ("Windsor") como los primeros procesadores AMD que admiten esta tecnología.

Las implementaciones conocidas de virtualización x86 asistida por hardware incluyen VMware Workstation (solo para invitados de 64 bits), XenCenter, Xen 3.x (incluidos derivados como Virtual Iron), Linux KVM y Microsoft Hyper-V .

Ventajas

La virtualización asistida por hardware reduce la sobrecarga de mantenimiento de la paravirtualización, ya que reduce (idealmente, elimina) los cambios necesarios en el sistema operativo invitado. También es considerablemente más fácil obtener un mejor rendimiento. Los ingenieros de VMware [3] y Virtual Iron han citado un beneficio práctico de la virtualización asistida por hardware .

Desventajas

La virtualización asistida por hardware requiere soporte explícito en la CPU del host, que no está disponible en todos los procesadores x86 / x86_64.

Un enfoque de virtualización "puro" asistido por hardware, que utiliza sistemas operativos invitados completamente sin modificar, implica muchas trampas de VM y, por lo tanto, una alta sobrecarga de CPU, lo que limita la escalabilidad y la eficiencia de la consolidación del servidor. [4] Este impacto en el rendimiento puede mitigarse mediante el uso de controladores paravirtualizados; la combinación se ha denominado "virtualización híbrida". [5]

En 2006, se encontró que el soporte de hardware x86 de primera generación de 32 y 64 bits rara vez ofrecía ventajas de rendimiento sobre la virtualización de software. [6]

Ver también

  • Intel VT-d
  • Es posible realizar más refinamientos de la virtualización asistida por hardware utilizando una IOMMU ; esto permite el acceso de velocidad nativa al hardware dedicado desde un sistema operativo invitado, incluido el hardware compatible con DMA
  • Traducción de direcciones de segundo nivel (SLAT) , implementaciones que incluyen indexación de virtualización rápida o tablas de páginas extendidas
  • Otras técnicas de virtualización incluyen la virtualización a nivel de sistema operativo , como la practica Parallels Virtuozzo Containers , y la virtualización de aplicaciones .
  • Nanokernel
  • Emulación de hardware
  • Emulador
  • Grupo de Acción de Prueba Conjunta
  • Interfaz del modo de depuración en segundo plano
  • Emulador en circuito

Referencias

  1. ^ Adams, Keith. "Una comparación de técnicas de software y hardware para la virtualización x86" (PDF) . Consultado el 20 de enero de 2013 .
  2. ^ Chris Barclay, Nuevo enfoque para virtualizar x86 , Network World , 20 de octubre de 2006
  3. ^ Consulte "Virtualización de gráficos y E / S" .
  4. ^ Consulte "Virtualización híbrida: la próxima generación de XenLinux" . Archivado el 20 de marzo de 2009 en Wayback Machine.
  5. ^ Jun Nakajima y Asit K. Mallick, "Virtualización híbrida: virtualización mejorada para Linux" Archivado el 7 deenero de 2009en Wayback Machine , en Actas del Simposio de Linux , Ottawa, junio de 2007.
  6. ^ Una comparación de técnicas de software y hardware para la virtualización x86, Keith Adams y Ole Agesen, VMware, ASPLOS'06 21 al 25 de octubre de 2006, San José, California, EE. UU. "Sorprendentemente, encontramos que el soporte de hardware de primera generación rara vez ofrece ventajas de rendimiento sobre las técnicas de software existentes.Atribuimos esta situación a los altos costos de transición VMM / invitado y un modelo de programación rígido que deja poco espacio para la flexibilidad del software en la gestión de la frecuencia o el costo de estas transiciones.

Lectura adicional

  • Fisher-Ogden, John. "Soporte de hardware para una virtualización eficiente" (PDF) . UCSD . Consultado el 5 de agosto de 2010 .
  • Smith, Jim; Nair, Ravi (2005). Máquinas virtuales . Morgan Kaufmann. 8.5: Mejora del rendimiento de las máquinas virtuales del sistema. ISBN 1-55860-910-5.
  • Osisek, DL; Jackson, KM; Gum, PH (1991). "Arquitectura de ejecución interpretativa ESA / 390, base para VM / ESA" (PDF) . Revista de sistemas de IBM . 30 (1): 34–51. doi : 10.1147 / sj.301.0034 .
  • Adams, Keith; Agesen, Ole (2006). Una comparación de técnicas de software y hardware para la virtualización x86 (PDF) . Conferencia internacional sobre soporte arquitectónico para lenguajes de programación y sistemas operativos, San José, CA, EE. UU. ACM 1-59593-451-0 / 06/0010 . Consultado el 22 de diciembre de 2006 .
  • "Evaluación de rendimiento de AMD RVI Hardware Assist" (PDF) . VMware .
  • "Evaluación de rendimiento de Intel EPT Hardware Assist" (PDF) . VMware .