300 likes | 427 Views
PlanetLab. Uma Plataforma Aberta Para Desenvolvimento, Instalação e Acesso em Escala Global. Cláudio Thorell dos Santos, Farlon Alencar Souto {cthorell,fsouto}@inf.ufrgs.br. Universidade Federal do Rio Grande do Sul Departamento de Informática Aplicada
E N D
PlanetLab Uma Plataforma Aberta Para Desenvolvimento, Instalação e Acesso em Escala Global Cláudio Thorell dos Santos, Farlon Alencar Souto {cthorell,fsouto}@inf.ufrgs.br Universidade Federal do Rio Grande do Sul Departamento de Informática Aplicada INF01008 - Programação Distribuída e Paralela Prof. Cláudio Geyer - 2005/1
Organização do Trabalho • 1. Introdução • 2. Definição • 3. Histórico • 4. Organização • 5. Arquitetura • 6. Software • 7. Acesso e uso
1. Introdução • O surgimento de uma nova classe de serviços geograficamente distribuídos trouxe a necessidade de ambientes de desenvolvimento, teste e avaliação de aplicações distribuídas • Permitir teste com centenas de nós sem a preocupação com questões de direitos, restrições e compatibilidades de software
2. Definições • O PlanetLab é uma plataforma geograficamente distribuída para dispor, avaliar e desenvolver serviços de rede e sistemas distribuídos em escala planetária. • “Overlay Testbed” para aplicações distribuídas • Ambiente de testes que roda sobre uma estrutura real de rede (camada sobre a Internet) • Conceito de “Distributed virtualization” • Acesso a um ou mais “pedaços” ou isolados dos recursos globais (virtualização distribuída)
2. Definições (cont) • Pacote de software comum • Nodos rodam o mesmo pacote de software • Sistema operacional Linux • Mecanismos de bootstrapping e update distribuído de software • Ferramentas de gerência e auditoria • Objetivo • Proporcionar uma visão distribuída do sistema • Aplicações rodam sobre qualquer conjunto de nodos
2. Definições (cont) • Situação Atual • 580 máquinas, 275 sites, 25 países • Todas conectadas à Internet • Hospedadas por instituições de pesquisa • Objetivo: aumento para 1000 nodos distribuídos por todo o planeta
3. Histórico • 2002: Fundação, estabelecimento de uma arquitetura do sistema, Instalação de 100 nodos em 42 sites, primeiro software do PlanetLab. • 2003: PlanetLab on-line via PoP na Internet 2, HP, Intel e as universidades de Princeton e UC Berkeley aderem ao PlanetLab. Superada a marca de 300 nodos. • 2004: Formalização do consórcio do PlanetLab. Versão 2.0 do PlanetLab software, com suporte para Dynamic Slices, é liberada. Primeira descrição da arquitetura do PlanetLab. Primeiro nó do PlanetLab no Brasil na Rede Nacional de Ensino e Pesquisa (RNP). Superada a marca de 500 nodos.
4. Organização • Planetlab é constituído por um consórcio de instituições acadêmicas e de pesquisa, governos e empresas privadas • Gerenciado por universidades • Washington, Princeton, Cambridge, Berkley • Baseado em Princeton, NJ, USA • Suportado por companhias e governos • Intel, HP, Google, AT&T, France Telecom, NSF, etc.
4. Organização (cont) • Instituições aderem ao Planetlab disponibilizando: • 2 ou mais servidores • Hospedados fora do firewall • Fornecimento de energia, arrefecimento e link para as máquinas • Em troca, pesquisadores podem usar uma pequena parte (slice) do Planetlab
5. Arquitetura • 5.1 Terminologia • 5.2 Metas • 5.3 Requisitos • 5.4 Modelo de Serviço • 5.5 Hardware • 5.6 Arquitetura de Software
5.1 Terminologia • Nodo: Uma máquina servidora capaz de executar um componente do PlanetLab. • Site: A localização geográfica de um nodo do Planet Lab • Cluster: Conjunto de nodos do PlanetLab localizados em um determinado site. • Cliente: Enquanto um programa de usuário executa como um “slice” da infra-estrutura do PlanetLab, o termo “cliente” refere-se a pessoa ou programa que acessa um serviço implementado no PlanetLab. • Serviço: Uma aplicação sendo executada em um conjunto de nós do PlanetLab.
5.1 Terminologia (cont) • Aplicação: Um serviço do PlanetLab que não é parte da infra-estrutura. • Cápsula: Componente de um serviço que executa em um único nodo. • Slice: Conjunto distribuído de recursos alocados a um serviço do PlanetLab. • Sliver (Virtual Machine): Ambiente onde parte de um serviço implementado roda. Cada virtual machine roda em um nodo e pode consumir uma fração dos recursos deste. • Root Server : Gerência centralizada do PlanetLab, cobrindo funções como controle de contas, atualizações, interface de gerencia de contas para usuários,serviço de monitoração e gerencia da base de dados.
5.2 Metas • Atrair Pesquisadores • Incentivar o aproveitamento da plataforma de rede já existente • Infra-estrutura distribuída • Compatibilidade entre plataformas locais de software dos usuários • Portabilidade • Migração para uma plataforma com API muito mais restrita do que o Windows ou UNIX
5.3 Requisitos • Funcionamento inicial já em Agosto de 2002 • Atender a demanda de um grupo seleto de usuários confiáveis com capacidade técnica para fornecer um feedback sobre o sistema • 40 Sites iniciais • Utilização de um ambiente de desenvolvimento seguindo conceitos fortes, como Barkeley sockets e Posix. • Plataforma de hardware executando linux e utilizando um processador com arquitetura compatível com as demais.
5.3 Requisitos (cont) • Conectividade entre os clusters via Internet • Existência de contas de acesso para usuários • Capacidade de manutenção de software remota • Política de escalonamento sobre recursos • Controle de armazenamento de dados e programas do usuário em um nodo
5.4 Modelo de Serviço • Conta de usuários com autenticação • Escalonamento de “Slices” • Escalonamento em cada nodo • Privilégios de kernel restritos ao sistema • Gerência de cota de espaço de usuário para dados e programas • Interface UNIX comum a todos, mas cada nodo fornece o ambiente de execução necessário para o seu serviço. • Interface de controle de serviço
5.4 Modelo de Serviço (cont) • Relatório dos dados de um nodo são visíveis a uma cápsula • Distribuição de arquivos • Utilização de um endereço IPv4 para cada nodo
5.5 Hardware • Inicialmente os nodos teriam a seguinte configuração: • Servidor Dell PowerEdge 1650 1U Rackmount, com 1Gb de RAM e processador 1.7GHz Intel Pentium III Xeon OU • Dell “desktop” workstation, com processador Intel Pentium IV ou similares. • Ambas as configurações com placas ethernet 1Gb/100Mb.
5.6 Arquitetura de Software • Sistema operacional de um nodo: instalação Linux básica. • Serviços básicos de um nodo ativo: sshd (TCP porta 22), ganglia (TCP porta 8649), ntpd como um cliente, e serviço de atualização regular Rootstock. • Endereço IP de cada nodo registrado no Root Server sob o domínio de rede do PlanetLab. • Tráfico de informações de instalação encriptados, serviço para autenticação do nodo no servidor, assinatura digital sobre os pacotes de instalação. • Serviço de monitoração de status de um nodo
5.7 Ambiente de Desenvolvimento • O PlanetLab segue a filosofia open source. • Licenças BSD e Intel Open Source Licence • Todo o código fonte disponível no CVS do SourceForge
6. Software • Boot Manager • Software responsável por fazer a inicialização do nodo no ambiente do PlanetLab. • VNET • API semelhante à API de raw sockets UNIX. Possibilita acesso virtual à rede nos nodos do PlanetLab. • Proper (Privilege Operations Service) • Deamon que roda em cada nodo no modo root provendo acesso privilegiado a determinadas operações (leitura de arquivos em outros slices, criação de raw sockets reais, etc)
6. Software (cont) • Slice API • Permite a criação, remoção e gerenciamendo de slices • Admin API • Interface que permite acesso seguro e autorizado a dados administrativos do PlanetLab • Serviços desenvolvidos por usuários • Rede de conteúdos distribuídos • Tabelas hash distribuídas • DNS distribuído • Wide-area P2P distributed storage
6. Software (cont) • Linguagens de desenvolvimento • Perl 5.8.3 • Phyton 2.3.3 • GNU libc 2.3.3 • Java não disponível na instalação padrão • JRE e JARs necessários devem ser instalados separadamente
7. Acesso e Uso • Termos utilizados: • Principal Investigator (PI) – Pessoa responsável pelo gerenciamento de slices e usuários em cada site. • Technical Contact– Pessoa responsável pela instalação, manutenção e monitoramento dos nodos do site. • User – Qualquer pessoa que desenvolve e roda aplicações no PlanetLab.
7. Acesso e Uso (cont) • Não é permitido o acesso individual ao PlanetLab • Usuário deve fazer parte de uma instituição de filiada ao consórcio • Preencher o formulário de inscrição • https://www.planet-lab.org/db/accounts/register.php • Aguardar a autorização do PI • Criação de chave SSH • Acesso restrito a SSH com chaves RSA • Par de chaves privada/pública • Unix: comando “ssh-keygen -q -f /.ssh/id_planetlab -t rsa” • Windows: software PuTTYgen
7. Acesso e Uso (cont) • Fazer upload da chave pública SSH no site do PlanetLab • Contatar o PI e requisitar a criação de um slice ou a associação a um slice já existente • Nome do slice no formato <site>_<nome local> • Ex: princeton_test1 • Após a associação a um slice, nodos deve ser associados ao slice através do site no ítem Manage Nodes • https://www.planet-lab.org/db/slices/select_slice.php?dest=assign_nodes.php • Propagação das chaves SSH para os nodos de um slice pode demorar até uma hora
7. Acesso e Uso (cont) • Os slices são criados com uma instalação mínima do Linux Fedora Core 2 • Privilégios restritos de root (criação de usuários, instalação de pacotes, criação de raw sockets) • (configuração de hardware e rede desabilitada) • Instalação de pacotes através do Yum (pacotes RPM) • Slice expira após 2 meses • Deve ser renovado caso contrário todos os dados serão perdidos
7. Acesso e Uso (cont) • Acesso na UFRGS • Dois nodos hospedados no POP da RNP (localizado no CPD da UFRGS) • Registro através do site do PlanetLab • Login > New Account • Selecionar o site “RNP – Rio Grande do Sul” • Contatar o PI e pedir a criação ou associação a um slice • PI pode ser identificado no site http://www.planet-lab.org/php/institutions.php ou ligando para o POP da RNP (ramal 5039)
Referências • Site do PlanetLab • http://www.planet-lab.org/ • PlanetLab Phase 0: Technical Specification • http://www.rnp.br/_arquivo/wrnp/2005/planetlab_tutorial.pdf • PlanetLab Tutorual • http://www.planet-lab.org/PDN/PDN-02-002/pdn-02-002.pdf