[TUTORIAL] Instalação e uso básico do Qemu-KVM + Virt-Manager

frmoronari
editado maio 2019 em Tutoriais

Neste breve tutorial mostrarei de forma simplificada como instalar, configurar e usar o Qemu-KVM em conjunto com o Virt-Manager.

Não entrarei em detalhes de o que é cada tecnologia de virtualização, pois acredito ter chegado aqui já sabendo isso.

Este tutorial pode ser aplicado em qualquer DE, seja da família Qt (KDE) ou GTK (Gnome, XFCE, etc). O Virt-Manager faz uso das bibliotecas GTK e é compatível com praticamente qualquer DE. Logicamente se você estiver usando KDE (é o meu caso) ele poderá instalar mais pacotes para que tenha suporte nesta DE. Existe outros Front para utilizar com o Qemu, testei alguns e o que mais se adéqua as necessidades foi o Virt-Manager.

Primeiramente instalaremos os pacotes necessários:

sudo dnf install virt-manager

Perceba que basicamente solicitamos a instalação de apenas um pacote. O sistema será responsável por suprir as dependências e as instalará. Aqui ao final do comando será solicitado a instalação de 107 pacotes. Nestes estão as bibliotecas do API libvirt, os drivers spice, as ferramentas do hypervisor qemu, assim como outras tantas dependências.

Neste ponto basta confirmarmos ('S') e aguardar o término da instalação.

Ao final da instalação basta apenas executarmos o 'Virt-Manager' em nosso lançador de aplicativos. Esta janela deverá ser aberta:

Neste ponto basta darmos dois cliques onde está escrito "QEMU/KVM - Não Conectado". Caso você receba uma janela de aviso como a abaixo alguns comandos deverão ser executados:

Abra o seu emulador de terminal e digite:

sudo systemctl enable libvirtd

sudo systemctl start libvirtd

Pode parecer que nada aconteceu, mas está tudo correto pois se algo estivesse dado errado receberíamos uma mensagem de erro.

Após digitar os comandos feche o Virt-Manager e abra novamente. Com tudo correto, será solicitado a sua senha de usuário como a seguir:

Configurações básicas:

Com o Virt-Manager aberto vamos realizar algumas configurações básicas.

Para isso clicamos com o botão direito do mouse sobre "QEMU/KVM" e apontamos em detalhes.

Na janela que se abre, clicamos na guia "Armazenamento". Aqui podemos alterar onde serão os repositórios de arquivos de HD virtual das VM's criadas bem como indicar onde serão os repositórios de arquivos .ISO que utilizaremos.

Reparem que nas minhas configurações há um repositório "default"_e um _"ISO-Linux". A descrição é:
"default": onde os arquivos de HD virtual serão salvos;
"ISO-Linux": onde os .ISO estão localizadas.

Para realizar a configuração do "default" será necessário parar o pool e depois removê-lo. Um botão ao lado do outro.
Eu não descobri outra maneira de realizar a configuração neste item, se alguém souber outra maneira compartilhe conosco.

Agora vamos adicionar um item (+) e preencher a tela:

O nome deverá ser default para que o Virt-Manager utilize esta localização como padrão.

Na tela seguinte indicamos o caminho onde este está localizado:

Aqui utilizo um HD que tem espaço e diferente do SO da máquina host.

Repita os passos para adicionar o repositório de arquivos .ISO e qualquer outro que achar importante.

Terminado, pode fechar a janela de configurações.

No menu Editar na opção Preferências abre-se a janela:

Aqui acho interessante marcar em Geral a opção "Habilitar ícone na bandeja do sistema". Na guia _Sondagem deixo "1" segundos e marco todas as caixas de verificação (já explico porque ). Nas demais abas não altero nada.

De volta a tela principal com algumas VM's que eu já tinha criado, eu selecionei uma e apertei o PLAY na barra de ferramentas. A máquina é executada e vemos o efeito das opções da guia Sondagem realizadas acima:

Para exibir a VM em execução basta darmos dois cliques na mesma.

Criando uma VM:

Na tela principal do Virt-Manager o primeiro botão é o "Criar nova máquina virtual". Ao ser clicado a janela será aberta:

