Sistemas de Arquivos Distribuídos nnetwork File System - NFS (Sun) nandrew File System - AFS (IBM) Serviço de Arquivos X Servidor de Arquivos nserviço de Arquivos o que o sistema de arquivos oferece para seus clientes primitivas disponíveis, seus parâmetros e suas ações nservidor de Arquivos processo que implementa o serviço de arquivos SAD - 1 SAD - 2 Sistemas de Arquivos Distribuídos Transparência de Localização ncaracterísticas Desejáveis: Transparência de Localização Transparência de Migração nusuário não precisa saber onde se encontra o arquivo nnome do Arquivo não incorpora a sua localização oxum oxalá obaluaê logum-ede SAD - 3 SAD - 4
Transparência de Migração Sistema de Arquivos nliberdade de Migração Sem mudança de nome Sem conhecimento do usuário nserviço de Arquivos operações sobre arquivos (abrir, ler, escrever, etc) nserviço de Diretórios criação e gerenciamento de diretórios (adicionar e retirar arquivos, etc) oxum oxalá obaluaê logum-ede SAD - 5 SAD - 6 Serviço de Arquivos Serviço de Arquivos narquivo: sequência de bytes nproteção: Capacidades» cada usuário tem um ticket (capacidade) para cada objeto que ele tem acesso, que inclui o tipo de acesso permitido Listas de Controle de Acesso» associa com cada arquivo uma lista de usuários que pode acessar o arquivo e como pode acessar» exemplo: bits rwx do Unix nmodelo de Acesso Modelo Upload/Download Arq 2. Acesso é feito no cliente Modelo de Acesso Remoto 1. Arquivo é movido para o cliente 3. Arquivo é enviado ao servidor arq Arq SERVIDOR SERVIDOR SAD - 7 SAD - 8
SAD - 9 Semântica do Compartilhamento de Arquivos nsemântica do UNIX: há uma coordenação de todas as operações, que são visíveis imediatamente aos outros processos» em um SD é possível se houver apenas 1 servidor de arquivos e os clientes não fizerem cache de arquivos nsemântica de Sessão é permitido cache de arquivos» mudanças são visíveis apenas para o processo que está usando o arquivos.» quando o arquivo é fechado as mudanças são visíveis a outros processos SAD - 10 Semântica do Compartilhamento de Arquivos nuso de Transações Atômicas BEGIN TRANSACTION» operações no arquivo END TRANSACTION narquivos Imutáveis não há como abrir arquivo para escrita apenas diretórios podem ser atualizados -> pode-se substituir um arquivo por outro SAD - 11 Arquitetura nqualquer máquina pode ser Cliente ou Servidor (NFS) nmáquinas são caracterizadas como Clientes ou Servidoras (AFS) Servidor Com Estado X Servidor Sem Estado n Com Estado vantagens:» mensagens menores -> diminui o tráfego na rede» servidor tem a informação de quem está usando o arquivo desvantagem:» gerenciamento da tabela (problemas quando cresce muito!)» autentica o usuário apenas 1 vez (problema de segurança!) n Sem Estado vantagem:» simplicidade desvantagem:» Não consegue fazer bloqueio de arquivos SAD - 12
Visão da Hierarquia de Diretórios ndiferentes máquinas têm a mesma visão Ex.: AFS B A C Root E D F Visão da Hierarquia de Diretórios ndiferentes máquinas têm visões diferentes» Sistemas que fazem Montagem Remota» vantagem: é flexível» desvantagem: é mais difícil de programar e entender» ex.: NFS B A C Root E D F B Root A C D E F SAD - 13 SAD - 14 Cache de Arquivos Disco do Servidor nem um Sistema Cliente-Servidor há 4 opções de armazenamento de arquivos: Disco do servidor Memória Principal do Servidor Disco do Cliente (se disponível) Memória Principal do Cliente nsão visíveis por todos os clientes nproblema: Performance Disco -> Memo Servidor -> Cliente nsolução: Caching memo memo SERVIDOR SAD - 15 SAD - 16
Cache no Servidor ncache na memória principal do servidor dos arquivos mais usados elimina a transferência do disco para a memória do servidor problema: ainda tem o acesso à rede solução: cache no cliente Consistência de Cache nwrite-through Cache: modificação -> envio ao servidor imediatamente problema: tráfego alto (pouco usado em SD) nescrita Adiada (gravação periódica): cliente manda nota ao servidor avisando que o arquivo foi modificado periodicamente todas as escritas são enviadas ao servidor SAD - 17 SAD - 18 Consistência de Cache Replicação de Arquivos nwrite-on-close: adota a semântica de sessão -> escreve o arquivo no servidor apenas quando ele é fechado. ncontrole Centralizado: servidor central guarda informaçòes sobre o arquivo. todo processo ao abrir um arquivo informa ao servidor n Mesmo arquivo em diferentes locais do SD diferente da idéia de se ter links! n Razões: aumentar confiabilidade» em caso de danificação do servidor há réplicas disponíveis aumentar disponibilidade» se um servidor cai, os arquivos ainda estão disponíveis aumentar desempenho» a carga de comunicação é dividida entre pontos diferentes n Tranparência de Replicação! SAD - 19 SAD - 20
nreplicação Explícita nreplicação em Background Criação de Réplicas Replicação Explícita n o programador controla todo o processo de replicação: não há transparência! n pode-se usar o serviço de diretórios para associar o nome do arquivo com vários endereços de rede 1 ncomunicação em Grupo Cliente 2 arquivo end. rede end. rede end. rede 3 arq.c 10 17 23 SAD - 21 SAD - 22 Replicação em Background Comunicação em Grupo no servidor faz a replicação em um momento posterior à criação (transparência!) ncriação de réplicas simultaneamente em todos os servidores que pertencem ao grupo Cliente S1 + tarde + tarde S2 S3 Cliente Cria arq S2 S3 + tarde S4 S4 GRUPO SAD - 23 SAD - 24
Protocolos de Atualização nmensagem de Atualização para cada cópia nservidor Primário vários servidores replicam o sistema de arquivo, mas existe um responsável pelas modificações (gargalo!) npor votação permissão de todos os servidores para ler ou escrever muita comunicação Network File System (NFS) nespecificação + implementação noriginalmente proposto pela Sun, atualmente implementado por outros fabricantes npermite máquinas serem clientes e servidoras ao mesmo tempo npode integrar máquinas com ou sem disco npode rodar em redes geograficamente distribuídas npermite montagem de sistemas remotos SAD - 25 SAD - 26 NFS NFS - Montagem nusa servidores sem estado não há informações armazenadas em servidores sobre montagens e acessos a arquivos em clientes nnão oferece suporte para replicação de arquivos ou diretórios n Montar = tornar um diretório disponível em algum lugar parte da sua hierarquia de diretórios não é feita uma cópia, o processo de montagem coloca um link entre o ponto de montagem do cliente e o diretório no servidor os arquivos são acessados como se estivessem localmente a árvore vista em cada máquina depende da montagem que feita por cada uma delas no NFS a montagem só pode ser feita pelo superusuário mas qualquer usuário pode chamar o comando mount para ver quais as montagens feitas toda manipulação do espaço de nomes é feita pelo cliente SAD - 27 SAD - 28
Exemplo de Montagem Exemplo de Montagem Cliente NFS Servidor NFS Cliente NFS M1 M2 M3 usr src monta user source monta user src usr usr man monta am2 local local a b monta man monta monta am1 am2 am3 am2 Cada cliente monta com o nome que quiser, entao, apesar dos dois acessarem sistemas de arquivos idênticos, eles têm pathnames diferentes para os arquivos text text a man b SAD - 29 SAD - 30 Montagem Montagem SAD - 31 n Servidor NFS exporta seus diretórios para acesso remoto n Lista de diretórios que o servidor exporta é mantida no arquivo /etc/exports n clientes acessam diretórios exportados montandoos n Maneiras de se montar: o cliente contém um arquivo /etc/rc que é um script contendo os comandos remotos para a montagem automounting n Para o servidor NFS funcionar tais daemons devem estar operando: portmap: age como um serviço de registro para programas que oferecem serviços baseados em RPC. Quando o RPC daemon é iniciado ele diz ao portmap daemon qual o número da porta onde ele está atendendo. mountd:» ao iniciar o mountd lê o arquivo /etc/exports, cujo conteúdo estará disponível quando uma solicitação chegar» solicitações montadas pelos clientes são direcionadas ao daemon mountd. Depois de verificar que o cliente tem permissão para montar o sistema de arq. solicitado, o mountd retorna o file handle para o ponto de montagem SAD - 32
Interação entre Daemons para Montagem de Sistemas Remotos Arquitetura do NFS SERVIDOR NFS SERVIDOR mount 1 2 3 4 portmap mountd Chamada de Sistema VFS (Virtual File System) tabela de v-nodes VFS (Virtual File System) 1 - processo mount envia uma msg. ao daemon portmap solicitando o endereço da porta do daemon mountd do servidor 2 - daemon portmap retorna o endereço da porta 3 - processo mount envia uma solicitação ao daemon mountd com o pathname do diretório que ele quer montar 4 - o daemon mountd envia um file handle para o ponto de montagem desejado 5 - processo mount do cliente faz a chamada de sistema mount passando o file handle recebido SAD - 33 SAD - 34 SO local Disco Cliente NFS RPC/XDR Servidor NFS RPC/XDR SO local Disco Rede Performance npara aumentar a performance o NFS usa duas estratégias: transferências entre clientes e servidores são feitas em blocos de 8k. cache» faz cache de duas coisas: atributos do arquivo: temporariamente verifica se os atributos locais estão iguais aos do servidor. (verificacão de consistência) arquivos de dados» Escrita Adiada SAD - 35