Virtualização

Propaganda
Virtualização
A virtualização está presente tanto no desktop de um entusiasta pelo assunto
quanto no ambiente de TI de uma infinidade de empresas das mais variadas áreas. Não
se trata de "moda" ou mero capricho: graças a este conceito, é possível, entre outros
benefícios, economizar com equipamentos e obter resultados de determinadas tarefas
computacionais em menor tempo. Neste texto de introdução ao assunto, você saberá o
que é máquina virtual, conhecerá as principais técnicas de virtualização existentes e
descobrirá as suas principais vantagens.
O conceito de VIRTUALIZAÇÃO
Apesar de ser uma ideia antiga - seu surgimento se deu na década de 1960, se
propagando com mais força a partir de 1970 -, a virtualização é extremamente
importante para o mundo cada vez mais "digital" de hoje. Podemos definir o conceito
como soluções computacionais que permitem a execução de vários sistemas
operacionais e seus respectivos softwares a partir de uma única máquina, seja ela um
desktop convencional ou um potente servidor.
A diferença é que estas máquinas são virtuais: na prática, elas oferecem
resultados como qualquer outro computador, mas existem apenas logicamente, não
fisicamente.
Cada máquina virtual se traduz em um ambiente computacional completo:
praticamente todos os recursos de seu sistema operacional podem ser utilizados, é
possível conectá-las em rede, consegue-se instalar aplicativos, enfim.
1
Uma das razões para o surgimento da virtualização é que, anos atrás, na época
em que os mainframes dominavam o cenário tecnológico e não havia computadores
pessoais, por exemplo, não existia a praticidade de "adquirir, instalar e usar um
software" - este era acompanhado de bibliotecas e outros recursos que o tornavam quase
que exclusivos ao o computador para o qual foi desenvolvimento originalmente.
Desta forma, muitas vezes uma organização que programava um novo sistema se
via obrigada a adquirir um equipamento apenas para executá-lo, em vez de
simplesmente aproveitar o maquinário existente, deixando toda a operação mais cara no
final das contas.
A virtualização conseguiu resolver este problema: pode-se aproveitar um
computador já existente para executar dois ou mais sistemas distintos, já que cada um
roda dentro de sua própria máquina virtual. Evita-se, assim, gastos com novos
equipamentos e aproveita-se os possíveis recursos ociosos do computador.
Nos dias de hoje, a virtualização permite, por exemplo, que uma empresa
execute vários serviços a partir de um único servidor ou até mesmo que um usuário
doméstico teste um sistema operacional em seu computador antes de efetivamente
instalá-lo. Do ponto de vista corporativo, seu uso atual se destina a várias aplicações,
como sistemas de ERP, serviços de computação nas nuvens, ferramentas de simulação,
entre muitos outros.
2
Benefícios da virtualização
Melhor aproveitamento da infraestrutura existente: ao executar vários
serviços em um servidor ou conjunto de máquinas, por exemplo, pode-se
aproveitar a capacidade de processamento destes equipamentos o mais próximo
possível de sua totalidade;
O parque de máquinas é menor: com o melhor aproveitamento dos recursos já
existentes, a necessidade de aquisição de novos equipamentos diminui, assim
como os consequentes gastos com instalação, espaço físico, refrigeração,
manutenção, consumo de energia, entre outros. Imagine o impacto que esta
vantagem pode ter em um data center, por exemplo;
Aproveitamento de capacidade: uma máquina fazendo o papel de três
Gerenciamento
centralizado: dependendo
da
solução
de
virtualização
utilizada, fica mais fácil monitorar os serviços em execução, já que o seu
gerenciamento é feito de maneira centralizada;
Implementação mais rápida: dependendo da aplicação, a virtualização pode
permitir sua implementação mais rápida, uma vez que a infraestrutura já está
instalada;
3
Uso de sistemas legados: pode-se manter em uso um sistema legado, isto é,
antigo, mas ainda essencial às atividades da companhia, bastando destinar a ele
uma máquina virtual compatível com o seu ambiente;
Diversidade de plataformas: pode-se ter uma grande diversidade de
plataformas e, assim, realizar testes de desempenho de determinada aplicação
em cada uma delas, por exemplo;
Ambiente de testes: é possível avaliar um novo sistema ou uma atualização
antes de efetivamente implementá-la, diminuindo significativamente os riscos
inerentes a procedimentos do tipo;
Segurança e confiabilidade: como cada máquina virtual funciona de maneira
independente das outras, um problema que surgir em uma delas - como uma
vulnerabilidade de segurança - não afetará as demais;
Funcionamento da Virtualização
Uma solução de virtualização é composta, essencialmente, por dois
"protagonistas": o hospedeiro (host) e o hóspede ou convidado (guest). Podemos
entender o hospedeiro como sendo o sistema operacional que é executado por uma
máquina física. O hóspede, por sua vez, é o sistema virtualizado que deve ser executado
pelo hospedeiro. A virtualização ocorre quando estes dois elementos existem.
A forma como hospedeiro e hóspedes trabalham varia conforme a solução. Em
um método bastante comum há a figura do VMM (Virtual Machine Monitor - Monitor
de Máquina Virtual), que também pode ser chamado de hypervisor: trata-se de uma
espécie de plataforma implementada no hospedeiro que recebe os sistemas a serem
virtualizados, controlando os seus recursos e mantendo-os "invisíveis" em relação aos
outros.
Para que possa fazer o seu trabalho, o VMM tem um tratamento diferenciado:
ele pode ser executado no "modo supervisor", enquanto que programas comuns
(aplicativos) rodam no "modo usuário".
No "modo supervisor", o software pode requisitar instruções que lidam
diretamente com certos recursos hardware, como funcionalidades específicas
do processador. No "modo usuário", estes recursos mais críticos não podem ser
4
acessados diretamente, cabendo ao sistema operacional, que trabalha em "modo
supervisor", fazer uma espécie de intermediação quando necessário.
O VMM precisa ter acesso privilegiado porque cabe a ele alocar os recursos a
serem utilizados por cada máquina virtual sob sua responsabilidade, assim como
determinar a ordem pela qual cada solicitação destas será atendida.
O hóspede é executado em "modo usuário", mas como a máquina virtual possui
um sistema operacional, qualquer requisição de instrução mais crítica solicitada por este
é "interceptada" pelo hypervisor, que se encarrega de fornecê-la.
Virtualização total e paravirtualização
A virtualização por meio de Virtual Machine Monitor é comumemente dividida
em
duas
técnicas:
a virtualização
total(full
virtualization)
e
a paravirtualização (paravirtualization).
Na virtualização total, o sistema operacional do hóspede trabalha como se de
fato houvesse uma máquina física inteiramente à sua disposição. Desta forma, o sistema
não precisa sofrer nenhuma adaptação e trabalha como se não houvesse virtualização
ali. O problema é que esta abordagem pode ter algumas limitações consideráveis.
5
Uma delas é o risco de algumas solicitações do hóspede não serem atendidas da
maneira esperada. Isso acontece, por exemplo, quando o hypervisor não consegue lidar
com determinada instrução privilegiada ou quando um recurso de hardware não pode
ser plenamente acessado por não haver drivers (uma espécie de software que "ensina" o
sistema operacional a lidar com um dispositivo) na virtualização capazes de garantir sua
plena compatibilidade.
A paravirtualização surge como uma solução para problemas do tipo. Nela, o sistema
operacional do hóspede roda em uma máquina virtual similar ao hardware físico, mas
não equivalente.
Como este método, o hóspede é modificado para recorrer ao hypervisor quando
necessitar de qualquer instrução privilegiada e não diretamente ao processador. Assim,
o VMM não precisa interceptar estas solicitações e testá-las (tarefa que causa perda de
desempenho), como acontece na virtualização total.
Além disso, a paravirtualização diminui expressivamente os problemas com
compatibilidade de hardware porque o sistema operacional do hóspede acaba podendo
utilizar drivers adequados - na virtualização total, os drives disponíveis são "genéricos",
isto é, criados para suportar o máximo possível de dispositivos, mas sem considerar as
particularidades de cada componente.
A principal desvantagem da paravirtualização é a necessidade de o sistema
operacional ter que sofrer modificações para "saber" que está sendo virtualizado,
podendo gerar custos com adaptação e atualização ou limitações referentes à migração
para um novo conjunto de hardware, por exemplo.
Na virtualização total, vale relembrar, não há necessidade de alteração do
sistema, mas o procedimento fica sujeita aos problemas mencionados no início deste
tópico. Assim, a adoção de um modo ou outro depende de análises e testes que possam
determinar qual é mais vantajoso para determinado serviço.
6
Outros métodos de Virtualização
O VMM não é a única técnica de virtualização que existe. Para que possa
atender às mais variadas necessidades, vários métodos foram (e são) desenvolvidos.
Entre os demais, tem-se o Process Virtual Machine, o Operating System Virtual
Machine e a virtualização assistida por hardware.
 Process Virtual Machine (Máquina Virtual de Processo)
