Compreensão das diferenças entre KVM e Hyper-V é fundamental 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 KVM e Hyper-V e depois compararemos os dois hipervisores.
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 em tempo real
O que é o Hypervisor KVM?
O acrônimo KVM significa Kernel-based Virtual Machine. É uma solução de virtualização totalmente aberta no núcleo Linux. O KVM executa em processadores x86, oferecendo aos usuários capacidades de hipervisor para construir ambientes virtualizados.
O hipervisor 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 auxiliada 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 têm CPUs que suportam virtualização auxiliada por hardware. Para instalar o KVM, você precisa baixar os pacotes necessários dos repositórios de software do Linux, além de kvm-qemu e 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 hipervisor nativo da Microsoft que permite a criação e o uso de máquinas virtuais (VM) 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 hipervisor é um componente opcional de download para os 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 entre si. Isto é possível graças à particionamento específico de pai (raiz) 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 aos seus 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 – ambos o Hyper-V e o KVM oferecem alto desempenho e grande escalabilidade.
O software de virtualização KVM é baseado no kernel Linux, que é uma solução open-source. Isso 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.
No entanto, a natureza open-source do KVM pode levar a situações problemáticas que podem demorar tempo e esforço para ser solucionadas. Ainda assim, 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 proprietário da Microsoft que vem embutido 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 de forma eficiente, executando múltiplas VMs no host e escalando suas cargas virtuais de trabalho conforme necessidade.
O principal desvantagem do Hyper-V é sua limitada compatibilidade com sistemas operacionais diferentes do Windows. Comunitário com certas complexidades de gerenciamento e potenciais problemas de compatibilidade, o Hyper-V também 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 são projetados para plataformas diferentes, suas ferramentas de gerenciamento também diferem.
Para o gerenciamento do Hyper-V, você pode usar a CLI Windows PowerShell. Caso queira uma solução com interface gráfica, você pode optar por usar o Windows Admin Center ou o Hyper-V Manager.
Além disso, as organizações podem aproveitar vários benefícios da ferramenta de gerenciamento empresarial nativa fornecida pela Microsoft: System Center Virtual Machine Manager (VMM) para Hyper-V. Os administradores normalmente preferem o VMM para gerenciar ambientes Hyper-V devido à visão de infraestrutura conveniente e informativa e às capacidades de escalabilidade. No entanto, você precisa comprar uma licença dedicada para usar o Gerenciador de Máquinas Virtuais.
Você pode realizar todas as tarefas de gerenciamento de KVM usando apenas a CLI, assim como com o Hyper-V via PowerShell. No entanto, aqueles que preferem interfaces gráficas para gerenciar suas infraestruturas KVM podem querer experimentar soluções como Morpheus, virt-manager ou Cloonix, entre outros.
Hyper-V e KVM compartilham uma característica significativa: uma vasta lista de compatibilidade de hardware, que fornece grande flexibilidade.
Para o KVM, você pode usar efetivamente qualquer armazenamento (incluindo armazenamento diretamente conectado e por rede). Por sua vez, o Hyper-V funciona com qualquer armazenamento com suporte do Windows. Tenha em mente que se você planeja armazenar arquivos de VM em um NAS ou compartilhamento de arquivos de rede, você precisará configurar o protocolo Server Message Block 3.0.
Opções de provisionamento de memória
A flexibilidade no uso de memória é outra vantagem compartilhada pelo KVM e o Hyper-V. Ambos os hipervisores podem usar memória regular ou NUMA (acesso não uniforme à memória) igualmente bem.
No entanto, vale notar a diferença entre o KVM e o Hyper-V na alocação dinâmica de memória. No Hyper-V, o recurso de memória dinâmica permite que as máquinas virtuais regulem o uso de memória dependendo das necessidades atuais da VM. A demanda não ultrapassa os limites de volume de memória definidos. Com a alocação dinâmica de memória, os administradores podem executar mais VMs em um único host ao fazer overprovisioning de memória.
O hipervisor KVM também permite a sobreprovisionamento de memória. No entanto, a implementação da funcionalidade é um pouco diferente daquela no Hyper-V. As máquinas virtuais KVM são processos separados executando no host sob o SO Linux. Assim, as VMs não possuem volumes de memória pré-alocados. O sistema operacional distribui memória entre as máquinas virtuais com base em pedidos. Em palavras simples, o software de virtualização KVM aloca blocos de memória para cada máquina virtual sob demanda.
Caso um host KVM encontre uma deficiência de memória física, o sistema envia algumas páginas de memória para swap. A quantidade de RAM livre aumenta sob demanda, permitindo assim o sobrecomprometimento de memória para o sistema do host.
Recursos de segurança
Quando se trata das capacidades de segurança na comparação KVM vs Hyper-V, ambas as soluções têm recursos de segurança eficientes que você pode usar para garantir a proteção dos dados e ambiente de sua organização.
Para o KVM, a isolamento e segurança da VM vêm das capacidades de duas soluções. A primeira, SELinux (Linux aprimorado de segurança) define uma perímetro de segurança em torno das máquinas virtuais. sVirt (virtualização segura) habilita segurança MAC (Controle de Acesso Obrigatório) para VMs convidadas, adicionando mais recursos 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, drivers e firmware não autorizados no momento do boot. Capacidades de segurança adicionais do Hyper-V incluem criptografia de tráfego em uma sub-rede 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 esta funcionalidade, os administradores podem mover VMs para um servidor diferente sem interromper as operações das VMs.
A migração de VM em execução pode ajudar as 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 principal anfitrião de virtualização, 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 as operações da sua organização.
Além disso, às vezes o seu anfitrião tem recursos insuficientes para executar as VMs que originalmente foram criadas nele. Por exemplo, uma VM pode tornar-se muito “grande” durante o uso e causar problemas de desempenho para todo o anfitrião. A melhor maneira para otimizar o desempenho do anfitrião é usar as capacidades de migração em execução do seu hipervisor para mover essa máquina virtual para um anfitrião 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. Ver as 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 etapas:
- Instale o qemu-ing.
- Para converter uma imagem de disco 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 VM de origem e destinationfile é o novo nome do arquivo de disco que você deseja obter após a conversão.
- Crie uma nova máquina virtual no Hyper-V e então conecte a imagem de disco convertida a ela.
Converter de Hyper-V para KVM
Para converter VMs Hyper-V para ambientes KVM, siga os seguintes passos:
- Desligue a VM Hyper-V que você precisa converter. Então escolha a VM, e, no Gerenciador do Hyper-V, clique em Exportar.
- Forneça o repositório de destino para os arquivos da VM.
- Tome nota dos núcleos do processador, da memória e do MAC da VM exportada.
- Copie o arquivo VHDX da máquina virtual de destino para o ambiente KVM.
- No host KVM, instale o virt-v2v.
- Use o virt-v2v para converter VHDX para QCOW2 com o seguinte comando:
sudo virt-v2v -i disk sourcefile.vhdx -o local -of qcow2 -os targetfile
- Depois que a conversão estiver completa, 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, em seguida, 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 relacionada a ambientes IT e a decisão entre KVM e Hyper-V não é exceção. Quando se trata de preços, o KVM tem uma vantagem clara: como uma solução de código aberto, é grátis para usar. Além disso, você também pode baixar e instalar as ferramentas de gerenciamento e módulos de funcionalidade sem custos adicionais. 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 escolha final entre KVM vs Hyper-V depende das necessidades específicas e do orçamento da sua organização. No caso de você precisar executar VMs do Windows em um ecossistema familiar e estiver pronto a alocar fundos para obter uma solução suportada proprietária, o 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 oferecer capacidades e experiência quase iguais em termos de gerenciamento, segurança, escalabilidade e recursos, tudo de graça.