>_Kvm 1.1

Kernel Virtual Machine. Ao ativar o módulo kvm, o kernel se transforma em um HyperVisor capaz de suportar full virtualization em equipamentos com as extensões Intel-VT ou AMD-V.
A arquitetura do KVM permite que as máquinas virtuais sejam tratadas como processos comuns de forma que cada vm pode usar todos os recursos do kernel Linux.

INSTALAÇÃO DO KVM

A instalação do KVM será feita em um Servidor CentOS 6 64 – instalação Basic Server sem ambiente gráfico.
Todo o acesso será feito remotamente, através do SSH com as opções -Y -X.

OBS: O hostname do servidor é KVM1, as máquinas virtuais serão chamadas de VM1, VM2, e etc.

1 – Acessando o servidor

# ssh -Y -X kvm1

2 – Atualizando o servidor, e em seguida instalando os pacotes necessários.

# yum update -y
# yum install vim libvirt libvirt-client qemu-kvm virt-manager virt-viewer qemu-kvm-tools bridge-utils xorg-x11-xauth libcanberra-gtk2

3 – Com a atualização concluída e instalação dos pacotes feitas, o passo seguinte será a configuração do arquivo qemu.conf

# vim /etc/libvirt/qemu.conf
vnc_listen = "0.0.0.0"

4 – Agora será necessário configurar as interfaces de rede, conforme exemplo abaixo:

# cd /etc/sysconfig/network-scripts/
# vim ifcfg-eth0
DEVICE="eth0"
HWADDR="MAC"
NM_CONTROLLED="no"
ONBOOT="yes"
BRIDGE="br0"
# vim ifcfg-br0
DEVICE="br0"
TYPE="Bridge"
BOOTPROTO="static"
ONBOOT="yes"
IPADDR="192.168.1.151"
NETMASK="255.255.255.0"
GATEWAY="192.168.1.1"
IPV6INIT="NO"
NAME="Bridge eth0"
NM_CONTROLLED="no"
DELAY="0"
USERCTL="no"

Reiniciando o servidor

# init 6

Após a reinicialização, novamente irei acessa-lo com as opções -Y -X através do meu Desktop

# ssh -Y -X KVM1

5 – Verificando as interfaces de rede e rotas ativas

# ip ad ls

# ip route list

Nessa saída você verá uma nova interface, a virbr0, com o endereço IP 192.168.122.1 Essa interface foi criada para definir uma rede do tip NAT.

Rede privada virtual
A interface virbr0 criada automaticamente tem o endereço 192.168.122.1/24. É possível consultar as redes virtuais usando o comando virsh net-list, exemplo:

# virsh net-list
Nome                 Estado     Auto-iniciar
-----------------------------------------
default                ativo      yes

6 – Ativando o roteamento

Para permitir o acesso das vms que estiverem instaladas nessa bridge à rede local você deve ativar o roteamento no VMM(servidor). Isso deve ser feito de forma persistente usando o arquivo /etc/sysctl.conf.

# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1

Ative essas configurações executando o comando sysctl -p

# sysctl -p

7 – Netfilter
O Netfilter atua em todas as interfaces de rede. Caso você tenha regras de iptables ativas em sua VMM(Servidor), elas podem interfirir no funcionamento de rede de suas máquinas virtuais. Neste caso, é necessário desabilitar o processamento do Netfilter sobre o tráfego das interfaces bridges.

# vim /etc/sysctl.conf
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0

8 – Criando máquinas virtuais

Para criação das máquinas virtuais, podemos utilizar dois métodos, linha de comando e modo gráfico. As duas formas oferecem todos os recursos necessários para a criação de uma VM.

As informações necessárias para criação são:

→ Nome da VM
→ Midiade instalação ( iso, cdrom, rede e etc)
→ Memória RAM
→ N de CPUS
→ Armazenamento ( arquivo, partição e lvm)
→ Tipo de rede a ser usada

9 – Virt-manager

O Virt-manager é a primeira forma e, muito mais prático para criação das VM’s. Ele pode ser adicionado pela linha de comando em um terminal com o usuário root ou acessando o menu Aplicativos → Sistema → Gerenciador de Máquinas Virtuais (VMM).

Através dele é possível definir todas as opções para criação de uma VM.

10 – Virt-install
O virt-install é um comando que pode ser usado para criar a definição de uma VM e iniciar a instalação do sistema operacional. Como visto anteriormente você pode instalar uma VM usando o arquivo de imagem.

11 – Comando virt-install
O comando virt-install pode ser usado para criar a definião de uma vm e iniciar a instalação do sistema operacional.

Ao usar o comando virt-install com um arquivo de imagem não é necessário criá-lo antes, isso será feito pelo próprio comando.

Os arquivos também podem ser criados com o comando qemu-img que suporta os formatos raw, qcow e qcow2, sendo que os qcow2 da suporte a criptografia e compactação.

Exemplo:

