• Nenhum resultado encontrado

3. Conceitos Centrais

3.8. Desempenho e Benchmarks

A virtualização é uma técnica que permite que um sistema computacional (nativo) execute vários outros denominados de máquinas virtuais (convidados). Cada máquina virtual, por si só, é um ambiente de execução isolado e independente das demais. Com isso, cada máquina virtual pode ter seu próprio sistema operacional, aplicativos e serviços de rede. O sistema operacional nativo pode ser diferente daquele utilizado pelo convidado.

q

q

q

Como a virtualização consiste basicamente em pôr uma camada de software a mais em um sistema computacional, a questão sobre o quanto isso afeta o desempenho final é imediata. Estudos feitos pela VMware e pela XenSource apontam para uma queda de desempenho causada pela presença do hypervisor , em geral, entre 2% e 10%, com algumas situações impondo perdas maiores. Cabe ressaltar que esses resultados foram obtidos usando benchmarks genéricos.

Os fabricantes envolvidos com a virtualização, e não são poucos, estão fazendo muitos esforços no sentido de reduzir a queda de desempenho acarretada pela camada de virtualização.

Para que haja uma forma padrão, e isenta, de avaliar o desempenho das diversas plataformas, há um comitê específico (SPEC Virtualization Committee) trabalhando na definição de uma suíte de benchmark para a virtualização. Como produto gerado pelo comitê, foi criado o SPECvirt_sc2010, que pode ser encontrado no site SPEC.org. O SPECvirt_sc2010 é focado em benchmarks de servidores virtualizados. Outro produto para benchmark é o VMmark, um freeware disponibilizado pela VMware .

3.9. Limitações

As principais limitações e dificuldades apontadas para utilizar a virtualização são:

Aplicativos de carga excessiva: tais aplicativos, incluindo sistemas gerenciadores de bancos de dados, podem ser um fator limitante. Considerando que sempre existe uma perda de desempenho introduzida pelo hypervisor , se uma aplicação ou um sistema gerenciador de banco de dados já demanda boa parte dos recursos do servidor, qual seria a razão para virtualizar este servidor?

Gerenciamento do licenciamento: o gerenciamento do

licenciamento pode ser um fator limitante. É necessário saber exatamente a regra para cada aplicação, e isso é feito de maneira diferente pelos diversos fabricantes. Em uma determinada situação de carga, o licenciamento é válido; em outro, que utiliza uma outra configuração de hardware, pode não ser.

q

q

q

q

Falta de profissional especializado: como a virtualização é relativamente nova, ainda existem poucos profissionais experientes que dominem a técnica e as opções comerciais disponíveis. Esse aspecto deve ser considerado quando da escolha do software de virtualização.

3.10. Utilização

A virtualização pode ser utilizada de diversas maneiras para várias finalidades. Alguns dos possíveis usos são:

Implementar a consolidação e a contenção dos servidores de produção. Conter a proliferação de servidores com a execução de aplicativos de software em máquinas virtuais implantadas em um menor número de servidores de nível corporativo, escaláveis e confiáveis. As taxas de consolidação chegam a dez ou mais máquinas virtuais por processador físico, aumentando drasticamente a utilização dos servidores e contendo sua proliferação.

Propiciar a continuidade dos negócios por um custo reduzido. Proporcionar alta disponibilidade às aplicações críticas com soluções econômicas baseadas na virtualização. Pode-se implementar uma plataforma unificada de recuperação de desastres , permitindo que várias máquinas virtuais de produção sejam recuperadas no caso de uma falha de hardware, sem a necessidade de investir no caro mapeamento um-para-um entre o hardware de produção e o hardware de recuperação de dados. Simplificar o teste e o desenvolvimento de software. Consolidar ambientes distintos de desenvolvimento, teste e transferência, englobando diversos sistemas operacionais e aplicativos de vários níveis. Criar portais de autoatendimento para desenvolvedores, aumentando sua produtividade.

Proteger e gerenciar desktops corporativos. Proteger os desktops corporativos de forças de trabalho geograficamente dispersas, fornecendo uma imagem padrão de desktop corporativo em máquina virtual. Ao mesmo tempo, fornecer ambientes padronizados de desktops corporativos, hospedados em

Simplificar o provisionamento de infraestrutura. Reduzir o tempo necessário para provisionar nova infraestrutura com recursos sofisticados de automação. Os dispositivos virtuais combinam a simplicidade da implementação de software com os benefícios dos dispositivos pré-configurados. Centralizar o controle e a responsabilidade pelos recursos de hardware, ao mesmo tempo atribuindo às unidades de negócios e aos proprietários de aplicações o total controle sobre a forma como os recursos são utilizados.