Deixamos primeira opção selecionada e avançamos. Na próxima tela:

Clicamos em navegar para escolhermos o arquivo .ISO que utilizaremos na instalação. A tela de seleção de volume de armazenamento será aberta. Nela escolhemos o repositório de arquivos que configuramos anteriormente e neste repositório selecionamos o arquivo da distribuição que desejamos. Basicamente assim:

Repare que selecionei o "ISO-Linux" e ao lado o "Fedora-KDE-Live-x86_64-30-1.2.iso" (Fedora 30 KDE Live).

Clique em "Escolher Volume".

Ao retornar a tela de "Nova VM" o Virt-Manager deverá automaticamente detectar a VM da ISO. Caso isso não aconteça, proceda como na imagem abaixo:

Desmarque a caixa de verificação e digite o nome da distribuição. Clique em Avançar.

Na tela seguinte indique quantos MB de memória RAM a VM utilizará bem como quantos núcleos de processamento. Isso dependerá de seu hardware. Clique em Avançar.

Continuando a configuração da nova VM, confirme quantos GB o HD virtual da mesma deverá possuir. Geralmente o padrão indicado é o necessário, depende do uso. Clique em Avançar.

Na última tela informe qual será o nome da VM e clique em Concluir.

Finalizar o processo de configuração da nova VM, a tela desta será aberta.

Utilizando a tela da VM

Na tela da VM teremos uma barra de menus e uma de ferramentas. Tudo é auto explicativo mas duas opções no menu Ver merecem atenção.
1 - Redimensionar a VM: altera o tamanho da janela da VM para se adequar a resolução da mesma;
2 - Escalar Exibição: altera a resolução da VM de acordo com o tamanho da janela.

Como disse no início o tutorial seria bem básico, ficou até mais extenso do que imaginava.

Caso tenha alguma dúvida, deixe seu comentário.

