Virtualizaçã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 à 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.
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. Segundo, é necessário suportar uma variedade diferente de sistemas operacionais para acomodar os diferentes aplicativos populares existentes. 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 Consunlting.
Virtualização, basicamente, é a técnica de separar aplicação e sistema operacional dos componentes físicos. Por exemplo, uma máquina virtual possui aplicação e sistema operacional como um servidor físico, mas estes não estão vinculados ao software e pode ser disponibilizado onde for mais conveniente. Uma aplicação deve ser executada em um sistema operacional em um determinado software. Com virtualização de aplicação ou apresentação, estas aplicações podem rodar em um servidor ou ambiente centralizado e ser deportada para outros sistemas operacionais e hardwares.
Abaixo, as formas mais comuns de virtualização:
-
virtualização de servidor — técnica de execução de um ou mais servidores virtuais sobre um servidor físico; permite maior densidade de utilização de recursos (hardware, espaço e etc), enquanto permite que isolamento e segurança sejam mantidos;
-
virtualização de aplicação — a virtualização de aplicação permite executar aplicações em um ambiente virtualizado no desktop do usuário, isolando a aplicação do Sistema Operacional; isso é possível através do encapsulamento da aplicação no ambiente virtual — quando a solução completa de virtualização de aplicações é implantada, é possível distribuir aplicações de um servidor central;
-
virtualização de desktop — consiste na execução de múltiplos sistemas operacionais em uma única Workstation e permitindo que uma aplicação de linha de negócio seja executada em um sistema operacional não compatível;
-
virtualização de apresentação — a virtualização de apresentação permite executar e manter o armazenamento das aplicações em servidores centralizados, enquanto provê uma interface familiar para o usuário em sua estação.
-
virtualização de perfil — com a virtualização de perfil, os usuários podem ter os documentos e perfil separados de uma máquina específica, o que permite a fácil movimentação do usuário para novas estações em caso de roubo ou quebra de equipamento; a virtualização de perfil também permite ter uma experiência de desktop única quando utilizando outras tecnologias de virtualização, como VDI.
Um dos componentes críticos para a implantação de um projeto de virtualização, independente da tecnologia utilizada, são as ferramentas de gerenciamento. As ferramentas que gerenciam o ambiente Virtual devem gerenciar tanto o ambiente físico como o virtual, assim como Sistema Operacional e Aplicações.
As instruções de virtualização são processadas em variáveis locais utilizando um modelo principal modelo de computação, usualmente cada stack machine, register machine, ou Random access machine são chamadas de máquina memória. A utilização destas três técnicas é motivado por técnicas de otimização de máquinas virtuais e máquinas físicas, como a facilidade utilização do interpretador, compilação e verificação para a segurança.
A administração dos 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 números de usuários - inclusive remotos e moveis - 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.
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.
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 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.
Atualmente as ferramentas para esse tipo de trabalho são inúmeras,dentre elas as mais comuns são para a virtualização de desktops, podemos citar as mais conhecidas como o Microsoft Virtual PC, programa gratuito e de fácil uso, outro programa de uso extremamente fácil e gratuito é o Virtual Box, com sua licença GNU.
Existe também o VMware, que usa o conceito da virtualização completa, uma característica do VMware é que ele tenta sempre que possível converter os comandos usados pelo sistema dentro da VM em comandos que o Host entenda e execute diretamente, ou seja, se dentro de uma VM o Windows tenta executar algum arquivo de som, o VMware captura esses dados e o executa na placa de som do micro hospedeiro, como se fosse um programa qualquer.
As empresas vêm utilizando não somente uma ferramenta de virtualização, mas várias para solucionar até problemas idênticos. Isso se deve ao fato das características de cada ferramenta, como modo de trabalho com o hardware, arquivos. Segundo pesquisas da levantamento feito pela revista EMA, o uso do VMware está em 80% dos casos de virtualização.
Benefícios da virtualização
Você já conhece algumas das vantagens da virtualização, mas a sua utilização oferece vários outros benefícios. Os principais são abordados a seguir:
- 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;
- O parque de máquinas é menor: 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. Imagine o impacto que esta vantagem pode ter em um data center, por exemplo;
- Gerenciamento centralizado: dependendo da solução de virtualização utilizada, fica mais fácil monitorar os serviços em execução, já que o seu gerenciamento é feito 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 companhia, 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 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.
Como a virtualização funciona?
Uma solução de virtualização é composta, essencialmente, por dois "protagonistas": o hospedeiro (host) e o hóspede ou convidado (guest). Podemos entender o hospedeiro como sendo o sistema operacional que é executado por uma máquina física. O hóspede, por sua vez, é o sistema virtualizado que deve ser executado pelo hospedeiro. A virtualização ocorre quando estes dois elementos existem.
A forma como hospedeiro e hóspedes 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 hospedeiro que recebe os sistemas a serem virtualizados, controlando os seus recursos e mantendo-os "invisíveis" em relação aos outros.
Para que possa fazer o seu trabalho, o VMM tem um tratamento diferenciado: ele pode ser executado no "modo supervisor", enquanto que programas comuns (aplicativos) rodam no "modo usuário".
No "modo supervisor", o software pode requisitar instruções que lidam diretamente com certos recursos hardware, como funcionalidades específicas do processador.
No "modo usuário", estes recursos mais críticos não podem ser acessados diretamente, cabendo ao sistema operacional, 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 hóspede é executado em "modo usuário", mas como a máquina virtual possui um sistema operacional, qualquer requisição de instrução mais crítica solicitada por este é "interceptada" pelo hypervisor, que se encarrega de fornecê-la.
Virtualização de Servidores / Virtualização de Sistema Operacional
A virtualização de servidores permite executar diversos sistemas operacionais simultaneamente no mesmo hardware, que são chamados de máquinas virtuais. Uma das características é o mascaramento dos recursos físicos (incluindo processadores, quantidade de memória, interfaces de rede), o que permite diminuir a administração de drivers nas máquinas virtuais, e transferir uma máquina virtual entre servidores físicos diferentes sem se preocupar com o hardware – técnica chamada de vMotion, XenMotion ou Live Migration, dependendo do fabricante. Os principais hypervisors da atualidade para virtualização de servidores são: VMware ESX, Microsoft Hyper-V, Citrix Xen Server, Oracle Virtual Box e RedHat KVM.
Virtualização de Storage
A virtualização de storage se aplica normalmente a equipamentos específicos, conhecidos como Storages, o que permite que múltiplos equipamentos sejam reconhecidos e gerenciados como um só. Normalmente também acompanha recursos avançados, como a abstração dos HDs dentro desses equipamentos, permitindo movimentar os dados entre tipos de HDs diferentes ou RAIDs diferentes, para aumentar a performance ou espaço disponível conforme necessidade.
A virtualização de storage ainda pode ser implementada via software, sendo que alguns permitem compartilhar recursos de múltiplos servidores para criar um único pool de armazenamento, aumentando a performance geral e a resiliência contra problemas.
Um exemplo de virtualização de storage via software, é o VMware VSAN. Exemplos de Storages virtualizados são o Dell Equallogic e o Dell Compellent.
Virtualização de rede
A virtualização de rede consiste em separar uma camada física de rede em diversas camadas lógicas, isoladas entre si, para fins distintos. A primeira implementação comercial amplamente adotada foi estabelecido pelo IEEE 802.1q, comercialmente chamada de VLAN. Ela permite a criação de diversas camadas dentro de uma rede física, que podem ser propagadas entre os switches, isolando e priorizando tráfegos específicos, como VoIP, sistemas críticos e rede de backup.
Com o advento das placas de 10Gbits, se popularizou uma técnica chamada de partition, que consiste em dividir logicamente essas interfaces em várias camadas, que aparecem para o sistema operacional como interfaces de redes distintas. Cada interface do partition pode ter uma parte da banda reservada, com endereçamento físico exclusivo, o que permite a criação do que é chamado de infraestrutura de rede convergente.
Além da capacidade de divisão da rede física em camadas lógicas, existem novas implementações que visam facilitar a gerência dessas redes, abstraindo todo o tráfego dos switches e transferindo a configuração para interfaces mais automatizadas, com o VMware NSX.
Virtualização de aplicação
Na virtualização de aplicação, uma camada de software instalado entre o sistema operacional e a aplicação virtualizada fica responsável pela abstração do sistema operacional, bibliotecas e drivers. O principal uso da virtualização de aplicações é para evitar a necessidade de instalação do aplicativo e a necessidade de validar todas as bibliotecas necessárias para a execução do mesmo.
Um aplicativo virtualizado normalmente é empacotado em um único arquivo, chamado de conteiner, que contém todas as bibliotecas necessárias para executar aquele aplicativo, e permite executar em computadores diferentes sem a necessidade de instalar todas as bibliotecas.
A virtualização de aplicativos também permite a coexistências de múltiplas versões do mesmo aplicativo ao mesmo tempo no mesmo computador, por exemplo, por questões de compatibilidade de sites, algumas empresas precisam executar uma versão específica e antiga do Internet Explorer, usando a virtualização, é possível que a URL daquele site execute uma versão do Internet Explorer virtualizada, enquanto que as estações podem ser atualizadas para sempre rodar a última versão nos demais sites, garantindo a segurança.
Exemplos de software para virtualizar aplicativos: VMware ThinApp
Virtualização de desktops
A virtualização de Desktops não é diferente da virtualização de Sistema Operacional e consiste em executar o sistema operacional do Desktop (Windows 7 ou Windows 8 por exemplo) em uma máquina virtual.
Pode ser executada dentro do próprio computador do usuário, mas isso exige que o computador tenha maiores recursos de CPU, espaço em disco e memória para permitir executar dois ou mais sistemas operacionais simultâneo. A grande utilidade nesse caso é para desenvolvedores, para terem acesso a diferentes versões do sistema operacional para testar o aplicativo. Um exemplo de software para virtualização de Desktop é o VMware Workstation e VMware Player.
Normalmente no ambiente empresarial a virtualização de Desktops é executada nos servidores, ou seja, o sistema operacional é executado no Datacenter, e o usuário final tem um desktop “cliente” mais modesto, como um Thinclient ou um Chromebook.
A vantagem nesse caso é o ganho de performance dos desktops, que podem ser executados em servidores de alta performance e com maior conectividade, melhora na gerência, centralização, melhora na segurança, conectividade em qualquer lugar, compatibilidade com dispositivos móveis como tables e smartphones, entre outras.