THAIS CABRAL DE MELLO AMBIENTE PARA CRIAÇÃO DE CLUSTERS VIRTUAIS EM GRIDS COMPUTACIONAIS



Documentos relacionados
SISTEMAS OPERACIONAIS. Maquinas Virtuais e Emuladores

SISTEMAS DISTRIBUÍDOS

Sistemas Operacionais 1/66

Sistemas Operacionais. Roteiro. Sistemas de Computadores. Os sistemas de computadores são projetados com basicamente 3 componentes: Marcos Laureano

4 Estrutura do Sistema Operacional Kernel

A SALA DE AULA é meu paraíso. Nela me realizo, nela exercito minha cidadania e nela me sinto útil.

UNIVERSIDADE FEDERAL DE SANTA CATARINA UFSC DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA INE BACHARELADO EM CIÊNCIAS DA COMPUTAÇÃO.

Virtualização de Sistemas Operacionais

ANDRE KUSUMOTO VIRTUALIZAÇÃO

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação

Prof. Ms. José Eduardo Santarem Segundo Demonstrar o impacto que o tema virtualização tem representado no mercado

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V

Aplicações. Sistema Operacional Hardware. Os sistemas de computadores são projetados com basicamente 3 componentes: Máquinas Virtuais e Emuladores

Sistemas Operacionais

Virtualização Gerencia de Redes Redes de Computadores II

A computação na nuvem é um novo modelo de computação que permite ao usuário final acessar uma grande quantidade de aplicações e serviços em qualquer

Prof. José Maurício S. Pinheiro UniFOA

Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores

Virtualização. O conceito de VIRTUALIZAÇÃO

ATIVIDADE 1 MÁQUINAS VIRTUAIS. 1.1 Arquiteturas não virtualizadas

Virtualização: VMWare e Xen

CONCEITOS E APLICAÇÕES DA COMPUTAÇÃO EM NUVEM

Soluções em. Cloud Computing. Midia Indoor. para

EAGLE TECNOLOGIA E DESIGN CRIAÇÃO DE SERVIDOR CLONE APCEF/RS

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V

A Academia Brasileira de Letras diz que este verbete não existe.

Virtualização e Criação de uma rede Virtual utilizando Virtual Box Professor: João Paulo de Brito Gonçalves

1

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

FileMaker Pro 13. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 13

FileMaker Pro 14. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 14

Relatório de Progresso

Professor Esp.: Douglas Diego de Paiva

O que é Grid Computing

Agenda. Histórico Máquinas virtuais X Emuladores Vantagens & Desvantagens Vmware Quemu Xen UML Comparação entre VM's Conclusão

Gerenciamento e Interoperabilidade de Redes

Gabriel Oliveira do Nascimento Rogério Libarino Aguilar. UFF - Universidade Federal Fluminense

Classificação::Modelo de implantação

Sistemas Operacionais

Fernando Seabra Chirigati. Universidade Federal do Rio de Janeiro EEL879 - Redes de Computadores II Professores Luís Henrique Costa e Otto Duarte

João Víctor Rocon Maia Engenharia de Computação - UFES

Segurança da Informação

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Virtualização. Presente e futuro

Renan Borges Pereira¹, Paulo Henrique Gomes Barbosa². Faculdade de Tecnologia de Ourinhos FATEC.

COORDENAÇÃO DE TECNOLOGIA (COTEC) ABRIL/2011

Sistemas Operacionais. Conceitos de um Sistema Operacional

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

Sistemas Distribuídos

Um Modelo de Virtualização em Grades Computacionais para Inserção de Recursos Ociosos

FTIN Formação Técnica em Informática Módulo Sistema Proprietário Windows AULA 01. Prof. André Lucio

ETEC RAPOSO TAVARES GESTÃO DE SISTEMAS OPERACIONAIS I. Máquina Virtual. Instalação de S.O. em dual boot. 1º Semestre 2010 PROF.

Núvem Pública, Privada ou Híbrida, qual adotar?

Prof. Esp. Lucas Cruz

Marcos Vinicios Marques Professor Cidão. Professor Marcelo Neves

A consolidação de servidores traz uma séria de vantagens, como por exemplo:

Administração de Sistemas de Informação Gerenciais

INTERNET HOST CONNECTOR

Unidade III FUNDAMENTOS DE SISTEMAS. Prof. Victor Halla

Introdução a Virtualização. Sergio Roberto Charpinel Junior Profa. Roberta Lima Gomes

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Sistemas ERP. Profa. Reane Franco Goulart

Processos Técnicos - Aulas 4 e 5

