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
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.
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.
Parabéns pelo post Luciano!
ResponderExcluirMas 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?
Fábio....
ExcluirQual sistema operacional vc esta utilizando?
Oi Luciano!
ExcluirComo estou fazendo um lab de teste do Red Hat, tô usando o CentOS, criando as maquinas com o virt-manager.
Este comentário foi removido pelo autor.
ExcluirFabio... Utilize essas linhas:
ExcluirSalvar um snapshot: virsh save
Restaurar um snapshot: virsh restore <nome do arquivo
Pois é Luciano...
ExcluirDepois de muito testar, o que funciona mesmo é o VM State... Save e depois Restore.
Obrigado!
Este comentário foi removido pelo autor.
ResponderExcluir