Observação:

Crie VMs com KVM no Oracle Linux

Introdução

A Máquina Virtual baseada em Kernel (KVM) é um hipervisor type-1 (bare-metal) de código-fonte aberto. Essa funcionalidade permite que um sistema host, como o Oracle Linux 8, hospede várias máquinas virtuais (VMs) ou convidados em execução no hardware suportado.

Este tutorial implantará o Oracle Linux Kernel Virtualization Manager (KVM) para criar uma máquina virtual.

Objetivos

Pré-requisitos

Qualquer sistema Oracle Linux 8 ou posterior com as seguintes configurações:

Validar Ambiente Suporta Virtualização

Observação: ao usar o ambiente de laboratório gratuito, consulte Conceitos Básicos do Oracle Linux Lab para obter conexão e outras instruções de uso.

  1. Se ainda não estiver conectado, abra um terminal e conecte-se via ssh à sua instância.

    ssh oracle@<ip_address_of_instance>
    
  2. Execute o comando a seguir para determinar o tipo de CPU.

    grep -e 'vendor_id' /proc/cpuinfo
    

    Exemplo de Saída:

    [oracle@ol-node01 ~]$ grep -e 'vendor_id' /proc/cpuinfo
    vendor_id	: GenuineIntel 
    vendor_id	: GenuineIntel
    vendor_id	: GenuineIntel
    vendor_id	: GenuineIntel
    vendor_id	: GenuineIntel
    vendor_id	: GenuineIntel
    

    Este sistema é baseado em Intel, mostrado pela saída de GenuineIntel.

  3. Para sistemas Intel, digite o comando a seguir.

    grep -e 'vmx' /proc/cpuinfo
    

    A existência do sinalizador vmx na saída do comando indica que esse sistema suporta virtualização.

  4. Verifique os módulos KVM carregados.

    lsmod | grep kvm
    

    Exemplo de Saída:

    [oracle@ol-node01 ~]$ lsmod |grep kvm
    kvm_intel             262144  0 
    kvm                   696320  1 kvm_intel
    irqbypass              16384  1 kvm
    

    A saída exibe o módulo kernel KVM e o módulo de processador kvm_intel com base no hardware desse sistema. Esses módulos devem ser carregados por padrão em sistemas Linux modernos.

Instalar e iniciar o KVM

  1. Instale os pacotes de software associados ao módulo de virtualização do Oracle Linux.

    sudo dnf module install virt -y
    

    Este comando instala o conjunto de pacotes de virtualização, que incluem libvirt, qemu-kvm e outras dependências.

  2. Instale virt-install e virt-viewer.

    sudo dnf install virt-install virt-viewer -y
    

    Isso conclui a instalação do conjunto de pacotes necessário.

  3. Valide se a máquina host está pronta e configurada para executar VMs libvirt.

    virt-host-validate
    

    Exemplo de Saída:

    [oracle@ol-node01 ~]$ virt-host-validate
    QEMU: Checking for hardware virtualization                                 : PASS
    QEMU: Checking if device /dev/kvm exists                                   : PASS
    QEMU: Checking if device /dev/kvm is accessible                            : PASS
    QEMU: Checking if device /dev/vhost-net exists                             : PASS
    QEMU: Checking if device /dev/net/tun exists                               : PASS
    QEMU: Checking for cgroup 'cpu' controller support                         : PASS
    QEMU: Checking for cgroup 'cpuacct' controller support                     : PASS
    QEMU: Checking for cgroup 'cpuset' controller support                      : PASS
    QEMU: Checking for cgroup 'memory' controller support                      : PASS
    QEMU: Checking for cgroup 'devices' controller support                     : PASS
    QEMU: Checking for cgroup 'blkio' controller support                       : PASS
    QEMU: Checking for device assignment IOMMU support                         : WARN (No ACPI DMAR table found, IOMMU either disabled in BIOS or not supported by this hardware platform)
    QEMU: Checking for secure guest support                                    : WARN (Unknown if this platform has Secure Guest support)
    

    Se todos verificarem PASS, o sistema estará preparado para VMs criadas. Se alguma verificação for FALHA, siga as instruções para corrigir o problema. Se qualquer verificação retornar o valor de WARN, considere seguir as instruções para melhorar os recursos de virtualização.

  4. Inicie o daemon libvirtd e ative-o para iniciar automaticamente em cada inicialização. Em seguida, verifique seu status para confirmar se ele está ativo e em execução.

    sudo systemctl enable --now libvirtd.service
    sudo systemctl status libvirtd.service
    

    Exemplo de Saída:

    [oracle@ol-node01 ~]$ sudo systemctl enable --now libvirtd.service
    [oracle@ol-node01 ~]$ sudo systemctl status libvirtd.service
    * libvirtd.service - Virtualization daemon
       Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor pr>
       Active: active (running) since Mon 2022-06-13 21:28:19 GMT; 8s ago
         Docs: man:libvirtd(8)
               https://libvirt.org
    ...
    

    A saída indica que o serviço está ativado e em execução.

