Virtualização de serviços Conceitos básicos Hipervisores (classificação) • Tipo 1 / Bare metal / Nativo – Instalado diretamente sobre o hardware do servidor – Exemplos: Vmware ESX, Microsoft Hyper-V, Citrix Xen Server, etc. • Tipo 2 / Hosted – Executado sobre um sistema operacional, como um processo do mesmo – Exemplos: Oracle VirtualBox, Microsoft Virtual PC, etc. Hipervisores (classificação) Tipos de virtualização • Virtualização completa – Abstração completa do hardware – Mais lento que a paravirtualização (antes de existir a virtualização assistida por hardware, com o Intel VT e o AMD-V) – Exemplos: Hyper-V, Vmware ESX, VirtualBox, Xen Server (versão Corporativa), etc. Tipos de virtualização • Paravirtualização – Algumas solicitações podem ser executadas diretamente sobre o processador nativo – O sistema operacional (convidado) precisa ser alterado – Exemplo: Xen Server (versão Open Source) Vantagens • Migração de máquinas virtuais entre servidores • Snapshots das máquinas virtuais • Capacidade de expansão do “hardware virtual” • Utilização de switches virtuais para prover isolamento das máquinas virtuais • Praticidade para realizar link aggregation e compartilhar entre múltiplas máquinas virtuais • Redução do espaço físico, consumo de energia, isolamento dos ambientes de produção e testes, gerenciamento facilitado, facilidade em utilizar HA (alta disponibilidade) e realizar computação em nuvem, etc. Outros tipos de virtualização • Nível de sistema operacional – Utilização de mais de uma instância (containers, jails, etc) de “user space” – O sistema operacional da instância convidado não pode ter o kernel diferente do host – Vantagens: baixo consumo de memória, flexibilidade na utilização de ferramentas de gerenciamento e migração de dados, não necessita da virtualização assistida por hardware, etc. – Exemplos: LXC, OpenVZ, LinuxV-Server, FreeBSD Jail, etc. Virtualização baseada em container OpenVZ • Os ambientes virtuais criados são chamados de containers, VE (Virtual Environment) ou como VPS (Virtual Private Server). • Cada VPS possui: – Seus próprios processos, usuários e provê acesso completo de root via shell; – seu próprio endereço IP, número de portas, firewall e roteamento; – seus próprios arquivos de configuração para o sistema e aplicações, como também suas próprias bibliotecas de sistema. OpenVZ – cont. Projetos interessantes (virtualização) • Switches (Open vSwitch) • Emulação de Redes (Mininet) • Roteadores (Quagga, Xorp, Bird, Click) • Containers (LXC, OpenVZ)