Como usar o QEMU para gerenciar VMs
- #Linux
- #Informática Básica
- #Testes unitários
Em minha jornada pela web especificamente no reino open-source, encontrei um ferramenta poderosíssima e versátil, em linha de comando para criar maquinas virtuais e até mesmo Emular uma arquitetura diferente.
Um emulador / virtualizador pode ser amplamente utilizado como:
- Teste de compatibilidade.
- Teste de requisitos mínimos e recomendados.
- Desenvolver para uma plataforma especifica.
- Modificar um Sistema Operacional (exemplo: android x86)
E a lista continua de acordo com a sua criatividade....
⚠️Modo Nerdão: Ativado .
Em particularidade o QEMU tem uma aceleração nativa no linux, por contar um um módulo especifico de hypervisor o KVM(maquina virtual baseada no kernel), sobre tudo a compatibilidade se estende:
- Sistemas Hospedeiros: Linux OS, MacOS, FreeBSD, OpenBSD, netBSD e Windows
- Arquiteturas hospedeiras: Arm MIPS PPC RISC-V S390X SPARC X86
*Vale ressaltar que emular uma arquitetura RISC, em uma CISC tem muita perca de desempenho (Futuramente terá outro artigo).
⚠️Modo Nerdão: Desativado.
Vamos para a instalação
Windows com pacote Executável
Linux gerenciador de pacotes:
Arch:
pacman -S qemu
Debian/Ubuntu:
apt-get install qemu
Fedora:
dnf install @virtualization
Gentoo:
emerge --ask app-emulation/qemu
RHEL/CentOS:
yum install qemu-kvm
SUSE:
zypper install qemu
Gerenciando o QEMU
O gerenciamento do QEMU é feita totalmente por linha de comando seja pelo bash ou pelo powershell:
Criar um disco virtual (exemplo com 10GB), para alocar uma nova VM:
qemu-img create qcow2 nome_do_disco.qcow2 10G
*Note que o tamanho apenas G(Gigas) ou M(Megas)
*Os comandos são ordenados
Modificar o tamanho disco virtual:
qemu-img resize nome_do_disco.qcow2 20G
*Os comandos são ordenados
Iniciar VM com parâmetros para instalação de um SO com uma imagem ISO:
qemu-system-x86_64 --enable-kvm -smp 2 -m 1028 -boot d -hda nome_do_disco.qcow2 -cdrom sitema.iso
*Os parâmetros não tem ordem especifica
Após tudo instalado o comando fica menor:
qemu-system-x86_64 --enble-kvm -smp 2 -m 1028 -hda nome_do_disco.qcow2
Vamos com calma!
O que eu estou executando ?
- qemu-img = Binário responsável pela manipulação de discos virtuais
- qemu-system-x86_64 = Binário responsável por executar a VM pela arquitetura x86_64
Com quais parâmetros ?
- --enable-kvm = habilita o hipervisor KVM.
- -smp = O números de núcleos de processador minha VM ira usar.
- -m = O tamanho da memoria RAM.
- -boot = Parâmetro de boot, neste casso (d) iniciará pelo cdrom.
- -hda = Aponta disco primário.
- -cdrom = Aponta uma Imagem de Disco.
Sempre vale aquela passada na documentação oficial:
About QEMU — QEMU documentation
Conclusões
O QEMU e versátil, muitos softwares de emulação utilizam ele como base, mas no dia a dia não é conveniente usar linha de comando para administrar VM's, vale aprender, mas existe uma solução de interface gráfica para o QEMU com o libvirt, o virtmanager (Em breve artigo).
Espero ter ajudado com o conhecimento que tenho, coloquei um pouco de pensamento computacional neste artigo, gosto de aprender, ensinar, discutir, e essa plataforma dá espaço; Obrigado
Agradeço a todos.