# qemu-img create [-f tipo] [-o opções] nome-do-arquivo [tamanho]

Na prática:

# qemu-img create -f qcow2 /var/lib/libvirtd/images/vm1.img 10G

As principais opções do virt-install são:

Opções – Descrição

-c | --cdrom = Associação de um arquivo iso ou cdrom da vm
-d | --disk = Arquivo ou partição/lvm para imagem de disco
-f | --file  = Arquivo para imagem de dsico
-l = Local com os arquivos para instalação do S.O.
-n | --name = Nome da vm
-r | --ram = Memória RAM alocada para vm
--vcpcus = Número de cpus para a vm
--vnc = Ativação da console usando virt-viewer/virt-manager
-x = Argumentos adicionais usados para iniciar a instalação do S.O.
-w | --network = Bridge a ser adicionada à vm

Exemplo de criação de uma vm com o virt-install:

# virt-install --name vm5 --disk path=/var/lib/libvirt/images/vm5.img,bus=virtio,size=20 --vnc --vncport=5907 --vcpus=2 --ram 1024 --location=/var/lib/libvirt/images/CentOS-6.0-i386-bin-DVD.iso --network bridge=virbr0

Para acessá-la, através de um programa VNC digite o IP do servidor VMM com a porta utilzada para acesso, no caso acima a 5907.

img1

Usando o virt-viewer
É possível acessar a VM com os comandos virt-viewer ou usando o gerenciador de máquinas virtuais (VMM)

Pela linha de comando, apenas como usuaŕio root, virt-viewer permite acesso direto ao console da vm sem a necessidade de carregar o VMM.

# virt-viewer vm1
ou
# virt-manager

Também é possível administrar a vm com o comando virsh. Abaixo uma pequena tabela dos comandos que mais utilizo no dia a dia.

Help Exibe a ajuda Exemplo
autostart auto inicia um domínio # virsh autostart vm1
connect (re)conectar ao hypervisor # virsh connect <name>
console conectar ao console do convidado # virsh console vm1
start inicia um (previamente definido) domínio inativo # virsh start vm1
destroy destrói um domínio # virsh destroy vm1
dominfo informações do domínio # virsh connect kvm1
domstate estado do domínio # virsh domstate vm1
domifstat obtém as estatísticas da interface de rede para um domínio # virsh domifstat vm1 vnet0
dumpxml informações do domínio em XML. # virsh iface-dumpxml eth0
edit edita configuração XML para um domínio # virsh edit vm1
freecell Memória NUMA livre # virsh freecell
hostname exibe o nome de máquina do hypervisor # virsh hostname
list lista os domínios # virsh list
migrate migra o domínio para outro hospedeiro # virsh migrate –live vm1 qemu+ssh://root@192.168.1.151/system
net-autostart auto inicia uma rede # virsh net-autostart default
net-edit edita configuração XML para uma rede # virsh net-edit default
net-list lista as redes # virsh net-list
net-start inicia uma (previamente definida) rede inativa # virsh net-start default
iface-list lista os endereços físicos das interface de rede # virsh iface-list
iface-name convert an interface MAC address to interface name # virsh iface-name 00:27:0E:06:4F:02
iface-mac convert an interface name to interface MAC address # virsh iface-mac br0
iface-dumpxml informação da rede em formanto xml # virsh iface-dumpxml br0
iface-destroy destroy a physical host interface (disable it / “if-down”) # virsh iface-destroy br0
nodeinfo informações do nó # virsh nodeinfo
nodedev-dumpxml detalhes do dispositivo do nó em XML # virsh dumpxml vm1
reboot reinicia o domínio # virsh reboot vm1
restore restaura um domínio a partir de um estado salvo em arquivo # virsh restore vm1-bkp.xml
resume retoma um domínio mesmo que esteja suspenso # virsh resume vm1
save salva o estado do domínio em um arquivo # virsh save vm1 vm1-bkp.xml
shutdown desliga elegantemente um domínio # virsh shutdown vm1
setmem altera a alocação de memória – Lembrando que é preciso o ID da vm # virsh setmem 7 4242880
setmaxmem altera o limite máximo de memória – Lembrando que é preciso o ID da vm # virsh setmaxmem 7 4242880
setvcpus altera o número de CPUs virtuais # virsh setvcpus 7 2
suspend suspende um domínio # virsh suspend vm1
vol-clone clone a volume # virsh vol-clone /var/lib/libvirt/images/vm1.img vm4.img
vol-delete apaga um volume # virsh vol-delete /var/lib/libvirt/images/vm4.img
vol-dumpxml informação do volume em XML # virsh vol-dumpxml /var/lib/libvirt/images/vm1.img
vol-info informação do volume de armazenamento # virsh vol-info /var/lib/libvirt/images/vm1.img
vcpuinfo informações da vcpu do domínio # virsh vcpuinfo vm1

Continua na Parte 2.

>_Kvm 1.1
Tagged on:

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

%d blogueiros gostam disto: