
Olá, pessoal! Quanto tempo! Bom, neste artigo vamos falar sobre virtualização: um assunto de importância crescente nos atuais ambientes de TI. O interesse na virtualização de servidores se deve à alta utilização de dados atualmente. Por exemplo, se um determinado volume de transações exige dez servidores na hora de maior movimento, mas apenas dois para o volume médio, o administrador da rede se vê diante de alguns dilemas:
- Atender todas as transações no horário de pico e com isso gastar cinco vezes mais recursos do que seria necessário para o volume médio de transações;
- Instalar apenas a capacidade necessária de equipamentos para o volume médio, porém suportar filas, reclamações e transações perdidas nos horários de pico;
A virtualização possibilita várias alternativas de alocação de serviços que permitem atenuar essa escolha:
- Se dois CPDs, em localidades geográficas distintas, possuem horários de picos diferentes, o excesso de tráfego de um pode ser desviado para outro nas situações de transbordo. Essa ideia pode também ser utilizada para um número significativo de CPDs;
- Máquinas de propósito geral (de multiuso) podem ser alocadas como servidores nos horários de pico, enquanto realizam outras tarefas nos demais horários;
- Um prestador de serviço que prevê situações de “alta utilização” pode fazer um contrato com outro prestador de serviço, alocando servidores sob demanda, apenas quando eles sejam realmente necessários.
Em todo caso, novas máquinas alocadas na função de servidores auxiliares ou complementares devem apresentar o mesmo ambiente operacional dos ambientes dos servidores principais. Por exemplo, se os servidores executam uma aplicação sobre o ambiente Linux, fica difícil alocar dinamicamente um servidor que trabalha com o sistema operacional Windows. As mudanças manuais são muito lentas para acompanharem as variações de tráfego de modernos servidores web, por exemplo.
A virtualização não é uma ideia recente. Suas origens remotas podem ser lembradas nos sistemas multiprocessados que oferecem a ilusão simultânea de diversos processos em uma única CPU. Quando essa ideia é estendida para outros recursos do computador (HD, Interface I O, etc.) tem-se a virtualização de recursos. Na prática, ela consiste em aumentar ou substituir as interfaces de um sistema operacional para que ele se comporte como outro sistema para as aplicações. Quando a virtualização começou a ser usada, sua principal missão era permitir que o software legado fosse executado sobre novos processadores e sistemas operacionais. Esses objetivos foram muito explorados, por exemplo, na família IBM 370, na qual era oferecido um sistema virtual portado para vários outros sistemas. A figura 1 ilustra essa abordagem de expandir as interfaces de um sistema operacional.

A virtualização aumenta de interesse à medida que o hardware evolui mais rápido que as aplicações. Também justifica o aumento do interesse na tecnologia, a evolução das redes de computadores e o aumento da taxa de transferência das redes. Hoje é viável pensar em migrar uma aplicação de um servidor para o outro em tempos semelhantes ao próprio tempo de processamento. E a taxa de transferência das redes só tende a aumentar. O principal contra-argumento da virtualização é o desempenho. As necessidades de camadas adicionais de software tornam mais lenta a execução das aplicações – o que em um caso extremo, pode anular a vantagem de um maior numero de servidores. Por este motivo, várias abordagens já foram propostas para a implantação de máquinas virtuais. Para entender a diferença entre elas, é importante perceber que um computador geralmente oferece várias interfaces de programação em diferentes níveis, como mostra a figura 2:

Esse tipo de estrutura permite que a virtualização ocorra de duas formas. A primeira é o modo mais clássico e consiste em definir um conjunto abstrato de instruções que serão chamadas pela aplicação virtualizada. Isso exige que o comportamento das chamadas de sistema também seja imitado – o que nem sempre é fácil conseguir. Esse primeiro tipo de virtualização é denominado máquina virtual de processo, uma vez que cada processo virtualizado poderá enxergar o seu próprio conjunto de instruções.
A figura 3 ilustra a arquitetura de um sistema desse tipo:

A outra solução, mais usada nos sistemas virtualizados atuais, prôve uma camada de software de virtualização entre o hardware e o sistema operacional. Essa interface pode ser oferecida simultaneamente a diferentes sistemas operacionais e, cada um deles, irá suportar as suas aplicações nativas. Os diversos sistemas operacionais rodam em um mesmo hardware e o gerenciamento de virtualização irá definir os critérios de divisão de recurso entre os vários sistemas operacionais e suas aplicações.
Essa segunda abordagem é chamada de monitor de máquina virtual e sua arquitetura é apresentada na figura 4:

Exemplos de sistema com VMM são o VMware e o XEN, atualmente muito usados em servidores virtualizados. As VMMs permitem um desacoplamento total de hardware e software, possibilitando a transferência total de um ambiente para outra máquina. Além disso, eventuais problemas de segurança ou falha de softwares em uma máquina não afetam as outras, devido a isolação de espaço e endereço provida pelo monitor de recursos.
Alguns usuários se preocupam com os custos do gerenciamento dos servidores virtuais. De fato, toda essa estrutura de virtualização será pouco utilizada se não for possível saber, em tempo real, o que está rodando em cada servidor e se não houver uma interface homem-máquina que facilite as intervenções manuais. Muitos problemas para o gerenciamento de servidores virtuais disponíveis são caros porque são gerenciadores de propósito geral que também monitoram servidores.
Uma solução mais simples (além de gratuita) pode ser desenvolvida com ferramentas como o Net-SNMP. Existem MIBs específicas para servidores virtuais que podem ser lidas nos principais monitores de máquinas virtuais disponíveis e seus dados apresentados em um browser http com um pequeno trabalho de programação. Dessa forma, a experiência de virtualização se torna mais rápida e muito mais econômica.
Nos próximos artigos abordarei mais assuntos ligados à virtualização e ao gerenciamento de ambientes virtuais. Até a próxima!
4 Comentários
Qual a sua opinião?