Tipos de Sistemas Distribuídos (Cluster e Grid)

Cloud Computing. Edy Hayashida

VIRTUALIZAÇÃO CONVENCIONAL

Escolha seu serviço Cloud O melhor do Cloud

Infraestrutura: devo usar a nuvem? Prof. Artur Clayton Jovanelli

COORDENAÇÃO DE TECNOLOGIA (COTEC) ABRIL/2011

MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS

SISTEMAS DE ARQUIVOS Sistemas operacionais

MANUAL DE INSTALAÇÃO 1) ORACLE VIRTUALBOX ; 2) MICROSOFT WINDOWS ; 3) SUMÁRIOS GENEPLUS.

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

Departamento de Tecnologia da Informação

EDITORES DE TEXTO Capítulo 1: Avaliação técnica e econômica dos principais editores de texto do mercado.

Governança de TI. ITIL v.2&3. parte 1

SISTEMAS OPERACIONAIS

COMPUTAÇÃO EM NUVEM: UM FUTURO PRESENTE


Sistemas Operacionais

Conceitos Básicos de Rede. Um manual para empresas com até 75 computadores

Virtualização. P r e s e n t e e f u t u r o Andréa Garcia Trindade 2º. sem/2010. Virtualização Presente e Futuro

Profs. Deja e Andrei

Analista de Sistemas Ambiente GRID para física experimental de altas energias

Sistema Operacional Correção - Exercício de Revisão

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

Introdução. Sistemas Operacionais. Introdução. Roteiro (1 / 2) Por que Máquinas Virtuais Existem? Roteiro (2 / 2)

Alexandre Malveira, Wolflan Camilo

Introdução ao Modelos de Duas Camadas Cliente Servidor

Soluções de Gerenciamento de Clientes e de Impressão Universal

Windows 2008 Server. Windows 2008 Server IFSP Boituva Prof. Sérgio Augusto Godoy.

MINICURSO WINDOWS SERVER 2008 UTILIZANDO O VMWARE PLAYER

Online Help StruxureWare Data Center Expert

Transcrição:

MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO DEPARTAMENTO DE CIÊNCIA E TECNOLOGIA INSTITUTO MILITAR DE ENGENHARIA CURSO DE MESTRADO EM SISTEMAS E COMPUTAÇÃO THAIS CABRAL DE MELLO AMBIENTE PARA CRIAÇÃO DE CLUSTERS VIRTUAIS EM GRIDS COMPUTACIONAIS Rio de Janeiro 2010

INSTITUTO MILITAR DE ENGENHARIA THAIS CABRAL DE MELLO AMBIENTE PARA CRIAÇÃO DE CLUSTERS VIRTUAIS EM GRIDS COMPUTACIONAIS Dissertação de Mestrado apresentada ao Curso de Mestrado em Sistemas e Computação do Instituto Militar de Engenharia, como requisito parcial para obtenção do título de Mestre em Sistemas e Computação. Orientadores: Prof. Bruno Richard Schulze - D.Sc. Prof a Raquel Coelho Gomes Pinto - D.Sc. Rio de Janeiro 2010

c2010 INSTITUTO MILITAR DE ENGENHARIA Praça General Tibúrcio, 80-Praia Vermelha Rio de Janeiro-RJ CEP 22290-270 Este exemplar é de propriedade do Instituto Militar de Engenharia, que poderá incluílo em base de dados, armazenar em computador, microfilmar ou adotar qualquer forma de arquivamento. É permitida a menção, reprodução parcial ou integral e a transmissão entre bibliotecas deste trabalho, sem modificação de seu texto, em qualquer meio que esteja ou venha a ser fixado, para pesquisa acadêmica, comentários e citações, desde que sem finalidade comercial e que seja feita a referência bibliográfica completa. Os conceitos expressos neste trabalho são de responsabilidade do autor e do orientador. M527 Mello, Thais Cabral Ambiente para Criação de Clusters Virtuais em Grids Computacionais/ Thais Cabral de Mello. Rio de Janeiro: Instituto Militar de Engenharia, 2010. 97 p.: il., tab. Dissertação (mestrado) Instituto Militar de Engenharia Rio de Janeiro, 2010. 1. Transmissão da Informação - Tecnologias. 2. Sistemas de Computação. 3. Tratamento da Informação I. Título. II. Instituto Militar de Engenharia. CDD 005 2

