Você está na página 1de 14

CURSO DE LICENCIATURA EM INFORMÁTICA APLICADA

TÓPICO 02: VIRTUALIZAÇÃO

Amigo estudante! Já estamos entendidos acerca do que iremos estudar nesta disciplina
de Administração de Sistemas Operativos, pois não? Obviamente que a tua resposta
será “sim”, pois já sabes o que é administrar e, particularmente, administrar um SO. Já
sabes concretamente que actividades esperam-te como administrador de SO. Pois bem,
para podermos executar todas as actividades de administração de um SO, precisamos,
obviamente de um SO instalado em um computador. Isto significa que a nossa primeira
actividade deverá consistir na instalação deste(s) programa(s).

Para materializarmos esta nossa primeira actividade iremos recorrer a um processo que
permite-nos “criar um computador por cima de um outro”, ou seja, a virtualização.

Neste tópico iremos discutir sobre a virtualização, seus benefícios e seu funcionamento.
Iremos igualmente falar dos métodos de virtualização e do hardware na virtualização.
Trataremos de analisar algumas soluções de virtualização. No fim analisaremos as
desvantagens da virtualização.

Algumas abreviaturas a usadas neste texto

SO – Sistema Operativo;

SOs - Sistemas Operativos;

VM Virtual Machine;

MV – Máquina Virtual;

VMM - Virtual Machine Monitor;


MMV - Monitor de Máquina Virtual;

PVM - Process Virtual Machine;

OSVM - Operating System Virtual Machine;

MVs – Máquinas Virtuais

JVM - Java Virtual Machine

Conceito de Virtualização

A virtualização é uma solução computacional que permite a execução de vários


sistemas operativos e seus respectivos softwares a partir de uma única máquina,
seja ela um desktop convencional ou um potente servidor.

Já imaginaste ter “muitos computadores em uma só


máquina”? Pois é, a virtualização possibilita isso.

Muitas vezes quando é disponibilizada uma nova versão de


um SO ou uma outra família de SOs e queremos testar,
somos obrigados a formatar o nosso HD (Disco Duro),
correndo o risco de perder muita informação e, as vezes nem
chegamos a usar tal SO porque não foi ao encontro das
nossas expectativas. Com a virtualização podemos

Figure 1: Virtualização
Fonte: infowester.com

executar vários sistemas sem ter que formatar o nosso computador (claro que para isso
a nossa máquina física deve reunir requisitos como boa capacidade de armazenamento,
boa capacidade de processamento, memória, etc).
Um mainframe é um Uma das razões para o surgimento da virtualização é que, anos
computador de grande
porte capaz de realizar atrás, na época em que os mainframes dominavam o cenário
processamento de dados
tecnológico e não havia computadores pessoais, por exemplo,
complexos. Os mainframes
são usados como sistemas não existia a praticidade de "adquirir, instalar e usar um software"
centrais em grandes
organizações (empresas, - este era acompanhado de bibliotecas e outros recursos que o
instituições, etc.). tornavam quase que exclusivo ao computador para o qual foi
Saiba mais em: desenvolvido originalmente.
http://pt.okpedia.com/mai
nframe,
https://pt.wikipedia.org/wi
ki/Mainframe.
Desta forma, muitas vezes uma organização que implementava
um novo sistema via-se 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
Uma máquina virtual (MV),
do original em inglês final das contas.
virtual machine (VM), é
uma implementação de
ambiente computacional
onde pode‐se instalar e
executar um sistema A virtualização conseguiu resolver este problema: pode-se
operativo.
aproveitar um computador já existente para executar dois ou
A MV emula um
computador físico comum, mais sistemas distintos, já que cada um executa dentro de
onde as requisições de
sua própria máquina virtual. Evita-se, assim, gastos com novos
CPU, memória, disco, rede
e outros hardwares são equipamentos e aproveita-se os possíveis recursos ociosos do
geridos pela camada de
virtualização, que traduz computador.
essas requisições para o
hardware original.

Saiba mais em:


