Como criar e gerenciar máquinas virtuais KVM da CLI

Como criar e gerenciar máquinas virtuais KVM da CLI

Objetivo

Aprenda a criar e gerenciar máquinas virtuais KVM a partir da linha de comando

Sistema operacional e versões de software

  • Sistema operacional: - Todas as distribuições Linux

Requisitos

  • Acesso à raiz
  • Pacotes:
    • qemu -kvm - o pacote principal
    • LibVirt - Inclui o servidor Libvirtd exportando o suporte de virtualização
    • libvirt -client - este pacote contém Virsh e outros utilitários do lado do cliente
    • Virt -Install - Utilitário para instalar máquinas virtuais
    • Virt -Viewer - Utilitário para exibir console gráfico para uma máquina virtual

Dificuldade

MÉDIO

Convenções

  • # - requer que os comandos Linux sejam executados com privilégios de raiz também
    diretamente como usuário root ou por uso de sudo comando
  • $ - Requer que os comandos do Linux sejam executados como um usuário não privilegiado regular

Introdução

Saber como criar e gerenciar máquinas virtuais KVM a partir da linha de comando pode ser realmente útil em determinados cenários: ao trabalhar em servidores sem cabeça, por exemplo. No entanto, ser capaz de escrever interações com máquinas virtuais pode melhorar bastante nossa produtividade. Neste tutorial, você aprenderá a criar, excluir, clonar e gerenciar máquinas KVM com a ajuda de poucos utilitários.



Alguma terminologia

Antes de começarmos a trabalhar, seria útil definir o que KVM e Qemu são e como eles interagem. KVM apoia Máquina virtual do kernel, E é um módulo do kernel Linux que permite que um programa acesse e use os recursos de virtualização dos processadores modernos, expondo a interface /dev /kvm. Qemu é, em vez disso, o software que realmente executa a emulação do sistema operacional. É e emulador de máquina de código aberto e virtualizador que pode usar o recurso de aceleração fornecido por KVM Ao executar uma máquina emulada com a mesma arquitetura do host.

Configuração preliminar

A primeira coisa que temos que fazer é verificar se a CPU que estamos usando tem suporte para virtualização. A menos que você esteja correndo em uma máquina muito antiga, esse certamente será o caso, mas para verificar, simplesmente executamos:

$ cat /proc /cpuinfo

Role para baixo a saída do comando acima até ver a lista de CPU 'sinalizadores': entre eles você deve ver svm Se você estiver usando um processador AMD, ou VMX Se o fornecedor da CPU for Intel.

A segunda coisa que precisamos fazer é garantir que os módulos de kernel necessários tenham sido carregados, para verificar isso, nós executamos:

# lsmod | Grep KVM KVM_INTEL 200704 0 KVM 598016 1 KVM_INTEL IRQBYPASS 16384 1 KVM 


Estou executando uma CPU da Intel, portanto, além do KVM módulo, também o KVM_INTEL um foi carregado. Se você estiver usando um processador AMD, o kvm_amd O módulo será carregado em vez disso. Se os módulos não forem carregados automaticamente, você pode tentar carregá -los manualmente usando o modProbe comando:

# modprobe kvm_intel

Finalmente, temos que começar o libvirtd Daemon: O comando a seguir o permite no momento da inicialização e inicia imediatamente:

# SystemCtl Habilable - -agora Libvirtd

Crie a nova máquina virtual

Agora que instalamos e iniciamos o libvirtd serviço, podemos usar o Virt-Install comando para configurar nossa máquina virtual. A sintaxe do programa é realmente direta. O comando Linux a seguir deve ser executado como root, ou, se você deseja iniciá -lo como um usuário normal, como um membro do KVM grupo. A sintaxe do programa é o seguinte:

# Virt-Install--name = LinuxConfig-VM \ --vcpus = 1 \ --Memory = 1024 \-cdrom =/tmp/Debian-9.0.0-AMD64-NETINST.ISO \-Disk Size = 5 \ --os-variant = Debian8 

Vamos analisar o comando acima:

Primeiro de tudo, usamos o --nome Opção: Isso é obrigatório e é usado para atribuir um nome à nova máquina virtual.

A próxima opção é o --vcpus um. Nós o usamos para especificar o número de CPUs virtuais Para configurar para o convidado.

O --memória a opção é usada para selecionar a quantidade de memória reservada para a máquina de convidado em Mib e --cdrom Vamos especificar o caminho para um arquivo ou um dispositivo a ser usado como um CD-ROM virtual: pode ser uma imagem ISO, um dispositivo CDROM ou um URL para acessar uma imagem ISO de inicialização.



O --disco A bandeira é usada para configurar o armazenamento de mídia para o hóspede. Várias opções separadas por vírgula podem ser especificadas, por exemplo: tamanho que é usado para especificar o tamanho do disco virtual em GB e caminho que é usado para especificar um caminho a ser usado para o disco (ele será criado se ainda não existir). Se essas opções forem especificadas, você deverá garantir que o caminho de destino seja acessível e tenha o contexto correto do Selinux (para saber mais sobre o Selinux, você pode ler este artigo).

