Documente Academic
Documente Profesional
Documente Cultură
Fortaleza Cear
Maio 2011
Autor:
Julio Alba Soto
Orientador:
Prof. Dr. Danielo Gonalves Gomes
Fortaleza Cear
Maio 2011
Julio Alba Soto
Fortaleza, 2011
Resumo
S ince 1990, the Internet popularization and the fast grown of production and
distribution of mobile computing devices were key factors for the developed
technologic situation obtained nowadays. While users connectivity was growing, a
powerful services platform was arising totally on-line. By this way, an appropriated
environment was formed due cloud computing emergence. Cloud Computing is an
attractive computation model, it allows that resources being provided according
to the demand, i.e., the users can rent the cloud resources that they need. An
important challenge around the cloud is relative to standardization. This model
has been motivated some academic and non-academic institutions to develop cloud
open source solutions. This work presents the most popular Cloud Computing open
source solutions. The research has focus in the analysis of OpenNebula open source
tool that seek to offer ways for the development of distributed environment with
support to virtualization and based on cloud computing paradigm. After this, the
tool is used for the development of a private cloud and the orchestration of virtual
machines.
Agradeo primeiramente aos meus pais Luis e Encarnita, pelos valores ensinados,
pela pacincia e pelo apoio incondicional durante os longos anos de graduao.
Aos meus irmos Juan e Luis, pela amizade e companheirismo.
minha segunda famlia, Jose, Joni, Vctor e Mateo, por todo o apoio durante
o ano de convvio em Fortaleza.
Ao professor Danielo Gonalves Gomes, meu orientador, pela confiana e pelo
apoio imprescindvel durante a realizao do trabalho.
Ao Thiago Teixeira S, pela pacincia e esforo compartilhado auxiliando na
orientao deste trabalho.
Universidade Federal do Cear, por proporcionar ensinos de altssima
qualidade.
Aos amigos do curso de graduao em Engenharia de Teleinformtica,
especialmente a Raymundo.
Dem-me um ponto de apoio e moverei a terra.
Arquimedes
Sumrio
Lista de Tabelas ix
Lista de Siglas ix
1 Introduo 1
1.1 Motivao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Organizao da monografia . . . . . . . . . . . . . . . . . . . . . . . . 2
2 Computao em Nuvem 3
2.1 Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 Contexto Histrico . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3 Arquitetura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3.1 Sistemas distribudos . . . . . . . . . . . . . . . . . . . . . . . 9
2.3.2 Middleware . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3.3 Grades computacionais . . . . . . . . . . . . . . . . . . . . . . 11
2.3.4 Computao utilitria . . . . . . . . . . . . . . . . . . . . . . 12
2.3.5 Virtualizao . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3.6 Web services . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3.7 Computao verde . . . . . . . . . . . . . . . . . . . . . . . . 15
2.4 Modelos de servio . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.4.1 Software como servio (SaaS) . . . . . . . . . . . . . . . . . . 16
2.4.2 Plataforma como servio (PaaS) . . . . . . . . . . . . . . . . . 17
2.4.3 Infraestrutura como servio (IaaS) . . . . . . . . . . . . . . . . 18
2.5 Modelos de implementao . . . . . . . . . . . . . . . . . . . . . . . . 18
2.5.1 Nuvem pblica . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.5.2 Nuvem privada . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.5.3 Nuvem hbrida . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.6 Esforos de normalizao . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.7 OpenNebula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.7.1 Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
vi
2.7.2 Histria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.7.3 Arquitetura OpenNebula . . . . . . . . . . . . . . . . . . . . . 24
2.7.4 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.8 Outras solues de cdigo aberto . . . . . . . . . . . . . . . . . . . . 27
2.8.1 Eucalyptus . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.8.2 OpenQRM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.8.3 Nimbus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.8.4 TPlataform . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.8.5 Xen Cloud Plataform (XCP) . . . . . . . . . . . . . . . . . . 30
2.8.6 Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4 Resultados 38
4.1 Resultados da criao de uma nuvem privada . . . . . . . . . . . . . 38
4.2 Resultados do lanamento de uma mquina virtual . . . . . . . . . . 40
5 Concluses 43
5.1 Consideraes finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.2 Perspectivas para trabalhos futuros . . . . . . . . . . . . . . . . . . . 44
Referncias Bibliogrficas 47
vii
Lista de Figuras
viii
Lista de Tabelas
ix
Lista de Siglas
x
Lista de Tabelas xi
1
1.1. Motivao 2
1.1 Motivao
1.2 Objetivos
2.1 Introduo
3
2.1. Introduo 4
usualmente mostrada nos diagramas de rede, como uma nuvem, como pode ser visto
na Figura 2.1. Nesses diagramas, o cone da nuvem representa todas as tecnologias
que fazem a Internet funcionar, abstraindo a infraestrutura e a complexidade
que ela engloba. No caso de Computao em Nuvem, refere-se de modo geral a
uma combinao de tecnologias e paradigmas (virtualizao, computao utilitria,
computao em grade, arquitetura orientada a servios, entre outros) arquitetados e
utilizados de uma forma na qual se abstrai os detalhes do usurio, o qual no precisa
ter todo o conhecimento necessrio para manter essa infraestrutura. Utilizar servios
dessa nuvem (armazenamento, banco de dados, processamento, entre outros) fazer
Computao em Nuvem.
Por tudo isso, importante pensar como que foi a evoluo da computao
para se tornar o que hoje conhecemos como Computao em Nuvem. Esta pergunta
ser respondida na prxima seo.
2.2. Contexto Histrico 7
at 2013, esta fatia deve saltar para 30% a 35%, nmero que aproximadamente 60%
maior do que a base atual. Nos Estados Unidos, entre 45% e 55% das companhias
mdias e grandes j utilizam algum servio de Computao em Nuvem. Na Europa
o nmero est entre 35% e 40% (5).
2.3 Arquitetura
2.3.2 Middleware
Dentre os principais tipos de recursos que podem ser compartilhados atravs das
grades computacionais, esto o processamento e armazenamento de dados, largura de
banda e ferramentas de software. H de se ressaltar que as grades se diferenciam da
computao distribuda por focar em questes como alto desempenho, coordenao,
gerenciamento e compartilhamento destes recursos (12).
ser monitorados e seu grau de utilizao deve ser reportado tanto ao provedor quanto
ao cliente de forma transparente. Nos casos onde h a necessidade de tarifao do
modelo, esta caracterstica torna-se vital para a viabilidade comercial do negcio.
Assim como no fornecimento de bens utilitrios como gua, gs, telefonia e energia
eltrica, o campo da Computao Utilitria (em ingls, Utility Computing) busca
desenvolver mtodos para a proviso de recursos computacionais onde o cliente
cobrado com base na quantidade e na qualidade daquilo que utiliza.
2.3.5 Virtualizao
A variedade de servios disponveis em uma nuvem faz com que sua classificao
divirja sobremaneira. Nomenclaturas como Communication as a Service
(Comunicao como Servio) (CaaS), Management as a Service (Gerenciamento
como Servio) (MaaS), Data as a Service (Dados como Servio) (DaaS),
Information Technology as a Service (Tecnologia da Informao como Servio)
2.4. Modelos de servio 16
Alm da categorizao feita na Seo 2.4 com relao aos servios oferecidos,
tambm h uma categorizao com relao abrangncia e acesso nuvem. A
classificao geralmente citada na literatura a de: nuvem pblica, nuvem privada
e nuvem hbrida. A seguir, descrevemos brevemente cada uma delas.
Uma nuvem privada, no entanto, pode dar suporte uma nuvem hbrida,
atravs da complementao da capacidade da infraestrutura local com a capacidade
computacional de uma nuvem pblica (22). A nuvem privada/hbrida tambm pode
permitir acesso remoto atravs de interfaces remotas, como a de Web Services que
a Amazon EC2 utiliza (22).
Uma caracterstica comum presente em todas as nuvens que os donos das nuvens
compreensivelmente evitam revelar as caractersticas por trs de suas solues, visto
que isso parte de suas informaes estratgicas. Apesar disso, so muitos os
esforos feitos por vrias instituies acadmicas e no acadmicas para desenvolver
uma soluo de cdigo aberto. A observao e a classificao dessas solues podem
alavancar mais ainda a rea de pesquisa da Computao em Nuvem fornecendo
um bom ponto de partida para descobrir diferentes abordagens para os problemas
presentes no ambiente de Computao em Nuvem.
provedor como eles no podem migrar suas aplicaes e servios com facilidades
entre provedores (25). esperado que os provedores enxerguem esse problema
e trabalhem juntos para oferecer uma API padronizada baseada na abertura de
padres como Simple Object Access Protocol (Protocolo Simples de Acesso a
Objetos) (SOAP) e Representational State Transfer (Transferncia de Estado
Representacional) (REST).
ii. Cloud Security Alliance (CSA): A Cloud Security Alliance foi criada
para promover a utilizao das melhores prticas para garantir a segurana
no ambiente da Computao em Nuvem, e fornecer educao sobre o uso da
Computao em Nuvem para ajudar a proteger todas as outras formas de
computao.
Por tudo isso e, como falamos anteriormente, so muitos os esforos feitos para
desenvolver uma soluo de cdigo aberto. A atividade de pesquisa a realizada vai
ter como foco a anlise da ferramenta OpenNebula, que busca oferecer meios para
a implementao de ambientes distribudos com suporte virtualizao e baseados
no paradigma da Computao em Nuvem. Aps esta etapa inicial, a ferramenta
vai ser utilizada para a implementao de uma nuvem privada de recursos. Na
prxima Seo 2.7 vamos discutir profundamente sobre o projeto OpenNebula. Mas
existem muitas outras solues de cdigo aberto em desenvolvimento, algumas das
mais importantes sero descritas na Seo 2.8.
2.7 OpenNebula
2.7.1 Introduo
2.7.2 Histria
ii. Os drivers: Para acessar aos sistemas especficos do cluster (por exemplo,
armazenamento ou hypervisors). Fornecem uma abstrao da camada
de virtualizao subjacente. Assim, OpenNebula no est vinculado a
nenhum ambiente especfico, proporcionando uma camada uniforme de gesto,
independiente da tecnologia de virtualizao utilizada.
2.7.4 Objetivos
iv. Dar suporte aos componentes de cdigo aberto que esto sendo criados em
torno do projeto OpenNebula.
2.8.1 Eucalyptus
Com Eucalyptus possvel construir sua prpria nuvem privada por trs do
firewall da sua companhia. Um dos pontos fortes do Eucalyptus que " muito
modular e o API que usa compatvel com Amazon Web Service (Servio Web
2.8. Outras solues de cdigo aberto 28
Amazon) (AWS)"(29). Com essa compatibilidade (com uma das maiores nuvens de
provedores pblicos), Eucalyptus oferece tima exibio, desse modo voc no est
limitado a sua prpria nuvem e pode facilmente trocar.
ii. OpenNebula oferece uma interface de host fsica flexvel para acompanhar, e
gerenciar os recursos fsicos da nuvem. Esse gerenciamento de interface est
faltando nas verses atuais do Eucalyptus.
iv. OpenNebula fornece uma API poderosa para expandir as suas capacidades.
Eucalyptus apenas fornece a interface EC2-SOAP para interagir com ele.
v. OpenNebula pode construir nuvens hbridas. Ento voc pode implantar suas
mquinas virtuais localmente ou em outra nuvem. Isso no pode ser feito com
Eucalyptus.
2.8.2 OpenQRM
2.8.3 Nimbus
2.8.4 TPlataform
2.8.5 XCP
A arquitetura XCP, como pode ser visto na Figura 2.9, baseada no XCP
hosts que so responsveis por hospedar as mquinas virtuais. De acordo (35),
esses hspedes podem ser agregados em uma variedade de recursos XCP e usar um
armazenamento compartilhado, assim as mquinas virtuais podem ser iniciadas e
reiniciadas em qualquer host XCP. O Master XCP Host oferece uma interface de
administrao e encaminha mensagens de comando para os outros hosts XCP.
2.8.6 Resumo
Fazendo um resumo para obter uma idia geral, apresentamos a Figura 2.10
onde mostramos as solues de cdigo aberto e algumas das solues comerciais
mais importantes da computao em nuvem. O grfico compara as solues e seu
modelo de negcio (hardware, middleware e nvel de usurio), de acordo com a
flexibilidade de configurao.
33
3.2. Criao de nuvem privada 34
Este comando realiza vrias aes de configurao, como a criao de uma conta
de administrador, gerao de um par de chaves RSA e a inicializao do daemon do
OpenNebula.
$ onehost list
Uma vez que a nuvem privada est rodando, o n pode iniciar as suas VMs.
Toda a configurao do ambiente deve ser feita no n front-end, que orquestra e
administra o lanamento e ciclo de vida das mquinas virtuais. A Figura 3.2 ilustra
o ambiente construdo.
Primeiro, precisa-se preparar uma rede virtual para a nossa VM. Cria-se um
arquivo de texto vmnet.template para gerar uma rede virtual com apenas um
Internet Protocol (Protocolo de Internet) (IP), contendo o seguinte (muda-se de
acordo com o endereo Local Area Network (Rede de rea Local) (LAN)):
importante verificar a criao correta da rede. Para mostrar uma lista de todas
as redes virtuais disponveis executado o comando abaixo:
$ onevnet list
Alm disso, para mostrar os detalhes da rede virtual criada interessante utilizar
o seguinte comando:
$ onevnet show
Por fim, depois de ter adaptados os requisitos para a imagem da mquina virtual,
lana-se a VM:
$ onevm list
3.4. Comandos 37
3.4 Comandos
Uma vez feita configurao da nuvem privada descrita na Seo 3.2, os resultados
obtidos so os seguintes (sendo desktop01 : 192.168.0.73):
Onde:
HID: ID do Host.
NAME: Nome do Host.
RVM: Nmero de Mquinas Virtuais em execuo.
TCPU: CPU Total (percentual).
FCPU: CPU Livre (percentual).
38
4.1. Resultados da criao de uma nuvem privada 39
Onde:
NID: ID da rede.
NAME: Nome da rede virtual.
TYPE: Tipo de rede virtual (0=ranged, 1=fixed).
BRIDGE: Interface associada rede virtual.
4.2. Resultados do lanamento de uma mquina virtual 41
iv. Executando o comando onevm list podem ser listadas as mquinas virtuais
existentes no ambiente:
Onde:
ID: ID da VM.
NAME: Nome da VM.
STAT: Estado da VM.
CPU: Percentual CPU usada pela VM.
MEM: Memria usada pela VM.
HOSTNAME: Host onde a VM est sendo ou foi executada.
TIME: Tempo desde o lanamento da VM (dias horas:minutos:segundos).
4.2. Resultados do lanamento de uma mquina virtual 42
Na Figura 4.9 ilustra-se, por exemplo, a mquina virtual criada no estado prol,
ou seja, o sistema est transferindo os arquivos da VM pro n. Os estados
possveis da VM so mostrados na Tabela 4.1.
Estado Descrio
pend No modo padro, uma VM inicia-se no estado pendente, esperando
os recursos para correr.
hold VM no executvel.
stop A mquina virtual interrompida. O estado da VM foi salvo e foi
transferido de volta junto com as imagens de disco.
susp Como stop, mas os arquivos so derivados no n remoto para depois
reiniciar a VM.
done A VM est pronta. VMs neste estado no sero mostradas com o
comando onevm list, mas so mantidas no banco de dados para fins
contbeis.
prol O sistema est transferindo os arquivos da VM.
runn A VM est sendo executada.
migr A VM est migrando de um n para outro.
epil Neste estado o sistema "limpa"o n usado para hospedar a VM.
fail VM falhar.
Tabela 4.1: Estados das mquinas virtuais
43
5.2. Perspectivas para trabalhos futuros 44
Com a realizao deste trabalho tive uma primeira experincia com o ambiente
OpenNebula. O trabalho futuro analisar quantitativamente a ferramenta atravs
de medidas de avaliao de desempenho. Testar um ambiente mais real, com
vrios hosts e orquestrando mltiplas mquinas virtuais, sem limitaes de recursos
computacionais.
1 MALIS, A. Routing over large clouds (rolc) charter. Part of the 32 IETF
meeting minutes, 1993.
45
Referncias Bibliogrficas 46
11 WEISHAUPL, T. et al. Business in the grid: The big project. Grid Economics
and Business Models, 2005.
21 SUN. A guide to getting started with cloud computing. Sun white paper, 2010.