INSTITUTO MILITAR DE ENGENHARIA THAIS CABRAL DE MELLO AMBIENTE PARA CRIAÇÃO DE CLUSTERS VIRTUAIS EM GRIDS COMPUTACIONAIS Dissertação de Mestrado apresentada ao Curso de Mestrado em Sistemas e Computação do Instituto Militar de Engenharia, como requisito parcial para obtenção do título de Mestre em Sistemas e Computação. Orientadores: Prof. Bruno Richard Schulze - D.Sc. Prof a Raquel Coelho Gomes Pinto - D.Sc. Aprovada em 05 de agosto de 2010 pela seguinte Banca Examinadora: Prof a Raquel Coelho Gomes Pinto - D.Sc. do IME - Presidente Prof. Bruno Richard Schulze - D.Sc. do LNCC Cap. Anderson Fernandes Pereira dos Santos - D.Sc. do IME Prof. Antonio Roberto Mury - D.Sc. do LNCC Prof. Fábio André Machado Porto - D.Sc. do LNCC Rio de Janeiro 2010 3

Dedico essa dissertação ao meu marido por todo o seu amor, apoio e paciência. 4

AGRADECIMENTOS Primeiramente agradeço a Deus pela minha vida e por guiar todos os passos da minha caminhada. A minha família, em especial ao meu marido, por todo o seu amor, compreensão, apoio e constante incentivo. Agradeço aos Srs. professores do Instituto Militar de Engenharia pelos ensinamentos a mim passados, em especial a professora Raquel Coelho que, juntamente com o professor Bruno R. Schulze, orientaram-me para que este projeto pudesse ser realizado e concluído. Ao Professor Ronaldo Salles também sou imensamente grata, não somente pelos ensinamentos, mas também pelos incentivos recebidos ao longo do curso. Gostaria de agradecer a todos os envolvidos no laboratório de Computação Científica Distribuída - ComCiDis - LNCC, especialmente aos amigos Fabio Licht, Matheus Bandini e Victor Oliveira. Gostaria de reforçar a importância que os amigos Douglas Ericson e Henrique Kloh tiveram nesta caminhada. Agradeço em especial ao professor Antonio R. Mury por sua amizade, seus conselhos, seus ensinamentos e por sua dedicação na elaboração deste trabalho. Aos amigos Laion, Felipe e Guilherme agradeço o empenho e trabalho fundamentais para a realização desta dissertação. Thais Cabral de Mello 5

SUMÁRIO LISTA DE ILUSTRAÇÕES................................................ 8 LISTA DE ABREVIATURAS.............................................. 10 1 INTRODUÇÃO.................................................. 14 1.1 Objetivos.......................................................... 16 1.2 Organização da Dissertação........................................... 17 2 SISTEMAS DE COMPUTAÇÃO DISTRIBUÍDA................ 18 2.1 Características de Sistemas de Computação Distribuída.................. 18 2.2 Clusters Computacionais............................................. 19 2.3 Grades Computacionais.............................................. 20 2.4 Cloud Computing................................................... 22 3 VIRTUALIZAÇÃO.............................................. 25 3.1 Técnicas de Virtualização............................................ 29 3.2 Softwares de Virtualização............................................ 31 3.2.1 VMware........................................................... 32 3.2.1.1Xen............................................................... 32 3.2.1.2KVM............................................................. 32 3.2.1.3OpenVZ........................................................... 32 3.2.1.4Microsoft Hyper-V.................................................. 33 3.2.1.5VirtualBox......................................................... 33 3.3 Virtualização dos Sistemas Distribuídos................................ 35 4 REVISÃO DA LITERATURA................................... 38 4.1 A contribuição da Virtualização para Grades e Clouds................... 38 4.2 O Uso de Recursos Virtualizados em Apoio a Computação de Alto Desempenho 40 4.3 Possibilidade e Uso de Clusters Virtualizados........................... 41 5 DESCRIÇÃO DA SOLUÇÃO PROPOSTA....................... 50 5.1 Ferramentas Utilizadas............................................... 50 5.1.1 PelicanHPC........................................................ 50 6

5.1.2 Grails............................................................. 51 5.1.2.1MySQL............................................................ 52 5.1.3 VirtualBox......................................................... 52 5.2 Criação do Cluster Virtual........................................... 53 5.3 Interface Web....................................................... 56 6 RESULTADOS OBTIDOS....................................... 60 6.1 Objetivos.......................................................... 60 6.2 Descrição dos Experimentos.......................................... 61 6.3 Experimentos Realizados............................................. 61 6.4 Análise dos Resultados............................................... 63 7 CONSIDERAÇÕES FINAIS..................................... 74 7.1 Contribuições....................................................... 77 7.2 Trabalhos Futuros................................................... 77 8 APÊNDICE A................................................... 79 8.1 Requisitos do Sistema................................................ 79 8.2 Interface Web....................................................... 80 9 REFERÊNCIAS BIBLIOGRÁFICAS........................... 93 7