Configurar o Cockpit Web Console para gerenciar o KVM no Oracle Linux

  1. Instale a extensão cockpit-machines para gerenciar VMs com base no Libvirt.

    sudo dnf install cockpit cockpit-machines –y
    
  2. Inicie o soquete do cockpit e ative-o para iniciar automaticamente na inicialização do sistema.

    sudo systemctl enable --now cockpit.socket
    sudo systemctl status cockpit.socket
    

    Exemplo de Saída:

    [oracle@ol-node01 ~]$ sudo systemctl enable --now cockpit.socket
    Created symlink /etc/systemd/system/sockets.target.wants/cockpit.socket -> /usr/lib/systemd/system/cockpit.socket.
    [oracle@ol-node01 ~]$ sudo systemctl status cockpit.socket
    * cockpit.socket - Cockpit Web Service Socket
       Loaded: loaded (/usr/lib/systemd/system/cockpit.socket; enabled; vendor pres>
       Active: active (listening) since Mon 2022-06-13 21:39:24 GMT; 10s ago
         Docs: man:cockpit-ws(8)
       Listen: [::]:9090 (Stream)
    ...
    

    A saída indica que o serviço está ativado e ouvindo.

  3. Para acessar este site remotamente, ative a porta do firewall para o serviço do cockpit e recarregue a configuração do firewall para aplicar as novas alterações.

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

    Observação: Execute este próximo comando em um 2o terminal no Desktop lunabox.

  4. Abra um 2o terminal no Desktop lunabox e digite o seguinte comando para criar uma porta local para o Cockpit usando ssh.

    ssh -L 9090:localhost:9090 oracle@<instance_ip_address>
    
  5. Abra um Web browser na sua área de trabalho e navegue até https://localhost:9090.

    O console web do Cockpit usa um certificado autoassinado para ativar HTTPS.

    accept_cert

    Clique em Avançado e aceite a conexão quando receber um aviso do navegador.

  6. Faça log-in como usuário oracle com a senha oracle.

    fazer log-in

    O Painel de Cockpit é exibido.

  7. Clique no botão "Acesso Limitado" para obter privilégios Administrativos.

    laccesso

  8. Feche a janela de acesso Administrativo.

    claccess

Criar Máquina Virtual com base em um ISO

  1. Clique na opção "Máquinas Virtuais" no painel de navegação à esquerda.

  2. Clique no botão "Create VM".

    vm

  3. Forneça as seguintes informações:

    Name: OL-demo
    Connection: System
    Installation type: URL (ISO image or distro install tree)
    Installation source: https://yum.oracle.com/ISOS/OracleLinux/OL8/u6/x86_64/OracleLinux-R8-U6-x86_64-dvd.iso
    Operating system: Oracle Linux 8.6
    Storage: Create new volume
    Size: 20 GiB
    Memory: 16 GiB
    Immediately start VM: check
    

    vm

  4. Clique em "Criar" para começar.

  5. Na lista de Máquinas Virtuais, clique no link OL-demo.

    vmlist

  6. Role para baixo para exibir a Console VNC.

    Se você estiver rápido o suficiente, verá um menu com as opções para Instalar o Oracle Linux ou Testar esta mídia e Instalar. A opção Teste será selecionada por padrão após alguns segundos. O instalador validará o conteúdo na mídia e iniciará o instalador.

    bootm

  7. Quando o instalador for inicializado, a tela Bem-vindo ao Oracle Linux será exibida. Comece a instalação selecionando o idioma do processo de instalação.

    idioma

    Este laboratório não continua com o processo de instalação.

    Observação: Você pode assistir a um vídeo grátis que demonstre o processo de instalação do Oracle Linux neste link de vídeo: Instalando o Oracle Linux 8

  8. Feche o navegador da Web clicando no 'X' no canto superior direito da janela.

Criar Máquina Virtual usando Imagens do Oracle Cloud

Observação: Certifique-se de informar os comandos a seguir na janela de terminal da sua instância de nuvem (ol-node01).

  1. Altere o local de armazenamento de imagens do KVM.

    cd /var/lib/libvirt/images
    
  2. Faça download do modelo de VM do Oracle Linux.

    sudo curl -O https://yum.oracle.com/templates/OracleLinux/OL8/u6/x86_64/OL8U6_x86_64-kvm-b126.qcow
    
  3. Criar arquivo de metadados.

    cat << 'EOF' | sudo tee ~/meta-data > /dev/null
    instance-id: iid-local01
    local-hostname: vm-01
    EOF
    
  4. Criar arquivo de dados do usuário.

    cat << 'EOF' | sudo tee ~/user-data > /dev/null
    #cloud-config
    
    system_info:
      default_user:
        name: opc
    
    ssh_authorized_keys:
      - <paste_public_key_here>
    EOF
    
  5. Gerar um Par de Chaves SSH

    ssh-keygen -t rsa -b 4096
    

    Clique em Enter para aceitar cada um dos padrões. O par de chaves é gravado no diretório .ssh no home dos usuários.

  6. Copie a chave pública para o arquivo de dados do usuário.

    SSHKEY=$(cat ~/.ssh/id_rsa.pub)
    sed -i "s|<paste_public_key_here>|${SSHKEY}|g" ~/user-data
    
  7. Gere a imagem ISO.

    sudo genisoimage -output /var/lib/libvirt/images/vm-01.iso -volid cidata -joliet -rock ~/user-data ~/meta-data
    
  8. Crie a instância.

    sudo cp /var/lib/libvirt/images/OL8U6_x86_64-kvm-b126.qcow /var/lib/libvirt/images/vm-01.qcow
    
    sudo virt-install --name vm-01 \
    --memory 2048 \
    --vcpus 2 \
    --disk /var/lib/libvirt/images/vm-01.qcow,device=disk,bus=virtio \
    --disk /var/lib/libvirt/images/vm-01.iso,device=cdrom \
    --os-type linux --os-variant ol8.6 \
    --virt-type kvm --graphics none \
    --network network=default,model=virtio \
    --noautoconsole \
    --import
    
  9. Liste as VMs.

    sudo virsh list
    
  10. Recupere o endereço IP da máquina virtual vm-01.

    sudo virsh net-dhcp-leases --network default
    

    Observação: Dependendo da rapidez com que a máquina virtual é iniciada, talvez seja necessário executar o comando novamente para exibir o endereço IP.

  11. Como alternativa, você pode filtrar com base no endereço MAC.

    sudo virsh domiflist vm-01
    
  12. Copie o endereço MAC da saída anterior e forneça no comando a seguir.

    sudo virsh net-dhcp-leases --network default --mac <MAC_address>
    
  13. Verifique se a máquina virtual funciona conectando-se com ssh.

    ssh opc@<vm-01-ip_address>
    

    Exemplo de Saída:

    [oracle@ol-node01 images]$ ssh opc@192.168.122.46
    The authenticity of host '192.168.122.46 (192.168.122.46)' can't be established.
    ECDSA key fingerprint is SHA256:xcuVfQdoFDCC72i7plD0OfqDTSBG6QWhOm5ti4HIKEs.
    Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
    Warning: Permanently added '192.168.122.46' (ECDSA) to the list of known hosts.
      
    [opc@vm-01 ~]$ uname -a
    Linux vm-01 5.4.17-2136.307.3.1.el8uek.x86_64 #2 SMP Mon May 9 17:29:47 PDT 2022 x86_64 x86_64 x86_64 GNU/Linux
    

[Opcional] Exibir VM do Painel do Cockpit

Observação: Execute este próximo comando em um terminal no Desktop lunabox.

  1. Digite o comando a seguir na janela do terminal do Desktop lunabox para criar uma porta local para o Cockpit usando ssh.

    ssh -L 9090:localhost:9090 oracle@<instance_ip_address>
    
  2. Abra um Web browser na sua área de trabalho e navegue até https://localhost:9090.

  3. Faça log-in como usuário oracle com a senha oracle.

    fazer log-in

    O Painel de Cockpit é exibido.

  4. Se necessário, clique no botão "Acesso Limitado" para obter privilégios Administrativos.

  5. Clique na opção "Máquinas Virtuais" no painel de navegação à esquerda.

  6. Na lista de Máquinas Virtuais, clique no link vm-01.

  7. Explore conforme desejado a seção Visão Geral, seção Discos, interfaces de Rede etc.

    Observação: O console não está ativo no Cockpit, pois a máquina virtual vm-01 foi criada usando a opção --graphical none com virt-install.

Isso conclui este laboratório.

Para Obter Mais Informações:

Mais Recursos de Aprendizagem

Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal YouTube do Oracle Learning. Além disso, visite education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.

Para obter a documentação do produto, visite o Oracle Help Center.