Avançar para a área de conteúdo

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

Na primeira vez que você efetua sign in no developerWorks, um perfil é criado para você. Informações selecionadas do seu perfil developerWorks são exibidas ao público, mas você pode editá-las a qualquer momento. Seu primeiro nome, sobrenome (a menos que escolha ocultá-los), e seu nome de exibição acompanharão o conteúdo que postar.

Todas as informações enviadas são seguras.

  • Fechar [x]

Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

Todas as informações enviadas são seguras.

  • Fechar [x]

Criar um servidor virtual baseado em KVM

Três etapas para criar um servidor virtual em um hypervisor da Linux KVM com virtualização completa

Da Shuang He, Software Engineer, IBM
Da Shuang é engenheiro de software no IBM China Development Lab em Xangai, China. Trabalha atualmente no software de gerenciamento de sistema; enfoca a criação de servidores com inicialização automática, instalação remota de sistema operacional e gerenciamento de energia.

Resumo:  Em três etapas relativamente simples, é possível criar um servidor virtual no host do hypervisor da Linux® KVM usando a virtualização completa. A Kernel-based Virtual Machine (KVM) é um software de virtualização livre gratuito para Linux que tem como base as extensões de virtualização de hardware (Intel VT-X e AMD-V) e uma versão modificada de QEMU.

Data:  08/Mar/2010
Nível:  Intermediário
Atividade:  9047 visualizações
Comentários:  


Participe dos grupos ecológicos no My developerWorks

Discuta tópicos e compartilhe recursos sobre energia, eficiência e meio ambiente no espaço GReen IT Report e no Grupo de computação ecológica do My developerWorks.

A Kernel-based Virtual Machine (KVM) é um software de virtualização livre gratuito para Linux que tem como base as extensões de virtualização de hardware Intel VT-X e AMD-V e uma versão modificada de QEMU (o trabalho está sendo feito para se fazer o envio de dados das alterações solicitadas). KVM—na forma de kvm.ko, um módulo do kernel que pode ser carregado que fornece a infraestrutura de virtualização principal e os módulos específicos de processador kvm-intel.ko e kvm-amd.ko—foi projetado para permitir emulação de hardware completa na medida necessária para inicializar muitos sistemas operacionais de PC na forma não modificada.

Usando KVM, é possível executar várias máquinas virtuais que executam imagens de Linux ou Windows® ou Mac OS® X não modificadas. Cada máquina virtual tem hardware virtualizado particular, como placa de rede, disco, placa de vídeo etc.

Para este artigo, usei um IBM® Blade Server HS21 com SUSE 11 como o sistema operacional. O HS21 suporta a extensão Intel VT, e a versão de kernel de SUSE 11 é 2.6.27.13, que já contém a KVM (a KVM está incluída nas versões de kernel Linux desde a 2.6.20).

As três principais etapas para fazer o servidor virtual operar são:

  1. Instalar o sistema operacional e o software necessário.
  2. Criar o servidor virtual.
  3. Configurar a rede do servidor virtual.

Etapa 1. Instalar o sistema operacional e os softwares necessários

Esta seção cobre o seguinte:

  1. Instalar o sistema operacional e os softwares necessários
  2. Determinar se a CPU suporta ou não a KVM
  3. Verificar se o software está instalado corretamente

Instalar o sistema operacional e o software

Após a instalação do sistema operacional, é possível encontrar a versão instalada do kernel Linux com o seguinte comando:

kvm:~ # uname -a
Linux kvm 2.6.27.13-1-pae #1 SMP 2009-01-27 13:41:16 +0100 i686 i686 i386 GNU/Linux 

Em seguida, instale os pacotes kvm e kvm-kmp-default (que já têm um QEMU modificado para emulação de hardware de E/S). Como mostrado na Figura 1, selecione esses pacotes e clique em Accept para instalá-los:


Figura 1. Localizando o kernel instalado
Finding the installed kernel

Agora, a versão de kvm-kmp-default deve ser 78_2.6.27.13_1-11.3. (78 é a versão da KVM, e o restante das informações indica a versão do kernel.)

Uma instalação de KVM típica consiste em três componentes:

  • Um driver de dispositivo para gerenciar o hardware de virtualização; esse driver expõe seus recursos via dispositivo de caractere /dev/kvm
  • Um componente de espaço do usuário para emular hardware de PC; atualmente, isso é manipulado no espaço do usuário e é um processo QEMU levemente modificado
  • O modelo de E/S, derivado diretamente do modelo de QEMU com suporte para imagens de disco copy-on-write e outros recursos de QEMU

