Modelo de Implantação de Nuvem Privada em Infraestruturas de Computação em Nuvem baseadas no sistema Eucalyptus

Modelo de Implantação de Nuvem Privada em Infraestruturas de Computação em Nuvem...

(Parte 1 de 2)

Modelo de Implantação de Nuvem Privada em

Infraestruturas de Computação em Nuvem baseadas no sistema Eucalyptus

João Lucas de S. Silva, Fabiano Amorim Vaz

Instituto Federal de Educação, Ciência e Tecnologia da Bahia (IFBA)

Avenida Marcondes Ferraz, 200

Bairro General Dutra – 48.607.0 Paulo Afonso – BA – Brasil jlucas.souzasilva@gmail.com fav2@cin.ufpe.br

Abstract. This paper deals with the study on cloud computing, which has as main objective to outline a model of deploying private cloud infrastructure for cloud computing. To this end, we use a system architecture with Eucalyptus Ubuntu Server. The main contribution of this research is to demonstrate the technical feasibility of building private clouds to make them highly available and provide a alternative to maintain the performance of the service infrastructure private cloud.

Keywords. Cloud Computing, Eucalyptus, Private Cloud.

Resumo. Este artigo trata-se do estudo sobre Computação em Nuvem, que tem como objetivo principal delinear um modelo de implantação de Nuvens Privadas em infraestrutura de Computação em Nuvem. Para tal propósito, será utilizada a Arquitetura do Sistema Eucalyptus junto ao Ubuntu Server. A principal contribuição desta pesquisa é mostrar a viabilidade técnica da construção de nuvens privadas para torná-las altamente disponíveis e apresentar alternativas que mantenha o desempenho dos serviços da infraestrutura de nuvem privada.

Palavras-chave. Computação em Nuvem, Eucalyptus, Nuvem Privada.

1. Introdução

Com o advento das Ciências Computacionais novos paradigmas vêm norteando as sociedades modernas, a humanidade vem empregando as funcionalidades da Computação em seu cotidiano. Atualmente, é trivial a utilização de computadores dedicados para oferecer determinados serviços (Servidores) em diversas empresas, bem como a utilização de dispositivos móveis como mecanismo de acesso a informações.

Há duas pouco mais de décadas computadores eram agrupados para formar um só computador com maior capacidade de processamento, o propósito era balancear a carga de processamento em diversas máquinas, dividindo-as em unidades de trabalho e multiplicando o poder de processamento. Posteriormente, os computadores foram sendo individualizados, onde as próprias estações de trabalho que eram responsáveis pelo processamento de seus dados. Entretanto, com o avanço das tecnologias Web, observouse um esforço por parte dos pesquisadores e desenvolvedores de sistemas computacionais para torná-los mais acessíveis, implicando em desenvolvimento de aplicações com disponibilidade, escalabilidade, segurança e redução de custos.

Apesar das expectativas, ainda existe muita discussão em torno da expressão

Cloud Computing. De modo geral, o conceito de Computação nas Nuvens segue a linha da Computação em Grade (Grid Computing), isto é, evolução de diferentes tecnologias que provê capacidade de armazenamento, memória, virtualização de recursos e poder de processamento através da Internet [1].

Na Computação em Nuvem existe 3 camadas básicas (ver Seção 2), sendo estas:

Software como um Serviço (SaaS), Plataforma como um Serviço (PaaS) e Infraestrutura como Serviço (IaaS). Logo, o domínio deste projeto tem enfoque na camada IaaS, considerado importante para a integração de uma solução de Cloud Computing, onde serão abordados os seus principais aspectos.

Sendo centrado na Infraestrutura com um Serviço, esta pesquisa tem como principal objetivo delinear um modelo de implantação de Nuvens Privadas em infraestrutura de Computação em Nuvem. Para tal propósito, será utilizada a Arquitetura do Sistema Eucalyptus junto ao Ubuntu Server.

