menu_book Índice

Logo UFPR

Virtualização

Logo Licenciatura

Disciplina:DEE355 - Sistemas Operacionais - Virtualização

Universidade Federal do Paraná

Professor: Prof. Jéfer – jefer@ufpr.br

Objetivos: Compreender os conceitos, técnicas e aplicações da virtualização, além de analisar sua importância para a computação em nuvem e a evolução dos sistemas operacionais.

Logo UFPR

Introdução à Virtualização

Logo Licenciatura

Definição: Tecnologia que permite criar versões abstratas de recursos computacionais (CPUs, memória, armazenamento e dispositivos de E/S) para executar múltiplos sistemas ou aplicações isoladamente em um único hardware físico.

Importância:

  • Melhora o aproveitamento de recursos.
  • Isola ambientes para maior segurança e confiabilidade.
  • Oferece flexibilidade na gestão de infraestrutura.
  • Reduz custos operacionais e energéticos.

Histórico:

  • Anos 1960: Surgimento com o IBM CP-40/CP-67.
  • Anos 1990: Popularização com o VMware.
  • Década de 2000: Evolução com a computação em nuvem.

Relação com a nuvem: É a base para a alocação dinâmica de recursos em modelos IaaS (Infraestrutura como Serviço).

Contexto atual: Além das máquinas virtuais tradicionais, tecnologias como containers (Docker) e orquestradores de containers (Kubernetes) estão revolucionando a virtualização, oferecendo maior leveza e escalabilidade para aplicações modernas.

Logo UFPR

Conceitos Básicos de Virtualização

Logo Licenciatura

Máquina Virtual (VM):

  • Simulação de um computador físico.
  • Permite rodar sistemas operacionais e aplicações como se fossem executados em hardware real.
  • Exemplos: VMware, VirtualBox, KVM.

Hipervisor (VMM - Virtual Machine Monitor):

  • Software ou firmware que gerencia e aloca recursos para múltiplas VMs.
  • Garante isolamento entre as VMs.
  • Tipos: Tipo 1 (bare-metal) e Tipo 2 (hosted).

Virtualização Completa vs. Paravirtualização:

  • Virtualização Completa: Emula todo o hardware, sem necessidade de modificações no SO convidado.
  • Paravirtualização: Requer modificações no SO convidado para maior eficiência e desempenho.

Benefícios da Virtualização:

  • Isolamento: Ambientes independentes e seguros.
  • Portabilidade: VMs podem ser movidas entre hosts facilmente.
  • Uso otimizado de recursos: Consolidação de servidores e redução de custos.

Evolução: Além das VMs tradicionais, tecnologias como containers (Docker) e orquestradores (Kubernetes) estão revolucionando a virtualização, oferecendo soluções mais leves e escaláveis para aplicações modernas.

Logo UFPR

Tipos de Máquinas Virtuais

Logo Licenciatura

Máquinas Virtuais de Sistema:

  • Emulam um sistema operacional completo.
  • Permitem rodar diferentes SOs (ex.: Windows, Linux) em um único hardware.
  • Exemplos:
    • VMware: Solução robusta para ambientes corporativos.
    • VirtualBox: Hipervisor gratuito e de código aberto, amplamente usado em desktops.
    • KVM: Solução de virtualização integrada ao Linux.
    • Hyper-V: Hipervisor da Microsoft para Windows Server.

Máquinas Virtuais de Processo:

  • Isolam o ambiente para uma aplicação específica.
  • Não emulam um SO completo, apenas o necessário para executar a aplicação.
  • Exemplos:
    • JVM (Java Virtual Machine): Executa aplicações Java de forma isolada.
    • Contêineres (Docker): Tecnologia leve que virtualiza aplicações em nível de sistema operacional.

Destaque para o VirtualBox:

  • É uma das ferramentas mais populares para virtualização em desktops.
  • Oferece suporte a múltiplos sistemas operacionais convidados.
  • Ideal para testes, desenvolvimento e aprendizado.

Evolução: Enquanto as máquinas virtuais de sistema emulam um SO completo, tecnologias como containers (Docker) oferecem uma abordagem mais leve, virtualizando apenas o necessário para executar aplicações. Isso será explorado em detalhes mais adiante.

Logo UFPR

Técnicas de Virtualização

Logo Licenciatura

Virtualização de CPU:

  • Trap-and-emulate: Intercepta e emula instruções privilegiadas.
  • Binary translation: Traduz instruções do SO convidado em tempo real (ex.: VMware).

Virtualização de Memória:

  • Shadow page tables: Duplicam as tabelas de paginação para mapear memória virtual.
  • Hardware-assisted: Utiliza extensões (Intel VT-x, AMD-V) para melhorar desempenho.

