terça-feira, 19 de março de 2013

Entendendo um pouco sobre virtualização



Para realizar uma abordagem mais explicita do que é a virtualização, é interessante fazer uma breve reflexão do que se entende por máquina e como ela atende as solicitações do usuário. É normal que um usuário comum enxergue a máquina como simplesmente um equipamento que atenda as suas solicitações, e não deveria ser diferente, o objetivo é fornecer o máximo possível de praticidade em sua utilização, sem que esse venha a ter a necessidade de conhecimentos técnicos e complexos sobre o funcionamento do hardware.
Segundo Lowe (2009), um computador compreende do trabalho em conjunto do hardware e software. Em outras palavras, o hardware e software não trabalham separadamente, pelo contrário, eles são ligados e dependentes um do outro. Como já é esperado, em nível de hardware um computador possui vários componentes, como Central Processing Unit (CPU), memória, disco rígido, entre outros elementos. Agora em se tratando de software o computador requer um sistema que tenha a capacidade de gerenciar todos os recursos que o mesmo tenha a sua disposição e o torne prático de utilizar.
Tanenbaum (2009) comenta que o sistema computacional é visto como uma série de camadas partindo da mais complexa (inferior) para a mais amigável (aplicativos). Nesse sistema hierárquico em camadas, quem se encontra na camada mais baixa é o hardware com todo o seu nível de complexidade a ser compreendido pelo sistema operacional que vem logo a acima, e mais adiante os programas de interação com o usuário e os softwares aplicativos como ilustrado na figura apresentada abaixo.

Sistema computacional em camadas

Ao lado esquerdo da figura são indicados dois modos de operação para os softwares, o primeiro equivale ao Modo Núcleo designado para o sistema operacional e para os demais softwares o Modo é Usuário. Tanenbaum (2009) diz ainda que no Modo Núcleo a CPU disponibiliza todas as instruções que pode executar, por outro lado no Modo Usuário são disponibilizados apenas um subconjunto das instruções que o mesmo pode executar. A diferenciação entre os modos de operação acontece porque o sistema operacional é um gerenciador de todos os recursos do hardware, funcionando como uma ligação entre os softwares do usuário e o hardware propriamente dito.
Quando o usuário solicita, por exemplo, salvar um arquivo, o software usuário por si só nada faz, apenas envia uma requisição ao sistema operacional o qual interage com o hardware solicitando que esse por fim atenda ao pedido. Mas enquanto o usuário continua a utilizar o computador, o mesmo usa muito pouco da capacidade dos recursos disponíveis nesse equipamento, principalmente nos dias de hoje em que dispomos de máquinas cada vez mais robustas até mesmo para uso doméstico.
Lowe (2009) explica que para compreender a ociosidade dos computadores é preciso saber os conceitos sobre Hertz (Hz). Um Hz é um cliclo de algo a cada segundo. O segundo ponteiro do relógio desloca-se na verdade de um tique por segundo. Cada movimento é um ciclo completo, portando o segundo ponteiro opera na velocidade de um ciclo por segundo ou 1 Hz.
Associando a abordagem de Lowe e a ociosidade dos computadores, suponhamos que um usuário digite um caractere por segundo o que corresponde a 8 bits, equivalendo a uma velocidade de 8 bits por segundo ou ainda 8 Hz.
Alegando que o processador do computador do usuário em questão tenha a capacidade de processar ao menos um bilhão (1.000.000.000) Hz, ou seja, 1 GHz, o mesmo estará usando apenas 0,000000008% dos seus recursos disponíveis.
Sabendo da ociosidade das máquinas e como ocorre à interação homem-máquina, é chegada a hora de questionar o que pode ser feito para melhorar ainda mais a interação, otimização e eficiência dos recursos computacionais?
Daí eis que surge o conceito de virtualização em meados de 1965 despertada pela ideia de compartilhamento de tempo entre os processos e mais ainda em 1972 quando a International Business Machines (IBM) produziu um Mainframe com capacidade de executar simultaneamente vários sistemas operacionais sendo esses controlados por um programa chamado de hypervisor.
Inicialmente a experiência em virtualização não obteve muita demanda diante dos custos exorbitantes dos equipamentos, sem falar que pouco mais adiante foi posta no mercado a Arquitetura Cliente/Servidoro que influenciou o consumo de equipamentos com menos capacidade de processamento, menor custo e podendo trabalhar interconectados independentes de sua localização geográfica por meio dos sistemas distribuídos e VPN.
O que trouxe a virtualização a ser retomada com tanto afinco nos dias de hoje, foi uma consequência da prática do padrão de utilização de máquina com apenas uma finalidade, esse procedimento é usado com o intuído de diminuir as possibilidades de falhas entre os softwares da mesma, o que pode comprometer os serviços disponíveis na rede. Lowe (2009) afirma que a prática de um serviço por máquina continuou porque ela limita os efeitos das falhas e as interrupções em um único aplicativo. Tendo por consequência a subutilização dos recursos computacionais, incentivando a indústria e retomar o foco em serviços direcionados a virtualização.
A virtualização consiste em separar o hardware do software, a Virtual Machine (VM) é constituída da combinação entre aplicativos e o sistema operacional, sendo levada a pensar que possui um hardware próprio, quando na verdade esse é compartilhado com outras máquinas.
Com a virtualização a máquina passa a usar melhor seus recursos computacionais, podendo serem executadas várias VMs e cada uma fornecendo um serviço diferente na rede. Caso uma VM venha a falhar, apenas o serviço disponibilizado por essa será paralisado e as demais permanecem funcional como se nada houvesse ocorrido, sem falar que a recuperação de problemas passa a ser resolvido em curto prazo.
Além de resolver drasticamente os problemas envolvendo ociosidade, redução de custo com hardware e tempo de recuperação de falhas, a virtualização traz outros benefícios como economia em contratos de manutenção, refrigeração e energia, além disso, diminui o espaço físico, pois uma mesma máquina pode virtualizar várias outras, ou seja, mesmo ocupando o espaço físico de uma única máquina ela poderá servir  como várias máquinas virtuais, ficando as desvantagens presa apenas ao hardware onde as VMs estão alocadas, caso não haja redundância e backups para as mesmas.


Referências bibliográficas: 


LOWE, William J. VMware Infrastructure 3 para leigos. 1 ed. Rio de Janeiro: Alta Books, 2009.

TANENBAUM, Andrew S. Sistemas Operacionais Modernos. 3 ed. São Paulo: Pearson, 2009.


Nenhum comentário:

Postar um comentário