Paravirtualização - Paravirtualization

Na computação, paravirtualização ou para-virtualização é uma técnica de virtualização que apresenta uma interface de software para as máquinas virtuais que é semelhante, mas não idêntica à interface de hardware-software subjacente.

A intenção da interface modificada é reduzir a parte do tempo de execução do convidado gasto na execução de operações que são substancialmente mais difíceis de executar em um ambiente virtual em comparação com um ambiente não virtualizado. A paravirtualização fornece 'ganchos' especialmente definidos para permitir que o (s) convidado (s) e o host solicitem e reconheçam essas tarefas, que de outra forma seriam executadas no domínio virtual (onde o desempenho de execução é pior). Uma plataforma paravirtualizada bem-sucedida pode permitir que o monitor da máquina virtual (VMM) seja mais simples (realocando a execução de tarefas críticas do domínio virtual para o domínio do host) e / ou reduzir a degradação geral do desempenho da execução da máquina dentro do convidado virtual.

A paravirtualização requer que o sistema operacional convidado seja explicitamente portado para a para- API - uma distribuição de sistema operacional convencional que não é compatível com paravirtualização não pode ser executada em um VMM paravirtualizante. No entanto, mesmo nos casos em que o sistema operacional não pode ser modificado, podem estar disponíveis componentes que permitem muitas das vantagens de desempenho significativas da paravirtualização. Por exemplo, o projeto Xen Windows GPLPV fornece um kit de drivers de dispositivo paravirtualização, licenciados nos termos da GPL , que devem ser instalados em um convidado virtual do Microsoft Windows em execução no hipervisor Xen . Tais aplicativos tendem a ser acessíveis por meio do ambiente de interface de máquina paravirtual. Isso garante a compatibilidade do modo de execução em vários modelos de algoritmo de criptografia, permitindo uma integração perfeita dentro da estrutura paravirtual.

História

Paravirtualização é um novo termo para uma ideia antiga. O sistema operacional VM da IBM oferece esse recurso desde 1972 (e anteriormente como CP-67 ). No mundo VM, isso é designado um "código de DIAGNOSE", porque usa um código de instrução usado normalmente apenas por software de manutenção de hardware e, portanto, indefinido.

O sistema operacional Parallels Workstation chama seu equivalente de "hiperchamada". Todos são a mesma coisa: uma chamada de sistema para o hipervisor abaixo. Essas chamadas requerem suporte no sistema operacional "convidado", que deve ter um código específico do hipervisor para fazer essas chamadas.

O termo "paravirtualização" foi usado pela primeira vez na literatura de pesquisa em associação com o Denali Virtual Machine Manager. O termo também é usado para descrever os hipervisores Xen , L4 , TRANGO , VMware , Wind River e XtratuM . Todos esses projetos usam ou podem usar técnicas de paravirtualização para oferecer suporte a máquinas virtuais de alto desempenho em hardware x86 , implementando uma máquina virtual que não implementa as partes difíceis de virtualizar do conjunto real de instruções x86.

Um hipervisor fornece a virtualização do sistema de computador subjacente. Na virtualização completa , um sistema operacional convidado é executado sem modificações em um hipervisor. No entanto, o desempenho e a eficiência aprimorados são obtidos fazendo com que o sistema operacional convidado se comunique com o hipervisor. Ao permitir que o sistema operacional convidado indique sua intenção ao hipervisor, cada um pode cooperar para obter melhor desempenho ao executar em uma máquina virtual. Esse tipo de comunicação é conhecido como paravirtualização.

Em 2005, a VMware propôs uma interface de paravirtualização, a Interface de Máquina Virtual (VMI), como um mecanismo de comunicação entre o sistema operacional convidado e o hipervisor. Essa interface habilitou a paravirtualização transparente na qual uma única versão binária do sistema operacional pode ser executada em hardware nativo ou em um hipervisor no modo paravirtualizado. À medida que as CPUs AMD e Intel adicionaram suporte para virtualização assistida por hardware mais eficiente, o padrão tornou-se obsoleto e o suporte VMI foi removido do kernel Linux em 2.6.37 e dos produtos VMware em 2011.

Em 2008, a Red Hat anunciou a paravirtualização VirtIO para KVM e Linux, o driver VirtIO para Microsoft Windows também está disponível.

Em 2008, a Microsoft anunciou a paravirtualização do Hyper-V .

Suporte para paravirtualização Linux

Na conferência USENIX em 2006 em Boston, Massachusetts , vários fornecedores de desenvolvimento Linux (incluindo IBM, VMware, Xen e Red Hat) colaboraram em uma forma alternativa de paravirtualização, inicialmente desenvolvida pelo grupo Xen, chamada "paravirt-ops" . O código paravirt-ops (frequentemente abreviado para pv-ops) foi incluído no kernel Linux da linha principal a partir da versão 2.6.23 e fornece uma interface agnóstica de hipervisor entre o hipervisor e os kernels convidados. O suporte de distribuição para kernels pv-ops convidados apareceu a partir do Ubuntu 7.04 e RedHat 9. Os hipervisores Xen baseados em qualquer kernel 2.6.24 ou posterior suportam convidados pv-ops, assim como o produto VMware Workstation a partir da versão 6. O VirtualBox também oferece suporte a partir da versão 5.0.

Veja também

Referências

links externos