Propostas de projetos de virtualização

Se você está estudando virtualização e conteinerização pode achar essas propostas de projeto bastante interessantes e desafiadoras. E tenha certeza que aprenderá bastante com elas! Pode escolher uma, ou várias.

Nas propostas normalmente faço menção ao VirtualBox como hipervisor, mas pode usar o de sua preferência. Todos os projetos já foram testado em aula (usando VirtualBox em hosts Windows 10 e/ou Linux Ubuntu Desktop) e podem ser executados sem problemas.

Aos colegas professores: Costumo aplicar essas atividades em grupo e em laboratório, reservando um tempo razoável ao longo de algumas aulas para a elaboração. Cada grupo escolhe um tema e apresenta o resultado final ao vivo em sala, elaborando também um tutorial para que os demais grupos possam reproduzir o trabalho depois. Os tutoriais são compartilhados por todos os grupos e normalmente implemento uma avaliação por pares onde todos os grupos avaliam o trabalho de todos, inclusive uma auto-avaliação, quanto ao atendimento da proposta, demonstração e tutorial. 
É uma atividade bastante efetiva de Problem/Project Based Learning! Sempre deixo abertura para propostas de projetos feitas pelos alunos desde que adequadas aos temas das aulas, nível de dificuldade e tempo de execução.


Lista de projetos:

Redes virtualizadas interconectadas

A virtualização permite simularmos cenários complexos e completos, incluindo redes de computadores.

Devem ser criadas 3 redes locais. Essas redes devem ter ao menos 2 computadores cada. Um deles atuará como um terminal e o outro como um roteador, viabilizando a conexão com as outras 2 redes. A topologia pode formar um anel, ou um backbone (A-B-C).

O funcionamento pode ser comprovado apenas através de pings, além da exibição das configurações de rede/roteamento.

Observações:
  • Opcionalmente pode-se usar o simulador de redes GNS3 que trabalha em conjunto com o VirtualBox.
  • Pode-se optar por instalar um software roteador específico, ao invés de utilizar configuração de roteamento manual, ou mesmo utilizar uma distribuição focada em recursos de rede.

Consolidação de servidores com KVM

Uma das possibilidades interessantes de se trabalhar com a virtualização é utilizar a virtualização dentro de uma máquina virtual. Pode parecer um desperdício, mas é um dos poucos jeitos de se testar um hipervisor tipo 1 em um notebook, ou PC do laboratório. É um cenário que pode ocorrer em computação em nuvem também.

Deve-se criar uma máquina virtual com um hipervisor tipo 1 sendo o KVM. Nela deverá configurar 3 servidores à escolha (Banco de Dados, HTTP, FTP, arquivos, aplicação, etc.). O acesso aos servidores consolidados deve ser feito de outra máquina (na mesma rede).

Devem ser demonstrados os recursos disponíveis para monitoramento das VMs, backup, etc.

Observações:
  • Assim como em um datacenter o hipervisor tipo 1 KVM deve ser instalado em uma máquina virtual “servidor” sem interface gráfica, mas seu gerenciamento pode ser feito a partir de uma máquina com sistema desktop.
  • Atenção nem todos os hipervisores tipo 1 funcionarão dentro de um sistema virtualizado. Graças ao QEMU o KVM funciona.

Consolidação de servidores com containers LXC/LXD

Os containers são muito mais leves do que os hipervisores. Embora tenham suas limitações, os containers LXC/LXD atuam praticamente como hipervisores.

Deverá ser criada uma máquina virtual com um Linux servidor e configurar os containers LXC/LXD. Deve haver no mínimo 3 containers servidores à escolha (Banco de Dados, HTTP, FTP, arquivos, aplicação, etc.). O acesso aos servidores consolidados deve ser feito preferencialmente de outras máquinas físicas na mesma rede ou, no mínimo, de outra máquina virtual com sistema desktop.

