SlideShare uma empresa Scribd logo
1 de 33
Baixar para ler offline
Virtualização usando KVM e LXC
Luís Eduardo Tenório Silva
lets@cin.ufpe.br
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çã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
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
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
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/
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/

Mais conteúdo relacionado

Destaque

Arte, tecnologia e instalação interativa
Arte, tecnologia e instalação interativaArte, tecnologia e instalação interativa
Arte, tecnologia e instalação interativa
ecoarte
 
Kabanata 20: Ang Napapalagay (El Filibusterismo)
Kabanata 20: Ang Napapalagay (El Filibusterismo)Kabanata 20: Ang Napapalagay (El Filibusterismo)
Kabanata 20: Ang Napapalagay (El Filibusterismo)
Snowfoot
 
El filibusterismo kab 21 30
El filibusterismo kab 21 30El filibusterismo kab 21 30
El filibusterismo kab 21 30
Jennifer Perez
 

Destaque (11)

[TCC] Apresentacao - Agrupamento de Instâncias
[TCC] Apresentacao - Agrupamento de Instâncias[TCC] Apresentacao - Agrupamento de Instâncias
[TCC] Apresentacao - Agrupamento de Instâncias
 
Virtualização a Nível de Sistema Operacional e sua Proposta de Segurança
Virtualização a Nível de Sistema Operacional e sua Proposta de SegurançaVirtualização a Nível de Sistema Operacional e sua Proposta de Segurança
Virtualização a Nível de Sistema Operacional e sua Proposta de Segurança
 
Arte, tecnologia e instalação interativa
Arte, tecnologia e instalação interativaArte, tecnologia e instalação interativa
Arte, tecnologia e instalação interativa
 
Namespace
NamespaceNamespace
Namespace
 
Inteligência Operacional utilizando a solução Elastic.
Inteligência Operacional utilizando a solução Elastic.Inteligência Operacional utilizando a solução Elastic.
Inteligência Operacional utilizando a solução Elastic.
 
Como lidar com cargas de trabalho mistas - PostgreSQL
Como lidar com cargas de trabalho mistas - PostgreSQLComo lidar com cargas de trabalho mistas - PostgreSQL
Como lidar com cargas de trabalho mistas - PostgreSQL
 
MySQL - Instalação e Alguns comandos de Banco de Dados
MySQL - Instalação e Alguns comandos de Banco de DadosMySQL - Instalação e Alguns comandos de Banco de Dados
MySQL - Instalação e Alguns comandos de Banco de Dados
 
Apresentação - Curso de Monitoramento com Zabbix - HOTMART
Apresentação - Curso de Monitoramento com Zabbix - HOTMARTApresentação - Curso de Monitoramento com Zabbix - HOTMART
Apresentação - Curso de Monitoramento com Zabbix - HOTMART
 
Apostila Programação Java
Apostila Programação JavaApostila Programação Java
Apostila Programação Java
 
Kabanata 20: Ang Napapalagay (El Filibusterismo)
Kabanata 20: Ang Napapalagay (El Filibusterismo)Kabanata 20: Ang Napapalagay (El Filibusterismo)
Kabanata 20: Ang Napapalagay (El Filibusterismo)
 
El filibusterismo kab 21 30
El filibusterismo kab 21 30El filibusterismo kab 21 30
El filibusterismo kab 21 30
 

Semelhante a Virtualização usando KVM e LXC

VDI e Projeto OSDVT
VDI e Projeto OSDVTVDI e Projeto OSDVT
VDI e Projeto OSDVT
apsegundo
 

Semelhante a Virtualização usando KVM e LXC (20)

Linux Containers: do que são feitos? de onde vem? quem os alimenta?
Linux Containers: do que são feitos? de onde vem? quem os alimenta?Linux Containers: do que são feitos? de onde vem? quem os alimenta?
Linux Containers: do que são feitos? de onde vem? quem os alimenta?
 
Instalação do sistemas operacionais dualboot
Instalação do sistemas operacionais dualbootInstalação do sistemas operacionais dualboot
Instalação do sistemas operacionais dualboot
 
Virtualiza%e7%e3o(3)
Virtualiza%e7%e3o(3)Virtualiza%e7%e3o(3)
Virtualiza%e7%e3o(3)
 
Iniciando com docker
Iniciando com dockerIniciando com docker
Iniciando com docker
 
Consegi 2011: Ganeti + Puppet
Consegi 2011: Ganeti + PuppetConsegi 2011: Ganeti + Puppet
Consegi 2011: Ganeti + Puppet
 
Virtualização
VirtualizaçãoVirtualização
Virtualização
 
Introdução à Virtualização
Introdução à VirtualizaçãoIntrodução à Virtualização
Introdução à Virtualização
 
1º IoT Day - O que é Linux Embarcado
1º IoT Day - O que é Linux Embarcado1º IoT Day - O que é Linux Embarcado
1º IoT Day - O que é Linux Embarcado
 
Containers em produção!
Containers em produção!Containers em produção!
Containers em produção!
 
Padrōes, Especificações, Runtimes: construindo containers melhores
Padrōes, Especificações, Runtimes: construindo containers melhoresPadrōes, Especificações, Runtimes: construindo containers melhores
Padrōes, Especificações, Runtimes: construindo containers melhores
 
Boteco Xen
Boteco XenBoteco Xen
Boteco Xen
 
Docker
DockerDocker
Docker
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao docker
 
Vagrant - ambiente de desenvolvimento virtualizado
Vagrant - ambiente de desenvolvimento virtualizadoVagrant - ambiente de desenvolvimento virtualizado
Vagrant - ambiente de desenvolvimento virtualizado
 
VDI e Projeto OSDVT
VDI e Projeto OSDVTVDI e Projeto OSDVT
VDI e Projeto OSDVT
 
Container revolucao
Container revolucaoContainer revolucao
Container revolucao
 
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containersTDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
 
Aula- Virtualização
Aula- VirtualizaçãoAula- Virtualização
Aula- Virtualização
 
Introdução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfIntrodução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdf
 
Conhecendo o ubuntu enterprise cloud - UEC
Conhecendo o ubuntu enterprise cloud - UECConhecendo o ubuntu enterprise cloud - UEC
Conhecendo o ubuntu enterprise cloud - UEC
 

Último

Último (9)

ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
 

Virtualização usando KVM e LXC