Virtualização assistida por hardware - Hardware-assisted virtualization

Na computação , a virtualização assistida por hardware é uma abordagem de virtualização de plataforma que permite uma virtualização completa e eficiente usando a ajuda de recursos de hardware, principalmente dos processadores host. Uma virtualização completa é usada para emular um ambiente de hardware completo, ou máquina virtual , em que um sistema operacional convidado não modificado (usando o mesmo conjunto de instruções da máquina host) é executado de forma totalmente isolada. A virtualização assistida por hardware foi adicionada aos processadores x86 ( Intel VT-x ou AMD-V ) em 2005 e 2006 (respectivamente).

A virtualização assistida por hardware também é conhecida como virtualização acelerada ; O Xen a chama de máquina virtual de hardware ( HVM ) e a Virtual Iron a chama de virtualização nativa .

História

A virtualização assistida por hardware apareceu pela primeira vez no IBM System / 370 em 1972, para uso com VM / 370 , o primeiro sistema operacional de máquina virtual. Com a crescente demanda por computação gráfica de alta definição (por exemplo, CAD ), a virtualização de mainframes perdeu alguma atenção no final dos anos 1970, quando os próximos minicomputadores promoveram a alocação de recursos por meio da computação distribuída , abrangendo a comoditização dos microcomputadores .

A IBM oferece virtualização de hardware para suas CPUs POWER em AIX (por exemplo, System p ) e para seu IBM- Mainframes System z . A IBM se refere à sua forma específica de virtualização de hardware como "partição lógica" ou, mais comumente, como LPAR .

O aumento na capacidade de computação por servidor x86 (e em particular o aumento substancial nas larguras de banda das redes modernas) reacendeu o interesse na computação baseada em data center que é baseada em técnicas de virtualização. O principal motivador era o potencial para consolidação de servidor: a virtualização permitia que um único servidor consolidasse a capacidade de computação de maneira econômica em vários servidores dedicados subutilizados. A marca mais visível de um retorno às raízes da computação é a computação em nuvem , que é sinônimo de computação baseada em data center (ou computação semelhante a mainframe) por meio de redes de alta largura de banda. Ele está intimamente ligado à virtualização.

A implementação inicial da arquitetura x86 não atendeu aos requisitos de virtualização Popek e Goldberg para atingir a "virtualização clássica":

  • equivalência : um programa em execução no monitor de máquina virtual (VMM) deve exibir um comportamento essencialmente idêntico ao demonstrado quando executado em uma máquina equivalente diretamente
  • controle de recursos (também chamado de segurança ): o VMM deve estar no controle total dos recursos virtualizados
  • eficiência : uma fração estatisticamente dominante de instruções de máquina deve ser executada sem intervenção do VMM

Isso dificultou a implementação de um monitor de máquina virtual para esse tipo de processador. Limitações específicas incluíam a incapacidade de seguir algumas instruções privilegiadas .

Para compensar essas limitações arquitetônicas, os designers realizaram a virtualização da arquitetura x86 por meio de dois métodos: virtualização completa ou paravirtualização . Ambos criam a ilusão de hardware físico para atingir o objetivo de independência do sistema operacional em relação ao hardware, mas apresentam algumas desvantagens em desempenho e complexidade.

  1. A virtualização completa foi implementada em VMMs x86 de primeira geração. Ele depende da tradução binária para interceptar e virtualizar a execução de certas instruções confidenciais e não virtualizáveis. Com essa abordagem, as instruções críticas são descobertas (estaticamente ou dinamicamente em tempo de execução) e substituídas por armadilhas no VMM para serem emuladas no software. A tradução binária pode incorrer em uma grande sobrecarga de desempenho em comparação a uma máquina virtual rodando em arquiteturas virtualizadas nativamente, como o IBM System / 370. VirtualBox , VMware Workstation (apenas para convidados de 32 bits) e Microsoft Virtual PC são implementações comerciais bem conhecidas de virtualização completa.
  2. Paravirtualização é uma técnica em que o hipervisor fornece uma API e o sistema operacional da máquina virtual convidada chama essa API, exigindo modificações no sistema operacional.

Em 2005 e 2006, a Intel e a AMD (trabalhando de forma independente) criaram novas extensões de processador para a arquitetura x86 chamadas Intel VT-x e AMD-V, respectivamente. Na arquitetura Itanium , a virtualização assistida por hardware é conhecida como VT-i. A primeira geração de processadores x86 para suportar essas extensões foi lançada no final de 2005, no início de 2006:

  • Em 13 de novembro de 2005, a Intel lançou dois modelos de Pentium 4 (Modelo 662 e 672) como os primeiros processadores Intel a oferecer suporte a VT-x.
  • Em 23 de maio de 2006, a AMD lançou o Athlon 64 ("Orleans"), o Athlon 64 X2 ("Windsor") e o Athlon 64 FX ("Windsor") como os primeiros processadores AMD a oferecer suporte a essa tecnologia.

Implementações bem conhecidas de virtualização x86 assistida por hardware incluem VMware Workstation (somente para convidados de 64 bits), XenCenter, Xen 3.x (incluindo derivados como Virtual Iron), Linux KVM e Microsoft Hyper-V .

Vantagens

A virtualização assistida por hardware reduz a sobrecarga de manutenção da paravirtualização, pois reduz (de preferência, elimina) as mudanças necessárias no sistema operacional convidado. Também é consideravelmente mais fácil obter um melhor desempenho. Um benefício prático da virtualização assistida por hardware foi citado por engenheiros da VMware e Virtual Iron.

Desvantagens

A virtualização assistida por hardware requer suporte explícito na CPU host, que não está disponível em todos os processadores x86 / x86_64.

Uma abordagem de virtualização "pura" assistida por hardware, usando sistemas operacionais convidados inteiramente não modificados, envolve muitas armadilhas de VM e, portanto, sobrecargas de CPU altas, limitando a escalabilidade e a eficiência da consolidação do servidor. Esse impacto no desempenho pode ser mitigado pelo uso de drivers paravirtualizados; a combinação foi chamada de "virtualização híbrida".

Em 2006, o suporte de hardware x86 de primeira geração de 32 e 64 bits raramente oferecia vantagens de desempenho em relação à virtualização de software.

Veja também

Referências

  1. ^ Adams, Keith. "Uma comparação de técnicas de software e hardware para virtualização x86" (PDF) . Retirado em 20 de janeiro de 2013 .
  2. ^ Chris Barclay, New approach to virtualizing x86s , Network World , 20 de outubro de 2006
  3. ^ Consulte "Gráficos e virtualização de E / S" .
  4. ^ Consulte "Virtualização híbrida: a próxima geração do XenLinux" . Arquivado em 20 de março de 2009, na Wayback Machine
  5. ^ Jun Nakajima e Asit K. Mallick, "Hybrid-Virtualization — Enhanced Virtualization for Linux" Archived 2009-01-07 na Wayback Machine , em Proceedings of the Linux Symposium , Ottawa, junho de 2007.
  6. ^ Uma comparação de técnicas de software e hardware para virtualização x86, Keith Adams e Ole Agesen, VMware, ASPLOS'06 21 a 25 de outubro de 2006, San Jose, Califórnia, EUA "Surpreendentemente, descobrimos que o suporte de hardware de primeira geração raramente oferece Vantagens de desempenho sobre as técnicas de software existentes. Atribuímos essa situação aos altos custos de transição de VMM / convidado e a um modelo de programação rígido que deixa pouco espaço para a flexibilidade do software no gerenciamento da frequência ou do custo dessas transições.

Leitura adicional