Virtualização · 5 min read · Dec 23, 2025

Virtualização Com KVM Em Um Servidor OpenSUSE 12.2

Virtualização Com KVM Em Um Servidor OpenSUSE 12.2

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 OpenSUSE 12.2. Eu mostrarei 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 de 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 OpenSUSE 12.2 com o nome do host server1.example.com e o endereço IP 192.168.0.100 aqui como meu host KVM.

Também precisamos de um sistema de 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 OpenSUSE 12.2 aqui.

2 Instalando KVM

Host KVM OpenSUSE 12.2:

Primeiro verifique se seu CPU suporta virtualização de hardware - se este for o caso, o comando

egrep '(vmx|svm)' --color=always /proc/cpuinfo

deverá exibir algo, por exemplo, assim:

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 rep_good extd_apicid pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch lbrv
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 rep_good extd_apicid pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch lbrv
server1:~ #

Se nada for exibido, então seu processador não suporta virtualização de hardware, e você deve parar aqui.

Para instalar o KVM e o virtinst (uma ferramenta para criar máquinas virtuais), executamos

zypper install  kvm libvirt libvirt-python qemu virt-manager

Infelizmente, libvirt-python entra em conflito com o pacote patterns-openSUSE-minimal_base-conflicts. Portanto, devemos escolher desinstalar esse pacote:

Problema: libvirt-python-0.9.11.4-1.2.1.x86_64 requer python = 2.7, mas esse requisito não pode ser fornecido
desinstaladores: python-2.7.3-3.6.1.x86_64[openSUSE-12.2-1.6]
python-2.7.3-3.6.1.i586[repo-oss]
python-2.7.3-3.6.1.x86_64[repo-oss]
Solução 1: As seguintes ações serão realizadas:
não instalar libvirt-python-0.9.11.4-1.2.1.x86_64
não instalar virt-manager-0.9.4-1.6.1.x86_64
Solução 2: As seguintes ações serão realizadas:
não instalar virt-manager-0.9.4-1.6.1.x86_64
não instalar libvirt-python-0.9.11.4-1.2.1.x86_64
Solução 3: desinstalação de patterns-openSUSE-minimal_base-conflicts-12.2-5.5.1.x86_64
Solução 4: quebrar libvirt-python-0.9.11.4-1.2.1.x86_64 ignorando algumas de suas dependências

Escolha entre as soluções acima pelo número ou cancele [1/2/3/4/c] (c): <– 3

Então crie os links de inicialização do sistema para libvirtd…

 systemctl enable  libvirtd.service

… e inicie o daemon libvirt:

systemctl start libvirtd.service

Para verificar se o KVM foi instalado com sucesso, execute

virsh -c qemu:///system list

Deve exibir algo como:

server1:~ # virsh -c qemu:///system list
WARNING: no socket to connect to
Id Name State

———————————-

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…

zypper install  bridge-utils

… e configuramos uma ponte.

Para configurar a ponte, crie o arquivo /etc/sysconfig/network/ifcfg-br0 da seguinte forma (certifique-se de usar a configuração IPADDR do arquivo /etc/sysconfig/network/ifcfg-eth0):

vi /etc/sysconfig/network/ifcfg-br0

| STARTMODE='auto' BOOTPROTO='static' IPADDR='192.168.0.100/24' MTU='' NETMASK='' NETWORK='' BROADCAST='' USERCONTROL=no NAME='Bridge 0' NM_CONTROLLED=no BRIDGE='yes' BRIDGE_PORTS='eth0' BRIDGE_AGEINGTIME='300' BRIDGE_FORWARDDELAY='0' BRIDGE_HELLOTIME='2' BRIDGE_MAXAGE='20' BRIDGE_PATHCOSTS='19' BRIDGE_PORTPRIORITIES= BRIDGE_PRIORITY= BRIDGE_STP='on' |

(Se você receber a mensagem Você não tem um pacote binário vim válido instalado. Por favor, instale “vim”, “vim-enhanced” ou “gvim”., execute

zypper install  vim

para instalar o vi e tente novamente. )

Modifique /etc/sysconfig/network/ifcfg-eth0 da seguinte forma (defina IPADDR para 0.0.0.0 e altere STARTMODE para hotplug):

vi /etc/sysconfig/network/ifcfg-eth0

| BOOTPROTO='static' BROADCAST='' ETHTOOL_OPTIONS='' IPADDR='0.0.0.0' MTU='' NAME='MCP77 Ethernet' NETMASK='' NETWORK='' REMOTE_IPADDR='' STARTMODE='hotplug' USERCONTROL='no' |

Então reinicie a rede:

systemctl restart network.service

Depois, execute

ifconfig

Deve agora mostrar a ponte de rede (br0):

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
inet6 addr: fe80::21e:90ff:fef3:f002/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:92 errors:0 dropped:0 overruns:0 frame:0
TX packets:38 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:12716 (12.4 Kb) TX bytes:5961 (5.8 Kb)

eth0 Link encap:Ethernet HWaddr 00:1E:90:F3:F0:02
inet6 addr: fe80::21e:90ff:fef3:f002/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:131711 errors:0 dropped:0 overruns:0 frame:0
TX packets:80954 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:185764801 (177.1 Mb) TX bytes:6374023 (6.0 Mb)
Interrupt:41 Base address:0x8000

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:12 errors:0 dropped:0 overruns:0 frame:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:860 (860.0 b) TX bytes:860 (860.0 b)

server1:~ #

3 Instalando o virt-manager Em Seu Desktop OpenSUSE 12.1

Desktop OpenSUSE 12.2:

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 OpenSUSE 12.2.

Torne-se root…

su

… e execute…

zypper install  virt-manager libvirt

… para instalar o virt-manager.

(Se você estiver usando um desktop Ubuntu 11.10, pode instalar o virt-manager da seguinte forma:

sudo apt-get install virt-manager

)

4 Criando Um Convidado Debian Squeeze (Baseado em Imagem)

Host KVM OpenSUSE 12.2:

Agora vamos voltar ao nosso host KVM OpenSUSE 12.2.

Dê uma olhada em

virt-install --help 

para aprender como usá-lo.

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 --hvm

Claro, 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 OpenSUSE 12.2, 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.0-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.0-amd64-netinst.iso --vnc --noautoconsole --os-type linux --os-variant debiansqueeze --accelerate --network=bridge:br0 --hvm

A saída é a seguinte:

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.0-amd64-netinst.iso –vnc –noautoconsole –os-type linux –os-variant debiansqueeze –accelerate –network=bridge:br0 –hvm
WARNING: no socket to connect to

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.
server1:~ #

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.