33
Virtualização usando KVM e LXC Luís Eduardo Tenório Silva [email protected]

Virtualização usando KVM e LXC

Embed Size (px)

Citation preview

Page 1: Virtualização usando KVM e LXC

Virtualização usando KVM e LXC

Luís Eduardo Tenório [email protected]

Page 2: Virtualização usando KVM e LXC

Sumário● Breve introdução a virtualização

○ O que é virtualização?○ Porque virtualizar?○ Técnicas de virtualização

● Mão na massa (KVM):○ Introdução○ Instalação○ Criando sua primeira máquina virtual

● Mão na massa (LXC):○ Instalação○ Criando seu primeiro container

■ Diretórios e arquivos de configuração○ Gerenciando seu primeiro container

Page 3: Virtualização usando KVM e LXC

Breve introdução a virtualização

Page 4: Virtualização usando KVM e LXC

O que é virtualização?“Técnica responsável por promover uma camada de abstração entre o hardware e o software” (MENASCÉ, 2005)

“Abstração das funcionalidades e recursos empregados em hardware para um ambiente gerenciado por software” (BUYYA et al, 2012)

Page 5: Virtualização usando KVM e LXC

Ambiente virtualizado (a direita)

Page 6: Virtualização usando KVM e LXC

Motivos de virtualização● Isolamento entre diversos serviços

executando em uma única máquina;● Utilização inteligente dos recursos

disponíveis;● Flexibilidade na manutenção de

infraestruturas;● Utilização de diversos sistemas operacionais

(SOs) ao mesmo tempo;

Page 7: Virtualização usando KVM e LXC

Técnicas de virtualização

Page 8: Virtualização usando KVM e LXC

Virtualização total e para-virtualização

Page 9: Virtualização usando KVM e LXC

Virtualização total e para-virtualizaçãoVirtualização total● Pode virtualizar qualquer

tipo de SO em qualquer versão

● Facilidade na realização da virtualização

● Performance ruim

Para-virtualização● Virtualiza SOs com

drivers específicos (modificados)

● Virtualização apenas a sistemas adaptados

● Boa performance

Page 10: Virtualização usando KVM e LXC

Virtualização em nível de SO

Page 11: Virtualização usando KVM e LXC

Mão na massa (KVM)

Page 12: Virtualização usando KVM e LXC

Introdução

KVM (Kernel-based Virtual Machine)● Infraestrutura de virtualização integrada no

kernel Linux (desde a versão 2.6.20)● Provê virtualização assistida por hardware● Utiliza o qemu como ferramenta de

userspace

Page 13: Virtualização usando KVM e LXC

Instalação● Pré-requisitos

● Instalação

● Observar se módulo está ativo

$ sudo grep -cE 'vmx|svm' /proc/cpuinfo

$ sudo apt-get install qemu-kvm libvirt-bin

$ sudo kvm-ok

Page 14: Virtualização usando KVM e LXC

Preparando a imagem de disco● O KVM necessita de uma imagem de disco

para armazenar todo SO e ferramentas que serão utilizadas pelas VMs.

● Existem diversos tipos de imagens de disco (.img, .vdi , .qcow, .qcow2, .raw)○ KVM suporta grande parte deles, quando não, pode-

se converter facilmente○ Por padrão, utiliza-se o formato qcow2*

*qemu copy on write

Page 15: Virtualização usando KVM e LXC

Preparando a imagem de disco● Criando imagem de disco

Onde● -f : formato da imagem● 8G: Tamanho da imagem (8 GB)

$ qemu-img create -f qcow2 ubuntu.qcow 8G

Page 16: Virtualização usando KVM e LXC

Instalando um SO na imagem● Necessário uma imagem .iso com a imagem

do SO (no linux, baixado na página principal da distribuição)

Onde:● m: quantidade de memória RAM (1GB)● hda: hd principal (imagem de disco)● cdrom: Imagem ISO que será emulado no drive de

CDROM

$ kvm -m 1G -hda ubuntu.qcow -cdrom ubuntu14.04.iso

Page 17: Virtualização usando KVM e LXC

Instalando o Ubuntu Server na imagem de disco

Page 18: Virtualização usando KVM e LXC

Executando uma VM

$ kvm -m 1G -hda ubuntu.qcow

Page 19: Virtualização usando KVM e LXC

VM em execução

Page 20: Virtualização usando KVM e LXC

● Facilita o manejamento e configurações mais avançadas

● Ferramenta utilizada: virt-manager

● Execução

GUI

$ sudo apt-get install virt-manager

$ virt-manager&

Page 21: Virtualização usando KVM e LXC

Virt-manager em execução

Page 22: Virtualização usando KVM e LXC

Mão na massa (LXC)

Page 23: Virtualização usando KVM e LXC

Introdução

LXC (Linux Containers)● Conjunto de ferramentas para criação e gerenciamento

de containers em userspace.● Integra as funcionalidade do Cgroups e Namespace

Page 24: Virtualização usando KVM e LXC

Instalação● Instalando o LXC

● Verificando as configurações

$ sudo apt-get install lxc

$ sudo lxc-checkconfig

Page 25: Virtualização usando KVM e LXC

Instalação

Page 26: Virtualização usando KVM e LXC

Criando seu primeiro container● Criando container com nome CT1

Onde:● -t : template● -n : nome do container

$ sudo lxc-create -t ubuntu -n CT1

Page 27: Virtualização usando KVM e LXC

Criando seu primeiro containerTotal de templates disponíveis (versão 2.0.3): 19● alpine● altlinux● archlinux● busybox● centos● cirros● debian● ...

Mais em : /usr/share/lxc/templates

Page 28: Virtualização usando KVM e LXC

Criando seu primeiro containerDiretórios e arquivos importantes:● Armazenamento dos containers: /var/lib/lxc/● Arquivo de configuração: /var/lib/lxc/CT1/config● Armazenamento dos templates: /var/cache/lxc/

Page 29: Virtualização usando KVM e LXC

Gerenciando seu primeiro container● Ver informações sobre todos os containers

● Iniciando um container

$ sudo lxc-ls -f

$ sudo lxc-start -n CT1

Page 30: Virtualização usando KVM e LXC

Gerenciando seu primeiro container● Parando um container

● Destruindo um container

$ sudo lxc-stop -n CT1

$ sudo lxc-destroy -n CT1

Page 31: Virtualização usando KVM e LXC

Gerenciando seu primeiro container● Clonando um container

Onde:● -o: Origem● -n: Nome do arquivo clonado

$ sudo lxc-clone -o CT1 -n CloneCT1

Page 32: Virtualização usando KVM e LXC

DUVIDAS?