Kernel-based Virtual Machine (KVM em resumo) é uma solução de virtualização de código aberto e padrão de facto que é firmemente integrada no 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).
Acima do KVM, cada VM é um processo Linux que é programado e gerenciado pelo kernel e tem hardware virtualizado privado (ou seja, CPU, placa de rede, disco, etc.). Ele também suporta virtualização aninhada, que lhe permite executar uma VM dentro de outra VM.
Algumas de suas principais características incluem suporte a uma ampla gama de plataformas de hardware suportadas por Linux (hardware x86 com extensões de virtualização (Intel VT ou AMD-V)), ele fornece maior segurança e isolamento da VM usando SELinux e virtualização segura (sVirt), ele herda recursos de gerenciamento de memória do kernel, e suporta migração tanto offline quanto em tempo real (migração de uma VM rodando entre hosts físicos).
Neste artigo, você aprenderá como instalar virtualização KVM, criar e gerenciar máquinas virtuais no CentOS 8 e RHEL 8 Linux.
Prrequisitos
- Uma nova instalação do servidor CentOS 8
- Uma nova instalação do servidor RHEL 8
- Uma subscrição RedHat activada no servidor RHEL 8
Adicionalmente, certifique-se que a sua plataforma de hardware suporta virtualização, executando o seguinte comando.
# grep -e 'vmx' /proc/cpuinfo#Intel systems# grep -e 'svm' /proc/cpuinfo#AMD systems
Ainda, confirme que os módulos KVM estão carregados no kernel (eles devem estar, por padrão).
# lsmod | grep kvm
Aqui está uma amostra de saída no sistema de teste que é baseado em Intel:
Em uma série anterior de guias KVM, mostramos como criar máquinas virtuais no Linux usando KVM (Kernel-based Virtual Machine) onde demonstramos como criar e gerenciar VMs usando a ferramenta GUI virt-manager (que agora é depreciada de acordo com a documentação do RHEL 8). Para este guia, vamos tomar uma abordagem diferente, vamos usar o console web Cockpit.
Passo 1: Configuração do console web 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 web. Ele permite realizar tarefas do sistema como configurar redes, administrar armazenamento, criar VMs e inspecionar logs com um mouse. Ele usa os 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 no sistema CentOS 8 e RHEL 8 recentemente instalado, se você nã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 estiver completa, inicie o socket do cockpit, habilite-o para iniciar automaticamente no boot do sistema e verifique seu status para confirmar que ele está funcionando.
# systemctl start cockpit.socket# systemctl enable cockpit.socket# systemctl status cockpit.socket
3. Em seguida, adicione o serviço do cockpit no firewall do sistema que está habilitado por padrão, utilizando 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 a console web do cockpit, abra um navegador web e utilize o seguinte URL para navegar.
https://FQDN:9090/ORhttps://SERVER_IP:9090/
O cockpit utiliza um certificado autoassinado para habilitar HTTPS, basta prosseguir com a conexão quando você receber um aviso do navegador. Na página de login, use as credenciais de conta de usuário do seu servidor.
Passo 2: Instalando o KVM Virtualization CentOS 8
5. A seguir, instale o módulo de virtualização e outros pacotes de virtualização da seguinte forma. O pacote virt-install fornece uma ferramenta para instalar máquinas virtuais a partir da interface de linha de comando, e um visualizador de 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 boot. Em seguida, verifique seu status para confirmar que ele está funcionando.
# systemctl start libvirtd.service# systemctl enable libvirtd.service# systemctl status libvirtd.service
Passo 3: Configurar bridge de rede (Virtual Network Switch) via Cockpit
8. Agora crie um bridge de rede (virtual network switch) para integrar máquinas virtuais à mesma rede que o 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 em modo NAT.
Para este guia, vamos criar uma interface de rede em um modo bridged chamado br0. Isto permitirá que máquinas virtuais estejam acessíveis nas redes host.
Da interface principal do cockpit, clique em Networking, depois clique em Add Bridge como indicado na seguinte captura de tela.
9. A partir da janela pop-up, digite o nome da ponte e selecione os escravos de ponte ou dispositivos de porta (por exemplo, enp2s0 representando a interface Ethernet) como mostrado na seguinte captura de tela. Depois clique em Apply.
10. Agora quando você olhar para a lista de interfaces, a nova ponte deve aparecer lá e após alguns segundos, a interface Ethernet deve ser desabilitada (tirada).
Step 4: Criando e gerenciando máquinas virtuais via Cockpit Web Console
11. Da interface principal do cockpit, clique na opção Máquinas Virtuais, conforme destacado na captura de tela a seguir. A partir da página Máquinas Virtuais, clique em Create VM.
12. Uma janela com opções para criar uma nova VM será exibida. Digite a Conexão, Nome (e,g ubuntu18.04), Tipo de Fonte de Instalação (no sistema de teste, temos imagens ISO armazenadas sob o pool de armazenamento ou seja /var/lib/libvirt/images/), Fonte de Instalação, Armazenamento, Tamanho, Memória como mostrado na imagem a seguir. O Vendedor de SO e o Sistema Operacional devem ser escolhidos automaticamente após entrar na Fonte de Instalação.
Vá também na opção de iniciar imediatamente a VM, depois clique em Create.
13. Após clicar em Create a partir do passo anterior, a VM deverá ser iniciada automaticamente e deverá arrancar utilizando a imagem ISO fornecida. Proceda para instalar o sistema operacional convidado (Ubuntu 18.04 no nosso caso).
Se você clicar em Network Interfaces da VM, a fonte de rede deve indicar a interface de rede bridge recém-criada.
E durante a instalação, no passo de configuração de uma interface de rede, você deve ser capaz de notar que a interface Ethernet da VMs recebe um endereço IP do servidor DHCP da rede do host.
Nota que você precisa instalar o pacote OpenSSH para acessar o sistema operacional convidado via SSH de qualquer máquina na rede host, como descrito na última seção.
14. Quando a instalação do SO convidado estiver completa, reinicialize a VM, depois vá para Discos e remova/remova o dispositivo cdrom sob os discos VMs. Depois clique em Run para iniciar a VM.
15. Agora em Consoles, você pode entrar no SO convidado usando uma conta de usuário que você criou durante a instalação do SO.
Passo 5: Acessando um SO convidado de máquina virtual via SSH
16. Para acessar o SO convidado recentemente instalado da rede host via SSH, execute o seguinte comando (substitua 10.42.0.197 pelo endereço IP do seu convidado).
$ ssh [email protected]
17. Para desligar, reiniciar ou apagar uma VM, clique sobre ela na lista de VMs, depois use os botões destacados na seguinte captura de tela.
>
É tudo por enquanto! Neste guia, nós mostramos como instalar pacotes de virtualização KVM, e criar e gerenciar VMs através da console web do cockpit. Para mais detalhes, veja: Começando com a virtualização no RHEL 8.