Ver Feed RSS

Mr_Dom

Virtualização de desktops, uma solução econômica?

Avalie este Post de Blog
Introdução

Nos últimos anos, com a evolução da informática, o poder de processamento dos computadores aumentou drasticamente. Entretanto existem casos em que todo esse processamento não está sendo utilizado pelas máquinas, fazendo com que exista uma subutilização dos recursos computacionais.

Preocupados em procurar soluções que visam a diminuição dessa ociosidade de processamento, os administradores de redes tem utilizado a técnica da virtualização. O uso da virtualização representa a ilusão de várias máquinas virtuais (VMs) independentes, cada uma rodando uma instância de um sistema operacional virtualizado (SMITH; NAIR, 2005).

Esta técnica não é nova, iniciou-se pela IBM nos mainframes na década de 60, mas seu uso foi difundido nos anos 80, tendo em vista a resolução de problemas a um custo relativamente baixo.

O sucesso da virtualização baseou-se em alguns princípios. Primeiramente, a camada de virtualização deve isolar uma máquina virtual da outra de modo que não haja interferência entre elas. Não é aceitável que o funcionamento de uma máquina virtual afete o desempenho de outra máquina virtual (GARFINKEL et al., 2003). Segundo, é necessário suportar uma variedade diferente de sistemas operacionais para acomodar os diferentes aplicativos populares existentes. Terceiro, o overhead introduzido pela camada de virtualização deve ser pequeno (GARFINKEL et al., 2003).

Atualmente os sistemas virtualizados estão com seu espaço em ascensão devido ao fato de resolverem alguns pontos que hoje são críticos em diversas empresas, como pode ser exemplificado: incompatibilidade entre hardware e software no que diz respeito a suas modificações com o decorrer do tempo; subutilização dos recursos computacionais pelos programas, ou seja, os programas legados não conseguem explorar a totalidade da capacidade dos hardwares atuais; dentro outros.

Virtualização é a palavra que faz brilhar os olhos dos executivos de TI de grandes empresas. Ela lidera o ranking das tecnologias, divulgado pelo Garther Consulting.

Formas da Virtualização

A virtualização é uma camada de interposição entre o software e o hardware. Dividindo os recursos de um computador em vários ambientes de execução. Existem três formas de virtualização: virtualização do hardware, virtualização do sistema operacional e virtualização de linguagens de programação.

Virtualização do hardware

Considerado um dos mais complexos modos de virtualização, devido a maneira que precisa emular o hardware. Esse tipo de virtualização torna-se muito útil para os desenvolvedores de firmware e hardware, uma vez que a funcionalidade de uma solução pode ser validada sem necessariamente ter o hardware real.

Virtualização do sistema operacional

Talvez a abordagem mais popular para implantação da virtualização seja a de rodar uma plataforma de virtualização com um SO host. Essa abordagem é mais conhecida como virtualização do SO (Desai, Anil, Gerenciamento de Plataformas Virtuais, 2007). A característica mais importante é que a camada de virtualização fica acima do sistema operacional do host.

Os softwares mais comuns dessa categoria são o VMware Server, Microsoft Virtual Server 2005, entre outros. Todos permitem a criação de um ambiente virtual isolado e independente, sendo assim uma grande vantagem do ponto de vista técnico,ou seja, o principal benefício de se trabalhar com camadas de virtualização é que elas podem aproveitar qualquer hardware que seja suportado pelo sistema operacional do servidor.

Virtualização de linguagens de programação

Esse tipo de virtualização nada mais é que a criação de uma máquina virtual para a interpretação da linguagem de programação, ela só é instanciada a partir do momento que necessito rodar determinada aplicação que use esse recurso. Como exemplo temos a linguagem Java.

Técnicas da Virtualização

A virtualização pode ser organizada basicamente em dois tipos: virtualização Total ou completa e paravirtualização.

Virtualização total

Na virtualização completa ou virtualização total, qualquer software pode ser executado sem alterações. Para isso existe a simulação completa do hardware, de modo que qualquer sistema operacional possa ser executado. A virtualização total ou completa faz uma simulação para representar conjuntos de instruções do processador, a memória principal, ou acesso aos demais dispositivos existentes.

