ESCOLA SUPERIOR ABERTA DO BRASIL ESAB CURSO DE REDES DE COMPUTADORES MÁRCIO DA SILVA KLAUCK



Documentos relacionados
SISTEMAS OPERACIONAIS. Maquinas Virtuais e Emuladores

Sistemas Operacionais. Roteiro. Sistemas de Computadores. Os sistemas de computadores são projetados com basicamente 3 componentes: Marcos Laureano

Sistemas Operacionais 1/66

Virtualização Gerencia de Redes Redes de Computadores II

Aplicações. Sistema Operacional Hardware. Os sistemas de computadores são projetados com basicamente 3 componentes: Máquinas Virtuais e Emuladores

4 Estrutura do Sistema Operacional Kernel

Gabriel Oliveira do Nascimento Rogério Libarino Aguilar. UFF - Universidade Federal Fluminense

Introdução a Virtualização. Sergio Roberto Charpinel Junior Profa. Roberta Lima Gomes

ETEC RAPOSO TAVARES GESTÃO DE SISTEMAS OPERACIONAIS I. Máquina Virtual. Instalação de S.O. em dual boot. 1º Semestre 2010 PROF.

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V

Professor Esp.: Douglas Diego de Paiva

Prof. José Maurício S. Pinheiro UniFOA

Sistemas Operacionais

Virtualização e Criação de uma rede Virtual utilizando Virtual Box Professor: João Paulo de Brito Gonçalves

ATIVIDADE 1 MÁQUINAS VIRTUAIS. 1.1 Arquiteturas não virtualizadas

A SALA DE AULA é meu paraíso. Nela me realizo, nela exercito minha cidadania e nela me sinto útil.

Agenda. Histórico Máquinas virtuais X Emuladores Vantagens & Desvantagens Vmware Quemu Xen UML Comparação entre VM's Conclusão

Virtualização. O conceito de VIRTUALIZAÇÃO

ANDRE KUSUMOTO VIRTUALIZAÇÃO

Prof. Ms. José Eduardo Santarem Segundo Demonstrar o impacto que o tema virtualização tem representado no mercado

UNIVERSIDADE FEDERAL DE SANTA CATARINA UFSC DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA INE BACHARELADO EM CIÊNCIAS DA COMPUTAÇÃO.

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

A Academia Brasileira de Letras diz que este verbete não existe.

Laboratório de Redes. Professora Marcela Santos

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

Unidade III FUNDAMENTOS DE SISTEMAS. Prof. Victor Halla

FTIN Formação Técnica em Informática Módulo Sistema Proprietário Windows AULA 01. Prof. André Lucio

Executando o Modo Windows XP com Windows Virtual PC

FileMaker Pro 13. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 13

Soluções de Gerenciamento de Clientes e de Impressão Universal

Virtualização de Sistemas Operacionais

Introdução a Informática - 1º semestre AULA 02 Prof. André Moraes

Virtualização: VMWare e Xen

Sistemas Operacionais Introdução. Professora: Michelle Nery

FileMaker Pro 14. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 14

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource Rev: 02

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação

Consolidação inteligente de servidores com o System Center

Introdução. Sistemas Operacionais. Introdução. Roteiro (1 / 2) Por que Máquinas Virtuais Existem? Roteiro (2 / 2)

SISTEMAS DISTRIBUÍDOS

Conceitos Básicos de Rede. Um manual para empresas com até 75 computadores

TUTORIAL VMWARE WORKSTATION 8. Aprenda a instalar e configurar corretamente uma máquina virtual utilizando VMware Workstation com este tutorial

ESTUDO DE CASO WINDOWS VISTA

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Marcos Vinicios Marques Professor Cidão. Professor Marcelo Neves

Sistemas Operacionais

Sistemas Operacionais. Conceitos de um Sistema Operacional

Virtualização e Consolidação de Centro de Dados O Caso da UTAD António Costa - acosta@utad.pt

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

Admistração de Redes de Computadores (ARC)

Virtualização. Prof. Emiliano Monteiro

COORDENAÇÃO DE TECNOLOGIA (COTEC) ABRIL/2011

Organização do Curso. Instalação e Configuração. Módulo II. Pós Graduação em Projeto e Gerencia de Redes de Computadores

EAGLE TECNOLOGIA E DESIGN CRIAÇÃO DE SERVIDOR CLONE APCEF/RS

A computação na nuvem é um novo modelo de computação que permite ao usuário final acessar uma grande quantidade de aplicações e serviços em qualquer

5 Mecanismo de seleção de componentes

LICENCIAMENTO V14 USANDO REPRISE LICENSE MANAGER

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

11/3/2009. Software. Sistemas de Informação. Software. Software. A Construção de um programa de computador. A Construção de um programa de computador

Sistemas Operacionais

Virtualização - VMWare e Xen

O que é o Virto ERP? Onde sua empresa quer chegar? Apresentação. Modelo de funcionamento

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

A consolidação de servidores traz uma séria de vantagens, como por exemplo:

Procedimentos para Reinstalação do Sisloc

AULA 5 Sistemas Operacionais

Sistemas Operacionais

MANUAL DE INSTALAÇÃO 1) ORACLE VIRTUALBOX ; 2) MICROSOFT WINDOWS ; 3) SUMÁRIOS GENEPLUS.

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V

FileMaker Pro 12. Utilização de uma Conexão de Área de Trabalho Remota com o

Máquinas Virtuais com o VirtualBox


29/06/ :30 Leite Júnior QUESTÕES CESPE BACKUP

Processos (Threads,Virtualização e Migração de Código)

Soluções de Gestão de Clientes e Impressão Universal

Tipos de sistemas operacionais

CONCEITOS E APLICAÇÕES DA COMPUTAÇÃO EM NUVEM

NetEye Guia de Instalação

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

MANUAL TÉCNICO ISPBACKUP


TRABALHO COM GRANDES MONTAGENS

Kerio Exchange Migration Tool


Conceitos de Banco de Dados

SAIBA MAIS SOBRE O LINUX E DESCUBRA QUAL DISTRIBUIÇÃO É MELHOR PARA VOCÊ! CURSO

ISO/IEC 12207: Gerência de Configuração

Introdução Ciclo de vida tradicional de desenvolvimento Prototipagem Pacotes de software Desenvolvimento de 4ª geração Terceirização

VIRTUALIZAÇÃO CONVENCIONAL

Programa de Atualização de Pontos do Lince GPS

Virtualização. Presente e futuro

Sistemas Operacionais. Prof. André Y. Kusumoto

Instalando o Internet Information Services no Windows XP

Transcrição:

ESCOLA SUPERIOR ABERTA DO BRASIL ESAB CURSO DE REDES DE COMPUTADORES MÁRCIO DA SILVA KLAUCK VIRTUALIZAÇÃO DE SISTEMAS: Implementação com o VMware no Ambiente Servidor do Frigorífico Excelência VILA VELHA ES 2008

MÁRCIO DA SILVA KLAUCK VIRTUALIZAÇÃO DE SISTEMAS: Implementação com o VMware no Ambiente Servidor do Frigorífico Excelência Monografia apresentada à ESAB-Escola Superior Aberta do Brasil, sob a orientação do Prof. Dr. Jaime Roy Doxsey, para conclusão do Curso de Pós-Graduação Lato Sensu em Redes de Computadores. VILA VELHA ES 2008

MÁRCIO DA SILVA KLAUCK VIRTUALIZAÇÃO DE SISTEMAS: Implementação com o VMware no Ambiente Servidor do Frigorífico Excelência Aprovado em de de 200. VILA VELHA ES 2008

Dedico a Deus por me dar forças, e ser meu guia durante toda esta trajetória... Aos meus pais pelo incentivo e apoio continuo... A minha esposa Cristiane por compreender os diversos momentos em que tive de abdicar dela o tempo necessário para os estudos e desenvolvimento desta...

AGRADECIMENTO A ESAB por oportunizar de forma competente a continuidade de nossos estudos. Ao meu Orientador, aos colegas de trabalho Anderson e Douglas, por de uma forma ou de outra terem partilhado conhecimento possibilitando o desenvolvimento desta. A empresa Intercoop - Frigorífico Excelência por incentivar aos seus colaboradores quanto a importância da continuidade dos estudos.

RESUMO No cotidiano atual das empresas, figura a filosofia da alta produtividade com grande economia, sendo que o setor de TI (tecnologia da informação) se depara com o enigma de investir e ao mesmo tempo economizar, ou seja, oferecer sempre as melhores tecnologias, economizando ao máximo. Este cenário crítico impõe a busca por tecnologias alternativas capazes de suprir as necessidades quanto a desempenho e produtividade. O que tornou oportuno a utilização da tecnologia de virtualização, a qual permite ao usuário de computador instalar e usar simultaneamente mais de um sistema operacional na mesma máquina, gerando mais produtividade ao ambiente, com menos gastos e investimentos em manutenção e equipamentos. Além dos tipos de virtualização se fez importante o estudo sobre outras tecnologias como a paravirtualização, emulação e a abstração, pois possuem atuação semelhante. Foram apresentados alguns tipos de máquinas virtuais e softwares conhecidos como monitores de máquinas virtuais. Tendo como destaque o software VMware visto em suas versões. Conclui-se apresentando a implementação de sistemas virtuais com a instalação de monitores VMware e a criação de máquinas virtuais no ambiente servidor do Frigorífico excelência, bem como as vantagens, benefícios, dificuldades, desempenho e pretensões futuras quanto ao uso desta tecnologia.

LISTA DE FIGURAS Figura 01 - Modelo de multitarefa... 03 Figura 02 - Modelo de Virtualização... 03 Figura 03 - Modelo de Virtualização de Hardware... 05 Figura 04 Modelo de Virtualização do Sistema Operacional... 06 Figura 05 Modelo de Virtualização de Linguagens de Programação... 06 Figura 06 Representação do monitor de máquinas virtuais do tipo I... 11 Figura 07 Representação do monitor de máquinas virtuais do tipo II... 12 Figura 08 Exemplo de abstração... 15 Figura 09 Exemplo de virtualização... 15 Figura 10 Representação de Virtualização total... 16 Figura 11 Representação de Paravirtualização... 17 Figura 12 Servidores que não utilizam a técnica de virtualização... 20 Figura 13 Servidor utilizando a técnica de virtualização... 20 Figura 14 VMware Infrastructure Web Access 32 Figura 15 VMware-server-console... 32 Figura 16 Particionamento de Servidor físico... 33 Figura 17 Opções para criação de Máquinas Virtuais... 39 Figura 18 Configurações para Máquinas Virtuais... 39 Figura 19 Tela inicial para download do VMware Server... 41 Figura 20 Tela de cadastro VMware Server... 41 Figura 21 Tela de opção de download do VMware Player... 42 Figura 22 Versões do VMware Player... 42 Figura 23 Cadastro para liberação de download do VMware Player... 43 Figura 24 Inicio da instalação do VMware Server... 44 Figura 25 Progresso da instalação do VMware Server... 44 Figura 26 Contrato de licença para uso do VMware Server... 44 Figura 27 Local para instalação do VMware Server... 44 Figura 28 Configuração de Acesso via Web para o VMware Server... 45 Figura 29 Criação de atalhos no VMware Server... 45 Figura 30 Inicio da instalação do VMware Server... 45

Figura 31 Preparando a instalação do VMware Server... 45 Figura 32 Inicio da cópia dos arquivos do VMware Server... 45 Figura 33 Finalização da cópia dos arquivos do VMware Server... 45 Figura 34 Número serial para o VMware Server... 46 Figura 35 Finalizando a instalação do VMware Server... 46 Figura 36 Inicio da instalação do VMware Player... 46 Figura 37 Preparação para instalação do VMware Player... 46 Figura 38 Local de instalação do VMware Player... 47 Figura 39 Progresso da instalação do VMware Player 47 Figura 40 - Finalização da instalação do VMware Player 47 Figura 41 Mensagem de Erro 48 Figura 42 Escolha da Opção 1 para criação de Máquinas Virtuais 49 Figura 43 Hardware Virtual Debian 4.03 49 Figura 44 Hardware Virtual Ubuntu 8.04 49 Figura 45 Configuração da Placa de Rede 50 Figura 46 Configuração do CD-ROM e Disco 50 Figura 47 Configuração USB, portas serial e paralela 50 Figura 48 Arquivo com a Máquina Virtual 50

SUMÁRIO 1.0 - INTRODUÇÃO 01 2.0 VIRTUALIZAÇÃO 03 2.1 FORMAS DE VIRTUALIZAÇÃO 05 2.1.2 Virtualização do Hardware 05 2.1.3 Virtualização do Sistema Operacional 06 2.1.4 Virtualização de Linguagens de Programação 06 2.2 BENEFÍCIOS DA VIRTUALIZAÇÃO 07 2.2.1 Particionamento 07 2.2.2 Isolamento 07 2.2.3 Encapsulamento 08 2.3 DESVANTAGENS DA VIRTUALIZAÇÃO 08 3. 0 MÁQUINA VIRTUAL 09 3.1 MÁQUINA REAL 10 3.2 MONITORES DE MÁQUINAS VIRTUAIS 10 3.2.1 Tipos de Monitores de Máquinas Virtuais 11 3.2.2 Monitor de Máquinas virtuais clássicas ou de Tipo I 11 3.2.3 Monitor de Máquinas virtuais Hospedadas ou de Tipo II 12 4.0 TÉCNICAS DE EMULAÇÃO, ABSTRAÇÃO, VIRTUALIZAÇÃO TOTAL E PARAVIRTUALIZAÇÃO 14 4.1 EMULAÇÃO 14 4.2 ABSTRAÇÃO 15 4.3 VIRTUALIZAÇÃO TOTAL 15 4.4 PARAVIRTUALIZAÇÃO 16 5.0 - POR QUE IMPLEMENTAR A VIRTUALIZAÇÃO 18 5.1 CONSOLIDAÇÃO DE SERVIDORES 18 5.1.2 Consolidação na forma aplicada 20 6.0 ALGUNS SOFTWARES PARA VIRTUALIZAÇÃO 24 6.1 VIRTUAL SERVER E VIRTUAL PC 24 6.2 VIRTUALBOX 25

6.3 XEN 26 6.4 VMWARE 27 6.4.1 VMware ESX Server 29 6.4.1.1 - Virtualização de CPU 30 6.4.1.2 - Virtualização de memória 30 6.4.1.3 - Virtualização de disco 31 6.4.1.4 - Virtualização de rede 31 6.4.2 VMware Server 32 6.4.2.1 - Vantagens do VMware Server 34 6.4.2.2 Desvantagens 35 6.4.3 - VMware Workstation 35 6.4.4 - VMware Player 36 6.4.5 - VMware Infrastructure 36 7.0 A PROPOSTA DESTE TRABALHO 37 7.1 FONTES DE PESQUISA 38 7.2 FERRAMENTAS UTILIZADAS 38 8.0 IMPLEMENTAÇÃO 40 8.1 OBTENDO OS SOFTWARES WMWARE SERVER E PLAYER 40 8.2 INSTALANDO OS SOFTWARES WMWARE SERVER E PLAYER 43 8.3 DIFICULDADES NA INSTALAÇÃO DOS SOFTWARES 47 8.3.1 Mudança de Estratégia 48 8.4 CRIANDO MÁQUINAS VIRTUAIS 49 8.5 INSTALAÇÃO DOS SISTEMAS 51 8.5.1 Dificuldades 51 8.5.2 Desempenho 52 8.5.3 Benefícios 52 8.5.4 Pretensões Futuras 53 9.0 CONCLUSÃO 54 REFERÊNCIAS BIBLIOGRAFIAS 55

1 1.0 - INTRODUÇÃO As primeiras máquinas virtuais surgiram no inicio dos anos 60, permitindo o particionamento de grandes mainframes, um recurso para poucos, pois era extremamente custoso. Após alguns anos, microcomputadores e PC s (Personal Computer s) tornaram se mais eficientes e passaram a distribuir o poder de processamento satisfatoriamente, fazendo com que a virtualização fica-se de lado. Nos anos 90, pesquisadores começaram a enxergar a virtualização como uma alternativa a resolver alguns dos problemas associados à proliferação de hardware mais baratos, incluindo subutilização, custos de gerenciamento e vulnerabilidades. A virtualização tem ganhado terreno na empresas e surge como uma ótima forma de consolidação do parque de servidores, pois é um recurso que utilizando softwares monitores permite a execução simultânea de múltiplas máquinas virtuais com sistemas operacionais heterogêneos, em uma única plataforma de hardware. Possibilitando a cada máquina virtual ter seu próprio hardware virtual (por exemplo: memória ram, disco rígido, placa de rede, etc.), sobre um sistema operacional existente ou mesmo diretamente no hardware físico da máquina. Através de alguns desses softwares monitores é possível configurar e até re-configurar máquinas virtuais, possibilitando um controle e gerenciamento total sobre os sistemas virtualizados. Além da virtualização existem outras técnicas semelhantes, como a paravirtualização, emulação, abstração e a própria virtualização total. Apoiado neste contexto, este trabalho fornecer subsídios quanto ao conhecimento sobre o conceito de virtualização, algumas formas de virtualização, algumas vantagens, desvantagens, o que são máquinas virtuais, máquinas reais, monitores de máquinas virtuais, tipos de monitores, por que implementar a virtualização, a consolidação de servidores, os softwares monitores para virtualização Virtual Server e Virtual PC, VirtualBox e VMware, além do Xen utilizado na paravirtualização. Algumas versões do VMware com suas vantagens e desvantagens, fechando a primeira parte do trabalho. Na segunda parte chegamos a proposta do trabalho, onde objetiva-se acompanhar os passos necessários para a virtualização de sistemas utilizando o VMware no ambiente servidor do Frigorífico Excelência, bem como as fontes de

2 pesquisa utilizadas, ferramentas, os processos de instalação e aquisição das softwares VMware Server e VMware Player, as dificuldades encontradas, a necessidade de uma mudança de estratégia, a instalação dos sistemas, os benefícios, o desempenho e as pretensões quanto a instalações futuras.

3 2.0 VIRTUALIZAÇÃO Várias pessoas confundem virtualização com multitarefa. Na multitarefa, existe um único sistema operacional e vários programas trabalhando em paralelo. Na virtualização você pode ter vários sistemas operacionais trabalhando em paralelo, cada um com diversas aplicações distintas em execução. Cada sistema operacional roda em um processador virtual, ou seja, em uma máquina virtual. É a forma de dividir os recursos de um computador em múltiplos ambientes de execução. As figuras abaixo mostram o funcionamento de um sistema operacional modelo multitarefa (figura 01) e modelo de virtualização (figura 02): Figura 01 Modelo de multitarefa. Figura 02 Modelo de Virtualização A virtualização permite que instâncias do sistema operacional sejam executadas simultaneamente em um único computador. É uma forma de abstrair o hardware de um único sistema operacional, sendo a interposição do software (máquina virtual) em várias camadas do sistema. A tecnologia de virtualização cria uma espécie de camada de software capaz de acessar o hardware físico e simulalo, desta forma permite com que vários sistemas operacionais de diferentes plataformas compartilhem do mesmo hardware simultaneamente.

4 A projeção de hardware e software é definida por Laureano (2006, p. 16) como independente, pois: Normalmente os projetistas de hardware, sistemas operacional e aplicações trabalham de forma independente (em empresas e tempos diferentes). Esses trabalhos independentes geraram, ao longo dos anos, várias plataformas operacionais diferentes (e não compatíveis entre si). (LAUREANO, 2006, p. 16) Todos os sistemas operacionais convidados são gerenciados por um VMM (Virtual Machine Monitor), também conhecido como hypervisor ou monitor. Como o ambiente de virtualização fica entre o convidado (guest) e o hardware, consegue controlar o uso da CPU, da memória e armazenamento pelos convidados, e até mesmo permitir que o sistema operacional de um convidado migre de uma máquina para outra. Estações de trabalho virtualizadas permitem que desenvolvedores hospedem sucessivas interações de uma pilha de software, incluído a versão de produção, em separadas partições da mesma plataforma. Isso pode aumentar a utilização de hardware e simplificando o ciclo de vida gerencial. Novas e atualizações de um produto podem ser testadas na mesma plataforma de produção sem interromper o meio produtivo, eliminando a custosa necessidade de duplicação do meio. A virtualização muda o conceito sobre população e gerenciamento de servidores, fornecendo mais opções que podem ajudar a diminuir custos e riscos, melhorando a continuidade de negócios e aumentando a eficiência de TI e agilidade de negócios. Apesar de ver e tocar apenas um servidor físico pode-se ter vários servidores consolidados internamente em um único hardware. Quanto à limitação ao número de máquinas virtuais a serem instaladas em um servidor, pode-se compartilhar um conjunto de recursos apenas até que eles se esgotem ou que as partes não ofereçam capacidade suficiente. A única restrição para o número de máquinas virtuais é definida pelos limites de memória, espaço em disco e poder de processamento da CPU. Qualquer computador que espera hospedar uma ou mais máquinas virtuais deve possuir recursos não apenas para o hospedeiro como também para acomodar os sistemas convidados. Cabe destacar, que se o servidor não tem grande volume de espaço em disco, não poderá oferecer aos sistemas operacionais convidados recursos de armazenamento adequados. O mesmo vale para as memórias e demais periféricos, se o computador hospedeiro não apresenta

5 memória RAM ou capacidade de processamento suficiente, o sistema operacional convidado sofrerá com baixo desempenho. 2.1 FORMAS DE VIRTUALIZAÇÃO Para Laureano (2006), existem três formas de virtualização: a virtualização do hardware, a virtualização do sistema operacional e a virtualização de linguagens de programação. 2.1.2 Virtualização do Hardware Este tipo de virtualização simula a existência de um sistema (hardware) físico virtual a partir de sistema (hardware) real. Este modelo foi adotado na década de 1960 para o VM/370 nos mainframes IBM, e é utilizada pelo VMware na plataforma x86. Aplicação Aplicação Sistema Operacional (Linux, Windows, Unix) CPU, RAM, dispositivos de E/S - Virtual Máquina Virtual Sistema Operacional (Linux, Windows, Unix) - Real CPU, RAM, dispositivos de E/S - Real Figura 03 Modelo de Virtualização de Hardware