Virtualização de E/S:

  • Pass-through: Permite acesso direto ao dispositivo físico.
  • Emulação de dispositivos: Simula hardware genérico para garantir compatibilidade.
Logo UFPR

Hipervisores Tipo 1 e Tipo 2

Logo Licenciatura

Hipervisor Tipo 1 (Bare-metal):

  • Executa diretamente sobre o hardware físico.
  • Oferece desempenho superior e maior controle sobre os recursos.
  • Exemplos:
    • VMware ESXi: Amplamente utilizado em data centers.
    • Xen: Hipervisor de código aberto usado em nuvens públicas e privadas.
    • Hyper-V: Solução da Microsoft para virtualização em servidores.

Hipervisor Tipo 2 (Hosted):

  • Opera como uma aplicação sobre um sistema operacional hospedeiro.
  • Mais simples de configurar e usar, ideal para desktops e testes.
  • Exemplos:
    • VMware Workstation: Popular para desenvolvimento e testes em desktops.
    • Oracle VirtualBox: Gratuito e de código aberto, amplamente utilizado em ambientes pessoais e educacionais.

Comparação:

Comparação entre Hipervisores Tipo 1 e Tipo 2
Característica Tipo 1 (Bare-metal) Tipo 2 (Hosted)
Desempenho Alto (executa diretamente no hardware) Moderado (depende do SO hospedeiro)
Uso Data centers, servidores Desktops, testes, desenvolvimento
Complexidade Alta (requer configuração especializada) Baixa (fácil de configurar e usar)

Evolução: Além dos hipervisores tradicionais, tecnologias como containers (Docker) e orquestradores (Kubernetes) estão ganhando espaço, oferecendo soluções mais leves e escaláveis para virtualização de aplicações. Isso será explorado em detalhes mais adiante.

Logo UFPR

Virtualização de Memória

Logo Licenciatura

Desafios

  • Isolar memória entre VMs para garantir segurança.
  • Traduzir eficientemente endereços virtuais do SO convidado para o hardware físico.

Técnicas de Virtualização

  • Shadow Page Tables:
    • Tabelas duplicadas gerenciadas pelo hipervisor.
    • Vantagem: Compatibilidade ampla.
    • Desvantagem: Sobrecarga significativa.
  • Nested Paging:
    • Suporte de hardware (ex.: Intel EPT, AMD NPT).
    • Vantagem: Reduz overhead com tradução direta.
    • Exemplo: Usado em CPUs modernas.

Implementações: VMware ESXi utiliza nested paging; KVM integra com o kernel Linux para eficiência.

Logo UFPR

Virtualização de E/S

Logo Licenciatura

Desafios:

  • Reduzir a latência e manter o desempenho em dispositivos de E/S, como discos e placas de rede.
  • Garantir isolamento e segurança entre as VMs.
  • Oferecer compatibilidade com diferentes dispositivos físicos.

Técnicas de Virtualização de E/S:

  • Emulação de Dispositivos:
    • O hipervisor emula dispositivos de hardware para as VMs.
    • Exemplo: QEMU emula uma placa de rede RTL8139.
    • Vantagem: Compatibilidade com diversos sistemas operacionais.
    • Desvantagem: Pode introduzir latência e sobrecarga.
  • Pass-through:
    • Concede acesso direto ao hardware físico para uma VM.
    • Exemplo: GPUs para jogos ou processamento gráfico em VMs.
    • Vantagem: Desempenho próximo ao nativo.
    • Desvantagem: O dispositivo não pode ser compartilhado entre VMs.
  • SR-IOV (Single Root I/O Virtualization):
    • Permite compartilhar um dispositivo físico entre múltiplas VMs.
    • Minimiza a intervenção do hipervisor, reduzindo a latência.
    • Exemplo: Placas de rede Intel e AMD com suporte a SR-IOV.
    • Vantagem: Desempenho alto e compartilhamento eficiente.

Contexto Atual:

  • Técnicas como SR-IOV e pass-through são essenciais para aplicações de alto desempenho, como big data e machine learning.
  • Em ambientes de nuvem, a virtualização de E/S é crucial para garantir escalabilidade e eficiência.
Logo UFPR

Aplicações de Virtualização

