Baixar Artigo

Propaganda
Estudo comparativo de ferramentas de simulação para computação em nuvem
Alexandre Barreiro Neto (ICV/Unioeste/PRPPG), Luiz Antonio Rodrigues
(Orientador), e-mail: [email protected]
Universidade Estadual do Oeste do Paraná/Centro de Ciências Exatas e
Tecnológicas/Cascavel, PR
Grande área e área: Ciências Exatas e da Terra, Ciência da Computação
Palavras-chave: Sistemas Distribuídos, Computação em Nuvem, Simulação
Resumo
Mesmo com os avanços presentes na computação, o estabelecimento de uma
estrutura de sistemas distribuídos para realizar testes em larga escala é custoso. A
vantagem de utilizar simuladores é pelo fato de apresentarem resultados
satisfatórios, o que muitas vezes seria inviável realizar no mundo real, pois, através
da repetição dos mesmos, o desperdício de recursos seria evitado. Outra vantagem
é o provisionamento dinâmico de recursos e sua escalabilidade. Neste trabalho
foram comparadas diversas ferramentas de simulação para computação em nuvem.
Introdução
Para (Couloris et all ., 2007), um sistema distribuído é aquele no qual o hardware e o
software estão localizados em computadores conectados por uma rede, como a
Internet, que se comunicam e coordenam suas ações enviando mensagens entre si.
Um dos principais motivos para se construir e usar sistemas distribuídos é
compartilhar recursos. A computação em nuvem permite realizar o compartilhamento
de recursos (memória, disco, processamento, rede, entre outros) através da Internet.
A vantagem da utilização deste modelo, de acordo com (Buyya et all ., 2011), é o
provisionamento dinâmico de recursos e sua escalabilidade. A utilização de um
simulador de computação em nuvem ajuda a modelar novas aplicações distribuídas
através da criação de máquinas virtuais, data centers entre outros módulos que
podem ser adicionados, facilitando sua análise. Este trabalho tem como objetivo
avaliar alguns simuladores e apresentar os mais viáveis para aplicação de
algoritmos distribuídos.
Revisão de Literatura
A Computação em nuvem descrito em (Mell & Grance, 2009), é um modelo
tecnológico que permite, de forma simples o acesso sob demanda a uma rede, a
qual possui vários recursos computacionais configuráveis. Dentre esses, podemos
citar às redes, servidores, storages, aplicações e serviços que podem ser facilmente
configurados e liberados com um esforço de gerenciamento mínimo e automatizado.
A simulação de sistemas complexos como os utilizados na computação em
nuvem é uma alternativa para agilizar o procedimento de testes e permitir a
repetição dos experimentos com baixo custo. Há uma variedade de simuladores de
computação em nuvem, porém, serão discutidos apenas os mais utilizados
atualmente.
O CloudSim (Calheiros et all ., 2010) é uma ferramenta generalizada para
modelagem e simulação de computação em nuvem, infraestrutura e serviços de
aplicativos. Dentre várias, é uma das que mais se destaca para aplicações em
nuvem. Suas principais vantagens em relação aos testes de desempenho incluem a
eficácia de tempo, pois exige menos esforço e tempo para implementação dos
aplicativos baseados em computação em nuvem. Ela também disponibiliza recursos
para modelagem e simulação em ambientes de computação em larga escala, e
possui uma certa facilidade para simulação de um ambiente em nuvem. Há também
outros módulos da ferramenta que integram novas funcionalidades ao CloudSim.
O GreenCloud (Kliazovich et all ., 2010) é um simulador de pacotes para
centro de dados de computação em nuvem. Seu objetivo está relacionado a
consistência em relação ao consumo de energia e também em oferecer uma
modelagem detalhada de energia consumida pelos equipamentos, como servidores,
switches de rede e links de comunicação. Ele é uma extensão do simulador de rede
NS-2 bastante conhecido, possui código aberto e pode ser utilizada para o
desenvolvimento de novas soluções em monitoramento, alocação de recursos e
otimização de protocolos de comunicação e infraestruturas de rede.
O iCanCloud (Arcos, 2013) é um software de simulação para redes de
armazenamento de grande porte, desenvolvido com base no SIMCAN. Além de
disponibilizar métodos para obtenção do consumo de energia de cada componente
de hardware, fornece uma interface amigável que facilita a geração e personalização
de grandes modelos distribuídos. O software também aceita vários métodos para
aplicações, usando simulações de aplicações reais, gráfico de estados e
programação de novas aplicações diretamente na plataforma de simulação.
O MDCSIM é um dos módulos da ferramenta CloudSim. Ele permite ao
usuário medir a energia e também analisar cada camada dentre as três existentes.
Pode também, fazer com que o utilizador da ferramenta modifique uma camada sem
afetar as outras. A linguagem de programação utilizada pode C++ ou Java.
O GroudSim é um simulador proposto por (Osterman et all ., 2014), é
baseado em eventos que necessita apenas de uma thread de simulação para
aplicações científicas em ambientes de grade e em nuvem. O software concentra-se
principalmente na IaaS e fornece um conjunto abrangente de recursos para cenários
de simulações complexas. O usuário pode simular suas experiências a partir do
mesmo ambiente usado para aplicações reais, integrando-o no ambiente Askalon.
A ferramenta SPECI proposto por (Siriam, 2009) é uma ferramenta de
simulação que permite analisar e simular o comportamento e o desempenho de
grandes centro de dados. É composto por dois pacotes: layout do data center
juntamente com sua topologia, e também componentes para execução do
experimento e medições a serem realizadas.
O SimGrid (Casanova et all ., 2014) é uma ferramenta científica bastante
conhecida para simulação de ambientes de programação distribuída, como sistemas
P2P Grids, Clouds ou HPC. Ela possui ambientes para simulação de, aplicações
MPI, aplicações genéricas e distribuídas. Também possui um ambiente que
providencia todas funcionalidades de simulação do SimGrid. As aplicações podem
ser desenvolvidas utilizando às linguagens de programação Java, C, Scala, e Lua.
O Neko, proposto por (Urbán et all ., 2001) é um framework Java que permite
tanto a simulação de algoritmos distribuídos e a execução dos mesmos em um
ambiente real utilizando o mesmo código.
Resultados e Discussão
As ferramentas analisadas possuem diversas características. Para melhor utilização
da mesma, os principais pontos analisados foram: Linguagem utilizada, Estrutura de
Computação em Nuvem, Extensão para Aplicações Distribuídas e Documentação,
como apresentado na tabela abaixo.
Tabela 1 – Comparação entre a disponibilidade de recursos dos simuladores.
Ferramenta
Linguagem
Estrutura de Extensão para Documentação
Computação
Aplicações
em Nuvem
Distribuídas
CloudSim
Java
Sim
Sim
Sim
GreenCloud
C++, Otcl
Sim
Sim
Sim
iCanCloud
C++
Sim
Sim
Sim
MDCSIM
Java, C++
Não
Não
Sim
GroudSim
Java
Sim
Sim
Sim
SPECI
Java
Sim
Não
Sim
SimGrid
Java, C, Scala, Lua
Sim
Sim
Sim
Neko
Java
Não
Sim
Sim
Conclusões
Grande parte dos simuladores utilizam Java, o que os torna portáveis para diferentes
plataformas. Apenas as ferramentas Neko e MDCSIM não possuem suporte ou
extensão para a computação em nuvem, mas na Neko isso poderia ser adicionado
com uma modificação do framework. As ferramentas MDCSIM e SPECI não
possuem extensão para a simulação de aplicações distribuídas. Sobre a
documentação, todas as ferramentas possuem um guia que auxilia o usuário a
instalação e utilização das mesmas, porém alguns podem apresentar mais detalhes.
Agradecimentos
Como membro do PETComp agradeço ao Programa de Educação Tutorial do
Ministério da Educação (PET-MEC/SESu) pelo apoio à pesquisa.
Referências
Arcos.
(2013).
What
is
iCanCloud?.
~icancloud/Home.html. Acesso em: 23 de Jul. 2015.
http://www.arcos.inf.uc3m.es/
Buyya, R; Broberg, J; Goscinski, M. A. (2011). Cloud Computing Principles and
Paradigms. Wiley Publishing.
Calheiros, N. R., Ranjan, R., Beloglazov, A., De Rose F. A. C., Buyya, R. (2010).
CloudSim: a toolkit for modeling and simulation of cloud computing environments and
evaluation of resource provisioning algorithms. Wiley Online Library 41, 23-50.
Casanova, H., Giersch, A., Legrand, A., Quinson, M., Sutero, F. (2014). Versatile,
Scalable, and Accurate Simulation of Distributed Applications and Platforms.
http://hal.inria.fr/hal-01017319/PDF/simgrid3-journal.pdf. Acesso 23 de Julho de
2015.
Couloris, G; Dollimore, J.; Kindberg, T. (2007). Sistemas distribuídos: conceitos e
projeto. 4.ed. Porto Alegre, RS.
Mell, P., Grance, T. (2009). The NIST Definition of Cloud Computing.
http://www.nist.gov/itl/cloud/upload/cloud-def-v15.pdf. Acesso: 25 Jul. 2015.
Osterman, S., Plankensteiner, K., Prodan, R., Fahringer, T. (2010). Groudsim: An
Event-Based Simulation Framework for Computational Grids and Clouds.
CoreGRID/ERCIM Workshop on Grids and Clouds 2, 1-8.
Siriam, I. (2009). Speci, a Simulation Tool Exploring Cloud-Scale Data Centres.
CloudCom LNCS 5931 1, 381-392.
Urbán, P., Défago, X., Schiper, A. 2001. Neko: A Single Environment to Simulate and
Prototype Distributed Algorithms. IEEE INTL CONF. ON INFORMATION
NETWORKING 1, 503-511.
Kliazovich, D., Bouvry, P., Khan, U.S. (2010). GreenCloud: The green cloud
simulator. http://greencloud.gforge.uni.lu/ftp/greencloud.pdf. Acesso em 23 de Julho
de 2015.
Download