stringtranslate.com

Virtualización asistida por hardware

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 no modificado (que utiliza el mismo conjunto de instrucciones que la máquina host) se ejecuta efectivamente de forma completamente aislada. La virtualización asistida por hardware se añadió a los procesadores x86 ( Intel VT-x , AMD-V o VIA VT ) en 2005, 2006 y 2010 [1] (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 las microcomputadoras .

IBM ofrece virtualización de hardware para su hardware IBM Power Systems para AIX , Linux e IBM i , y para sus mainframes IBM 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 en la informática basada en centros de datos que se basa en técnicas de virtualización. El principal impulsor fue el potencial de consolidación de servidores: la virtualización permitió que un solo servidor consolidara de manera rentable la potencia informática en múltiples servidores dedicados infrautilizados. El sello más visible de un retorno 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 arquitectura x86 de implementación inicial no cumplía con los requisitos de virtualización de Popek y Goldberg para lograr la "virtualización clásica":

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 realizar trampas en algunas instrucciones privilegiadas . [2]

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

  1. La virtualización completa se implementó en VMM x86 de primera generación. Se basa en la traducción binaria para capturar y virtualizar la ejecución de ciertas instrucciones sensibles y 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 emularlas en el software. La traducción binaria puede generar 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 compatibles con estas extensiones se lanzó a finales de 2005 y principios de 2006:

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 [4] 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 asistida por hardware "puro", que utiliza sistemas operativos invitados totalmente no modificados, implica muchas trampas de VM y, por lo tanto, altos gastos de CPU, lo que limita la escalabilidad y la eficiencia de la consolidación del servidor. [5] Este impacto en el rendimiento puede mitigarse mediante el uso de controladores paravirtualizados; la combinación se ha denominado "virtualización híbrida". [6]

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

Ver también

Referencias

  1. ^ "Copia archivada". www.via.com.tw. ​Archivado desde el original el 22 de enero de 2013 . Consultado el 10 de octubre de 2022 .{{cite web}}: Mantenimiento CS1: copia archivada como título ( enlace )
  2. ^ 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 .
  3. ^ Chris Barclay, Nuevo enfoque para virtualizar x86 , Network World , 20 de octubre de 2006
  4. ^ Consulte "Virtualización de E/S y gráficos".
  5. ^ Consulte "Virtualización híbrida: la próxima generación de XenLinux". Archivado el 20 de marzo de 2009 en Wayback Machine .
  6. ^ Jun Nakajima y Asit K. Mallick, "Virtualización híbrida: virtualización mejorada para Linux" Archivado el 7 de enero de 2009 en Wayback Machine , en Actas del Simposio de Linux , Ottawa, junio de 2007.
  7. ^ 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, descubrimos 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 de VMM/guest y a 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