https://www.profissionaist
Nos dias de hoje, a virtualização permite, por exemplo, que uma
i.com.br/2014/07/o‐que‐
euma‐maquina‐virtual/ empresa execute vários serviços a partir de um único
servidor ou até mesmo que um utilizador doméstico teste um
SO em seu computador antes de efetivamente instalá-lo.
Benefícios da virtualização

Apesar de já teres conhecimento de algumas das vantagens da utilização da


virtualização, de certeza perguntas-te neste momento, se serão apenas aqueles? A tua
questão faz sentido, pois de facto existem outros mais benefícios da virtualização. Presta
atenção aos parágrafos que se seguem:

• 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;
• Redução do parque de máquinas na insttituição: 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. Imagina o impacto
que esta vantagem pode ter em um data center, por exemplo;

Figure 2: Aproveitamento de capacidade: uma máquina fazendo o papel de três


Fonte: infowester.com
• Gestão centralizada: dependendo da solução de virtualização utilizada, fica mais
fácil monitorar os serviços em execução, já que a sua gestão é feita 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;
• Uso de sistemas legados: pode-se manter em uso um sistema legado, isto é,
antigo, mas ainda essencial às atividades da organização, 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 pode surgir em uma delas - como uma
vulnerabilidade de segurança - não afetará as demais;
• Migração e ampliação mais fácil: mudar o serviço de ambiente de virtualização
é uma tarefa que pode ser feita rapidamente, assim como a ampliação da
infraestrutura.

Funcionamento da virtualização

Depois que já sabes o que é a virtualização e quais os benefícios que traz para a ciência
da computação, acredito, caro estudante, que a tua dúvida agora é: Então, como é que
isto funciona? Como é possível ter vários SOs a executarem na mesma máquina física?
Que magia será esta? Calma, já já compreenderás.

A virtualização é composta, essencialmente, por: um host (hospedeiro) e um guest


(hóspede). Entendamos o host como sendo o SO que está a ser executado pela nossa
máquina física. O guest, então, será o sistema virtualizado, isto é, aquele que deve ser
executado pelo host. A virtualização ocorre quando estes dois elementos existem.

A forma como host e guest 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 host que recebe os sistemas a serem virtualizados, controlando os
seus recursos e mantendo-os "invisíveis" e “independentes” uns dos outros.

Para que possa fazer o seu trabalho, o VMM tem um tratamento diferenciado: ele pode
ser executado no "modo supervisor", enquanto programas comuns (aplicativos) rodam
no "modo user".

No "modo supervisor", o software pode requisitar instruções que lidam diretamente com
certos recursos de hardware, como funcionalidades específicas do processador. No
"modo user", estes recursos mais críticos não podem ser acedidos diretamente, cabendo
ao SO, 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 guest é executado em "modo user", mas como a MV possui um SO, qualquer


requisição de instrução mais crítica solicitada por este é "interceptada" pelo hypervisor,
que se encarrega de fornecê-la.
Figure 3: Virtual Machine Monitor.
Fonte: infowester.com

Virtualização total e paravirtualização

A virtualização por meio de VMM é comumente dividida em duas técnicas: a


virtualização total (full virtualization) e a paravirtualização (paravirtualization).

Na virtualização total, o SO do guest funciona como se de facto houvesse uma máquina


física inteiramente à sua disposição. Desta forma, o sistema não precisa sofrer nenhuma
adaptação e funciona como se não houvesse virtualização. O problema é que esta
abordagem pode ter algumas limitações consideráveis. Uma delas é o risco de algumas
solicitações do guest 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 acedido por
não haver drivers na virtualização capazes de garantir sua plena compatibilidade.

A paravirtualização surge como uma solução para problemas desse tipo. Nela, o SO do
guest roda em uma máquina virtual similar ao hardware físico, mas não equivalente.

Com este método, o guest é 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 SO do guest 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 SO 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 que não há necessidade de alteração do sistema,


mas o procedimento fica sujeita aos problemas já mencionados. Assim, a adopção de
um modo ou outro depende de análises e testes que possam determinar qual é mais
vantajoso para determinado serviço.

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 PVM (Process Virtual Machine), o OSVM (Operating System Virtual
Machine) e a virtualização assistida por hardware.

Process Virtual Machine (Máquina Virtual de Processo)

