2. 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
4. 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)
6. 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;
9. Virtualização total e para-
virtualização
Virtualizaçã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
12. 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
14. 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
15. 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
16. 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
23. Introdução
LXC (Linux Containers)
● Conjunto de ferramentas para criação e gerenciamento
de containers em userspace.
● Integra as funcionalidade do Cgroups e Namespace
24. Instalação
● Instalando o LXC
● Verificando as configurações
$ sudo apt-get install lxc
$ sudo lxc-checkconfig
26. Criando seu primeiro
container
● Criando container com nome CT1
Onde:
● -t : template
● -n : nome do container
$ sudo lxc-create -t ubuntu -n CT1
27. Criando seu primeiro
container
Total de templates disponíveis (versão 2.0.3): 19
● alpine
● altlinux
● archlinux
● busybox
● centos
● cirros
● debian
● ...
Mais em : /usr/share/lxc/templates
28. Criando seu primeiro
container
Diretó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/
29. Gerenciando seu primeiro
container
● Ver informações sobre todos os containers
● Iniciando um container
$ sudo lxc-ls -f
$ sudo lxc-start -n CT1