Instalando e configurando o KVM e Open vSwitch

openvs

Neste tutorial, irei mostrar como instalar e configurar o KVM e Open vSwitch (OVS) no Debian e/ou Ubuntu. KVM e Open vSwitch são respectivamente um dos mais populares hypervisor de código aberto, utilizados em grandes data centers nos dias atuais.

Instalando Open vSwitch

O OVS vem como um pacote no Debian/Ubuntu, porém aqui eu estou instalando a partir da fonte, que terá os mais recentes recursos e correção de bugs.

Primeiro, vamos instalar as dependências do OVS.

$ sudo apt-get install build-essential libssl-dev linux-headers-$(uname -r)

Agora iremos baixar o OVS da fonte e iniciar sua instalação.

$ wget http://openvswitch.org/releases/openvswitch-1.9.3.tar.gz
$ tar xvfvz openvswitch-1.9.3.tar.gz
$ cd openvswitch-1.9.3
$ ./configure –with-linux=/lib/modules/`uname -r`/build
$ make

Vá em frente e instale os componentes do OVS em /usr/local/share/

$ sudo make install

O próximo passo é testar o modelo do kernel OVS.

Para isto, carregue o modelo do kernel.

$ sudo insmod ./datapath/linux/openvswitch.ko

Verifique se o modulo do kernel OVS é carregado com êxito.

$ sudo insmod ./datapath/linux/openvswitch.ko

openvswitch            97934  0

Depois de verificar que o openvswitch.ko é carregado com êxito, vá em frente e instale o modelo no kernel da seguinte forma.

$ sudo make modules_install

Configurando o Open vSwitch

Vamos criar um banco de dados para as configurações do OVS.

$ sudo mkdir /etc/openvswitch
$ sudo ovsdb-tool create /etc/openvswitch/conf.db ./vswitchd/vswitch.ovsschema

Iniciando banco de dados OVS

$ sudo ovsdb-server –remote=punix:/usr/local/var/run/openvswitch/db.sock – remote=db:Open_vSwitch,manager_options –pidfile –detach

$ sudo ovs-vsctl –no-wait init

Finalmente, inicie OVS Daemon

$ sudo ovs-vswitchd –pidfile –detach

Instalando o KVM

Vamos instalar KVM utilizando comando apt-get.

$ sudo apt-get install qemu-kvm libvirt-bin bridge-utils virt-manager

Adicione um usuário no grupo libvirtd de modo que ele tenha permissão para executar as VMs sem ter privilegio ROOT.

$ sudo adduser nome_do_usuario libvirtd

Agora entre com o usuário criado, iremos validar sua associação com grupo.

Execute o seguinte comando. Você deve listar as VMs vazias, de forma que significa que o KVM está configurado com sucesso.

$ virsh -c qemu:///system list

Id    Name                           State

Configurando Open vSwitch com KVM

Agora é hora de criar os scrips de inicialização do OVS, de modo que OVS passa ser iniciado automaticamente quando uma VM é iniciada ou parada.

Vamos começar instalando as dependencias necessárias.

$ sudo apt-get install uml-utilities

Vamos criar os scripts de inicialização da seguinte forma.

$ sudo vi /etc/openvswitch/ovs-ifup

12

3

4

5

#!/bin/shswitch=’br0′

/sbin/ifconfig $1 0.0.0.0 up

ovs-vsctl add-port ${switch} $1

$ sudo vi /etc/openvswitch/ovs-ifdown

12

3

4

5

#!/bin/shswitch=’br0′

/sbin/ifconfig $1 0.0.0.0 down

ovs-vsctl del-port ${switch} $1

$ sudo chmod +x /etc/openvswitch/ovs-if*

Em seguida, crie uma ponte padrão br0 e adicione uma interface de rede física, através da qual as VMs iram se comunicar com as redes externas. Neste tutorial, utilizo eth5.

$ sudo ovs-vsctl add-br br0
$ sudo ovs-vsctl add-port br0 eth5

 

Criando uma VM com KVM

Agora você está pronto, para criar uma VM.

Eu suponho que você já tenha preparado uma imagem, para criar uma VM (por exemplo: ubuntu-client.img). Use o seguinte comando para iniciar uma VM.

$ sudo kvm -m 1024 -net nic,macaddr=11:11:11:EE:EE:EE -net tap,script=/etc/openvswitch/ovs-ifup,downscript=/etc/openvswitch/ovs-ifdown -vnc :1 -drive file=/home/dev/images/ubuntu-client.img,boot=on

Isso irá criar uma VM, cuja interface é automaticamente adicionada ao OVS br0.

Você pode verificar o status OVS usando o comando OVS-vsctl:

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s