Observação:
- Este tutorial está disponível em um ambiente de laboratório gratuito fornecido pela Oracle.
- Ele usa valores de exemplo para credenciais, tenancy e compartimentos do Oracle Cloud Infrastructure. Ao concluir o laboratório, substitua esses valores pelos específicos do seu ambiente de nuvem.
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
- Implantar KVM
- Implantar Cockpit para máquinas virtuais
- Criar Máquina Virtual com base em um ISO
- Criar Máquina Virtual usando Imagens do Oracle Cloud
Pré-requisitos
Qualquer sistema Oracle Linux 8 ou posterior com as seguintes configurações:
- um usuário não raiz com permissões sudo
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.
-
Se ainda não estiver conectado, abra um terminal e conecte-se via ssh à sua instância.
ssh oracle@<ip_address_of_instance>
-
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.
-
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.
-
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
-
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.
-
Instale
virt-install
evirt-viewer
.sudo dnf install virt-install virt-viewer -y
Isso conclui a instalação do conjunto de pacotes necessário.
-
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.
-
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
-
Instale a extensão cockpit-machines para gerenciar VMs com base no Libvirt.
sudo dnf install cockpit cockpit-machines –y
-
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.
-
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.
-
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>
-
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.
Clique em Avançado e aceite a conexão quando receber um aviso do navegador.
-
Faça log-in como usuário
oracle
com a senhaoracle
.O Painel de Cockpit é exibido.
-
Clique no botão "Acesso Limitado" para obter privilégios Administrativos.
-
Feche a janela de acesso Administrativo.
Criar Máquina Virtual com base em um ISO
-
Clique na opção "Máquinas Virtuais" no painel de navegação à esquerda.
-
Clique no botão "Create VM".
-
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
-
Clique em "Criar" para começar.
-
Na lista de Máquinas Virtuais, clique no link OL-demo.
-
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.
-
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.
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
-
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).
-
Altere o local de armazenamento de imagens do KVM.
cd /var/lib/libvirt/images
-
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
-
Criar arquivo de metadados.
cat << 'EOF' | sudo tee ~/meta-data > /dev/null instance-id: iid-local01 local-hostname: vm-01 EOF
-
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
-
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. -
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
-
Gere a imagem ISO.
sudo genisoimage -output /var/lib/libvirt/images/vm-01.iso -volid cidata -joliet -rock ~/user-data ~/meta-data
-
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
-
Liste as VMs.
sudo virsh list
-
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.
-
Como alternativa, você pode filtrar com base no endereço MAC.
sudo virsh domiflist vm-01
-
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>
-
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.
-
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>
-
Abra um Web browser na sua área de trabalho e navegue até https://localhost:9090.
-
Faça log-in como usuário
oracle
com a senhaoracle
.O Painel de Cockpit é exibido.
-
Se necessário, clique no botão "Acesso Limitado" para obter privilégios Administrativos.
-
Clique na opção "Máquinas Virtuais" no painel de navegação à esquerda.
-
Na lista de Máquinas Virtuais, clique no link vm-01.
-
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
comvirt-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.
Create VMs with KVM on Oracle Linux
F58826-01
June 2022
Copyright © 2022, Oracle and/or its affiliates.