Princípios de Virtualização
  • Princípios de virtualização
    • Tipos de virtualização
    • Emulação vs Virtualização
  • Arquitetura de computadores
  • Hardware-based virtualization
Powered by GitBook
On this page

Hardware-based virtualization

Mecanismos nativos de hardware que otimizam e auxiliam os hypervisors na criação e gestão de máquinas virtuais.

PreviousArquitetura de computadores

Last updated 1 year ago

  • Virtualização do processador: processadores Intel possui a tecnologia Intel VT-x, que dispõe do VMX para um modo de execução isoladas de softwares (geralmente, máquinas virtuais). Similar ao Intel VT-x, a AMD possui o AMD-V com suas instruções e estruturas de dados AMD-SVM. Essas tecnologias permitem não só a execução de instruções em ambiente isolado, como também trata de outros detalhes como cache, memória, page tables, e operações de I/O, otimizando ainda mais o trabalho dos hypervisors. Para a otimização da virtualização da memória física eles também fazem uso de Extend Page Tables (EPT).

  • I/O MMU: nome genérico para as tecnologias Intel VT-d e AMD-Vi. Assim como a MMU, traduz endereços físicos só que de I/O. Ela provê isolamento de DMA com o uso da técnica de DMA Remapping, virtualizando recursos de I/O. O I/O MMU alivia os hypervisors, evitando que eles tenham que se esforçar para emular dispositivos de I/O. Nem todos os computadores suportam essa tecnologia, pois depende do suporte dela no chipset da placa mãe. O Intel VT-d/AMD-Vi permite que máquinas virtuais acessem diretamente dispositivos de I/O por DMA. O VMM mapeia uma porta DMA do dispositivo para a VM. Uma possível desvantagem: quantidade limitada de I/O ports DMA limita a quantidade de VMs.

  • SR-IOV: serve como um complemento ao I/O MMU. O SR-IOV é uma especificação PCI que permite que um dispositivo PCI com suporte a esta especificação possa oferecer múltiplas interfaces virtuais, sendo cada VM consumindo uma interface (VF) diferente de um mesmo dispositivo PCI físico. Cada dispositivo em um barramento PCI possui um identificador chamado RID. A grande sacada do SR-IOV é permitir que um único dispositivo possua mais de um RID, fazendo com que múltiplos dispositivos associe cada interface isolada do dispositivo a uma VM. Uma possível desvantagem do SR-IOV é na questão de live migration entre máquinas heterogêneas, uma vez que a VM migrada pode não conter os drivers para os periféricos do novo servidor (a solução para isto seria recorrer ao I/O emulation ou migrar a VM para outro servidor físico que possua as mesmas configurações de hardware). Outra desvantagem do SR-IOV é que nem todos os dispositivos suportam SR-IOV.

  • APICv: em uma virtualização tradicional, o hypervisor fica responsável por tratar e intermediar as interrupções disparadas para as VMs. Isso onera a performance das operações de I/O. Com o APICv, a VM passa a ter o seu próprio APIC virtualizado, lidando diretamente com as interrupções e aliviando o trabalho do hypervisor.

A virtualização de canais DMA proporcionada pelo I/O MMU somado a implementação e suporte SR-IOV a dispositivos PCI permite que máquinas virtuais alcancem taxas de I/O próximas a taxas nativas (bare-metal).

Além destas tecnologias para otimização de I/O baseada em hardware, uma estratégia interessante que é muito utilizada é a paravirtualização de drivers. A ideia é permitir que operações de I/O das VMs chamem drivers especiais que conversem com o hypervisor, e o hypervisor por sua vez comunica com os dispositivos reais da máquina. Um grande exemplo de implementação de paravirtualização de drivers é o VirtIO, nele tanto a VM deverá ter os drivers VirtIO instalados quanto o hypervisor (geralmente, o QEMU KVM ou o Xen) deverá suportá-lo. Outro exemplo é o VMware Paravirtual SCSI, um driver paravirtualizado para otimizar acesso a discos no VMware ESXi.

Observe como a performance das VMs melhoram significativamente na VM do tipo Xen AWS 2017 pela combinação de: drivers paravirtualizados de storages remotos, interrupções e timers + virtualização assistida por hardware de CPU, memória, armazenamento local (usando SR-IOV) + virtualização por software de BIOS.

No gráfico abaixo, retirado do artigo , mostra a evolução das melhorias de performance de máquinas virtuais ao longo das versões do Xen Hypervisor:

AWS EC2 Virtualization 2017: Introducing Nitro
Exemplo de habilitação de I/O MMU em VM criada no VMware vSphere. Esse recurso irá funcionar se o chipset da placa mãe do servidor possuir Intel VT-d ou AMD-Vi, e também se tiver DMA I/O Ports disponíveis para a VM.