sexta-feira, 11 de janeiro de 2013

Virtualização de servidores

Olá amigos!!!
Estava meio afastada mas acho que começarei a fazer postagens mais regulares e apesar de gostar de vários assuntos vou começar a me dedicar a minha área de atuação que é a informática.
Então vamos ao primeiro tema que foi um do meus trabalhos acadêmicos.



O que é Virtualização?

 A virtualização é um termo geral usado para descrever várias tecnologias que dividem os recursos de hardware em múltiplos ambientes, aplicando um ou mais conceitos ou tecnologias.
Na virtualização existem as instruções privilegiadas e não privilegiadas. As instruções não-privilegiadas são aquelas que não modificam a alocação ou o estado de recursos compartilhados por vários processos simultâneos, tais como processadores, memória principal e registradores especiais. Em oposição a essas instruções, temos as instruções privilegiadas, que podem alterar o estado e a alocação desses recursos.
Em um ambiente virtualizado, também existem os conceitos, de sistema operacional hospedeiro e o de sistema operacional visitante. Sistema operacional hospedeiro (Host Operating System), refere-se ao sistema operacional nativo da máquina na qual ocorrerá a virtualização, ou seja, o sistema operacional que é executado diretamente sobre o hardware físico. Sistema operacional visitante (Guest Operating System), refere-se ao sistema operacional que é executado sobre o hardware virtualizado, ou seja, o sistema operacional que é executado na máquina virtual. Uma máquina na qual é feita a virtualização pode contar com apenas um Sistema Operacional hospedeiro sendo executado por vez. Com tudo, podemos ser executar vários Sistemas visitantes simultaneamente.
O Virtual Machine Monitor (VMM) é uma camada de software entre o hardware e o sistema operacional. O VMM é responsável pela virtualização e controle dos recursos compartilhados pelas máquinas virtuais, tais como, processadores, dispositivos de entrada e saída, memória, armazenagem. Também é função do VMM escalonar qual máquina virtual vai executar a cada momento, semelhante ao escalonador de processos do Sistema Operacional .
O VMM é executado no modo de supervisor, no entanto as máquinas virtuais são executadas em modo de usuário. Como as máquinas virtuais são executadas em modo de usuário, quando estas tentam executar uma instrução privilegiada, é gerada uma interrupção e o VMM se encarrega de emular a execução desta instrução.
 

Emulação, Simulação e Virtualização, Não Confundam!

 Muitas vezes a virtualização é confundida com emulação e simulação, porém são conceitos diferentes. De maneira simples, simulação é fazer algo se parecer ou funcionar como outra coisa. Na emulação um software é responsável por simular um computador real traduzindo todas as instruções. No caso da virtualização ocorre a multiplexação (combina múltiplas entradas num único terminal) do hardware real, possibilitando assim a criação de diversas máquinas virtuais que podem ser consideradas uma cópia idêntica e isolada do hardware real.

 Emulação ou Simulação

 Alguns pesquisadores não consideram a emulação como um tipo de virtualização. Esta técnica utiliza-se de um sistema operacional host ou hospedeiro. Nesta técnica, o software de virtualização é comumente chamando de VMM (Virtual Machine Monitor) ou Hypervisor e é visto como uma aplicação pelo host.
Exemplos: Qemu (roda sobre Linux), VirtualPC (roda sobre Windows) e alguns emuladores de vídeo-games.
 Figura 2: Virtualização de servidores utilizando emulação.

 Virtualização Nativa ou Virtualização Cheia

 É uma camada de software que simula todos os dispositivos de hardware de um computador. Também conhecida como virtualização completa. Nesta situação o VMM controla o hardware, simula todos os dispositivos de hardware de um computador e disponibiliza um ambiente propício às maquinas virtuais. Neste ambiente, cada maquina virtual se comporta como se fosse uma máquina real, ou seja, uma maquina física e tem a "ilusão" de estar rodando sobre um hardware exclusivo. Assim, cada maquina virtual "pensa" que trabalha isoladamente no hardware e pode rodar o seu próprio sistema operacional sem modificações. Cabe ao VMM evitar que uma maquina virtual execute operações de hardware que possa prejudicar as outras maquinas virtuais ou a maquina física.

Exemplos: Xen e o VMware

 Figura 3: Virtualização de servidores utilizando nativa.

 Paravirtualização

 A paravirtualização é um método que consiste em apresentar ao sistema operacional que está sendo emulado uma arquitetura virtual que é similar, mas não idêntica, à arquitetura física real. Neste modelo a VM sabe que está rodando sobre o VMM e interage com ele. O objetivo disso é que uma boa interação entre o VMM e a maquina virtual pode acarretar em um ganho substancial no desempenho desta. A paravirtualização pode ser implementada de três maneiras diferentes como visto a seguir.
Exemplo: XEN, VMware, VirtualBox e o Hyper V.

Primeiro sub-tipo:

Para possibilitar a comunicação mais rápida entre a VM e o hardware, o VMM acessa as APIs (Interface de Programação de Aplicativos) do sistema hospedeiro e repassa algumas partes dessas APIs para a VM. Para que o acesso às APIs funcione corretamente, é necessário fazer alterações no kernel do Sistema Operacional da VM.
 Figura 4: Virtualização de servidores utilizando paravirtualização (primeiro tipo).

Segundo sub-tipo:

Neste sub-tipo o hardware é acessado diretamente pela VM. Para que isso seja possível são necessárias modificações no sistema hospedeiro e no VMM. Neste caso é utilizado um driver de dispositivos específicos.
 Figura 5: Virtualização de servidores utilizando paravirtualização (segundo tipo).

Terceiro sub-tipo:

