Upload
luis-eduardo
View
96
Download
0
Embed Size (px)
Citation preview
Virtualização usando KVM e LXC
Luís Eduardo Tenório [email protected]
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
Breve introdução a virtualização
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)
Ambiente virtualizado (a direita)
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;
Técnicas de virtualização
Virtualização total e para-virtualização
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
Virtualização em nível de SO
Mão na massa (KVM)
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
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
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
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
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
Instalando o Ubuntu Server na imagem de disco
Executando uma VM
$ kvm -m 1G -hda ubuntu.qcow
VM em execução
● Facilita o manejamento e configurações mais avançadas
● Ferramenta utilizada: virt-manager
● Execução
GUI
$ sudo apt-get install virt-manager
$ virt-manager&
Virt-manager em execução
Mão na massa (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
Instalação● Instalando o LXC
● Verificando as configurações
$ sudo apt-get install lxc
$ sudo lxc-checkconfig
Instalação
Criando seu primeiro container● Criando container com nome CT1
Onde:● -t : template● -n : nome do container
$ sudo lxc-create -t ubuntu -n CT1
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
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/
Gerenciando seu primeiro container● Ver informações sobre todos os containers
● Iniciando um container
$ sudo lxc-ls -f
$ sudo lxc-start -n CT1
Gerenciando seu primeiro container● Parando um container
● Destruindo um container
$ sudo lxc-stop -n CT1
$ sudo lxc-destroy -n CT1
Gerenciando seu primeiro container● Clonando um container
Onde:● -o: Origem● -n: Nome do arquivo clonado
$ sudo lxc-clone -o CT1 -n CloneCT1
DUVIDAS?
Referências[1]https://escotilhalivre.wordpress.com/2015/06/10/virtualizacao-definicao/[2]https://escotilhalivre.wordpress.com/2015/06/16/instalacao-e-configuracao-do-kvm-no-linux/[3]https://escotilhalivre.wordpress.com/2015/06/22/usando-o-lxc-introducao/