Update 2020: revisão do texto para exemplos mais atuais, explicações sobre hypervisors
Uma máquina virtual (MV), do original em inglês virtual machine (VM), é uma implementação de ambiente computacional onde pode-se instalar e executar um sistema operacional.
A máquina virtual emula um computador físico comum, onde as requisições de CPU, memória, disco, rede e outros hardwares são gerenciados pela camada de virtualização, que traduz essas requisições para o hardware original.
As máquinas virtuais são criadas sobre um software chamado hypervisor, que executa sobre um sistema operacional instalado em um computador comum ou em um servidor.
O hypervisor funciona como um “hospedeiro”, gerenciando e distribuindo os recursos e emula um hardware físico para que as máquinas virtuais possam ser instaladas e executadas.
Os hypervisors mais avançados tentam utilizar para seu próprio sistema operacional o mínimo de recursos possíveis, para disponibilizar o máximo para as máquinas virtuais, sendo que alguns não tem nem interface gráfica para gerenciamento.
O hypervisor pode ser utilizado para criar múltiplas máquinas virtuais individuais e isoladas entre si, que são chamados de “convidados”.
Normalmente os sistemas operacionais “convidados” (do inglês guest) não sabem que estão sendo executados em uma máquina virtual, e a maioria dos sistemas operacionais pode ser instalado da mesma forma que seria instalado em um computador físico.
O sistema “convidado” pode acreditar que está fazendo uma chamada de gravação e leitura em um disco físico, mas na verdade está gravando em um arquivo no “hospedeiro”.
Exemplos de softwares para criar máquinas virtuais são: VMware Workstation, VMware Player, VMware vSphere (ESX), Microsoft Hyper-V, Citrix XenServer, RedHat KVM, Oracle VirtualBox e Parallels.
Em ambientes como o Amazon AWS, Microsoft Azure e Google Cloud, também existem recursos para executar máquinas virtuais, onde normalmente são chamadas de Instâncias.
As máquinas virtuais trazem algumas vantagens sobre o modelo tradicional de executar o sistema operacional direto no hardware físico:
- a possibilidade de compartilhar o hardware físico com outras máquinas virtuais
- a facilidade de ser copiado ou movido para outro hardware físico sem precisar se preocupar com drivers
- a possibilidade de executar diversas MVs ao mesmo tempo, ideal para fins de testes e desenvolvimento.
Em ambientes empresariais, a virtualização pode facilitar as rotinas de backup, recuperação de desastres, novas implantações de aplicativos (utilizando Virtual Appliances), facilitar as rotinas administrativas e diminuir o downtime.
Veja mais nesse outro artigo sobre virtualização.