O que é uma Máquina Virtual?

Uma máquina virtual (MV) é uma representação emulada de um computador físico que simula suas funções e aloca recursos em um ambiente virtual.

Em termos mais formais, pode-se dizer que uma MV é uma instância de um sistema operativo que é executada como um aplicativo dentro de outro sistema operativo, permitindo a execução de programas e a gestão de recursos de forma isolada do sistema anfitrião.

Pode realizar as mesmas tarefas numa Máquina Virtual que numa máquina física (um computador real, como o seu portátil ou PC). Por exemplo, ligar-se a uma rede, fazer o download de software, atualizar o sistema operativo e muito mais.

Naturalmente, dependendo do caso de utilização, a experiência será diferente da de um computador físico.

Vamos explorar as máquinas virtuais, os seus casos de utilização e o seu funcionamento.

Máquinas Virtuais: As Origens

Primeiras Experiências (1960s-1970s): O conceito de virtualização começou a ser explorado nas décadas de 1960 e 1970. Um dos marcos importantes foi o desenvolvimento do CP/CMS (Control Program/Cambridge Monitor System) pela IBM. O CP/CMS permitia a execução de múltiplos sistemas operativos em mainframes IBM.

Avançando rapidamente para 2023, quando publicamos este artigo, as Máquinas Virtuais (MVs) estão em todo o lado, desde computadores pessoais até empresas e pequenos negócios. Todos utilizam MVs de uma forma ou de outra.

Considerando tudo isso, é evidente que as Máquinas Virtuais (MVs) são extremamente úteis. Mas como é que funcionam e para que exatamente as usamos?

Bare Metal = O computador físico real, como o seu PC ou portátil Sistema Operativo
Anfitrião = O sistema operativo no seu computador real
Sistema Operativo Convidado = O sistema operativo a ser executado dentro da VM
VM = Máquina Virtual, o termo genérico para a aplicação de virtualização

Como é que as Máquinas Virtuais Funcionam?

O conceito de virtualização deve esclarecer o funcionamento das máquinas virtuais.

Para relembrar, de acordo com um dos nossos artigos:

“A virtualização apresenta uma abstração do hardware do computador que auxilia na criação de máquinas virtuais (VMs), redes, armazenamento e outros recursos.”

A virtualização permite que um utilizador aproveite os recursos físicos do sistema num ambiente virtual. Isso possibilita que um processo utilize os recursos de forma independente, sem afetar o computador físico.

E a Máquina Virtual é o processo que faz uso dessa capacidade, obtendo recursos virtuais, como um disco virtual, RAM e outros ficheiros de configuração, para executar um sistema operativo sobre eles.

É possível que já esteja familiarizado com software de virtualização para Linux que ajuda a criar essas máquinas virtuais.

Para lhe fornecer uma diferença técnica entre uma máquina virtual e um computador físico, aqui está um diagrama para o ajudar a compreender:

Fonte

Porque é que as utilizamos?

Utilizamos Máquinas Virtuais (VMs) por várias razões, devido aos vários benefícios e flexibilidade que oferecem na gestão de ambientes de computação. Aqui estão algumas das principais razões pelas quais usamos VMs:

  1. Isolamento: As VMs fornecem isolamento completo entre si e entre a máquina física (host). Isso significa que problemas ou falhas em uma VM geralmente não afetam outras VMs ou o host, tornando as VMs ideais para ambientes de teste, desenvolvimento e produção onde a estabilidade é crucial.
  2. Consolidação de Servidores: As VMs permitem executar vários sistemas operativos e aplicativos em uma única máquina física. Isso ajuda a consolidar servidores, reduzindo a quantidade de hardware necessário e, por consequência, os custos operacionais.
  3. Flexibilidade: É possível criar, clonar, mover e dimensionar VMs rapidamente, o que oferece uma flexibilidade significativa na gestão de recursos de computação. Isso é útil para adaptar ambientes às necessidades em constante mudança.
  4. Desenvolvimento e Teste de Software: Desenvolvedores podem criar ambientes de teste isolados usando VMs para testar software em várias configurações sem interferir no seu ambiente de desenvolvimento principal.
  5. Recuperação de Desastres: VMs são usadas em estratégias de recuperação de desastres, permitindo a rápida restauração de sistemas em caso de falha ou interrupção.
  6. Testes de Compatibilidade: As VMs permitem testar a compatibilidade de software em várias versões de sistemas operativos e configurações, o que é fundamental para garantir que as aplicações funcionem em diversos ambientes.
  7. Alocação de Recursos Controlada: Os recursos de CPU, memória e armazenamento podem ser alocados e geridos de forma precisa para cada VM, garantindo um desempenho previsível e consistente.
  8. Ambientes de Ensino e Formação: Instituições educacionais utilizam VMs para criar ambientes de laboratório virtuais onde os alunos podem aprender e praticar sem necessidade de hardware físico adicional.
  9. Migração e Portabilidade: VMs podem ser facilmente movidas ou copiadas entre diferentes hosts físicos, tornando a migração e a portabilidade de ambientes uma tarefa relativamente simples.
  10. Segurança: VMs são usadas para isolar ambientes potencialmente inseguros ou não confiáveis do host e de outras VMs, ajudando a melhorar a segurança.

As Máquinas Virtuais Consomem Recursos do Sistema?