2. Computação em Nuvem

Com bastante destaque na indústria e na academia, o Cloud Computing está na vanguarda da pesquisa em Ciência da Computação, o interesse é principalmente devido ao seu amplo campo de aplicação. Contudo, no estado atual da Computação em Nuvem, observa-se ainda imaturidade em alguns aspectos. Se por um lado, o termo é usado abusivamente sem conhecimento de causa, por outro, existem soluções completas que implementam conceitos e paradigmas de acordo com as premissas da Computação na Nuvem [2].

O aspecto mais predominante da Computação em Nuvem está justamente no fato de poder ocultar a complexidade da infraestrutura e, ainda sim, estar disponível como um serviço. O modelo de Computação em Nuvem foi desenvolvido com o objetivo de fornecer serviços de fácil acesso, com alta disponibilidade, escalabilidade e baixo custo.

2.1.Modelos de Serviços

O projeto arquitetural das soluções de Computação em Nuvem pressupõe a separação dos componentes em três camadas fundamentais, conhecido por modelo SPI (SaaS, PaaS, IaaS), formado por Software as a Service (SaaS), Plataform as a Service (PaaS) e Infrastructure as a Service (IaaS) [3][4][5]. Deste modo, o fornecimento de serviços flutua entre essas camadas, de acordo com o objetivo da aplicação.

Figura 1. Modelos de Serviço [6] 2.1.1. Software como um Serviço

Modelo na qual ocorre um serviço on-demand, ou seja o software é executado na infraestrutura do fornecedor e é passado a vários clientes. É destinada ao usuário final que necessita de softwares atualizados que são totalmente instalados e executados na nuvem. [7] Exemplo é o Google Apps e o Salesforce.com.

2.1.2.Plataforma como um Serviço

É fornecido ao cliente recursos para criação de aplicativos via rede, sem baixar ou instalar software. Ocorre o encapsulamento de uma abstracção de um ambiente de desenvolvimento e empacotamento de serviço. Geralmente é utilizado por desenvolvedores de software que não querem se preocupar com a gestão de recursos disponíveis. [7] De exemplos temos o Windows Azure Platform e AppEngine da Google

2.1.3.Infraestrutura como um Serviço

Significa destinar espaços físicos a um cliente. É um meio de entrega, de armazenamento e recursos básicos de informática e padrões de serviço na rede. Podemos considerar como um conjunto de serviços de abstração de hardware, assim os administradores focam na administração das máquinas virtuais e dos Sistemas Operacionais. [7] Exemplo disso é a própria arquitetura Eucalyptus, além da Amazon Web Services, EC2 e S3.

2.2.Modelos de Implantação

A computação em Nuvem é algo muito flexível devido a um grande leque de opções que se adéqua a necessidade de cada usuário, provocando assim até certa relutância quanto a escolha do tipo de nuvem. O sistema que pode ser dividido em três principais modelos: Nuvem Pública, Nuvem Privada e Nuvem Híbrida.

2.2.1. Nuvem Pública Recursos fornecidos dinamicamente pela Internet, através de serviços Web que é fornecido por outra entidade. Elas existem além do firewall da empresa e são completamente hospedadas e gerenciadas pelo provedor da nuvem. [8]. Na maioria das vezes as empresas só pagam pelos produtos que utilizam, permitindo assim ser o modelo mais econômico.

2.2.2. Nuvem Privada São serviços em nuvem fornecidos por grandes Centros de Processamento dentro de uma empresa ou fornecido por terceiros. Essas nuvens existem dentro do firewall da empresa e são gerenciadas pela empresa. [7] Devido ser destinada a um único cliente é a melhor opção quando buscamos proteção de dados.

2.2.3. Nuvem Híbrida São uma combinação de nuvens públicas e privadas. Essas nuvens seriam geralmente criadas pela empresa e as responsabilidades de gerenciamento seriam divididas entre a empresa e o provedor de nuvem pública. A nuvem híbrida usa serviços que estão no espaço público e no privado [8].

