36
Sistemas Distribu´ ıdos: Conceitos e Projeto Arquiteturas Ponto a Ponto Francisco Jos´ e da Silva e Silva Laborat´orio de Sistemas Distribu´ ıdos (LSD) Departamento de Inform´ atica / UFMA http://www.lsd.deinf.ufma.br 6 de junho de 2013 Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 6 de junho de 2013 1 / 36

Sistema Distribuido

Embed Size (px)

DESCRIPTION

Distribuido Sistema

Citation preview

  • Sistemas Distribudos: Conceitos e ProjetoArquiteturas Ponto a Ponto

    Francisco Jose da Silva e Silva

    Laboratorio de Sistemas Distribudos (LSD)Departamento de Informatica / UFMA

    http://www.lsd.deinf.ufma.br

    6 de junho de 2013

    Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 6 de junho de 2013 1 / 36

  • Agenda

    1 Arquiteturas Ponto a Ponto Estruturadas

    2 Arquiteturas Ponto a Ponto Nao Estruturadas

    3 Arquiteturas Hbridas

    Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 6 de junho de 2013 2 / 36

  • Arquiteturas Ponto a Ponto Estruturadas

    Arquiteturas Ponto a Ponto Estruturadas

    Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 6 de junho de 2013 3 / 36

  • Arquiteturas Ponto a Ponto Estruturadas

    Introducao

    Redes ponto-a-ponto (PEER-TO-PEER / P2P) sao sistemasdistribudos constitudos por processos cuja interacao e simetrica:cada processo agira como um cliente e um servidor ao mesmo tempo;

    Redes P2P sao distribudas por natureza, nao possuindo nenhumaestrutura hierarquica ou controle centralizado;

    Seus componentes sao organizados em uma rede de sobreposicao(overlay network), isto e, uma rede na qual os nos sao formados pelosprocessos e os enclaces representam os canais de comunicacaopossveis (usualmente realizados como conexoes TCP);

    Redes P2P permitem o compartilhamento de recursos entre osparticipantes e suas implementacoes tentam prover uma vasta gamade propriedades: selecao de nos proximos, armazenamentoredundante, localizacao eficiente de itens de dados, confianca eautenticacao, tornar anonimo, etc. . .

    Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 6 de junho de 2013 4 / 36

  • Arquiteturas Ponto a Ponto Estruturadas

    Arquitetura Abstrata de uma Rede de Sobreposicao P2P

    Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 6 de junho de 2013 5 / 36

  • Arquiteturas Ponto a Ponto Estruturadas

    Classes de Redes P2P

    1 Estruturada

    A topologia da rede de sobreposicao e controlada;Conteudo e depositado nao em nos aleatorios mas em localizacoesespecficas, o que tornara eventuais consultas mais eficientes;

    2 Nao estruturada

    A construcao da rede de sobreposicao e baseado em algoritmosaleatorios. Cada no mantera uma lista de vizinhos mas esta lista econstruda de modo aleatorio;Da mesma maneira, os dados sao depositados aleatoriamente nos nos.

    Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 6 de junho de 2013 6 / 36

  • Arquiteturas Ponto a Ponto Estruturadas

    Redes P2P Estruturadas

    Usualmente utiliza uma tabela hash distribuda (Distributed HashTable - DHT) para organizar os nos;

    Os itens de dados recebem uma chave aleatoria, como umidentificador de 128 ou 160 bits de um grande espaco deidentificadores;

    Da mesma forma, os nos tambem recebem um numero aleatorio domesmo espaco de identificadores;

    O sistema deve implementar um esquema determinstico que mapeieexclusivamente a chave de um item de dado para o identificador deum no;

    A rede P2P permite o armazenamento e recuperacao escalaveis depares {chave,valor} atraves da rede de sobreposicao.

    Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 6 de junho de 2013 7 / 36

  • Arquiteturas Ponto a Ponto Estruturadas

    Interface de Rede P2P Estruturada Baseada em DHT

    Figura: As operacoes put e get sao utilizadas para armazenar e recuperar o valorcorrespondente a` chave, o que envolve o roteamento de requisicoes ao nocorrespondente a` chave

    Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 6 de junho de 2013 8 / 36

  • Arquiteturas Ponto a Ponto Estruturadas

    Sistema Chord

    No sistema Chord os nos estao logicamente organizados em um anelde tal modo que um item de dado com chave k seja mapeado para ono que tenha o menor identificador id > k ;

    Este no e denominado sucessor da chave k e denotado por succ(k).

    015

    214

    313

    412

    8 79

    610

    511

    1

    Actual node

    {2,3,4}

    {5,6,7}

    {8,9,10,11,12}

    {13,14,15} {0,1}

    Associateddata keys

    Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 6 de junho de 2013 9 / 36

  • Arquiteturas Ponto a Ponto Estruturadas

    Sistema Chord

    Uma funcao hash atribui a nos e chaves de dados um identificador dem bits;

    O identificador de um no e escolhido atraves do valor hash de seuendereco IP, enquanto o identificador de uma chave e produzidoatraves do valor hash de seu dado;

    m e usualmente 128 ou 160, dependendo da funcao hash utilizada;

    A questao central e como resolver com eficiencia uma chave k para oendereco de succ(k);

    Uma abordagem obvia e deixar que cada no p monitore o sucessorsucc(p + 1) bem como seu predecessor pred(p);

    Neste caso, sempre que p recebe uma requisicao para resolver k elerepassa a requisicao para um de seus dois vizinhos, a menos quepred(p) < k 6 p, quando p deve retornar seu proprio endereco;

    Esta abordagem, no entanto, nao e escalavel...

    Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 6 de junho de 2013 10 / 36

  • Arquiteturas Ponto a Ponto Estruturadas

    Sistema Chord: Tabela de Derivacao

    Cada no mantem uma tabela de derivacao (finger table) de nomaximo m entradas, denotando-se a tabela do no p por FTp;

    FTp = succ(p + 2i1)

    Ou seja, a i-esima entrada aponta para o primeiro no que sucede ppor, no mnimo, 2i1;

    Portanto, a distancia do atalho em relacao ao no p aumentaexponencialmente a` medida que o ndice na tabela de derivacaocresce;

    Para consultar uma chave k , o no p repassara a requisicao a q comndice j na tabela de derivacao onde:q = FTp[j] 6 k 6 FTp[j + 1], ignorando-se a aritmetica modular porclareza.

    Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 6 de junho de 2013 11 / 36

  • Arquiteturas Ponto a Ponto Estruturadas

    Exemplo de Resolucao de Chave no Sistema Chorus

    Considere a resolucao de k = 26 a partir do no 1, conforme figuraconstante no proximo slide;

    O no 1 verificara se k e maior que FT1[5], o que significa que arequisicao sera repassada para o no 18 = FT1[5];

    Por sua vez, o no 18 selecionara o no 20, ja queFT18[2] < k 6 FT18[3];

    Por fim a requisicao e repassada do no 20 para o no 21 e deste para ono 28, que e responsavel por k = 26;

    Neste ponto o endereco do no 28 e repassado para o no 1 e a chavefoi resolvida;

    Pode-se mostrar que uma consulta exigira O(log(N)), onde N e onumero de nos no sistema.

    Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 6 de junho de 2013 12 / 36

  • Arquiteturas Ponto a Ponto Estruturadas

    Exemplo de Resolucao de Chave no Sistema Chorus

    0 12

    34

    5

    6

    7

    8

    9

    10

    11

    1213

    14151617

    1819

    20

    21

    22

    23

    24

    25

    26

    27

    2829

    3031

    1 42 43 94 95 18

    1 92 93 94 145 20

    1 112 113 144 185 28

    1 142 143 184 205 28

    1 182 183 184 285 1

    1 202 203 284 285 4

    1 212 283 284 285 4

    1 282 283 284 15 9

    1 12 13 14 45 14

    Resolve k = 26from node 1

    Resolve k = 12from node 28

    i succ(p

    + 2 )

    i-1Finger table

    Actual node

    Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 6 de junho de 2013 13 / 36

  • Arquiteturas Ponto a Ponto Estruturadas

    Gerenciamento de Nos no Chorus

    Para se juntar ao sistema, o no p contata um no arbitrario e requisitauma consulta para succ(p + 1);

    O proprio no p pode se inserir no anel. Para manter o mapeamentoconsistente, certas chaves atribudas previamente ao sucessor de pdevem ser reatribudas a ele (p);

    De forma semelhante, quando um no p deixa o sistema, todas aschaves a ele previamente atribudas devem ser repassadas a seusucessor;

    Perceba que os nos devem monitorar seu predecessor.

    Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 6 de junho de 2013 14 / 36

  • Arquiteturas Ponto a Ponto Estruturadas

    Mantendo Tabelas de Derivacao Atualizadas

    O mais importante para todo no q e que FTq[1] esteja correta, ja queesta entrada se refere ao proximo no do anel;

    Para isso, cada no q executa periodicamente um procedimento quecontata succ(q + 1) e requisita que ele retorne pred(succ(q + 1));

    Se q = pred(succ(q + 1)), q sabe que suas informacoes saoconsistentes com as de seu sucessor;

    Caso o sucessor de q tenha atualizado seu predecessor, um novo no pentrou no sistema, com q < p 6 succ(q + 1), de modo que q ajustaraFTq[1] para p;

    Ele tambem verificara se p registrou q como seu predecessor;

    De forma semelhante, para atualizar a tabela de derivacao, q precisasimplesmente achar o sucessor para k = q +2i1 para cada entrada i ;

    Isso pode ser feito pela emissao de uma requisicao para resolversucc(k);

    Em Chord, tais requisicoes sao emitidas periodicamente.

    Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 6 de junho de 2013 15 / 36

  • Arquiteturas Ponto a Ponto Estruturadas

    Mantendo Tabelas de Derivacao Atualizadas

    Cada no q verifica periodicamente se seu predecessor esta vivo;

    Se ele tiver falhado, q ajustara pred(q) para desconhecido;

    Por outro lado, quando q estiver atualizando seu enlace para oproximo no no anel e descobrir que o predecessor de succ(q + 1) foiajustado para desconhecido, ele simplesmente avisara succ(q + 1)que suspeita que ele e o predecessor;

    Estes procedimentos garantem que um sistema Chord sejanormalmente consistente, talvez com excecao de alguns nos.

    Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 6 de junho de 2013 16 / 36

  • Arquiteturas Ponto a Ponto Estruturadas

    Rede CAN

    A rede de conteudo enderecavel (Content Addressable Netowrk -CAN) utiliza um espaco de coordenadas cartesianas de d dimensoesque e particionado entre os nos do sistema;

    Todo item de dados em CAN sera atribudo a um unico ponto desseespaco, tornando claro qual no responsavel por ele;

    Para armazenar um par {k , v}, a chave k e deterministicamentemapeada para um ponto p no espaco de coordenadas atraves de umafuncao hash;

    Cada no mantem uma tabela de roteamento que guarda o enderecoIP e as coordenadas de cada um de seus vizinhos no espaco;

    Utilizando as coordenadas dos vizinhos, um no roteia mensagens emdirecao ao seu destino encaminhando-as ao vizinho mais proximo dascoordenadas de seu destino.

    Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 6 de junho de 2013 17 / 36

  • Arquiteturas Ponto a Ponto Estruturadas

    Mapeamento de Itens de Dados para Nos em CAN

    Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 6 de junho de 2013 18 / 36

  • Arquiteturas Ponto a Ponto Estruturadas

    Exemplo de Roteamento de Mensagem em CAN

    Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 6 de junho de 2013 19 / 36

  • Arquiteturas Ponto a Ponto Estruturadas

    Gerenciamento de Nos em CAN

    Quando um no p deseja se juntar a um sistema CAN, ele escolhe umponto arbitrario do espaco de coordenadas e pesquisa o no q em cujaregiao o ponto cai;

    O no q, entao, subdivide sua regiao em duas metades, designandouma delas a p;

    p descobre seus vizinhos peguntando a q;

    Os itens de dados pelos quais p e agora responsavel devem sertransferidos do no q.

    Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 6 de junho de 2013 20 / 36

  • Arquiteturas Ponto a Ponto Estruturadas

    Adicao de No em CAN

    Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 6 de junho de 2013 21 / 36

  • Arquiteturas Ponto a Ponto Estruturadas

    Sada de No em CAN

    Considere que o no cuja coordenada e (0,6; 0,7) deixa o sistema;

    Sua regiao sera designada a um dos seus vizinhos, por exemplo o no(0,9; 0,9);

    Como o no (0,9; 0,9) nao pode simplesmente fundi-la e obter umretangulo, ele cuidara da regiao e informara isso aos vizinhos;

    Um processo de fundo e iniciado periodicamente para promover umareparticao simetrica do espaco inteiro.

    Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 6 de junho de 2013 22 / 36

  • Arquiteturas Ponto a Ponto Estruturadas

    Melhorias em CAN

    Pode-se manter multiplos espacos de coordenadas independentes nosistema, atribuindo-se a cada no uma zona diferente em cada espaco,denominado uma realidade;

    O conteudo da tabela hash pode ser replicado em cada realidadeaumentando-se a disponibilidade dos dados;

    Uma outra alternativa seria utilizar k funcoes hash diferentes paramapear uma chave a k pontos diferentes do espaco de coordenadas.

    Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 6 de junho de 2013 23 / 36

  • Arquiteturas Ponto a Ponto Estruturadas

    Consideracoes Sobre Redes P2P Estruturadas

    Sistemas DHT possem uma solida base teorica que garante que todachave pode ser encontrada;

    No entanto, para cada salto na rede de sobreposicao, nos roteam amensagem ao proximo no que pode estar distante considerando-se arede IP subjacente;

    Sistema DHT tambem assumem que todos os nos participam deforma equitativa no armazenamento e localizacao de informacao. Istopode resultar em gargalos em nos com pouca capacidade.

    Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 6 de junho de 2013 24 / 36

  • Arquiteturas Ponto a Ponto Estruturadas

    Exploracao de Proximidade na Rede

    Pode-se fazer com que um sistema DHT fique ciente da rede subjacentedas seguintes formas:

    Designando-se identificadores de modo tal que dois nos proximostenham identificadores que tambem estejam proximos um do outro;

    O mapeamento pode expor falhas correlacionadas: nos de uma redecorporativa terao identificadores dentro de um mesmo intervalo e, casoa rede fique inalcancavel, teremos uma lacuna na distribuicao uniformede identificadores;

    Na abordagem de roteamento por proximidade, cada no mantem umalista de alternativas para repassar a requisicao.

    Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 6 de junho de 2013 25 / 36

  • Arquiteturas Ponto a Ponto Nao Estruturadas

    Arquiteturas Ponto a Ponto Nao

    Estruturadas

    Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 6 de junho de 2013 26 / 36

  • Arquiteturas Ponto a Ponto Nao Estruturadas

    Introducao

    Redes P2P nao estruturadas utilizam algoritmos aleatorios paraconstruir uma rede de sobreposicao;

    Da mesma forma, itens de dados sao depositados aleatoriamente emnos;

    Consequentemente, quando um no precisa localizar um item de dadoespecfico, ele deve inundar a rede com uma consulta de busca;

    Uma consulta a um item de dado para os quais o sistema naomantenha uma grande quantidade de replicas deve ser enviada parauma grande quantidade de nos, o que e ineficiente.

    Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 6 de junho de 2013 27 / 36

  • Arquiteturas Ponto a Ponto Nao Estruturadas

    Gnutella

    Gnutella (pronuncia-se newtella) e um protocolo descentralizado pararedes P2P largamente utilizado;

    O sistema nao possui diretorio centralizado nem controle precisosobre a topologia da rede ou deposito de arquivos;

    O protocolo de consulta e baseado em uma inundacao de vizinhoscom um certo raio;

    Esta abordagem e bastante resiliente a nos entrando e saindo comfrequencia do sistema;

    No entanto, gera-se problemas de escalabilidade e cargas inesperadasde trafego na rede.

    Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 6 de junho de 2013 28 / 36

  • Arquiteturas Ponto a Ponto Nao Estruturadas

    Entrada de Nos em Gnutella

    Um novo no inicialmente se conecta a um no conhecido pertencente a`lista http://gnutellahosts.com, que normalmente estao sempredisponveis;

    Uma vez conectado a` rede, os nos enviam mensagens para interagirentre si;

    Estas mensagens podem ser enviadas por broadcast (enviada a todosos nos com os quais o emissor possua um conexao TCP aberta) oupor propagacao retroativa (enviada a uma conexao especfica nocaminho inverso de uma mensagem inicial);

    Cada mensagem possui um identificador gerado aleatoriamente, bemcomo campos TTL e nos atravessados.

    Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 6 de junho de 2013 29 / 36

  • Arquiteturas Ponto a Ponto Nao Estruturadas

    Mensagens Gnutella

    De gerenciamento de grupo

    Um no ao entrar na rede inicia o broadcast de uma mensagem PINGpara anunciar sua presenca;A mensagem e enviada aos vizinhos que iniciam uma mensagem PONGde propagacao retroativa informando seu endereco IP, quantidade etamanho dos seus itens de dados.

    De consulta

    Uma mensagem QUERY carrega a string de busca utilizada por cadano receptor para procurar pesquisar no nome de seus arquivosarmazenados;Realiza-se uma propagacao retroativa de uma mensagem QUERYRESPONSE contendo a informacao necessaria para se realizar odownload do arquivo.

    De transferencia de arquivo

    Dowloads de arquivos sao realizados diretamente entredois nos utilizando-se mensagens GET e PUSH.

    Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 6 de junho de 2013 30 / 36

  • Arquiteturas Ponto a Ponto Nao Estruturadas

    Superpares (superpeers)

    A` medida que uma rede nao estruturada cresce, pode-se tornar difcila localizacao de itens de dados ja que nao ha um modo determinsticopara se rotear a mensagem;

    Muitos sistemas mantem nos especiais que armazenam um ndice deitens de dados, denominados superpares;

    Superpares sao organizados em uma rede P2P, o que resulta em umaorganizacao hierarquica.

    Superpeer

    Regular peer

    Superpeernetwork

    Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 6 de junho de 2013 31 / 36

  • Arquiteturas Hbridas

    Arquiteturas Hbridas

    Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 6 de junho de 2013 32 / 36

  • Arquiteturas Hbridas

    Introducao

    Em arquiteturas hbridas, usualmente um no se junta ao sistemaatraves de um esquema cliente-servidor tradicional e tao logo issoocorra ele pode usar um esquema descentralizado para colaboracao;

    Um exemplo classico e o Napster, que em 1999 foi pioneiro na ideiade se utilizar um modelo P2P para o compartilhamento de arquivos;

    Ele possua uma facilidade centralizada de pesquisa a arquivos que erabaseado em listas providas pelos nos;

    O download dos arquivos era realizado diretamente pelos nos;

    No entanto, um decisao judicial de um processo gerado pelaRecording Industry Association of America (RIAA) forcou o Napster adesligar o seu servico de compartilhamento de musica digital.

    Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 6 de junho de 2013 33 / 36

  • Arquiteturas Hbridas

    BitTorrent

    BitTorrent e um sistema P2P para transferencia de arquivos;

    Sua ideia basica e que quando um usuario final estiver procurando umarquivo, ele transfira porcoes do mesmo de outros usuarios ate quepossam ser montadas em conjunto, resultando no arquivo completo;

    Seu protocolo e projetado para desencorajar caroneiros (free-riders):

    Um arquivo so pode ser transferido quando o cliente que o estivertransferindo estiver transferindo o conteudo a mais alguem;Nos que disponibilizem uma alta velocidade para upload poderao,provavelmente, realizar download a` uma velocidade alta;A taxa de download de um no sera reduzida caso a velocidade deupload tiver sido limitada.

    Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 6 de junho de 2013 34 / 36

  • Arquiteturas Hbridas

    Funcionamento BitTorrent

    Para obter um arquivo, um usuario precisa acessar um diretorioglobal, que e apenas um de alguns sites Web conhecidos;

    O diretorio contem referencias a arquivos .torrent;

    Arquivos .torrent contem as informacoes necessarias para transferirum arquivo especfico;

    Em particular, ele referencia um rastreador que mantem umacontabilidade dos nos ativos que tem porcoes do arquivo requisitado;

    Um no ativo e aquele que esta transferindo outro arquivo nomomento em questao;

    Tao logo o no tenha identificado de onde as porcoes do arquivopodem ser transferidas, ele se torana ativo. Neste ponto, ele seraforcado a auxiliar outros.

    Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 6 de junho de 2013 35 / 36

  • Arquiteturas Hbridas

    Arquitetura do BitTorrent

    Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 6 de junho de 2013 36 / 36

    Arquiteturas Ponto a Ponto EstruturadasArquiteturas Ponto a Ponto No EstruturadasArquiteturas Hbridas