A Microsoft abriu o código do hipervisor OpenVMM e da plataforma de paravirtualização OpenHCL

A Microsoft anunciou a abertura do código-fonte da camada para virtualização paravirtualizada OpenHCL e do monitor de máquinas virtuais OpenVMM, desenvolvido especificamente para o funcionamento do OpenHCL. O código do OpenVMM e do OpenHCL foi escrito na linguagem Rust e é distribuído sob licença MIT. O OpenVMM é um hipervisor de segundo nível, que opera no mesmo anel de proteção que o núcleo do sistema operacional, semelhante a produtos como VirtualBox e VMware Workstation. Suporta operação em sistemas host baseados em Linux (x86_64), Windows (x86_64, Aarch64) e macOS (x86_64, Aarch64), utilizando as APIs de virtualização fornecidas por esses sistemas operacionais, como KVM, SHV (Microsoft Hypervisor), WHP (Windows Hypervisor Platform) e Hypervisor.framework.

Entre os recursos suportados no OpenVMM:

  • Inicialização em modos UEFI e BIOS, inicialização direta do kernel Linux;
  • Suporte à paravirtualização baseado em drivers Virtio (virtio-fs, virtio-9p, virtio-net, virtio-pmem);
  • Suporte à paravirtualização baseado em VMBus (storvsp, netvsp, vpci, framebuffer);
  • Emulação de vTPM, NVMe, UART, chipset i440BX + PIIX4, IDE HDD, PCI e VGA;
  • Backends para passagem de gráficos, dispositivos de entrada, console, armazenamento e acesso à rede;
  • Gerenciamento através de interface de linha de comando, console interativo, gRPC e ttrpc.

OpenHCL é posicionado como um ambiente com componentes de paravirtualização (paravisor), operando sobre o hipervisor OpenVMM. A principal característica dos sistemas de virtualização baseados em OpenVMM e OpenHCL é que os componentes para paravirtualização são executados não no lado do sistema host, mas em uma única máquina virtual com o sistema convidado. A isolação da camada de paravirtualização do sistema operacional convidado é realizada pelas forças do hipervisor de segundo nível OpenVMM. O OpenHCL, ao ser aplicado dessa forma, pode ser considerado como um firmware virtual, executado em um nível de privilégio mais alto do que o sistema operacional em execução no ambiente convidado.

A separação entre o sistema convidado e os componentes do OpenHCL é realizada utilizando o conceito de níveis virtuais de confiança (VTL, Virtual Trust Level), para os quais podem ser utilizados tanto mecanismos de software quanto tecnologias de hardware, como Intel TDX (Trust Domain Extensions), AMD SEV-SNP (Secure Encrypted Virtualization-Secure Nested Paging) e ARM CCA (Confidential Compute Architecture). Para a execução dos componentes do OpenHCL, é utilizada uma versão reduzida do kernel Linux, incluindo apenas os componentes mínimos necessários para o funcionamento do OpenVMM.

A Microsoft abriu o código do hipervisor OpenVMM e da plataforma de paravirtualização OpenHCL

OpenHCL pode operar em plataformas x86-64 e ARM64 e suporta extensões Intel TDX, AMD SEV-SNP e ARM CCA para isolamento adicional. O OpenHCL inclui um conjunto de serviços, drivers e emuladores utilizados para facilitar o acesso ao hardware, garantir a operação de dispositivos virtuais do lado do sistema hospedeiro e emular dispositivos de hardware (por exemplo, pode emular um chip para armazenamento de chaves criptográficas — vTPM).

Para a tradução de acesso ao hardware do lado do sistema hospedeiro, são utilizados drivers existentes com suporte a paravirtualização ou pode ser feita a ligação direta de dispositivos à máquina virtual, permitindo que sistemas hospedeiros existentes sejam transferidos para o ambiente baseado em OpenHCL sem modificações. Além disso, o OpenHCL inclui componentes para diagnóstico e depuração máquinas virtuais, realizados utilizando extensões para garantir computações confidenciais.

Diferentemente do já existente projeto de código aberto COCONUT-SVSM (Secure VM Service Module), que fornece serviços e dispositivos emulados para sistemas hospedeiros operando em ambientes confidenciais máquinas virtuais (CVM, Máquina Virtual Confidencial), o OpenHCL permite o uso de interfaces padrão nos sistemas hospedeiros, enquanto o COCONUT-SVSM exige a organização de uma interação especial com o SVSM, modificação do sistema hospedeiro e utilização de drivers específicos.

Entre as aplicações do paravirtualizador OpenHCL, destacam-se cenários como a migração de sistemas existentes para o uso de aceleradores de hardware Azure Boost sem necessidade de alterações na imagem do disco do sistema hospedeiro; execução de sistemas hospedeiros existentes em máquinas virtuais que oferecem computações confidenciais (por exemplo, com base em Intel TDX e AMD SEV-SNP); configuração de inicialização verificada de máquinas virtuais, utilizando o modo UEFI Secure Boot e vTPM.

É importante destacar que o projeto OpenVMM está focado na utilização com OpenHCL e ainda não está pronto para aplicação isolada em sistemas de hospedagem para implementações de usuários finais. Entre os problemas do OpenVMM que dificultam seu uso em ambientes de hospedagem no contexto tradicional, desvinculados do OpenHCL, estão: documentação inadequada da interface de gerenciamento; falta de otimização de desempenho para backends de armazenamento, rede e gráficos; ausência de suporte para alguns drivers (por exemplo, discos IDE e mouse PS/2); e a falta de garantia de estabilidade da API e funcionalidade. No entanto, a integração do OpenVMM com o OpenHCL já atingiu um nível de implementação industrial e está sendo utilizada pela Microsoft na plataforma Azure (Azure Boost SKU) para suportar mais de 1,5 milhão de máquinas virtuais.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster