Série RHCSA: Noções Básicas de Virtualização e Administração de Hóspedes com KVM – Parte 15

Se você procurar a palavra virtualizar em um dicionário, encontrará que significa “criar uma versão virtual (em vez de real) de algo“. Em computação, o termo virtualização refere-se à possibilidade de executar múltiplos sistemas operacionais simultaneamente e isolados uns dos outros, em cima do mesmo sistema físico (hardware), conhecido no esquema de virtualização como host.

RHCSA Series: Essentials of Virtualization and Guest Administration with KVM – Part 15

Através do uso do monitor de máquina virtual (também conhecido como hipervisor), máquinas virtuais (referidas como guests) recebem recursos virtuais (ou seja, CPU, RAM, armazenamento, interfaces de rede, entre outros) do hardware subjacente.

Com isso em mente, é evidente que uma das principais vantagens da virtualização é a economia de custos (em equipamentos e infraestrutura de rede e em termos de esforço de manutenção) e uma redução substancial no espaço físico necessário para acomodar todo o hardware necessário.

Já que este breve tutorial não pode cobrir todos os métodos de virtualização, eu o encorajo a consultar a documentação listada no resumo para mais detalhes sobre o assunto.

Por favor, tenha em mente que o presente artigo destina-se a ser um ponto de partida para aprender o básico da virtualização no RHEL 7 usando KVM (Kernel-based Virtual Machine) com utilitários de linha de comando, e não uma discussão aprofundada sobre o tema.

Verificando os Requisitos de Hardware e Instalando Pacotes

Para configurar a virtualização, sua CPU deve oferecer suporte a ela. Você pode verificar se seu sistema atende aos requisitos com o seguinte comando:

# grep -E 'svm|vmx' /proc/cpuinfo

Na captura de tela a seguir, podemos ver que o sistema atual (com um processador AMD) oferece suporte à virtualização, conforme indicado por svm. Se tivéssemos um processador da Intel, veríamos vmx nos resultados do comando acima.

Check KVM Support

Além disso, você precisará ter as capacidades de virtualização habilitadas no firmware do seu host (BIOS ou UEFI).

Agora, instale os pacotes necessários:

  1. qemu-kvm é um virtualizador de código aberto que fornece emulação de hardware para o hipervisor KVM, enquanto o qemu-img fornece uma ferramenta de linha de comando para manipular imagens de disco.
  2. libvirt inclui as ferramentas para interagir com as capacidades de virtualização do sistema operacional.
  3. libvirt-python contém um módulo que permite que aplicativos escritos em Python usem a interface fornecida pelo libvirt.
  4. libguestfs-tools: ferramentas de linha de comando diversas para administradores de sistema de máquinas virtuais.
  5. virt-install: outras utilidades de linha de comando para administração de máquinas virtuais.
# yum update && yum install qemu-kvm qemu-img libvirt libvirt-python libguestfs-tools virt-install

Após a conclusão da instalação, certifique-se de iniciar e habilitar o serviço libvirtd:

# systemctl start libvirtd.service
# systemctl enable libvirtd.service

Por padrão, cada máquina virtual só poderá se comunicar com as demais no mesmo servidor físico e com o próprio host. Para permitir que os convidados alcancem outras máquinas dentro de nossa LAN e também a Internet, precisamos configurar uma interface de ponte em nosso host (digamos br0, por exemplo) por,

1. adicionar a seguinte linha em nossa configuração principal da NIC (provavelmente em /etc/sysconfig/network-scripts/ifcfg-enp0s3):

BRIDGE=br0

2. criar o arquivo de configuração para br0 (/etc/sysconfig/network-scripts/ifcfg-br0) com estes conteúdos (observe que talvez seja necessário alterar o endereço IP, o gateway e as informações de DNS):

DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
IPADDR=192.168.0.18
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
NM_CONTROLLED=no
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=br0
ONBOOT=yes
DNS1=8.8.8.8
DNS2=8.8.4.4

3. finalmente, habilitar o encaminhamento de pacotes fazendo, em /etc/sysctl.conf,

net.ipv4.ip_forward = 1

e carregar as alterações na configuração atual do kernel:

# sysctl -p

Observe que talvez também seja necessário informar ao firewalld que esse tipo de tráfego deve ser permitido. Lembre-se de que você pode consultar o artigo sobre esse tema nesta mesma série (Parte 11: Controle de Tráfego de Rede Usando FirewallD e Iptables) se precisar de ajuda para fazer isso.

Source:
https://www.tecmint.com/kvm-virtualization-basics-and-guest-administration/