Professional Documents
Culture Documents
Verso Provisria
Dissertao realizada no mbito do Mestrado Integrado em Engenharia Electrotcnica e de Computadores Major Telecomunicaes
Orientador: Prof. Dr. Joo Manuel Couto das Neves Proponente: iPortalMais Servio de Internet e Redes Lda.
Junho de 2010
Resumo
A tecnologia tem marcado o passo do desenvolvimento das organizaes. A evoluo tecnolgica tem prestado o seu contributo fazendo com que as empresas possam ter uma estrutura, seja a nvel de intranet, de segurana ou das comunicaes, bem solidificado, dinamizando e simplificando as tarefas do dia a dia. Contudo, todos estes servios criam uma dependncia face aos recursos fsicos, nomeadamente os servidores, envolvendo custos muito altos. Surge assim o conceito de Cloud Computing. Este conceito traz s organizaes a possibilidade de poder usufruir de mais servios obtendo menos servidores fsicos. O Projecto IPBrick Cloud Environment consiste na criao de uma plataforma de gesto simples e intuitiva que, recorrendo virtualizao, permite ter o menor nmero de servidores fsicos para gerir uma srie de servidores virtuais assegurando a alta disponibilidade dos mesmos, trazendo benefcios s organizaes ao nvel financeiro, de manuteno, de preservao e de espao disponibilizado para os servidores.
ii
Abstract
Technology has influenced the development of the organizations. Technological evolution has been given its contribution giving to companies the possibility to have a strong structure, whether the level of intranet, security or communications, stimulating and simplifying the tasks of daily life. However, all these services create a dependence on physical resources, including servers, involving high costs. Here arises the concept of Cloud Computing. This concept brings to the enterprises the possibility to enjoy more services getting fewer physical servers. The Project IPBrick Cloud Environment is the creation of a simple and intuitive management platform, using virtualization, allowing the enterprises to have the lowest number of physical servers to manage a number of virtual servers assuring high availability, bringing benefits to organizations in financial, maintenance, preservation and space available for servers.
iii
iv
Agradecimentos
Este espao dedicado a todas as pessoas que deram a sua contribuio para que este trabalho fosse realizado. Gostaria de agradecer ao meu orientador, Prof. Dr. Joo Manuel Couto das Neves, pela forma como orientou o meu trabalho. Agradeo tambm o esforo desenvolvido na leitura e sugestes de reviso deste documento. Ao Engenheiro Miguel Ramalho pela sua disponibilidade, auxlio e orientao durante o desenvolvimento da dissertao. Aos meus amigos que, sempre que necessrio, deram a sua opinio, ajuda e principalmente motivao. minha namorada um agradecimento muito especial pela motivao, apoio e compreenso em alturas complicadas. minha famlia, especialmente aos meus pais e avs, pelo apoio durante todo o curso. Por ltimo, agradeo a todos aqueles que no foram mencionados, mas que de alguma forma tambm contriburam para a elaborao deste trabalho.
vi
ndice
Resumo ............................................................................................ i Abstract ...........................................................................................iii Agradecimentos ..................................................................................v ndice............................................................................................. vii Lista de Figuras ................................................................................. xi Lista de Tabelas ................................................................................ xv Acrnimos e Abreviaturas .................................................................. xvii Captulo 1 ........................................................................................ 1
Introduo .......................................................................................................1 1.1 1.2 1.3 1.4 - Enquadramento ......................................................................................1 - Motivao .............................................................................................2 - Objectivos .............................................................................................2 - Estrutura da dissertao ............................................................................3
Captulo 2 ........................................................................................ 4
Apresentao do problema ...................................................................................4 2.1 2.2 2.3 2.4 - Descrio do Problema..............................................................................4 - Histria da Virtualizao ...........................................................................5 - Virtualizao de Servidores ........................................................................5 - Cloud Computing (Computao em Nuvem) .................................................. 10 2.4.1 - Modelos de Implementao ............................................................... 11 2.4.1.a SaaS (Software as a Service) ...................................................... 11 2.4.1.b PaaS (Platform as a Service) ...................................................... 11 2.4.1.c IaaS (Infrastructure as a Service) ................................................ 11 2.5 - IPBrick ............................................................................................... 12 2.5.1 - IPBrick.I ...................................................................................... 12 2.5.2 - IPBrick.C ..................................................................................... 13 2.5.3 - IPBrick.GT ................................................................................... 13 2.6 - Concluso ........................................................................................... 14
Captulo 3 ....................................................................................... 15
Reviso de Conceitos e Tecnologias ...................................................................... 15
vii
3.1 - Ferramentas de Virtualizao ................................................................... 15 3.1.1 - KVM ........................................................................................... 15 3.1.2 - VMware ....................................................................................... 16 3.1.3 - Xen ............................................................................................ 16 3.1.4 - Hyper-V ...................................................................................... 16 3.1.5 - Anlise comparativa das ferramentas .................................................. 17 3.1.6 - XenServer vs. VMware vSphere .......................................................... 18 3.1.6.a Arquitectura do Sistema ........................................................... 18 3.1.6.b Instalao, configurao e administrao do sistema ........................ 19 3.1.6.c Sistemas operativos suportados pelos sistemas ................................ 20 3.1.6.d Integrao com unidades de armazenamento .................................. 20 3.1.6.e Disaster Recovery ................................................................... 20 3.1.6.f Alta Disponibilidade................................................................. 21 3.1.6.g Manuteno do Sistema ............................................................ 21 3.2 - Linguagens de Programao ..................................................................... 23 3.2.1 - PHP ........................................................................................... 23 3.2.2 - Javascript .................................................................................... 23 3.2.3 - HTML .......................................................................................... 23 3.3 - Protocolos ........................................................................................... 24 3.3.1 - XML-RPC ...................................................................................... 24 3.3.2 - iSCSI .......................................................................................... 24 3.3.2.a iSCSI Target .......................................................................... 24 3.3.2.b Logical Unit Number ................................................................ 24 3.3.2.c Endereo .............................................................................. 24 3.3.2.d Segurana ............................................................................. 25 3.3.3 - VNC ........................................................................................... 25 3.4 - PostgreSQL .......................................................................................... 25 3.5 - Plataformas existentes ........................................................................... 26 3.5.1 - XVP ............................................................................................ 26 3.5.2 - XenCenter ................................................................................... 28 3.6 - Concluso ........................................................................................... 29
Captulo 4 ....................................................................................... 30
Desenvolvimento da Plataforma .......................................................................... 30 4.1 - Metodologia utilizada ............................................................................. 30 4.2 - Requisitos do sistema ............................................................................. 31 4.2.1 - Casos de Uso ................................................................................ 31 4.2.1.a Identificao dos Casos de Uso ................................................... 32 4.2.1.b Descrio dos Casos de Uso ........................................................ 32 4.3 - Explorao da ferramenta XenServer .......................................................... 36 4.4 - Arquitectura da rede .............................................................................. 38 4.5 - Base de dados ...................................................................................... 38 4.6 - Problemas encontrados ........................................................................... 39 4.7 - Concluso ........................................................................................... 42
Captulo 5 ....................................................................................... 43
Resultados .................................................................................................... 43 5.1 - Cenrios de teste .................................................................................. 43 5.1.1 - Configuraes ............................................................................... 45 5.1.1.a Configurao dos Servidores XenServer ......................................... 45 5.1.1.b Configurao do Servidor IPBrick ................................................. 45 5.2 - Anlise dos Resultados ............................................................................ 46 5.2.1 - Adio do primeiro servidor .............................................................. 46 5.2.2 - Pools .......................................................................................... 48 5.2.3 - Hosts .......................................................................................... 50 5.2.4 - Mquinas Virtuais ........................................................................... 51 5.2.5 - Repositrio de dados ...................................................................... 53
viii
5.2.6 - Alta Disponibilidade ........................................................................ 54 5.3 - Compatibilidade.................................................................................... 54 5.4 - Resultados Obtidos ................................................................................ 56 5.5 - Concluso ........................................................................................... 57
Captulo 6 ....................................................................................... 58
Concluses .................................................................................................... 58 6.1 - Concluso ........................................................................................... 58 6.2 - Trabalho Futuro .................................................................................... 59
ix
Lista de Figuras
Figura 2.1 - Hypervisor (VMM) do tipo Hosted .........................................................6 Figura 2.3 - Hypervisor (VMM) do tipo Bare-Metal ....................................................7 Figura 2.2 - Comunicao entre as mquinas virtuais e o Hardware com VMM Hosted ........7 Figura 2.4 - Comunicao entre as mquinas virtuais e o Hardware com VMM Bare-Metal....8 Figura 2.5 - Comunicao entre as mquinas virtuais e o Hardware com VMM Bare-Metal....8 Figura 2.6 - Virtualizao Completa ........................................................................9 Figura 2.7 - Paravirtualizao ...............................................................................9 Figura 2.8 Cloud Computing .............................................................................. 10 Figura 2.9 - Soluo IPBrick ................................................................................ 12 Figura 3.1 Traduo binria efectuada pelo VMware ESX .......................................... 18 Figura 3.2 Arquitectura do Hypervisor do XenServer ................................................ 19 Figura 3.3 - Mquina Virtual Linux num sistema Linux ................................................ 26 Figura 3.4 - Mquina Virtual Windows num MAC OS X ................................................. 27 Figura 3.5 - XVPWEB ......................................................................................... 27 Figura 3.6 - Acedendo s propriedades de uma mquina virtual no XVPWEB ..................... 28 Figura 3.7 - XenCenter ...................................................................................... 29 Figura 4.1 Caso de Uso Adicionar Host ................................................................. 33 Figura 4.2 Caso de Uso Criar Mquina Virtual ......................................................... 34 Figura 4.3 Caso de Uso Criar Repositrio de dados .................................................. 35 Figura 4.4 Caso de Uso Activar Alta Disponibilidade ................................................. 35 Figura 4.5 Resultado da funo de teste .............................................................. 37 Figura 4.6 Arquitectura da rede ......................................................................... 38
xi
Figura 4.7 Esquema da base de dados ................................................................. 39 Figura 4.8 Famlia do Processador ...................................................................... 41 Figura 4.9 Activao da flag de Paravirtualizao ................................................... 41 Figura 5.1 Cenrio Inicial ................................................................................. 44 Figura 5.2 - Primeiro Cenrio .............................................................................. 44 Figura 5.3 - Segundo Cenrio .............................................................................. 45 Figura 5.4 Adio do primeiro servidor ................................................................ 46 Figura 5.5 - Pools ............................................................................................ 48 Figura 5.6 - Hosts ............................................................................................ 50 Figura 5.7 - Mquinas Virtuais ............................................................................. 51 Figura 5.8 - Repositrio de dados ......................................................................... 53 Figura 5.9 - Plataforma no browser Firefox ............................................................. 54 Figura 5.11 - Plataforma no browser Google Chrome ................................................. 55 Figura 5.10 - Plataforma no browser Internet Explorer ............................................... 55 Figura 5.12 - Plataforma no browser Safari ............................................................. 56
Anexo A 1 Login ............................................................................................ 60 Anexo A 2 - Menu Inicial (Sem servidores adicionados) ............................................... 60 Anexo A 3 Formulrio Adicionar Servidor .............................................................. 61 Anexo A 4 Configuraes ................................................................................. 61 Anexo A 5 Pools (Com um Host em cada Pool) ....................................................... 62 Anexo A 6 - Formulrio Editar Pools ...................................................................... 62 Anexo A 7 Pool (Alta Disponibilidade desactivada) .................................................. 62 Anexo A 8 Pool (Alta Disponibilidade activada) ...................................................... 63 Anexo A 9 Hosts ............................................................................................ 63 Anexo A 10 - Informaes sobre o Host (Master e nico na Pool) ................................... 63 Anexo A 11 Informaes sobre o Host (Slave)......................................................... 64 Anexo A 12 - Formulrio de Editar Host ................................................................. 64 Anexo A 13 Mquinas Virtuais ............................................................................ 64 Anexo A 14 Formulrio de Criar Mquina Virtual (Seleccionar Pool) ............................. 65
xii
Anexo A 15 Formulrio de Criar Mquina Virtual (Especificar Parmetros) ..................... 65 Anexo A 16 - Criar Mquina Virtual (Instalao) ........................................................ 65 Anexo A 17 - Informaes sobre a Mquina Virtual .................................................... 66 Anexo A 18 Formulrio de Adicionar uma Interface de Rede Virtual ............................. 66 Anexo A 19 Formulrio de Adicionar um Disco Virtual .............................................. 66 Anexo A 20 Formulrio de Editar Mquina Virtual ................................................... 66 Anexo A 21 Repositrios de dados ...................................................................... 67 Anexo A 22 Formulrio de Adicionar Repositrio de Dados (Especificar parmetros) ......... 67 Anexo A 23 Formulrio de Adicionar Repositrio de Dados (Escolha do IQN) ................... 67 Anexo A 24 Formulrio de Adicionar Repositrio de Dados (Escolha da LUN) ................... 68 Anexo A 25 - Informaes sobre o Repositrio de Dados ............................................. 68 Anexo A 26 - Alta Disponibilidade (Desactivada) ....................................................... 68 Anexo A 27 - Alta Disponibilidade (Activada) ........................................................... 69
xiii
xiv
Lista de Tabelas
Tabela 3.1- Comparao das Plataformas ............................................................... 17 Tabela 3.2 Comparao das funcionalidades oferecidas pelo XenServer e pelo VMware vSphere ................................................................................................. 22 Tabela 3.3- Comparao dos custos associados ao XenServer e ao VMware vSphere ............ 22 Tabela 4.1 Casos de Uso .................................................................................. 32 Tabela 4.2 Templates disponibilizados pelo XenServer ............................................. 40 Tabela 5.1 Requisitos XenServer ........................................................................ 45
xv
xvi
Acrnimos e Abreviaturas
AIX AMD API AT&T BIT BSD CD-ROM CHAP CPU CRM CSS DHCP DNS E/S ERP EUI GHz HDD HP HP-UX HTML HTTP HVM I&D IA IaaS IBM IDS Intel
Advanced Interactive Executive Advanced Micro Devices Application Programming Interface American Telephone and Telegraph Binary digit Berkeley Software Distribution Compact Disc Read-Only Memory Challenge-Handshake Authentication Protocol Central Processing Unit Customer Relationship Management Cascading Style Sheet Dynamic Host Configuration Protocol Domain Name System Entrada/Sada Enterprise Resources Management Extended Unique Identifier GigaHertz Hard Disk Drive Hewlett-Packard Hewlett-Packard UNIX Hyper Text Markup Language HyperText Transfer Protocol Hardware Virtualization Mode Investigao e Desenvolvimento Intel Architecture Infrastructure as a Service International Business Machines Intrusion Detection System Integrated Electronics
xvii
IPBrick.GT IPBrick.Gateway Telefnica IPBrick.KAV IPBrick.Kaspersky Anti-Virus IPBrick.SOHO IPBrick.Small office Home Office IQN iSCSI KVM LAN LUN MAC MAC OS X MB Mbit MHz NAS NASA NFS NIC PaaS PBX PC PCI PHP PV RAM SaaS SAN SDK Sms SP SSH SSL TI TV UcoIP USB VHD iSCSI Qualified Name Internet Small Computer System Interface Kernel-based Virtual Machine Local Area Network Logical Unit Number Macintosh MAC Operating System Unix Megabyte Megabit MegaHerzt Network-Attached Storage Network Address Authority Network File System Network Interface Card Platform as a Service Private Branch Exchange Personal Computer Peripheral Component Interconnect Hypertext Preprocessor Paravirtualizado Random-Access Memory Software as a Service Storage Area Network Software Development Kit Short Message Service Service Pack Secure Shell Secure Sockets Layer Tecnologia da Informao Television Unified Comunications Over IP Universal Serial Bus Virtual Hard Disk
xviii
Virtual Machine File System Virtual Machine Interface Virtual Machine Monitor Virtual Network Computing Virtual Private Network Wide Area Network Extensible Hypertext Markup Language Extensible Markup Language - Remote Procedure Call
xix
xx
Captulo 1 Introduo
Neste Captulo introdutrio, abordar-se- o enquadramento desta tese, no que toca ao tema e ao contexto da mesma, a motivao bem como apresentar-se- os objectivos e a estrutura do documento.
1.1 - Enquadramento
No mbito do projecto final do Mestrado Integrado de Engenharia Electrotcnica e de computadores no ramo de Telecomunicaes e com especializao em Redes e servios de comunicaes, foi desenvolvida esta tese, de forma a documentar o trabalho desenvolvido ao longo deste ltimo ano do curso. Esta tese tem como tema IPBrick Cloud Environment por um lado devido ao facto de se basear nas tecnologias de virtualizao para a concretizao do conceito que emergiu recentemente, o Cloud Computing, e por outro lado por ser um trabalho que ir ser embebido na tecnologia desenvolvida pela empresa, onde foi feito o estgio do ltimo semestre, a IPBrick, que consiste num sistema operativo para servidores. Esta dissertao encontra-se inserida num dos projectos da empresa iPortalMais Servios de Internet e Redes Lda. O tema consiste em desenvolver uma plataforma Web para simplificar a instalao, gesto e recuperao de um sistema Private Cloud Computing para servidores IPBrick que poder ser composta por vrios servidores fsicos. A ferramenta projectada dever ser capaz de, atravs de um ambiente grfico simples, criar vrias mquinas virtuais, com os parmetros pretendidos (memria, nmero de processadores, tamanho do disco rgido e com a imagem .iso) em qualquer servidor fsico disponvel e permitir a gesto da poltica de falhas, ou seja, definir as operaes a efectuar em caso de falha, como qual ou quais servidor(es) para que a(s) mquina(s) devero migrar, caso o servidor onde se encontram falhe. neste contexto, dentro da rea de I&D da iPortalMais, que nasceu o tema desta dissertao, que consiste no desenvolvimento de uma ferramenta que permita simplificar a criao, instalao, gesto e recuperao de ambientes de suporte ao "Private Cloud Computing" essencialmente para servidores IPBrick.
Motivao
Hoje em dia com o projecto IPBrick est banalizada a instalao de servidores de Intranet e Comunicaes. Desta forma, este projecto tem o objectivo de explorar o mesmo tipo de simplificao para uma plataforma de Private Cloud Computing. Como resultado desta dissertao pretende-se chegar concepo de uma plataforma de Private Cloud Computing que possa ser manejada atravs de um interface de gesto tradicional a partir de um portal Web, onde seja possvel gerir vrias IPBrciks virtuais. Sendo a meta final desta dissertao dentro da iPortalmais, reduzir o know how necessrio para montar este tipo de subsistemas.
1.2 - Motivao
Hoje em dia, vivemos numa sociedade em constante evoluo tecnolgica juntamente com o aumento da produo e partilha de informao. Com vista a permitir a preservao e a partilha dessa mesma informao, as empresas recorrem tecnologia como equipamentos de suporte. Os recursos fsicos que as empresas adquirem para solucionar os seus problemas significam grandes custos tanto a nvel de investimento, como de manuteno e preservao, e muitas das vezes as empresas deixam de ter capacidade, no que toca infra-estrutura, para alocar um nmero elevado de equipamentos. Devido a esta realidade, surge a necessidade de encontrar um recurso virtual que substitua os equipamentos fsicos. Daqui nasce o sistema de Cloud Computing que funciona como uma forma de partilha de informao num suporte virtual. A motivao por esta tese, nasce da possibilidade de poder aprofundar os conhecimentos nas tecnologias de virtualizao e conciliar o desenvolvimento da mesma num estgio, numa empresa Portuguesa que desenvolve tecnologia de ponta para as necessidades das empresas.
1.3 - Objectivos
Os objectivos que esto na base do desenvolvimento deste trabalho so a criao de uma plataforma Web simples e intuitiva que permita a adio e a gesto de servidores e mquinas virtuais, A interface deve ser projectada de maneira a que, aps a instalao do servidor, permita todo o tipo de operaes no mesmo como a juno deste a uma rede de servidores, definir se o servidor master ou slave nessa rede, permitir a criao de mquinas virtuais no servidor ou nos restantes servidores da rede e acima de tudo colocar a informao de uma forma intuitiva para que se possa definir e garantir a alta disponibilidade na rede, ou seja, em caso de falha de algum servidor fsico, as mquinas que se encontram no mesmo devem migrar para os restantes servidores presentes na rede, mantendo a informao e as definies da(s) mquina(s) virtual(ais). A recuperao das mquinas virtuais da Private Cloud um dos objectivos mais importantes, pois no caso de o servidor fsico falhar, as mquinas devero ser transferidas para um ou mais servidores fsicos e devem ser preservadas todas as caractersticas e funcionalidades, para que as mquinas virtuais continuem a funcionar da mesma maneira, mas localizadas noutra mquina fsica. A plataforma de virtualizao dever funcionar como um Sistema Operativo, de tal forma que esta ser primeiramente instalada e a partir da mesma sero criadas as mquinas virtuais. A plataforma deve ser completa no que toca 2
Estrutura da dissertao
mobilidade, ter de ser capaz de importar, exportar e clonar mquinas virtuais com as respectivas configuraes, permitir um sistema escalvel e dever garantir Alta Disponibilidade das mquinas virtuais. As imagens com a extenso iso e os ficheiros que contm as mquinas virtuais devem encontrar-se num dispositivo externo (storage) sempre disponvel.
Histria da Virtualizao
Para isto, recorrer-se- s tecnologias de virtualizao para concretizar o conceito de Cloud Computing.
Virtualizao de Servidores
ter de investir em mquinas para utilizar os diferentes sistemas, o que reduz drasticamente os custos com hardware e reduz o espao fsico necessrio para suportar o sistema pretendido. A confiana e disponibilidade so outros dos benefcios que a virtualizao apresenta, ou seja, mesmo que um software falhe os outros servios no so prejudicados. A possibilidade de poder dar um melhor uso aos recursos da mquina, mais uma das vantagens da virtualizao, isto , alocar apenas os recursos necessrios a cada Sistema Operativo, como CPU (Central Processing Unit), HDD (Hard Disk Drive), RAM (Random-Access Memory),desta forma conseguida a melhoria da segurana do sistema, fazendo com que os Sistemas Operativos possam ser isolados numa mquina virtualizada, resultando na criao de mquinas mais seguras. Esta vantagem reduz a necessidade de ter vrias mquinas fsicas a funcionar em diferentes nveis de segurana [4]. Por outro lado, a virtualizao tambm tem contras, ou seja, tambm existem desvantagens associadas a esta soluo. A nvel da segurana como qualquer outro software, o VMM (Virtual Machine Monitor)tambm se encontra sujeito a vulnerabilidades, j que este tambm se trata de um software, logo em certas situaes as mquinas virtuais tornam-se menos seguras que as mquinas fsicas. Isto aplica-se, porque se o sistema operativo, onde as mquinas virtuais se encontram hospedadas, apresentar algum tipo de vulnerabilidade, estas tambm se encontram vulnerveis. No que toca Gesto, todos os ambientes virtuais necessitam de ser geridos, pois todos precisam de ser monitorizados e configurados. Relativamente ao desempenho, a introduo de uma camada de software, o hypervisor, leva a um processamento superior ao que teramos sem a virtualizao [4]. Para virtualizar uma mquina, um dos principais componentes o VMM, tambm conhecido por hypervisor, que permite executar vrios sistemas operativos em simultneo numa mquina fsica. Existem dois tipos de hypervisors, o Hosted ou Tipo 2 e o Bare-Metal ou Tipo 1. Na arquitectura Hosted o VMM instalado sobre um Sistema Operativo, como se pode verificar na Figura 2.1.
Cada mquina virtual tem acesso a um nmero limitado de dispositivos E/S (Entrada/Sada). O VMM fornece uma viso virtual do hardware real para cada mquina virtual, pois o VMM no tem conhecimento da maioria dos dispositivos de E/S, como placas PCI (Peripheral Component Interconnect)de aquisio de dados, logo no apresenta estes dispositivos, apresentando apenas dispositivos genricos como placas de rede e CD-ROM 6
Virtualizao de Servidores
(Compact
Disc
Read-Only
Memory).
Muitas
solues
de
virtualizao
suportam
funcionalidade do reconhecimento da porta USB (Universal Serial Bus), permitindo aos utilizadores o acesso aos dispositivos ligados a essa porta, a partir de mquinas virtuais diferentes [5].
Figura 2.2 - Comunicao entre as mquinas virtuais e o Hardware com VMM Hosted
O software VMM composto por diferentes componentes que fazem a comunicao entre a mquina virtual e os pedidos de E/S atravs do sistema operativo, como est exemplificado na Figura 2.2. Uma das vantagens desta arquitectura a facilidade de instalao e configurao. Na arquitectura Bare-Metal o VMM ou hypervisor instalado para permitir a comunicao directa com o hardware, no confiando esta a um sistema operativo. Que se encontra apresentado na Figura 2.3.
Virtualizao de Servidores
Este tipo de arquitectura fornece um grande nmero de opes para o acesso s funes de E/S atravs das mquinas virtuais. Como no se baseia num sistema operativo do Host, um hypervisor, usando esta arquitectura, pode comunicar directamente com dispositivos de E/S.O sistema de dispositivos de E/S que compartilhado pelas mquinas virtuais na arquitectura Bare-Metal, deve ser acedido atravs de um Kernel que faz parte do hypervisor, onde podemos ver na Figura 2.4.
Figura 2.4 - Comunicao entre as mquinas virtuais e o Hardware com VMM Bare-Metal
Outra forma utilizada por esta arquitectura, atribuir dispositivos individuais a mquinas virtuais especficas, o que proporciona o acesso directo dessas mquinas aos dispositivos de E/S atribudos, que se encontra exemplificado na Figura 2.5. Este processo tem o nome de particionamento e pode melhorar muito o desempenho no que toca ao acesso aos dispositivos de E/S [5].
Figura 2.5 - Comunicao entre as mquinas virtuais e o Hardware com VMM Bare-Metal
Este tipo de arquitectura apresenta a grande vantagem de melhorar o acesso aos dispositivos E/S atravs do particionamento, mas estes hypervisors so mais difceis de instalar e de configurar do que os hypervisors hosted [5].
Virtualizao de Servidores
Existem vrios tipos de virtualizao, virtualizao completa, paravirtualizao ou virtualizao assistida pelo hardware [6]. Na virtualizao completa, o sistema operativo da mquina virtual no sabe que est a ser executado num ambiente virtual, logo o hypervisor emula todo o hardware para as mquinas virtuais, necessitando estas apenas dos devices drivers para os dispositivos emulados, como se encontra representado na Figura 2.6. A grande vantagem deste tipo de virtualizao ser compatvel com todos os sistemas operativos que podem ser executados no hardware emulado, sem que seja necessrio efectuar qualquer alterao. Como o sistema operativo no tem conhecimento que se encontra a ser executado como uma mquina virtual, todas as instrues executadas nesse sistema devem ser analisadas pelo VMM e s depois so executadas no hardware, para que se possa evitar operaes dehardware que prejudicam outras mquinas virtuais ou mesmo a mquina fsica [7] [8].
Na paravirtualizao o VMM interage com o sistema operativo de uma maneira mais eficiente, mas neste caso o sistema operativo necessita de sofrer modificaes para ser compatvel, pois caso contrrio, seria necessrio recorrer emulao o que iria penalizar o desempenho. Neste caso (Figura 2.7), como o sistema operativo modificado de maneira a chamar o VMM sempre que executa uma determinada instruo que possa modificar o estado do sistema, o VMM no tem necessidade de testar todas as instrues, o que aumenta o desempenho do mesmo [4] [9].
Existe tambm a virtualizao assistida pelo hardware, onde os processadores j possuem tecnologias que facilitam o trabalho do hypervisor, pois o prprio hardware j possui suporte para a execuo das mquinas virtuais em modo isolado, dispensando assim algumas operaes necessrias nos outros tipos de virtualizao. Exemplos destes processadores so o Intel-VT e o AMD-V [8] [4].
"The cloud is a virtualization of resources that maintains and manages itself - Kevin Hartig, Sun Microsystems [11]. Cloud Computing baseia-se na ideia de poder usar variadas ferramentas atravs da internet, evitando assim a instalao destas no nosso computador, logo o software deixa de estar presente nas mquinas locais e passa a estar em servidores localizados remotamente. O acesso a estes recursos poder ser feito em qualquer lugar e em qualquer plataforma. A ideia de ter tudo instalado e armazenado no nosso computador torna-se diferente num ambiente corporativo, pois mais fcil o uso de aplicaes disponveis em servidores remotos e que possam ser utilizadas por qualquer terminal com permisses para tal [12]. Um dos grandes problemas para as organizaes o alto custo com TI (Tecnologia da Informao). As organizaes gastam hoje em dia 80% do tempo com a manuteno de sistemas de TI e no esse o seu objectivo de negcio manter dados e aplicaes, perdendo assim muito dinheiro nesse percurso, o que inaceitvel nos dias de hoje - Clifton Ashley [13], director do Google para a Amrica Latina. A evoluo das tecnologias, no mbito da computao e da comunicao, fornece as condies perfeitas para a utilizao do Cloud Computing, pois, hoje em dia, possvel obter uma ligao rpida internet com um baixo custo associado.
10
O Cloud Computing vem assim trazer um leque alargado de vantagens, tais como a possibilidade, grande parte das vezes, de utilizar os recursos offline, ou seja, no necessria a ligao internet nem rede, tornando-se os dados criados restritos a essa mquina utilizada, sendo possvel mais tarde a partilha pela rede. Disponibiliza ainda a possibilidade do utilizador deste sistema s necessitar de saber como aceder e como o utilizar, pois todas as tarefas relacionadas com desenvolvimento, armazenamento, manuteno, actualizao, backup e escalonamento ficam ao encargo do fornecedor do servio. Estas vantagens proporcionam a reduo dos custos para o utilizador, pois o controlo total das aplicaes tem um preo. O software tem de estar instalado, configurado e depois actualizado com os ltimos lanamentos para se usufruir ao mximo dele. Permite tambm o utilizador ter acesso a variadas aplicaes independentemente do seu sistema operativo ou hardware disponvel. Outra das caractersticas benficas a grande flexibilidade, pois no caso de ser preciso mais capacidade de processamento, basta efectuar um upgrade, sem ser necessrio a troca de componentes ou at equipamentos inteiros para isso. O uso deste conceito mais vivel do que o uso de mquinas fsicas, pois se um servidor parar de funcionar, outros servidores pertencentes estrutura do servio continuaro a fornecer o servio [14]. Contudo, o Cloud Computing tambm traz desvantagens. Desvantagens essas que se prendem com aspectos como a segurana, a confiabilidade e a disponibilidade de servios, pois como se trata de internet, existem riscos como atrasos e falhas no sistema [15].
11
IPBrick
2.5 - IPBrick
A iPortalMais desenvolveu a IPBrick (Sistema Operativo de Rede, Network Operating Systems) que tem como concorrente as solues para servidores da Microsoft, e que portanto tem um potencial enorme, e um mercado escala mundial. Em simultneo e no mbito da comercializao da IPBrick, fornece ainda servios de suporte, consultadoria, instalao e configurao. Esta iniciativa deve-se em tudo capacidade criativa e intelectual dos colaboradores que todos os dias pensam e desenvolvem a IPBrick. A IPBrick nasceu do desenvolvimento de um conjunto de sistemas operativos e aplicaes, num produto integrado, com uma instalao simplificada, facilidade de configurao e um sistema de recuperao rpido em caso de desastre. Esta Tecnologia surge, face s crticas feitas por parte da Microsoft ao Linux, fundamentando-se na instalao lenta, na dificuldade de configurao e de recuperao em caso de desastre. Desta forme surge a IPBrick como um sistema operativo de instalao automtica, configurvel atravs de uma interface Web orientada para uma lgica funcional do sistema e o disaster recovery atravs de uma Pen Drive onde so guardadas as configuraes e em caso de desastre permite recuperar o sistema em 15 minutos, como mostra a Figura 2.9.
A IPBrick um sistema operativo para servidores que abrange trs grandes reas, a intranet, as comunicaes e a segurana.
2.5.1 - IPBrick.I
A soluo de Intranet, designa-se por IPBrick.I (IPBrick.Intranet) que poder funcionar como: servidor de email, de ficheiros, de domnio, de impressoras e de backup. Disponibiliza ainda ferramentas colaborativas de groupware como o email, agenda/calendrio e livro de contactos que integram com o cliente de email (outlook e mozilla thunderbird). Estas ferramentas encontram-se acessveis atravs de um browser comum por serem aplicaes Web-based e podero ser acedidas atravs de um PC como de um dispositivo mvel. A IPBrick.I pode ser usada como suporte a aplicaes de negcio, como o CRM (Customer Relationship Management) sugarCRM, o ERP(Enterprise Resources Management) - Gestix - e o Sistema de Gesto Documental iPortalDoc que igualmente desenvolvido pela iPortalMais. Existem outras aplicaes que podem ser instaladas na IPBrick, tais como o Moodle aplicao 12
IPBrick
2.5.2 - IPBrick.C
A IPBrick.C (IPBrick.Comunicaes) a nvel das comunicaes pode funcionar como um servidor VPN, Web, mail relay e webmail. No que toca segurana permite fazer de firewall, IDS (Intrusion Detection System), proxy, e tem ainda Anti-vrus e Anti-spam pr-instalados.
2.5.3 - IPBrick.GT
A IPBrick.GT (IPBrick.Gateway Telefnica) um servidor de Comunicaes Unificadas por IP, que integra voz, vdeo, fax, mail, Web e Istant Messaging que pode funcionar como PBX (Private Branch Exchange) IP ou ento como Media Gateway da central existente. Esta soluo permite ainda a gravao de comunicaes para a Gesto Documental iPortalDoc e tambm dinamizar os registos automticos das comunicaes no SugarCRM. Esta soluo fez com que surgisse o conceito inovador criado pela iPortalMais UcoIP Unified Comunications over IP que faz com que o utilizador seja o centro das comunicaes, pois o utilizador atravs do seu endereo de email tem acesso sua pgina Web pessoal, pode realizar Instant Messaging e aceder ao email. Com IPBrick.GT as empresas podero transformar a sua pgina Web, numa pgina interactiva colocando l um Webphone e um Webchat, podero integrar esta soluo com as aplicaes da LAN (SugarCRM e iPortalDoc) como foi acima referido e por fim os utilizadores iro usar o seu endereo de email para todas as formas de comunicao. Utilizando o email os utilizadores podem ler e enviar emails, enviar mensagens (mail to sms), ler e enviar faxes (fax to mail e mail to fax) e ainda ouvir mensagens de voice-mail. A iPortalMais disponibiliza ainda outras solues dedicadas utilizando a tecnologia IPBrick, como a IPBrick.SOHO (Small Office Home Office) Soluo para pequenas e Mdias empresas que integra todas as funcionalidades que foram descritas acima. A IPBrick.KAV (IPBrick.Kaspersky Anti-Virus) Que consiste numa soluo de segurana na rede para os acessos Web, para a rede, intranet e correio electrnico com o Anti-vrus kaspersky instalado. A IPBrick.LIVE Soluo para corporate TVs (Television), permite gerir painis informativos em zonas pblicas bem como playlists de filmes, notcias, publicidade e metereologia; IPBrick.H Hotspot Controler que consiste numa soluo para gerir hotspots em zonas pblicas, permite a configurao de tarifas a cobrar pelo acesso, pginas consultadas e cartes personalizados e a IPBrick. SCHOOL um servidor escolar, que fornece um desktop multi-sesso baseado num conjunto de terminais ligeiros a um servidor IPBrick. Esta tecnologia em alguns casos apenas est disponvel em Appliance soluo completa, mas a IPBrick.I e IPBrick.C poder ser instalada em hardwares como Intel, DELL, ASUS, Compaq, HP (Hewlett-Packard), Tsunami, IBM, Fugitsu Siemens entre outros [17].
13
Concluso
2.6 - Concluso
De acordo com o que foi apresentado neste Captulo, ser colocado em prtica o conceito de Cloud Computing atravs da virtualizao de servidores, para concretizar o objectivo desta tese, que consiste na criao de uma Plataforma de gesto de servidores fsicos e virtuais. Como foi verificado no ponto Virtualizao de servidores, existem dois tipos de hypervisor, Bare-Metal e Hosted. O tipo de hypervisor escolhido para ser utilizado foi o Bare-Metal. A plataforma ir servir para criar e gerir os servidores fsicos e mquinas virtuais. Dever ser capaz de gerir vrias Pools de servidores, ou seja, definir pequenas redes com conjuntos independentes de servidores, definir a alta disponibilidade dessa Pool e ainda criar repositrios para as mesmas. Nestes repositrios devero constar todos os dados das mquinas virtuais para efeitos de alta disponibilidade, ou seja, caso uma mquina falhe, se o contedo dessa mquina se encontrasse no servidor, toda a informao da mesma iria perder-se, assim se estiver num repositrio, esta mquina poder ser recuperada em caso de falha. Deve possibilitar a alterao dos estados das mquinas, realizando aces como iniciar, reiniciar, desligar e migrar as mquinas virtuais. A alterao dos estados tambm se dever aplicar aos Hosts, efectuando aces como reiniciar e desligar permitindo tambm configurar as definies de rede do servidor.
14
15
Ferramentas de Virtualizao
3.1.2 - VMware
O VMware desenvolvido pela VMware Inc., localizada em Palo Alto, Califrnia, Estados Unidos. O nome um jogo de palavras com Virtual Machine (mquina virtual), que o nome tcnico dado a um sistema operativo executado pelo Vmware [13]. A VMware um dos fornecedores mais populares na virtualizao para a arquitectura x86, fornecendo softwares para virtualizar desde ambientes desktop como ambientes de data centers. Nos produtos fornecidos pela VMware, encontramos os que so executados sob um sistema operativo como o VMware Workstation, VMware Server, VMware Fusion e VMware Player. Tambm fornecem os que so executados como sistema operativo como o VMware ESX. O VMware vSphere trata-se de uma plataforma de virtualizao de servidores que inclui o hypervisor VMware ESX e ferramentas de gesto associadas. Os servidores so geridos atravs de uma consola de gesto capaz de gerir vrios servidores em simultneo que se designa por vCenter Server [7] [20].
3.1.3 - Xen
O Xen um software livre de virtualizao para as arquitecturas x86, x86-64, IA-32 e IA64 (Intel Architecture, 32-bit(Binary digit) e 64-bit respectivamente). Este permite, com o mesmo hardware, a execuo de vrios sistemas operativos em simultneo. Foi concebido no mbito de um projecto na Universidade de Cambridge, liderado pelo Ian Pratt, fundador da XenSource, Inc, esta que mais tarde em 2007 foi comprada pela Citrix System Inc [13]. O Xen um dos exemplos mais populares de paravirtualizao. Este tipo de virtualizao tem um ganho de desempenho em relao virtualizao total, pois o sistema operativo visitante modificado para que todas as tarefas protegidas sejam reencaminhadas para o VMM ao contrrio da virtualizao total, onde o sistema operativo visitante tenta executar as mesmas tarefas protegidas, mas como estas se encontram no domnio do sistema operativo host no podem ser executadas, logo o VMM tem de intervir para realizar a sua execuo ou a sua simulao. Citrix XenServer uma plataforma de virtualizao grtis baseada no Xen hypervisor que um software livre e inclui o XenCenter, uma consola capaz de gerir vrios servidores e mquinas virtuais, possui vrios templates para criar novas mquinas virtuais, possibilita snapshots, possibilita migrao das mquinas virtuais, atravs do XenMotion, e oferece suporte para o armazenamento compartilhado [21] [22].
3.1.4 - Hyper-V
O Hyper-V uma ferramenta de virtualizao da Microsoft, Bare Metal que deve ser instalado directamente no hardware eliminando a necessidade de um Host. Sendo assim, um produto especializado e independente que contm o hypervisor Windows, o modelo de driver do Windows Server e os componentes de virtualizao que permitem desenvolver testes e desenvolvimentos, a consolidao de escritrios remotos e a virtualizao de estaes de trabalho hospedadas. Esta ferramenta tem as caractersticas necessrias para o desenvolvimento desta tese, contudo, tem certas limitaes, ou seja, para poder usufruir em pleno da ferramenta seria necessrio ter sempre o Windows Server 2008, obrigando sempre as 16
Ferramentas de Virtualizao
empresas a optar por uma tecnologia que no livre para a resoluo dos seus problemas. Outra das limitaes o facto de suportar poucas distribuies Linux a nvel de sistemas operativos guests, ou seja, para alm de apenas suportar Suse Linux Enterprise Server e Red Hat Enterprise Linux, ainda tem um entrave no que toca ao nmero de processadores virtuais que se pode dedicar a estas mquinas que neste caso um [13] [23].
Com base na tabela apresentada, verifica-se que a nvel de hypervisor o KVM [19] no bare-metal, isto , tecnologia que instalada directamente no servidor fsico, sem ser necessrio ter um sistema operativo instalado, como tambm no disponibiliza a Alta Disponibilidade ao contrrio das restantes ferramentas. Com excepo ao KVM, todas as ferramentas so do tipo bare-metal e contm Alta disponibilidade, contudo o Xenserver [24] e o VMware vSphere [25] apenas a disponibilizam em verses especficas dos produtos que esto designadas na tabela acima. Todas as ferramentas permitem Live Migration e suportam Guests Windows e Linux, tirando o VMware vSphere que apenas disponibiliza Live Migration na verso VMware vSphere Advanced, e o Hyper-V R2 [23] que a nvel de Guests Linux suportados, apenas suporta SUSE Linux Enterprise Server e RED Hat Enterprise Linux. Desta forma, as ferramentas que nesta fase foram excludas foram o Hyper-V R2 e o KVM. O Hyper-V por estar sempre muito dependente do Windows Server 2008, como descrito em cima quando apresentada a ferramenta e por suportar poucas distribuies Linux, visto que um ponto importante, pois as mquinas virtuais que iro ser criadas sero mquinas Linux. O KVM foi excludo por no ser do tipo Bare-Metal, que se trata de um requisito necessrio e por no oferecer o servio de Alta Disponibilidade.
17
Ferramentas de Virtualizao
O VMware ESX faz parte da primeira gerao das arquitecturas de virtualizao baremetal. A abordagem que o ESX faz virtualizao pode ser demonstrada como uma traduo binria tal como representa a Figura 3.1. Exemplificando, ao fazer um pedido de suspenso do sistema operativo para o processador, aquilo que se ir suceder a suspenso de uma mquina virtual especifica, em vez de ser suspenso todo o sistema, libertando assim recursos para as outras mquinas virtuais, logo o ESX leva o sistema operativo convidado a pensar que
18
Ferramentas de Virtualizao
est a ser executado num hardware fsico. Como a primeira camada que interage com o hardware o software o VMware tem feito investimentos considerveis no desenvolvimento de drivers prprios para suportar a variedade de hardware contida nos servidores comerciais. A arquitectura do XenServer bastante diferente da do VMware. O XenServer considerado a base para quase duas dezenas de produtos de virtualizao comerciais, alimentando assim o maior motor do mundo de virtualizao - Amazon Elastic Compute Cloud. Enquanto o VMware utiliza a traduo binria o XenServer usa uma combinao de paravirtualizao e virtualizao assistida por hardware. Ao contrrio do VMware o XenServer foi a primeira soluo de paravirtualizao que permite ao sistema operativo convidado estar plenamente consciente que se encontra a ser executado sob um hardware virtualizado. Assim conseguimos ter um tipo de virtualizao cujo desempenho mais optimizado. O XenServer suporta distribuies de Linux como o Red Hat Enterprise Linux; o Novell SUSE; o Debian; o Oracle Enterprise Linux e o CentOS. A VMware comeou a adoptar a paravirtualizao como a tecnologia base da VMI (Virtual Machine Interface) do ESX. Consequentemente atravs da anlise do desempenho da VMI a VMware acredita que a paravirtualizao superior traduo binria. Contudo apenas alguns sistemas operacionais Linux esto habilitados a executar VMI em vSphere, como algumas verses do SUSE e algumas verses Fedora. Por outro lado a abordagem do XenServer para drivers de dispositivos significativamente diferente da abordagem da VMware, como podemos verificar na Figura 3.2.
Ferramentas de Virtualizao
encontram a ser geridos em conjunto, formando uma Pool de recursos para garantir a alta disponibilidade dos sistemas de gesto do ncleo de servio, no recorrendo a um servidor de base de dados externo para a suposta gesto do ncleo. Ao par do XenServer, o VMware ESX instalado na mquina, contudo utiliza o vCenter Server para gerir os vrios servidores e as suas respectivas configuraes. O vCenter Server executado como um servio do Windows num servidor de gesto em separado, requerendo assim uma base de dados externa para armazenar e gerir as configuraes do ncleo. Para redundncia e alta disponibilidade dos servios de gesto do ncleo a VMware recomenda a adio do seu software de clustering intitulado de vCenter Server Heartbeat.
20
Ferramentas de Virtualizao
3.1.6.f -
Alta Disponibilidade
A alta disponibilidade permite que mquinas virtuais possam ser reiniciadas numa outra mquina fsica caso a mquina original falhe a executar a mquina virtual de forma inesperada. Isto pode reduzir o tempo de indisponibilidade do sistema e a necessidade de interveno administrativa. A VMware e o XenServer tm caractersticas de alta disponibilidade que oferecem polticas de gesto do comportamento das mquinas virtuais aps falha da mquina que as acolhe. A VMware inclui um sistema de tolerncia de falhas, uma caracterstica que mantm espelhado instncias de mquinas virtuais que se encontram a ser executadas em mquinas distintas. No caso de falha da mquina que as suporta espelhada a instncia mantendo assim a continuidade de trabalho.
21
Ferramentas de Virtualizao
Tabela 3.2 Comparao das funcionalidades oferecidas pelo XenServer e pelo VMware vSphere
22
Linguagens de Programao
3.2.2 - Javascript
Javascript uma linguagem de programao que foi criada pela Netscape em 1995. Apesar de ser muito semelhante com Java muito diferente quanto ao uso, sendo o Javascript mais orientado para pginas Web. Trata-se de uma linguagem orientada a objectos, muito usada em pginas Web no lado do cliente, que leva a uma melhor apresentao e interactividade das pginas Web. O browser de quem acede a pginas que usam este tipo de linguagem, o elemento que fica encarregue de interpretar e executar estes scripts, sem ter de apelar aos recursos de um servidor, o que aumenta a rapidez do processo [13] [28].
3.2.3 - HTML
HTML (HyperText Markup Language) trata-se de uma linguagem usada para criar pginas Web e foi desenvolvido por Tim Berners-Lee em 1990. O objectivo inicial era tornar possvel a troca de informao e documentao de pesquisas, entre cientistas. Este possibilita apresentar informaes atravs da internet. Actualmente encontra-se a ser desenvolvido o XHTML (Extensible Hypertext Markup Language), que usa uma sintaxe mais rigorosa e menos ambgua para que o cdigo HTML se torne mais simples para ser processado [13] [29].
23
Protocolos
3.3 - Protocolos
3.3.1 - XML-RPC
O XML-RPC (Extensible Markup Language - Remote Procedure Call) foi criado por Dave Winer na UserLand Software em 1995 na Microsoft. No entanto, a Microsoft apoiou pouco o seu desenvolvimento adicionando poucas funcionalidades. O XML-RPC um protocolo de RPC codificado em XML, um protocolo simples, definido com poucas linhas de cdigos ao contrrio da maioria dos sistemas de RPC, onde os documentos padres so frequentemente milhares de pginas e exige apoio de softwares para serem usados. O XML-RPC funciona atravs de pedidos HTTP (HyperText Transfer Protocol) de um cliente para um servidor que contenha este protocolo implementado. O cliente neste caso no passa de uma simples chamada de um mtodo de um sistema remoto. Podem ser passados vrios parmetros de entrada de forma a obter o(s) valor(es) pretendidos. O XML-RPC pode ser usado para transportar objectos ou estruturas como parmetros de entrada ou sada [13] [30].
3.3.2 - iSCSI
iSCSI - eye-scuzzy, abreviatura de Internet Small Computer System Interface, um protocolo de armazenamento baseado na rede IP (Internet Protocol). utilizado para facilitar a transferncia de dados na intranet. Este protocolo pode ser utilizado para transferir dados nas LANs (Local Area Networks), WANs (Wide Area Networks) ou pela Internet. um protocolo muito usado nas SANs (Storage Area Networks). Ao contrrio do Fibre Channel, este utiliza a infrastrutura da rede j existente sem ser necessrio material especializado.
3.3.2.c - Endereo
O iSCSI aceita trs formatos para o nome: IQN (iSCSI Qualified Name) com o formato iqn.yyyy-mm.{nome de domnio invertido}: texto opcional para melhorar organizao de 24
PostgreSQL
'iqn.2001-04.com.acme:storage.tape.sys1.xyz'. EUI(Extended
Unique Identifier), onde o formato eui.(endereo EUI-64bit) como demonstra o exemplo 'eui.02004567A425678D' e por ultimo T11 NASA (Network Address Authority) que apresenta o formato naa.(identificador NASA 64 ou 128 bits) como apresentado no exemplo 'naa.52004567BA64678D'. O mais frequente dos trs o IQN.
3.3.2.d - Segurana
As iSCSI targets podem apresentar autenticao usando o protocolo CHAP(ChallengeHandshake Authentication Protocol). O protocolo CHAP vulnervel a ataques de dicionrio, spoofing, ou ataques de reflexo mas possvel prevenir a maioria destes ataques, respeitando as devidas regras de utilizao de CHAP em iSCSI [13] [31].
3.3.3 - VNC
Desenvolvido originalmente pela Olivetti & Oracle Research Labs em Cambridge, Inglaterra, que foi posteriormente adquirida pela AT&T(American Telephone and Telegraph) e, finalmente, fecharam, VNC (Virtual Network Computing) tem evoludo como o software de controlo remoto mais utilizado. Isto devido ao facto de ser gratuito, sua disponibilidade para um grande nmero de diferentes sistemas operativos, a sua simplicidade, robustez e boa compatibilidade com verses anteriores. O suporte multi-plataforma especialmente importante para os administradores de rede, pois permite administrar quase todos os sistemas a partir de uma nica ferramenta. Existe tambm uma applet Java, que possibilita o acesso a qualquer computador localizado remotamente acedendo a um browser, sem ser necessrio a instalao de software. A verso VNC, original da AT&T, no muito usada, porque existem diversos produtos com melhorias significativas disponveis, como o RealVNC, VNC tight e UltraVNC. UltraVNC o mais usado neste momento. O VNC foi originalmente desenvolvido para ser utilizado dentro de uma LAN, logo existe questes de segurana quando utilizado atravs da internet. Quando se pretende aceder a um computador localizado remotamente deve-se considerar um tnel VPN (Virtual Private Network) ou proteger todo o trfego do VNC atravs do uso de SSL (Secure Sockets Layer) [32] [33].
3.4 - PostgreSQL
PostgreSQL trata-se de uma base de dados open-source e foi originalmente desenvolvido no Departamento de Cincia de Computao da Universidade de Berkeley. Este apresenta mais de 15 anos de desenvolvimento activo e uma arquitectura comprovada que lhe valeu a reputao de confiabilidade, integridade de dados e exactido. Pode ser utilizado em todos os principais sistemas operativos, incluindo Linux, UNIX (AIX (Advanced Interactive Executive), BSD (Berkeley Software Distribution), HP-UX (Hewlett-Packard UNIX), Mac OS X (Macintosh Operative systems UNIX), Solaris, Tru64) e Windows. Este possui suporte para chaves estrangeiras, joins, vistas e triggers. Inclui vrios tipos de dados como INTEGER, NUMERIC, BOOLEAN, CHAR, VARCHAR, DATE, INTERVAL, e TIMESTAMP suportando tambm o 25
Plataformas existentes
armazenamento de imagens, sons e vdeo. Perante estas vantagens acima descritas o sistema operativo IPBrick utiliza esta base de dados como principal do sistema [34] [35].
26
Plataformas existentes
O xvpweb um Web-based front end que fornece uma viso geral do estado das Pools, Hosts e Mquinas Virtuais que se encontram no XenServer, apresentando vrias funcionalidades que permitem a visualizao das consolas das mquinas virtuais e a realizao de operaes como iniciar, reiniciar, suspender e migrar mquinas virtuais como podemos visualizar nas figuras 3.5 e 3.6. Este usa o xvp (correndo na mesma mquina que o servidor Web) e o xvpviewer, utilizado como uma applet no xvpweb. O xvpweb utiliza HTML, CSS(Cascading Style Sheet), PHP, Javascript e usa a biblioteca de Javascript jQuery. Para ser executado necessita de um servidor Web Apache no Linux, com PHP, CURL e mcrypt.
27
Plataformas existentes
O xvpdiscover um pequeno programa, que funciona em Linux, que pode escrever uma configurao no xvp.conf adequada para o xvp e para o xvpweb. Faz isso conectando-se a um dos servidores XenServer e consultando os detalhes da Pool, dos Hosts e das mquinas virtuais e criar o ficheiro de configurao consoante a informao que conseguiu recolher [36].
3.5.2 - XenCenter
A aplicao XenCenter serve para gesto remota dos servidores XenServer, contudo apenas funciona no Windows Server 2003, Windows Server 2008, Windows XP ou Windows Vista. uma plataforma que proporciona a insero de novos servidores XenServer e a sua gesto na mesma. possvel adicionar servidores a Pools, editar configuraes e de rede dos servidores bem como os seus atributos. A nvel das Pools permite a configurao de alta disponibilidade definindo quais as polticas de gesto das mquinas. Permite ainda a criao e gesto de mquinas virtuais, como podemos verificar na Figura 3.7. Ao contrrio de outras plataformas de gesto, o XenCenter distribui a gesto dos dados entre os servidores numa Pool de recursos para garantir que no haja um nico ponto de falha de gesto. Se um servidor de gesto falhar, qualquer outro servidor na Pool poder assumir o papel de gestor. O Xencenter tem como requisitos a nvel de Sistema Operativo - Windows XP, Windows Server 2003, Windows Server 2008 e Windows Vista SP1(Service Pack) e SP2; Framework -.NET framework verso 2.0 ou superior; relativamente ao CPU - 750 MHz (MegaHerzt)mnimo, 1GHz(GigaHertz) ou superior recomendado; no que toca memria RAM - 1 GB mnimo, 2 GB ou mais recomendado, Disco - 100 MB (Mebabyte) mnimo e Interface de rede - 100Mbits/s (Megabit por segundo) ou mais rpida. O Xencenter uma aplicao Windows que serve de cliente. Deve ser instalada numa mquina remota que esteja na mesma rede que o servidor XenServer [37] [38].
28
Concluso
3.6 - Concluso
Com o intuito de desenvolver uma nova plataforma, de acordo com o que foi referido no captulo 2, ser utilizada a virtualizao como forma de concretizar o conceito de Cloud Computing para a IPBrick. Desta forma, este captulo foi iniciado com algumas ferramentas existentes de virtualizao tais como o KVM, VMware, Xen e Hyper-V. Como foi explicado o KVM e o Hyper-V no foram tidos em conta devido ao facto de no irem de encontro com os requisitos como foi explicado neste captulo, na anlise comparativa das ferramentas. Foi efectuada uma anlise das solues VMware vSphere e XenServer, de forma a comparar ambas e verificar qual a mais indicada para ser utilizada no desenvolvimento da plataforma Web para a gesto de servidores fsicos e mquinas virtuais. As linguagens de programao (PHP, Javascript e HTML), passveis de serem utilizadas, tambm foram apresentadas bem como os protocolos ( XML-RPC e ISCSI e VNC ). Aps ter sido referenciado as linguagens de programao e protocolos a utilizar, foi feita referncia a duas plataformas existentes que complementam o conceito da plataforma a criar dentro dos objectivos desta tese, ou seja, a plataforma que ir ser criada deve corresponder s funcionalidades que as plataformas XVP e XenCenter apresentam. por estas plataformas no satisfazerem as necessidades das empresas, no que toca gesto e configurao de Pools, Hosts e mquinas virtuais, que emerge a necessidade de ser desenvolvida uma plataforma que o faa. O XenCenter funciona apenas em sistemas operativos Windows e o XVP, apesar de ser uma plataforma Web, no efectua uma gesto que se enquadra nas necessidades das empresas, pois no fornece as aces necessrias. Em suma, atravs das ferramentas abordadas, dever ser possvel o desenvolvimento da plataforma IPBrick Cloud Environment para a gesto dos servidores IPBrick. Para o efeito foi escolhida a ferramenta XenServer pelo facto de ser uma verso grtis com muitas mais funcionalidades do que a da VMware e dentro das opes que tm de ser pagas aquela que fica mais econmica. Foi escolhida tambm pelo facto de ser uma tecnologia que deriva de tecnologias open-source, existindo muita mais informao disponibilizada sobre a ferramenta. 29
30
Requisitos do sistema
31
Requisitos do sistema
Sesso
Pool Host
Editar Pool, Eliminar Pool, Visualizar Pool Adicionar Host, Editar Host, Visualizar Host, Adicionar Host a uma Pool, Retirar Host de uma Pool
Mquina Virtual
Criar Mquina Virtual, Eliminar Mquina Virtual, Editar Mquina Virtual, Visualizar Mquina Virtual, Migrar Mquina Virtual , Reiniciar Mquina Virtual (Normal), Reiniciar Mquina Virtual (Forado), Desligar Mquina Virtual (Normal), Desligar Mquina Virtual (Forado)
Adicionar disco virtual, Eliminar disco virtual Adicionar repositrio de dados, Visualizar repositrio de dados, Eliminar repositrio de dados
Aplicar licena Activar Alta Disponibilidade, Desactivar Alta Disponibilidade, Configurar Alta Disponibilidade
Tabela 4.1 Casos de Uso
32
Requisitos do sistema
Sesso Efectuar Login O utilizador introduz o username e password para aceder interface de gesto da plataforma. Editar Utilizador O utilizador define um novo username e uma nova password. Seleccionar Idioma O utilizador escolhe qual o idioma que pretende que o sistema seja apresentado. Efectuar Logout O utilizador efectua logout para encerrar a sua sesso no sistema. Pool Editar Pool Atravs desta aco o utilizador consegue editar o nome, o master e o repositrio de dados default da Pool. Eliminar Pool Com esta opo a Pool eliminada, sendo igualmente eliminados os dados da base de dados, tanto da Pool como dos respectivos Hosts e repositrios de dados. Visualizar Pool Esta aco permite ao utilizador a visualizao das informaes da Pool. Host Adicionar Host
Editar Host - Atravs desta aco o utilizador consegue editar o nome, o IP, a gateway, o DNS (Domain Name System), a Mscara e o tipo de IP do Host. Visualizar Host - Esta aco permite ao utilizador a visualizao das informaes do Host. Adicionar Host a uma Pool Aco que permite ao utilizador adicionar o Host a uma Pool j existente. Retirar Host de uma Pool A partir desta aco o utilizador pode retirar o Host de uma Pool.
33
Requisitos do sistema
Eliminar Mquina Virtual Ao seleccionar esta opo, o utilizador elimina a mquina virtual, escolhida, do servidor aonde ela se encontrava alojada. Editar Mquina Virtual - Atravs desta aco o utilizador consegue editar o nome, a memria e o nmero de CPUs virtuais. Visualizar Mquina Virtual - Esta aco permite ao utilizador a visualizao das informaes da Mquina Virtual. Estes casos de uso tal como o nome indica permitem efectuar as respectivas aces: Migrar Mquina Virtual, Reiniciar Mquina Virtual (Normal), Reiniciar Mquina Virtual (Forado), Desligar Mquina Virtual (Normal) e Desligar Mquina Virtual (Forado) Interface de Rede Virtual Adicionar Interface de rede virtual Esta aco permite ao utilizador a criao de uma nova interface de rede virtual e consequente associao mquina virtual. Eliminar Interface de rede virtual - Ao seleccionar esta opo, o utilizador elimina a interface de rede virtual, escolhida, da mquina virtual qual esta pertencia. Disco Virtual Adicionar disco virtual - Esta aco permite ao utilizador a criao de um novo disco virtual e consequente associao mquina virtual. Eliminar disco virtual - Ao seleccionar esta opo, o utilizador elimina o disco virtual, escolhido, da mquina virtual qual este pertencia.
34
Requisitos do sistema
Visualizar repositrio de dados - Esta aco permite ao utilizador a visualizao das informaes do Repositrio de dados. Eliminar repositrio de dados - Com esta opo o Repositrio de dados eliminado, sendo igualmente eliminados os dados da base de dados. Licenciamento Aplicar Licena A partir desta aco o utilizador faz upload de uma licena vlida para os servidores XenServer. Alta Disponibilidade Activar Alta Disponibilidade
35
Desactivar Alta Disponibilidade Esta aco permite ao utilizador desactivar a opo de alta disponibilidade na Pool pretendida Configurar Alta Disponibilidade Aco que permite parametrizar os estados das mquinas virtuais para definir as prioridades em caso de falha.
//seleco do campo value da resposta $val = $result->value(); //passagem da reposta para array $dataArray = XML_RPC_decode($val); //impresso do resultado echo "DATAARRAY<pre>"; print_r($dataArray); echo "</pre>"; O resultado deste teste o seguinte, retornando se o pedido foi bem sucedido e a referencia da sesso estabelecida para usar noutras funes:
Depois de efectuados vrios testes com vrias funes, foram desenvolvidas um conjunto de funes que para alm de fazerem os pedidos, tratavam as respostas e filtravam o que interessava. Segue um exemplo de uma dessas funes, onde adquirido a referncia da sesso estabelecida no XenServer: //login no XenServer function xapi_login ($ip, $user, $pass) { global $client; $client = new XML_RPC_Client ( "/xmlrpc/server.php", $ip, 443 ); $user = new XML_RPC_Value ( $user , "string"); $pass = new XML_RPC_Value ( $pass , "string"); // criar a mensagem $msg = new XML_RPC_Message ( "session.login_with_password" , array ($user,$pass)); // envio da mensagem $result = $client->send ( $msg ); $check = checkComm ($result); //se conseguir comunicar com o XenServer e no der erro if ($check == 'OK') { $val = $result->value(); $status = $val->structmem("Status"); //se o valor for diferente de Success imprime o erro if ($status->scalarval() != "Success") { $value = XML_RPC_decode($val); return $error = $value["ErrorDescription"]["0"] . "," . $value["ErrorDescription"]["1"]; } $value = XML_RPC_decode($val); //retorna o valor no campo Value return $sessidval = $value["Value"]; 37
Arquitectura da rede
A figura 4.6 representa a arquitectura de rede que foi projectada. Como se pode visualizar, a rede tem os servidores com o software XenServer instalado, que servem de alojamento das mquinas virtuais, o repositrio da rede responsvel por armazenar todo o contedo das mquinas virtuais criadas na rede, o servidor com o sistema operativo IPBrick instalado a servir de alojamento para a plataforma de gesto dos componentes da rede e contm tambm toda a informao, sobre a disposio da rede, guardada. A partir da estao cliente acede-se plataforma alojada no servidor IPBrick para efectuar todo o tipo de gesto na rede disponvel.
38
Problemas encontrados
Problemas encontrados
SUSE Linux Enterprise Server 10 SP1/2 32-bit/64-bit SUSE Linux Enterprise Server 11 32-bit/64-bit CentOS 4.5, 4.6 CentOS 4.7 CentOS 5.0-5.3 32-bit CentOS 5.0-5.3 64-bit Oracle Enterprise Linux 5.0-5.2 32-bit Oracle Enterprise Linux 5.0-5.2 64-bit
X X X
X X X X
X X X X
X X X X
Um dos problemas surgiu aquando a adio da primeira mquina virtual IPBrick. A IPBrick tem algumas distribuies e a utilizada para este projecto assenta na distribuio Debian. Para ser instalada a IPBrick no XenServer foi utilizado o template Other Install Media. Isto deve-se ao facto de o nico template que o XenServer disponibiliza para o sistema operativo Debian tratar-se de um full-template, ou seja, cria automaticamente uma mquina virtual com o sistema operativo Debian instalado, o que no acontece em outros templates disponibilizados, pois permitem outras formas de instalao como se confirma na figura. Desta forma, no foi possvel, atravs do template para o sistema operativo Debian, instalar o sistema operativo IPBrick, mas sim atravs do template Other install Media que utilizado quando o sistema a instalar no se encaixa em nenhum dos templates disponibilizados. Ao usar o template Other Install Media a mquina instalada em modo HVM (Hardware Virtualization Mode), virtualizao total, logo como o XenServer assenta num tipo de virtualizao chamado Paravirtualizao, no se consegue tirar total partido das funcionalidades das mquinas. Com a mquina a funcionar em modo HVM podia-se apenas efectuar operaes como Reiniciar/Desligar e ambas foradas, no sendo possvel Reiniciar, Desligar, Suspender nem migrar uma mquina virtual. Para alm disso no se tinha acesso a informaes como o IP das interfaces de rede virtuais que foram criadas para cada mquina virtual, no se conseguia criar interfaces de rede virtuais nem discos virtuais em tempo real, ou seja, se houvesse inteno de adicionar alguma interface de rede ou algum disco teria de se Reiniciar a mquina, de modo forado, para estas alteraes entrarem em vigor. Aps muita pesquisa descobriu-se que mudando alguns parmetros nessa mquina virtual podia-se ter a mesma a trabalhar em modo de Paravirtualizao. Era necessrio aplicar os seguintes comandos no XenServer: xe vm-param-set uuid=<vm uuid> HVM-boot-policy= (apaga o modo de inicializao HVM) xe vm-param-set uuid=<vm uuid> PV-bootloader=pygrub (define pygrub como modo de inicializao) xe vbd-param-set uuid=<vbd uuid> bootable=true (define o dispositivo de arranque)
40
Problemas encontrados
Contudo, mesmo depois de colocados os comandos a mquina no iniciava, como era pretendido. Aps mais alguma pesquisa foi descoberto o problema. O kernel da IPBrick, aquando a compilao, teria de ter a flag do Xen activada. Para isso foram efectuadas alteraes na compilao do kernel a utilizar pela IPBrick, como mudar a famlia do processador, como mostra a Figura 4.8.
Como se pode verificar na Figura 4.8, foi alterada a famlia do processador para a Pentium-Pro, pois para o XenServer correr a mquina em modo PV (Paravirtualizado), necessrio o kernel ter uma flag de paravirtualizao activa, e para a flag aparecer na compilao do kernel necessrio escolher um processador com suporte para a virtualizao, como podemos visualizar na Figura 4.9.
41
Concluso
Outro problema que surgiu, foi quando se adicionou uma mquina virtual IPBrick, pois era necessrio saber quando a instalao do sistema operativo se encontrava no fim. O sistema operativo IPBrick aps instalao faz o pedido para se reiniciar a mquina, logo pretendia-se determinar qual o momento certo para efectuar essa operao e para proceder alterao do modo da mesma, ou seja, do modo HVM para PV. Para o efeito, aps ter sido descoberto que o XenServer dispunha de um servidor VNC, procedeu-se criao de alguns scripts cuja funo era a criao de um tnel entre a mquina, onde se encontrava a plataforma alojada, e o servidor que continha a mquina virtual, pois era a nica forma de ter acesso s consolas. Devido a este problema foi pensada uma soluo, aps a adio de uma mquina virtual com o sistema IPBrick o utilizador encaminhado para uma pgina Web onde mostrada a consola da mquina virtual que permite a visualizao da instalao atravs da utilizao de uma applet java, que suporta o protocolo VNC, como cliente. Para alm disso disponibiliza tambm um boto que serve para quando o sistema operativo finalizar a instalao, reiniciar a mquina e alter-la com a finalidade de a mesma iniciar trabalhando em modo PV. Outras das dificuldades sentidas, foi a complexidade da compreenso da API disponibilizada, pois a falta de exemplos de como utilizar a API fez com que o trabalho para a explorao da ferramenta XenServer fosse redobrado.
4.7 - Concluso
Dentro da metodologia estabelecida, o desenvolvimento da plataforma, insere-se na fase em que so reunidas as ferramentas e as informaes, recolhidas na fase de pesquisa Reviso de Conceitos e Tecnologias e comea-se a desmontar uma problemtica, resultando na soluo. Ao longo do desenvolvimento da plataforma, como se pde verificar neste captulo, foram definidos requisitos e casos de uso para o sistema, montada a arquitectura da rede e a base de dados da plataforma e durante o desenvolvimento da mesma foram ultrapassadas barreiras que surgiram ao longo do desenvolvimento do projecto. As dificuldades no se prenderam com a impossibilidade de cumprir os requisitos nem com os problemas que foram surgindo, pois foram sempre encontradas formas de contornar a situao, a principal dificuldade agregou-se escassez de informao sobre a utilizao da API disponibilizada pela Xen, contudo, a informao foi sendo encontrada em fruns onde continha testemunhos que ajudaram a desvendar algumas questes.
42
Captulo 5 Resultados
De acordo com aquilo que foi exposto no ponto 4.1 Metodologia do captulo 4 Desenvolvimento da Plataforma aps o desenvolvimento do trabalho necessrio analisar os resultados. Os resultados so por assim dizer, a soluo obtida que advm daquilo que foi efectuado durante o desenvolvimento do trabalho. Por vezes, a soluo nem sempre vai de encontro com os objectivos ou requisitos definidos, mas isso no representa o insucesso do trabalho, apenas poder comprovar que o objectivo no alcanvel da forma adoptada. Para avaliar o trabalho desenvolvido necessrio interpretar os resultados e referir como se conseguiu alcanar certas metas, e explicar o porqu de algumas das metas ficarem aqum. O captulo 5 Resultados - destina-se interpretao dos resultados, apresentao da soluo obtida, compatibilidade do sistema e anlise do trabalho efectuado ao longo deste projecto.
43
Cenrios de teste
Com base na figura 5.1, poder-se- verificar a existncia de dois servidores com o software XenServer instalado, um servidor com o software IPBrick que para alm de servir de alojamento para a plataforma desenvolvida, serve como repositrio e uma estao cliente que servir para aceder a plataforma de gesto. Para validar todo o tipo de aces foram analisados os dois cenrios. No primeiro cada servidor XenServer encontrava-se numa Pool como mostrado na figura 5.2, para validar o sistema quando existe apenas um servidor em cada Pool.
44
Cenrios de teste
No segundo os dois servidores XenServer encontravam-se inseridos na mesma Pool, como podemos confirmar na figura 5.3, para validar a plataforma quando cada Pool composta por dois ou mais servidores.
A configurao destes servidores efectuada durante a instalao que se encontra especificada em [42]. Para ser criado o repositrio local de ISOs, necessrio j se encontrar criada a pasta onde estaro localizadas as imagens com extenso iso e essa pasta ter de se encontrar exactamente em /var/opt/xen/iso_import/ISOs como dito em [40].
as targets e as LUNs pretendidas. Deve-se ter em ateno que as parties que so associadas s LUNs no se devem encontrar montadas. Neste caso foi adicionado o seguinte cdigo ao ficheiro ietd.conf: Target iqn.2010-04.com.cloud:storage Lun 0 Path=/dev/sdb1,Type=fileio Target iqn.2010-04.com.cloud:teste Lun 0 Path=/dev/sda8,Type=fileio Para a IPBrick servir como alojamento da plataforma foi necessria a criao da interface Web, a partir da plataforma de gesto do servidor IPBrick.
46
Como se trata da primeira vez que o utilizador acede a esta plataforma, este no tem acesso a nenhum servidor, pois ainda no foi adicionado nenhum, com efeito so disponibilizadas apenas algumas opes (Anexo A 2). Para adicionar o servidor basta fornecer o username, a password e o IP do mesmo como possvel visualizar no diagrama na aco que remete ao fornecimento dos parmetros necessrios. (Anexo A 3). S devero ser adicionados os masters das Pools, pois a partir destes sero adicionados tambm os slaves. Quando instalado o XenServer num servidor, este master de si prprio, logo pode ser adicionado. No caso do servidor no estar associado a nenhuma Pool, criada uma Pool com o nome Pool, automaticamente. Se por outro lado, o servidor adicionado j se encontrar associado a uma Pool, esta adicionada com todas as suas definies, tal como o repositrio de dados usado, isto no caso de estar definido, ou seja, herda todas as configuraes j existentes, no tendo que ser novamente configurada. Durante o processo de adicionar o servidor, criado, no mesmo, um repositrio de ISOs que possibilitar mais tarde a criao de mquinas virtuais a partir das ISOs presentes nesse repositrio. Aquando a insero do servidor, so inseridos nas bases de dados todos os dados relevantes das Pools, dos Hosts e dos repositrios de dados, que se encontram nas mesmas, como se pode verificar na Figura 5.4. A outra opo apresentada, no menu inicial da plataforma, a opo de 'Configuraes' (Anexo A 4), onde possvel alterar o username e a password de acesso plataforma bem como o idioma pretendido. Depois de adicionados um ou mais servidores (masters) so apresentadas mais opes como 'Hosts', 'Mquinas Virtuais', 'Repositrios de dados' e 'Alta Disponibilidade' no menu principal.
47
5.2.2 - Pools
Tal como est demonstrado na Figura 5.5, na pgina 'Pools' so mostradas as Pools que foram adicionadas, juntamente com alguns dados da mesma como o nome, o nome do servidor master, o nome dos servidores que se encontram na mesma e o nome do repositrio de dados, por defeito, caso este j se encontre definido. Nas Pools adicionadas, disponibilizado um submenu onde o utilizador tem a oportunidade de efectuar algumas aces sobre as mesmas (Anexo A 5). O Utilizador pode editar os campos da Pool, definindo o nome, escolhendo o servidor master e escolhendo o repositrio de dados que dever ser usado por defeito (Anexo A 6). Como se pode verificar na Figura 5.5, disponibilizada uma opo de Aplicar Licena, pois a verso XenServer inicial vlida apenas para trinta dias e, 48
a partir desta opo, basta fazer o upload da licena adquirida no site da plataforma para poder usufruir da mesma durante um ano. Pode-se eliminar a Pool, eliminando esta da base de dados. Durante o processo de eliminao eliminado tambm o repositrio de ISOs adicionado durante a insero da mesma, para evitar que, aquando uma nova insero, no seja criado outro repositrio de ISOs igual ao que j havia sido criado. A opo de activar alta disponibilidade s aparece como uma funcionalidade da Pool, se a mesma for constituda por dois ou mais servidores,ou seja, no primeiro cenrio, pois s com um servidor na Pool no tinha sentido esta conter esta possibilidade de activar alta disponibilidade, pois esta opo tem o objectivo de se um servidor falhar as mquinas que se encontram nele serem migradas para outro servidor da Pool, e visto que a Pool s contm um servidor, a alta disponibilidade no se encaixa neste cenrio. Quando se trata do segundo cenrio, com dois servidores na mesma Pool, disponibilizada uma opo nova que permite activar a Alta Disponibilidade na Pool (Anexo A 7). Ao seleccionar a opo Activar a Alta Disponibilidade tem de se especificar quais as mquinas virtuais da Pool que devero reiniciar obrigatoriamente noutro servidor caso o servidor onde elas residem falhe, as que devero reiniciar noutro servidor se este apresentar recursos suficientes, tais como a memria para as suportar e aquelas que no sero reiniciadas caso o servidor falhe. Quando activada a opo de alta disponibilidade alterada a opo de Activar a Alta Disponibilidade para Desactivar a Alta Disponibilidade (Anexo A 8).
49
5.2.3 - Hosts
Como se pode verificar na Figura 5.6, na pgina 'Hosts' so mostrados os vrios servidores fsicos presentes em todas as Pools, sejam eles masters ou slaves. apresentada uma lista com os nomes dos mesmos e com o nome da Pool a que pertencem. So disponibilizadas as aces como Reiniciar ou Desligar o(s) servidor(s),ou seja, basta seleccionar o servidor ou servidores, escolher a aco e submeter (Anexo A 9). Ao seleccionar o nome do servidor, o utilizador reencaminhado para uma pgina que contm informaes sobre o servidor escolhido (Anexo A 10). Como se trata de um nico servidor na Pool (primeiro cenrio), encontra-se disponvel a opo de Adicionar Pool, onde o utilizador pode adicionar este servidor a uma Pool existente. Ao seleccionar esta opo tem de se especificar a que Pool que este servidor deve ser adicionado. Logo depois de ser adicionado, todos os dados referentes Pool a que este pertencia so eliminados da base de dados bem como todos os recursos associados Pool, por exemplo os repositrios de dados. Existem vrias diferenas quando uma Pool apresenta mais do que um servidor (segundo cenrio). Uma delas quando visualizado um Host que seja slave na Pool onde se encontra, 50
em vez da opo Adicionar Pool disponibilizada a opo Retirar da Pool (Anexo A 11). Ao retirar um servidor, a base de dados actualiza-se, retirando o servidor da Pool, logo, se for necessrio efectuar operaes nesse servidor tem de se o adicionar novamente, porque depois de retirado o servidor encontra-se numa Pool na qual master. Esta pgina contm tambm a opo de editar o servidor, onde possvel mudar os campos nome, IP, gateway, mscara, DNS e a maneira como este obtm o seu IP, ou seja, se se trata de um IP esttico ou de um IP adquirido por DHCP (Dynamic Host Configuration Protocol) (Anexo A 12). Ao submeter estas mudanas no servidor, estas so guardadas tambm na base de dados do servidor IPBrick, onde se encontra alojada a interface de gesto, como se pode comprovar na Figura 5.6. Esta operao efectuada para que em caso de falhas dos servidores da rede, no se perca a configurao da rede, tal como, quem era o servidor master e os servidores slaves, a que Pool pertenciam e que repositrios de dados haviam.
51
Com base na Figura 5.7, na pgina 'Mquinas Virtuais' so apresentadas duas listas: a primeira com as mquinas que se encontram ligadas e a segunda com as mquinas suspendidas e desligadas. Esta lista contm o nome da mquina virtual e o nome do servidor onde esta se encontra. So disponibilizadas vrias aces, tais como, Reiniciar, Desligar, Migrar a mquina para outro servidor da Pool, Reiniciar (Forado) e o Desligar (Forado) que podem ser aplicados tanto a uma como a vrias mquinas virtuais (Anexo A 13). Tal como possvel visualizar na Figura 5.7, existe a opo de criar mquina virtual. Ao seleccionar esta opo necessrio seguir alguns passos que levam criao da mquina virtual pretendida. No primeiro passo tem de se especificar em que Pool se pretende adicionar esta mquina (Anexo A 14). Depois de submetida a Pool, na qual se pretende criar a mquina virtual, necessrio especificar os parmetros da mquina virtual: nome, descrio, memria, nmero de CPUs virtuais, o Host da Pool onde iniciar a mquina virtual, o repositrio de dados onde sero guardados todos os dados das mquinas virtuais e por fim a imagem pretendida que se encontra guardada no repositrio de ISOs (Anexo A 15). Depois de especificados os parmetros, disponibilizada a consola, alcanada atravs de uma applet java que suporta o protocolo VNC, com a instalao a decorrer para ser possvel visualizar o final da instalao e a reiniciar a mquina virtual. Para obter a consola necessrio criar um tnel SSH (Secure Shell) entre o servidor IPBrick, que tem a plataforma alojada, e o servidor XenServer, que dispe de um servidor de VNC que possibilita a visualizao no s da consola do servidor como tambm das mquinas virtuais, que se encontram nele instaladas. Esta mquina virtual instalada em modo HVM, mas para obter total controlo sobre a mquina virtual necessrio passar para modo PV, logo, enquanto est a decorrer a instalao so mudados certos parmetros para ocorrer esta alterao. Quando a instalao finaliza e a mquina reiniciada, esta j se encontra a funcionar em modo PV (Anexo A 16). Tal como nos 'Hosts', ao seleccionar o nome da mquina virtual obtm-se informaes mais detalhadas sobre a mesma (Anexo A 17), onde se consegue visualizar tambm as interfaces de rede virtuais associadas mquina virtual, podendo adicionar ou eliminar as existentes. Na opo Adicionar uma Interface de Rede Virtual onde se fornece tambm alguns parmetros como a interface de rede fsica a que a virtual dever se encontrar associada e especificar o MAC pretendido. Caso no seja pretendido especificar o MAC podemos seleccionar a opo Auto e a este ser atribudo um valor aleatrio automaticamente (Anexo A 18). apresentada uma lista de discos virtuais pertencentes mquina, bem como as opes de adicionar novo disco e eliminar os que j esto criados. Na opo Adicionar um Disco Virtual necessrio fornecer alguns parmetros para a criao de um novo disco como nome, descrio, tamanho e o repositrio de dados a usar para guardar as informaes guardadas neste disco (Anexo A 19). possvel tambm editar os campos da mquina virtual como a memria que o servidor disponibiliza para a mquina virtual, o nmero de CPUs virtuais e o nome da mquina virtual (Anexo A 20).
52
Visualizando a Figura 5.8, na pgina Repositrio de dados pode-se visualizar os repositrios adicionados s Pools. apresentada uma lista com o nome de vrios repositrios e com o nome da Pool a que se encontram associados. So disponibilizadas as aces de Eliminar um ou mais repositrios e a de Adicionar um repositrio (Anexo A 21). Na opo Adicionar Repositrio de dados, disponibiliza-se o campo para o fornecimento do nome que queremos que o repositrio tenha, a descrio do repositrio e o IP da mquina (servidor) que vai servir de repositrio iSCSI (Anexo A 22). A partir destes parmetros so apresentados os vrios IQNs presentes no servidor a utilizar como repositrio (Anexo A 23). Depois de escolhido o IQN pretendido so apresentadas as vrias LUNs, que esto presentes na target seleccionada atravs da sua identificao IQN, que representam parties do disco do repositrio (Anexo A 24). Ao seleccionar o repositrio de dados, visualiza-se o nome, a descrio, o espao total, o espao livre e uma lista de discos virtuais criados nesse repositrio. Permite tambm a
53
Compatibilidade
possibilidade de eliminar um ou mais discos virtuais que se encontrem no repositrio (Anexo A 25).
5.3 - Compatibilidade
Neste tipo de sistema existe uma caracterstica que crucial para a sua aplicao realidade, que a compatibilidade do mesmo. Ou seja, o intuito deste sistema vir a ser utilizado, logo, pertinente que se insira com facilidade em diferentes ambientes. Visto que esta plataforma consiste num sistema que disponibiliza uma interface Web para a sua gesto e configurao, necessrio que esta seja compatvel com vrios browsers, de maneira a que o utilizador no tenha que utilizar um determinado browser para aceder interface Web do sistema. Este ponto serve assim, para validar que a plataforma funciona em diferentes browsers, nomeadamente nos seguintes: Firefox, Safari, Windows Internet Explorer e Google Chrome. Primeiro foi utilizado o Firefox para visualizar a plataforma (figura 5.9).
54
Compatibilidade
De seguida foi utilizado o Windows Internet Explorer para verificar o bom funcionamento da plataforma no mesmo (figura 5.10).
Aps o Windows Internet Explorer foi utilizado o Google Chrome (figura 5.11) .
55
Resultados Obtidos
Embora a plataforma no tenha sido testada em todos os browsers Web existentes, possvel concluir que no apresenta problemas de compatibilidade, pois como se pode visualizar nos testes efectuados a plataforma no apresenta qualquer tipo de incompatibilidade e isto deve-se utilizao de um design totalmente feito com CSS, disponibilizado pela empresa.
Concluso
obrigatoriamente, as que devero reiniciar apenas se houver recursos e as que no devero reiniciar, em caso de falha do servidor que as suporta. A nica alterao que no foi efectuada, foi ao CD-ROM de instalao, pois a instalao j era bastante simples.
5.5 - Concluso
O Captulo Resultados representa nesta tese, o momento onde foi apresentada a soluo obtida durante a execuo deste projecto. Foram abordados os cenrios que foram considerados para efectuar os testes das funcionalidades da plataforma bem como as configuraes efectuadas aos servidores para obter os servios pretendidos. De seguida procedeu-se anlise da plataforma complementada com a apresentao das funcionalidades conseguidas. A compatibilidade da plataforma foi abordada posteriormente apresentao dos cenrios utilizados, para demonstrar que a plataforma no apresenta problemas de compatibilidade. Este Captulo Resultados - termina com um ponto dedicado aos resultados obtidos, ou seja, foi verificado se a plataforma corresponde ou no aos requisitos prdefinidos, que por sinal, correspondeu na perfeio.
57
Captulo 6 Concluses
6.1 - Concluso
O aparecimento da internet veio ajudar ao processo contnuo que se vem a desenvolver ao longo do tempo da desmaterializao da informao e dos processos organizacionais para o formato digital. A consequente adeso ao formato digital e a softwares que faam a gesto desses mesmos processos vem provocar uma verdadeira reestruturao no que toca s redes empresariais. Sem dvida que as aplicaes Web-based e os servidores dedicados a vrias reas vieram complementar a necessidade das organizaes de agregarem os seus recursos e de os ter sempre disponveis. Contudo, esta desmaterializao de processos, faz com que aumente o nmero de mquinas e servidores dentro das empresas. O que por um lado foi poupar e dinamizar processos, por outro passa a ser gastar em manuteno e aquisio de hardware para suportar os seus recursos. Emerge novamente uma necessidade de desmaterializao, desta vez no ligada aos processos, mas sim aos recursos que o fazem, ou seja, chega a hora de o espao, condies e mquinas necessrias para tornar possvel a disponibilidade destes servios serem igualmente desmaterializados. neste meio que surge o Cloud Computing. O Cloud Computing um conceito que traz s empresas a possibilidade de diminuir o nmero de servidores fsicos. Desta forma, foi pensada e estruturada a possibilidade de desenvolver uma plataforma que assenta no conceito de Cloud, utilizando as ferramentas de virtualizao adequando a uma soluo j existente no mercado de servidores a IPBrick. A IPBrick Cloud Environment um projecto que nasce no mbito desta dissertao e que tem como objectivo a disponibilizao de uma soluo s empresas de gesto de Pools, Hosts, mquinas virtuais e repositrios de dados. Os requisitos que estiveram na base deste projecto foram a facilidade de instalao, configurao, acesso e ainda a alta disponibilidade do sistema. Para isso, foi desenvolvida uma plataforma que dispe de uma interface Web userfriendly para a administrao do sistema, seja para a configurao como para a gesto da rede. Esta plataforma teve como ferramenta de base o XenServer, que como foi referido no captulo 3 Reviso de Conceitos e Tecnologias, foi aquele que reuniu todos os requisitos necessrios para o objectivo pretendido com o desenvolvimento desta soluo. O resultado 58
Trabalho Futuro
obtido deste projecto foi a criao de uma plataforma que como foi mencionado no captulo 5 Resultados, foi testada em dois cenrios demonstrando todas as funcionalidades da mesma, passando pela adio de Hosts, configurao de Pools, criao e gesto de mquinas virtuais e ainda a possibilidade de ter Alta Disponibilidade definindo que mquinas devem ser migradas e reiniciadas em caso de falha. Em suma, certo dizer que os requisitos definidos no captulo 4 Desenvolvimento da plataforma nos pontos Requisitos do sistema e Casos de Uso foram alcanados.
59
Anexo A
Neste anexo so apresentados os prints da plataforma desenvolvida para melhorar a compreenso do ponto 5.2 Anlise dos Resultados.
Anexo A 1 Login
60
61
Anexo A 4 Configuraes
61
62
62
63
Anexo A 9 Hosts
63
64
64
65
65
66
66
67
67
68
68
69
69
70
Referncias
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] CARISSIMI, Alexandre. Virtualizao: da teoria a solues. Minicursos do Simpsio Brasileiro de Redes de Computadores SBRC.2008. POLLON, Vanderlei. Virtualizao de Servidores em Ambientes Heterogneos e Distribudos estudo de caso Universidade Federal do Rio Grande do Sul. Outubro de 2008. http://hbueno.wordpress.com/2009/04/29/virtualizacao-um-pouco-de-historia/ Consultada em 26 de Janeiro de 2010. KLEIN, Jandir. Anlise de Desempenho de Rede de Servidores Virtuais Centro Universitrio Feevale. Junho de 2008. VIRTUALIZATION TECHNOLOGY UNDER THE HOOD. National Instruments.2009. http://blogs.oracle.com/galdino/2009/06/paravirtualizacao_e_outros_tip.html Consultada em 27 Janeiro de 2010. http://www.gta.ufrj.br/grad/08_1/virtual/Virtualizaototalepara-virtualizao.html Consultada em 27 Janeiro de 2010. http://blogs.technet.com/lpalma/archive/2008/10/01/paravirtualiza-o-emula-obare-metal.aspx Consultada em 27 de Janeiro de 2010. SANTOS, R. C. M.; CHARO, A. S. Anlise Comparativa de Desempenho do Hipervisor Xen: Paravirtualizao versus Virtualizaco Total. Universidade Federal de Santa Maria. Brasil. BADGER, Lee. Cloud Computing: Some Implications for Key Management - National Institute of Standards and Technology. 8 Junho de 2009. ABREU, Paulo; CASTRO, Vitor. Servidor de mail elstico em Cloud Computing Universidade do Minho. 31 de Janeiro de 2009. HAYES,Brian .News Tecnology /Cloud Computing - Communications of the ACM.Vol.53 No. 7. Junho de 2008. http://www.wikipedia.org/ Consultada em 25 Novembro 2009. http://www.infowester.com/cloudcomputing.php Consultada em 23 Novembro 2009. KIM, Won. Cloud Computing: Today and Tomorrow Journal Of Object Technology Vol.8 No.1. Janeiro-Fevereiro de 2009. BUYYA, Rajkumar; YEO Chee Shin; VENUGOPAL, Srikumar .Market-Oriented Cloud Computing:Vision, Hype, and Reality for Delivering IT Services as Computing UtilitiesThe University of Melbourne. Australia.2009. Informao disponibilizada pela iPortalMais. http://br-linux.org/linux/mais-sobre-o-kvm Consultada em 31 de Janeiro de 2010. http://www.linux-kvm.org/page/Main_Page Consultada em 5 de Janeiro de 2010. http://www.vmware.com/ Consultada em 20 de Janeiro de 2010. http://xen.org/ Consultada em 19 de Janeiro de 2010. http://www.citrix.com/lang/English/home.asp Consultada em 19 de Janeiro de 2010. http://www.microsoft.com/brasil/servidores/hyper-v-server/default.mspx Consultada em 10 de Junho de 2010. Technical and commercial comparison of Citrix XenServer and VMware. Disponvel na WWW. Em www.citrix.com. Consultada em31 de Janeiro de 2010.
70
71
[25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43]
VMware Inc. (2009) VMware vSphere 4 Features and Benefits Compared to Microsoft Hyper-V and Citrix XenServer: VMware vSphere: The best platform for building cloud infrastructures.Palo Alto. MATTOS, Diogo Menezes Ferrazani.Virtualizao: VMWare e Xen.GTA/POLI/UFRJ.2008 http://php.net/manual/pt_BR/ Consultada em 3 de Fevereiro de 2010. http://www.truquesedicas.com/tutoriais/javascript/00001a.htm Consultada em 3 de Fevereiro de 2010. http://pt-br.html.net/tutorials/HTML/lesson2.asp Consultada em 3 de Fevereiro de 2010. http://phpxmlrpc.sourceforge.net/ Consultada em 10 de Junho de 2010. SILVEIRA, Leonardo Salgado; PERES, Andr. Alta Disponibilidade em ambientes Virtualizados.ULBRA Guaba.2008. http://ipinfo.info/html/vnc_remote_control.php Consultada em 14 de Junho de 2010. http://www.realvnc.com/ Consultada em 14 de Junho de 2010. http://www.postgresql.org/ Consultada em 14 de Junho de 2010. http://www.php.net/manual/en/intro.pgsql.php Consultada em 14 de Junho de 2010. http://www.xvpsource.org/ Consultada em 9 de Junho de 2010. http://community.citrix.com/display/xs/XenCenter Consultada em 9 de Junho de 2010. http://www.xenserver5.com/xencenter.php Consultada em 9 de Junho de 2010. Citrix Systems, Inc. (2009). XenServer Software Development Kit Guide: 5.5.0. (1 Edio). Flrida. Citrix Systems, Inc. (2009). XenServer Virtual Machine Installation Guide: 5.5.0. (1 Edio). Flrida. Citrix Systems, Inc. (2009). XenServer Installation Guide: 5.5.0 Update 1. (1 Edio). Flrida. http://forum.zwame.pt/archive/index.php/t-421012.html Consultada em 25 de Fevereiro de 2010 e em 21 de Junho de 2010. CHE, Jianhua [et al]. Performance Measuring and Comparing of Virtual Machine Monitors - IEEE/IFIP International Conference on Embedded and Ubiquitous Computing.2008.
71