6 2.1.3 Virtualização do Sistema Operacional Neste a máquina virtual roda aplicações ou um conjunto de aplicações de um sistema operacional especifico. O FreeBSD Jail e o User Mode Linux utilizam essa tecnologia. Aplicação Aplicação Sistema Operacional (Linux, Windows, Unix) Máquina Virtual Sistema Operacional (Linux, Windows, Unix) - Real CPU, RAM, dispositivos de E/S - Real Figura 04 Modelo de Virtualização do Sistema Operacional 2.1.4 Virtualização de Linguagens de Programação Nessa categoria as máquinas virtuais atendem uma finalidade especifica, ou seja, cria-se uma aplicação a ser executada através da máquina virtual que por sua vez executa diretamente no sistema operacional do hardware hospedeiro. Como exemplo de tipo de máquina virtual temos o Java e Smalltalk. Aplicação Máquina Virtual Sistema Operacional (Linux, Windows, CPU, RAM, dispositivos de E/S - Real Figura 05 Modelo de Virtualização de Linguagens de Programação

7 2.2 BENEFÍCIOS DA VIRTUALIZAÇÃO A virtualização de servidores e máquinas proporciona às empresas a consolidação de servidores, que consiste em centralizar ou diminuir o número de equipamentos e aplicações instaladas em cada um dos servidores de uma organização, com o objetivo de aumentar a produtividade da infra-estrutura, melhorar o gerenciamento do ambiente, aumentar a segurança diminuir a manutenção e economizar em recursos humanos, físicos e financeiros. Segundo Viana (2008) a criação de ambientes virtuais proporciona diversas vantagens e benefícios que podem ser utilizadas na segurança de sistemas e outras aplicações, destacando-se o Particionamento, Isolamento e o Encapsulamento. 2.2.1 - Particionamento: - Múltiplas aplicações e sistemas operacionais podem ser executados em um único sistema físico. - Servidores podem ser consolidados em máquinas virtuais, escalando arquiteturas. - Recursos computacionais são tratados em uma política uniforme para que sejam alocadas máquinas virtuais de maneira controlada. Para Laureano (2006) essa propriedade garante que um software em execução em uma máquina virtual não acesse nem modifique outro software em execução em outra máquina virtual. 2.2.2 - Isolamento: - Ambientes virtuais (máquinas virtuais convidadas) são completamente isoladas da máquina hospedeira e de outras máquinas virtuais. Se um ambiente virtual (máquina virtual) tem problemas, todas as outras não são afetadas.

8 - Dados não vazam entre ambientes virtuais e podem somente se comunicar em conexões de rede configuradas. Segundo Viana (2008), a camada de virtualização pode ser usada para manipular e controlar a execução do software na máquina virtual. 2.2.3- Encapsulamento: - Um completo ambiente de máquina virtual é salvo em um simples arquivo, fácil de fazer backup, de ser movido e copiado. - Padronização de hardware virtualizado é fornecida para a aplicação, garantindo compatibilidade. De acordo com Viana (2008), o encapsulamento fornece outra propriedade, que é o encapsulamento de estado, que salva o estado de funcionamento atual da máquina virtual, para posterior restauração. 2.3 DESVANTAGENS DA VIRTUALIZAÇÃO Segundo Laureano (2006), a principal desvantagem da virtualização é o custo adicional para a execução dos processos, uma vez que a máquina virtual utiliza recursos de hardware da plataforma real em uma plataforma virtual, ou seja, pode ocorrer pequena perda de performance das aplicações dependendo do hardware utilizado. Muitas vezes o consumo de memória elevado, exige melhoramentos nas configurações do hardware existente, ou até a substituição do mesmo.

9 3. 0 MÁQUINA VIRTUAL Descrito na década de 1960 o termo máquina virtual permaneceu pouco conhecido até a metade dos anos 90, quando o termo ressurgiu, sobretudo com o aparecimento de aplicações voltadas para virtualização de recursos nos microcomputadores PC (Personal Computer) de plataforma Intel (arquitetura x86). Uma máquina virtual é um ambiente criado por um monitor de máquina virtual (Virtual Machine Monitor VMM), também denominado sistema operacional para sistemas operacionais, com o objetivo de possibilitar a virtualização de sistemas operacionais e aplicativos sobre uma única máquina real. Máquina Virtual é definida por Lopes (2006, p. 126) como: Uma máquina virtual é um espaço virtual isolado com acesso ao hardware, onde funciona um sistema virtual. Máquina virtual (em inglês, Virtual Machine VM) é o termo a que nos referimos quando estamos trabalhando com sistemas virtuais executando em uma máquina real. Máquinas virtuais são encapsuladas em arquivos, as tornando fácil de serem salvas, copiadas e de se prover uma máquina virtual. Sistemas completos (com aplicações totalmente configuradas, sistema operacional, BIOS e hardware virtual) podem ser movidos, em questão de minutos, de um servidor físico a outro para manutenção em tempo mínimo, evitando transtornos e possível paralisação das atividades. Por definição Laureano (2006, p.17) afirma que: Uma máquina virtual (Virtual Machine VM) pode ser definida como uma duplicata eficiente e isolada de uma máquina 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. Cada instância de sistema operacional é chamada de Virtual Machine (VM) e roda em sua própria partição. O software de virtualização, chamado Virtual Machine Monitor (VMM), gerencia requisições e atividades do sistema operacional (SO), mudando o controle do hardware para cada SO requisitado. Partições separadas isolam falhas ou ataques de software para uma única VM, mantendo um alto nível de segurança e disponibilidade do meio virtual. A virtualização isola os sistemas operacionais e seus aplicativos de recursos de plataforma de hardware, dando o controle de cada partição, deixando que se pare ou reinicie qualquer VM sem afetar outras atividades na plataforma. VM podem ser

10 duplicadas em um único servidor para recuperação em caso de alguma instância do aplicativo falhar, possibilitando maior continuidade de negócios em menos plataformas e por menor custo. 3.1 - MÁQUINA REAL Uma Máquina real é formada segundo Laureano (2006, p.17): Uma máquina real é formada por vários componentes físicos que fornecem operações para o sistema operacional e suas aplicações. A funcionalidade e o nível de abstração de uma máquina virtual encontram-se em uma posição intermediária entre uma máquina real e um emulador, de forma que os recursos de hardware e de controle são abstraídos e usados pelas aplicações. Em ambientes virtualizados as máquinas virtuais simulam uma réplica física de uma máquina real. Dispositivos adicionais como drives de disquetes, CD-ROM e dispositivos USB (Universal Serial Bus) também podem ser compartilhados entre as máquinas virtuais e o sistema anfitrião (também chamado de sistema host). Os usuários têm a ilusão de que o sistema está disponível para seu uso exclusivo. Embora as funcionalidades das diversas máquinas virtuais sejam diferentes, todos compartilham de atributos comuns (ROSEMBLUM, 2007) como: Compatibilidade do software: a máquina virtual fornece uma abstração compatível de modo que todo o software escrito para ela funcione. Isolamento: garante que os softwares executados em cada uma das máquinas virtuais e os da máquina real estejam totalmente isolados entre si. Desempenho: adicionar uma camada de software a um sistema pode afetar o desempenho do software que funciona na máquina virtual, mas os benefícios de uso de sistemas virtuais devem compensar. 3.2 MONITORES DE MÁQUINAS VIRTUAIS As soluções de combinação entre hardware e software não são um conceito novo e suas origens remetem ao início da história dos computadores nos anos 60,

11 nas máquinas VM/370 da IBM. Na solução de hardware e software há uma cooperação entre um software virtualizador (conhecido como monitor) e que faz o papel principal com o hardware, cujo qual fornece partes chaves do processo. Na virtualização totalmente baseada em software, não é preciso um hardware provendo recursos para suportá-la, ao invés disso, é o software virtualizador (conhecido como monitor) que provê totalmente os recursos no processo. Essa tecnologia tem como vantagens o baixo custo de implementação e a portabilidade entre plataformas. São exemplos dessas tecnologias: VMWare, VirtualBox, Microsoft Virtual Server e Virtual PC, Xen, Solaris Zones, FreeBSD, Jails e outras. 3.2.1 Tipos de Monitores de Máquinas Virtuais Para a construção de monitores de máquinas virtuais, existem duas abordagens: Monitor de Máquinas virtuais clássicas ou de Tipo I Monitor de Máquinas virtuais hospedadas ou de Tipo II. 3.2.2 Monitor de Máquinas virtuais clássicas ou de Tipo I Nesta abordagem o monitor de máquinas virtuais é implementado entre o hardware e os sistemas convidados (também chamados de sistemas guest ou guest systems). Aplicação Aplicação Convidado Convidado Monitor de Máquinas Virtuais CPU, RAM, dispositivos de E/S (Hardware) - Real Figura 06 Representação do monitor de máquinas virtuais do tipo I

12 O monitor possui controle sobre o hardware e cria um ambiente de máquinas virtuais dando a cada máquina virtual o comportamento de uma máquina física, podendo executar sobre esses ambientes, sistemas operacionais iguais ou diferentes, totalmente isolados entre si. Um monitor deste tipo executa com a maior prioridade sobre os sistemas convidados de forma que ele pode interceptar e emular todas as operações que acessam ou manipulam os recursos de hardware provenientes dos sistemas convidados. 3.2.3 Monitor de Máquinas virtuais Hospedadas ou de Tipo II Nesta abordagem o monitor é implementado como um processo de um sistema operacional real subjacente, denominado sistema anfitrião (host ou host system). O monitor do tipo II funciona de forma análoga ao de tipo I, com a diferença que ele é executado sobre o sistema operacional anfitrião (host), como um processo deste, ou seja, um sistema convidado. Neste modelo o monitor simula todas as operações que o sistema anfitrião controlaria. Aplicação Aplicação Convidado Convidado Monitor de Máquinas Virtuais Aplicação Sistema Anfitrião (Host) CPU, RAM, dispositivos de E/S (Hardware) - Real Figura 07 Representação do monitor de máquinas virtuais do tipo II

13 Cabe destacar que os monitores de tipo I e tipo II raramente são projetados em sua forma conceitual, pois muitos desenvolvedores de produtos para esta tecnologia inserem otimizações para aumentar o desempenho dos sistemas convidados. Em monitores de tipo I: O sistema convidado acessa diretamente o hardware. Neste processo, é necessário que sejam feitas alterações no sistema operacional para que suporte a otimização. Em monitores de tipo II: O sistema convidado acessa diretamente o sistema anfitrião. Nessa otimização, o monitor permite que sejam acessadas certas API (Application Programming Interface - Interface de Programação das Aplicações) do sistema anfitrião pelo sistema convidado. O sistema convidado acessa diretamente o hardware. Essa otimização é conseguida quando o monitor permite o acesso direto a drivers de dispositivo do sistema anfitrião. O monitor acessa diretamente o hardware. Nessa otimização o monitor tem seus próprios drivers de dispositivos acessando o hardware com uma interface própria (de baixo nível).

14 4.0 TÉCNICAS DE EMULAÇÃO, ABSTRAÇÃO, VIRTUALIZAÇÃO TOTAL E PARAVIRTUALIZAÇÃO 4.1 EMULAÇÃO É importante salientar que os termos virtualização e emulação de sistemas apesar de parecerem referir-se ao mesmo tema, na verdade possuem grandes diferenças. Um emulador é um agente escrito para tornar possível a interação entre dois sistemas distintos e incompatíveis entre si (os quais podem ser um software e um hardware, ou um software e outro software). Para isto, o emulador traduz as instruções entre um sistema e outro, intermediando o processo. Um emulador é definido por Laureano (2006, p.18) como: Um emulador é o oposto da máquina real. O emulador implementa todas as instruções realizadas pela máquina real em um ambiente abstrato de software, possibilitando executar um aplicativo de uma plataforma em outra, por exemplo, um aplicativo do Windows sendo executado no Linux ou um aplicativo i386 sendo executado em uma plataforma Sparc. Um emulador engana, fazendo com que todas as operações da máquina real sejam implementadas em um software. Já a virtualização, por sua vez, utiliza a emulação e outras técnicas para oferecer um conjunto completo de recursos, com o objetivo de permitir que vários sistemas executem sobre uma mesma plataforma visando o máximo de desempenho. O foco da emulação é fazer um sistema executar totalmente sobre outro para o qual não foi originalmente construído, mesmo que isto cause uma perda de desempenho. De um modo contrário, a virtualização preocupa-se sempre com o desempenho e executa o sistema virtual diretamente no hardware quando possível, através de uma máquina virtual.

15 4.2 ABSTRAÇÃO Embora a virtualização seja descrita como uma abstração em software existe uma diferença entre os termos abstração e virtualização. Segundo Laureano (2006) a abstração é uma forma simples de prover alguns recursos específicos de hardware para software, enquanto a virtualização provê um conjunto completo de recursos. A abstração permite que softwares acessem os arquivos do sistema operacional anfitrião (host) para operações específicas e simples. A virtualização fornece para o software um sistema de arquivos (disco virtual) montado sobre arquivos do sistema operacional anfitrião (host), e nesse caso, é possível realizar operações mais complexas. Software Software Arquivos no Sistema Operacional Anfitrião Abstração Virtualização Disco Virtual Arquivos no Sistema Operacional Anfitrião Disco Real Disco Real Figuras 08 Exemplo de abstração Figura 09 Exemplo de Virtualização 4.3 VIRTUALIZAÇÃO TOTAL Nesta técnica uma estrutura completa de hardware é virtualizada, ou seja, cria-se um hardware virtual com as mesmas características do real, desta forma o sistema a ser virtualizado (sistema convidado) não precisa sofrer qualquer tipo de alteração.

16 Sistema convidado (sem modificações) Sistema convidado (sem modificações) Hardware x86 (Virtual) Monitor de Máquinas virtuais Hardware x86 (CPU, memória RAM, dispositivos de E/S) Figura 10: Representação da virtualização total Como maior benefício nesta técnica é justamente o fato de o sistema a ser virtualizado não sofrer alteração alguma, porém é importante ressaltar que o mesmo executa de forma mais lenta e o monitor de máquinas virtuais precisa implementar alternativas para que as operações privilegiadas possam ser executadas em processadores que não suportem a virtualização nativamente. Vale destacar ainda, que a partir do uso desta técnica é possível encontrar diversas formas genéricas de virtualização. 4.4 PARAVIRTUALIZAÇÃO Paravirtualização é uma técnica que apresenta uma interface de software para máquinas virtuais que é similar (mas não idêntica) à subcamada de hardware. Permite que máquinas virtuais específicas comuniquem-se diretamente com o hardware. Ao invés de todas as máquinas virtuais se comunicarem com o sistema anfitrião, é a máquina privilegiada que gerencia a interação e recebe as chamadas passadas pelos outros sistemas virtuais. Esta capacidade minimiza os custos adicionais em processamento ou armazenamento (fator significativo no desempenho dos sistemas de computação) e otimiza o desempenho do sistema para suportar a virtualização. Na Paravirtualização, [...] o sistema a ser virtualizado (sistema convidado) sofre modificações para que a interação com o monitor de máquinas virtuais seja mais eficiente (LAUREANO, 2006, p.30).

17 O maior inconveniente da paravirtualização é a necessidade de que o sistema operacional convidado seja previamente adaptado (modificado), o que diminui a portabilidade do sistema, em contrapartida a performance obtida valoriza a utilização da paravirtualização. O sistema convidado pode acessar diretamente o hardware, sendo que este processo é totalmente gerenciado pelo monitor de máquinas virtuais. Esta técnica é utilizada pelo monitor Xen, por exemplo. Sistema convidado paravirtualizado (com modificações) Sistema convidado paravirtualizado (com modificações) Monitor de máquinas virtuais Hardware x86 (disco, CPU, dispositivos de E/S) Figura 11: Representação de paravirtualização

18 5.0 - POR QUE IMPLEMENTAR A VIRTUALIZAÇÃO Há décadas, muitas empresas investem pesado em novos aplicativos de negócios e infra-estrutura de TI. Em toda a empresa, houve uma proliferação de servidores e armazenamento de e-mails, banco de dados na Web, arquivos e impressões, controladores de domínio, servidores de diretório e outros aplicativos. Com a virtualização, não há o limite de executar somente um sistema operacional em um servidor ou estação de trabalho. É possível consolidar facilmente múltiplas plataformas rodando diferentes sistemas operacionais e aplicações heterogêneas em uma única poderosa e confiável plataforma. Desta forma há uma redução no número de sistemas a serem gerenciados para a mesma tarefa e operação, contribuindo na economia de energia elétrica e custos sobre hardware. Em vez da utilização de vários equipamentos com seus respectivos sistemas operacionais, utiliza-se somente um computador com diferentes máquinas virtuais abrigando os vários sistemas operacionais, suas aplicações e serviços. De acordo com Tanebaum & Woodhull (2000) como tudo o que se refere a computadores, os sistemas operacionais evoluem a passos largos. É essa evolução que abre caminho para aplicativos mais poderosos e tem aumentado dia-a-dia a presença de computadores em nossas vidas. 5.1 CONSOLIDAÇÃO DE SERVIDORES Diante deste contexto chamado Virtualização torna-se oportuno o assunto Consolidação de Servidores, principalmente no meio empresarial, pois é uma excelente alternativa para redução de custos no ambiente de TI (tecnologia da informação). Atualmente as empresas estão cada vez mais buscando produtividade e redução de custos, aliado a estes fatores inclui-se a centralização e diminuição do número de servidores físicos em suas instalações, processo conhecido como consolidação de servidores. Esta técnica proporciona ao ambiente servidor de uma empresa o aumento de produtividade da infra-estrutura, um melhor gerenciamento

19 do ambiente, aumento na segurança, redução da manutenção, economia em recursos humanos, físicos e financeiros. Partimos do pressuposto de uma situação que se necessita disponibilizar serviços em vários servidores diferentes, sendo que cada servidor teria conforme o serviço, determinada quantidade de memória e espaço em disco. Devemos considerar também que grande parte do tempo estes servidores ficarão ociosos ou seu uso cai consideravelmente em determinados horários. Todos os servidores devem ficar disponíveis em uma rede, porém precisam ter certo nível de segurança. Esse cenário tradicionalmente exigiria um grande investimento na infra-estrutura aquisição de servidores, espaço físico, rede, energia elétrica, manutenção da redes e equipamentos, administração dos diversos sistemas, serviços e a contratação de funcionários. Nesses casos a virtualização é uma grande alternativa, pois, ao invés de possuirmos vários servidores físicos, podemos possuir apenas alguns ou mesmo somente um, reduzindo consideravelmente a complexidade. Podendo ainda, obter um melhor aproveitamento dos recursos computacionais, com a subtração do custo total de propriedade, do custo operacional, e do consumo de energia elétrica (fator impactante no meio ambiente), além da redução do número de servidores físicos e do espaço físico necessário para abrigá-los, garantindo vantagens como economia em administração, manutenção e refrigeração dos equipamentos. A capacidade de executar softwares de diferentes sistemas operacionais num mesmo hardware reduz o desperdício da capacidade de processamento que ocorre freqüentemente nos servidores em determinados horários ou dias do mês. A administração facilitada é outro benefício agregado e de grande importância no projeto de consolidação de servidores. Nesta técnica, os sistemas operacionais são abrigados em máquinas virtuais e cada máquina virtual geralmente é armazenada no disco da máquina física como um arquivo único, tornando extremamente prático, por exemplo, operações de backup, mudança de máquinas virtuais de um servidor físico para outro, inclusão de cópias de sistemas e praticidade no teste de novos sistemas. Alguns monitores de máquinas virtuais (como o VMware e o Xen) já possuem scripts automatizados de backup e mudança de máquina virtual de servidor. As empresas que consolidarem seu parque de servidores poderão desfrutar de todas estas vantagens e ainda aproveitar os seus equipamentos encostados

20 para outras finalidades. Por exemplo, utilizá-los como mecanismos adicionais de segurança de seus sistemas, de backup e até como reserva de hardware. 5.1.2 Consolidação na forma aplicada Na virtualização de um servidor, ele é subdividido em máquinas virtuais e cada máquina virtual tem sua própria CPU virtualizada, memória, placa de rede e espaço em disco, podendo compartilhar outros dispositivos anexados à plataforma física, como mídias de CD-ROM, disquete e até conexões USB. Nas figuras a seguir observamos a representação da estrutura de servidores que não utilizam a técnica de virtualização e servidores que utilizam. Figura 12 - Servidores que não utilizam a técnica de virtualização Figura 13 - Servidor utilizando a técnica de virtualização

21 Podemos verificar através da figura (13) que com a técnica de virtualização é possível um servidor fazer o trabalho de três, pois o mesmo poderia hospedar vários sistemas virtuais (convidados ou guest) sobre o seu sistema real (hospedeiro ou host). Segundo a Intel (2008), para implementarmos uma consolidação de servidores, primeiramente devemos considerar alguns pontos chaves: Avaliar os processos e as aplicações críticas. Onde aumentando o nível dos serviços, aumentariam os resultados; Verificar quais servidores são subutilizados e que poderiam compartilhar recursos. Muitos servidores web e de e-mails funcionam na maioria do tempo abaixo de 10% de utilização. Esses são ótimos candidatos a uma consolidação. Algumas aplicações são más candidatas à consolidação. Nesta classificação estão enquadradas as aplicações de alta performance que utilizam o servidor na maior parte do tempo (ex: analisadores de grandes massas de dados), bem como, os de missão crítica ou de performance crítica, em que qualquer contenção de recursos poderia impactar negativamente nos resultados. Deve-se proceder a seguinte metodologia para cálculo de capacidade: Fazer um histórico dos dados das aplicações a serem consolidadas, capturando dados como consultas, uso de memória, entrada e saída, armazenamento ou qualquer outra informação relevante, em um ciclo de um dia, um mês, um ano etc. Usando este histórico, deve-se mapear padrões de uso para descobrir aplicações que poderiam funcionar juntas, e combinando aplicações de picos em horários diferentes. Somar todos os picos de carga de trabalho de todos os serviços e aplicações a serem consolidadas para determinar os requisitos de capacidade computacionais necessárias (CPU, memória, disco, operações de entrada e saída etc.). Acrescentar uma margem de crescimento projetada para os próximos seis meses, dois anos ou eventual substituição de equipamentos (por exemplo: devido ao término de suas vidas úteis).

22 Caso haja políticas institucionais de utilização de servidores (por exemplo: nenhum servidor deveria estar funcionando normalmente acima de 80% da capacidade), deve-se adicionar também esta margem de segurança. Por fim, deve-se considerar no cálculo os custos adicionais em processamento ou armazenamento gerados com o uso da técnica de virtualização. Após este estudo, pode-se realizar a consolidação das aplicações em sua forma prática, consolidando aplicações de menor escala e, na medida em que se obtém êxito, proceder para aplicações de maior escala. Ao final de cada trabalho, deve-se utilizar técnicas de medição de carga de trabalho para uma análise do sucesso obtido. Fatores como a segurança são de extrema importância, principalmente no tocante a servidores, pois quando ocorrem vulnerabilidades torna-se extremamente custoso para a instituição. A virtualização é uma poderosa ferramenta na prevenção contra ameaças de segurança, na medida em que evita custos com interrupção de serviços e perda de dados. Outro grande benefício é o isolamento de processos em máquinas virtuais, pois é possível isolar aplicações de alto risco de aplicações potencialmente vulneráveis, elevando a proteção contra aplicações maliciosas, aumentando a dificuldade das mesmas acessarem dados, ou afetarem processos que estejam sendo executados em outras máquinas virtuais. Isolando falhas, previne-se que uma aplicação em mau funcionamento comprometa todo o sistema, por exemplo, aplicações que fazem conexões externas, através da internet, podem ser confinadas em máquinas virtuais independentes, mantendo-as separadas do sistema operacional anfitrião. Podendo ainda, serem definidos, privilégios limitados a usuários ou as próprias aplicações convidadas em um ambiente que pode ser seguramente deletado quando o serviço for concluído. Se algumas destas máquinas virtuais estiverem comprometidas, somente seria necessário descartar as defeituosas e criar novas, ou recuperar cópias de segurança (backup), sem afetar outras aplicações que estejam executando no mesmo sistema anfitrião (host). A virtualização permite que administradores possam suspender, reiniciar e migrar máquinas virtuais, ajudando a suavizar efeitos de ataques e falhas em aplicações, ou até mesmo falhas em hardware, quando acontecerem. Em caso de falha, as máquinas virtuais podem simplesmente ser reiniciadas de um ponto de

23 restauração, de uma cópia de segurança, ou outro mecanismo de recuperação que possa trazer o sistema a um estado saudável. Se a camada física do sistema falha, as máquinas virtuais podem ser migradas e restauradas em outras máquinas físicas. Esta habilidade para recriar um serviço sem ter que iniciar do zero é especialmente útil para serviços de missão crítica e de execução prolongada, porque provê uma rápida recuperação de desastres. Uma boa idéia é armazenar pontos de restauração de máquinas virtuais em locais remotos para posteriormente serem recuperados em caso de falha. Os monitores de máquinas virtuais VMware e Xen dispõem de ferramentas que migram e reiniciam as máquinas virtuais automaticamente em outros servidores em caso de falha do servidor original.

24 6.0 ALGUNS SOFTWARES PARA VIRTUALIZAÇÃO Existem diversos softwares de virtualização para os principais sistemas operacionais. Esses produtos criam máquinas virtuais que permitem a execução de sistemas operacionais sem que estes percebam que não funcionam diretamente sobre uma máquina física. Este tipo de aplicação permite a coexistência na mesma máquina de vários sistemas operacionais operativos funcionando em simultâneo. Vejamos alguns exemplos: 6.1 VIRTUAL SERVER E VIRTUAL PC O Virtual Server é uma versão originaria do Virtual PC e foi concebido para competir com o VMware na virtualização em servidores Windows. Por ser uma máquina virtual do Tipo II, precisa de um sistema anfitrião (host) para o seu funcionamento. Assim como outros softwares para virtualização, o programa exibe uma janela onde é possível abrir sistemas operacionais, como Windows, Linux, o que permite executar diversos sistemas operacionais em uma mesma máquina, sobre um sistema operacional nativo Windows. Uma das vantagens do software é a rápida reconfiguração dos equipamentos. Além do Virtual Server, a Microsoft possui o Virtual PC inicialmente projetado e desenvolvido pela empresa Connectix (empresa adquirida pela Microsoft), é um software para virtualização que suporta o sistema operacional Windows sobre os computadores Macintosh. O Virtual Server executa os sistemas operacionais como serviços, e tem como principais características: Suporte a conectividade permitindo cluster de todas as máquinas virtuais executadas sobre um host; Oferece flexibilidade aos encapsular máquinas virtuais em discos virtuais;

25 Possibilidade de migração de máquinas virtuais com ferramentas especiais. A maior desvantagem sobre o Virtual Server é o funcionamento somente em servidores Windows. Atualmente a Microsoft disponibiliza o Virtual Server e Virtual PC para download gratuito em seu site na internet 6.2 - VIRTUALBOX O VirtualBox é um software de virtualização para arquitetura x86 desenvolvido pela empresa Innotek GmbH, com sede na Alemanha. Desde janeiro de 2007 possui uma versão que é open source de licença GNU GPL. O software é uma máquina virtual do tipo II e executa como um processo de sistema operacional host que pode ser Linux, Windows 32 ou 64 bits, ou Mac OS X. Atualmente suporta sistemas convidados como DOS, FreeBSD, Linux, OpenBSD, NetBSD, Solaris, Netware, OS/2 Warp e Windows. Ele utiliza a técnica da virtualização total, emulando componentes chaves do hardware. Com isso, não há necessidade de que os sistemas operacionais convidados sejam modificados para que executem em uma máquina virtual. O VirtualBox tenta executar uma porção do código dos sistemas virtuais diretamente no processador. Caso haja problemas no processo, o VirtualBox também utiliza a técnica de recompilação dinâmica. O recompilador do VirtualBox é baseado no open-source QEMU. Adicionalmente, o VirtualBox automaticamente desmonta e, na maioria dos casos, corrige o código dos sistema convidados a fim de prevenir futuras recompilações. Em razão disso o código executa nativamente na maior parte do tempo, numa tentativa de aumentar seu desempenho [VIRTUALBOX]. No software, os discos são emulados num recipiente especial chamado Virtual Disk Image (arquivos VDI), o qual até o momento é incompatível com formatos usados por outras soluções. O VirtualBox possui uma funcionalidade que pode conectar dispositivos SCSI e usá-los como discos virtuais.

26 O VirtualBox virtualiza os adaptadores gráficos como no padrão VESA e cuja memória pode ser ajustada. Em sistemas convidados Linux e Windows, pode ser instalado drivers gráficos especiais para melhorar o desempenho. Os adaptadores de rede são virtualizados como adaptadores AMD PCNet, e placas de som como dispositivos Intel ICH AC 97. Dispositivos USB também são emulados. Outras características do VirtualBox: Permite virtualização recursiva (uma instância do VirtualBox pode ser executada em sistema convidado). Permite controle total através de linha de comando. Permite logon automático em máquinas virtuais Windows. Inclui um servidor Microsoft Remote Desktop Protocol (RDP) para administração de máquinas virtuais. Inclui suporte total a Intel VT e suporte experimental ao AMD-V. 6.3 XEN A proposta do ambiente Xen é suportar aplicações sem a necessidade de alterações, ou seja, múltiplos sistemas operacionais convidados e a cooperação entre esses sistemas, com o máximo de desempenho possível. O projeto Xen nasceu na Universidade de Cambridge, tendo se transformado na instituição independente XenSource, que foi depois adquirida pela Citrix Systems. O Xen é uma máquina virtual do Tipo I para a plataforma x86, possui um sistema operacional próprio (host), utiliza uma idéia diferente, a paravirtualização, que consiste em dividir de forma transparente os recursos do hardware, permitindo que o sistema convidado (guest) rode com uma redução de performance muito pequena. O Xen não é uma solução fácil de usar como o VMware, sendo mais voltado para uso em servidores Linux, permitindo rodar vários servidores virtuais numa única máquina. Segundo Xensource (2007) as empresas estão abraçando o Xen para servidores, porque lhes permite aumentar a utilização dos servidores, consolidar servidores, e reduzir drasticamente a complexidade e o custo total de propriedade. O Xen tem acesso privilegiado ao hardware da máquina e os sistemas convidados utilizam esse acesso privilegiado como ponte para acessar o hardware.

27 Uma das desvantagens é que para rodar dentro do Xen é necessário que o sistema convidado (guest) seja modificado. Não é possível rodar qualquer sistema diretamente, como no caso do VMware. Para utilizar o Xen Laureano (2006, p. 101) define que: Os sistemas convidados precisam ser alterados para executar sob o Xen. Conforme apresentado pelos criados do Xen, o custo e o impacto das alterações nos sistemas convidados são baixos e a diminuição do custo da virtualização compensa essas alterações. Isto não é um grande problema no caso do Linux, mas é no caso do Windows e outros sistemas de código fechado. O código-fonte do Xen está liberado sob a licença GNU General Public License (GPL). Atualmente, o ambiente Xen suporta os sistemas Windows XP, Linux e Unix (baseado no NetBSD). Diversas distribuições Linux já possuem suporte nativo ao Xen. 6.4 - VMWARE Lançado em 1999, é uma máquina virtual para computadores baseados na plataforma x86, considerada a mais bem elaborada e difundida dos últimos tempos. A empresa desenvolvedora do VMware, a VMware Inc. é uma subsidiária da EMC Corporation e localiza-se na Califórnia, Estados Unidos. O VMware possui diferentes versões e caracteriza-se como um software proprietário que provê uma camada de virtualização para suporte a vários sistemas operacionais sobre um único hardware, suas versões de máquinas virtuais podem ser do tipo I ou II, de acordo com a versão do software escolhida. Segundo Laureano (2006), o VMware faz uma implementação completa da plataforma x86 ao sistema convidado, sendo uma ferramenta útil em diversas aplicações. De fácil uso e excelente desempenho, o VMware permite a emulação de vários sistemas operacionais ao mesmo tempo sobre um sistema hospedeiro, utilizando para isto o conceito de máquinas virtuais. Como podem existir diversos sistemas operacionais em execução no mesmo hardware, o monitor tem de emular certas instruções para representar corretamente um processador virtual em cada máquina virtual. Essas instruções a serem emuladas são chamadas de instruções

28 sensíveis. Isto é um pouco diferente de uma JVM (Java Virtual Machine), onde, por exemplo, o emulador tem de traduzir o código bytecode (código de programação Java), antes de executá-las. Para entendermos um pouco melhor o VMvare, imagine um computador com o Windows XP Professional instalado e sobre ele instalarmos o VMware. Ele possibilitará a criação de várias máquinas virtuais com seus próprios sistemas operacionais, inclusive Linux, Windows, Sun, Novell. É como se tivesse mais de uma máquina, porém tendo apenas uma, podendo existir diferentes sistemas operacionais em execução no mesmo hardware. Isto ocorre devido à emulação por parte do monitor de máquinas virtuais das tais instruções sensíveis que visam representar corretamente um processador virtual em cada máquina virtual. Por razões de desempenho, as máquinas virtuais geralmente confiam no mecanismo de trap (armadilha) do processador para executar instruções sensíveis. Porém, os processadores x86 não capturam todas as instruções sensíveis e um trabalho adicional deve ser realizado. Segundo Cherene (2008) para controlar as instruções sensíveis que não foram capturadas, o VMware utiliza uma técnica chamada reescrita binária. Com essa técnica, todas as instruções são examinadas antes de serem executadas, e o monitor insere pontos de parada no lugar das instruções sensíveis. Quando executado, o ponto de parada faz com que o processador capture a instrução do monitor. Essa técnica acrescenta complexidade ao monitor do VMware, o que provê um conjunto completo de instruções x86 para interface do sistema convidado. Por razões de desempenho, o monitor do VMware utiliza uma abordagem híbrida (otimizações inseridas nas arquiteturas das máquinas virtuais do tipo I e II, com o objetivo principal de melhorar o desempenho das aplicações nos sistemas convidados). O controle de exceção e gerenciamento de memória é realizado através da manipulação direta do hardware, mas para simplificar o monitor, o controle de E/S é do sistema anfitrião (host). Com o uso de abstrações para suportar a E/S, o monitor evita manter device drives, algo que os sistemas operacionais já implementam adequadamente. Essa simplificação causou uma perda de desempenho em versões mais antigas do VMware, mas foram adotadas otimizações para diminuir seus efeitos e melhorar o desempenho de E/S. A gerência de memória no VMware é feita diretamente pelo sistema convidado, para garantir que não ocorra nenhum conflito de memória entre o sistema convidado e o sistema host, o VMware

29 aloca uma parte da memória para uso exclusivo, então o sistema convidado utiliza essa memória previamente alocada. Os arquivos são armazenados em "discos virtuais" que aparecem como arquivos dentro de uma pasta no sistema host e cada sistema operacional podem ter uma configuração de rede distinta, com seu próprio endereço IP. As máquinas virtuais ficam acessíveis na rede, como se fossem realmente PC's completos, permitindo rodar um servidor Web ou programas de aplicação gráfica dentro de uma máquina virtual, sem comprometer a segurança do seu sistema principal. Segundo VMWARE (2007), para controlar o sistema convidado, o VMware implementa serviços de interrupção, para todas as interrupções do sistema convidado. Sempre que uma exceção é causada no convidado, ela é examinada primeiro pelo monitor. As interrupções de E/S são remetidas para o sistema anfitrião, para que sejam controladas corretamente. As exceções geradas pelas aplicações no sistema convidado são remetidas para o sistema convidado. O VMware interpreta e converte instruções o mínimo possível, o que faz com que o sistema dentro da máquina virtual rode com um desempenho muito similar ao desempenho da máquina real. Segundo VMware (2007), o VMware conta com uma variedade de produtos de virtualização disponibilizando as empresas e usuários opções de escolha: VMware ACE, VMware VirtualCenter, VMware ESX Server, VMware Workstation, VMware Player, o VMware Server e a suíte VMware Infrastructure. Cabe destacar que o VMware Player e o VMware Server possuem versões gratuitas para download. A seguir faremos um estudo mais detalhado sobre as versões ESX Server, Workstation, Player e Server principais destaques do VMware. Além de uma breve explicação sobre a suíte VMware Infrastructure. 6.4.1 VMware ESX Server O VMware ESX Server é a versão comercial do produto VMware voltado para o uso em aplicações profissionais servidoras de larga escala ou missão crítica. Caracterizado como um monitor de máquina virtual do tipo I, possui um sistema operacional próprio e otimizado para gerenciar máquinas virtuais. No

30 VMware ESX Server, cada máquina virtual representa um sistema completo, com processador, memória, disco e BIOS, provendo um completo ambiente de execução, o que faz com que os sistemas operacionais convidados não precisem ser modificados. Basicamente o sistema virtualiza quatro recursos chaves do servidor: CPU, memória, disco e rede (VMWARE 2006-A). 6.4.1.1 - Virtualização de CPU Como visto os processadores baseados na arquitetura x86 não possuem suporte nativo a virtualização, e por isso não conseguem capturar certas instruções de modo privilegiado originadas de um sistema operacional executando em uma máquina virtual. Desse modo, não podem contar totalmente com a técnica de captura e emulação dos sistemas tradicionais. Para suprir esta dificuldade, o VMware usa adicionalmente a técnica de tradução binária. Examinando todas as instruções antes de serem executadas, substituindo as instruções falhas por outras. Devido a isso, a técnica causa uma perda de desempenho, contudo há instruções que executam diretamente entre a máquina virtual e a CPU. O VMware monta para cada sistema operacional executando em sua máquina virtual, a sua própria CPU virtual, ou seja, os sistemas operacionais acreditam possuírem uma CPU dedicada. Essa CPU virtual possui seus próprios registradores e estruturas de controle idênticas a uma CPU real. 6.4.1.2 - Virtualização de memória Como o ESX Server virtualiza a memória das máquinas virtuais por meio da tradução de endereços, o monitor de máquinas virtuais faz um mapeamento da página de memória do sistema operacional convidado para a página de memória física na subcamada do hardware. Cada máquina virtual tem sua própria página de memória em que o sistema operacional convidado vê iniciando do endereço 0.

31 O monitor intercepta instruções da máquina virtual que manipula estruturas de gerenciamento de memória do sistema operacional convidado, de modo que a unidade de gerenciamento da memória (Memory Management Unit MMU) do processador não seja atualizada diretamente pelo sistema convidado. O ESX mapeia a página da máquina virtual em uma tabela de página sombra (Shadow Page Table - SPT) que é atualizado com o da máquina física. Quando o sistema operacional convidado estabelece um mapeamento novo em sua tabela de página, o monitor detecta a modificação e atualiza a respectiva entrada na tabela de página sombra, que aponta para a localização real da página de memória no hardware. Quando a máquina virtual está executando, o hardware usa diretamente a tabela de página sombra para a tradução do endereço, o que permite que os acessos de memória normais na máquina virtual executem sem adicionar perca de tempo com traduções de endereços, uma vez que as tabelas de página da sombra já estão definidas. 6.4.1.3 - Virtualização de disco O ESX Server implementa seu próprio sistema de arquivos chamado de VMFS. O VMFS é um sistema de arquivos distribuído que permite que múltiplos hosts acessem arquivos concorrentemente no mesmo volume VMFS. A principal vantagem é que o VMFS é otimizado para operações E/S com arquivos grandes como é o caso dos arquivos que contém as imagens de máquinas virtuais. Outro ponto importante é o armazenamento em áreas de disco que podem ser compartilhadas para acesso entre os sistemas operacionais convidados executando em diferentes máquinas virtuais. 6.4.1.4 - Virtualização de rede No ESX Server é possível definir até quatro adaptadores de rede virtual. Cada adaptador tem seu próprio endereço MAC e endereço IP. As interfaces de rede

32 virtual das múltiplas máquinas virtuais podem ser conectadas a um switch virtual. Cada switch pode ser configurado sem qualquer conexão ou a uma LAN física por meio dos adaptadores de rede da máquina anfitriã (host). Esses switches são chamados de VMnets e são abstrações que garantem conexões com velocidade entre as máquinas virtuais, o sistema anfitrião (host) e a LAN física. 6.4.2 VMware Server Um dos mais completos softwares de virtualização de fácil aplicação, pode ser executado em qualquer plataforma x86 padrão. O VMware Server (anteriormente chamado de VMware GSX Server) é a versão adaptada e otimizada para uso em aplicações servidoras profissionais de pequena e média escala. Tornou-se gratuito no mês de junho de 2006 e disponibilizado para download no site oficial do fabricante. O VMware Server é um monitor de máquina virtual do tipo II, ou seja, é necessário que o software execute sobre um sistema operacional anfitrião, que pode ser em sistemas operacionais baseados em Linux ou Windows (existe uma versão para cada uma destas plataformas). Pode ser usado em servidores dedicados, sem monitor nem ambiente gráfico, pois roda remotamente, através de uma interface de administração via web, podendo ativar, desativar e monitorar o status das máquinas virtuais remotamente, e em um desktop no ambiente de trabalho substituindo o VMware Workstation ou o VMware Player. Usando o VMware Server, pode-se transformar um único servidor dedicado em vários servidores virtuais, cada um se comportando como se fosse uma máquina separada. Assim como o VMware ESX, também suporta máquinas virtuais com uma ou duas CPU virtuais. Pode-se ainda, compartilhar com os sistemas convidados, periféricos do hardware como: CD-ROM, memória, placas de rede e portas USB. Quando for preciso visualizar as mensagens de inicialização ou mesmo alterar as configurações do sistema virtual na máquina virtual (por exemplo quantidade de memória RAM ou imagem ISO de boot, etc.) é possível usar o VMware-server-console ou VMware Infrastructure Web Access, interfaces de administração separadas do restante do software, permitindo a conexão com

33 qualquer uma das máquinas virtuais disponíveis, seja local ou remotamente, além de oferecem opções para criar novas máquinas virtuais, incluir ou excluir discos virtuais e instalar ou reinstalar os sistemas operacionais. O VMware Infrastructure Web Access (figura 14), utiliza um browser de internet como portal de acesso ao VMware Server. Já o VMware-server-console (figura 15) utiliza um protocolo próprio para comprimir e transmitir a imagem da tela via rede (usado em casos que o servidor não possui monitor), exibindo-a no desktop escolhido. O maior problema é que o VMware utiliza um protocolo de atualização de tela sem perda, que acaba sendo bastante ineficiente para o uso via rede. Figura 14: VMware Infrastructure Web Acess Figura 15: VMware-server-console No VMware Server o suporte a rede é feito através de VMnets (como no ESX Server),possuindo três modos: Bridged: a máquina virtual é vista como outro computador na rede, com endereço IP manual ou podendo ser obtido via DHCP (tem acesso completo à rede, pode receber um endereçamento IP próprio e fica com todas as portas de entrada disponíveis, como de fosse um PC independente conectado à rede). NAT: a máquina virtual se conecta ao computador anfitrião, que por sua vez se conecta a rede (tem acesso a rede e pode acessar internet se houver, mas não possui portas de entrada, de forma que não é possível rodar servidores). Host-Only: a máquina virtual apenas se conecta ao anfitrião (é conectada a um cabo cross-over virtual e tem acesso apenas ao próprio servidor, ficando desconectada do restante da rede).

34 De acordo com VMware (2007) o VMware Server particiona um servidor físico em várias máquinas virtuais. Cada máquina virtual é isolada de seu hospedeiro e das outras máquinas virtuais, impedindo que sejam afetadas se alguma máquina virtual falhar. Os dados não vazam entre as máquinas virtuais e os aplicativos só podem se comunicar por conexões de rede configuradas. O VMware Server encapsula o ambiente da máquina virtual como um conjunto de arquivos fáceis de fazer backup, mover e copiar. Figura 16 - Particionamento de servidor físico 6.4.2.1 - Vantagens do VMware Server Ao criar e executar máquinas virtuais com o VMware Server, os usuários podem: Abastece servidores adicionais em minutos, sem investir em novo hardware. Executar sistemas operacionais e aplicativos Windows, Linux, Sun e outros no mesmo servidor físico. Facilidade de criação de ambientes de testes; Aumentar a utilização da CPU (Central Processing Unit) de um servidor físico. Mover máquinas virtuais de um servidor físico para outro, sem necessidade de reconfiguração. Capturar o estado completo de uma máquina virtual e recuperar sua configuração.