O conceito de computação em nuvem (em inglês, cloud computing) refere-se à utilização da memória, capacidade de armazenamento e poder computacional dos computadores interligados por meio da Internet, seguindo o princípio da computação em grade. Com a subutilização destes recursos computacionais em equipamentos modernos, surgiu a necessidade de compartilhar recursos de forma isolada, tornando assim uma máquina física em várias máquinas virtuais, cada uma servindo para um determinado propósito e com seus recursos bem definidos, tentando obter o máximo de aproveitamento dos recursos computacionais.
Prover uma infraestrutura de máquinas virtuais para clientes de forma escalável é hoje uma necessidade mundial e um desafio tecnológico. Este relatório tem por objetivo exibir as características e requisitos necessários para instalar e configurar uma infraestrutura de Cloud para prover máquinas virtuais aos usuários do projeto EduCloud.
O projeto EduCloud é uma iniciativa da Universidade Estadual Paulista - UNESP, em parceria com a secretaria de educação do estado de São Paulo, Intel e ACCEPT. Esta iniciativa visa fornecer uma infraestrutura de computação em nuvem para hospedar sistemas de apoio ao ensino para as Universidades e Escolas públicas do Brasil.
A maior vantagem da computação em nuvem é a possibilidade de utilizar softwares sem que estes estejam instalados no computador. Mas há outras vantagens1:
Para implementar uma infraestrutura de nuvem, o Núcleo de Computação Ciêntifica - NCC, da UNESP pesquisou as principais ferramentas livres2 do mercado para que juntas, executem esta tarefa.
Para prover uma infraestrutura de nuvem, precisamos atender as seguintes necessidades:
Alguns softwares existem para suprir estas necessidades. No capítulo 1 falaremos sobre o projeto OpenStack3, responsável por disponibilizar uma infraestrutura de máquinas virtuais e unidades de armazenamento para as máquinas virtuais. No capítulo 2 falaremos sobre o projeto Hadoop4, responsável por [preencher aqui]. No capítulo 5, falaremos sobre os balanceadores de conexões e de máquinas virtuais, fundamental para balancear a carga da nuvem entre os nós "workers", no capítulo 6 falaremos sobre o OCCI5, uma interface de comunicação entre os serviços de cloud.
O OpenStack é uma coleção de projetos "open source" que servem para executar uma infraestrutura de computação em nuvem e armazenamento distribuído. A empresa Rackspace6 e a NASA7 são os principais contribuidores do conjunto de projetos. Hoje o consórsio possui mais de 100 membros, dentre as principais temos: rackspace, AT&T, NASA, DreamHost, Safew Labs, Citrix, Dell, AMD, Intel, Canonical, Yahoo e HP. O projeto mantém uma página8 com uma lista dos principais contribuidores do projeto.
No OpenStack, existem 3 principais componentes:
Nova é um controlador de poder computacional para o OpenStack. Todas as atividades necessárias durante o ciclo de vida de uma instância (uma máquina virtual sendo executada) com o OpenStack são gerenciadas pelo Nova. Isto faz do Nova uma plataforma de gerenciamento que gerencia recursos computacionais, rede, autorização e escabilidade. O Nova não provê nenhuma funcionalidade de virtualização por si só; ele usa a interface libvirt9 para interagir com os hypervisors10 suportados.