Como instalar o KVM/QEMU no CentOS 8
A forma completa do KVM é Kernel Virtual Machine. É uma solução de virtualização para Linux. KVM é um módulo do kernel do Linux que permite que o kernel do Linux atue como um programa hipervisor como VMware ESXi ou VSphere.
Neste artigo, mostrarei como instalar o KVM no CentOS 8 e criar uma máquina virtual KVM simples com ele. Então vamos começar.
Ativando a virtualização de hardware:
Você deve habilitar a extensão de virtualização de hardware do BIOS do seu computador para que o KVM funcione. Para processadores Intel, você deve ativar o recurso de processador VT-x ou VT-d no BIOS. Para processadores AMD, você deve ativar o recurso de processador AMD-v no BIOS.
Depois de habilitar a virtualização de hardware no BIOS, execute o seguinte comando para verificar se a extensão VT-x/VT-d ou AMD-v está habilitada.
Você deve ter o sinalizador svm ou vmx disponível na saída se tiver a virtualização de hardware habilitada no BIOS.
Estou usando um processador AMD. Portanto, o sinalizador svm está disponível no meu caso. Se você estiver usando um processador Intel, será vmx.
Atualizando o sistema:
Antes de instalar o KVM, você deve atualizar todos os pacotes de software existentes em sua máquina CentOS 8.
Primeiro, atualize o cache do repositório de pacotes DNF da sua máquina CentOS 8 com o seguinte comando:
O cache do repositório do pacote DNF deve ser atualizado.
Atualize todos os pacotes de software existentes da sua máquina CentOS 8 com o seguinte comando:
Para confirmar a atualização, pressione Y e, em seguida, pressione
O gerenciador de pacotes DNF deve baixar todos os pacotes necessários da Internet.
Depois que o download do pacote estiver concluído, ele deverá instalar todos os pacotes baixados. Pode demorar um pouco para ser concluído.
Neste ponto, seu sistema CentOS 8 deve estar atualizado.
Para que as alterações entrem em vigor, reinicie sua máquina CentOS 8 com o seguinte comando:
Configurando o SELinux para o Modo Permissivo:
A configuração do SELinux para KVM está fora do escopo deste artigo. Se você deixar o SELinux no modo imposição (padrão), receberá erros de permissão negada ao criar máquinas virtuais KVM. Se você não tem experiência com o SELinux, deve configurá-lo para o modo permissivo. Caso contrário, você não poderá criar máquinas virtuais KVM.
Para configurar o SELinux para o modo permissivo, abra o arquivo /etc/selinux/config com um editor de texto (ou seja, nano) com o seguinte comando:
Altere a linha SELINUX=enforcing para SELINUX=permissive conforme marcado na captura de tela abaixo.
Quando terminar, pressione
Para que as alterações entrem em vigor, reinicie o computador com o seguinte comando:
Instalando o KVM:
Você pode instalar facilmente todos os pacotes necessários para a virtualização KVM no CentOS 8 simplesmente instalando o grupo de pacotes Virtualization Host.
Você pode instalar o grupo de pacotes Virtualization Host em sua máquina CentOS 8 com o seguinte comando:
Para confirmar a instalação, pressione Y e, em seguida, pressione
O gerenciador de pacotes DNF deve baixar todos os pacotes necessários da Internet.
Depois que o download do pacote estiver concluído, ele deverá instalar todos os pacotes baixados. Pode demorar um pouco para ser concluído.
Neste ponto, o KVM deve ser instalado.
Agora, verifique se o serviço libvirtd está rodando com o seguinte comando:
Como você pode ver, o serviço libvirtd está ativo/em execução. O serviço libvirtd é muito importante. Se não estiver em execução, você não poderá administrar o KVM.
Se o serviço libvirtd não estiver em execução no seu caso, você pode iniciá-lo com o seguinte comando:
Verifique se você pode executar o comando de gerenciamento KVM virsh da seguinte forma:
O comando deve imprimir as informações da versão, como você pode ver na captura de tela abaixo.
Instalando o virt-install:
virt-install é uma ferramenta de linha de comando para criar facilmente máquinas virtuais KVM. virt-install é baseado em libvirt. Portanto, as máquinas virtuais criadas usando virt-install também podem ser gerenciadas com virsh e virt-manager.
Você pode instalar virt-install com o seguinte comando:
Para confirmar a instalação, pressione Y e depois pressione
virt-install deve ser instalado.
Configurando os diretórios KVM necessários:
Acho uma boa ideia manter todos os dados da máquina virtual organizados. Normalmente, mantenho todos os dados da máquina virtual KVM no diretório /kvm/. No diretório /kvm/, crio 2 subdiretórios disk/ e iso/. No subdiretório disk/, mantenho todos os arquivos do disco rígido da máquina virtual (VM). No subdiretório iso/, mantenho as imagens de instalação ISO de diferentes sistemas operacionais (ou seja, Ubuntu, Debian, CentOS, etc.).
Você pode criar as mesmas estruturas de diretório com o seguinte comando:
Criando uma máquina virtual KVM:
Nesta seção, mostrarei como criar uma máquina virtual Ubuntu Desktop 20.04 LTS KVM.
Primeiro, você deve baixar a imagem de instalação ISO do Ubuntu Desktop 20.04 LTS. Para manter todos os arquivos/dados da máquina virtual organizados, é uma boa ideia armazenar a imagem ISO no diretório /kvm/iso/.
Então, navegue até o diretório /kvm/iso/ com o seguinte comando:
Você pode baixar a imagem ISO do Ubuntu Desktop 20.04 LTS no site oficial do Ubuntu com o seguinte comando:
O wget deve começar a baixar a imagem ISO do Ubuntu Desktop 20.04 LTS. Vai demorar um pouco para ser concluído.
Neste ponto, a imagem ISO do Ubuntu Desktop 20.04 LTS deve ser baixada.
A imagem ISO do Ubuntu Desktop 20.04 LTS está disponível no diretório /kvm/iso/, como você pode ver na captura de tela abaixo.
Após o download da imagem ISO do Ubuntu Desktop 20.04 LTS, você pode criar uma máquina virtual KVM com o seguinte comando:
--os-type linux \
--os-variant ubuntu19.10 \
--ram 4096 \
--disk /kvm/disk/udesktop20_04-01.img,device=disk,bus=virtio,size=20,format=qcow2 \
--graphics vnc,listen=0.0.0.0 \
--noautoconsole \
--hvm \
--cdrom /kvm/iso/ubuntu-20.04.1-desktop-amd64.iso \
--boot cdrom,hd
Aqui, o nome da máquina virtual será udesktop20_04-01.
O sistema operacional que iremos instalar é o Linux.
A variante do sistema operacional é ubuntu19.10. O banco de dados do sistema operacional do CentOS 8 não possui uma entrada para o Ubuntu 20.04 LTS no momento da redação deste artigo. Então, usei as informações do Ubuntu 19.10.
Os valores de tipo de sistema operacional e variante de sistema operacional não são aleatórios. Você pode encontrar o tipo de sistema operacional e a variante do sistema operacional para a distribuição Linux desejada com o comando osinfo-query. Como você pode ver, nenhuma entrada para o Ubuntu 20.04 LTS está disponível. Mas uma entrada para o Ubuntu 19.10 está disponível. O tipo de SO do Ubuntu 19.10 é Linux e a variante do SO é ubuntu19.10.
A RAM (Random Access Memory) da VM será de 4096 MB (Megabytes) ou 4 GB (Gigabytes).
O disco virtual da VM será salvo no arquivo /kvm/disk/udesktop20.04-01.img. O disco virtual tem cerca de 20 GB de tamanho e o formato é QCOW2 (QEMU Copy-On-Write v2)
A máquina virtual estará acessível através do protocolo de área de trabalho remota VNC (Virtual Network Computing) e o servidor VNC estará escutando em todas as interfaces de rede disponíveis configuradas em seu host CentOS 8 KVM.
O host CentOS 8 KVM não tentará se conectar automaticamente à máquina virtual depois que a máquina virtual for criada. A máquina virtual continuará rodando em segundo plano.
Use a virtualização completa para a máquina virtual. Isso fará com que as máquinas virtuais funcionem melhor.
Use a imagem ISO do Ubuntu Desktop 20.04 LTS que acabamos de baixar como o CD/DVD ROM virtual da máquina virtual. Usado para instalar o Ubuntu Desktop 20.04 LTS na máquina virtual.
Defina a ordem de inicialização da máquina virtual. A primeira entrada de inicialização é o CD/DVD ROM virtual e, em seguida, o disco rígido virtual. Assim, a máquina virtual poderá inicializar a partir da imagem ISO do Ubuntu Desktop 20.04 LTS e instalar o Ubuntu Desktop 20.04 LTS no disco rígido.
Essas são todas as opções necessárias para criar uma máquina virtual KVM.
Depois de executar o comando virt-install, o KVM deve começar a criar a máquina virtual. Pode demorar um pouco dependendo da configuração da sua máquina virtual.
Neste ponto, a máquina virtual KVM deve ser criada.
Listando máquinas virtuais KVM:
Depois que a máquina virtual KVM é criada, você pode listá-la com o seguinte comando:
O comando deve mostrar todas as máquinas virtuais KVM que você possui. No momento, tenho apenas 1 máquina virtual udesktop20_04-01. Este é o que acabei de criar. Como você pode ver, a máquina virtual udesktop20_04-01 está em execução. Você deve conseguir se conectar a ele usando qualquer cliente VNC.
Configurando o Firewall para Acesso Remoto às Máquinas Virtuais KVM:
Para acessar a máquina virtual KVM remotamente, você deve permitir o acesso do firewall à porta VNC da máquina virtual.
Para localizar a porta VNC da máquina virtual KVM udesktop20_04-01, execute o seguinte comando:
Como você pode ver, o número da porta VNC da máquina virtual udesktop20_04-01 é 0.
Aqui, a porta 0 significa a porta 5900. Da mesma forma, a porta 1 significa a porta 5901 e assim por diante.
Como você pode ver, a máquina virtual KVM udesktop20_04-01 está sendo executada na porta 5900 (:0).
Para permitir o acesso à porta 5900, execute o seguinte comando:
Para que as alterações do firewall entrem em vigor, execute o seguinte comando:
Conectando-se remotamente às máquinas virtuais KVM com o VNC Client:
Para se conectar à máquina virtual via VNC, você deve conhecer o endereço IP do seu host CentOS 8 KVM.
Você pode encontrar o endereço IP do seu host CentOS 8 KVM com o seguinte comando:
No meu caso, o endereço IP é 192.168.0.103. Será diferente para você. Portanto, certifique-se de substituí-lo pelo seu a partir de agora.
Abra qualquer cliente VNC e conecte-se ao endereço 192.168.0.103:0.
Clique em Continuar.
Clique em Continuar.
Você deve estar conectado à tela da máquina virtual udesktop20_04-01 KVM, como pode ser visto na captura de tela abaixo.
Agora, você pode instalar o sistema operacional desejado na máquina virtual.
No meu caso, instalarei o sistema operacional Ubuntu Desktop 20.04 LTS na máquina virtual.
O Ubuntu Desktop 20.04 LTS está sendo instalado na máquina virtual KVM. Pode demorar um pouco para ser concluído.
Quando a instalação estiver concluída, clique em Reiniciar agora.
Pressione
A conexão VNC deve ser fechada.
A máquina virtual deve ser desligada automaticamente assim que a instalação do sistema operacional for concluída, como você pode ver na captura de tela abaixo.
Inicie a máquina virtual udesktop20_04-01 KVM com o seguinte comando:
A máquina virtual udesktop20_04-01 deve ser iniciada.
Agora, você pode se conectar à máquina virtual udesktop20_04-01 de um cliente VNC como antes. Como você pode ver, o Ubuntu Desktop 20.04 LTS está funcionando perfeitamente na máquina virtual KVM.
Removendo máquinas virtuais KVM:
Você também pode remover uma máquina virtual KVM com muita facilidade com a ferramenta de linha de comando virsh.
Como você pode ver, tenho 2 máquinas virtuais KVM (udesktop20_04-01 e udesktop20_04-02) em execução no meu host CentOS 8 KVM. Vamos remover a máquina virtual udesktop20_04-02 KVM.
Como você pode ver, a máquina virtual udesktop20_04-02 KVM está em execução. Você deve interrompê-lo antes de removê-lo.
Para forçar a parada da máquina virtual KVM udesktop20_04-02, execute o seguinte comando:
Como você pode ver, a máquina virtual udesktop20_04-02 está desligada.
Você pode remover permanentemente a máquina virtual udesktop20_04-02 e todos os seus discos rígidos virtuais conectados com o seguinte comando:
Como você pode ver, a máquina virtual udesktop20_04-02 não está mais disponível.
Problema nº 1: corrigindo erro de declaração cpu->kvm_msr_buf->nmsrs
Ao criar uma máquina virtual KVM no host CentOS 8 KVM, você pode ver a seguinte mensagem de erro. É um bug do kernel. Normalmente, isso acontece quando você executa o KVM dentro de outra máquina virtual. Estou executando o KVM dentro de uma máquina virtual VMware. É por isso que recebi esse erro, acredito. É fácil de consertar.
Abra o arquivo de configuração /etc/modprobe.d/kvm.conf com o seguinte comando:
O arquivo /etc/modprobe.d/kvm.conf deve ser aberto. Você deve habilitar a opção específica do processador para virtualização aninhada KVM a partir daqui.
Se você estiver usando um processador Intel, remova o comentário da linha marcada na captura de tela abaixo.
Se você estiver usando um processador AMD, remova o comentário da linha marcada na captura de tela abaixo.
Em seguida, adicione a linha options kvm ignore_msrs=1 no final do arquivo, conforme mostrado na captura de tela abaixo.
Quando terminar, pressione
Em seguida, reinicie seu host CentOS 8 KVM com o seguinte comando para que as alterações entrem em vigor.
Seu problema deve ser resolvido.
Problema nº 2: corrigindo o erro do protocolo RFB do cliente VNC:
Quando você se conecta à máquina virtual KVM usando um cliente VNC, você pode ver a seguinte mensagem de erro. Esta mensagem de erro é exibida quando a qualidade da imagem do cliente VNC é definida como Automática. É fácil de consertar.
Clique no ícone Propriedades do seu cliente VNC.
Como você pode ver, a Qualidade da imagem está definida como Automática.
Para resolver esse problema, selecione Baixa, Média ou Alta no menu suspenso Qualidade da imagem.
Quando terminar, clique em OK.
Seu problema deve ser resolvido.
Conclusão:
Neste artigo, mostrei como instalar o KVM no CentOS 8 e criar máquinas virtuais KVM a partir da linha de comando. Também mostrei como remover máquinas virtuais KVM e soluções para alguns problemas comuns de KVM. Isso deve ajudá-lo a começar a virtualização Linux KVM.