PEDRO HENRIQUE DOMINGOS SPRICIDO MONTEIRO SOLUÇÃO DE UMA INFRA-ESTRUTURA DO GERENCIAMENTO DO AMBIENTE DE SERVIDORES VIRTUAIS ASSIS 2008 SOLUÇÃO DE UMA INFRA-ESTRUTURA DO GERENCIAMENTO DO AMBIENTE DE SERVIDORES VIRTUAIS PEDRO HENRIQUE DOMINGOS SPRICIDO MONTEIRO Trabalho de Conclusão de Curso apresentado ao Instituto Municipal de Ensino Superior de Assis, como requisito de Curso de Graduação, analisado pela seguinte comissão examinadora: Orientadora: Profa. Dra. Marisa Atsuko Nitto Analisador (1): Luiz Ricardo Begosso Analisador (2): Alexandre Charles Cassiano ASSIS 2008 PEDRO HENRIQUE DOMINGOS SPRICIDO MONTEIRO SOLUÇÃO DE UMA INFRA-ESTRUTURA DO GERENCIAMENTO DO AMBIENTE DE SERVIDORES VIRTUAIS Trabalho de Conclusão de Curso apresentado ao Instituto Municipal de Ensino Superior de Assis, como requisito do Curso de Graduação, analisado pela seguinte comissão examinadora: Orientadora: Profa. Dra. Marisa Atsuko Nitto Área de Concentração: Virtualização. Assis 2008 Dedico este trabalho primeiramente a Deus por tudo que tem feito por mim, a minha família e as pessoas que acreditaram em mim. AGRADECIMENTOS A Profa. Dra. Marisa Atsuko Nitto, pela orientação, pelo constante estímulo transmitido durante o desenvolvimento deste trabalho e ao tempo disponibilizado. Aos amigos de faculdade, onde formamos grandes amizades durante este tempo e aos professores pelas amizades conquistadas aos longos desses anos. Á todos os meus amigos e primos que me apoiaram e colaboraram direta ou indiretamente, na execução deste trabalho. Aos meus pais, Carlos e Isabel, pelo apoio que sempre me deram na busca dos objetivos e novos desafios, e nunca desistir, que nada neste mundo é impossível. A minha irmã Ana Elisa e aos meus avós maternos Nair e Pedro (in memorium) e avós paternos Iraci e Orlando. RESUMO O uso de máquinas virtuais vem crescendo cada vez mais nos ambiente de administração de sistemas, acrescentando recursos ao hardware, onde nem sempre é preciso a compra de novos equipamentos. Atualmente devido à grande procura de equipamentos, aplicativos e sistemas operacionais, nos quais exigem cada vez mais máquinas poderosas, as empresas começaram a considerar a virtualização como a solução para seus problemas. Para isso já existem softwares que fazem esse gerenciamento e podem ser aplicados de acordo com as necessidades da empresa. Existem vários tipos de softwares de virtualização o mais conhecido de fácil aplicação e uso é o VMware. O VMware é um software que permite você executar e rodar vários sistemas operacionais na mesma máquina, cada uma se comportando como se fossem independentes. Este trabalho tem como objetivo demonstrar o poder que a virtualização pode proporcionar em uma determinada solução, analisando o problema com a melhor solução que seja mais eficiente obtendo o melhor aproveitamento, o melhor gerenciamento e aumentando a segurança. Palavras-chave: Virtualização, Sistemas Operacionais, Recompilação Dinâmica. ABSTRACT The use of virtual machines has been increasing rapidly in the areas of systems administration, adding resources to the hardware, where is not always needed to buy new equipments. Currently, due a heavy demand of equipments, applications and operational systems, which require powerful machines, the enterprises begin to take account of virtualization as a solution of their problems. Towards this solution, there are already softwares that execute this management process and can be applied according to the necessities of the enterprise. There are several types of virtualization softwares: the most known, which is also the easiest one for application and use, is the VWware. The VWware is a software that is capable to execute and to run several operational systems in the same machine, as if they were independent. This paper intends to demonstrate the power that the virtualization can provide in a determined situation, analyzing the problem with the best solution that is the most efficient, acquiring the best improvement, the best management and increasing the security. Keywords: Virtualization, Operating Systems, Recompilation Dynamics. LISTA DE ILUSTRAÇÕES Figura 1 – Máquinas Virtuais.. ................................................................................... 18 Figura 2 – Sistema de computador.. ......................................................................... 19 Figura 3 - Virtualização por Hardware.. ..................................................................... 22 Figura 4 - Infra-Estrutura Virtual.. .............................................................................. 30 Figura 5 – Sistema sem virtualização.. ...................................................................... 31 Figura 6 - Sistema com virtualização.. ...................................................................... 32 Figura 7 – Modelagem do problema de virtualização. ............................................... 37 Figura 8 – Arquitetura do problema. .......................................................................... 38 Figura 9 – Informações da rede das máquinas reais e virtuais ................................. 39 Figura 10 – Passo 1 da instalação do VMware Server. ............................................. 41 Figura 11 – Passo 2 da instalação do WMware Server ............................................. 42 Figura 12 – Passo 3 da instalação do VMware Server.............................................. 42 Figura 13 – Passo 4 da instalação do VMware Server.............................................. 43 Figura 14 – Passo 5 da instalação do VMware Server.............................................. 43 Figura 15 – Passo 6 da instalação do VMware Server.............................................. 44 Figura 16 – Passo 7 da instalação do VMware Server.............................................. 44 Figura 17 – Passo 8 da instalação do VMware Server.............................................. 45 Figura 18 – Passo 9 da instalação do VMware Server.............................................. 45 Figura 19 – Passo 1 da criação de uma máquina virtual ........................................... 46 Figura 20 – Passo 2 da criação de uma máquina virtual ........................................... 47 Figura 21 – Passo 3 da criação de uma máquina virtual ........................................... 47 Figura 22 – Passo 4 da criação de uma máquina virtual ........................................... 48 Figura 23 – Passo 5 da criação de uma máquina virtual ........................................... 48 Figura 24 – Passo 6 da criação de uma máquina virtual ........................................... 49 Figura 25 – Passo 7 da criação de uma máquina virtual ........................................... 49 Figura 26 – Passo 8 da criação de uma máquina virtual ........................................... 50 Figura 27 – Passo 9 da criação de uma máquina virtual ........................................... 51 Figura 28 – Passo 10 da criação de uma máquina virtual ......................................... 51 Figura 29 – Passo 11 da criação de uma máquina virtual ......................................... 52 Figura 30 – Passo 12 da criação da máquina virtual ................................................. 52 Figura 31 – Passo 13 da criação da máquina virtual ................................................. 53 Figura 32 – Passo 4 da criação da máquina virtual................................................... 54 Figura 33 – Passo 9 da criação da máquina virtual................................................... 54 Figura 34 – Instalação do Windows Xp Professional na máquina virtual. ................. 55 Figura 35 – Alterando o grupo de trabalho do Microsoft Windows XP ...................... 56 Figura 36 – Acesso a rede via Windows ................................................................... 57 Figura 37 – Acesso a rede via Ubuntu ...................................................................... 59 Figura 38 – Acesso a rede via Ubuntu ...................................................................... 59 Figura 39 – Ubuntu executando dentro do Windows XP Professional ...................... 61 Figura 40 – Windows 2003 Server executando dentro do Windows XP ................... 62 Figura 41 – Compartilhamento de arquivos entre máquinas virtuais......................... 63 LISTA DE TABELAS Tabela 1 – Quadro geral das soluções de virtualização ............................................ 28 SUMÁRIO 1. INTRODUÇÃO ......................................................................... 14 1.1. OBJETIVO DO TRABALHO ............................................................... 15 1.2. MOTIVAÇÃO ...................................................................................... 16 1.3. ESTRUTURA DO TRABALHO........................................................... 16 2. FUNDAMENTOS TEÓRICOS .................................................. 18 2.1. MÁQUINAS VIRTUAIS ....................................................................... 18 2.2. O PORQUÊ DAS MAQUINAS VIRTUAIS? ........................................ 19 2.3. VIRTUALIZAÇÃO ............................................................................... 20 2.3.1. Implementação de virtualização .............................................................. 20 2.3.1.1. Virtualização por Software ................................................................................ 20 2.3.1.2. Virtualização por Hardware............................................................................... 21 2.3.2. Técnicas de Virtualização ........................................................................ 22 2.3.2.1. Para-Virtualização ............................................................................................ 22 2.3.2.2. Virtualização Total ............................................................................................ 23 2.3.2.3. Recompilação Dinâmica ................................................................................... 23 2.3.3. Soluções de Virtualização ........................................................................ 24 2.3.3.1. VMware ................................................................................................... 25 2.3.3.2. Virtual Pc ................................................................................................. 25 2.3.3.3. Virtual Server ........................................................................................... 26 2.3.3.4. Xen .......................................................................................................... 26 3. INFRA-ESTRUTURA DOS SERVIDORES VIRTUAIS ............. 29 3.1. FUNCIONAMENTO ............................................................................ 30 3.2. SERVIDOR FÍSICO x SERVIDOR VIRTUAL ..................................... 31 3.3. ÁREAS DE SOLUÇÕES PARA INFRA-ESTRUTURA VIRTUAL ...... 33 3.3.1. Consolidação de Servidores .................................................................... 33 3.3.2. Teste e Desenvolvimento ......................................................................... 34 3.3.3. Continuidade do Negócio......................................................................... 34 3.4. BENEFÍCIOS DA VIRTUALIZAÇÃO .................................................. 34 3.4.1. Particionamento ........................................................................................ 35 3.4.2. Isolamento ................................................................................................. 35 3.4.3. Encapsulamento ....................................................................................... 35 4. MODELAGEM DO PROBLEMA .............................................. 36 4.1. DESCRIÇÃO DO PROBLEMA........................................................... 36 4.2. MODELAGEM DO PROBLEMA......................................................... 37 4.3. ARQUITETURA DO PROBLEMA ...................................................... 38 5. IMPLEMENTAçÃO .................................................................. 40 5.1. CONFIGURAÇÕES DE HARDWARE DAS MÁQUINAS REAIS ....... 40 5.2. INSTALAÇÃO DO VMWARE ............................................................. 41 5.3. CRIAÇÃO DA MÁQUINA VIRTUAL ................................................... 46 5.4. CRIAÇÃO DA MÁQUINA VIRTUAL COM CD DE INSTALAÇÃO ..... 53 5.5. CONFIGURAÇÃO DA REDE ENTRE AS MÁQUINAS ...................... 55 5.6. ACESSO A REDE VIA WINDOWS .................................................... 57 5.7. ACESSO A REDE VIA LINUX............................................................ 57 6. RESULTADOS......................................................................... 60 6.1. UBUNTU 8.04 LTS EXECUTANDO NO WINDOWS XP ................... 60 6.2. WINDOWS SERVER 2003 EXECUTANDO NO WINDOWS XP ....... 61 6.3. COMUNICAÇÃO DE DADOS ENTRE MÁQUINAS VIRTUAIS ......... 62 7. CONCLUSÃO .......................................................................... 64 REFERÊNCIAS BIBLIOGRÁFICAS .................................................... 65 14 CAPÍTULO 1 1. INTRODUÇÃO Nos últimos anos, o processo de virtualização tem sido aplicado em diversos sistemas com a idéia de compartilhar os recursos dos computadores modernos. Os computadores modernos são poderosos o suficiente para o uso da virtualização de modo a tornar possível a execução de vários sistemas operacionais necessitando de apenas um único hardware físico. Esta representação de vários sistemas operacionais sendo executados num mesmo hardware físico é chamada virtualização de software. Isto foi alcançado através da abstração de um hardware convencional atribuindo a maior parte, ou em alguns casos, toda a sua funcionalidade ao software. Este conceito de abstração recebeu o nome de “máquina virtual” que é um software representando as funcionalidades de um hardware (Oliveira, 2007). A utilização da virtualização representa a “execução de várias máquinas virtuais em um mesmo hardware” (Freitas, et al., 2007), aperfeiçoando o desempenho dos computadores, a fim de auxiliar no desempenho dos processos dentro das empresas. O uso da tecnologia de virtualização evoluiu devido ao fato da mesma propor soluções para problemas reais existentes na computação moderna. No entanto, a idéia de virtualização não é tão recente. A virtualização na camada do sistema operacional vem de um bom tempo atrás, onde a primeira máquina virtual foi o VM/CMS da IBM que se refere à família System/370, System/390, zSeries, System z9 IBM mainframes e sistemas compatíveis. Criado no final da década de 70 e utilizado até hoje pela IBM, os sistemas de virtualização estão cada vez mais presentes na tecnologia mundial (Oliveira, 2007). Atualmente, os sistemas virtualizados estão conquistando seu espaço devido ao fato de resolverem alguns pontos que hoje são críticos em diversas empresas tais como: 15 incompatibilidade entre hardware e software no que diz respeito às modificações no decorrer do tempo, ou seja, os hardwares das empresas estão sendo atualizados em uma velocidade maior que os softwares que devem ser executados e são responsáveis por controlar a atividade final das empresas e a utilização dos recursos de hardware pelos softwares pelo mesmo motivo citado anteriormente, ou seja, os softwares não conseguem explorar toda capacidade dos hardwares atuais. Os sistemas virtualizados oferecem algumas vantagens como redução do custo de implementação, aumento da eficácia dos dispositivos, melhor gerenciamento dos servidores e alocação de recursos de hardware. Segundo (Torres e Lima, 2006), a virtualização de sistemas é uma solução para melhorar os recursos do hardware e ao mesmo tempo aproveitar todo o poder de processamento. Para (Laureano, 2006), a virtualização é uma forma de utilizar a capacidade do processador para fornecer benefícios aos usuários. O aumento da complexidade dos computadores (padrões de processador, chipsets, dispositivos de controles, etc) dificulta a configuração das máquinas e a sua utilização. As técnicas de virtualização podem ser utilizadas para ajudar a ocultar essa complexidade dos usuários que, em vez de ver um sistema complexo, vêem em seu lugar uma máquina virtual mais simples e fácil de usar, definida pelo SO (Sistema Operacional). Vários servidores virtuais em um pequeno número de máquinas físicas compõem uma solução para melhorar o uso dos recursos de hardware. O aproveitamento do processamento nem sempre é utilizado ao máximo, uma solução é a utilização de máquinas virtuais. A vantagem é aumentar o poder de processamento e permitir que mais processos sejam executados num mesmo tempo, tornando os equipamentos mais produtivos (Andrade, 2006). 1.1. OBJETIVO DO TRABALHO O objetivo deste trabalho é realizar a virtualização de servidores, criando nos computadores físicos máquinas virtuais ligadas ao computador real processando alguma aplicação ou compartilhando dados. A criação dessas máquinas virtuais visa 16 realizar algum tipo de processo, adquirindo um melhor aproveitamento dos recursos do computador e gerenciamento, além do aumento de segurança. A ferramenta utilizada para a implementação da virtualização será WMware Server 1.0.7, que é um dos mais completos softwares de virtualização. Este software é de fácil aplicação e pode ser executado em qualquer plataforma X86 padrão, além do VMware Server ser um produto gratuito de virtualização para servidores Windows e Linux. O VMware é um produto potente e, ao mesmo tempo, de fácil utilização por usuários sem experiência com a tecnologia de virtualização de servidores. 1.2. MOTIVAÇÃO A motivação para o desenvolvimento deste trabalho é devido ao fato de que ao longo dos anos, as máquinas virtuais vêm sendo utilizadas com várias finalidades, como processamento distribuído e segurança. Um uso freqüente de sistemas baseados em máquinas virtuais é o que chamamos de “consolidação de servidores”. Em vez da utilização de vários equipamentos com seus respectivos sistemas operacionais é utilizado somente um computador com máquinas virtuais abrigando os vários sistemas operacionais e suas aplicações e serviços. A aplicação desta tecnologia apresenta um ganho de qualidade e agilidade aos serviços prestados. De acordo com (Tanenbaum e Woodhull, 2000), tudo que se referem aos computadores e aos sistemas operacionais evoluem a passos largos. E é essa evolução que abre caminho para aplicativos mais poderosos e tem aumentado dia-a-dia a presença de computadores em nossas vidas. 1.3. ESTRUTURA DO TRABALHO O trabalho é dividido em oito capítulos. No primeiro capítulo, temos uma introdução sobre virtualização, objetivo e motivação do trabalho. No segundo capítulo temos os fundamentos teóricos para o entendimento de virtualização que são: máquinas virtuais, as formas de implementação de virtualização, as técnicas de virtualização e as principais soluções de virtualização. No terceiro capítulo temos os fundamentos 17 de uma infra-estrutura virtual, um comparativo entre servidor físico e servidor virtual, as áreas de soluções de virtualização e os benéficos da virtualização. No quarto capítulo demonstra a modelagem do problema que será aplicada. No quinto capítulo mostra as implementações realizadas com o software de virtualização, a criação de máquinas virtuais com os resultados obtidos e comentários sobre eles. No sexto capítulo temos os resultados obtidos no trabalho. No sétimo capítulo temos a conclusão do trabalho. Por último temos as referências bibliográficas. . 18 CAPÍTULO 2 2. FUNDAMENTOS TEÓRICOS Neste capítulo, serão definidos os principais conceitos utilizados no desenvolvimento do trabalho. 2.1. MÁQUINAS VIRTUAIS O conceito de máquinas virtuais não é tão recente, vem do fim dos anos 50 e início dos anos 60. As origens das máquinas virtuais foram desenvolvidas para centralizar os sistemas de computador utilizado no ambiente VM/370 da IBM (Laureano, 2004). A utilização de máquinas virtuais vem se tornando uma alternativa para vários sistemas dentro das empresas pelas vantagens que a proporcionam com relação à redução de custo, portabilidade e o gerenciamento da infra-estrutura. Figura 1 – Máquinas Virtuais. (Bojczuk, 2008). 19 Uma máquina virtual (Virtual Machine – VM) é definida como sendo uma cópia de uma máquina real e seu funcionamento é como uma máquina real, como mostra a Figura 1. O termo máquina virtual se refere quando trabalha com diversos sistemas sendo executados em uma única máquina real, dependendo do poder de processamento do computador real torna-se possível a execução das várias máquinas virtuais. Um ambiente de máquina virtual é criado por um monitor de máquinas virtuais, onde o monitor cria uma ou mais máquinas virtuais em uma máquina real. 2.2. O PORQUÊ DAS MAQUINAS VIRTUAIS? Os sistemas de computadores são compostos basicamente por três componentes: hardware, sistema operacional e as aplicações, conforme Figura 2. Figura 2 – Sistema de computador. (Laureano, 2006). A função do hardware é executar as operações solicitadas pelas aplicações. O sistema operacional recebe as solicitações das operações controlando o acesso ao hardware. 20 Os sistemas operacionais e as aplicações são projetados para aproveitar o máximo dos recursos do hardware, onde nem sempre isso ocorre. Ao longo dos anos foram desenvolvendo vários sistemas operacionais e entre eles os sistemas operacionais não compatíveis entre si. A utilização das máquinas virtuais possibilita a capacidade de resolver este problema, pois, cria-se uma camada para compatibilizar diferentes sistemas operacionais, que chama máquina virtual. 2.3. VIRTUALIZAÇÃO A virtualização essencialmente possibilita que um computador faça o trabalho de vários computadores compartilhando de um único servidor entre vários ambientes distintos. Ambientes virtuais tornam possível que múltiplos sistemas operacionais e múltiplas aplicações sejam executados localmente ou em um acesso remoto, acabando com limitações físicas e geográficas. Alem disso, possibilita a economia de energia e a redução de despesas. Devido ao uso eficiente dos recursos computacionais, é possível obter alta disponibilidade, melhor gerenciamento de desktops, aumento da segurança e a melhoria do processo de recuperação de desastres com a implementação de uma infra-estrutura virtual. 2.3.1. Implementação de virtualização As formas de implementação de virtualização podem ser feitas de duas maneiras: virtualização por software e virtualização por hardware. 2.3.1.1. Virtualização por Software Neste tipo de implementação, as máquinas virtuais são controladas por um software de virtualização, chamado de servidor de virtualização. Cada máquina possui seu 21 próprio sistema operacional compartilhando os recursos necessários para ser processado. Para um melhor entendimento desta forma de implementação é importante conhecer dois componentes do ambiente computacional virtual: o hospedeiro e o convidado. • Hospedeiro: é o sistema operacional onde está instalado e será executado direto sobre o servidor ou hardware físico; Convidado: é o sistema operacional onde será executado sobre o servidor • hospedeiro, construindo assim uma máquina virtual. Qualquer servidor que se espera hospedar uma ou mais máquinas virtuais devem possuir recursos para o servidor hospedeiro e para os sistemas convidados. Neste tipo de implementação ajuda muito na redução de recursos de hardware, podendo implicar em limitações no que se diz a respeito ao uso de memória, discos, placas e outros dispositivos, podendo trazer vários problemas, pois se acontecer do sistema operacional falhar, os sistemas convidados também serão afetados, além de ficar mais difícil de controlar e limitar o uso do processador entre as máquinas virtuais. 2.3.1.2. Virtualização por Hardware Este tipo de implementação é feito através do hardware, onde não existirá um software que realizará a implementação para que ocorra a virtualização. Neste caso, cada máquina virtual é isolada, e a implementação será por meio de alocação de processadores, de memória, de discos e de interfaces. Este tipo de virtualização apresenta uma vantagem em relação à virtualização por software, pois se uma máquina apresentar problemas, não afetará as demais, por estarem isoladas e implementadas com características próprias. A Figura 3, mostra um exemplo de virtualização por hardware. 22 Figura 3 - Virtualização por Hardware. (Laureano, 2006). Este modelo adotado na década de 60 para WM/370 nos mainframes IBM e é a tecnologia utilizada pelo VMware na plataforma x86. Como desvantagem neste tipo de implementação seria um custo mais elevado, pois exige um determinado hardware específico, como servidores com características mais modernas. 2.3.2. Técnicas de Virtualização As técnicas de virtualização podem ser de três tipos: Para-Virtualização, Virtualização Total e Recompilação Dinâmica. 2.3.2.1. Para-Virtualização A Para-Virtualização é uma técnica que consiste em apresentar ao sistema operacional onde está sendo emulada uma máquina virtual que seja similar, mas não idêntica à arquitetura física real. Este tipo de solução aumenta o desempenho das máquinas virtuais que a utilizam. Portanto, são necessárias modificações nos sistemas operacionais convidados que executam na arquitetura x86. As mudanças 23 necessárias nos sistemas convidados que devem ser realizados nos testes de implementação já ocorrem em versões mais recentes do Linux (Andrade, 2006). A Microsoft anunciou, recentemente, uma parceria com a companhia XenSource para futuras versões do Windows Server, através de virtualização, para que possam executar distribuições Linux que utilizam Xen como máquina virtual. Isso mostra que a modificação do sistema operacional convidado é possível e pode ser realizada sem sofrer um impacto muito grande na evolução dos sistemas operacionais existentes no mercado (Freitas et al., 2007). 2.3.2.2. Virtualização Total A Virtualização Total é uma técnica que permite uma estrutura completa de hardware a ser virtualizada, isto é, o sistema a ser virtualizado não sofrerá qualquer tipo de alteração. Para que isto ocorra é realizada uma simulação completa do hardware da máquina de modo que qualquer sistema operacional possa ser executado. A principal vantagem de utilizar esta técnica é o fato que o sistema virtualizado não sofrerá alteração, mas tem como desvantagem o sistema virtualizado será executado de uma forma mais lenta. 2.3.2.3. Recompilação Dinâmica A Recompilação Dinâmica é também conhecida como tradução dinâmica de partes do código. A compilação consiste em traduzir durante a execução de um programa as instruções de um formato para outro. Uma aplicação desta técnica também se refere à compilação just-in-time (JIT). Elas são utilizadas para aumentar a performance de aplicativos, onde são realizadas a conversão (tradução) de uma linguagem bytecodes para uma linguagem que a máquina possa entender. A recompilação dinâmica (ou tradução) é realizada por sete passos. 24 1º passo: Agrupamento de bits Quando um programa é compilado e transformado em um arquivo executável utilizando a linkedição. Ele guarda características que identificam a memória, os registradores e as funções do sistema operacional que são manipulados. Uma máquina virtual pode usar o conhecimento sobre o formato do executável e, pelo uso de técnicas heurísticas, recuperarem os conjuntos de bits do executável e reordená-los. • 2º passo: Desmontagem (disassembling) Os bits são desmontados e transformados em um conjunto de instruções e operadores ordenados em pares. • 3º passo: Geração intermediária do código As instruções são transformadas para uma representação de máquina independente. • 4° passo: Decompilação A representação gerada é transformada em uma linguagem de alto nível. • 5º passo: Compilação O código gerado é novamente compilado para a nova plataforma. • 6º passo: Montagem (assembling) Os códigos-objeto (gerados pela compilação) são novamente montados (linkeditados), preparando a criação de um “novo” executável. • 7º passo: Armazenagem dos bits Os bits são agrupados de forma a gerar o novo executável. 2.3.3. Soluções de Virtualização No mercado existem diversos softwares que atuam na virtualização, onde é possível investir em uma tecnologia segura e confiável obtendo a disponibilidade de melhores 25 recursos e investimento em produtividade com esses aplicativos. As principais soluções disponíveis no mercado são: VMware, Virtual PC, Virtual Server e Xen. 2.3.3.1. VMware O VMware é um conjunto de software disponibilizado pela VMware Inc, onde oferecem ferramentas de solução para virtualização completa. Os softwares disponibilizados se dividem em três produtos: VMware Workstation e o VMware Player (produtos para ambiente desktop) e VMware ESX Server (produto para ambiente servidor). Esta é uma solução que interage em diferentes sistemas operacionais, sendo aplicado em versões para o ambiente Linux e ambiente Windows. Sempre que possível tenta converter os comandos usados pelo sistema dentro da máquina virtual em comandos que o sistema host (hospedeiro) possa entender e executar em seguida. A principal vantagem é o suporte integral de recursos sem a necessidade de criar código de tradução complexo e pesado ao desempenho da máquina. Sendo que suas principais características são que suporta sistemas operando na tecnologia 64 bits (incluindo Windows e Linux), monitora e controla a infra-estrutura em console central de gerência e suporta processadores SMP virtual. 2.3.3.2. Virtual Pc Esta é uma solução da Microsoft desenvolvida principalmente para atender o Microsoft Windows XP. Como grande vantagem permite que os equipamentos possam ser configurados mais rápidos e permite ao usuário que troque de sistema operacional sem a necessidade de realizar login. As principais características são de que suporta até 4 (quatro) adaptadores de rede por máquina, suporte para até 4 (quatro) GB de memória, configurações baseadas na linguagem XML, possui Virtual Machine Additions, que oferece alto nível de 26 integração entre os sistemas e executa sua maior parte dos sistemas x86 sem a necessidade de drivers customizados. 2.3.3.3. Virtual Server Esta é uma solução da Microsoft que visa melhorar o máximo de performance e aumentar a eficiência das grandes empresas. Reduzindo custos e otimizando recursos de hardware, proporcionando assim um maior desempenho. As principais características são de que apresentam suporte para conectividade permitindo cluster de todas as máquinas virtuais que está executando sobre um host, suporta tecnologia 64 bits, melhorias no Myper-threading, suporte para F6 Disk e funcionalidades pré-compactador de disco virtual. 2.3.3.4. Xen O projeto Xen nasceu na Universidade de Cambridge, tendo se transformado na instituição independente XenSource, que foi depois adquirida pela Citrix Systems, e é a versão opensource para virtualização. Não é uma solução fácil de usar como o VMware, sendo mais voltado para uso em servidores Linux, FreeBSD ou Windows, permitindo rodar vários servidores virtuais numa única máquina. As requisições feitas pelas máquinas virtuais são organizadas e repassadas para o sistema hospedeiro. Ele permite a interação com uma quantidade maior de servidores virtuais em um só computador, que é acessível a todos que querem participar deste mundo virtual. Segundo notícias da Sun, os motivos para se considerar o Xen deve se ao fato de ser relativamente leve, pois não consome grande quantidade de recursos da CPU, atinge um alto grau de isolamento entre as tecnologias de máquinas virtuais e suporta combinações variadas de sistemas operacionais e versões, além de executar dinamicamente uma instância do sistema operacional sem afetar o serviço. Xen é o meio mais rápido e seguro de virtualização de softwares disponíveis hoje em dia. O Xen utiliza um conceito chamado para-virtualização, onde o sistema 27 operacional executando dentro de uma máquina virtual tem a ilusão de estar sendo executado diretamente sobre o hardware. O Xen se encarrega de organizar as requisições feitas pelas máquinas virtuais e repassá-las ao sistema principal. O Xen é uma opção acessível e robusta para aqueles que querem entrar no mundo virtualizado. As vantagens do Xen são os excelentes desempenhos e o baixo custo. E uma das desvantagens do Xen é que para executar dentro do Xen é necessário que o sistema hospedeiro seja modificado. Não é possível executar qualquer sistema diretamente, como no caso do VMware. No caso dos servidores (onde temos um público da área técnica) isto não chega a ser um grande problema, mas nos desktops ele é ainda pouco usado. Na Tabela 1 são apresentadas as principais soluções de virtualização existentes. 28 TABELA 1 - QUADRO GERAL DAS SOLUÇÕES DE VIRTUALIZAÇÃO Nome Criador Fornecedor Suporte SO para o host (SO Anfitriões) Linux Linux, Windows, BSD Linux Linux na versão kernel do host (várias distribuições Linux) Depende da arquitetura do CPU convidado Linux, Windows, DOS, FreeBSD Linux KVM KVM Qumranet Linux VServer Projeto Comunitário Projeto VServer QEMU Fabrice Bellard VirtualBox Fabrice Bellard ajudado por outros desenvolvedores Inno Tek Comunidade e Qumranet para o produto comercial Distribuições, fornecedores independentes Comunidade Innotek Innotek Linux, OS X Virtual PC 2007 Microsoft Microsoft Microsoft Virtuozzo SWsoft Parallels (antiga SWsoft) Parallels Windows Vista (Business, Enterprise, Ultimate), XP Pro, XP Tablet PC Edition Linux, Windows VMware ESX Server VMware VMware VMWare, parceiro SO próprio VMware Server VMware VMware VMWare, parceiro Windows, Linux VMware Workstation VMware VMware VMWare, parceiro Windows, Linux VMware Player VMware VMware VMWare, parceiro Windows, Linux Xen Universidade de Cambridge, Intel e AMD Xensource/Citrix Xensource/Citrix NetBSD, Linux, Solaris Linux SO para hóspedes (SO Convidados) Linux, Windows, Mac OS X, Solaris, FreeBSD Windows, Mac Tecnologia (Método de operação) Virtualização na camada de sistema operacional Virtualização na camada de sistema operacional Emulação com Recompilação Dinâmica Virtualização Total Área de aplicação típica Usado por/em Virtualização de servidor e desktop Acelerar QEMU desempenho do Virtualização de servidor em Linux Hospedagem, isolamento de serviços e segurança Teste/Verificação de software, virtualização de desktop Virtualização de desktop Desenvolvedores, testadores e estações de trabalho Estações de trabalho, consolidação de servidores e desenvolvimento Estações de trabalho, consolidação de servidores e desenvolvimento DOS, Windows, OS/2 Virtualização Total Virtualização desktop de Várias distribuições Linux, Windows Virtualização na camada de sistema operacional Virtualização Total Virtualização servidor Linux/Windows Virtualização servidores de em Virtualização Total Virtualização servidores de Servidores, desenvolvedores e testadores Virtualização Total Virtualização desktop de Profissionais técnicos e desenvolvedores avançados Virtualização Total Virtualização desktop de Paravirtualização Virtualização para servidores Linux e Windows Profissionais técnicos, desenvolvedores avançados e usuários finais Consolidação de servidores Windows, Red Hat, SuSE, Netware, Solaris, FreeBSD DOS, Windows, Linux, FreeBSD, Netware, Solaris DOS, Windows, Linux, FreeBSD, Netware, Solaris DOS, Windows, Linux, FreeBSD, Netware, Solaris Linux, NetBSD, FreeBSD, OpenBSD, Solaris, Windows XP & 2003 Server Tabela 1 – Quadro geral das soluções de virtualização de Consolidação de servidores, recuperação de desastres e provedores de serviço Consolidação de servidores 29 CAPÍTULO 3 3. INFRA-ESTRUTURA DOS SERVIDORES VIRTUAIS A função de virtualização oferece um paradigma inteiramente novo de implantação e licenciamento para permitir que múltiplas instâncias de sistema operacional sejam executados em uma infra-estrutura virtual separada do hardware por uma tecnologia de virtualização baseada em um monitor fino. As principais propostas de valor que a virtualização de servidor permitem são essas: • Consolidação de servidor: Possibilitar que os clientes reduzam a quantidade total e o custo de propriedade de servidor minimizando a utilização do hardware, consolidando cargas de trabalho e reduzindo os custos de gerenciamento. • Ambientes de desenvolvimento e teste: Criar um ambiente mais flexível e fácil de gerenciar que maximize o hardware de teste, reduzindo custos, melhore o gerenciamento do ciclo de vida e melhore a cobertura dos testes. • Gerenciamento de continuidade de negócios: Eliminar o impacto de tempos de inatividade programados e não programados e permitir capacidades de recuperação de desastres com recursos como a Migração ao Vivo e clustering de host. • Centro de dados dinâmico: Utilizar os benefícios da virtualização para criar uma infra-estrutura mais ágil combinada com novos recursos de gerenciamento para permitir a você mover máquinas virtuais sem causar impacto sobre os usuários. A infra-estrutura virtual cria uma camada abstrata entre os dispositivos físicos de um computador e o sistema operacional. Isso significa que os sistemas falam com um hardware virtual e não diretamente com o hardware físico. 30 Com isso podemos gerenciar diversos sistemas de um ponto centralizado de controle, podemos compartilhar recursos entre cargas de trabalho para aumentar a eficiência e utilização. Com isso a Tecnologia de Informação consegue ter um data center que seja mais preparado para a necessidade dos negócios. A Figura 4 mostra um modelo de infra-estrutura virtual. Figura 4 - Infra-Estrutura Virtual. (Marques, 2007). 3.1. FUNCIONAMENTO O funcionamento de um servidor virtual é fazer com que todas as requisições realizadas pelos aplicativos sejam direcionadas para o Kernel, onde ele requisita recursos ao hardware. O servidor virtual realiza os controles das requisições junto ao Kernel controlando os acessos ao hardware. Um dos objetivos para esta forma de funcionamento é que ele garante o isolamento de sistemas operacionais, ou seja, um sistema virtualizado não pode se comunicar com outro sistema via Kernel e outra máquina física que virtualiza essas máquinas virtuais. Isto significa que não existe comunicação entre eles, devido ao isolamento criado entre as máquinas. 31 3.2. SERVIDOR FÍSICO x SERVIDOR VIRTUAL Será apresentado nesta seção as diferenças entre a arquitetura de um servidor físico e um servidor virtual. A Figura 5 mostra a arquitetura de um servidor físico que é um sistema sem virtualização. Servidor físico (sistema sem virtualização) Figura 5 – Sistema sem virtualização. (Marques, 2007). 32 A Figura 6 mostra a arquitetura de um servidor virtual que é um sistema com virtualização. Servidor virtual (sistema com virtualização) Figura 6 - Sistema com virtualização. (Marques, 2007). Chega um momento que se encontra um limite, onde é preciso virtualizar, principalmente na área de tecnologia. A partir do momento que está em um ambiente de produção, é parecido com servidores físicos, quando vai dimensionar, tendo que ter os dados dos serviços que estão operando (uso do hardware), para que quando for realizar a virtualização não ocorra algo errado. A virtualização isola a bios, sistema operacional e aplicações do hardware físico, e isto faz com vários sistemas podem compartilhar hardware, ou serem movidas para um hardware diferente sem interrupção de serviços (Marques, 2007). 33 Em um ambiente onde não utiliza a virtualização observa-se que ele tem uma utilização de recursos de hardware inferior ao normal, ao contrário, do ambiente virtualizado, os sistemas podem compartilhar recursos de hardware, obtendo assim uma melhor utilização dos recursos. Além disso, devido ao fato da criação da camada virtual, o Kernel, tem-se a independência do hardware, podendo mover um sistema de um servidor para outro, com características de hardware diferentes que não sofrerá nenhum impacto (Marques, 2007). Para que não ocorram problemas durante um processo de virtualização, é importante, sempre fazer um planejamento. Sempre que pensar em virtualizar, pensar em planejar, antes de entrar em produção, para que não ocorra um imprevisto. 3.3. ÁREAS DE SOLUÇÕES PARA INFRA-ESTRUTURA VIRTUAL As áreas de soluções para uma infra-estrutura virtual são: consolidação de servidores, teste e desenvolvimento e continuidade do negócio. 3.3.1. Consolidação de Servidores A virtualização possibilita a realização da junção de vários servidores em um único servidor físico, diminuindo custos, aquisição e operação. As características principais da consolidação de servidores podem ser resumidas por: • Consolida e particiona sistemas; • Diminui o custo de aquisição de servidores físicos; • Diminui custos operacionais. 34 3.3.2. Teste e Desenvolvimento A possibilidade de disponibilizar rapidamente novos servidores, além de poder executar vários tipos de sistemas faz parte do teste e desenvolvimento e tem como características principais: • Consolida servidores de teste e desenvolvimento; • Rápida disponibilidade de servidores; • Armazena diversos padrões de máquinas de teste. 3.3.3. Continuidade do Negócio Neste caso, se ocorrer uma falha do servidor físico, facilmente pode-se migrar as máquinas virtuais instaladas dele para outro servidor utilizando uma técnica de virtualização, com isso diminuindo bastante o tempo de recovery em caso de falha. A continuidade do negócio tem como características: • Permite solução de alta disponibilidade com menos hardware; • Melhora tempo recovery; • Armazenam cópias dos servidores de produção como arquivos de máquinas virtuais, independente de hardware para Disater Recovery. 3.4. BENEFÍCIOS DA VIRTUALIZAÇÃO Os benefícios da virtualização envolvem três conceitos: particionamento, isolamento e encapsulamento. Estes conceitos serão descritos resumidamente para facilitar o entendimento. 35 3.4.1. Particionamento • Aumento de utilização do hardware pelo compartilhamento de recursos através do grande número de máquinas virtuais; • Múltiplas aplicações e sistemas operacionais podem ser executados em um único servidor físico; • Recursos computacionais são tratados em uma única forma para que sejam alocadas máquinas virtuais de maneira controlada; • Utiliza todos os recursos do servidor físico. 3.4.2. Isolamento • Máquinas virtuais são completamente isoladas da máquina hóspede e de outras máquinas virtuais. Se uma máquina virtual tem problemas, todas as outras serão afetadas; • Dados não vazam entre máquinas virtuais e aplicativos podem se comunicar entre conexões de rede configuradas; • Isolamento de falha e segurança em nível de hardware; • Controle da CPU, RAM, Disco, preserva o desempenho. 3.4.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 do hardware virtual é fornecida a aplicação, compatibilidade; • Todo o estado da máquina virtual é encapsulado; • Estado da máquina virtual pode ser armazenado em um arquivo. garantindo 36 CAPÍTULO 4 4. MODELAGEM DO PROBLEMA A virtualização consiste em uma camada virtual que permite que várias máquinas virtuais, com sistemas operacionais heterogêneos, sejam executadas isoladamente, lado a lado, na mesma máquina física. Desacoplando o hardware físico do sistema operacional, a virtualização permite: • Executar várias máquinas virtuais, com sistemas operacionais heterogêneos, ao mesmo tempo e na mesma máquina física. • Criar máquinas virtuais configuradas totalmente de forma isolada, com seu próprio conjunto de hardware virtual para execução de sistemas operacionais e aplicativos. • Salvar, copiar e provisionar rapidamente máquinas virtuais que possam passar de um servidor físico para outro, para permitir a consolidação da carga de trabalho e a manutenção do tempo de inatividade zero. As soluções VMware simplificam a estrutura de TI (tecnologia da informação), permitindo que as empresas utilizem seus recursos de armazenamento, rede e computação para controlar os custos e ter uma resposta mais rápida. 4.1. DESCRIÇÃO DO PROBLEMA Neste trabalho será feita uma virtualização de servidores com o objetivo de realizar compartilhamento de dados. Para isso serão considerados dois servidores (servidor MR1 e servidor MR2) na qual tem instalado máquinas virtuais. Cada uma das máquinas virtuais será utilizada para processar alguma aplicação e também compartilhar dados entre outras máquinas virtuais ou máquinas reais. 37 Será considerado que os servidores que estejam processando o Kernel, não tenham acesso direto à internet, pois pode ocorrer alguma invasão em um dos servidores, danificando as demais máquinas virtuais. 4.2. MODELAGEM DO PROBLEMA A Figura 7 mostra a modelagem do problema de virtualização de servidores que será abordado neste trabalho. Figura 7 – Modelagem do problema de virtualização. O modelo descrito apresenta dois servidores físicos (servidor MR1 e servidor MR2) onde ambos têm instalado o sistema operacional Microsoft Windows XP e foi utilizado o software de virtualização VMware Server 1.0.7 para criar as máquinas virtuais. No servidor MR1 foram criadas três máquinas virtuais e em cada uma delas foi instalado um sistema operacional distinto. Os sistemas operacionais das máquinas virtuais são Microsoft Windows XP, Microsoft Windows 2003 Server e Ubuntu 8.04 LTS . No servidor MR2 foi criada uma única máquina virtual onde foi instalado o sistema operacional Microsoft Windows 2003 Server. 38 Esta estrutura para o modelo do problema visa inicialmente dois tipos de aplicação: acesso ao compartilhamento de arquivos entre as máquinas virtuais e execução do sistema operacional dentro de outro sistema operacional. 4.3. ARQUITETURA DO PROBLEMA A Figura 8 apresenta detalhadamente a arquitetura do modelo de virtualização. Figura 8 – Arquitetura do problema. 39 A Figura 9 apresenta detalhadamente os sistemas operacionais instalados em cada uma das máquinas e suas configurações de redes. Figura 9 – Informações da rede das máquinas reais e virtuais 40 CAPÍTULO 5 5. IMPLEMENTAÇÃO A realização do processo de virtualização apresentada na Figura 7 pode ser feita utilizando inúmeras ferramentas existentes no mercado. A ferramenta adotada para solucionar o problema proposto será VMWare Server 1.0.7. Para dar início ao processo de virtualização é necessário realizar o download da ferramenta VMware Server 1.0.7, que é um software gratuito e pode ser encontrado no seguinte link http://register.vmware.com/content/download-107.html onde encontra-se o download da versão no ambiente operacional Windows e Linux. Também é necessário realizar um registro no mesmo site, clicando em Register, onde será preenchido um formulário para que enviem o serial do software que será utilizado no término na instalação do WMware Server 1.0.7. Nesta seção serão apresentados todos os passos para a instalação do software VMware Server 1.0.7, como criar, instalar e executar as máquinas virtuais e também a comunicação de arquivos entre as máquinas virtuais e as máquinas reais. 5.1. CONFIGURAÇÕES DE HARDWARE DAS MÁQUINAS REAIS Será apresentado nesta seção às configurações mínimas das máquinas utilizadas para a implementação e testes do processo de virtualização. • Máquina real (MR1): PC Particular - Processador: Intel Core 2 Duo 2.2 GHz - Memória: 1GB DDR2 - Disco Rígido: 160 GB 41 - Unidade Ótica: DVD-RW - Placas On Board: rede, vídeo e som - Sistema Operacional: Microsoft Windows XP • Máquina real (MR2): PC do Laboratório de Redes - Processador: Celeron (R) 2.6 GHZ - Memória: 512 MB DDR - Disco Rígido: 40 GB - Unidade Ótica: CD-RW - Placas On Board: rede, vídeo e som - Sistema Operacional: Microsoft Windows XP 5.2. INSTALAÇÃO DO VMWARE A instalação do software VMware é feita após o download da ferramenta, executando o arquivo para iniciar o processo de instalação. A Figura 10 mostra a interface inicial da ferramenta e o passo 1 da instalação do VMware Server. Figura 10 – Passo 1 da instalação do VMware Server. 42 A Figura 11 mostra o passo 2 da instalação do VMware Server. Figura 11 – Passo 2 da instalação do WMware Server A Figura 12 mostra o passo 3 da instalação do VMware Server. Figura 12 – Passo 3 da instalação do VMware Server 43 A Figura 13 mostra o passo 4 da instalação do VMware Server. Figura 13 – Passo 4 da instalação do VMware Server A Figura 14 mostra o passo 5 da instalação do VMware Server. Figura 14 – Passo 5 da instalação do VMware Server 44 A Figura 15 mostra o passo 6 da instalação do VMware Server. Figura 15 – Passo 6 da instalação do VMware Server A Figura 16 mostra o passo 7 da instalação do VMware Server. Figura 16 – Passo 7 da instalação do VMware Server 45 A Figura 17 mostra o passo 8 da instalação do VMware Server. Figura 17 – Passo 8 da instalação do VMware Server A Figura 18 mostra o passo 9 da instalação do VMware Server. Figura 18 – Passo 9 da instalação do VMware Server 46 5.3. CRIAÇÃO DA MÁQUINA VIRTUAL Nesta Seção, será criada e instalada uma máquina virtual (utilizando um arquivo ISO (imagem) de instalação). Depois de instalar o VMware Server 1.0.7, execute o atalho localizado na área de trabalho “VMware Server Console” ou clique em “Iniciar” “Programas” “VMware” “VMware Server” “VMware Server Console” , onde abrirá a interface principal como mostra a Figura 19. Figura 19 – Passo 1 da criação de uma máquina virtual Depois de clicar em “OK” mostrará todas as máquinas virtuais instaladas em seu computador. Como neste caso ainda não existe nenhuma máquina virtual instalada, será demonstrado passo-a-passo como criar e instalar uma máquina virtual. A criação das máquinas virtuais é basicamente a mesma independente do sistema operacional a ser instalado, como exemplo o sistema operacional a ser instalado na máquina virtual será o Ubuntu 8.04 LTS onde é necessário realizar o download no link www.ubuntu-br.org, será demonstrado a instalação do sistema operacional a partir de um arquivo ISO. Para dar início ao processo de criação da máquina virtual clique em “File”, “New” e “Virtual Machine” ou a tecla de atalho “Ctrl+N”. A próxima interface será como a Figura 20, clique em “avançar”. 47 Figura 20 – Passo 2 da criação de uma máquina virtual A interface da Figura 21 mostra a seleção que deve ser feita para a configuração da máquina virtual, clique em avançar. Figura 21 – Passo 3 da criação de uma máquina virtual 48 Nesta interface selecione o sistema operacional que será instalado na máquina virtual, assim o sistema já configura o PC virtual com os requisitos básicos para a instalação do sistema operacional selecionado, como mostra a Figura 22. Figura 22 – Passo 4 da criação de uma máquina virtual Nesta tela pode-se alterar o nome da máquina virtual e selecionará o diretório onde será salva a máquina virtual, como mostra a Figura 23. Figura 23 – Passo 5 da criação de uma máquina virtual 49 A Figura 24 mostra os tipos de comunicação que podem ser selecionadas. Figura 24 – Passo 6 da criação de uma máquina virtual Na Figura 25 será definida a quantidade de espaço em disco a ser reservada para a máquina virtual. Pode selecionar a quantidade suficiente ao uso, mas o detalhe e desmarcar a opção “Allocate all disk space now”, pois se deixar selecionada será alocado de imediato à quantidade em disco selecionada mesmo não sendo usado. Ao desmarcar ele reservará o espaço em disco, mas o disco será ocupado à medida que as instalações forem ocorrendo no sistema operacional. Figura 25 – Passo 7 da criação de uma máquina virtual 50 O Ubuntu já aparece como uma máquina virtual, mas não está instalado o sistema operacional, nesta próxima interface será configurada a máquina virtual para dar início ao processo de instalação do sistema operacional. Em “Devices” é mostrada as configurações da máquina virtual, para configurar a máquina virtual clique em “Edit virtual machine setting”, como mostra a Figura 26. . Figura 26 – Passo 8 da criação de uma máquina virtual Nesta próxima interface é onde realiza as configurações do computador virtual como quantidade de memória, boot em drivers, configuração da rede e quantidade de processadores, como mostra a Figura 27. Clique na opção “CD-ROM”, onde será selecionada a opção de iniciar o boot, como a instalação do sistema operacional ocorrerá através de um arquivo ISO que foi realizado o download do sistema operacional deve-se clicar na opção “Use ISO image:”, depois clique em “Browse” onde selecionará o arquivo ISO, clique em “Open” e para finalizar a parte do boot clique em “OK” Está configurado o boot, clique em “Start this virtual machine” e estará iniciando o processo de instalação do sistema operacional, não é complicado, é como instalar um sistema operacional normalmente. 51 Figura 27 – Passo 9 da criação de uma máquina virtual A Figura 28 mostra o passo 10 para a criação da máquina virtual. Figura 28 – Passo 10 da criação de uma máquina virtual 52 A Figura 29 mostra o passo 11 da criação de uma máquina virtual. Figura 29 – Passo 11 da criação de uma máquina virtual A Figura 30 mostra o passo 12 da criação de uma máquina virtual. Figura 30 – Passo 12 da criação da máquina virtual 53 A Figura 31 mostra o passo 13 da criação de uma máquina virtual. Figura 31 – Passo 13 da criação da máquina virtual Dica importante: quando precisar acessar a máquina virtual para entrar com algum comando ou algum clique, é necessário clicar uma vez na máquina virtual, e para sair da máquina virtual para acessar algum processo na máquina real, dê o seguinte comando: “Ctrl+Alt” e para voltar à máquina virtual somente de um clique na tela. 5.4. CRIAÇÃO DA MÁQUINA VIRTUAL COM CD DE INSTALAÇÃO O procedimento para a criação da máquina virtual e a instalação do sistema operacional na máquina virtual utilizando um cd para a instalação é basicamente o mesmo processo apresentado na seção 5.3., á diferença está em dois passos da instalação, que serão mostrados nas Figuras 32, 33, respectivamente. Como exemplo será feita a instalação do sistema operacional Microsoft Windows Xp Professional. A Figura 32 mostra qual o sistema operacional que deve ser selecionado e que deseja instalar na máquina virtual que está sendo criada para a máquina ser configurada com os requisitos básicos para o sistema operacional executar de uma forma consistente. 54 Figura 32 – Passo 4 da criação da máquina virtual Ao contrário da outra instalação que foi demonstrada na seção 5.3., instalando o sistema operacional a partir de um arquivo ISO, será demonstrado o passo para instalar o sistema operacional a partir de um “CD-ROM”. Para isso deve clicar na opção “Use physical drive:” e clicar em “OK”, como mostra a Figura 33. Figura 33 – Passo 9 da criação da máquina virtual 55 Com isso, está configurada para iniciar o boot com o “CD-ROM”. Clique em “Start this virtual machine” para iniciar a instalação do Microsoft Windows XP Professional, como mostra a Figura 34. Figura 34 – Instalação do Windows Xp Professional na máquina virtual. 5.5. CONFIGURAÇÃO DA REDE ENTRE AS MÁQUINAS Após a instalação das máquinas virtuais nas máquinas MR1 e MR2 é necessário uma configuração na rede, para que as máquinas reais e virtuais pertençam à mesma rede. Isto é necessário para que elas possam se comunicar e compartilhar dados entre si. Para que as máquinas se comuniquem é fundamental que as máquinas estejam em um mesmo grupo de trabalho da rede, como mostra a Figura 35, caso esteja em outro grupo de trabalho será demonstrado os passos para a configuração do grupo de trabalho. 56 Figura 35 – Alterando o grupo de trabalho do Microsoft Windows XP Para acessar a tela de “Propriedade do sistema” do sistema operacional Microsoft Windows Xp clique em: Iniciar Configurações Painel de Controle, em seguida clique duas vezes no ícone “Sistema” onde será encontrada uma tela como a Figura 35, clique em “Nome do computador” onde terá as informações necessárias para a comunicação entre as máquinas, como: “Descrição do computador”, “Nome completo do computador” e “Grupo de trabalho”. Verificar na propriedade do sistema da máquina virtual se pertence ao mesmo grupo de trabalho da máquina real, caso não pertença, clique em alterar, onde irá realizar a alteração para o novo grupo de trabalho que a máquina virtual irá pertencer, preencha o nome do novo grupo de trabalho que a máquina virtual irá pertencer e clique em “OK” em seguida clique em “OK” novamente para finalizar a configuração do grupo de trabalho da rede. Depois de realizar as configurações de rede entre as máquinas reais e virtuais instaladas é necessário que elas se encontrem no mesmo grupo de trabalho para que possam se comunicar. 57 5.6. ACESSO A REDE VIA WINDOWS Para acessar a rede das máquinas em execução, tem que acessar o Windows Explorer, clicando em: Iniciar Programas Acessórios Windows Explorer. Ao abrir a janela do Windows Explorer tem que acessar a rede, clique em “Meus locais de rede” “Toda a rede” “Rede Microsoft Windows” “Mshome” (grupo de trabalho onde as máquinas foram configuradas para pertencerem ao mesmo grupo), aparecerá todas as máquinas que estão em execução no grupo MSHOME podendo ter o acesso as pastas das máquinas que estão compartilhando arquivos, conforme a Figura 36. Figura 36 – Acesso a rede via Windows 5.7. ACESSO A REDE VIA LINUX Para acessar o compartilhamento de arquivos pelo sistema operacional Ubuntu 8.04 LTS é necessário instalar um pacote chamado “samba”. O samba é um pacote 58 utilizado em sistemas operacionais do tipo Unix, onde permite o gerenciamento e compartilhamento de arquivos em uma rede Microsoft. A instalação é bem simples. Ao acessar o Ubuntu 8.04 LTS em sua tela inicial, clique no menu Aplicações Acessórios Consola, digite o seguinte comando para iniciar a instalação do samba: “sudo apt-get install samba” (sem as aspas) e pressione a tecla enter. Depois de concluída a instalação do pacote, deve-se editar um arquivo de configuração do samba para pertencer à mesma rede de trabalho. Na mesma tela, para editar o arquivo digite o comando: “sudo gedit /etc/samba/smb.conf”, deve se realizar as seguintes alterações para finalizar, salvar e fechar o arquivo de configuração: • workgroup = MSHOME (alterar MSHOME para o grupo de trabalho que foi configurado na rede Windows) • security = user (alterar user para o nome do usuário que foi criado no Ubuntu) • browseable = no (alterar no para yes) • writable = no (alterar no para yes) No terminal digita-se o seguinte comando “sudo smbpasswd –a user” (sem aspas), para adicionar o usuário no servidor samba, onde user é o usuário que alterou na linha “security”. Por fim reiniciar o servidor samba com o comando “sudo /etc/init.d/samba restart” (sem aspas) (Jotinha, 2007). Após o término da configuração do pacote samba, para acessar uma pasta compartilhada no Microsoft Windows Xp através do Ubuntu 8.04 LTS, pressione a seguinte tecla de atalho: ALT + F2 e digite “smb://IP da máquina que deseja acessar a pasta compartilhada”, por exemplo: smb://10.1.1.6, como mostra a Figura 37 ao acessar o compartilhamento podem-se ser requeridos alguns dados referentes ao usuário, grupo do Microsoft Windows, onde será demonstrada a pasta de compartilhamento do pc MR1 no Ubuntu, como mostra a Figura 38. 59 Figura 37 – Acesso a rede via Ubuntu Figura 38 – Acesso a rede via Ubuntu 60 CAPÍTULO 6 6. RESULTADOS Nesta seção, serão apresentados os principais resultados obtidos do problema proposto neste trabalho sobre virtualização de servidores com a finalidade de processar alguma aplicação e também compartilhar dados entre outras máquinas virtuais ou máquinas reais. A interface apresenta as opções dos sistemas operacionais instalados na máquina virtual e na máquina real. O resultado depende da opção escolhida. Serão apresentados dois resultados com sistemas operacionais executados dentro de outro sistema operacional (Ubuntu 8.04 LTS executado no Windows XP Professional e Windows Server 2003 executado no Windows XP Professional) e outro resultado mostrando o compartilhamento de dados entre máquinas virtuais. 6.1. UBUNTU 8.04 LTS EXECUTANDO NO WINDOWS XP Uma das grandes vantagens do processo de virtalização é a execução de diferentes sistemas operacionais instaladas em máquinas virtuais dentro de outro sistema operacional instaladas em máquinas reais. A Figura 39 mostra o resultado da execução do sistema operacional Ubuntu 8.04 LTS dentro do sistema operacional Microsoft Windows XP Professional. 61 Figura 39 – Ubuntu executando dentro do Windows XP Professional 6.2. WINDOWS SERVER 2003 EXECUTANDO NO WINDOWS XP A Figura 40 mostra o resultado da execução do sistema operacional Microsoft Windows Server 2003 dentro do sistema operacional Microsoft Windows XP Professional. 62 Figura 40 – Windows 2003 Server executando dentro do Windows XP Um resultado importante obtido na virtualização de sistema operacional executando dentro de outro sistema operacional é que este processo possibilita deixar várias máquinas virtuais em execução, dependendo apenas da configuração de hardware de sua máquina real. 6.3. COMUNICAÇÃO DE DADOS ENTRE MÁQUINAS VIRTUAIS Será apresentado o resultado obtido da comunicação de dados entre uma máquina virtual com outra máquina virtual. A Figura 41 mostra a interface dessa aplicação. 63 Figura 41 – Compartilhamento de arquivos entre máquinas virtuais Neste caso é apresentado o compartilhamento de arquivos entre máquinas virtuais a partir de uma máquina virtual, onde permite o acesso dos dados de outra máquina virtual instalada em outro computador real. 64 CAPÍTULO 7 7. CONCLUSÃO A implementação das soluções propostas neste trabalho, mostraram que a virtualização realmente proporciona para as empresas, os benefícios e as vantagens que as máquinas virtuais podem oferecer como gerenciamento centralizado, facilidade para execução de backups, rápida disponibilização de máquinas virtuais que sejam semelhantes, além das economias para a empresa em energia, equipamentos e funcionários. A virtualização possibilita que apenas um computador execute vários computadores virtuais onde existe a possibilidade de execução de vários sistemas operacionais distintos e incompatíveis entre si. A comunicação de arquivos entre máquinas reais e máquinas virtuais independente do sistema operacional desde que as máquinas estejam configuradas para a mesma rede. Dependendo do hardware físico do computador é possível ter várias máquinas virtuais em execução. Neste trabalho foi utilizada a ferramenta de virtualização VMware Server que mostrou ser bastante eficiente nas aplicações e testes realizados. Entretanto, existem outras ferramentas que podem ser testadas para o mesmo problema para realizar uma comparação entre as ferramentas ou também estudar outras maneiras de virtualizar. Esta comparação pode ser feita em um trabalho futuro. 65 REFERÊNCIAS BIBLIOGRÁFICAS ANDRADE, Marcos Tadeu de. Um estudo comparativo sobre as principais ferramentas de virtualização. Graduação em Ciência da Computação – fev. 2006 Centro de Informática – Universidade Federal de Pernambuco. Disponível em < http://www.cin.ufpe.br/~tg/2006-2/mta.pdf>. Acessado em: 10 jun. 2008. BOJCZUK, A. F. DANIEL. Máquinas virtuais. IV Ciclo de Palestras sobre Software Livre - 2008. Disponível em: <http://coral.cirp.usp.br/arqs/4ciclo/MaquinasVirtuais.pdf>. Acessado em 16 jun. 2008. FREITAS, Suane S; SOARES, Iranice Carvalho da Silva; RAIMUNDO, José. Virtualização. Pesquimpile – Fev. 2007. Disponível em <http://pesquompile.wikidot.com/20072-tp-t02>. Acessado em: 21 fev. 2008. GARCIA, Davi Vercillo C. Cluster e Virtualização. Instituto de Matemática / Departamento de Ciência da Computação – Universidade Federal do Rio de Janeiro. Disponível em < http://davivercillo.googlepages.com/Palestra_JIC-Cluster.pdf>. Acessado em: 10 jun. 2008. JOTINHA. [Tutorial] Configurando o Samba no Ubuntu 7.04. 2007. Disponível em: <http://forum.clubedohardware.com.br/tutorial-configurando-samba/467433>. Acessado em 10 out. 2008. LAUREANO, Marcos A. P.. Máquinas Virtuais e Emuladores. Editora Novatec, 1ª Ed., Ano 2006. LAUREANO, A. P. MARCOS. Uma abordagem para a proteção de detectores de intrusão baseada em máquinas virtuais - 2004. Disponível em: <http://www.mlaureano.org/projects/vmids/dissert-laureano.pdf>. Acessado em 16 jun. 2008. 66 MARASSI, Rodrigo. Tutorial sobre virtualização - 2008. Disponível em: <http://designtecnologico.blogspot.com/2008/09/tutorial-sobre-virtualizao.html>. Acessado em 05 out. 2008. MARQUES, Pedro. Virtualização de Servidores x64. SECOP 2007 – 35º Seminário Nacionais de TIC para Gestão Pública. Disponível em <www.secop2007.mg.gov.br/palestras/Virtualização%20e%20Consolidação%20de%20Servi dores%20-%20PRODEMGE.ppt>. Acessado em: 22 mai. 2008. MEIER, Wilhelm; KOCKLER, Torsten. Vários em um. Virtualização, Linux Magazine, 24, Outubro, 2006, p. 34-37. OLIVEIRA, Guilherme Veloso Neves. Solução de virtualização completa utilizando VMware e Software Livre: Um Estudo de Caso na CEF. Departamento de Ciência da Computação – Lavras – Minas Gerais – 2007. Disponível em < http://www.ginux.ufla.br/files/mono-GuilhermeOliveira.pdf>. Acessado em: 21 fev. 2008. SISNEMA, Informática. Virtualização: Você não pode ficar de fora. 10 jan. 2007. Disponível em <http://sisnema.com.br/Materiais/idmat017392.htm>. Acessado em: 21 fev. 2008. SPRANG, Henning. São tantas opções. Virtualização. Linux Maganize, 40, Março, 2008, p. 43. TANENBAUM, A. S.; WOODHULL, A. S. Sistemas Operacionais Projeto e Implantação. 2. ed. Porto Alegre: Bookman, 2000. TORRES, G.; LIMA, C. Como Funciona a Tecnologia de Virtualização da Intel. Disponível em: <http://www.clubedohardware.com.br/artigos/1144>. Acesso em 11 de abril de 2008. X-BIT Labs. Como funciona a tecnologia de Virtualização. Disponível em < http://www.xbitlabs.com/images/news/2005-03/iamt_slide5_web.jpg>. Acessado em: 22 mai. 2008.