Determinar se a CPU suporta ou não a KVM

A KVM depende das extensões de virtualização x86. Para verificar a compatibilidade, execute o comando grep vmx /proc/cpuinfo (em AMD, execute o comando grep svm /proc/cpuinfo). Se a saída for similar à Listagem 1, a CPU suportará KVM; caso contrário, sua CPU não suportará KVM.


Listagem 1. Verificando CPU para suporte de KVM
kvm:~ # grep vmx /proc/cpuinfo
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 
clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe lm constant_tsc arch_perfmon pebs bts pni 
monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr dca lahf_lm
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 
clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe lm constant_tsc arch_perfmon pebs bts pni 
monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr dca lahf_lm
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 
clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe lm constant_tsc arch_perfmon pebs bts pni 
monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr dca lahf_lm
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 
clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe lm constant_tsc arch_perfmon pebs bts pni 
monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr dca lahf_lm

Determinar se o software foi instalado com êxito

Execute o comando lsmod | grep kvm para verificar se o módulo de KVM foi instalado com êxito. Se o resultado for similar a esta saída, o módulo da KVM será instalado com êxito:

kvm:~ # lsmod | grep kvm
kvm_intel              42604  0
kvm                   150264  1 kvm_intel


Etapa 2. Criar o servidor virtual

Esta seção cobre o seguinte:

  1. Criar a imagem de disco bruta
  2. Instalar o sistema operacional nessa imagem
  3. Executando o servidor virtual

Criar uma imagem de disco bruta

Para criar uma imagem de disco bruta, use este comando:

dd if=/dev/zero of=/mnt/kvmtest.img bs=1024 count=0 seek=$[10*1024*1024]

Com esse comando, você criará uma imagem de 10 GB com o nome de kvmtest.img.

Instalar o sistema operacional nessa imagem

Para instalar o sistema operacional nessa imagem, use este comando:

/usr/bin/qemu-kvm -hda /mnt/kvmtest.img -boot d -cdrom /mnt/SLES-11-DVD-i586-RC3-DVD1.iso -m 1024

Como você não está instalando um pacote de KVM e não está criando a KVM a partir da origem, é possível usar qemu-kvm, mas não qemu-system-x86_64.

-boot d significa que faremos o boot do servidor virtual a partir do CD-ROM. -m 1024 significa que especificamos 1 GB de memória para o servidor virtual.

Após a execução desse comando, a tela de instalação do sistema operacional deve ficar como a Figura 2:


Figura 2. A tela de instalação do sistema operacional
The OS installation screen

Em seguida, instale o sistema operacional normalmente.

Agora, execute o seu servidor virtual

Após a instalação com êxito do sistema operacional, é possível iniciar o servidor virtual com este comando:

/usr/bin/qemu-kvm -hda /mnt/kvmtest.img -m 1024

O seu servidor deve ser executado como um servidor normal em execução no hardware físico.


Etapa 3. Configurar a rede do servidor virtual

Você viu até agora como criar um servidor virtual, mas não a rede para ele. Agora, vou lhe mostrar como criar uma rede de ponte para o servidor virtual:

  1. Instalando o pacote bridge-util
  2. Criando a interface de rede de ponte
  3. Criando o script para controle de rede
  4. Iniciando a rede do sistema operacional de convidado
  5. Configurando a rede do sistema operacional de convidado

A instalação do pacote bridge-util

Precisamos criar uma rede de ponte, portanto, precisamos instalar o pacote bridge-util na seção de gerenciamento de software do sistema operacional. A Figura 3 mostra onde selecionar e instalar o pacote.


Figura 3. Instalando o pacote bridge-util
Installing the bridge-util package

Criar a interface de rede de ponte

Na tela de configuração de rede do sistema operacional, clique em Add a new network interface (consulte a Figura 4):


Figura 4. Adicionando uma nova interface de rede
Adding a new network interface

Deve aparecer uma caixa de diálogo Hardware, como indicado na Figura 5:


Figura 5. A caixa de diálogo Hardware para a nova interface de rede
The hardware dialog for new network interface

