Virtualização

KVM

Antes de criar qualquer VM,  é necessário a criação de uma bridge, para conexão entre as VM's e os servidores externos.
OBS: O servidor hospedeiro(servidor onde esta rodando o KVM, pode não funcionar o acesso depois da criação da bridge

# cd /etc/sysconfig/network-scripts/
 

# cp ifcfg-eno49 ifcfg-br0
 

# vi ifcfg-eno49
 

TYPE=Ethernet
BOOTPROTO=static
DEVICE=eno49
ONBOOT=yes
BRIDGE=br0


# vi ifcfg-br0
 

TYPE=Bridge
BOOTPROTO=static
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.10.21
NETMASK=255.255.255.0
GATEWAY=192.168.10.1
DNS1=192.168.10.11


# systemctl restart network

Instalação no CENTOS 6

# yum install qemu-kvm python-virtinst libvirt virt-manager

Verificando suporte virtualização de hardware:

grep -E "(vmx|svm)" --color=always /proc/cpuinfo

* Caso a saída do comando acima não retorne nenhuma informação na tela é porque o processador não suporta virtualização de hardware. Sendo asssim há apenas a opção de usar emulação com o QEMU.

Iniciando o serviço:

# service libvirtd start
Antes de instalar o sistema operacional no guest é necessário criar o virtual disk usado pela máquina virtual. KVM suporta o formato raw, qcow2 (nativo do QEMU), VMWare, dentre outros. Vou criar usando qcow2 e alocando 10GB de espaço:

$ qemu-img create -f qcow2 -o preallocation=metadata /virtualization/vm/hd-centos.qcow2 10G

As opções de rede disponíveis são bridge, virtual network e user.

#bridge permite que à máquina virtual obter endereço IP como se fosse outra máquina na rede onde está o host;#

#virtual network cria uma rede virtual no qual apenas outros guests na mesma virtual network e o host consegueguem se comunicar;#

#user provê uma forma de NAT muito limitada, indicado apenas se for executar o kvm com usuário diferente de root.#

Para usar o modo bridge primeiramente é preciso criar a interface br0. Os passos estão descritos nas instruções da documentação da libvirt em
http://wiki.libvirt.org/page/Networking

Criando uma Virtual Machine com KVM

Modo simples, especificando o path da iso de instalação e do virtual disk:

# virt-install --name=minha-vm-centos --arch=x86_64 --vcpus=1 --ram=512 --os-type=linux --os-variant=rhel5 --hvm --connect=qemu:///system --network bridge=br0 --cdrom=/home/gustavo/Downloads/softwares/iso/CentOS-6.2-x86_64-LiveDVD.iso --disk path=/home/gustavo/vm/hd-centos.qcow2,size=10 --graphics vnc,keymap=pt-br,  --noautoconsole
Modo muito simples, onde serão feitas perguntas ao usuário:

# /usr/sbin/virt-install --prompt
Rodando no modo gráfico é possível utilizar virt-manager – interface gráfica para gerenciar máquinas virtuais.

Gerenciando máquinas virtuais com o Virsh

Virsh é utilitário em modo texto que utiliza a API da libvirt para gerenciamento de máquinas virtuais. Abaixo os comandos mais utilizados.

Exibir todas as máquinas virtuais: virsh list --all

Iniciar uma máquina virtual: virsh start <nome da vm>

Desligar uma máquina virtual: virsh shutdown <nome da vm>

Editar configuração: virsh edit <nome da vm>

Forçar o desligamento: virsh destroy <nome da vm>

Salvar um snapshot: virsh save <nome da vm> <nome do arquivo>

Restaurar um snapshot: virsh restore <nome do arquivo>

Acessar remotamente via ssh: virsh -c qemu+ssh://<usuario>@<ip>/system <nome da vm>

Outras dicas

Para renomear uma máquina virtual no Virsh é necessário copiar o arquivo xml contendo as configurações, editar manualmente esse arquivo, criar uma máquina virtual com o novo nome e remover a antiga.

virsh dumpxml <nome da vm> > arquivo.xml
vim arquivo.xml #alterar o novo nome dentro do arquivo xml
virsh undefine <nome da vm>
virsh define arquivo.xml

Após aumentar o espaço de um virtual disk usando o qemu-img é necessário dar boot no guest com alguma distro livecd e usar o software gparted para redimensionar a partição sem perda de dados.

qemu-img resize /virtualization/vm/hd-centos.qcow2 10G +25GB

O processo de clonar uma máquina virtual consiste em criar uma cópia idêntica com outro nome que pode usar o mesmo virtual disk ou um clone.

virt-clone --connect=qemu:///system -o <nome da vm> -n <nome da vm clonada> -f <path do virtual disk>


Instalação CENTOS 7

Verificar se existe suporte para criação de VM's

 # grep -E '(vmx|svm)' /proc/cpuinfo

Instalação dos pacotes do KVM

# yum install qemu-kvm qemu-img virt-manager libvirt libvirt-python libvirt-client virt-install virt-viewer bridge-utils

Habilitar e Iniciar o serviço do KVM

# systemctl start libvirtd
# systemctl enable libvirt

Verificar se existe o módulo do KVM

# lsmod |grep kvm

Se a instalação do Centos 7, foi a instalação minima e se quiser instalar o ambiente grafico, instalar os seguintes pacotes

# yum install "@X Window System" xorg-x11-xauth xorg-x11-fonts-* xorg-x11-utils -y

Iniciar o KVM

# virt-manager.



Comandos básicos para administração do XEN

Abaixo segue um resumo dos comandos básicos para administrar uma VM. Lembrando que eles só existem no dom0. 
xm list = lista as vms ligadas. 
xm console "ID" = abre o console da vm especificada. 
xm mem-set "ID" "MEMORIA" = altera a quantidade de memória do domínio especificado, limitado ao parâmetro MAXMEM no arquivo de configuração. Ex: xm mem-set 1 512 
xm vcpu-set "ID" "VCPU" = altera o número de processadores ativos num domínio, limitado ao parâmetro VCPUS no arquivo de configuração. Ex: xm vcpu-set 1 2 
xm vcpu-list = mostra quais processadores (cores) reais estão sendo usados pelas VMs. 
xm shutdown "ID" = inicia o desligamento do domínio especificado. 
xm destroy "ID" = força o desligamento do domínio especificado. É como puxar o "cabo da tomada", inclusive com as mesmas consequências. 
xm reboot "ID" = reinicia o domínio especificado. 
xm top = mostra o monitor das VMs. 
xm dmesg = mostra o log de inicialização do hypervisor.

Comentários

  1. Parabéns pelo post Luciano!

    Mas me tire uma dúvida: Quero criar uma máquina virtual, criar um snapshot e trabalhar nela. Realizar testes na mesma... E quando quiser, restaurar para o ponto que criei. Ou seja, fazer com que eu retorne para o ponto de criação da vm (ponto criado logo depois de instalado). O que você me sugere?

    ResponderExcluir
    Respostas
    1. Fábio....

      Qual sistema operacional vc esta utilizando?

      Excluir
    2. Oi Luciano!
      Como estou fazendo um lab de teste do Red Hat, tô usando o CentOS, criando as maquinas com o virt-manager.

      Excluir
    3. Fabio... Utilize essas linhas:
      Salvar um snapshot: virsh save

      Restaurar um snapshot: virsh restore <nome do arquivo

      Excluir
    4. Pois é Luciano...

      Depois de muito testar, o que funciona mesmo é o VM State... Save e depois Restore.

      Obrigado!

      Excluir

Postar um comentário

Postagens mais visitadas