O Eucalyptus é um arcabouço para a implementação de um serviço de Computação em Nuvem do tipo IaaS. Esse arcabouço é desenvolvido em código aberto e possui como objetivo fornecer uma plataforma para desenvolver experimentos e estudos sobre Computação em Nuvem [9]. O sistema tem como proposito permitir ao usuário iniciar, controlar, acessar e instanciar máquinas virtuais completas usando uma API (Application Programming Interface).

O Eucalyptus foi desenvolvido pela Universidade da Califórnia, baseado em arquitetura Linux podendo ser utilizado na construção de nuvens privadas ou híbridas. [10] O Eucalyptus abstrai recursos de hardware convertendo-os em serviços controlados programaticamente. A integração e compatibilidade com a API AWS (Amazon Web Services) possibilitam adoção deste sistema para ambientes de teste ou acadêmicos. Com o Eucalyptus é possível a instalação de máquinas virtuais que englobem diferentes sistemas operacionais e além de ser uma solução de infraestrutura open source pronta para ser instalada em qualquer plataforma computacional [1].

3.1 Infraestrutura do Sistema Eucalyptus

A Infraestrutura do Sistema Eucalyptus é composta por cinco componentes de alto nível, cada um com sua própria interface Web Service [1], conforme Figura 2:

Figura 2. Ambiente Eucalyptus [1]

Controlador de Nó (Node Controller): Componente responsável por controlar máquinas virtuais de uma máquina física. Portanto, ele inicia, para ou colhe informações das máquinas virtuais. Essas ações sobre a plataforma de virtualização são realizadas pela comunicação entre Controlador de Nó e o hypervisor das máquinas físicas. O hypervisor, por sua vez, consiste em um componente da plataforma de virtualização que realiza o gerenciamento do hardware da máquina física para o seu compartilhamento entre as diversas máquinas virtuais [12].

Controlador de Cluster (Cluster Controller): Esse componente realiza a coleta de informações sobre as máquinas virtuais de um Cluster. Ele realiza o escalonamento das requisições de instanciação das máquinas virtuais entre os diversos Controladores de Nó. Esse componente também é responsável por gerenciar redes overlay. Muitas das funções do Controlador de Cluster são semelhantes às do Controlador de Nó, tendo como diferença básica apenas o fato que as funções do segundo singulares, ou específicas de um Nó, e as do primeiro são plurais, ou seja, envolvendo um conjunto de nós. [12] Esse controlador atua como ponte entre o Controlador de Nó e Controlador de Nuvem. [13].

Controlador de Nuvem (Cloud Controller): É a parte aonde os

Administradores obtém controle total da Infraestrutura. Ele é um conjunto de serviços. Dentre eles temos Serviços de Recursos (Atende a requisições do Usuário), Serviços de Dados (Controla os dados dos Usuários, podemos com ele assim obter informações do sistema e configurações da rede overlay) e Serviços de Interface (São oferecidas interfaces para os Administradores obterem acesso ao sistema). [12].

Controlador de Armazenamento (Walrus - Storage Controller): Um serviço de armazenamento baseado em put/get, que possui uma interface com o usuário compatível com a API Amazon Simple Storage Service (Amazon S3). Com essa API os usuários podem colocar e retirar dados do Walrus [12]. Além de armazenar dados do usuário, o Walrus armazena imagens de máquinas virtuais, essas imagens que podem ser enviadas pelos Nós e depois instanciadas, para isso o Walrus utiliza ferramentas do Amazon EC2. [14].

4. Ambiente de Testes

Como método de execução do experimento, foi arquitetada uma infraestrutura para comportar uma aplicação e assim possibilitar a implantação da Nuvem Privada. A Figura 3 ilustra a infraestrutura utilizada no projeto, bem como a função de cada host na arquitetura analisada.

Figura 3. Infraestrutura de Hardware do Ambiente