LISTA DE ILUSTRAÇÕES FIG.2.1 Hierarquia de um cluster......................................... 20 FIG.3.1 Exemplo de Virtualização de Plataformas.......................... 26 FIG.3.2 Exemplo de Para-Virtualização................................... 30 FIG.3.3 Exemplo de Virtualização Total................................... 31 FIG.3.4 Quadro Comparativo dos Softwares de Virtualização................. 34 FIG.4.1 Comparação dos Trabalhos....................................... 48 FIG.5.1 Camadas do Ambiente de Cluster Virtual.......................... 57 FIG.6.1 Desempenho da capacidade de processamento entre o cluster real e o cluster virtual................................................ 63 FIG.6.2 Desempenho carga de comunicação do cluster real com o cluster virtual........................................................ 64 FIG.6.3 Desempenho de distribuições Linux - capacidade de processamento..... 65 FIG.6.4 Desempenho de diferentes distribuições Linux - processamento........ 66 FIG.6.5 Desempenho de diferentes distribuições Linux - carga de comunicação....................................................... 66 FIG.6.6 Desempenho com concorrência de clusters.......................... 67 FIG.6.7 Desempenho entre 1MV com 4 núcleos e 4MV com 1 núcleo cada...... 68 FIG.6.8 Desempenho entre 4MV na mesma servidora e 4MV em servidoras diferentes..................................................... 69 FIG.6.9 Gerência da VMM.............................................. 70 FIG.6.10 Gerência da VMM.............................................. 70 FIG.6.11 Gerência da VMM.............................................. 71 FIG.8.1 Tela de Login - Registro.......................................... 80 FIG.8.2 Formulário de Cadastro.......................................... 80 FIG.8.3 Opções de Menu................................................ 81 FIG.8.4 Menu Configurações de Clusters - modelos de clusters................ 82 FIG.8.5 Menu Configurações de Clusters - clusters.......................... 82 FIG.8.6 Novo Template de Cluster........................................ 83 FIG.8.7 Criação do Template de Cluster................................... 84 8

FIG.8.8 Menu Gerador de Cluster........................................ 84 FIG.8.9 Lista de Clusters do Usuário...................................... 85 FIG.8.10 Geração do Cluster.............................................. 85 FIG.8.11 Cluster sendo Gerado............................................ 86 FIG.8.12 Usuário inicializando o Cluster.................................... 86 FIG.8.13 Opções de Controle do Cluster - watch, pause e desligar.............. 87 FIG.8.14 Visualização das Máquinas Virtuais Criadas........................ 87 FIG.8.15 Informações de IP e Porta........................................ 88 FIG.8.16 Usuário Acessando Via RDesktop o Nó Mestre...................... 89 FIG.8.17 Listando os Nós do Cluster....................................... 90 FIG.8.18 Comando Ping.................................................. 91 FIG.8.19 Usuário Desligando o Cluster..................................... 91 FIG.8.20 Cluster com Diferentes Quantidades de Nós......................... 92 9

LISTA DE ABREVIATURAS ABREVIATURAS CPU - Central Processing Unit DHCP - Dynamic Host Configuration Protocol DMA - Direct memory access EC2 - Amazon Elastic Compute Cloud GPL - General Public License GRAM - Globus Resource Allocation Manager GT - Globus Toolkit HPC - High Performance Computing HTC - High Troughtput Computing HW - Hardware IP - Internet Protocol JVM - Java Virtual Machine MPI - Message Passing Interface MAC - Media Access Control MH - Máquina Hospedeira MV - Máquina Virtual NAT - Network Address Translation NFS - Network File System OGSA - Open Grid Services Architecture OV - Organização Virtual OVF - Open Virtualization Format PAD - Processamento de Alto Desempenho PUEL - Personal Use and Evoluation License PXE - Preboot Execution Environment QOS - Quality of Service RDP - Remote Desktop Protocol SLA - Service Level Agreement SO - Sistema Operacional SW - Software 10

USB - Universal Serial Bus VCG - Virtual Community Grid VDI - Virtual Disk Image VLAN - Virtual Local Area Network VMM - Virtual Machine Monitor VW - Virtual Workspace VO - Virtual Organization XML - Extensible Markup Language 11