Neste método, a máquina virtual funciona como uma aplicação qualquer
rodando dentro do sistema operacional. Um dos exemplos mais populares de
máquinas virtuais do tipo é a linguagem de programação Java: nela, quando um
programa é compilado, um código específico é gerado para ser executado por uma
JVM (Java Virtual Machine - Máquina Virtual Java).
O Virtual Machine Monitor é uma camada de software diretamente ligada ao
hardware, por isso, permanece ativo durante todo o tempo em que o computador
permanecer ligado. No Process Virtual Machine, a máquina virtual é tratada como
um processo, como o seu nome indica. Assim, assim quando a sua execução é
concluída, o ambiente da máquina virtual deixa de existir.
 Operating System Virtual Machine (Máquina Virtual de Sistema Operacional)
Você já sabe que um único computador pode suportar mais de uma máquina
virtual, sem que uma saiba da existência da outra. O problema é que, muitas
vezes, esta abordagem pode comprometer o desempenho. Uma das maneiras de
lidar com este problema é o uso da técnica Operating System Virtual
Machine (Máquina Virtual de Sistema Operacional).
Aqui, a máquina física recebe um sistema operacional, mas há a criação de
vários ambientes virtuais sobre este. Cada um destes ambientes tem acesso a
determinados recursos, como espaço em disco e quotas de processamento, mas
compartilham do mesmo kernel (núcleo, isto é, a parte principal do sistema
operacional). Normalmente, um ambiente não sabe da existência do outro.
Máquinas Virtuais de Sistema Operacional são bastante utilizadas, por exemplo, em
empresas de hospedagem de sites: cada ambiente é oferecido a um cliente como se fosse
7
um sistema exclusivo, quando, na verdade, o servidor está sendo compartilhado com
vários outros usuários.
Empresas como Intel e AMD, as maiores fabricantes de processadores do
mundo, desenvolveram (e desenvolvem) tecnologias que possibilitam aos seus chips um
trabalho aprimorado em soluções de máquinas virtuais, especialmente no que diz
respeito à virtualização total.
No caso da Intel, muitos de seus processadores atuais contam a tecnologia Intel
Virtualization Technology (Intel VT), que consiste em um conjunto de instruções
aplicadas ao chip especialmente para tratar de tarefas de virtualização. A AMD tem uma
tecnologia equivalente (não há compatibilidade de uma com a outra), de nome AMD
Virtualization (AMD-V).
Entre os recursos oferecidos por estas tecnologias está a capacidade de facilitar o
trabalho de fazer com que o processador funcione como um conjunto de chips, um para
cada maquina virtual em uso.
Soluções de Virtualização
Como a virtualização pode atender às mais distintas aplicações, há várias
soluções do tipo no mercado, assim como diversas empresas especializadas no segundo.
Eis algumas das mais conhecidas: VMware, Microsoft, Xen eVirtualBox.
VMware
A
VMware é uma empresa de origem norte-americana especializada em
virtualização. Seus produtos são bastante conhecidos no mercado e atendem a
aplicações dos mais variados tamanho.
Um deles - o produto de entrada, por assim dizer - é o VMware Player, um
software gratuito de virtualização que permite ao usuário doméstico criar uma máquina
virtual para rodar outros sistemas operacionais no Windows ou no Linux. Assim, podese estudar um sistema, fazer testes de softwares, entre outros.
8
Outra solução bastante conhecida da empresa é o VMware Server, que também é
gratuito, mas tem a proposta de atender ao segmento de servidores de pequeno e médio
porte.
As soluções pagas da empresa, no entanto, são muito mais amplas em recursos, e
podem atender desde servidores mais simples até grandes data centers.
Microsoft
A Microsoft também tem presença expressiva no mercado de virtualização,
especialmente porque os seus softwares da categoria se integram facilmente aos seus
sistemas operacionais - pelo menos na maioria das vezes.
Um deles é o gratuito Virtual PC, que permite ao usuário rodar em um
computador com Windows versões antigas da plataforma ou mesmo outros sistemas
operacionais, como distribuições Linux. Aqui, a ideia também é a de permitir ao usuário
avaliar outros sistemas operacionais, realizar testes em softwares, enfim.
Mas o destaque mesmo fica por conta do Hyper-V, uma solução de virtualização
que é integrada à linha de sistemas operacionais para servidores da empresa (como o
Windows Server 2012), embora também funcione em determinadas versões para uso
doméstico ou em escritórios.
Tendo como base o conceito de hypervisor, o Hyper-V consegue lidar com
vários cenários de virtualização, inclusive aqueles de alto desempenho, podendo
trabalhar, por exemplo, com data centers virtuais.
Entre os vários recursos do Hyper-V estão uma funcionalidade que permite
passar máquinas virtuais de um servidor para outro (para que o primeiro seja reparado,
por exemplo) e a capacidade de criar réplicas - é possível ter um número ilimitado de
"cópias" de virtual machines para utilizá-las em testes ou cobrir imediatamente um
serviço
que ficou indisponível.
Xen
Xen é outro nome bastante forte quando o assunto é virtualização. Trata-se de
uma solução baseada em VMM que teve seu desenvolvimento promovido pela
9
Universidade de Cambridge, no Reino Unido. O projeto é compatível com várias
plataformas e arquiteturas.
Disponibilizado como software livre, o Xen é gratuito e o seu código-fonte pode
ser acessado por qualquer pessoa. Por isso, seu uso é bastante difundido no meio
acadêmico e por entusiastas de sistemas Linux, por exemplo.
Em 2007, a XenSource, companhia que mantinha o projeto, foi comprada
pela Citrix, outra grande empresa do segmento de virtualização. Assim, também é
possível encontrar soluções pagas desta que levam o nome Xen.
VirtualBox
O Virtual Box um projeto iniciado em 2007 por uma empresa alemã de nome
Innotek, mas que hoje pertence à Oracle. Sua proposta é a de permitir ao usuário rodar
um sistema operacional dentro do outro sem enfrentar complexidade.
Há versões do software para os principais sistemas operacionais do mercado, como
Windows, OS X e distribuições Linux. A versão mais importante do VirtualBox tem
código-fonte aberto e é gratuita, mas a Oracle disponibiliza edições para uso corporativo
que exigem pagamento de licenças.
Desvantagens da Virtualização
A infinidade de soluções e métodos disponíveis faz com que a virtualização
atenda às mais variadas necessidades, como você já sabe, mas também não podemos
entender o conceito como um "remédio milagroso" para todos os problemas de TI.
Dependendo das circunstâncias, a virtualização também pode ter desvantagens. Eis
algumas:
Sobrecarga afeta a todas as máquinas virtuais: para começar, a quantidade de
máquinas virtuais que um computador pode suportar não é ilimitada, razão pela
qual é necessário encontrar um equilíbrio para evitar sobrecarga, do contrário, o
desempenho de todas as máquinas virtuais será afetado;
Segurança: se houver uma vulnerabilidade de segurança no VMM, por
exemplo, todas as máquinas virtuais poderão ser afetadas pelo problema;
10
Portabilidade: dependendo da solução em uso, migrar uma máquina virtual
pode ser um problema. Um exemplo hipotético: quando um sistema utiliza
instruções AMD-V, mas precisa ser transferido para uma máquina Intel;
Contingência: em aplicações críticas, é importante ter um computador que
possa atuar imediatamente no lugar da máquina principal (como um servidor),
pois se esta parar de funcionar, todos os sistemas virtualizados que rodam nela
também serão interrompidos;
Desempenho: a virtualização pode não ter bom desempenho em todas as
aplicações, por isso é importante avaliar muito bem a solução antes de sua
efetiva implementação;
Gastos: pode haver gastos não previstos com manutenção, mão-de-obra,
treinamento, implementação e outros.
Apesar de se tratar de um conceito antigo - seu surgimento remete à década de
1960, como é informado no início do texto -, a virtualização tem ganhado grande
destaque nos últimos anos e certamente terá seu espaço em soluções computacionais
futuras.
Isso se deve ao fato de o poder de processamento do cenário atual ser elevado o
suficiente para que determinadas aplicações possam aproveitar a capacidade ociosa dos
computadores e também porque, com a informatização atingindo praticamente todos os
setores da sociedade, há cada vez mais experiência na identificação das melhores
soluções para cada necessidade.
BIBLIOGRAFIA SUGERIDA:
Virtualização - Componente central do Data Center
Virtualização de servidores Linux
11
Download