Devem ser demonstrados os recursos disponíveis para monitoramento dos containers, backup, etc.

Observação:
  • Assim como em um datacenter o servidor LXC/LXD deve ser instalado em uma máquina virtual “servidor” sem interface gráfica, mas seu gerenciamento pode ser feito a partir de uma máquina com sistema desktop.

Consolidação de serviços com Docker

Os containers são muito mais leves do que os hipervisores e, mais ainda os containers de aplicação como o Docker.

Deve-se criar uma máquina virtual com um Linux servidor, configurar o Docker e criar no mínimo 3 containers servidores à escolha (Banco de Dados, HTTP, FTP, arquivos, aplicação, etc.). O acesso aos servidores consolidados deve ser feito de outras máquinas físicas na mesma rede.

Devem ser demonstrados os recursos disponíveis para monitoramento dos containers, backup, etc.

Observação:
  • Assim como em um datacenter o servidor Docker deve ser instalado em uma máquina virtual “servidor” sem interface gráfica, mas seu gerenciamento pode ser feito a partir de uma máquina com sistema desktop.

Live migration (teleport)

As máquinas virtuais podem ser migradas de uma máquina física para outra sem interromper seu funcionamento, no que é chamado mais comumente de live migration, embora a documentação do VirtualBox trate como “teleport”.

O grupo deverá demonstrar o “teleporte” de uma VM de uma máquina física para outra na mesma rede.

Observações:
  • Assim como num ambiente de datacenter, sugere-se a migração de uma máquina virtual “servidor”.
  • Para se demonstrar a "live migration", deve-se acessar (ping, ssh, webserver, etc.) a máquina sendo teleportada a partir de uma terceira máquina, ou do sistema host.

RAID 5 e/ou 6 no Linux

RAID é uma técnica para oferecer maior desempenho e, principalmente, redundância na memória secundária. Como a técnica é focada em servidores, sua implementação requer vários discos e um hardware “hot swap”. Mas isso é possível de ser feito na máquina virtual.

O grupo deverá implementar RAID 5 e/ou 6 em servidor Linux, com no mínimo 4 discos para o RAID 5 e 5 discos para o RAID 6.

Na demonstração deverá mostrar o RAID implementado, remover um disco e inserir um novo disco mostrando a recuperação.

Observação:
  • Este projeto pode ser adaptado para todos os níveis de RAID.

RAID 5 e/ou 6 no Windows

RAID é uma técnica para oferecer maior desempenho e, principalmente, redundância na memória secundária. Como a técnica é focada em servidores, sua implementação requer vários discos e um hardware “hot swap”. Mas isso é possível de ser feito na máquina virtual.

O grupo deverá implementar RAID 5 e/ou 6 em servidor Windows, com no mínimo 4 discos para o RAID 5 e 5 discos para o RAID 6. O grupo pode utilizar uma versão “evaluation” do Windows Server, disponibilizada gratuitamente pela Microsoft, com validade de alguns meses.

Na demonstração deverá mostrar o RAID implementado, remover um disco e inserir um novo disco mostrando a recuperação.

Observação:
  • Este projeto pode ser adaptado para todos os níveis de RAID.

Outras propostas e sugestões

Algumas outras possibilidades de projeto:
  • Servidores SAMBA;
  • Cluster hadoop mínimo;
  • Uso do QEMU para virtualizar uma arquitetura diferente da x86-64;
  • Utilização de ferramentas de automação como Vagrant, Puppet, Ansible, ou Chef;
  • Cluster de nuvem OpenStack com PackStack;
  • Outras sugestões nos mesmos moldes dos projetos de consolidação de servidores são a utilização do Windows Server com Hyper-V, ou o VMware vSphere (há versão de avaliação gratuita), porém ambos são viáveis apenas utilizando-se equipamento onde tenha acesso administrativo (normalmente equipamento próprio e é bom fazer um backup para garantir caso algo saia errado).