Neste sub-tipo de paravirtualização, o hardware é acessado diretamente pelo VMM. Para possibilitar esse acesso, um driver de dispositivos específicos é instalado no sistema hospedeiro.
 Figura 6: Virtualização de Servidores utilizando paravirtualização (terceiro tipo).

 Virtualização no Nível do Sistema Operacional

 Permite a criação de maquinas virtuais no nível do sistema operacional. Este tipo de virtualização não emprega VMM (hypervisors). Em vez disso, a capacidade de virtualização é parte do sistema operacional do hospedeiro que executa todas as funções de um VMM. Assim, é possível ter varias maquinas virtuais isoladas e seguras em um único servidor físico. Nesta técnica, o sistema operacional das maquinas virtuais e do hospedeiro devem ser iguais.
Exemplos: ParallelsVirtuozzo e UserMode Linux.
Figura 7: Virtualização de servidores no nível do sistema operacional.

 Virtualização por Hardware

 Chamamos virtualização de hardware quando o hardware da maquina host provê recursos para a virtualização, ou seja, como o nome sugere, não existe um software que implementa a virtualização.

 Propriedades Básicas da Virtualização

 ·        Particionamento: é a capacidade de partilhar o hardware físico.
Isolamento: representa a separação entre máquinas virtuais em execução e uma máquina física. Um processo de máquina virtual não pode interferir em outra máquina virtual.
·        Encapsulamento: na virtualização, uma máquina virtual é implementada na forma de arquivo ou conjunto de arquivos. Esse arquivo, ou conjunto de arquivos, contém o hardware virtual, o sistema operacional e as aplicações instaladas.
 ·     Desempenho: por inserir uma camada extra de software, pode haver um comprometimento no desempenho de um Sistema Operacional (SO), porém este é compensado pelos benefícios adquiridos com o uso da virtualização.
·     Gerenciabilidade: capacidade de gerenciar uma máquina virtual independente das outras máquinas virtuais.
·    Compatibilidade de software: todo software escrito para executar em uma determinada plataforma deve ser capaz de rodar em um máquina virtual que virtualiza essa plataforma.
   Eficiência: instruções que não comprometam o hospedeiro podem ser executadas diretamente no hardware.

O que Ganhamos com Isso?

  •      A virtualização possibilita um melhor uso dos recursos, eliminando a necessidade de grandes ambientes climatizados e cheios de máquinas, que com o passar do tempo, seriam sucateadas. Além disso, é possível uma redução do consumo de energia e de manutenção (POLLON, 2008).

  •  A virtualização reduz o tempo de indisponibilidade dos servidores e elimina a necessidade de compra de equipamentos, restringindo somente para o caso de ser necessária a reposição.
  •   A maioria dos produtos de criação de cópias de segurança/restauração suportam a recuperação dos Sistemas Operacionais (SOs) e aplicações dos servidores físicos instalados como VMs.
  •    O uso de Virtual Desktops pode reduzir custos, enquanto permite manter o controle do ambiente cliente e fornece camadas adicionais de segurança sem custos adicionais.
  •   As máquinas virtuais (VMs) são ideais para criação e distribuição de ambientes de teste para viabilidades de soluções (Proof of Concept – POC) de forma segura e confiável. Caso esse ambiente criado obtiver sucesso, sua transferência para um ambiente produtivo torna-se fácil e relativamente rápida, sem ter que reconstruir o ambiente.
  •   A facilidade de gerenciamento oferecido pelas soluções de virtualização diminui o número de máquinas físicas, facilitando o trabalho dos técnicos responsáveis.
  •    A utilização eficiente dos recursos de processamento, memória e espaço de armazenamento e físico. Desta forma, pode-se criar vários sistemas heterogêneos ou não, isolados em um único hardware, obtendo-se uma melhor utilização de seus recursos.
  •    Possibilitar a criação de vários ambientes em um único hardware, permitindo que tarefas como consolidação de aplicações, consolidação de servidores e migrações entre ambientes sejam executadas sem riscos, e, em sua grande maioria, eliminando a necessidade de aquisição de um novo hardware.

O que Perdemos com Isso?

  • Segurança: Segundo Neil MacDonald, especialista de segurança da Gartner, hoje em dia, as máquinas virtuais são menos seguras que as máquinas físicas justamente por causa do VMM. Este ponto é interessante, pois se o sistema operacional hospedeiro tiver alguma vulnerabilidade, todas as máquinas virtuais que estão hospedadas nessa máquina física estão vulneráveis, já que o VMM é uma camada de software, portanto, como qualquer software, está sujeito a vulnerabilidades.
  •  Gerenciamento: Os ambientes virtuais necessitam ser instanciados, monitorados, configurados e salvos. Existem produtos que fornecem essas soluções, mas esse é o campo no qual estão os maiores investimentos na área de virtualização, justamente por se tratar de um dos maiores contra-tempos na implementação da virtualização.
  •  Desempenho: Atualmente, não existem métodos consolidados para medir o desempenho de ambientes virtualizados. No entanto, a introdução de uma camada extra de software entre o sistema operacional e o hardware, o VMM ou hypervisor, gera um custo de processamento superior ao que se teria sem a virtualização. Outro ponto importante de ressaltar é que não se sabe exatamente quantas máquinas virtuais podem ser executadas por processador, sem que haja o prejuízo da qualidade de serviço.

Referências:

- POLLON, Vanderlei – Virtualização de servidores em ambientes heterogêneos e distribuídos – estudo de caso, 2008. Dissertação (Especializado em Tecnologias, Gerência e Segurança de redes de computadores) – Universidade do Rio Grande do Sul, Rio Grande do Sul.

- http://www.gta.ufrj.br/grad/08_1/virtual/index.html - Último acesso 25 de outubro de 2012.

Nenhum comentário:

Postar um comentário