Baixe o app para aproveitar ainda mais
Prévia do material em texto
Vitor Barbosa Paiva vitorbpaiva@hotmail.com O conceito de virtualização não é recente. Os primeiros passos na construção de ambientes de virtuais começaram no fim da década de 1950 e inicio da década de 1960. As maquinas virtuais foram originalmente desenvolvidas para centralizar os sistemas de computador utilizados no ambiente VM/370 da IBM. Apartir de então, a IBM desenvolveu vários sistemas comerciais que suportavam virtualização. Nestes sistemas, cada máquina virtual simula uma réplica virtual da maquina real e os usuários têm a ilusão de que o ambiente é mono-usuário, com seu próprio sistema completamente independente dos demais usuários. A utilização de máquinas virtuais está se tornando uma alternativa para muitos sistemas de computação, pois proporciona uma maior portabilidade, baixo custo, e maior segurança. A virtualização pode ser utilizada em servidores, indústrias de hospedam de páginas Web, linguagens de programação que são compiladas para maquinas virtuais. Maquinas virtuais também são utilizada por usuários finais que desejam executar dois ou mais sistemas operacionais ao mesmo tempo. Os sistemas de computadores são projetados com basicamente três componentes: hardware, sistema operacional e aplicações, assim como mostrado na figura: Cada sistema de computação possui sua plataforma padrao de comunicação como mostra a figura: Plataformas são diferentes e não compatíveis ente si: A solução para esta incompatibilidade é o uso de maquinas virtuais: Uma máquina virtual pode ser definida como "uma duplicata eficiente e isolada de uma maquina real". A IBM define uma máquina virtual como uma "cópia isolada de um sistema físico, e essa cópia está totalmente protegida" Máquina virtual pode ser uma camada de software permitirá o acoplamento entre interfaces distintas, de forma que um programa desenvolvido para a plataforma A possa executar sobre uma plataforma distinta B: A camada de virtualização constrói outra interface de mesmo nível, usando os serviços oferecidos por uma determinada interface de sistema, de acordo com as necessidades dos componentes de sistema que farão uso dela. A nova interface de sistema, vista através dessa camada de virtualização, é denominada máquina virtual. A camada de virtualização em si é denominada hipervisor ou monitor de máquina virtual. Um ambiente de máquina virtual consiste de três partes básicas: O sistema real, nativo ou hospedeiro (host system), que contém os recursos reais de hardware e software do sistema; O sistema virtual, também denominado sistema convidado (guest system), que executa sobre o sistema virtualizado; em alguns casos, vários sistemas virtuais podem coexistir, executando simultaneamente sobre o mesmo sistema real; A camada de virtualização, hipervisor, ou monitor (VMM – Virtual Machine Monitor), que constrói as interfaces virtuais a partir da interface real. Existem várias formas de implementar a virtualização: Virtualização completa: um sistema operacional convidado e suas aplicações, desenvolvidas para uma plataforma de hardware A, são executadas sobre uma plataforma de hardware distinta B. Emulação do sistema operacional: as aplicações de um sistema operacional X são executadas sobre outro sistema operacional Y, na mesma plataforma de hardware. Tradução dinâmica: as instruções de máquina das aplicações são traduzidas durante a execução em outras instruções mais eficientes para a mesma plataforma. Replicação de hardware: são criadas várias instâncias virtuais de um mesmo hardware real, cada uma executando seu próprio sistema operacional convidado e suas respectivas aplicações. As formas de implementar a virtualização citadas antes, são mostradas na figura seguinte: Existem dois tipos de hipervisores: Tipo 1 e Tipo 2: No hipervisor tipo 1 (ou monitor de maquina virtual), sua tarefa é gerenciar múltiplas cópias do hardware normal, denominadas máquinas virtuais, como processos que o sistema operacional gerencia. O Hipervisores tipo 1 funcionam em uma maquina convencional. A máquina virtual funciona como um processo de usuário no modo usuário e, como tal, não pode executar instruções sensíveis. Ela executa um sistema operacional hóspede que “acredita” estar no modo núcleo, embora, é claro, esteja de fato no modo usuário. Este é chamado de núcleo virtual. A máquina virtual também executa processos do usuário, que “acreditam” estar no modo usuário, de fato estão no modo usuário virtual. Executa diretamente sobre o hardware, sem um sistema operacional subjacente. O hipervisor tipo 2 que é completamente diferente do tipo 1. É simplesmente um programa do usuário funcionando sobre um sistema operacional, que funciona como um “interpretador” do conjunto de instruções da máquina nativa para o sistema hospede, e também cria uma máquina virtual. Em ambos os casos, o sistema operacional funcionando sobre o hipervisor é denominado sistema operacional hóspede. No caso do hipervisor tipo 2 o sistema operacional sobre o hardware é denominado sistema operacional hopedeiro. Existem dois tipos de máquinas virtuais: ◦ Máquinas virtuais de aplicação : são ambientes de máquinas virtuais destinados a suportar apenas um processo ou aplicação convidada específica. A máquina virtual Java e o ambiente de depuração Valgrind são exemplos desse tipo de ambiente. ◦ Máquinas virtuais de sistema : são ambientes de máquinas virtuais construídos para suportar sistemas operacionais convidados completos, com aplicações convidadas executando sobre eles. Como exemplos, temos os ambientes VMware e VirtualBox. Virtualização Total A virtualização total reconstrói um ambiente virtual no qual o hardware fornecido aos sistemas hospede corresponde a um sistema real existente. Toda a interface de acesso ao hardware é virtualizada, incluindo todas as instruções do processador e os dispositivos de hardware. Desta forma, os sistemas convidados não precisam sofrer nenhum tipo de alteração ou ajuste para executar no ambiente virtual. Esta é a abordagem usada na maioria dos hipervisores de sistema clássicos, como VMWare. Tradução dinâmica Nesta técnica, o hipervisor analisa, reorganiza e traduz as seqüências de instruções emitidas pelo sistema hospede em novas seqüências de instruções, à medida em que a execução do sistema hospede avança. Paravirtualização Possibilidade de modificar a interface entre o hipervisor e os sistemas convidados, oferecendo a estes um hardware virtual que é similar, mas não idêntico ao hardware real. Permite um melhor acoplamento entre os sistemas convidados e o hipervisor, o que leva a um desempenho significativamente melhor das máquinas virtuais. Atualmente existem varias aplicações para maquinas virtuais: Ensino Consolidação de servidores Planos de contingência Migrações de aplicações Confinamento de processos Segurança Virtualizaçao de sistemas VMWare VirtalBox Virtual PC QEMU Xen Virtualização de de Aplicações JVM – Java Virtual Machine Plataforma Microsoft .NET Todas as máquinas virtuais apresentadas permitem: Especificar o tamanho da memória na maquina virtual. O tamanho do HD virtual (dinâmico ou estático). Algumas até permitem especificar o número de núcleos do processador virtual. Hipervisor tipo 2 VMware Workstation: primeira versão comercial da máquina virtual, lançada em 1999, para ambientes desktop; VMware Fusion: versão experimental para o sistema operacionalMac OS com processadores Intel; VMware Player:versão gratuita do VMwareWorkstation, com asmesmas funcionalidades mas limitado a executar máquinas virtuais criadas previamente com versões comerciais; VMWare Server: conta com vários recursos do VMware Workstation, mas é voltado para pequenas e médias empresas; Hipervisor tipo 1 (ou nativo) VMware ESX Server: para servidores de grande porte, possui um núcleo proprietário chamado vmkernel e Utiliza o Red Hat Linux para prover outros serviços, tais como a gerência de usuários. Instalação de sistemas mais prática. Mais rapida. Mais simples a comunicação entre os perifericos. VirtualBox é um software de virtualização desenvolvido pela Oracle que, como o VMware Workstation, visa criar ambientes para instalação de sistemas distintos. Ele permite a instalação e utilização de um sistema operativo dentro de outro, assim como seus respectivos softwares, como dois ou mais computadores independentes, mas compartilhando fisicamente o mesmo hardware. O Microsoft Virtual PC 2007, da Microsoft, é um programa que emula um computador dentro do seu Windows. Assim sendo, em uma janela será possível abrir outro sistema operacional, como Windows, Linux, MS-DOS, e até criar um HD virtual, que será um arquivo salvo dentro da partição de seu Windows mesmo, podendo ser formatado com qualquer sistema de arquivos, sem interferir no sistema real. O QEMU é um hipervisor com virtualização completa. Não requer alterações ou otimizações no sistema hospedeiro, pois utiliza intensivamente a tradução dinâmica como técnica para prover a virtualização. É um dos poucos hipervisores recursivos, ou seja, é possível chamar o QEMU a partir do próprio QEMU. O hipervisor QEMU oferece dois modos de operação: ◦ Emulação total do sistema ◦ Emulação no modo de usuário Java Virtual Machine é uma virtualização de aplicações. Possibilita a portabilidade de softwares, pois o software roda sobre a JVM. Foi contatado que a utilização de maquinas virtuais está se tornando uma alternativa para vários sistemas de computação pelas vantagens em custo e portabilidade. O desafios para a utilização de maquinas virtuais vêm sendo superados devidos às várias pesquisas que estão sendo realizadas.
Compartilhar