RESUMO O desenvolvimento científico e tecnológico observa uma crescente necessidade e dependência de recursos computacionais de alto desempenho e capacidade de armazenamento. Buscando suprir essa demanda, surgiram novas tecnologias tanto em termos de capacidade de processamento, quanto em capacidade de redes de comunicação, o que possibilitou um avanço no uso mais efetivo e compartilhado dos recursos computacionais, principalmente pelo desenvolvimento de processadores dedicados à virtualização. Por conseguinte, esse avanço da tecnologia de virtualização possibilitou que seus usuários criassem ambientes personalizados, beneficiando, sobremaneira, os usuários da computação de alto desempenho ao permitir a criação de clusters compostos por máquinas virtuais configuradas para atender suas necessidade específicas de software e de hardware. Com base nesse conceito, a presente dissertação disponibiliza uma infra-estrutura que facilita a criação de ambientes de cluster virtual, permitindo, assim, que seus usuários sejam capazes de criar e utilizar um ambiente personalizado, recuperável, escalável e de fácil uso e configuração, seja para fins educativos, de treinamento, seja para testes ou desenvolvimento. Além disso, é realizada uma avaliação de desempenho de clusters virtuais criados através desta infraestrutura com o objetivo de avaliar a viabilidade de seu uso por aplicações HPC (High Performance Computing), ressaltando-se os fatores considerados determinantes para adoção desse tipo de solução. 12

ABSTRACT The scientific and technological development sees a growing need and dependence on high-performance computing resources and storage capacity. Seeking to meet this demand, new technologies both in terms of processing capacity and the capacity of communication networks appeared and enabled a breakthrough in more effective use and sharing of computational resources, especially the development of dedicated processors for virtualization. Consequently, this advancement of virtualization technology has enabled its users to create custom environments, benefiting greatly users of high performance computing by enabling the creation of clusters consisting of virtual machines configured to meet their specific needs in terms of software and hardware. Based on this concept, this paper provides an infrastructure that facilitates the creation of virtual cluster environments, thus allowing the users to be able to create and use an environment which is personalized, recoverable, scalable and easy use and configure, whether it is directed to education, training, testing or development. Furthermore, a performance assessment of virtual clusters created through this infrastructure is made in order to assess the feasibility of its use by HPC (High Performance Computing) applications, emphasizing the factors which are considered crucial to adoption of this kind of solution. 13

1 INTRODUÇÃO O desenvolvimento tecnológico das últimas décadas desencadeou um aumento considerável na capacidade dos computadores. Esse processo permitiu aos desenvolvedores e pesquisadores criarem novas formas de explorar ao máximo toda a capacidade computacional disponível (BANDINI, 2009). Entretanto, torna-se um grande desafio prover um ambiente de hardware e software que ofereça a seus usuários uma abstração sobre os recursos computacionais necessários para execução de simulações. Da mesma forma, prover uma infraestrutura de gerência dos elementos computacionais utilizados e produzidos durante essas simulações também se mostra um processo complexo. Além disso, o avanço científico exige um investimento crescente em equipamentos e infraestrutura para estar em sintonia com as necessidades computacionais. Uma alternativa tecnológica adotada pelos centros de e-science foi o uso de Computação em Grade, que permite a utilização de diversos recursos computacionais heterogêneos e dispersos por várias instituições. Essa característica possibilita que seus usuários compartilhem recursos de forma confiável, consistente e transparente. Contudo, a experiência obtida em diversos projetos concebidos a partir da infraestrutura de Grade mostrou alguns problemas, tais como instalação, configuração e usabilidade complexas, além da necessidade de controles administrativos intensivos, o que dificultou sobremaneira o aumento dessa infraestrutura em termos de uso e espaço. Outra questão desafiadora que as comunidades de Grade enfrentam é o fato de que enquanto uma Grade pode fornecer acesso a vários recursos heterogêneos, os recursos aos quais o acesso é provido muitas vezes não correspondem às necessidades de uma aplicação específica ou serviço, o que pode levar tanto à subutilização dos recursos quanto a frustração dos usuários. Esses problemas podem ser superados ao permitir que usuários de Grade possam criar clusters compostos por máquinas virtuais configuradas para atender as suas necessidades específicas de software e de hardware (FOSTER et al., 2006). A possibilidade da virtualização de plataformas em sistemas distribuídos apresenta-se como um recurso útil, sobretudo por permitir o encapsulamento tanto do sistema operacional (SO), quanto dos middlewares e serviços. Propicia, ainda, o aproveitamento 14

