Pesquisa de site

Como instalar o KVM no CentOS/RHEL 8


A máquina virtual baseada em kernel (KVM em resumo) é uma solução de virtualização de código aberto e padrão de fato que está totalmente integrada ao Linux. É um módulo de kernel carregável que transforma o Linux em um hipervisor tipo 1 (bare metal) que cria uma plataforma operacional virtual usada para executar máquinas virtuais (VMs).

Em KVM, cada VM é um processo Linux agendado e gerenciado pelo kernel e possui hardware virtualizado privado (ou seja, CPU, placa de rede, disco, etc.). Ele também oferece suporte à virtualização aninhada, que permite executar uma VM dentro de outra VM.

Alguns de seus principais recursos incluem suporte para uma ampla gama de plataformas de hardware suportadas por Linux (hardware x86 com extensões de virtualização (Intel VT ou AMD-V)), fornece segurança e isolamento aprimorados de VM usando ambos SELinux e virtualização segura (sVirt), herda recursos de gerenciamento de memória do kernel e suporta migração offline e em tempo real (migração de uma VM em execução entre hosts físicos).

Neste artigo, você aprenderá como instalar a virtualização KVM, criar e gerenciar máquinas virtuais no CentOS 8 e no RHEL 8 Linux.

Pré-requisitos

  1. Uma nova instalação do servidor CentOS 8
  2. Uma nova instalação do servidor RHEL 8
  3. Uma assinatura RedHat habilitada no servidor RHEL 8

Além disso, certifique-se de que sua plataforma de hardware oferece suporte à virtualização executando o comando a seguir.

grep -e 'vmx' /proc/cpuinfo		#Intel systems
grep -e 'svm' /proc/cpuinfo		#AMD systems

Além disso, confirme se os módulos KVM estão carregados no kernel (devem estar, por padrão).

lsmod | grep kvm

Aqui está um exemplo de saída do sistema de teste baseado em Intel:

Em uma série anterior de guias KVM, mostramos como criar máquinas virtuais no Linux usando KVM (máquina virtual baseada em kernel), onde demonstramos como criar e gerenciar VMs usando a ferramenta GUI virt-manager (que agora está obsoleto de acordo com a documentação do RHEL 8). Para este guia, adotaremos uma abordagem diferente, usaremos o console web Cockpit.

Etapa 1: configurar o console da Web do Cockpit no CentOS 8

1. O cockpit é uma interface baseada na web fácil de usar, integrada e extensível para administrar um servidor Linux em um navegador da web. Ele permite que você execute tarefas do sistema, como configurar redes, administrar armazenamento, criar VMs e inspecionar logs com um mouse. Ele usa logins e privilégios de usuário normais do seu sistema, mas outros métodos de autenticação também são suportados.

Ele vem pré-instalado e habilitado em sistemas CentOS 8 e RHEL 8 recém-instalados. Se você não o tiver instalado, instale-o usando o seguinte comando dnf. A extensão cockpit-machines deve ser instalada para gerenciar VMs baseadas em Libvirt.

dnf install cockpit cockpit-machines

2. Quando a instalação do pacote for concluída, inicie o soquete do cockpit, habilite-o para inicialização automática na inicialização do sistema e verifique seu status para confirmar se está instalado e funcionando.

systemctl start cockpit.socket
systemctl enable cockpit.socket
systemctl status cockpit.socket

3. Em seguida, adicione o serviço cockpit no firewall do sistema que está habilitado por padrão, usando o comando firewall-cmd e recarregue a configuração do firewall para aplicar as novas alterações.

firewall-cmd --add-service=cockpit --permanent
firewall-cmd --reload

4. Para acessar o console da web do cockpit, abra um navegador da web e use o seguinte URL para navegar.

https://FQDN:9090/
OR
https://SERVER_IP:9090/

O cockpit utiliza um certificado autoassinado para ativar o HTTPS, basta prosseguir com a conexão quando receber um aviso do navegador. Na página de login, use as credenciais da conta de usuário do servidor.

Etapa 2: Instalando a Virtualização KVM CentOS 8

5. Em seguida, instale o módulo de virtualização e outros pacotes de virtualização da seguinte maneira. O pacote virt-install fornece uma ferramenta para instalar máquinas virtuais a partir da interface de linha de comando, e um virt-viewer é usado para visualizar máquinas virtuais.