Escolha o tipo de dispositivo Bridge; clique em Next para continuar a configuração da rede. Você verá a tela de configuração mostrada na Figura 6:


Figura 6. Tela de configuração de rede
Network configuration screen

Escolha eth0 em "Bridged Devices" e configure um IP estático para a interface de ponte, que é a mesma configuração de eth0 (veja a Figura 7).


Figure 7. Configurando um IP estático para a interface bridge
Configuring a static IP for the bridge interface

Após isso, a configuração eth0 será desmarcada, portanto, clique em Next para continuar, e você voltará à tela de configuração de rede. É possível ver que uma nova interface de rede de ponte foi criada e que a configuração eth0 está desmarcada.

Criar o script de controle de rede

O conteúdo de um script de controle de rede deve ficar algo parecido à Listagem 2:


Listagem 2. Script de controle de rede
#!/bin/sh
set -x
switch=br0
if [ -n "$1" ];then
        tunctl -u `whoami` -t $1
        ip link set $1 up
        sleep 0.5s
        brctl addif $switch $1
        exit 0
else
        echo "Error: no interface specified"
        exit 1
fi

Iniciar o sistema operacional de convidado

Inicie o sistema operacional de convidado com uma interface de rede usando o comando:

/usr/bin/qemu-kvm -hda /mnt/kvmtest.img -m 1024 -net nic,macaddr=52:54:00:12:34:56 -net tap,script=/etc/qemu-ifup

Especifique uma interface de rede ao iniciar o servidor virtual.

Configurar a rede do sistema operacional de convidado

Após o boot do sistema operacional de convidado, configure sua rede normalmente.

Parabéns! Você criou com êxito um servidor virtual construído em KVM.


Recursos

Aprender

Obter produtos e tecnologias

  • A IBM oferece toneladas de documentação e suporte para seus servidores BladeCenter.

  • Com o software de teste IBM, disponível para download diretamente no developerWorks, faça seu próximo projeto de desenvolvimento em Linux.

Discutir

  • Envolva-se na comunidade My developerWorks. Mantenha contato com outros usuários do developerWorks enquanto explora blogs, fóruns, grupos e wikis direcionados a desenvolvedores.

Sobre o autor

Da Shuang é engenheiro de software no IBM China Development Lab em Xangai, China. Trabalha atualmente no software de gerenciamento de sistema; enfoca a criação de servidores com inicialização automática, instalação remota de sistema operacional e gerenciamento de energia.

Ajuda para Relatar Abuso

Relatar abuso

Obrigado. Esta entrada foi sinalizada para atenção do moderador.


Ajuda para Relatar Abuso

Relatar abuso

Falha no envio do Relatório de abuso. Tente novamente mais tarde.


developerWorks: Registre-se


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos de uso do developerWorks.

 


Na primeira vez que você efetua sign in no developerWorks, um perfil é criado para você. Informações selecionadas do seu perfil developerWorks são exibidas ao público, mas você pode editá-las a qualquer momento. Seu primeiro nome, sobrenome (a menos que escolha ocultá-los), e seu nome de exibição acompanharão o conteúdo que postar.

Selecione seu nome de exibição

Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

(Deve possuir de 3 a 31 caracteres.)


Ao clicar em Enviar, você concorda com os termos de uso do developerWorks.

 


Classificar este artigo

Comentários

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Linux
ArticleID=472336
ArticleTitle=Criar um servidor virtual baseado em KVM
publish-date=03082010
author1-email=hedas@cn.ibm.com
author1-email-cc=

Conheça a IBM da sua cidade

Virtual Branch Office Brasil

A IBM está mais perto do que você imagina!


Tags

Help
Use o campo de pesquisa para encontrar todos os tipos de conteúdo no My developerWorks com essa tag.

Use a barra de rolagem para ver mais ou menos tags.

Tags populares mostra as principais tags para esta zona de conteúdo em particular (por exemplo, Java technology, Linux, WebSphere).

Minhas tags mostra suas tags para esta zona de conteúdo em particular (por exemplo, Java technology, Linux, WebSphere).

Use o campo de pesquisa para localizar todos os tipos de conteúdo no Meu developerWorks com essa tag. Tags populares mostra as tags principais para essa zona de conteúdo particular (por exemplo, tecnologia Java, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere). Minhas tags mostra as suas tags para essa zona de conteúdo em particular (por exemplo, tecnologia Java, Linux, WebSphere).