Comentários

  • Digite seu comentário> @frmoronari disse:

    Neste breve tutorial mostrarei de forma simplificada como instalar, configurar e usar o Qemu-KVM em conjunto com o Virt-Manager.

    Não entrarei em detalhes de o que é cada tecnologia de virtualização, pois acredito ter chegado aqui já sabendo isso.

    Este tutorial pode ser aplicado em qualquer DE, seja da família Qt (KDE) ou GTK (Gnome, XFCE, etc). O Virt-Manager faz uso das bibliotecas GTK e é compatível com praticamente qualquer DE. Logicamente se você estiver usando KDE (é o meu caso) ele poderá instalar mais pacotes para que tenha suporte nesta DE. Existe outros Front para utilizar com o Qemu, testei alguns e o que mais se adéqua as necessidades foi o Virt-Manager.

    Primeiramente instalaremos os pacotes necessários:

    sudo dnf install virt-manager

    Perceba que basicamente solicitamos a instalação de apenas um pacote. O sistema será responsável por suprir as dependências e as instalará. Aqui ao final do comando será solicitado a instalação de 107 pacotes. Nestes estão as bibliotecas do API libvirt, os drivers spice, as ferramentas do hypervisor qemu, assim como outras tantas dependências.

    Neste ponto basta confirmarmos ('S') e aguardar o término da instalação.

    Ao final da instalação basta apenas executarmos o 'Virt-Manager' em nosso lançador de aplicativos. Esta janela deverá ser aberta:

    Neste ponto basta darmos dois cliques onde está escrito "QEMU/KVM - Não Conectado". Caso você receba uma janela de aviso como a abaixo alguns comandos deverão ser executados:

    Abra o seu emulador de terminal e digite:

    sudo systemctl enable libvirtd

    sudo systemctl start libvirtd

    Pode parecer que nada aconteceu, mas está tudo correto pois se algo estivesse dado errado receberíamos uma mensagem de erro.

    Após digitar os comandos feche o Virt-Manager e abra novamente. Com tudo correto, será solicitado a sua senha de usuário como a seguir:

    Configurações básicas:

    Com o Virt-Manager aberto vamos realizar algumas configurações básicas.

    Para isso clicamos com o botão direito do mouse sobre "QEMU/KVM" e apontamos em detalhes.

    Na janela que se abre, clicamos na guia "Armazenamento". Aqui podemos alterar onde serão os repositórios de arquivos de HD virtual das VM's criadas bem como indicar onde serão os repositórios de arquivos .ISO que utilizaremos.

    Reparem que nas minhas configurações há um repositório "default"_e um _"ISO-Linux". A descrição é:
    "default": onde os arquivos de HD virtual serão salvos;
    "ISO-Linux": onde os .ISO estão localizadas.

    Para realizar a configuração do "default" será necessário parar o pool e depois removê-lo. Um botão ao lado do outro.
    Eu não descobri outra maneira de realizar a configuração neste item, se alguém souber outra maneira compartilhe conosco.

    Agora vamos adicionar um item (+) e preencher a tela:

    O nome deverá ser default para que o Virt-Manager utilize esta localização como padrão.

    Na tela seguinte indicamos o caminho onde este está localizado:

    Aqui utilizo um HD que tem espaço e diferente do SO da máquina host.

    Repita os passos para adicionar o repositório de arquivos .ISO e qualquer outro que achar importante.

    Terminado, pode fechar a janela de configurações.

    No menu Editar na opção Preferências abre-se a janela:

    Aqui acho interessante marcar em Geral a opção "Habilitar ícone na bandeja do sistema". Na guia _Sondagem deixo "1" segundos e marco todas as caixas de verificação (já explico porque ). Nas demais abas não altero nada.

    De volta a tela principal com algumas VM's que eu já tinha criado, eu selecionei uma e apertei o PLAY na barra de ferramentas. A máquina é executada e vemos o efeito das opções da guia Sondagem realizadas acima:

    Para exibir a VM em execução basta darmos dois cliques na mesma.

    Criando uma VM:

    Na tela principal do Virt-Manager o primeiro botão é o "Criar nova máquina virtual". Ao ser clicado a janela será aberta:

    Deixamos primeira opção selecionada e avançamos. Na próxima tela:

    Clicamos em navegar para escolhermos o arquivo .ISO que utilizaremos na instalação. A tela de seleção de volume de armazenamento será aberta. Nela escolhemos o repositório de arquivos que configuramos anteriormente e neste repositório selecionamos o arquivo da distribuição que desejamos. Basicamente assim:

    Repare que selecionei o "ISO-Linux" e ao lado o "Fedora-KDE-Live-x86_64-30-1.2.iso" (Fedora 30 KDE Live).

    Clique em "Escolher Volume".

    Ao retornar a tela de "Nova VM" o Virt-Manager deverá automaticamente detectar a VM da ISO. Caso isso não aconteça, proceda como na imagem abaixo:

    Desmarque a caixa de verificação e digite o nome da distribuição. Clique em Avançar.

    Na tela seguinte indique quantos MB de memória RAM a VM utilizará bem como quantos núcleos de processamento. Isso dependerá de seu hardware. Clique em Avançar.

    Continuando a configuração da nova VM, confirme quantos GB o HD virtual da mesma deverá possuir. Geralmente o padrão indicado é o necessário, depende do uso. Clique em Avançar.

    Na última tela informe qual será o nome da VM e clique em Concluir.

    Finalizar o processo de configuração da nova VM, a tela desta será aberta.

    Utilizando a tela da VM

    Na tela da VM teremos uma barra de menus e uma de ferramentas. Tudo é auto explicativo mas duas opções no menu Ver merecem atenção.
    1 - Redimensionar a VM: altera o tamanho da janela da VM para se adequar a resolução da mesma;
    2 - Escalar Exibição: altera a resolução da VM de acordo com o tamanho da janela.

    Como disse no início o tutorial seria bem básico, ficou até mais extenso do que imaginava.

    Caso tenha alguma dúvida, deixe seu comentário.

    Excelente, menino bom.

  • Ótimo!! Só estou tendo problemas nas configurações de rede. Não consigo colocar a vm para trabalhar em modo bridge, obtendo o ip da rede local. Em modo NAT é o único que funciona @frmoronari ou @FedoraBR podem ajudar?

  • @Flira00 como eu uso as VMs apenas para teste, eu não preciso usar bridge. Mas estarei realizando uns testes e retorno assim que possível.

  • Flira00
    editado julho 2019

    @frmoronari blza, eu também testo, entretanto preciso pra fazer testes de rede. Gostei dele, o desempenho é superior. Talvez o foco da tecnologia seja mesmo o bare metal.

  • @Flira00,
    Acho que vc esta querendo simular uma rede, tipo um firewall por exemplo ... com uma placa de rede em bridge e outra de rede interna né.

    Eu tmb simulava assim com virtualbox e vmplayer. Mas depois que comecei a usar o VirtManager passei usar outro método e tem funcionado comigo.

    Em um firewall por exemplo, vc deixa ele com duas placas de rede em NAT mesmo.
    A placa WAN vc nem precisa mexer, mas a segunda vc apenas muda o endereço IP p/ um rede que vc queira simular o ambiente, exemplo:


    Host Fisico - enp4s1 - 192.168.1.100

    Firewall - VM.
    WAN - "vai pegar automaticamente via nat, então deve ser algo como 192.168.122.100"
    LAN - "Crie uma rede diferente daquela em que o seu hospedeiro está - 192.168.50.1"

    Cliente Win - VM.
    LAN - "Vc seta o endereço IP na mesma rede LAN do seu firewall VM, por exemplo 192.168.50.10 e adiciona o gateway p/ 192.168.50.1"

    No virtmanager, até tem a opção p/ usar uma placa de rede em modo bridge, na seleção de rede da VM, vc coloca o dispositivo em Host macvtap e modo fonte Ponte. Mas o próprio virtmanager já apresenta mensagem de aviso informando que pode não funcionar. Então no meu caso eu preferi usar desta forma que citei o exemplo ... veja se atende pra vc, quem sabe.

  • @chacal Perfeito!! Não sabia que funcionava dessa forma. Já atende a 50% da necessidade... rsrsrs... Vlw, obrigado!!

  • Gideon
    editado março 2020

    @frmoronari Muito bom o tutorial.

    Contudo, estou com problema de permissão para o qemu acessar o arquivo qcow2. Quero que minhas VMs e ISOs fiquem em HD secundário.

    Segue tela do erro de acesso negado:

    Já adicionei meu usuário nos grupos libvirt e qemu, porém não resolveu o problema.

    Se alguém souber a solução para isso, agradeço muito.

    [RESOLVIDO] - SElinux estava bloqueando o acesso da qemu ao HD secundário.

  • Digite seu comentário> @Gideon disse:

    @frmoronari Muito bom o tutorial.

    Contudo, estou com problema de permissão para o qemu acessar o arquivo qcow2. Quero que minhas VMs e ISOs fiquem em HD secundário.

    Segue tela do erro de acesso negado:

    Já adicionei meu usuário nos grupos libvirt e qemu, porém não resolveu o problema.

    Se alguém souber a solução para isso, agradeço muito.

    [RESOLVIDO] - SElinux estava bloqueando o acesso da qemu ao HD secundário.

    Seja mais especifico sobre o o selinux. Você mudou para disabled? eu não tive esse problema. Poderia informar o que você fez no SELINUX?

  • Gideon
    editado março 2020

    Digite seu comentário> @FedoraBR disse:

    Seja mais especifico sobre o o selinux. Você mudou para disabled? eu não tive esse problema. Poderia informar o que você fez no SELINUX?

    Não adicionei o método que usei pois há outro mais seguro, manipulando identificadores do selinux para os arquivos a fim de dar permissão ao mesmos sem precisar desativar o serviço. Porem ainda não tive tempo para realizar os testes para relatar aqui.

    Segue o método que utilizei, onde apenas desativo permanentemente o SELinux:

    • Desativei o SELinux no arquivo /etc/selinux/config mudando o parâmetro enforcing para disabled, conforme imagem abaixo. Depois reiniciei o sistema.

    Para ativar o SELinux novamente:

    • Habilitar o SELinux no arquivo /etc/selinux/config mudando o parâmetro disabled para enforcing.

    OBS: O arquivo /etc/selinux/config deve ser aberto com permissão de super usuário: Ex.: sudo nano /etc/selinux/config

  • Muito bom ótima postagem parabens