Sistemas Distribuídos
Capítulo 3
Nomes
Nuno Valero Ribeiro
Gab. F269 [email protected]
1
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 [email protected]
2
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 [email protected]
3
Exemplos de Identificadores e Autoridades
Identificador
Autoridade
Endereço de memória virtual
Endereço IP
Endereço Ethernet
Endereço do controlador do disco
Bloco de Disco
Gestão da memória virtual no S.O.
Autoridade Internet
Xerox e fabricante da interface
Configurador do computador
Inicialização do sistema de ficheiros
Nuno Valero Ribeiro
Gab. F269 [email protected]
4
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 [email protected]
5
Conceitos de Base
Contexto
objectos
Contexto
objectos
Directório
Directório
Nuno Valero Ribeiro
Gab. F269 [email protected]
6
Hierarquia das Associações
 A associação nomeobjecto é 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 : [email protected]  endereço IP
146.193.20.12  endereço Ethernet.
Nuno Valero Ribeiro
Gab. F269 [email protected]
7
Propriedades do Espaço de Nomes
•
•
•
•
Unicidade referencial
Âmbito de um nome
Homogeneidade dos nomes
Pureza dos nomes
Nuno Valero Ribeiro
Gab. F269 [email protected]
8
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 [email protected]
9
Â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 [email protected]
10
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 [email protected]
11
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 [email protected]
12
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 [email protected]
13
Exemplos de
Estruturas de Nomes
Global
Local
Puro
UUID do DCE/RPC
Endereço Ethernet
Identificador da rede no endereço
IP
Servidor SUN-RPC
Nomes de ficheiros num directório
Impuro
Nomes de ficheiros no AFS
Portos TCP/UDP
URL
Nomes de ficheiros no NFS
i-nodes nos discos Unix
Nuno Valero Ribeiro
Gab. F269 [email protected]
14
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 [email protected]
15
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 [email protected]
16
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 [email protected]
17
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 [email protected]
18
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 [email protected]
19
Arquitectura da
Gestão de Nomes
Acesso a outros
domínios
Cliente
Contexto
Aplicação
Agente
RPC
Servidor
de Nomes
Servidor
de Nomes
Servidor
de Nomes
Armazenamento
da
Informação
Nuno Valero Ribeiro
Gab. F269 [email protected]
20
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 [email protected]
21
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 [email protected]
22
•
•
•
•
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 [email protected]
23
Técnicas Usadas nos
Servidores 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 [email protected]
24
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 [email protected]
25
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 [email protected]
26
Exemplo de
Árvore de Nomes do DSN
""
com
mit
edu
gov
usc
org
gb
inesc
Nuno Valero Ribeiro
Gab. F269 [email protected]
pt
ist
27
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 [email protected]
28
Tipos de Registos no DNS
Tipo de Registo
Conteúdo
A
Endereço IP
CNAME
Nome simbólico para outro nome DNS
HINFO
Arquitectura e sistema operativo do nó
NS
Servidores de uma zona
MX
Máquina ou domínio do servidor
preferencial decorreio electrónico
SOA
Parâmetros que definem a zona.
PTR
Nome DNS para a resolução inversa de um
endereço IP
TXT
Texto arbitrário
WKS
Descrição de um serviço com os respectivos
nomes e protocolos
Nuno Valero Ribeiro
Gab. F269 [email protected]
29
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 [email protected]
30
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 [email protected]
31
BIND
Berkeley 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 [email protected]
32
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 [email protected]
33
Exemplo de Arquitectura
do BIND
Programa
Utilizador
Pedido
resolve
Servidor
de
Reencaminhamento
Resposta
Servidor
Primário
Actualização
Servidor
Secundário
Nuno Valero Ribeiro
Gab. F269 [email protected]
34
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 [email protected]
35
Download

Power Point presentation