Entender as diferenças entre o KVM e o Hyper-V é essencial quando se constrói um ambiente virtualizado para otimizar o uso de recursos de hardware de uma organização. Neste artigo de blog, explicaremos brevemente o que são o KVM e o Hyper-V e depois compararemos os dois hypervisores.
Os pontos chave desta avaliação comparativa são os seguintes:
- Escalabilidade e desempenho
- Ferramentas de gerenciamento
- Opções de alocação de memória
- Recursos de segurança
- Capacidades de migração ao vivo
O que é o Hypervisor KVM?
O acrônimo KVM significa Kernel-based Virtual Machine. É uma solução de virtualização totalmente open-source no núcleo do Linux. O KVM roda em processadores x86, oferecendo aos usuários capacidades de hypervisor para construir ambientes virtuais.
O hypervisor Kernel-based Virtual Machine foi lançado pela primeira vez em 2007 como parte das versões 2.6.20 e novas do Linux. O KVM suporta vários SOs, como Linux, Windows, macOS e Haiku, oferecendo recursos de virtualização assistida por hardware. A mesma solução também fornece virtualização paralela para Windows, OpenBSD, FreeBSD, entre outros sistemas.
O KVM pode ser usado na maioria das máquinas Linux que tem CPUs que suportam virtualização assistida por hardware. Para instalar o KVM, você precisa baixar os pacotes necessários dos repositórios de software do Linux, além do kvm-qemu e de uma ferramenta de gerenciamento (opcional).
As ferramentas de gerenciamento de virtualização baseadas em KVM mais comuns são o Oracle Linux Virtualization Manager, Proxmox VE e o Red Hat Virtualization Manager.
O que é o Hyper-V?
Hyper-V é um hypervisor nativo da Microsoft que permite a criação e o uso de VMs e ambientes virtuais. O Hyper-V pode ser executado em um sistema x86-64 sob o Windows OS.
O Microsoft Hyper-V foi lançado pela primeira vez como parte do Windows Server 2008. O hypervisor é um componente opcional downloadável de sistemas Windows Server. Além disso, o Hyper-V tem uma edição gratuita independente com funções limitadas e que apenas suporta CLI (interface de linha de comando).
Com o Hyper-V, você pode obter um conjunto de máquinas virtuais isoladas umas das outras. Isso é possível por causa do particionamento específico de pai (root) e filho. Uma partição de pai, que pode acessar diretamente o hardware, executa a pilha de gerenciamento de virtualização. Em seguida, esta partição cria partições de filho que hospedam sistemas operacionais convidados.
KVM vs Hyper-V: Uma Comparação Detalhada
Agora que destacamos as diferenças gerais em nossa comparação Hyper-V vs KVM, podemos prosseguir com mais detalhes. Verifique as informações abaixo para escolher a solução que melhor se ajusta às suas necessidades.
Escalabilidade e desempenho
Escalabilidade e desempenho são argumentavelmente os dois pontos mais importantes em qualquer comparação KVM vs Hyper-V. A boa notícia é que a competição aqui resulta em um empate – tanto o Hyper-V quanto o KVM têm alto desempenho e fornecem ótimas escalabilidades.
O software de virtualização KVM é baseado no kernel Linux, que é uma solução open-source. Isto significa que o KVM pode funcionar corretamente em uma ampla gama de hardware. O mesmo kernel Linux permite alta eficiência e velocidade de operação.
A natureza open-source do KVM pode resultar em problemas de situação que podem levar tempo e esforço para serem resolvidos. No entanto, a base de conhecimento online do KVM é substancial, o que significa que você provavelmente encontrará sua solução rapidamente.
Por outro lado, o Hyper-V é o hypervisor propriedade da Microsoft que vem junto com o Windows Server OS, otimizado para fornecer o melhor desempenho na maioria do hardware disponível. A escalabilidade do Hyper-V também permite que você use sua infraestrutura de TI com eficiência máxima executando múltiplas VMs no host e escalando suas cargas virtuais conforme demanda.
O principal desvantagem do Hyper-V é sua limitada suporte aos sistemas operacionais diferentes do Windows. Comunitário com certas complexidades de gerenciamento e potenciais problemas de compatibilidade, o Hyper-V pode ser desafiante se você não tiver a experiência técnica necessária.
Ferramentas de gerenciamento
Como o Hyper-V e o KVM estão projetados para plataformas diferentes, suas ferramentas de gerenciamento também são diferentes.
Para o gerenciamento do Hyper-V, você pode usar a CLI Windows PowerShell. Caso queira uma solução com interface gráfica, você pode usar o Windows Admin Center ou o Hyper-V Manager.
Adicionalmente, as organizações podem aproveitar muitos benefícios da ferramenta de gerenciamento empresarial nativa fornecida pela Microsoft: System Center Virtual Machine Manager (VMM) para Hyper-V. Os Administradores geralmente preferem o VMM para gerenciar ambientes Hyper-V devido à visão de infraestrutura conveniente e informativa e as capacidades de escalabilidade. No entanto, você precisa comprar uma licença dedicada para usar o Gerenciador de Máquinas Virtuais.
Você pode executar todas as tarefas de gerenciamento KVM usando apenas a CLI, exatamente como com Hyper-V através do PowerShell. Ainda assim, aqueles que preferem interfaces gráficas para gerenciar suas infraestruturas KVM podem tentar soluções como Morpheus, virt-manager ou Cloonix, entre outros.
Hyper-V e KVM compartilham uma funcionalidade significativa: uma lista decompatibilidade de hardware extensiva, que oferece muita flexibilidade.
Para KVM, você pode usar eficientemente qualquer armazenamento (incluindo armazenamento diretamente acoplado e armazenamento anexado à rede). Em contrapartida, Hyper-V funciona com qualquer armazenamento que suporte o Windows. Note que, se planejar armazenar arquivos de VM the NAS ou compartilhamento de arquivo da rede, você precisará configurar o protocolo Server Message Block 3.0.
Opções de provisionamento de memória
A flexibilidade de uso de memória é outra vantagem compartilhada por KVM e Hyper-V. Ambos os hipervisores podem usar memória regular ou NUMA (acesso a memória não uniforme) com equal eficiência.
No entanto, é interessante notar a diferença entre KVM e Hyper-V no alocamento dinâmico de memória. No Hyper-V, a funcionalidade de memória dinâmica permite que as máquinas virtuais reguliem o uso de memória dependendo das necessidades atuais do VM. A demanda não excede os limites de volume de memória definidos. Com alocação dinâmica de memória, administradores podem executar mais VMs em um único host através de overprovisioning de memória.
O hypervisor KVM também permite a sobre-provisão de memória. No entanto, a implementação dessa funcionalidade é um pouco diferente daquela no Hyper-V. As máquinas virtuais KVM são processos separados executados no anfitrião sob o sistema operacional Linux. Portanto, as VM não têm volumes de memória pré-alocados. O sistema operacional distribui memória entre as máquinas virtuais com base em solicitações. Em palavras simples, o software de virtualização KVM aloca blocos de memória para cada máquina virtual sob demanda.
Caso um anfitrião KVM enfrente uma deficiência de memória física, o sistema então envia algumas páginas de memória para a swap. A quantidade de RAM livre aumenta então sob demanda, permitindo a sobre-comitação de memória para o sistema de hospedagem.
Funcionalidades de segurança
Quando se trata das capacidades de segurança no comparativo entre KVM vs Hyper-V, ambas as soluções têm funcionalidades de segurança eficientes que você pode usar para garantir a proteção dos dados e do ambiente da sua organização.
Para o KVM, a isolamento de VM e a segurança são fornecidos pelas capacidades de duas soluções. A primeira, SELinux (security-enhanced Linux), define um perímetro de segurança em volta das máquinas virtuais. sVirt (secure virtualization) permite a segurança de acesso obrigatório (MAC – Mandatory Access Control) para as VM de convidado, adicionando mais capacidades ao SELinux e reduzindo o impacto de erros humanos na segurança virtual.
O Hyper-V também pode isolar máquinas virtuais para garantir a segurança do ambiente antes de um nó comprometido único. Além disso, a funcionalidade Secure Boot disponível com as VM gen 2 do Hyper-V ajuda a prevenir o funcionamento de SO, controladores e firmware não autorizados no momento do boot. Capacidades de segurança adicionais do Hyper-V incluem criptografia de tráfego em uma subrede inteira, Guarded Fabric (um modelo de segurança anti-malware) e VMs protegidas.
Capacidade de migração de VM em execução
A migração de VM em execução é uma funcionalidade disponível tanto no KVM quanto no Hyper-V. Com essa funcionalidade, administradores podem mover VMs para um servidor diferente sem interromper as operações da VM.
A migração de VM em execução pode ajudar organizações a apoiar a continuidade de produção e a disponibilidade de serviços. Por exemplo, quando você tem uma sessão de manutenção de hardware planejada no seu host de virtualização principal, você pode mover suas VMs críticas para um servidor secundário. A manutenção então é executada como planejado sem interromper os fluxos de trabalho e operações da organização.
Além disso, às vezes o seu host tem recursos insuficientes para executar as VMs que você originalmente criou nele. Por exemplo, uma VM pode se tornar muito “grande” durante o uso e causar problemas de desempenho para todo o host. A melhor maneira para otimizar o desempenho do host é usar as capacidades de migração em execução do seu hipervisor para mover essa máquina virtual para um host diferente sem desligá-la.
Conversão entre KVM e Hyper-V
Quando necessário, você pode converter máquinas virtuais KVM para funcionar em ambientes Hyper-V e vice-versa. Confira os guias de conversão entre KVM e Hyper-V abaixo.
Conversão de KVM para Hyper-V
Converter máquinas virtuais KVM para uso em ambientes Hyper-V é feito em três passos:
- Instale qemu-ing.
- Para converter um disco de imagem de máquina virtual KVM para o formato Hyper-V, use o seguinte comando:
qemu-img.exe convert sourcefile.qcow2 -O vhdx -o subformat=dynamic destinationfile.vhdx
Neste comando, sourcefile é o nome do arquivo de disco da máquina virtual de origem e destinationfile é o nome do novo arquivo de disco que você deseja obter após a conversão.
- Crie uma nova máquina virtual no Hyper-V, então acopie a imagem de disco convertida nele.
Converter de Hyper-V para KVM
Para converter máquinas virtuais Hyper-V para ambientes KVM, faça o seguinte:
- Desligue a máquina virtual Hyper-V que você precisa converter. Em seguida escolha a máquina virtual e, no Gerenciador Hyper-V, clique em Exportar.
- Forneça o repositório de destino para os arquivos da máquina virtual.
- Note os núcleos de processador, memória e MAC da máquina virtual exportada.
- Copie o arquivo VHDX da máquina virtual de destino para o ambiente KVM.
- No host KVM, instale virt-v2v.
- Use o virt-v2v para converter o VHDX para o QCOW2 com o seguinte comando:
sudo virt-v2v -i disk sourcefile.vhdx -o local -of qcow2 -os targetfile
- Após a conversão estar concluída, note o SO do convidado.
- Use o VMM para criar uma nova máquina virtual no ambiente KVM.
- Escolha Importar imagem de disco existente, depois clique em Avançar.
- Localize o arquivo vhdx-sda, depois especifique o SO que você precisa instalar. Depois disso, clique em Avançar.
- Conclua a configuração inicial da nova VM: defina memória, CPU, nome da VM e especifique as configurações de rede KVM. Em seguida, clique em Aplicar.
- Configure opções específicas como MAC aqui. Em seguida, no topo da janela, selecione Iniciar instalação.
Considerações de Custo
O orçamento da organização permanece a pedra angular de qualquer escolha relativa a ambientes IT e a decisão entre KVM e Hyper-V não é exceção. Quando se trata de preços, KVM tem uma vantagem clara: como solução open-source, é gratuita para uso. Além disso, você também pode baixar e instalar as ferramentas de gerenciamento e módulos de funcionalidades sem custo adicional. O módulo Microsoft Hyper-V também está disponível gratuitamente. No entanto, a nuance é que a Microsoft recomenda atualizar para o Windows Server para executar ambientes virtuais Hyper-V.
Conclusão
A decisão final entre KVM e Hyper-V depende das necessidades específicas e orçamento da sua organização. No caso de precisar executar VMs do Windows the um ecossistema familiar e estar pronto a alocar fundos para obter a solução com suporte proprietário, Hyper-V é a opção certa. Por outro lado, se você estiver pronto a investir esforço adicional na configuração e ajuste da solução de código aberto, o KVM pode proporcionar capacidades e experiências praticamente iguais em termos de gerenciamento, segurança, escalabilidade e recursos, todos gratuitamente.