Máquina virtual (VM) é um ambiente implementado em software que compartilha recursos de hardware do computador físico, permitindo que vários sistemas possam ser executados num mesmo computador simultaneamente. Podem ser compartilhados recursos como disco rígido, memória, placa de rede, placa de vídeo, etc. e é muito utilizado atualmente.
Resumindo: é a simulação do hardware através de software.
Ao invés de montar aqueles datacenters enormes, com milhares de máquinas gastando energia, espaço e ar-condicionado, monta-se uma quantidade menor de servidores (com uma configuração mais parruda) e cria-se a quantidade de servidores necessária através de um software.
Claro que o hardware destes servidores físicos deve ser compatível com a virtualização, mas hoje em dia isso é bem comum.
O conceito de máquina virtual surgiu na década de 60 e tomou força na década de 70. Mas era a época dos computadores de grande porte (mainframes), então a maioria da população nem sabia o que era isso.
Foi a partir de 1996, já na era do computador pessoal, que a virtualização de computadores ganhou força e se popularizou com o lançamento de uma solução de virtualização da VMware para a plataforma x86.
Conceito
Uma máquina virtual (VM – virtual machine) é um computador lógico que existe dentro de um computador físico, ou seja, você não consegue manuseá-lo como uma mesa ou uma cadeira.
Ela se comporta como se fosse uma máquina no mundo real, mas existe somente dentro de um software. O desenho abaixo dá uma ideia deste conceito.
A virtualização surgiu para resolver um problema da época dos mainframes, que eram grandes e muito caros. Podia-se executar dois ou mais sistemas distintos aproveitando o mesmo hardware, otimizando possíveis recursos ociosos da máquina.
Vantagens
- Otimização do hardware: Ao invés de utilizar 3 máquinas físicas para rodar sistemas/serviços que não utilizam todo recurso de hardware, pode-se utilizar apenas uma máquina física com 3 Vms (cada uma com um sistema/serviço) e assim ocupar o tempo ocioso do servidor.
- Economia de infra estrutura: Gasta-se menos com toda a infra estrutura de um data center, além das máquinas físicas. Ar-condicionado, energia elétrica e o próprio espaço físico.
- Gerenciamento centralizado: O monitoramento e gerenciamento das VMs fica centralizado num mesmo lugar.
- Testes: Antes de atualizar um sistema crítico, pode-se fazer uma simulação tanto da instalação das alterações como testar o sistema em si.
Como funciona?
Hypervisor é o nome da plataforma que permite o funcionamento de máquinas virtuais. Começaram a surgir lá pela década de 1970, justamente para reduzir custos com mainframes.
Por volta de 1990 surgiu o primeiro hypervisor para PC, o VMWare.
É ele que gerencia os acessos dos sistemas operacionais das VMs (conhecidos como guests) aos recursos do hardware do computador físico (host).
Tipos de arquitetura
Existem 2 tipos de hypervisores:
- Tipo 1: nativo, é executado diretamente sobre o hardware. Tem melhor desempenho, disponibilidade e segurança.
- Tipo 2: também chamado de hosted, é executado sobre um sistema operacional. Neste tipo existe mais uma camada entre a VM e o hardware, diminuindo o desempenho das VMs.
Modelos
Os hypervisoes também possuem 2 modelos:
- Monolítico: o hypervisor hospeda e gerencia os drivers dos dispositivos (placa-mãe, placa de rede, etc.). O problema é que estes drivers devem ter sido feitos especificamente para o hypervisor. A vantagem é que os guests interagem com o hardware diretamente através dos drivers.
- Microkernalizado: este modelo tem um sistema operacional numa partição pai (root), que possui todos os drivers necessários. Desta forma, os drivers utilizados não precisam ser específicos do hypersivor. As partições filho (child) acessam os dispositivos físicos através da partição pai.
Hyper V
Hyper-V é o nome do hypervisor nativo do Windows e pode criar VMs em sistemas x86 de 64 bits rodando Windows.
Desde o Windows 8 ele substituiu o Windows Virtual PC como o componente de virtualização de hardware do Windows.
História
Algumas edições do Windows Server 2008 incluíam uma versão beta do Hyper-V.
A versão finalizada foi lançada em 26 de junho de 2008 e foi distribuída através do Windows Update. Desde então é lançado com toda versão do Windows Server.
A Microsoft disponibiliza o Hyper-V através de dois canais:
- Parte do Windows: como componente opcional desde o Windows Server 2008. Também está disponível nas edições Pro e Enterprise do Windows 8, Windows 8.1 e Windows 10.
- Hyper-V Server: Uma edição gratuita e limitada do Windows Server 2008 Server Core com o Hyper-V. A configuração do Sistema Operacional do host é feito por linha de código.
Arquitetura
O Hyper-V é um hypervisor do tipo 1 (nativo) e microkernalizado.
Quando você adiciona a função Hyper-V na instalação do Windows, é adicionada uma camada de hypervisor entre o sistema operacional e o hardware. Assim, este sistema operacional se torna a partição pai (root).
E a partir desta partição pai podemos criar partições filho (child). As partições filho não possuem acesso direto ao hardware, eles o fazem através dos drivers instalados na partição pai (root). E isso acontece por meio de dispositivos virtualizados através do Virtual Server Client (VSC ), que se comunicam com os Virtual Server Providers (VSP) pelo Virtual Machine Bus (VMBus).
Eita, que salada de letras é essa? Veja abaixo um diagrama de tudo isso.
Mas não se preocupe no momento em entender cada detalhe. O objetivo por enquanto é entender o conceito de máquina virtual.
Se você tiver a versão Pro do Windows em sua máquina e tiver a opção Hyper-V ligada nas features do Windows, poderá criar VMs através do Gerenciador do Hyper-V:
Palavras finais
O objetivo deste post foi apenas apresentar o conceito de máquina virtual e a solução disponibilizada pela Microsoft, o Hyper-V.
Utilizaremos este poderoso recurso para testar nossos aplicativos através de máquinas virtuais de dispositivos móveis. Mas isso é assunto para um futuro post.
Se você quiser saber mais sobre o Hyper-V ou máquina virtual, faça seu comentário logo abaixo.
Meu e-book Como Aprender a Programar do Absoluto Zero está GRATUITO por tempo limitado!
Olha o link: 👉🏼 http://celsokitamura.com.br/como-aprender-a-programar
Bora aprender a programar!