Um ponto importante que deve ser considerado é esse tipo de virtualização necessita obrigatoriamente de um hardware com características específicas, uma vez que instruções de execução privilegiadas, como por exemplo, as de acesso a I/O, devem ser interceptadas e somente serem executados de acordo com os critérios definidos pela camada Virtual Machine Monitor (SURGEMAN et. AL., Virtualizing I/O Deviceson VMware Workstation's Hosted Virtual Machine Monitor, 2001).

Paravirtualização

Técnica que apresenta uma Application Programming Interface (API) para máquinas virtuais. Esta API é similar ao hardware, mas não idêntica ao real, com ela o desempenho das VM's que a utilizam aumenta. Para o funcionamento da técnica o sistema tem que sofrer modificações, com isso existe uma diminuição da portabilidade do sistema. Foi então proposta pelos desenvolvedores a criação das hypercalls, que são "system call" para o hypervisor (The Xen Source, 2006). Sendo assim, em vez das "system calls" do sistema operacional virtualizado atuarem diretamente sobre o hardware, elas atuarão sobre um hardware virtualizado.

Recompilação dinâmica

Conhecida também por tradução dinâmica, consiste basicamente na tradução das instruções de um formato para outro durante a execução de um programa. Um sistema pode empregar a recompilação como estratégia de otimização, uma aplicação da técnica é vista em compiladores Just-in-time, que traduzem de uma linguagem BYTECODE para código nativo da CPU.

Programas como o VMware Workstation utilizam essa técnica para aumentar o desempenho, a exemplo do Vmware é feita a recompilação de parte do código, uma vez que existe a possibilidade da execução nativa.

Um exemplo clássico de tradução dinâmica ocorre em interpretadores de linguagem como no Sun Jvm, linguagem JAVA. As instruções são geradas para a máquina virtual e armazenadas nos Bytecodes e depois traduzidas e executadas no hardware subjacente

Virtualização hoje

Virtualização não é um conceito novo, ela tem sido usada há décadas para os mais variados graus de complexidade de segurança e processamento distribuído (HAGEN, WILLIAM, 2008). Um dos usos de sistemas baseados em máquinas virtuais é a "virtualização dos terminais".

Em vez da utilização de vários equipamentos com seus respectivos sistemas operacionais, utiliza-se somente um computador com máquinas virtuais abrigando os vários serviços e aplicações.

Benefícios da utilização de máquinas virtuais

Muitos dos benefícios das máquinas virtuais utilizados nos mainframes também são consideráveis aos computadores pessoais.



Várias são as vantagens de seu uso:
  • Aperfeiçoamento de sistemas operacionais, usando a máquina virtual pode fazer testes sem afetar o sistema hospedeiro;
  • Auxílio no ensino prático de sistemas operacionais e programação ao permitir a execução de vários sistemas no mesmo equipamento;
  • Executar vários sistemas operacionais diferentes sobre o mesmo hardware;
  • Simular configurações e diversas situações do mundo real, a fim de aperfeiçoar sistemas ou hardwares;
  • Garantir portabilidade das aplicações;
  • Desenvolvimento de novas aplicações para arquiteturas diferentes;
  • Diminuição de custo com hardware, utilizando a consolidação de servidores;
  • Gerenciamento de fácil acesso;
  • Possibilidade de prover um serviço específico a um determinado cliente, como itens de segurança ou configurações extras sem afetar outros sistemas virtualizados ou sistema hospedeiro.
Dificuldades de implementação da virtualização

Apesar de todos os benefícios citados, a virtualização tem pontos que a deixam inviável para implementação de acordo com o caso.



Alguns itens que dificultam a implementação:
  • Processador não virtualizado: A arquitetura dos processadores Intel 32 não permite a virtualização. Segundo "Formal Requirements for Virtulizable Third Geration Architectures", uma arquitetura pode suportar máquinas virtuais somente se todas as instruções aptas a inspecionar ou modificar o estado privilégio da máquina forem executadas em modo mais privilegiado e puderem ser intersectadas (LAUREANO, MARCOS, 2008);
  • Arquitetura aberta: Como existe uma vasta quantidade de equipamentos (devido à arquitetura aberta do PC), o monitor de tarefas teria de controlar todos esses dispositivos, o que requer um grande esforço de programação;
  • Preexistência de software: Em mainframes, que são configurados por administradores, os desktops normalmente já vem com um sistema operacional ativo, que é justamente para o usuário final. Em um ambiente como esse, é de suma importância permitir que o usuário possa utilizar a tecnologia das máquinas virtuais, mas sem perder a estabilidade e facilidade de seu sistema padrão;
  • Maior necessidade de gerenciamento: à medida que cresce o número de sistemas virtualizados, o nível de gerenciamento aumenta com o mesmo rigor que qualquer sistema. Os administradores precisam dedicar mais tempo e esforços para gerenciar configurações, patches, níveis de software e segurança. Além de um monitoramento mais rigoroso em relação a desempenho, utilização de recursos. Com isso o custo de gerenciamento de ambientes aumenta significativamente;
  • Segurança e exposição a riscos: sem um controle adequado, os sistemas virtuais podem se tornar rapidamente portas alternativas não autorizadas para todo o ambiente corporativo de T.I. Como exemplo pode-se citar os hackers, que poderão acessar o ambiente facilmente se não for efetuada uma segurança de maior eficiência.
A grande desvantagem é o custo adicional de execução dos processos em comparação a máquinas reais e upgrade de equipamentos (LAUREANO,MARCOS, 2008).

Além de considerar as exigências especiais de hardware para SOs e aplicativos guest, o administrador de sistemas deverá se certificar que o computador host também seja suportado. Algumas soluções de virtualização de servidores apresentam exigências específicas de hardware para o computador host. Componentes como controladores de disco e adaptadores de rede deverão estar na lista de itens aprovados de hardware para serem suportados pelo fornecedor da virtualização (DESAI, ANIL, 2008).

Virtualização de desktops

A administração de desktops em qualquer organização sempre foi um desafio. Sempre preocupados em procurar meios para melhorar os processos, reduzir custos, aumentar desempenho e simplificar o gerenciamento, os administradores de redes vem procurando novas soluções para atender esses problemas.

Essa complexidade de gerenciamento deve-se ao aumento dos usuários - inclusive remotos e móveis - e as atividades de gerenciamento associadas, envolvendo manutenção, reparos e upgrades de computadores, bem como cada vez mais ameaças à segurança.

O gerenciamento de áreas de trabalho está passando por uma transformação necessária em direção a virtualização. A virtualização de desktops (VDI) está sendo uma solução que proporciona uma capacidade de gerenciamento e controle de nível corporativo com uma experiência familiar ao usuário.

O VDI permite que as aplicações rodem em máquinas virtuais isoladas e ao mesmo tempo compartilhem recursos de hardware como CPU, memória, disco e rede. Cada usuário roda sua aplicação em seu próprio sistema operacional, reduzindo as chances de que um outro usuário possa interferir na sua execução. A tecnologia de virtualização de desktops separa o hardware do software e o hypervisor encapsula a aplicação e o sistema operacional em uma máquina virtual que roda em um servidor.

O VDI é de fato um avanço em relação a soluções de Terminal Server, principalmente no aspecto referente à isolação do usuário final e independência de desempenho. Porém usuários que utilizam aplicações gráficas intensivas ou aplicações com requisitos de streaming de vídeo e áudio têm boas chances de não utilizar o VDI.

A ideia de utilização de VDI é para terminais em que existe uma grande ociosidade de processamento, fazendo com que não tenha o total aproveitamento dos recursos computacionais.

Hoje o principal fator para o encarecimento dos desktops é o operacional (manutenção, atualizações, suporte). Com isso o retorno do investimento (ROI) - cálculo que quantifica os custos e os benefícios esperados de um projeto específico em um prazo determinado - pode ter seu prazo estendido.

Vantagens de uso

Vantagens VDI

A ordem é virtualizar, enquanto muitos administradores de redes começam a perceber as vantagens da virtualização de servidores, existem ainda os que se perguntam sobre possíveis ganhos com a virtualização de desktops. As vantagens competitivas proporcionadas pelo VDI (Virtual Desktop Infrastructure) elevam potencialmente a eficiência do ambiente tecnológico de qualquer empresa.

A virtualização de desktops segue os mesmos princípios básicos das virtualização de servidores - que permitem executar múltiplos sistemas operacionais em uma única máquina (PC). Mas há diferenças bastante significativas, já que cada usuário conta com seu próprio sistema operacional, como se fizesse uso de uma estação de trabalho convencional (FILADORO, ADRIANO, 2007).



De uma forma clara, podemos citar algumas vantagens do uso de VDI:
  • Cada usuário tem seu próprio ambiente de trabalho;
  • Cada ambiente pode ser personalizado com diferentes aplicações, sem afetar os demais usuários;
  • O usuário tem um controle maior sobre o seu sistema operacional, podendo instalar ou excluir aplicações quando necessário;
  • Possibilidade de acesso remoto com segurança, é possível acessar o seu sistema a partir de qualquer lugar;
  • Maior eficiência: economia no espaço de armazenamento, custos gerais - como resfriamento, manutenção;
  • Backup em instantes: como o hard-disk é um arquivo, o backup é feito como se fosse copiar um arquivo para outra pasta;
  • Menor ociosidade: com o VDI você pode fazer o balanceamento de cargas para os micros, ou seja, disponibilizar mais processamento, memória ou disco quando necessário, com isso não haverá uma falta de aproveitamento de recursos.
Comparativos de ganhos de uso

Conhecidos os conceitos e todos os benefícios da VDI, o que ainda a torna um obstáculo é o custo de implementação, não que seja um custo elevado, mas existe um cálculo para saber se é viável fazer a migração de desktop físico para o virtual.

O custo real por máquina virtual não é fixo, depende de quais produtos serão utilizados para a implementação da solução, não pode ser feita a implementação sem uma análise do parque de máquinas, bem como o objetivo que quer ser alcançado com a virtualização.

O objetivo da análise é tornar a VDI a mais viável possível, pois existem muitas variáveis a serem questionadas, como exemplo podem ser citados: consumo de energia, quantidade de desktop físico, quantidade que deseja virtualizar, porcentagem de ociosidade, entre outras.

Conclusão

O VDI é de fato um avanço em relação a soluções de Terminal Server, principalmente no aspecto referente à isolação do usuário final e independência de desempenho. Porém usuários que utilizam aplicações gráficas intensivas ou aplicações com requisitos de streaming de vídeo e áudio têm boas chances de não utilizar o VDI.

A ideia de utilização de VDI é para terminais em que existe uma grande ociosidade de processamento, fazendo com que não tenha o total aproveitamento dos recursos computacionais.

Hoje o principal fator para o encarecimento dos desktops é o operacional (manutenção, atualizações, suporte). Com isso o retorno do investimento (ROI) - cálculo que quantifica os custos e os benefícios esperados de um projeto específico em um prazo determinado - pode ter seu prazo estendido.

Complemento

Comentário enviado por gesousa em 02/05/2009 - 13:33h:

Seu Artigo ficou muito bom, só senti falta de mencionar a solução de virtualização Kernel-based Virtual Machine (KVM), que hoje é a única que se encontra de forma oficial incorporado no kernel do linux, e utiliza uma forma híbrida de paravirtualização, mas tem algumas características interessantes.
É um programa no espaço do usuário que utiliza a interface /dev/kvm para configurar a maquina virtual convidada, que repassam através da interface as informações para o host.
Atualmente é mantida pela RED HAT, é um das grandes vantagens desta plataforma, foi ser a primeira a conseguir a migração de VM entre plataformas diferentes Intel/AMD em tempo real. há um video demostrando a migração em tempo real.



Outro ponto apenas para demostrar a importância da virtualização no mercado de TI atualmente é que todas as tecnologias de virtualização, foram recentemente adquiridas por grandes players da TI mundial em questões de meses.

VMware -> EMC
VirtualBox -> Sun Microsystems
XEN Server -> Citrix
KVM -> Red Hat



Fonte: http://www.vivaolinux.com.br
Autor: Bruno Macagnani

Atualizado 08-05-2009 em 09:03 por Mr_Dom

Categorias
Não Categorizado

Comentários

  1. Avatar de info24hs
    Interessante a matéria, mas fico pensando:

    O que aconteceria com um servidor virtualizado na hora de uma pane, ficaria o resto dos sistemas paralizados, por exemplo: a queima de um HD, uma fonte, todos os outros sistemas parariam! Vamos ir mais longe, e se perde-se os dados do HD, quanto tempo ficaria parado todo o sistema para recuperar os dados..

    Ótimo artigo!
    Parabéns..

+ Enviar Comentário