O documento discute a virtualização em software livre, definindo virtualização e explicando os benefícios. Apresenta os tipos de hypervisors, como KVM e libvirt, e ferramentas de gerenciamento como Virsh e Virt-manager. Também descreve o oVirt como uma plataforma de gerenciamento de virtualização.
Open Virtualization - Virtualização em Software Livre
1. Open Virtualization
Virtualização em Software Livre
Frederico Madeira
LPIC1, LPIC2, CCNA
fred@madeira.eng.br
www.madeira.eng.br
2ª SETIC - Semana de Tecnologia da Informação e Comunicação, 2012
2. O que é Virtualização ?
“É um termo que se refere a criação de máquinas virtuais que se comportam com se fosse
um computador real. O software executado nesta máquina virtual é separado do hardware
real da máquina.”
Wikipedia
“É um termo amplo da computação que se refere a capacidade de executar software,
comumente, sistemas operacionais, concorrentemente e isolados de outros programas do
sistema.”
Red Hat Enterprise Linux 5Virtualization Guide
“É a criação de substitutos flexíveis para recursos reais — substitutos que têm as mesmas
funções e interfaces externas que seus equivalentes reais, mas diferem em atributos
como tamanho, desempenho e custo. Esses substitutos são denominados recursos
virtuais; seus usuários geralmente não têm conhecimento da substituição.”
IBM DeveloperWorks: Hypervisores, virtualização e a nuvem
2ª SETIC - Semana de Tecnologia da Informação e Comunicação, 2012
3. 2ª SETIC - Semana de Tecnologia da Informação e Comunicação, 2012
4. Por que Virtualizar ?
➔ Consolidação de Servidores (redução do número físico de servidores)
➔ Menor Complexidade em infra-estrutura física
➔ Rápido aprovisionamento de novos servidores
➔ Recuperação de desastres
➔ Redução de Custo
➔ Com Hardware: contratos de manutenção, upgrades, aquisições
➔ Energia
➔ Espaço
➔ Tempo de instalação
➔ Gerenciamento
➔ Produtividade do administrador aumentada
2ª SETIC - Semana de Tecnologia da Informação e Comunicação, 2012
5. Hypervisors
➔ Os hypervisors são componentes de software ou firmware que podem
virtualizar recursos do sistema.
➔ A virtualização geralmente é implementada através de um Hypervisor
➔ Também chamado de Virtual Machine Monitor (Monitor de Máquina Virtual)
ou VMM
➔ Oferecem uma forma conveniente de usar o mesmo hardware do computador
físico para outras tarefas diferentes
➔ Os hypervisors não são iguais, mas todos oferecem recursos semelhantes
2ª SETIC - Semana de Tecnologia da Informação e Comunicação, 2012
6. Tipos de Hypervisors
➔ Tipo 1
➔ Funcionam diretamente no HW
➔ Chamados de HardV
➔ Recomendados para servidores de produção
➔ Pode ser carregado via pendrive
➔ Baixo overhead
➔ Tipo 2
➔ Funcionam sobre um sistema operacional host e oferecem o serviço de
virtualização
➔ Chamados de SoftV
➔ Não recomendado para servidores de produção
➔ Normalmente utilizados como porta de entrada para a virtualização
➔ Alto overhead, pois o SO Host consome recursos do Hw
➔ Temos outros tipos de virtualização, mas para escopo deste trabalho, não foram
descritos aqui
2ª SETIC - Semana de Tecnologia da Informação e Comunicação, 2012
8. Exemplo de Hypervisors
➔ PowerVM: Um recurso dos servidores IBM POWER5, POWER6 e POWER7,
suporte fornecido por IBM i, AIX®e Linux®.
http://www-03.ibm.com/systems/power/software/virtualization/index.html
➔ VMware ESX Server (vSphere): Hypervisor integrado "do zero", os
hypervisores de software empresariais da VMware ESX funcionam
diretamente no hardware do servidor sem a necessidade de outro sistema
operacional subjacente.
http://www.vmware.com/products/datacenter-virtualization/vsphere/index.html
➔ Xen (Citrix): Os sistemas do Xen têm uma estrutura com o hypervisor Xen
como a camada mais baixa e mais privilegiada.
http://www.citrix.com/products/xenserver/overview.html
2ª SETIC - Semana de Tecnologia da Informação e Comunicação, 2012
9. Exemplo de Hypervisors
➔ KVM: Estrutura de virtualização para Linux kernel, o KVM suporta a
virtualização nativa em processadores com extensões de virtualização de
hardware (Intel VT ou AMD-V). O KVM é nativo no kernel do linux a partir da
versão 2.6.20.
http://www.linux-kvm.org/page/Main_Page
➔ z/VM: Versão atual dos sistemas operacionais de máquina virtual da IBM, o
z/VM funciona no zSeries da IBM e pode ser usado para suportar uma grande
quantidade (milhares) de máquinas virtuais Linux.
http://www.vm.ibm.com/
2ª SETIC - Semana de Tecnologia da Informação e Comunicação, 2012
10. Funcionalidades desejadas em um
Hypervisor
➔ Desempenho da máquina virtual
Os sistemas virtuais deveriam ter desempenho similar ou superior aos seus
equivalentes, pelo menos em relação aos aplicativos dentro cada servidor.
Qualquer coisa além dessa referência é lucro.
➔ Gerenciamento de memória
➔ Alta disponibilidade
Cada grande fornecedor tem sua própria solução de alta disponibilidade e a
maneira como cada um atinge isso pode ser bem diferente, variando desde
métodos minimalistas até muito complexos
➔ Migração ativa
Migração ativa em diferentes plataformas e a capacidade de migrar
simultaneamente duas ou mais VMs
2ª SETIC - Semana de Tecnologia da Informação e Comunicação, 2012
11. Funcionalidades desejadas em um
Hypervisor
➔ Redes, armazenamento e segurança
Em rede, os hypervisors devem suportar agrupamento de cartões de
interface de rede (NICs) e balanceamento de carga, isolamento Unicast e
suporte para o entroncamento de rede de área local virtual (VLAN) padrão
(802.1Q).
Em armazenamento, devem suportar armazenamento em rede iSCSI e
Fibre Channel
➔ Recursos de gerenciamento
Devem oferecer recursos de trap do Simple Network Management Protocol
(SNMP), integração com outros softwares de gerenciamento e tolerância a
falhas do servidor de gerenciamento.
Interface para o gerenciamento da solução
2ª SETIC - Semana de Tecnologia da Informação e Comunicação, 2012
12. KVM – Kernel-based Virtual Machine
➔ É um módulo do kernel Linux que transforma o Linux em um hypervisor
➔ Requer extensões de virtualização da CPU
# grep -E 'svm|vmx' /proc/cpuinfo
onde svm(AMD) e vmx(Intel)
➔ Possui performance competitiva em relação aos outros hypervisors e é rico
em funcionalidades
➔ Possui sistema avançado de gerenciamento de memória
➔ Bastante integrado ao kernel Linux.
2ª SETIC - Semana de Tecnologia da Informação e Comunicação, 2012
13. KVM – Kernel-based Virtual Machine
➔ Um hypervisor necessita de:
➔ Gerenciamento de memória e um escalonador
➔ I/O stack
➔ Device drivers
➔ Gerenciamento de pilha
➔ Rede
➔ O linux é reconhecidamente eficiente em todas as tarefas acima, então por
que reinventar a roda ?
➔ Reuso do código linux sempre que possível
2ª SETIC - Semana de Tecnologia da Informação e Comunicação, 2012
14. KVM – Arquitetura
➔ Guest OS, executado no user-space
➔ Cada Guest OS representa um único
processo no Host OS.
➔ O hypervisor é um módulo carregado no
kernel como qualquer outro.
➔ A CPU provê suporte a virtualização
➔ A memória é virtualizada através do
módulo KVM
➔ O I/O e demais recursos de hardware
como disco, rede são virtualizados
através do QEMU
2ª SETIC - Semana de Tecnologia da Informação e Comunicação, 2012
15. Libvirt – Virtualization Library
➔ É uma API Linux para virtualização que suporta diversos hypervisors como
Xen, KVM, QEMU, OpenVZ, etc.
➔ Biblioteca para gerenciamento de sistemas operacionais Guest “hypervisor-
agnostic”
➔ Representa apenas a API sobre a qual devem ser desenvolvidas ferramentas
para gerenciamento das máquinas virtuais
➔ Originalmente desenvolvida para gerenciamento do Xen, mas estendida para
outros hypervisors
➔ Controla tanto hypervisors locais como remotos, através de protocolos
seguros como TLS e Kerberos
➔ Na parte de rede, suporta bridging, bondig, vlans
2ª SETIC - Semana de Tecnologia da Informação e Comunicação, 2012
16. Libvirt – Virtualization Library
Gerenciamento Local Gerenciamento Remoto
2ª SETIC - Semana de Tecnologia da Informação e Comunicação, 2012
17. Ferramentas
➔ Graças a as API's do libvirt, temos diversas ferramentas para gerenciamento
de nosso ambiente virtualizado.
➔ virsh: Ferramenta de linha de comando que oferece um shell interativo e
uma ferramenta de scipting batch para gerenciamento de todos os
domínios libvirt, rede e armazenamento
➔ virt-top: Verifique a utilização de CPU, memória e disco de todas as
máquians virtuais que estão rodando em um host
➔ virt-install: Fornece uma interface para criação de novas máquinas
virtuais. Suporta instalação a partir de imagens locais de CD/DVD ou via
rede através de NFS, HTTP e FTP
➔ Virt-manager: Ferramenta de gerenciamento de máquinas virtuais.
Permite o gerenciamento de VM's tanto na máquina local como em
máquinas remotas, efetuando conexões a seus hipervisors. Direcionada
para utilização em casa e pequenos escritórios, gerencia até 20 hosts e
suas máquinas virtuais
➔ Lista completa em: http://libvirt.org/apps.html#configmgmt
2ª SETIC - Semana de Tecnologia da Informação e Comunicação, 2012
19. Ferramentas - virt-manager
Fonte: http://wiki.deimos.fr/KVM_:_Mise_en_place_de_KVM
2ª SETIC - Semana de Tecnologia da Informação e Comunicação, 2012
20. oVirt
➔ Definido como uma plataforma de gerenciamento para datacenter
virtual para:
Provisionar, gerenciar, e monitorar hosts, hypervisors,
máquinas virtuais, storage e network
➔ É um projeto do Open Virtualization project
➔ Open Source
➔ Baseado em virtualização linux KVM
➔ É um servidor rico em funcionalidades, oferecendo diversas funcionalidades
encontradas apenas nas soluções de mercado como VmWare, Citrix,
alternativa ou vCenter/vSphere
➔ Base de solução de virtualização da RedHat
➔ Provê imagem de instalação para o nó oVirt
2ª SETIC - Semana de Tecnologia da Informação e Comunicação, 2012
21. Ovirt - Funcionalidades
➔ High availability para prover tolerância a falhas
➔ Live migration para mover hosts entre máquinas físicas sem
interrupção
➔ Storage management
➔ System scheduler onde é possível criar políticas para
balanceamento dos recursos
➔ Image Engine para criar, gerenciar e provisionar máquinas virtuais
➔ Storage Virtualization para garantir acesso a storage de
qualquer servidor
➔ Compatível com Glustefs
2ª SETIC - Semana de Tecnologia da Informação e Comunicação, 2012
23. Ovirt - Dashboard
2ª SETIC - Semana de Tecnologia da Informação e Comunicação, 2012
24. Ovirt - Comparativo
➔ Solução de virtualização da
RedHat é baseada em KVM e oVirt
➔ Segundo lugar frente a soluções
conhecidas de mercado
➔ Fonte: http://bit.ly/virtshootout
2ª SETIC - Semana de Tecnologia da Informação e Comunicação, 2012
25. Dúvidas
2ª SETIC - Semana de Tecnologia da Informação e Comunicação, 2012
26. Referências
● Hypervisores, virtualização e a nuvem, disponível em:
http://www.ibm.com/developerworks/br/cloud/library/cl-hypervisorcompare/
● Virtualização, verbete wikipedia, disponível em:
http://en.wikipedia.org/wiki/Virtualization
● Red Hat Enterprise Linux 5, Admin Guide, disponível em:
https://access.redhat.com/knowledge/docs/en-US/Red_Hat_Enterprise_Linux/5/html/Virtualizatio
● Virtualization – The Beguines guide, McGraw Hill
● Dez benefícios da virtualização e consolidação de servidores. Disponível em:
http://www.a2f.com.br/blog/consolidacao-e-virtualizacao/10-beneficios-da-consolidacao-e-virtua
● Discover the Linux Kernel Virtual Machine -
http://www.ibm.com/developerworks/linux/library/l-linux-kvm/
● Anatomy of the libvirt virtualization library -
http://www.ibm.com/developerworks/linux/library/l-libvirt/
● Virtualization shoot-out: Citrix, Microsoft, Red Hat, and Vmware
http://www.infoworld.com/d/virtualization/virtualization-shoot-out-citrix-microsoft-red-hat-and-vmw
2ª SETIC - Semana de Tecnologia da Informação e Comunicação, 2012