A virtual machine (VM) is an emulated or digital version of a physical computer. Virtual machines can be used to run different operating systems and applications, store data, connect to networks, as well as perform other tasks like a physical device. Virtual machines run on a physical device called a host or parent server. And a virtual machine is called a guest or child.
Neste artigo, vou explicar como funcionam as máquinas virtuais e como elas diferem dos contêineres. Também detalharei alguns dos casos de uso mais importantes para máquinas virtuais, incluindo desenvolvimento de software multiplataforma e investigação de malware.
Como funciona uma máquina virtual?
Essencialmente, a tecnologia de virtualização permite aos usuários criar e executar várias máquinas virtuais simultaneamente em um único host. Por exemplo, um host do Windows é capaz de executar diferentes máquinas virtuais com Windows, CentOS, Ubuntu e outras distribuições Linux.
A virtual server uses hypervisor software to interact with the underlying physical hardware. It makes it possible to keep VMs separate and evenly allocate host resources (CPUs, storage, and memory) to each VM guest as needed. The hypervisor can also schedule operations to prevent deadlocks.

Os dois tipos de hipervisores
Há dois tipos principais de hipervisores que são usados na virtualização.
Hipervisores do Tipo 1 (VM de Processo)
Primeiramente, um hipervisor tipo 1, também chamado de hipervisor bare-metal, é executado nativamente no computador físico. Geralmente, uma ferramenta de gerenciamento separada é necessária para criar/gerenciar máquinas virtuais e gerenciar permissões no hipervisor. Microsoft Hyper-V e Citrix Hypervisor são exemplos de hipervisores tipo 1.
Hipervisores de Tipo 2 (Sistema VM)
A type 2 hypervisor, also known as a hosted hypervisor, can run as an application on the host OS. It allows users to manually create a virtual machine instance and install a guest operating system.
O hipervisor de tipo 2 é comparativamente mais lento porque cada solicitação de máquina virtual deve ser encaminhada para o sistema operacional host. Ele é adequado para indivíduos, desenvolvedores e pequenas empresas que não podem comprar servidores dedicados. Alguns exemplos comuns de hipervisores tipo 2 incluem Oracle VirtualBox e VMware Workstation.
O que é virtualização?
A virtualização é uma tecnologia que envolve a criação de uma camada de abstração sobre uma máquina física hospedeira. Ela ajuda a dividir os recursos de hardware (CPU, RAM e armazenamento) de um único computador em diferentes computadores virtuais chamados máquinas virtuais.
Cada máquina virtual age como uma máquina independente com seu próprio sistema operacional. É uma solução econômica para organizações que desejam executar vários sistemas operacionais e aplicativos em um único servidor físico.
Os cinco tipos de virtualização
Há cinco tipos comuns de virtualização: Virtualização de hardware, virtualização de software, virtualização de armazenamento, virtualização de rede e virtualização de desktop.
1. Virtualização de hardware
A virtualização de hardware, também conhecida como virtualização de servidores, é uma técnica que permite aos usuários criar versões virtuais de computadores e sistemas operacionais. Ela torna possível executar simultaneamente vários sistemas operacionais na mesma máquina física. A virtualização de hardware também otimiza a utilização dos recursos de hardware.
2. Virtualização de software
A virtualização de software é um método que permite que uma máquina host física execute vários computadores virtuais. Ele utiliza software de hipervisor para distribuir os recursos de hardware (como armazenamento, processadores e memória) entre diferentes máquinas virtuais (VMs). Por exemplo, uma distribuição Linux pode ser executada em uma máquina virtual em um computador que está executando um sistema operacional Windows.
3. Virtualização de Armazenamento
A virtualização de armazenamento consolida o armazenamento físico de vários dispositivos de armazenamento em rede para aparecer como um único disco virtual. Ela tem vários benefícios, incluindo redução de custos, balanceamento de carga, planejamento de recuperação de desastres e melhoria de desempenho e velocidade.
4. Virtualização de Rede
A virtualização de rede é um processo que é usado para agrupar redes físicas em uma única rede virtual baseada em software. Isso ajuda a distribuir a largura de banda disponível em vários canais e alocá-los para dispositivos e servidores. Oferece benefícios como segurança aprimorada, confiabilidade e velocidade de rede.
5. Virtualização de Desktop
A virtualização de desktop permite que os usuários simulem uma carga de estação de trabalho para que ela possa ser acessada de qualquer lugar em qualquer dispositivo. Seus principais benefícios incluem economia de custos, otimização de recursos, segurança aprimorada de dados e gerenciamento mais fácil.
Quais são os principais benefícios de usar VMs?
As VMs oferecem vários benefícios tanto para os usuários finais quanto para os administradores de TI. Aqui está uma lista de algumas das características que tornam as máquinas virtuais muito atraentes em ambientes corporativos:
1. Computação em nuvem
A tecnologia de virtualização fornece a arquitetura básica para a computação em nuvem. Ela permite que as empresas implantem e migrem máquinas virtuais nativas da nuvem para ambientes de servidores locais e aproveitem os clouds híbridos.
Também é possível para as organizações alocar e alterar recursos na nuvem em tempo real para atender aos seus requisitos dinâmicos de uso. Os serviços de VM baseados em nuvem são populares para executar aplicativos SaaS, fazer backup de dados e hospedar serviços de e-mail e gerenciamento de acesso.
2. Eficiência de custos
As máquinas virtuais permitem que as organizações criem e executem várias instâncias de máquinas virtuais em um único servidor. Como os custos de hardware de TI podem ser um desafio real para as empresas, as VMs podem ajudar a aumentar a eficiência de custos ao usar recursos mínimos de hardware físico. Por exemplo, os administradores de TI podem usar um único servidor para implantar diferentes aplicativos em um ambiente corporativo.
3. Segurança
Os usuários podem criar ambientes virtuais para aumentar a segurança e evitar que malwares interfiram no hardware subjacente e no sistema operacional. É possível que os usuários revertam rapidamente e facilmente uma VM comprometida para versões anteriores em caso de ataque cibernético.
Enquanto isso, os desenvolvedores podem usar VMs para testar atualizações de software e aplicativos antes de lançá-los para os usuários de produção. As VMs também são úteis para pesquisadores testarem softwares maliciosos.
4. Escalabilidade e portabilidade
A virtualização permite que os clientes implantem rapidamente diferentes tipos de VMs com os sistemas operacionais de sua escolha e um conjunto específico de recursos. As VMs também podem ajudar organizações a responder melhor às variações na carga de trabalho. Elas também podem economizar o tempo e esforço extras necessários para instalar diferentes sistemas operacionais em servidores físicos.
5. Migração de carga de trabalho
As máquinas virtuais são chamadas de “pacotes autocontidos” que são desacoplados do computador físico. Isso torna mais fácil para equipes de TI migrar para hardware mais rápido, mover uma VM de um servidor para outro e recuperar de falhas.
6. Recuperação de desastres
Organizações podem usar máquinas virtuais para fazer backup de seus sistemas em ambientes de nuvem. Essa capacidade proporciona uma camada adicional de segurança e minimiza o risco de perda de dados em cenários como falhas de hardware.
7. Suporte DevOps
As VMs fornecem máxima flexibilidade para dar suporte aos desenvolvedores de empresas. Eles podem criar ambientes isolados com funcionalidades completas para o processo de desenvolvimento e testes de software. As VMs também permitem que os desenvolvedores executem e testem softwares incompatíveis em diferentes sistemas operacionais.
Máquinas Virtuais vs. Containers
Assim como as máquinas virtuais, os containers permitem executar aplicativos isolados do host subjacente. No entanto, vamos analisar mais de perto as principais diferenças entre máquinas virtuais e containers:
Virtual Machines | Containers |
---|---|
Hardware-level process isolation | Operating system-level process isolation |
A virtual machine offers complete isolation of apps from the host OS | Containers can share some resources with the host OS |
VMs use a few GBs of system memory | Containers require less memory space (KBs or MBs) |
Each VM has a dedicated OS | Containers can share OS resources |
VM is more secure | Containers are less secure |
Boots in minutes | Boots in seconds |
VMs consume more system resources | Containers consume fewer resources |
VMs can move between hardware | Containers are destroyed and recreated |
VM creation takes a considerable amount of time | Users can create containers within a few seconds |
Users can run any OS inside the VM | Users can only run containers on the same OS version as the host |
Some popular use cases of VMs are running multiple applications, monolithic applications, and legacy apps on older OS. | Containers are best for running web apps, DevOps testing, and microservices. |
Principais casos de uso para máquinas virtuais
As máquinas virtuais têm vários casos de uso tanto para usuários finais quanto para administradores de TI. Aqui estão alguns exemplos:
1. Testar novos sistemas operacionais
As máquinas virtuais permitem que os usuários executem diferentes sistemas operacionais em um único host físico. Isso significa que os usuários podem testar novas funcionalidades sem afetar seu sistema operacional principal.
Se você é um Windows Insider, você pode sentir vontade de usar máquinas virtuais para testar as compilações de pré-visualização do Windows 11 provenientes do canal Dev. Essas compilações podem ser bastante instáveis, embora seja possível recriar a máquina virtual e reinstalar o sistema operacional se a VM falhar ao inicializar por algum motivo.
2. Executar software legado ou incompatível
Outro caso de uso comum das máquinas virtuais é a capacidade de utilizar aplicativos de software legado em ambientes corporativos. As VMs permitem que os usuários executem software que não é suportado pelo sistema operacional existente.
3. Investigação de malware
Os pesquisadores de malware frequentemente precisam de novas máquinas para testar programas ou aplicativos maliciosos. É aí que as máquinas virtuais são úteis. Eles podem testar o software em uma VM em vez de correr o risco de infectar o host físico.
4. Desenvolvimento de software multiplataforma
A tecnologia de virtualização permite que desenvolvedores de software e testadores testem suas aplicações em várias plataformas. Por exemplo, uma equipe de desenvolvedores pode usar várias máquinas virtuais para testar diferentes versões de um aplicativo em um ambiente emulado.
5. Sessões de treinamento
É importante que os computadores da sala de treinamento executem várias instâncias de sistemas operacionais. As máquinas virtuais permitem que instrutores conduzam sessões de treinamento que replicam diferentes cenários e ambientes de negócios.
6. Navegação segura
Por fim, as máquinas virtuais podem ajudar a garantir uma experiência de navegação segura para os usuários. É possível tirar um snapshot de uma VM em seu estado atual e depois revertê-la em caso de infecção por malware. Os usuários podem configurar um hipervisor Tipo 2 ou solicitar a um administrador de TI que lhes conceda acesso temporário a um desktop virtual hospedado em um servidor.
Conclusão
Em resumo, as máquinas virtuais são uma solução econômica que permite às equipes de TI distribuir eficientemente recursos do sistema e gerenciar grandes clusters de computadores. No entanto, as VMs têm vários prós e contras, e as organizações geralmente adotam uma abordagem híbrida (com máquinas físicas e virtuais) dependendo de suas necessidades de negócios.