Esta infraestrutura de hardware possui 7 computadores e 1 switch para a interligação entre os hosts na rede privada e prover acesso a Internet. Vale salientar que todas as máquinas possuem suporte a virtualização (VT-X, no caso da plataforma Intel). A estação cliente que por ser utilizado apenas para acessar a interface web não será descrita por não representar relevância no desempenho do projeto. Os demais computadores possuem a seguinte configuração: Intel Core 2 Quad (Q8400); Memória RAM de 4 Gb; HD de 320 Gb.

Observa-se que na infraestrutura apresentada na Figura 3 são utilizados 3 computadores que compõem o Grupo 1 (Servidor 1, Nó A1 e Nó B1), sendo que o Servidor 1 possui a função de Controlador de Nuvem; Controlador de Cluster; Controlador de Armazenamento; e Walrus. Este Servidor 1 ainda comporta 2 nós (A1 e B1), que ambos possuem a função de Controlador de Nó. Logo, o Grupo 2 (Servidor 2, Nó A2 e Nó B2) possui as respectivas funções, contudo, sua participação na infraestrutura está diretamente relacionado ao processo de replicação do Grupo 1.

Em relação ao software utilizado para funcionamento desta infraestrutura foi utilizado o Ubuntu Enterprise Cloud (UEC) 1.04 de 64bits, que consiste no Ubuntu Server, aprimorado para Computação em Nuvem, que possui incorporado alguns programas como é o caso do Eucalyptus 2.0.2.

4.1 Instalação e Configuração do Ambiente 4.1.1 Configuração do Grupo 1 e Grupo 2

Na instalação do sistema é importante configurar algumas opções básicas, como a interface de rede utilizada, isto é, a faixa de IP reservada para utilização do sistema, além da configuração do gerenciador de disco.

O mais importante nessa etapa é selecionar a opção de instalar o Ubuntu

Enterprise Cloud ao iniciar o boot para instalação do Ubuntu Server e logo em seguida é preciso selecionar os controladores, conforme a Figura 4.

Figura 4. Seleção dos Controladores

Isso irá recorrer para todos os computadores da infraestrutura, a diferença é que na seleção de controladores deve ser instalado conforme a Figura 3. Nesse sistema logo após iniciar cada computador é interessante que seja utilizado o NTP1 para sincronizar a hora que tem que ser exatamente igual entre todos os computadores da infraestrutura, além das configurações de rede com IP fixo para evitar modificações de endereços.

Foi necessário realizar a exportação da chave do Eucalyptus e copiar a chave pública do usuário eucalyptus para o nó. Depois instalamos as credenciais (verificam a identidade de um cliente para um determinado serviço) do Eucalyptus no Servidor 1. Terminando de instalar as credencias iniciou-se a inserção das chaves para acessar as instâncias via SSH. Após este processo foram liberadas algumas portas das máquinas para assim instanciar uma Máquina Virtual. Com o Euca-authorize foram liberadas para as máquinas virtuais as seguintes portas: 2 (SSH); 80 (HTTP); e 445(PING). Assim os servidores estão configurados para utilização do sistema, restando apenas a replicação.

4.1.2 Configuração da Replicação

Para realizar a replicação foi utilizado o HeartBeat (Monitora os servidores em produção) e DRBD (Distributed Replicated Block Device) que realizou o espelhamento de dados entre servidores. Além de um Script OCF Resource Agent (Agente de recursos OCF) que consiste em um script que gerencia recursos dentro de um cluster.

1 NTP – Network Time Protocol é um protocolo de rede para sincronização de relógios entre sistemas computacionais.

Primeiro foi implantado o Script OCF Resource Agent, logo após foi usada duas interfaces de rede para os Clusters. Pois é preciso adicionar uma interface de rede do Servidor 2 para o Servidor 1 para usá-la como um link de replicação entre DRBD.

(Parte 1 de 2)

Comentários