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 desenvolvimento desta... para os estudos e 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 Disco Virtual Arquivos no Sistema Operacional Anfitrião Virtualização Abstração Disco Real Figuras 08 – Exemplo de abstração Arquivos no Sistema Operacional Anfitrião Disco Real 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. 35 Viabilizar o gerenciamento centralizado para abastecer, monitorar e gerenciar com eficiência a infra-estrutura de TI. Ter acesso ao suporte para produtos de nível corporativo 6.4.2.2 – Desvantagens Como toda tecnologia, o VMware também tem suas limitações. Uma das desvantagens do VMware é com a padronização das janelas de opções, o layout acaba sendo prejudicado em alguns momentos. Outra desvantagem um pouco mais rara é incompatibilidade e perda de performance em algumas aplicações, como banco de dados de grandes sistemas. 6.4.3 - VMware Workstation Caracterizado como uma versão simples e de uso comercial do VMware, é indicada para aplicações mais leves ou testes, utilizada geralmente em estações de trabalho. Possui basicamente os mesmos recursos do VMware Server inclusive com possibilidade de criar máquinas virtuais. O VMware Workstation é um monitor de máquinas virtuais do tipo II disponível para sistemas Windows e Linux, destaca-se pela facilidade de uso proporcionada por seus assistentes que guiam o usuário no processo de criação de máquinas virtuais, e de clones de máquinas virtuais. Também é possível criar grupos de máquinas virtuais, de uma só vez, e colocá-las em redes. Com o VMware Workstation é possível criar máquinas virtuais em dispositivos externos como um disco rígido ou um pen-drive, através de um produto adicional chamado ACE Option Pack. O VMware Workstation, assim como o VMware Server não necessitam a implementação de modificações especiais no sistema convidado. O VMware Workstation pode ser obtido diretamente no site do fabricante por um período de uso de trinta dias sem custo para o usuário (para instalação em ambientes Linux ou Windows), sendo necessário um cadastro prévio para obter um 36 número de licença válido por trinta dias. Passado esse período, será preciso adquirir uma licença definitiva. 6.4.4 - VMware Player Indicada para uso em máquinas virtuais previamente configuradas com o VMware Server ou Workstation, é um versão mais simples dos produtos VMware, e está disponibilizada gratuitamente para download. O VMware Player é indicado para aplicações leves e não oferece suporte a criação ou modificação de máquinas virtuais. Permite somente opções de ativação ou desativação dos periféricos virtuais e alteração da memória RAM virtual das máquinas virtuais em execução. Existem versões do VMware Player para os ambientes Linux e Windows, ambas executam máquinas virtuais criadas por versões mais completas . 6.4.5 - VMware Infrastructure O VMware Infrastructure é uma suíte de aplicativos de virtualização que otimiza o processo de implantação e gerenciamento de máquinas virtuais nas empresas. Ele visa oferecer, em uma solução integrada, ganhos em: virtualização compreensiva, gerenciamento, otimização de recursos e disponibilidade de aplicações. A suíte é composta de um conjunto de aplicativos cujo principal é o VMware ESX Server. Utilizado geralmente para administração de servidores complexos este “pacote” de aplicativos oferece ferramentas capazes de possibilitar que uma simples máquina virtual use múltiplos processadores simultaneamente à habilitar uma migração em tempo de execução de uma máquina virtual de um servidor para outro com a menor queda possível no nível de serviço. 37 7.0 – A PROPOSTA DESTE TRABALHO Propõe-se a virtualização de sistemas utilizando o VMware no ambiente servidor do Frigorífico Excelência de Nova Mutum, com o objetivo da consolidação e um melhor aproveitamento da capacidade de processamento dos servidores existentes na empresa. Para o desenvolvimento deste, serão instalados em um de nossos servidores físicos, dois servidores virtuais capazes de receber serviços hospedados em outro servidor físico. O Frigorífico Excelência atua no segmento industrial, industrializando e comercializando carnes suínas. Com cerca de seiscentos funcionários é considerada uma empresa de grande porte para nossa região. Atualmente devido ao grande fluxo de informações e a necessidade de processamento, a empresa possui uma considerável estrutura de hardware servidor em funcionamento, o parque de servidores conta com quatro máquinas servidoras dedicadas exclusivamente ao gerenciamento de diferentes serviços e aplicações, requisitadas por usuários através de desktops, notebooks e terminais de acesso. Além de mais uma máquina servidora como reserva, preparada para eventuais necessidades, estando à mesma em desuso. Para uma melhor identificação dos servidores e seus respectivos serviços, criamos a tabela a seguir: Identificação Serviço(s) Status Servidor (1) Servidor de domínio (DNS) e gateway Ativo Servidor (2) Firewall, proxy, internet e e-mail Ativo Servidor (3) Banco de dados e o sistema utilizado pelo setor Ativo administrativo, Servidor (4) Banco de dados e o sistema utilizado pelo setor Ativo industrial da empresa Servidor (5) Máquina reserva com sistema operacional e Desuso aplicações básica configuradas Apesar da utilização diária e constante de nosso parque de servidores, verificou-se uma maior “ociosidade” ou redundância de hardware, em dois de nossos servidores em atividade “servidor (1) e servidor (2)”. 38 Beneficiando-se da tecnologia da virtualização e levando-se em conta a possibilidade da utilização de softwares sem custos adicionais, decidiu-se instalar dois servidores virtuais em um de nossos servidores físicos mencionados no parágrafo anterior, recebendo também os serviços até então executados em outro hardware, liberando-o para implementação futura de um servidor de arquivos e perfil de usuários. A escolha para a instalação dos ambientes virtuais e os recebimento de serviços adicionais foi o “servidor (1)”, pois acreditou-se ser mais prático a migração dos serviços existentes no “servidor (2)”. Quanto aos demais servidores, preferiu-se mante-los na situação em que estão, pelo fato dos servidores “3 e 4” possuírem grandes bancos de dados dos sistemas utilizados na empresa, necessitando de um processamento complexo, devendo haver um maior planejamento, análise e tempo para uma possível migração, e o servidor “5” pela necessidade de manter hardware reserva. 7.1 – FONTES DE PESQUISA As informações, bem como os materiais utilizados, foram obtidas por meio de fontes bibliográficas como: livros, revistas, web sites, tutoriais. 7.2 – FERRAMENTAS UTILIZADAS Foram escolhidas para criação/modificação e funcionamento de máquinas virtuais, as versões VMware Server e VMware player, por oferecerem estabilidade, fácil configuração, confiabilidade e licenças de uso gratuitas. Para definição da escolha foram analisados diversos softwares para virtualização, sendo merecedores de destaque e citados neste trabalho aqueles que ofereceram algumas das características mencionadas. A escolha do VMware Server para a virtualização dos sistemas ocorreu em virtude do software contemplar as características anteriormente citadas, acrescidas 39 de um completo suporte a criação ou modificação de máquinas virtuais, interface de fácil manipulação, instalação simples e a possibilidade em caso de dano no hardware, migrar rapidamente uma máquina virtual completamente configurada para outro hardware sem perca de dados e desempenho. O VMware player foi escolhido também por ser um software que embora não seja possível utilizá-lo na criação ou modificação de máquinas virtuais, possibilita rodarmos máquinas virtuais criadas por exemplo no VMware Server, oferecendo uma interface simples e compacta. Além do mais, ambos os softwares, embora proprietários dispõem de licenças de uso gratuitas, o que para a empresa é de estrema importância, uma vez que é uma empresa comercial, portanto deve utilizar softwares registrados/licenciados, os quais geralmente geram custos. E neste caso temos uma exceção quanto a custos adicionais com licenças. A instalação de ambos os softwares baseia-se na estratégia de gerar máquinas virtuais no VMware Server e rodá-las no VMware Player. esta “divisão” de tarefas é mais por uma questão de preferência. Já que poderíamos criar e rodar perfeitamente as máquinas virtuais no VMware Server. Vale destacar ainda, que no site do fabricante existe a possibilidade de criar máquinas virtuais escolhendo uma das três opções oferecidas (veja na figura 17), e configurar também o hardware desejado para a máquina virtual a ser criada (figura 18), tudo ocorrendo on-line, sem a necessidade de utilização do VMware Server. Porém se desejarmos modificar estas máquinas virtuais (inclusão ou exclusão de discos e periféricos virtuais) será necessário a instalação de um software como o VMware Server, justificando assim sua instalação. Figura 17: Opções para criação de Máquinas Virtuais Figura 18: Configurações para Máquinas Virtuais 40 8.0 – IMPLEMENTAÇÃO Definida das diretrizes, preparou-se o “servidor (1)” para receber servidores virtuais, e serviços com aplicações oriundos do “servidor (2)”. As configurações de hardware do ”servidor (1)” estão assim dispostas: • Modelo: DELL Power Edge • Processador: Intel Xeon 3.33 Giga hertz, Dual; • Memória RAM: 4 Giga hertz; • Placas de Rede: Gigabit Networking Controller; • Discos Rígidos: 572 Gigabytes, RAID; • Sistema Operacional: Windows Server 2003 Profissional. Já as configurações de hardware do ”servidor (2)” são as seguintes: • Modelo: DELL Power Edge • Processador: Intel Xeon 3.06 Giga hertz; • Memória RAM: 4 Giga hertz; • Placas de Rede: Gigabit Networking Controller • Discos Rígidos: 250 Gigabytes, RAID • Sistema Operacional: Linux Ubuntu 7.10 8.1 – OBTENDO OS SOFTWARES WMWARE SERVER E PLAYER Para instalação do VMware Server e VMware Player no “servidor (1)”, é necessário obter primeiramente os arquivos contendo os softwares no site do fabricante (http://www.vmware.com). O VMware Server possui versões para Linux e Windows. Sendo necessário fazer um cadastro gratuito para receber o código de registro solicitado durante a instalação. Após o cadastro é disponibilizado um link contendo o endereço para download do software. O procedimento é bastante amigável sendo possível inclusive solicitar vários números de registro (gratuitamente), caso pretenda-se instalar em vários servidores. 41 Após acessar o site do fabricante utilizando o endereço (www.vmware.com/products/server), basta clicarmos na opção download (conforme mostra figura 19), e seguir para a tela de cadastro do VMware Server. Figura 19: Tela inicial para download do VMware Server Se ainda não for cadastrado, deverá ser feito o cadastro através das opções localizadas ao lado direito da janela (conforme mostra a figura 20), caso contrário digitar e-mail e senha. Em seguida escolha a versão para instalação no Windows ou Linux, sendo liberado um link para download, juntamente com o número serial para as ambas as versões. Figura 20: Tela de Cadastro VMware Server 42 O VMware Player, possui também versões para o Windows e Linux. Sendo necessário fazer também um cadastro gratuito, com o diferencial de que não precisa de um número de registro para instalação. Após acessar o site do fabricante utilizando o endereço (www.vmware.com/products/player), deve-se clicar na opção download (conforme mostra a figura 21) e seguir para a tela de escolha de versão do VMware Player. Figura 21: Tela de opção de Download do VMware Player O VMware Player disponibiliza diversas versões para o Windows ou Linux (conforme figura 22), porém antes de obter o download de alguma dessas versões é necessário fazer um pequeno cadastro (vide figura 23). Figura 22: Versões do VMware Player 43 Figura 23: Cadastro para liberação do download do VMware Player 8.2 – INSTALANDO OS SOFTWARES WMWARE SERVER E PLAYER Quanto a instalação do VMware Server na versão Linux, é necessário instalar dois módulos do Kernel (vmmon e vmnet), que permitem que o VMware tenha acesso direto ao hardware. O pacote de instalação inclui módulos pré-compilados para diversas distribuições, mas em muitos casos os módulos precisam ser compilados durante a instalação, tornando necessária a instalação de pacotes adicionais de suporte, pois não são instalados por padrão na maioria das distribuições. O que demanda uma preparação adicional, oferecendo um pequeno grau de dificuldade. Na versão Windows (nosso caso), a instalação é bem mais simples, depois de efetuado o cadastro e baixado o arquivo contendo a versão do VMware Server, basta instalá-lo na máquina desejada, informando o número de registro quando solicitado. A versão do VMware Server escolhida foi a versão 2.0, pois a versão 3.0 ainda estava em fase de testes, não estando totalmente instável. A seguir podemos observar através das figuras (24 e 25) o processo de instalação do VMware Server 2.0 em seu estágio inicial. 44 Figura 24: Inicio da instalação Figura 25: Progresso da instalação Na figura (26), é solicitado o aceite quanto ao contrato de licença para uso do programa. E na figura (27), é o momento em que se escolhe um diretório para instalação do software, caso não houver escolha o programa de instalação do software escolherá o diretório padrão para a instalação. Figura 26: Contrato de Licença para uso Figura 27: Local para instalação Temos na figura (28), a informação pertinente ao servidor de acesso no sistema via web, juntamente com endereços das portas respectivas portas, e a (figura 29) apresenta a escolha da criação de atalhos e instalação da barra de ferramentas para acesso rápido ao site do VMware. 45 Figura 28: Configuração Acesso via web Figura 29: Criação de Atalhos Nas figuras (30, 31, 32 e 33), tem-se o progresso de instalação. É possível observar que a copia dos arquivos acontece automáticamente. Figura 30: Inicio da instalação Figura 32: Inicio da cópia dos arquivos Figura 31: Preparando a instalação Figura 33: Finalização cópia dos arquivos 46 A figura (34) mostra o campo onde se deve informar o número serial de registro da versão, outrem adquirido no site no momento do cadastro para download do software. Na figura (35) há a conclusão do processo de instalação do software. Figura 34: Número Serial Figura 35: Finalizando a Instalação do VMware Server Para o VMware Player em algumas distribuições do Linux o pacote nativo não existe ou está desatualizado, sendo necessário baixá-lo diretamente no site do fabricante, devendo-se instalar primeiro os pacotes adicionais de suporte, para daí sim instalar o VMware Player. Na versão Windows (nosso caso), o procedimento é bem simples e idêntico ao do VMware Server para Windows, após baixado o arquivo contendo o VMware Player (escolhemos a versão 2.5, por ser uma das mais atuais) é só instala-lo, não necessitando de número de registro para instalação. Podemos observar nas figuras (36 e 37) o VMware Player 2.5 em sua instalação inicial. Figura 36: Inicio instalação Figura 37: Preparação para instalação 47 A figura (38) representa o momento em que se escolhe um diretório para instalação do software, caso não houver escolha o programa de instalação do software escolherá o diretório padrão para a instalação como aconteceu no VMware Server. E na figura (39) há o processo de evolução da instalação. . Figura 38: Local de instalação Figura 39: Progresso da instalação Na figura (40) o processo de finalização da instalação é apresentado. Figura 40: Finalização da instalação VMware Player 8.3 – DIFICULDADES NA INSTALAÇÃO DOS SOFTWARES Após a instalação do software VMware Server 2.0, partiu-se para a instalação do VMware Player 2.5, de modo a finalizar todo o processo de instalação dos monitores de máquinas virtuais. Ao iniciar a instalação o sistema acusou uma 48 mensagem de erro (figura 41), impedindo a continuidade da instalação. Diante deste fato, foram feitas algumas análises iniciais, identificando-se a hipótese de: – por existir uma versão instalada do VMware fornecendo serviços de Servidor para máquinas virtuais, não seria possível a instalação de outra versão com características e serviços semelhantes. Figura 41: Mensagem de Erro Após as conclusões iniciais, foram feitos levantamentos mais específicos junto ao site do fabricante e a fóruns de discussão, obtendo a conclusão final de que a hipótese anteriormente explanada era verdadeira. Assim posto, a estratégia descrita no item “7.2”, parágrafo “3”, teve que ser alterada. 8.3.1 – Mudança de Estratégia. A opção foi a desinstalação do VMware Server, por ter uma interface para rodar as máquinas virtuais um pouco mais complexa que o VMware Player. Desta forma, para a criação das máquinas virtuais, adotou-se uma das opção existentes no site do fabricante, conforme descrito no item “7.2”, parágrafo “4”, pois a mesma possibilita a criação de máquinas virtuais com características idênticas as criadas no software VMware Server 2.0. Porém vale destacar que se surgir a necessidade da mudança de algum periférico ou inclusão de algum disco virtual em uma das máquinas virtuais a serem criadas, será necessário a instalação do VMware Server. 49 8.4 – CRIANDO MÁQUINAS VIRTUAIS Através do acesso ao site (http://www.easyvmx.com), escolheu-se dentre as três opções existentes, a opção “1” easyvmx, conforme figura (42), por que é a opção mais simples e rápida para criação de uma máquina virtual. Figura 42: Escolha da opção “1” para criação de Máquinas virtuais Nas telas seguintes foram escolhidas as configurações de hardware necessárias para a criação e um perfeito funcionamento das máquinas virtuais. Na figura (43), temos a configuração inicial da máquina virtual que abrigará o Sistema Operacional “Linux Debian 4.03”, e na figura (44) temos a configuração inicial também da máquina virtual que abrigará o Sistema Operacional “Linux Ubuntu 8.04” Figura 43: Hardware Virtual Debian 4.03 Figura 44: Hardware Virtual Ubuntu 8.04 50 Nas figuras (45,46 e 47), temos as configurações de disco virtual, placa de rede, CD-ROM e periféricos. E na figura (48) o arquivo em formato compacto, contendo a máquina virtual, pronto para download, como exemplo foi utilizada a tela de conclusão da máquina virtual o arquivo “Debian2”. Figura 45: Configuração Placa de Rede Figura 47: Configuração USB, Portas Serial e Paralela Figura 46: Configuração CD-ROM e Disco Figura 48: Arquivo com a Máquina Virtual Tanto a primeira Máquina Virtual criada, e destinada à instalação do Sistema Operacional “Debian 4.03”, quanto a segunda criada, e destinada à instalação do Sistema Operacional “Ubuntu 8.04” seguiram as seguintes configurações de hardware: 51 Tipo de Hardware Virtual Memória Quantidade 512 MB Processador (CPU) 01 Placa de Rede - Vlance 02 Disquete Não CD-Rom 01 Disco Rígido 45 Giga Bytes USB Automático Portal Serial Automático Porta Paralela Automático SOM ENSONIC ES 1371 01 8.5 – INSTALAÇÃO DOS SISTEMAS Criadas as Máquinas Virtuais, foram postas funcionar utilizando-se o VMware Player, já em funcionamento, configurou-se o boot a partir do CD-ROM virtual, e em seguida foram iniciadas as instalações. O primeiro sistema que fora instalado foi o Linux “Debian 4.03”, sendo que foram feitas as devidas configurações para que o mesmo pude-se receber do servidor “2” os serviços de firewall. O segundo sistema o Linux “Ubuntu 8.04”, fora instalado e configurado para receber os serviços de internet e e-mail anteriormente hospedados também no servidor “2”. 8.5.1 – Dificuldades A instalação de ambos os sistemas foi tranqüila não oferecendo dificuldades, até por que não era a primeira vez que estava sendo feita, pois temos alguns computadores utilizando os sistemas Linux mencionados, embora sejam desktop’s e os sistemas não serem virtualizados o processo de instalação é basicamente o 52 mesmo, sendo feitas apenas algumas configurações adicionais para fornecerem os serviços de Servidor. A migração dos serviços existentes no servidor “2” para o servidor “1”, não ofereceu qualquer dificuldade, uma vez que foram feitas fora do horário de pico da empresa, sendo copiados os diretórios, arquivos e configurações diretamente de uma máquina para outra através da ligação de rede conhecida como “cross-over” (conexão direta máquina a máquina via rede). 8.5.2 – Desempenho Embora muitos contestem que a virtualização traz como desvantagem, a exigência de máquinas com poder processamento maior, a utilização do VMware nos Sistemas Operacionais Linux “Debian 4.03” e “Ubuntu 8.04”, em nosso ambiente servidor mostrou um bom desempenho. E claro deve-se ter em mente que embora seja um sistema virtualizado hospedado dentro de outro sistema, não deixa de ser outro computador isolado com todas suas funções e periféricos, e que necessita de processamento, desta forma existe sim uma pequena perda de desempenho, mas isto somente ocorre quando a sistema virtual está em funcionamento, pois é necessário “reservar” a ele parte de processamento do sistema real, caso contrário esta “reserva” é liberada. Mesmo em desktop’s, cuja, o poder de processamento é menor, o funcionamento do VMware é satisfatório, devendo ter em mente que quanto melhor for a capacidade de processamento e armazenamento do hardware hospedeiro, melhor será o desempenho quando se utiliza a virtualização. 8.5.3 – Benefícios Com a consolidação destes serviços espera-se, reduzir custos com manutenção, consumo elétrico e tempo. Tonando mais prático o gerenciamento e controle das informações, uma vez que os serviços como firewall, proxy, internet, e- 53 mail, domínios e gateway passaram a estar centralizados em um único servidor, além da facilidade para implementação de backup. Outro benefício de extrema importância é a liberdade quanto hardware, ou seja, caso venha a ocorrer algum problema de funcionamento com o hardware do servidor “1”, pode-se migrar facilmente as máquinas virtuais contendo seus respectivos serviços para outro hardware, como por exemplo, o servidor “5”. Sem que para isso seja preciso dispor de inúmeras horas para efetuar uma nova configuração. Uma vez que as máquinas virtuais já são pré-configuradas bastando apenas existir a compatibilidade de plataforma. 8.5.4 – Pretensões Futuras A partir deste experimento considerado bem sucedido, pretende-se a consolidação dos demais servidores, de modo a alocar o máximo de serviços possíveis respeitando os índices de utilização, que consideramos como regra interna a taxa máxima de uso da CPU de 70% (setenta por cento). Pretende-se ainda, a implementação de servidores de arquivo virtuais e para armazenamento de perfil usuários e domínios de rede. 54 9.0 - CONCLUSÃO A virtualização oferece mudanças profundas quanto ao modelo tradicional da computação, o qual reduz a importância do sistema operacional, permitindo que um hardware execute quaisquer aplicações com seu sistema operacional de origem, sem precisar interromper as demais aplicações e serviços em execução. Há várias formas de virtualização, e cada uma com suas vantagens e desvantagens. Em um processo de implantação é necessário decidir sobre a mais adequada para instituição de modo que se obtenha uma boa relação custo/benefício no processo. A virtualização na empresa Frigorífico Excelência mesmo sendo muito interessante e benéfica, como toda a nova tecnologia, teve momentos de dificuldades, porém sua implantação ocorreu de maneira satisfatória. Nessa tecnologia problemas de compatibilidade e perda de performance também podem acontecer, sobretudo por causa de combinações mal realizadas, por exemplo, uma aplicação que consuma muito processamento e memória não deve ser virtualizada junto com outra, com risco de que o desempenho dos dois serviços fique severamente prejudicado. Além disso, as máquinas virtuais tendem a consumir mais recursos (principalmente de CPU e memória), o que torna recomendado dispor de um hardware mais robusto a fim de executá-las sem grandes perdas de desempenho. A existência de inúmeros softwares para virtualização tem tornado a implementação da virtualização cada vez mais comum, e monitores de máquinas virtuais como o VMware e o Xen para paravirtualização, são continuas promessas para a popularização desta tecnologia.. Neste trabalho ficou exposto a impossibilidade da instalação do VMware Server 2.0 junto com VMware Player 2.5, porém isto não foi um empecilho para a criação de máquinas virtuais, pois no site do fabricante existe um uma página disponível para a criação e configuração de máquinas virtuais. Os benefícios da virtualização, como a consolidação de servidores, tendem a ser um fator primordial para que novas empresas tornem-se adeptas ao uso desta tecnologia. 55 REFERÊNCIAS BIBLIOGRAFIAS INTEL: Virtualização em Servidores. Disponível via URL em: www.intel.com/portugues/business/technologies/virtualization.htm. Acesso em setembro de 2008. MICROSOFT VIRTUAL PC. Product Information. Disponível via URL em: http://www.microsoft.com/windows/virtualpc/default.mspx. Acesso em outubro de 2008. LAUREANO, Marcos. Máqunas Virtuais e Emuladores. 2006. Novatec Editora, São Paulo. LOPES, A.; LAZARINO, O. VMWARE Inside in INFO, São Paulo, n. 248, p. 126-127, nov. 2006. TANENBAUM, A. S.; WOODHULL, A. S. Sistemas Operacionais Projeto e Implantação 2. ed. Porto Alegre: Bookman, 2000. VIANA, Eliseu Ribeiro Cherene. Virtualização de Servidores Linux para redes corporativas. 2008. Editora Ciência Moderna Ltda. Rio de Janeiro. VMWARE. Virtualization Software. Disponível via URL em: www.vmware.com.br. Acesso em outubro de 2008. XENSOURCE. Open Source Virtualization. Disponível via URL em: www.xensource.com. Acesso em novembro de 2007.