dnf module install virt 
dnf install virt-install virt-viewer

6. Em seguida, execute o comando virt-host-validate para validar se a máquina host está configurada para executar drivers de hipervisor libvirt.

virt-host-validate

7. Em seguida, inicie o daemon libvirtd (libvirtd) e habilite-o para iniciar automaticamente em cada inicialização. Em seguida, verifique seu status para confirmar se está instalado e funcionando.


systemctl start libvirtd.service
systemctl enable libvirtd.service
systemctl status libvirtd.service

Etapa 3: configurar a ponte de rede (switch de rede virtual) via Cockpit

8. Agora crie uma ponte de rede (switch de rede virtual) para integrar máquinas virtuais à mesma rede do host. Por padrão, uma vez iniciado o daemon libvirtd, ele ativa a interface de rede padrão virbr0 que representa o switch de rede virtual que opera no modo NAT.

Para este guia, criaremos uma interface de rede em modo bridge chamada br0. Isso permitirá que as máquinas virtuais sejam acessíveis nas redes host.

Na interface principal do cockpit, clique em Rede e, em seguida, clique em Adicionar ponte conforme indicado na captura de tela a seguir.

9. Na janela pop-up, insira o nome da ponte e selecione os escravos da ponte ou dispositivos de porta (por exemplo, enp2s0 representando a interface Ethernet) conforme mostrado na captura de tela a seguir. Em seguida, clique em Aplicar.

10. Agora quando você olhar a lista de Interfaces, a nova ponte deverá aparecer lá e após alguns segundos, a interface Ethernet deverá estar desabilitada (removida).

Etapa 4: Criação e gerenciamento de máquinas virtuais por meio do Cockpit Web Console

11. Na interface principal do cockpit, clique na opção Máquinas Virtuais conforme destacado na captura de tela a seguir. Na página Máquinas Virtuais, clique em Criar VM.

12. Uma janela com opções para criar uma nova VM será exibida. Insira a conexão, o nome (por exemplo, ubuntu18.04), o tipo de fonte de instalação (no sistema de teste, armazenamos imagens ISO no pool de armazenamento, ou seja, /var/lib/libvirt/ images/), Fonte de instalação, Armazenamento, Tamanho, Memória conforme mostrado na imagem a seguir. O fornecedor do sistema operacional e o sistema operacional devem ser escolhidos automaticamente após inserir a fonte de instalação.

Marque também a opção de iniciar imediatamente a VM e clique em Criar.

13. Após clicar em Criar na etapa anterior, a VM deverá ser iniciada automaticamente e deverá inicializar usando a imagem ISO fornecida. Prossiga com a instalação do sistema operacional convidado (Ubuntu 18.04 no nosso caso).

Se você clicar em Interfaces de rede da VM, a origem da rede deverá indicar a interface de rede da ponte recém-criada.

E durante a instalação, na etapa de configuração de uma interface de rede, você deverá notar que a interface VMs Ethernet recebe um endereço IP do servidor DHCP do host rede.

Observe que você precisa instalar o pacote OpenSSH para acessar o sistema operacional convidado via SSH de qualquer máquina na rede host, conforme descrito na última seção.

14. Quando a instalação do sistema operacional convidado for concluída, reinicie a VM, vá para Discos e desconecte/remova o dispositivo cdrom nos discos das VMs . Em seguida, clique em Executar para iniciar a VM.

15. Agora, em Consoles, você pode fazer login no sistema operacional convidado usando uma conta de usuário criada durante a instalação do sistema operacional.

Etapa 5: Acessando um sistema operacional convidado de máquina virtual via SSH

16. Para acessar o sistema operacional convidado recém-instalado a partir da rede host via SSH, execute o seguinte comando (substitua 10.42.0.197 pelo endereço IP do seu convidado).

ssh [email 

17. Para desligar, reiniciar ou excluir uma VM, clique nela na lista de VMs e use os botões destacados na captura de tela a seguir.

É tudo por agora! Neste guia, mostramos como instalar pacotes de virtualização KVM e criar e gerenciar VMs por meio do console web do cockpit. Para mais detalhes, consulte: Introdução à virtualização no RHEL 8.