da capacidade de processamento atualmente ociosa em diversos equipamentos, inclusive naqueles que normalmente não poderiam vir a ser utilizados em função de incompatibilidade do sistema operacional da máquina hospedeira. A virtualização abre também a possibilidade do seu uso para treinamento, tanto de administradores, quanto de usuários de Grade. Isso se concretiza pela facilidade de instalação que se obtém, permitindo que o treinamento possa ser realizado através da simulação de um ambiente distribuído mesmo antes deste ser realmente implementado. A tecnologia de virtualização propiciou o aparecimento do conceito de Virtual Workspace, que tem como uma de suas principais características a possibilidade de oferecer ao usuário um ambiente personalizado que atenda às suas necessidades específicas. O Virtual Workspace, então, pode ser compreendido como um ambiente de execução configurável e gerenciável de forma a atender aos requisitos dos clientes, definindo os requisitos de hardware, configuração de software e isolamento de propriedades, dentre outras características (KEAHEY et al., 2005b). Além do conceito de Virtual Workspace, a evolução da tecnologia de virtualização também propiciou o surgimento de um novo paradigma da computação, chamado de Cloud Computing. Tal tecnologia se propõe a ser um sistema de computação distribuída em larga escala, oferecendo um conjunto de recursos virtualizados, dinamicamente escaláveis, gerenciáveis em termos de capacidade de processamento, armazenamento, número de plataformas e serviços (FOSTER et al., 2008). Tem como princípio a oferta de serviços adequados às necessidades do usuário, de maneira a reforçar o conceito de elasticidade sob o ponto de vista da demanda de recursos, cuja alocação e desalocação ocorre em função da necessidade, tornando desnecessária a imobilização de um grande capital para sua aquisição. Utilizando esses dois conceitos, a presente proposta visa desenvolver uma infra-estrutura que facilite a criação de ambientes de cluster virtual. Pretende-se, assim, possibilitar que os usuários sejam capazes de criar e utilizar um ambiente personalizado, recuperável, escalável e de fácil uso e configuração, seja para fins educativos, de treinamento, seja para teste ou desenvolvimento. Para tanto, o usuário apenas precisará configurar as características de máquina, como número de nós, quantidade de memória física, quantidade de núcleo e espaço em disco. Além disso, é realizada uma avaliação de desempenho de clusters virtuais criados através desta infraestrutura com o objetivo de avaliar a viabilidade do seu uso por aplicações HPC (High Performance Computing). 15

1.1 OBJETIVOS O objetivo deste trabalho é criar a infra-estrutura necessária para a implementação de um novo tipo de serviço voltado para área de desenvolvimento e pesquisa, possibilitando, assim, que o usuário crie um ambiente de cluster virtual, seja para fins de treinamento, ensino ou simulação, de forma que ele possa configurar o tipo de plataforma, as características de hardware da máquina e o grupo de clusters virtualizados. Para tanto, propõe-se a criação de uma infra-estrutura em que o usuário seja capaz de criar e configurar de forma simples e eficiente seu ambiente de desenvolvimento, sem que haja a necessidade de interferência por parte do administrador dos recursos disponibilizados para o serviço ou de conhecimentos específicos por parte de quem os utiliza. Abordando-se o conceito de Virtual Workspace, procura-se ampliar a capacidade de uma Grade computacional elevando-se a disponibilidade de seus recursos ao nível de plataforma, ampliando assim a possibilidade de uso por parte de seus usuários. No aspecto do desenvolvimento, pretende-se atender às necessidades específicas de cada usuário, disponibilizando um ambiente customizado no qual ele poderá desenvolver suas aplicações e testar sua viabilidade, analisando e corrigindo possíveis problemas. Além disso, o usuário poderá testar sua aplicação em diversos ambientes sem a preocupação de instalação e configuração de hardware e software, reduzindo, sobremaneira, o tempo gasto nos referidos procedimentos de instalação e configuração (setting up). Em um ambiente de teste, a ferramenta poderá ser aplicada sem a necessidade de se ter equipamentos dedicados ao processamento de alto desempenho e sem a necessidade da aquisição de novos equipamentos para tal finalidade, otimizando a utilização de recursos e reduzindo o custo da aquisição de hardware e software. Além de contribuir para as áreas acima citadas, esse ambiente apresenta também características como: a flexibilidade, ao possibilitar que o usuário configure e seja capaz de utilizar várias estruturas de clusters em um mesmo conjunto de recursos homogêneos ou não; a escalabilidade, na medida em que é possível aumentar ou reduzir o número de nós em função de suas necessidades ou restrições do ambiente; e a portabilidade, ao permitir que o ambiente criado seja armazenado tanto para uso futuro quanto para ser utilizado em outra estrutura disponível, dissociado do espaço físico em que se encontra. Paralelamente, esse trabalho também procurou avaliar o efeito do uso de recursos virtualizados para a criação de clusters, ou seja, qual o impacto do uso da virtualização em 16