Se o caminho a opção não é especificada, o disco será criado em $ Home/.local/share/libvirt/imagens Se o comando for executado como usuário normal (membro do grupo KVM) ou em/var/libvirt/imagens, se executá -lo como root.

Em seguida, passamos pelo --OS-Variant opção. Embora isso não seja obrigatório, é altamente recomendável usá -lo, pois pode melhorar o desempenho da máquina virtual. A opção tentará ajustar o convidado para a versão específica do sistema operacional. Se a opção não for aprovada, o programa tentará detectar automaticamente o valor correto da mídia de instalação. Para obter uma lista de todos os sistemas suportados que você pode executar:

$ Osinfo-Query OS

Se tudo correu bem e o Virt-visualizador O pacote está instalado, uma janela aparecerá mostrando o instalador do sistema operacional convidado.

O utilitário virsh

O utilitário Virsh pode ser usado para interagir com máquinas virtuais. Por exemplo, digamos que você deseja listar todos os convidados configurados, usando Virsh que você pode simplesmente executar:

# Virsh List --l

A saída mostrará o eu ia, nome e estado de todos os convidados configurados, estejam eles executando ou não.

Mas e se você quiser mudar alguns parâmetros da máquina de convidados? Você pode usar Virsh Para realizar esta tarefa, por exemplo:

# virsh editar linuxconfig-vm

Aqui está uma captura de tela da saída de comando:



Como você pode ver, a saída é uma representação XML das propriedades da máquina virtual ou, usando a terminologia Virsh, a domínio. Se você deseja mudar, por exemplo, o número de vcpus, basta encontrar a tag relevante e alterar o valor. Nesse caso, temos:

1

Queremos adicionar 1 VCPU, então vamos alterá -lo para:

2

Tudo o que temos que fazer agora é apenas reiniciar a máquina virtual para as configurações a serem aplicadas:

# virsh reinicie linuxconfig-vm

Se agora corrermos LSCPU No console convidado, devemos ver o aumento do número de CPUs:

O Virsh O comando também pode ser usado para fazer outras operações comuns: por exemplo, desligamento de virsh pode ser usado para desligar o hóspede, Virsh destruir é o equivalente a um desligamento bruto da força (portanto, pode ser perigoso) e Virsh indefinido pode ser usado para excluir uma máquina de convidado (para definir um domínio).

AutoStart uma máquina virtual na inicialização

Você pode aproveitar o Virsh comando também se você deseja que certos convidados sejam iniciados automaticamente quando o sistema host inicializa: a sintaxe é, novamente, muito intuitiva:

# Virsh AutoStart LinuxConfig-VM

Para desativar esta opção, executamos:

# Virsh AutoStart-Disable LinuxConfig-VM


Clonando um convidado

Outra utilidade, Virt-clone pode ser usado para criar uma nova máquina virtual clonando uma existente. Para prosseguir, devemos primeiro garantir que o hóspede a ser clonado seja inativo, do que corremos:

virt-clone \ --original = linuxconfig-vm \--name = linuxconfig-vm-clone \ --file =/var/lib/libvirt/imagens/linuxconfig-vm.QCOW2 

O que temos aqui é muito simples de entender: especificamos o hóspede a ser clonado usando o --original opção e o nome do novo convidado usando --nome Como se estivéssemos instalando do zero. Com o --arquivo Opção, em vez disso, fazemos referência a todos os discos rígidos virtuais associados ao convidado original que queremos clonar. O programa fará seu trabalho e, se bem -sucedido, criará um novo domínio nomeado LinuxConfig-VM-Clone. Já sabemos como verificar:

# Virsh List-todos os nomes do idiota ------------------------------------------- ------- 

Pensamentos finais

Neste tutorial, configuramos uma nova máquina virtual e vimos como interagir com ela. As opções que especificamos no horário da criação são apenas o mínimo necessário para uma configuração de trabalho. Muitas outras opções podem ser usadas para ajustar vários aspectos da máquina convidada e são muito bem descritos no Virt-Install MANPAGE. Como sempre, o melhor conselho possível é: Leia o manual.

Tutoriais do Linux relacionados:

  • Coisas para instalar no Ubuntu 20.04
  • Lista de visualizadores em PDF no Ubuntu 22.04 Jammy Jellyfish Linux
  • Uma introdução à automação, ferramentas e técnicas do Linux
  • Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
  • Como criar instantâneos de convidados QEMU/KVM
  • Melhor leitor de PDF para Linux
  • Como executar o Raspberry Pi OS em uma máquina virtual com…
  • Coisas para instalar no Ubuntu 22.04
  • Mint 20: Melhor que o Ubuntu e o Microsoft Windows?
  • Arquivos de configuração do Linux: os 30 primeiros mais importantes