Logo Licenciatura
  • Consolidação de servidores:
    • Executar diversas VMs em um único servidor físico.
    • Reduz custos com hardware, energia e espaço físico.
    • Exemplo: Data centers modernos consolidam centenas de servidores em poucos hosts físicos.
  • Desenvolvimento e testes:
    • Criação de ambientes isolados para rodar múltiplos sistemas operacionais e aplicações.
    • Facilita testes de compatibilidade e desenvolvimento multiplataforma.
    • Exemplo: Uso de VirtualBox ou VMware Workstation para testes de software.
  • Computação em nuvem:
    • Base para modelos de serviço como IaaS, PaaS e SaaS.
    • Amazon AWS:
      • Oferece o EC2 (Elastic Compute Cloud) para criação e gerenciamento de VMs escaláveis.
      • Permite alta disponibilidade, balanceamento de carga e escalabilidade automática.
    • Outros provedores: Microsoft Azure, Google Cloud Platform (GCP).
  • Migração e checkpointing:
    • Migração de VMs: Transferir VMs entre hosts físicos sem downtime (ex.: VMware vMotion).
    • Checkpointing: Salvar o estado de uma VM para recuperação rápida em caso de falhas.
  • Contêineres e orquestração:
    • Docker:
      • Tecnologia de contêineres que virtualiza aplicações em nível de sistema operacional.
      • Oferece maior leveza e portabilidade em comparação com VMs tradicionais.
      • Permite empacotar aplicações com todas as suas dependências em um único contêiner.
      • Exemplo: Desenvolvimento e deploy de microsserviços.
    • Kubernetes:
      • Plataforma de orquestração de contêineres que gerencia a implantação, escalabilidade e operação de aplicações em ambientes distribuídos.
      • Integra-se com Docker para gerenciar clusters de contêineres.
      • Exemplo: Kubernetes é amplamente utilizado em nuvens como AWS (EKS), Azure (AKS) e GCP (GKE).
Logo UFPR

Virtualização em CPUs Multicore

Logo Licenciatura

Desafios:

  • Distribuir eficientemente as threads das VMs entre os núcleos físicos.
  • Evitar a concorrência excessiva por recursos de CPU.
  • Garantir isolamento e desempenho consistente para cada VM.

Técnicas de Virtualização em CPUs Multicore:

  • Escalonamento Dinâmico:
    • Hipervisores ajustam o número de vCPUs (CPUs virtuais) conforme a carga de trabalho.
    • Exemplo: VMware ESXi e KVM usam algoritmos de escalonamento para otimizar o uso dos núcleos físicos.
  • Balanceamento de Carga:
    • Distribui as threads das VMs de forma equilibrada entre os núcleos disponíveis.
    • Evita que um núcleo fique sobrecarregado enquanto outros estão ociosos.
  • Isolamento de Recursos:
    • Políticas como fair-share scheduling garantem que cada VM receba uma parcela justa dos recursos.
    • Exemplo: VMware Distributed Resource Scheduler (DRS) redistribui VMs entre hosts para otimizar o uso de CPU.

Exemplos Práticos:

  • VMware vSphere: Oferece ferramentas avançadas para gerenciamento de recursos em CPUs multicore.
  • KVM: Utiliza o escalonador do Linux (CFS - Completely Fair Scheduler) para balancear threads entre núcleos.
  • Hyper-V: Implementa políticas de reserva e limite de CPU para garantir desempenho consistente.

Contexto Atual:

  • Com o aumento do número de núcleos em CPUs modernas, a virtualização em CPUs multicore tornou-se essencial para data centers e nuvens.
  • Técnicas como escalonamento dinâmico e balanceamento de carga são fundamentais para garantir eficiência e desempenho.
Logo UFPR

Estudo de Caso: VMware

Logo Licenciatura

História:

  • Fundada em 1998, a VMware foi pioneira na virtualização x86.
  • Revolucionou a forma de rodar múltiplos sistemas operacionais em um único hardware.
  • Introduziu o conceito de hipervisores para servidores e desktops.

Produtos Principais:

  • VMware Workstation:
    • Hipervisor Tipo 2 voltado para desktops.
    • Permite criar e gerenciar VMs para desenvolvimento, testes e aprendizado.
    • Exemplo: Uso em ambientes de desenvolvimento de software.
  • VMware ESXi:
    • Hipervisor Tipo 1 (bare-metal) para data centers.
    • Oferece alta performance e escalabilidade para ambientes corporativos.
    • Exemplo: Uso em servidores de virtualização em nuvens privadas.

Desafios e Soluções:

  • Desafios iniciais: A arquitetura x86 não foi projetada para virtualização, o que exigiu soluções criativas.
  • Binary Translation: Técnica usada para traduzir instruções privilegiadas do SO convidado.
  • Extensões de Hardware: Incorporação de tecnologias como Intel VT-x e AMD-V para melhorar a performance.