3.11. Questões de Revisão

Diferencie workload de throughput. O que é a virtualização?

Explique como medir o desempenho da virtualização. Cite algumas limitações para utilização da virtualização. Cite alguns possíveis usos da virtualização.

3.12. Referências Bibliográficas

BITTMAN, Thomas J.; DAWSON, Philip; WEISS, George J. Magic Quadrant for x86 Server Virtualization Infrastructure. Gartner RAS Core Research Note G00200526. May 26, 2010.

BOWKER, Mark; GAHM, Jennifer; MCKNIGHT, John. Research Report: The Impact of Server Virtualization on Storage. ESG, 2007.

COMPUTERWORLD. Virtualização: eficiência sob medida. Executive Briefing.

FORRESTER CONSULTING. The Business Value of Virtualization: a commissioned study conducted by Forrester Consulting on behalf of VMware. Cambridge: Forrester Consulting, July 2009.

MICROSOFT. Leveraging Microsoft Optimization to Create Your Dynamic Roadmap. Microsoft, 2008.

RUEST, Daniel; RUEST, Nelson. Virtualization: a beginner’s guide. New York: McGraw Hill, 2009.

SILBERSCHATZ, Abraham; GALVIN, Peter; GAGNE, Greg. Sistemas Operacionais: conceitos e aplicações. Rio de Janeiro: Elsevier, 2000. VERAS, Manoel. Datacenter: componente central da infraestrutura de

TI. Rio de Janeiro: Brasport, 2009.

VMWARE. Building the Virtualized Enterprise with VMware Infrastructure. White paper. VMware, 2006.

q

4. Técnicas

4.1. Introdução

Um sistema de computação pode ser dividido em quatro grandes componentes: hardware, sistema operacional (SO), aplicativos e usuários. Esses componentes, por sua vez, são divididos em subcamadas. Para melhor entender o princípio de funcionamento da virtualização e os tipos de máquinas virtuais possíveis de serem criadas, é preciso conhecer aspectos básicos de dois desses componentes: hardware e sistema operacional (SO).

O sistema de computação foi concebido utilizando uma hierarquia com diferentes níveis de abstração e com interfaces bem definidas entre esses níveis, o que o permite evoluir rapidamente.

O uso de níveis de abstração e interfaces, tanto para os componentes do SO como para os componentes de hardware, permitiu que cada componente fosse visto como um subsistema independente oferecendo serviços para os demais. Dessa forma, os detalhes internos de implementação de cada um deles não precisam ser conhecidos: basta conhecer as interfaces e os serviços oferecidos. Ao mesmo tempo, ganha-se em simplificação e velocidade de atualização das plataformas.

4.2. Hardware

A arquitetura de computadores faz a descrição lógica e funcional dos componentes que formam o hardware de um sistema computacional e suas interações.

A arquitetura de computadores pode ser dividida em três grandes partes (CARISSIMI, 2009):

Conjunto de instruções de máquina (Instruction Set Architecture – ISA): é a abstração do processador através de seu conjunto de

q

q

q

q

instruções de máquina (assembly). Inclui, além das instruções, os modos de endereçamento possíveis e os registradores de máquina existentes.

Projeto do sistema: envolve os componentes externos ao processador, como barramentos, memória, controladores, arbitramento, subsistema de I/O e suas interconexões. Trata

ainda dos mecanismos de suporte necessários a

multiprocessadores, por exemplo.

Microarquitetura: é a descrição de como são constituídas as unidades internas de um processador e como elas são interligadas para implementar o conjunto de instruções. Diz respeito a como um processador é organizado internamente. Cada parte possui um nível de abstração que fornece um conjunto de serviços e uma interface. O conjunto de instruções (ou ISA) é a interface entre o nível de abstração de hardware e o SO. Essa interface é composta por todos os códigos de máquina aceitos pelo processador, que correspondem, cada um, a uma instrução.

Tipicamente, um processador possui pelo menos dois modos de operação, o não privilegiado e o privilegiado. A interface ISA é dividida em dois subconjuntos para refletir cada um desses modos de operação. User ISA: formado por todas as instruções de máquina que podem ser diretamente executadas por programas de usuário (instruções de usuário). Os programas de usuário são executados em modo não privilegiado.

System ISA: é constituído por aquelas instruções de sistema capazes de configurar o comportamento do próprio processador e de acessar componentes de hardware diretamente, como as instruções de I/O. Essas instruções são acessíveis unicamente em modo privilegiado e são executadas exclusivamente pelo núcleo (kernel) do sistema operacional.