Virtualização · 5 min read · Dec 15, 2025
Virtualização Com KVM Em Um Servidor CentOS 6.4
Virtualização Com KVM Em Um Servidor CentOS 6.4
Versão 1.0
Autor: Falko Timme
Siga-me no Twitter
Este guia explica como você pode instalar e usar o KVM para criar e executar máquinas virtuais em um servidor CentOS 6.4. Eu vou mostrar como criar máquinas virtuais baseadas em imagem e também máquinas virtuais que usam um volume lógico (LVM). KVM é a sigla para Kernel-based Virtual Machine e faz uso da virtualização de hardware, ou seja, você precisa de um CPU que suporte virtualização de hardware, por exemplo, Intel VT ou AMD-V.
Eu não dou nenhuma garantia de que isso funcionará para você!
1 Nota Preliminar
Estou usando um servidor CentOS 6.4 com o nome do host server1.example.com e o endereço IP 192.168.0.100 aqui como meu host KVM.
Eu desativei o SELinux no meu sistema CentOS 6.4. Eu não testei com o SELinux ativado; pode funcionar, mas se não funcionar, é melhor desligar o SELinux também:
vi /etc/selinux/configDefina SELINUX=disabled…
| # Este arquivo controla o estado do SELinux no sistema. # SELINUX= pode assumir um destes três valores: # enforcing - A política de segurança do SELinux é aplicada. # permissive - O SELinux imprime avisos em vez de aplicar. # disabled - Nenhuma política do SELinux é carregada. SELINUX=disabled # SELINUXTYPE= pode assumir um destes dois valores: # targeted - Processos direcionados estão protegidos, # mls - Proteção de Segurança de Múltiplos Níveis. SELINUXTYPE=targeted |
… e reinicie:
reboot Precisamos também de um sistema desktop onde instalamos o virt-manager para que possamos nos conectar ao console gráfico das máquinas virtuais que instalamos. Estou usando um desktop Fedora 17 aqui.
2 Instalando KVM
Host KVM CentOS 6.4:
Primeiro verifique se seu CPU suporta virtualização de hardware - se este for o caso, o comando
egrep '(vmx|svm)' --color=always /proc/cpuinfodeverá exibir algo, por exemplo, assim:
[root@server1 ~]# egrep ‘(vmx|svm)’ –color=always /proc/cpuinfo
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall
nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy misalignsse
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall
nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy misalignsse
[root@server1 ~]#
Se nada for exibido, então seu processador não suporta virtualização de hardware, e você deve parar aqui.
Agora importamos as chaves GPG para pacotes de software:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*Para instalar KVM e virtinst (uma ferramenta para criar máquinas virtuais), executamos
yum install kvm libvirt python-virtinst qemu-kvmEntão inicie o daemon libvirt:
/etc/init.d/libvirtd startPara verificar se o KVM foi instalado com sucesso, execute
virsh -c qemu:///system listDeverá exibir algo como isto:
[root@server1 ~]# virsh -c qemu:///system list
Id Nome Estado
———————————-
[root@server1 ~]#
Se exibir um erro em vez disso, então algo deu errado.
Em seguida, precisamos configurar uma ponte de rede em nosso servidor para que nossas máquinas virtuais possam ser acessadas de outros hosts como se fossem sistemas físicos na rede.
Para fazer isso, instalamos o pacote bridge-utils…
yum install bridge-utils… e configuramos uma ponte. Crie o arquivo /etc/sysconfig/network-scripts/ifcfg-br0 (por favor, use os valores IPADDR, PREFIX, GATEWAY, DNS1 e DNS2 do arquivo /etc/sysconfig/network-scripts/ifcfg-eth0); certifique-se de usar TYPE=Bridge, não TYPE=Ethernet:
vi /etc/sysconfig/network-scripts/ifcfg-br0| DEVICE="br0" NM_CONTROLLED="yes" ONBOOT=yes TYPE=Bridge BOOTPROTO=none IPADDR=192.168.0.100 PREFIX=24 GATEWAY=192.168.0.1 DNS1=8.8.8.8 DNS2=8.8.4.4 DEFROUTE=yes IPV4_FAILURE_FATAL=yes IPV6INIT=no NAME="System br0" |
Modifique /etc/sysconfig/network-scripts/ifcfg-eth0 da seguinte forma (comente BOOTPROTO, IPADDR, PREFIX, GATEWAY, DNS1 e DNS2 e adicione BRIDGE=br0):
vi /etc/sysconfig/network-scripts/ifcfg-eth0| DEVICE="eth0" #BOOTPROTO=none NM_CONTROLLED="yes" ONBOOT=yes TYPE="Ethernet" UUID="73cb0b12-1f42-49b0-ad69-731e888276ff" HWADDR=00:1E:90:F3:F0:02 #IPADDR=192.168.0.100 #PREFIX=24 #GATEWAY=192.168.0.1 #DNS1=8.8.8.8 #DNS2=8.8.4.4 DEFROUTE=yes IPV4_FAILURE_FATAL=yes IPV6INIT=no NAME="System eth0" BRIDGE=br0 |
Reinicie a rede…
/etc/init.d/network restart… e execute
ifconfigAgora deverá mostrar a ponte de rede (br0):
[root@server1 ~]# ifconfig
br0 Link encap:Ethernet HWaddr 00:1E:90:F3:F0:02
inet addr:192.168.0.100 Bcast:192.168.0.255 Mask:255.255.255.0
in6 addr: fe80::21e:90ff:fef3:f002/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:27 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:460 (460.0 b) TX bytes:2298 (2.2 KiB)
eth0 Link encap:Ethernet HWaddr 00:1E:90:F3:F0:02
in6 addr: fe80::21e:90ff:fef3:f002/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:18455 errors:0 dropped:0 overruns:0 frame:0
TX packets:11861 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:26163057 (24.9 MiB) TX bytes:1100370 (1.0 MiB)
Interrupt:25 Base address:0xe000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
in6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:5 errors:0 dropped:0 overruns:0 frame:0
TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2456 (2.3 KiB) TX bytes:2456 (2.3 KiB)
virbr0 Link encap:Ethernet HWaddr 52:54:00:AC:AC:8F
inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
[root@server1 ~]#
3 Instalando virt-viewer Ou virt-manager Em Seu Desktop Fedora 17
Desktop Fedora 17:
Precisamos de um meio de conectar ao console gráfico de nossos convidados - podemos usar o virt-manager para isso. Estou assumindo que você está usando um desktop Fedora 17.
Torne-se root…
su… e execute…
yum install virt-manager libvirt qemu-system-x86 openssh-askpass… para instalar o virt-manager.
(Se você estiver usando um desktop Ubuntu 12.04, pode instalar o virt-manager da seguinte forma:
sudo apt-get install virt-manager)
4 Criando Um Convidado Debian Squeeze (Baseado em Imagem) A Partir da Linha de Comando
Host KVM CentOS 6.4:
Agora vamos voltar ao nosso host KVM CentOS 6.4.
Dê uma olhada em
man virt-installpara aprender como usar o virt-install.
Nós criaremos nossas máquinas virtuais baseadas em imagem no diretório /var/lib/libvirt/images/ que foi criado automaticamente quando instalamos o KVM no capítulo dois.
Para criar um convidado Debian Squeeze (em modo de ponte) com o nome vm10, 512MB de RAM, dois CPUs virtuais, e a imagem de disco /var/lib/libvirt/images/vm10.img (com um tamanho de 12GB), insira o CD de instalação Netinstall do Debian Squeeze na unidade de CD e execute
virt-install --connect qemu:///system -n vm10 -r 512 --vcpus=2 --disk path=/var/lib/libvirt/images/vm10.img,size=12 -c /dev/cdrom --vnc --noautoconsole --os-type linux --os-variant debiansqueeze --accelerate --network=bridge:br0 --hvmClaro, você também pode criar uma imagem ISO do CD de instalação Netinstall do Debian Squeeze (por favor, crie-a no diretório /var/lib/libvirt/images/ porque mais tarde eu mostrarei como criar máquinas virtuais através do virt-manager a partir do seu desktop Fedora, e o virt-manager procurará imagens ISO no diretório /var/lib/libvirt/images/)…
dd if=/dev/cdrom of=/var/lib/libvirt/images/debian-6.0.5-amd64-netinst.iso… e usar a imagem ISO no comando virt-install:
virt-install --connect qemu:///system -n vm10 -r 512 --vcpus=2 --disk path=/var/lib/libvirt/images/vm10.img,size=12 -c /var/lib/libvirt/images/debian-6.0.5-amd64-netinst.iso --vnc --noautoconsole --os-type linux --os-variant debiansqueeze --accelerate --network=bridge:br0 --hvmA saída é a seguinte:
[root@server1 ~]# virt-install –connect qemu:///system -n vm10 -r 512 –vcpus=2 –disk path=/var/lib/libvirt/images/vm10.img,size=12 -c /var/lib/libvirt/images/debian-6.0.5-amd64-netinst.iso –vnc –noautoconsole –os-type linux –os-variant debiansqueeze –accelerate –network=bridge:br0 –hvm
Iniciando a instalação…
Alocando ‘vm10.img’ | 12 GB 00:00
Criando domínio… | 0 B 00:00
A instalação do domínio ainda está em progresso. Você pode se reconectar ao
console para completar o processo de instalação.
[root@server1 ~]#
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.