VirtualBox:

  • Desenvolvido pela Sun Microsystems (agora Oracle), o VirtualBox é uma solução gratuita e de código aberto.
  • Amplamente utilizado para virtualização em desktops, especialmente em ambientes educacionais e de desenvolvimento.
  • Exemplo: Uso para testes de compatibilidade e aprendizado de sistemas operacionais.

Contexto Atual:

  • A VMware continua liderando o mercado de virtualização, com soluções avançadas para nuvens híbridas e multicloud.
  • O VirtualBox mantém sua relevância como uma ferramenta acessível para virtualização em desktops.
Logo UFPR

Virtualização e Nuvem

Logo Licenciatura

Relação entre Virtualização e Nuvem:

  • A virtualização é a base da computação em nuvem, permitindo a criação de infraestruturas dinâmicas e escaláveis.
  • Possibilita a entrega de recursos sob demanda, como servidores, armazenamento e redes.

Benefícios da Virtualização na Nuvem:

  • Elasticidade e Escalabilidade:
    • Recursos podem ser ajustados conforme a demanda (scale-up e scale-out).
    • Exemplo: Aumentar o número de instâncias EC2 durante picos de tráfego.
  • Alta Disponibilidade:
    • Técnicas como migração de VMs (ex.: VMware vMotion) garantem continuidade dos serviços.
    • Checkpointing permite recuperação rápida em caso de falhas.
  • Otimização de Custos:
    • Pagamento apenas pelos recursos utilizados (modelo pay-as-you-go).
    • Redução de custos com hardware e energia.

Serviços de Nuvem:

  • IaaS (Infraestrutura como Serviço):
    • Fornece recursos de computação, armazenamento e rede sob demanda.
    • Amazon EC2: Permite criar e gerenciar instâncias de VMs escaláveis.
    • Outros exemplos: Microsoft Azure VMs, Google Compute Engine (GCE).
  • PaaS (Plataforma como Serviço):
    • Oferece ambientes para desenvolvimento e deploy de aplicações.
    • Exemplos: AWS Elastic Beanstalk, Google App Engine.
  • SaaS (Software como Serviço):
    • Fornece aplicações prontas para uso via navegador.
    • Exemplos: Google Workspace, Microsoft 365.

Amazon AWS:

  • Além do EC2, a AWS oferece uma ampla gama de serviços:
    • Armazenamento: Amazon S3 (Simple Storage Service) para armazenamento escalável.
    • Balanceamento de Carga: Elastic Load Balancing (ELB) para distribuir tráfego entre instâncias.
    • Segurança: AWS Identity and Access Management (IAM) para controle de acesso.
    • Banco de Dados: Amazon RDS (Relational Database Service) para gerenciamento de bancos relacionais.

Contexto Atual:

  • A virtualização continua sendo essencial para a computação em nuvem, permitindo a criação de ambientes robustos, escaláveis e econômicos.
  • Provedores como AWS, Azure e GCP lideram o mercado, oferecendo soluções avançadas para empresas de todos os portes.

Evolução: Além da virtualização tradicional, tecnologias como contêineres (Docker) e orquestradores (Kubernetes) estão ganhando espaço, oferecendo maior leveza e escalabilidade para aplicações modernas em ambientes de nuvem.

Logo UFPR

Pesquisa e Tendências em Virtualização

Logo Licenciatura

Tópicos Atuais de Pesquisa:

  • Virtualização Leve:
    • Uso de contêineres (ex.: Docker) para reduzir a sobrecarga de virtualização.
    • Benefícios: Menor consumo de recursos e maior portabilidade.
  • Eficiência Energética:
    • Otimização do uso de recursos para reduzir o consumo de energia em data centers.
    • Exemplo: Técnicas de consolidação de VMs e desligamento de servidores ociosos.
  • Segurança:
    • Prevenção de ataques como VM escape e exploits no hipervisor.
    • Exemplo: Uso de hardware seguro (ex.: Intel SGX) para isolamento de VMs.

Contêineres e Serverless:

  • Docker:
    • Revolucionou a virtualização com contêineres leves e portáteis.
    • Exemplo: Uso em microsserviços e pipelines de CI/CD.
  • Kubernetes:
    • Plataforma de orquestração de contêineres para ambientes distribuídos.
    • Exemplo: Gerenciamento de clusters em nuvens como AWS (EKS), Azure (AKS) e GCP (GKE).
  • Serverless (AWS Lambda):
    • Execução de código sem gerenciamento de servidores.
    • Exemplo: Funções serverless para processamento de eventos em tempo real.