Neste método, a MV funciona como uma aplicação qualquer rodando dentro do SO. Um
dos exemplos mais populares de MVs deste 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 VMM é uma camada de software diretamente ligada ao
hardware, por isso, permanece activo durante todo o tempo em
que o computador permanecer ligado. No PVM, a MV é tratada
como um processo, como o seu nome indica. Assim, quando a

sua execução é concluída, o ambiente da MV deixa de existir. Um processo é uma


instância de um programa de
computador em execução.
Ele contem o código do
programa e sua atividade
atual.
Operating System Virtual Machine (Máquina Virtual de Dependendo do SO, um
Sistema Operativo) processo pode ser
constituído de várias linhas
de execução que executam
Tú já sabes que um único computador pode suportar mais de uma instruções
concorrentemente.
MV, sem que uma saiba da existência da outra. O problema é que,
Saiba mais em:
muitas vezes, esta abordagem pode comprometero https://pt.wikipedia.org/wiki/
desempenho. Uma das maneiras de lidar com este problema é o Processo_(inform%C3%A1ti
ca)
uso da técnica OSVM - Operating System Virtual Machine
(Máquina Virtual de Sistema Operativo).

Aqui, a máquina física recebe um SO, 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 SO). Normalmente, um ambiente não sabe da
existência do outro.

As Máquinas Virtuais de Sistemas Operativos são bastante utilizadas, por exemplo, em


empresas de hospedagem de sites: cada ambiente é oferecido a um cliente como se
fosse um sistema exclusivo, quando, na verdade, o servidor está sendo compartilhado
com vários outros utilizadores.

Hardware na virtualização

Até agora, lidamos com a virtualização como sendo uma variedade de técnicas baseadas
em software. Contudo, nela o hardware também pode ter participação importante.
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 com 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 máquina virtual em uso.

Algumas soluções de virtualização

As mais conhecidas soluções de virtualização são: VMware, Microsoft, Xen e VirtualBox.

VMware

A VMware é uma empresa de origem norte-americana especializada em virtualização.


Os seus produtos são bastante conhecidos no mercado e atendem a aplicações dos
mais variados tamanhos. Um deles é o VMware Player, um software gratuito de
virtualização que permite ao utilizador doméstico criar uma MV para rodar outros SOs no
Windows ou no Linux. Assim, pode-se estudar um sistema, fazer testes de softwares,
entre outros.
Figure 4: Ubuntu Linux no Windows 7 por meio do VMware Player
Fonte: Fonte: infowester.com

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
SO - pelo menos na maioria das vezes.
Um deles é o gratuito Virtual PC, que permite ao utilizador rodar em um computador com
Windows versões antigas da plataforma ou mesmo outros SOs, como distribuições
Linux. Aqui, a ideia também é a de permitir ao utilizador avaliar outros SOs, realizar testes
em softwares, ...

Mas o destaque mesmo fica por conta do Hyper-V, uma solução de virtualização que é
integrada à linha de SOs 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 (como o Windows 8).

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 Universidade
de Cambridge, no Reino Unido. O projeto é compatível com várias plataformas e
arquiteturas. É disponibilizado como software livre e é gratuito. O seu código-fonte pode
ser acedido por qualquer pessoa. Por isso, o 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 VirtualBox é um projeto iniciado em 2007 por uma empresa alemã de nome Innotek,
mas que hoje pertence à Oracle. A sua proposta é a de permitir ao utilizador rodar um
SO dentro de outro sem enfrentar complexidade.

Há versões do software para os principais SOs 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

Amigo estudante. Acredito que conheces muito bem aquele velho ditado Segundo o qual
“onde há vantagens há desvantagens”. Pois é, no início deste texto mencionamos os
benefícios da virtualização. Porém, como na vida nem tudo é um mar de rosas, esta
solução não pode ser vista como a chave-mestre dos problemas de TI, dependendo das
circunstâncias, também pode ter desvantagens, senão vejamos:

• Sobrecarga afeta a todas as máquinas virtuais: para começar, a quantidade de


máquinas virtuais que um computador (físico) 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;

• 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.

Texto adaptado de: infowester.com

Você também pode gostar