um ambiente de computação de alto desempenho - HPC. Com isso, foi realizada ao longo do desenvolvimento deste trabalho uma série de experimentos a fim de determinar quais fatores podem contribuir tanto positivamente como negativamente para o desempenho de um cluster virtual. 1.2 ORGANIZAÇÃO DA DISSERTAÇÃO A organização do presente trabalho encontra-se da seguinte forma: o capítulo 2 apresenta as principais características dos Sistemas Distribuídos, bem como os paradigmas baseados em arquiteturas distribuídas; o capítulo 3 apresenta os conceitos da Máquinas Virtuais, além de citar os principais tipos de tecnologia de virtualização existentes e as características dos diversos softwares de virtualização; o capítulo 4 apresenta trabalhos encontrados na literatura que propõem métodos e arquiteturas para criação de Cluster Virtual; o capítulo 5 descreve a implementação do sistema proposto; o capítulo 6 apresenta, ainda, os experimentos realizados e os resultados obtidos, bem como os comentários sobre os mesmos; por fim, o capítulo 7 apresenta as considerações finais acerca deste trabalho. 17

2 SISTEMAS DE COMPUTAÇÃO DISTRIBUÍDA A partir da metade da década de 1980, com o desenvolvimento do microcomputador, essa nova tecnologia passou a ser uma ferramenta com poder de processamento cada vez maior. Ainda nessa mesma década, tivemos um outro avanço da tecnologia - a popularização das redes - que culminaria no surgimento da Internet. Do resultado da união desses dois avanços surgiram os sistemas distribuídos. 2.1 CARACTERÍSTICAS DE SISTEMAS DE COMPUTAÇÃO DISTRIBUÍDA Um sistema distribuído, segundo a definição de George Coulouris (COULOURIS et al., 2007), é uma: Coleção de computadores autônomos interligados através de uma rede de computadores e equipados com software que permita o compartilhamento dos recursos do sistema: hardware, software e dados Assim, a união desses computadores através da rede permite que o poder de processamento seja combinado de forma a colaborar com a execução de uma aplicação. Essa é sub-dividida e processada em diversos núcleos de processamento em diferentes localidades. Porém, apesar de a aplicação ser processada em diferentes plataformas e SO, todo o processamento ocorre de forma transparente para o usuário, que tem a impressão de que um único sistema gerencia toda a aplicação, ou seja, tem-se a ilusão de que a aplicação está sendo executada em uma única máquina. A capacidade de interconectar processadores permite que um sistema distribuído tenha um melhor desempenho e um crescimento incremental, bastando, para isso, incluir novos equipamentos na rede. Com isso, tem-se um aumento no poder computacional, na otimização e na economia de recursos, visto que é menos custosa a utilização de vários processadores interligados do que a aquisição de um supercomputador. Outra vantagem dos sistemas distribuídos é a tolerância a falhas, já que um problema em um computador não interfere no processamento da aplicação, embora haja uma diminuição no desempenho. Com a evolução da arquitetura de sistemas distribuídos e o aumento significativo da capacidade de rede surgiram os conceitos de Cluster Computacional e Grade Computa- 18

cional e, recentemente, Cloud Computing. 2.2 CLUSTERS COMPUTACIONAIS Ao longo dos últimos anos temos presenciado que as comunidades científicas e acadêmicas, bem como as empresas de tecnologia, vêm desenvolvendo aplicações cada vez mais complexas e que exigem maior poder computacional. Devido à complexidade dessas aplicações e a necessidade de precisão e rapidez dos resultados, torna-se inviável o seu processamento em um único computador. Como saída, é possível o processamento dessas aplicações usando supercomputadores dedicados. Porém, nem sempre as instituições são capazes de adquiri-los devido ao seu alto custo, e com isso, o acesso aos supercomputadores fica limitado a um pequeno grupo que tenha poder aquisitivo suficiente. A alternativa encontrada pela comunidade foi a união de um conjunto de computadores comerciais ligados a uma rede de alta velocidade, no qual a sua ação conjunta permite o aumento no desempenho das aplicações. Já que essas são divididas em partes e executadas de forma distribuída/paralela entre os computadores, atinge-se, desta forma, um desempenho equivalente ao de um supercomputador. Surgiu, assim, o conceito de Cluster, que pode ser descrito da seguinte maneira: Um cluster, ou aglomerado, é uma coleção de computadores que trabalham juntos para criar um sistema mais poderoso, ou um conjunto de máquinas independentes, que cooperam umas com as outras para atingir um determinado objetivo comum. (FILHO, 2004) De um forma mais ampla, um cluster é formado por computadores que são interconectados através da rede para que possam, então, processar eficientemente um grande número de aplicações de uma maneira distribuída. A união dessas características torna o cluster o mais adequado para processamento de aplicações paralelas e de alto desempenho, uma vez que o paralelismo é considerado a melhor forma de se superar o problema relacionado à velocidade de processamento (ZEM e BRITO, 2006), aumentando assim, o desempenho das aplicações. Em relação à estrutura do cluster, ela consiste basicamente em um computador - chamado de nó mestre, - e de vários outros computadores - chamados de nós escravos. O nó mestre é responsável por controlar e distribuir o processamento da aplicação entre os 19