Integração com IA e Edge Computing:

  • Inteligência Artificial (IA):
    • Uso de virtualização para treinamento e inferência de modelos de IA.
    • Exemplo: Alocação dinâmica de recursos para cargas de trabalho de IA.
  • Edge Computing:
    • Virtualização em dispositivos de borda para reduzir a latência e o tráfego na nuvem.
    • Exemplo: Uso de contêineres em gateways IoT para processamento local.

Contexto Atual:

  • A virtualização continua evoluindo, com foco em eficiência, segurança e integração com tecnologias emergentes.
  • Tendências como contêineres, serverless e edge computing estão redefinindo o futuro da computação.
Logo UFPR

Conclusão

Logo Licenciatura

Resumo:

  • A virtualização permite criar ambientes isolados e eficientes, executando múltiplos sistemas operacionais e aplicações em um único hardware.
  • É a base da computação em nuvem, possibilitando modelos como IaaS, PaaS e SaaS.

Importância:

  • Essencial para a consolidação de servidores, redução de custos e otimização de recursos em data centers.
  • Facilita o desenvolvimento ágil, testes de software e a criação de ambientes multiplataforma.
  • Impulsiona a evolução dos sistemas operacionais e das tecnologias de infraestrutura.

Perspectivas Futuras:

  • Integração com IA: Uso de virtualização para treinamento e inferência de modelos de inteligência artificial.
  • Expansão de Contêineres e Serverless: Tecnologias como Docker, Kubernetes e AWS Lambda continuarão redefinindo o isolamento de ambientes e a eficiência de recursos.
  • Aprimoramento de Segurança e Desempenho: Novas pesquisas focam em prevenir ataques como VM escape e otimizar o uso de recursos em ambientes virtualizados.

Reflexão Final:

  • A virtualização é uma tecnologia transformadora que continuará a evoluir, integrando-se com tendências como edge computing, IoT e computação quântica.
  • Seu papel será crucial para enfrentar os desafios da computação moderna, como escalabilidade, segurança e eficiência energética.
Logo UFPR

Referências

Logo Licenciatura

- Maziero, C. Virtualização - SOCM. Disponível em: https://wiki.inf.ufpr.br/maziero/doku.php?id=socm:start

- Tanenbaum, A. S. Sistemas Operacionais Modernos. Capítulo 7: Virtualização e a Nuvem.

- Silberschatz, A., Galvin, P. B., & Gagne, G. Sistemas Operacionais com Java. Capítulo 16: Virtualização.

- Documentação oficial VMware: https://www.vmware.com

- Artigos sobre KVM e Xen: https://www.linux-kvm.org, https://xenproject.org

Logo UFPR

Virtualização Online

Logo Licenciatura
Logo UFPR

Emuladores Clássicos

Logo Licenciatura
  • Windows 95: Emulador (win95.ajf.me/win95.html) que simula o Windows 95 completo, com boot e sons clássicos.
  • Windows 3.1: Disponível em Classic Reload; permite acessar o gerenciador de arquivos e jogar clássicos.
  • Windows 1.01: Emulador online do Windows 1.0.1 (Classic Reload), com interface básica e sistema de arquivos do DOS.
  • Classic Macintosh: Emulador do sistema original do Macintosh (James Friend), com a icônica interface da Apple.
  • AmigaOS 1.2: Experimente o Commodore Amiga 500 em pnacl-amiga-emulator.appspot.com, um clássico voltado para jogos.
Logo UFPR

Quiz de Múltipla Escolha

Logo Licenciatura

Responda as seguintes questões:

Logo UFPR

Perguntas Descritivas

Logo Licenciatura

Responda as seguintes questões:

1. Explique a diferença entre hipervisor Tipo 1 e Tipo 2.

Hipervisor Tipo 1 roda diretamente no hardware (bare-metal), oferecendo melhor desempenho e escalabilidade, enquanto o Tipo 2 roda como aplicação em um sistema operacional, sendo mais simples de instalar, porém com desempenho inferior.

2. Quais os principais benefícios da virtualização para data centers?

Os benefícios incluem maior utilização dos recursos, isolamento entre ambientes, redução de custos operacionais, facilidade de migração de VMs e escalabilidade dinâmica.

3. Como a Amazon AWS utiliza a virtualização para oferecer serviços escaláveis?

A AWS utiliza a virtualização para provisionar instâncias (EC2) sob demanda, permitindo escalabilidade, alta disponibilidade e a otimização de recursos através de técnicas como balanceamento de carga e auto scaling.

4. Quais são os principais desafios na virtualização de E/S e como podem ser mitigados?

Os desafios incluem alta latência e compatibilidade. Técnicas como pass-through, SR-IOV e emulação de dispositivos ajudam a reduzir a sobrecarga e melhorar o desempenho.