Quando cria uma máquina virtual para executar outro sistema operativo nela, aloca alguns recursos do sistema para a mesma. Esses recursos são principalmente:

  • CPU: Utilizada apenas quando o sistema operativo está a ser executado na VM.
  • RAM: Utilizada apenas quando o sistema operativo está a ser executado na VM.
  • Espaço em disco: Reservado quando cria a VM. Ocupado independentemente de a VM estar em execução ou não.

Algumas pessoas pensam que o CPU e a RAM serão sempre utilizados. Isso não é verdade. A RAM e o CPU são consumidas apenas quando a VM está a executar um sistema operativo.

No entanto, o espaço em disco está sempre reservado, mesmo quando as VMs não estão a ser executadas.

Tipos de Virtualização

Se tem curiosidade acerca do conceito de virtualização responsável por ajudar a criar uma máquina virtual, permita-me destacar todos os diferentes tipos dela e explicá-los brevemente.

Um hipervisor gere o hardware enquanto separa os recursos do sistema do ambiente virtual. Tecnicamente, é designado como um “Monitor de Máquina Virtual (VMM)”.

E o hipervisor é o software responsável por permitir que crie e execute máquinas virtuais.

Existem dois tipos de hipervisores, incluindo:

Hipervisor de Tipo 1: Este está diretamente ligado à máquina física para gerir os recursos para a VM. Um excelente exemplo é o KVM, que está integrado no Linux.
Hipervisor de Tipo 2: Este existe por cima de um sistema operativo como uma aplicação que lhe permite gerir recursos de VM e muito mais, como o VirtualBox, por exemplo.

Enquanto o hipervisor torna a virtualização possível, os tipos de virtualização disponíveis tornam a sua experiência sem complicações, facilitando as funcionalidades que obtém com uma VM.

Alguns dos tipos relevantes incluem:

Virtualização de Armazenamento: Isso ajuda a criar um disco virtual dividindo o espaço em disco disponível em pequenos segmentos reservados para serem usados por uma máquina virtual.

Virtualização de Rede: Permite que a ligação de rede física seja encaminhada através de redes virtuais (ou adaptadores) para as máquinas virtuais.

Virtualização de Desktop: Com esta tecnologia, pode implementar múltiplos ambientes de desktop virtuais em várias máquinas físicas ao mesmo tempo. A configuração e gestão de todos os desktops virtuais são possíveis a partir de um ponto central.

Vantagens das Máquinas Virtuais

Embora os casos de uso já lhe darem uma ideia dos benefícios que proporcionam, permita-me acrescentar algumas informações para que compreenda melhor:

  • As Máquinas Virtuais permitem-lhe utilizar completamente os recursos de hardware sem interferir no sistema anfitrião.
  • Com as VMs, tem a liberdade de testar ou experimentar qualquer coisa que deseje, seja uma aplicação muito antiga ou um software arriscado. Pode confiar na VM para realizar todas essas tarefas sem afetar o seu sistema anfitrião.
  • Pode executar vários sistemas operativos a partir de um único local, sem precisar de lidar com a complexidade de dual-boot ou adicionar unidades físicas adicionais para utilizar outros sistemas operativos. Isso economiza custos, tempo e complicações de gestão.
  • Com as VMs, pode clonar as suas configurações rapidamente, sem necessidade de hardware adicional.

Desvantagens das Máquinas Virtuais

Considerando que as Máquinas Virtuais são benéficas em muitos cenários, é importante estar ciente de algumas das potenciais preocupações associadas ao seu uso:

  1. Mesmo que as Máquinas Virtuais sejam conhecidas por utilizar recursos de forma eficiente, é possível sobrecarregar os recursos do sistema se não forem devidamente monitorizadas ou se múltiplas VMs forem executadas sem um planeamento adequado.
  2. As Máquinas Virtuais não conseguem igualar a experiência e o desempenho de um computador físico. Independentemente da potência do hardware hospedeiro, as VMs geralmente apresentam um desempenho inferior ao de um computador físico dedicado.
  3. Embora as Máquinas Virtuais sejam isoladas do sistema hospedeiro, é necessário ter cuidado com a partilha de ficheiros entre a VM e o sistema hospedeiro, uma vez que isso pode expor o sistema hospedeiro a ameaças de malware.

É importante considerar a possibilidade de utilizar o software de criação de máquinas virtuais com base nas necessidades e no contexto específico do seu projeto.

  • VirtualBox: Se estiver a trabalhar num ambiente individual, pequeno ou de desenvolvimento, o VirtualBox é uma opção viável e fácil de usar. É adequado para testar e desenvolver aplicações, bem como para utilizadores que procuram uma solução de virtualização de baixo custo.
  • Proxmox: Se estiver a gerir uma infraestrutura empresarial de médio a grande porte ou um data center, o Proxmox oferece uma solução robusta que combina virtualização e containers. É uma escolha sólida para organizações que necessitam de funcionalidades avançadas de gestão e escalabilidade.
  • VMware: Se a sua prioridade for o desempenho, a confiabilidade e a gestão avançada, o VMware é uma escolha de referência. É amplamente utilizado em empresas e fornece uma ampla gama de soluções, desde máquinas virtuais a ambientes de nuvem privada.

Portanto, enquanto as Máquinas Virtuais oferecem inúmeras vantagens, é importante estar ciente dessas considerações para utilizar essa tecnologia de forma segura e eficaz.

Deixe um comentário