350 likes | 497 Views
Sistemas Distribuídos. Capítulo 3 Nomes. Objectivos da Gestão de Nomes. Associação entre um nome e um objecto Identificar os objectos Localizar os objectos Partilhar os objectos Simplificar a interface com os utilizadores Simplificar a gestão do sistema. Nomes e Identificadores.
E N D
Sistemas Distribuídos Capítulo 3 Nomes Nuno Valero Ribeiro Gab. F269 nribeiro@est.ips.pt
Objectivos da Gestão de Nomes Associação entre um nome e um objecto • Identificar os objectos • Localizar os objectos • Partilhar os objectos • Simplificar a interface com os utilizadores • Simplificar a gestão do sistema Nuno Valero Ribeiro Gab. F269 nribeiro@est.ips.pt
Nomes e Identificadores • Nome: representação de um objecto, normalmente na forma de uma cadeia de caracteres • Atribuído pelo utilizador • Um objecto pode ser designado por vários nomes • Cada objecto tem que ter pelo menos um nome • Identificador: nome sistema de um objecto, normalmente em formato binário • Atribuído por uma autoridade • Permite discriminar e aceder ao objecto • Autoridade: gere o objecto, suporta a sua implementação Nuno Valero Ribeiro Gab. F269 nribeiro@est.ips.pt
Exemplos de Identificadores e Autoridades Nuno Valero Ribeiro Gab. F269 nribeiro@est.ips.pt
Conceitos de Base • Espaço de Nomes: conjunto de regras que define os nomes admissíveis • Contexto: conjunto de associações pertencentes a um dado espaço de nomes • Directório: tabela que num contexto descreve as associações entre nomes e objectos Nuno Valero Ribeiro Gab. F269 nribeiro@est.ips.pt
Contexto objectos Contexto objectos Directório Directório Conceitos de Base Nuno Valero Ribeiro Gab. F269 nribeiro@est.ips.pt
Hierarquia das Associações • A associação nomeobjecto é lógica, sendo frequentemente entre nomes pertencentes a diferentes níveis de abstracção: • Ficheiro Unix : a/b/c inode 1056 dispositivo - número do bloco disco; • Nó da rede Internet : sina@inesc.pt endereço IP 146.193.20.12 endereço Ethernet. Nuno Valero Ribeiro Gab. F269 nribeiro@est.ips.pt
Propriedades do Espaço de Nomes • Unicidade referencial • Âmbito de um nome • Homogeneidade dos nomes • Pureza dos nomes Nuno Valero Ribeiro Gab. F269 nribeiro@est.ips.pt
Unicidade Referencial • Unicidade referencial: num determinado contexto, um nome está associado a um só objecto • Caso contrário, haveria ambiguidade referencial • A situação inversa não é verdadeira, pode haver vários nomes para o mesmo objecto • Nome simbólico: referencia outro nome do objecto Nuno Valero Ribeiro Gab. F269 nribeiro@est.ips.pt
Âmbito de um Nome • Global (absoluto): um nome tem o mesmo significado em todos os contextos • Independentes da localização do utilizador • Simples de transferir entre contextos • Local (relativo): O contexto apenas engloba parte do sistema, os nomes são válidos só nesse contexto • Nomes são atribuídos independentemente em cada contexto • Permite representação eficiente de nomes (ex: apontador) • Nomes têm que ser traduzidos para transferir para outro contexto Nuno Valero Ribeiro Gab. F269 nribeiro@est.ips.pt
Nomes Globais • Difíceis de realizar garantindo a unicidade referencial: • Atribuídos centralmente: fraca escalabilidade, grande latência, ponto único de falha • Difundidos por todos os contextos: impracticável em larga escala • Nomes com grande amplitude referencial: podem ser atribuídos independentemente • Nomes “grandes” gerados pseudo-aleatoriamente • Ex: Identificadores com 128 bits • Nomes hierárquicos: nomes globais compostos pela concatenação de nomes locais • Ex: Números de telefone • Ex: Nomes Internet • Ex: Nomes de ficheiros Nuno Valero Ribeiro Gab. F269 nribeiro@est.ips.pt
Homogeneidade dos Nomes Hierárquicos • Homogéneos: todas as componentes do nome têm o mesmo espaço de nomes • Ex: Sistema de ficheiros Unix • Ex: Nomes Internet • Heterogéneos: o espaço de nomes é diferente para certas componentes do nome • Ex: URL http://hostport/[path][?search] Nuno Valero Ribeiro Gab. F269 nribeiro@est.ips.pt
Pureza de um Nome • Nomes puros: o algoritmo de resolução do nome não utiliza qualquer informação presente no nome para inferir da localização do objecto ou da autoridade que o controla • Nome não contém identificadores físicos • Vantagens: flexibilidade, facilidade de reconfiguração • Desvantagens: impracticável em larga escala • Nomes impuros: a informação contida no nome é utilizada no algoritmo de resolução • Nome contém identificadores físicos e/ou topologia do sistema • Vantagens: realização fácil, extensível, escalável • Desvantagens: reconfiguração difícil Nuno Valero Ribeiro Gab. F269 nribeiro@est.ips.pt
Exemplos de Estruturas de Nomes Nuno Valero Ribeiro Gab. F269 nribeiro@est.ips.pt
Funcionalidade do Serviço de Nomes • Registo das associações • Verifica que a sintaxe do nome está de acordo com o espaço de nomes • Armazena a associação • Distribuição das associações • Actualização dos directórios nos contextos onde a associação deve ser válida • Resolução dos nomes • Tradução do nome noutro nome ou num identificador • Normalmente feita sem conhecimento da estrutura do nome • Processo pode ser repetido recursivamente em vários níveis • Resolução inversa • Dado um identificador, devolve o seu nome Nuno Valero Ribeiro Gab. F269 nribeiro@est.ips.pt
Características dos Nomes em Sistemas Distribuídos • Larga escala • Distribuição geográfica • Necessidade de grande disponibilidade • Heterogeneidade de nomes e protocolos • Consistência fraca • Estabilidade, nomes variam pouco Nuno Valero Ribeiro Gab. F269 nribeiro@est.ips.pt
Dificuldades da Realização da Gestão de Nomes • Escala • Grande número de máquinas • Gestão independente • Acelerado crescimento e evolução • Disponibilidade • Serviço básico em muitas operações sistema (comunicação entre processos, etc) • Desempenho • Importante na latência dos serviços que neecssitam da gestão de nomes Nuno Valero Ribeiro Gab. F269 nribeiro@est.ips.pt
Evolução da Arquitectura do Serviço de Nomes • Ficheiros replicados em todas as máquinas • Pedido em difusão, respondendo o nó que contém a autoridade do objecto • Arquitectura cliente-servidor Nuno Valero Ribeiro Gab. F269 nribeiro@est.ips.pt
Arquitectura da Gestão de Nomes • Agente do serviço de nomes • Efectua o processamento do cliente • Oferece uma interface ao utilizador ou ao programador • Servidores de nomes • Realizam o serviço de nomes • Base de dados de nomes • Mecanismo de armazenamento persistente da informação nos servidores Nuno Valero Ribeiro Gab. F269 nribeiro@est.ips.pt
domínios Cliente Contexto Servidor Aplicação de Nomes Servidor Servidor Agente de Nomes de Nomes RPC Armazenamento da Informação Arquitectura daGestão de Nomes Acesso a outros Nuno Valero Ribeiro Gab. F269 nribeiro@est.ips.pt
Agente do Serviço de Nomes • Conjunto de utilitários e rotinas de adaptação (stubs) que efectuam os pedidos aos servidores • Inicialização: • Porto do servidor é fixo (well-known) • Difusão periódica do endereço dos servidores • Pedido em difusão na inicialização do cliente Nuno Valero Ribeiro Gab. F269 nribeiro@est.ips.pt
Resolução dos Nomes • Recursiva: o servidor resolve a parte do nome que conseguir e reenvia o pedido a outro servidor, até completar a resolução do nome • Iterativa: o servidor resolve a parte do nome que conseguir e devolve o restante ao cliente, que reencaminha o pedido para o próximo servidor • Transitiva: o servidor resolve a parte do nome que conseguir e reenvia o pedido a outro servidor, que responde ao cliente Nuno Valero Ribeiro Gab. F269 nribeiro@est.ips.pt
Arquitectura dos Servidores de Nomes • Nomes replicados em todas as máquinas • Um servidor centralizado • Um servidor centralizado e caches nos clientes • Múltiplos servidores e caches Nuno Valero Ribeiro Gab. F269 nribeiro@est.ips.pt
Técnicas Usadas nosServidores de Nomes • Replicação: informação replicada por diversos servidores • Nomes não variam muito depressa, as inconsistências são raras • O sistema consegue normalmente detectar nomes obsoletos • Uso de nomes obsoletos não é normalmente catastrófico • Domínios: espaços autónomos de administração onde os nomes são traduzidos localmente • Interligação: diferentes domínios, possivelmente com protocolos diferentes, podem ser interligados de forma hierárquica Nuno Valero Ribeiro Gab. F269 nribeiro@est.ips.pt
Servidores de Nomes • Arquitectura relativamente simples: • Servidor verifica se o nome pertence ao seu contexto • Se pertencer, traduz e devolve a resposta • Se não pertencer, • Reencaminha para o servidor certo, ou • Devolve ao cliente, ou • Envia para o nível hierárquico superior • Caches nos servidores • Replicação de servidores • Bases de dados simples Nuno Valero Ribeiro Gab. F269 nribeiro@est.ips.pt
DNS - Domain Name Server Protocolo de gestão de nomes da Internet (RFC 1034, RFC 1035, RFC 974) • Domínio: entidade administrativa de um subconjunto do espaço de nomes • Autoridade: entidade que tem autoridade para gerir a base de dados de nomes, dentro de um domínio • Espaço de nomes: miguelina.inesc.pt. Nuno Valero Ribeiro Gab. F269 nribeiro@est.ips.pt
" " com edu gov pt org gb inesc ist mit usc Exemplo deÁrvore de Nomes do DSN Nuno Valero Ribeiro Gab. F269 nribeiro@est.ips.pt
Nomes DNS • Nomes hierárquicos • Gestão de topo efectuada pelo Internet Network Information Center • Gestão dos subdomínios delegada em autoridades regionais • Portugal: Fundação para o Cálculo Científico Nacional (FCCN) • Gestão dos subdomínios locais delegada nas organizações • Entradas no DNS associam a cada nome informação sobre o objecto (registos RR, Resource Register) Nuno Valero Ribeiro Gab. F269 nribeiro@est.ips.pt
Tipos de Registos no DNS Nuno Valero Ribeiro Gab. F269 nribeiro@est.ips.pt
Organização do DNS • Árvore de nomes dividida em sub-árvores denominadas zonas • A zona define realmente quem tem a responsabilidade de instalar e gerir os servidores de nomes • Um domínio está sempre contido numa zona • Uma zona pode abranger vários domínios • Cada zona é gerida por uma autoridade • A autoridade corresponde à capacidade de alterar os ficheiros no servidor primário Nuno Valero Ribeiro Gab. F269 nribeiro@est.ips.pt
Servidores DNS • Associado a uma zona existe sempre um servidor • Contém a base de dados com os nomes desse conjunto de domínios • Servidor sempre replicado • Primário: mantém a base de dados, onde se efectuam as actualizações • Secundário: contém uma cópia da informação do primário, actualizada periodicamente com um protocolo dedicado • Todos os servidores mantêm caches • Validade indicada pelo parâmetro TTL Nuno Valero Ribeiro Gab. F269 nribeiro@est.ips.pt
BINDBerkeley Internet Name Domain • Implementação do DNS para Unix • Contém 2 componentes: • resolver: conjunto de rotinas cliente • Integradas na biblioteca de C (/lib/libc.a) • Usadas pelas rotinas de resolução de nomes (gethostbyname, gethostbyaddr) • named: servidor de nomes Nuno Valero Ribeiro Gab. F269 nribeiro@est.ips.pt
Servidores de Nomes • Master: autoridade no domínio • Mantém todos os dados do domínio • Primary master: carrega a base de dados de disco • Secondary master: na inicialização recebe a base de dados do primary server. Periodicamente contacta o primary master para a actualizar • Um servidor pode ser master para mais que um domínio, sendo primary para um e secondary para outros • Caching: apenas mantém dados em cache • Contacta os outros servidores para obter a informação • Não é autoridade para nenhum domínio • Remote: servidor remoto • Slave: redirige os pedidos que não consegue servir para uma lista de servidores, e não para os master Nuno Valero Ribeiro Gab. F269 nribeiro@est.ips.pt
Programa Utilizador Pedido Servidor de Servidor resolve Reencaminha- Primário mento Resposta Actualização Servidor Secundário Exemplo de Arquitecturado BIND Nuno Valero Ribeiro Gab. F269 nribeiro@est.ips.pt
Portmap: Serviço de Nomes do SUN RPC • Um servidor por máquina • Os servidores SUN RPC registam no portmapper local os programa que servem • Na associação ao servidor de RPC (binding), os clientes especificam o nome da máquina e o número do programa • Efectuado RPC ao portmap • Este devolve o porto do servidor de RPC • A informação entre os vários portmap pode ser mantida coerente com o NIS Nuno Valero Ribeiro Gab. F269 nribeiro@est.ips.pt