nós escravos, além de reunir e disponibilizar os resultados. Além disso, os nós possuem o mesmo sistema operacional, facilitando a troca de mensagens. Devido a esta característica, os cluster são considerados sistemas homogêneos. Ainda em relação à estrutura do cluster, durante o seu processo de construção, faz-se necessário o uso de ferramentas que automatizem sua instalação, configuração e monitoramento das aplicações, pois tal processo, se feito de forma manual, torna o trabalho um pouco mais árduo. Entretanto, atualmente é possível conseguir boas ferramentas que facilitam o trabalho do administrador, como, por exemplo, a ferramenta para instalação como Kickstart (O KANE, 2000) e o OSCAR (OSCAR), ferramentas de monitoramento como Ganglia (MASSIE et al., 2004), ferramenta de escalonamento como Maui e ainda ferramentas que incluem essas diversas funcionalidades em um único componente como é o caso do ROCKS (ROCKS) e PelicanHPC (CREEL, 2010) A utilização dos clusters permite que alguns objetivos sejam alcançados, tais como (BECHER, 2007): alto desempenho, escalabilidade, tolerância a falhas, baixo custo e independência de fornecedor. Dessa forma, o custo de montagem do ambiente torna-se baixo, pois é usado hardware comum, que pode ser de qualquer fabricante e, utilizando software livre, não existe a necessidade de pagamento de licença de uso de aplicativo. A figura 2.1 representa o modelo hierárquico mestre-escravo para a execução e coordenação do processamento. FIG. 2.1: Hierarquia de um cluster. 2.3 GRADES COMPUTACIONAIS Buscando alcançar um nível maior de conhecimento, surgiu a idéia de interconectar supercomputadores geograficamente dispersos, localizados em diferentes instituições, usando a tecnologia de comunicação com alta largura de banda. Estes sistemas de computação 20

de alto desempenho, distribuídos em redes de escala mundial, tornaram-se uma maneira inovadora de compartilhar recursos computacionais entre várias instituições de forma a maximizar o uso dos recursos e permitir a construção de uma coleção de máquinas ainda mais poderosa. Assim, a comunidade científica de Computação de Alto Desempenho uniu esforços com a comunidade de Sistemas Distribuídos, criando uma linha de pesquisa que passou a ser chamada de Computação em Grade (Grid Computing) (GOLDMAN e KON, 2008). As grades computacionais podem ser definidas, de uma forma mais detalhada, como sendo: um conjunto de hardware e de software que possibilita a integração de recursos disponíveis nos ambientes de diferentes instituições de forma dinâmica. Essa integração pode ser utilizada para prover o compartilhamento de ciclos de processadores, memória RAM, espaço em disco, acesso a banco de dados, softwares, além de garantir a segurança e a qualidade do serviço oferecido, tudo de forma transparente ao usuário. Os sistemas de Grade possuem algumas características que os diferenciam de outras tecnologias de processamento distribuído, no qual podemos destacar (DASILVA, 2004): Heterogeneidade: uma grade deve ser capaz de congregar equipamentos diferentes entre si, de forma a fazê-los trabalhar em conjunto na execução de uma aplicação; Alta Dispersão Geográfica: esta característica se refere ao potencial de utilizar equipamentos que não estão fisicamente próximos. Com isso, uma grade pode ser composta por equipamentos de várias partes do mundo, aumentando a colaboração entre as instituições e a distribuição global dos dados; Compartilhamento: uma Grade deve ser capaz de compartilhar recursos e dados; Múltiplos domínios administrativos: podem ser compostas por equipamentos de várias instituições, com administração totalmente independente; Controle Distribuído: não existe uma entidade única que tenha o controle sobre toda a Grade; Disponibilização de serviços não triviais: As Grades devem ser capazes de coordenar a utilização de recursos de forma estruturada, para assim, atender às necessidades de execução das aplicações; 21