Roteiro. Sistemas Distribuídos. Sistemas de Arquivos Distribuídos. Sistema de arquivos distribuídos

Documentos relacionados
Transparência de Localização. Sistemas de Arquivos Distribuídos. Sistemas de Arquivos Distribuídos. Serviço de Arquivos X Servidor de Arquivos

Pg. Autoria. Versão atual V10, nov 2008 C. Geyer. Sistemas de Arquivos Distribuídos: DFS. Projeto de. Sistemas de Arquivos Distribuídos (DFS) Súmula

Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores

Universidade Federal de Minas Gerais. Sistemas Operacionais. Aula 23. Sistemas Operacionais Distribuídos

Considerações no Projeto de Sistemas Cliente/Servidor

Unix: Sistema de Arquivos. Geraldo Braz Junior

SISTEMAS DISTRIBUÍDOS

SISTEMA DE ARQUIVOS DISTRIBUÍDOS

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

1

Sistemas Operacionais 3º bimestre. Dierone C.Foltran Jr.

Fundamentos de Sistemas Operacionais

Tecnologia de Sistemas Distribuídos Capítulo 8: Sistemas de Ficheiros Distribuídos Paulo Guedes

Funções de um SO. Gerência de processos Gerência de memória Gerência de Arquivos Gerência de I/O Sistema de Proteção

Sistemas Cliente-Servidor

Desenvolvimento de Sistemas Distribuídos Aula 03 Sistema de Arquivos Distribuídos

UNIVERSIDADE. Sistemas Distribuídos

Introdução. Definição de um Sistema Distribuído (1) Definição de um Sistema Distribuído(2) Metas de Sistemas Distribuídos (2)

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Fundamentos de Sistemas Operacionais. Sistema de Arquivos. Prof. Edwar Saliba Júnior Março de Unidade Sistemas de Arquivos

Capítulo 11: Implementação de Sistemas de Arquivos. Operating System Concepts 8 th Edition

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING

Sistema de Arquivos. Ambientes Operacionais. Prof. Simão Sirineo Toscani

GBC043 Sistemas de Banco de Dados. Introdução. Ilmério Reis da Silva UFU/FACOM

Capítulo 8. Sistemas com Múltiplos Processadores. 8.1 Multiprocessadores 8.2 Multicomputadores 8.3 Sistemas distribuídos

Estruturas do Sistema de Computação

Sistemas Operacionais

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo

Introdução ao Modelos de Duas Camadas Cliente Servidor

Fundamentos de Banco de Dados

Capítulo 8 - Aplicações em Redes

the slides) Sobre a apresentação (About( Capítulo 11: Implementação de Sistemas de Arquivos Sistemas de Arquivos Objetivos

Sistemas Operacionais: Sistema de Arquivos

Sistemas Distribuídos

Senado Federal Questões 2012

Comunicação. Parte II

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

Manual AGENDA DE BACKUP

SISTEMAS OPERACIONAIS

Sistemas Distribuídos

Tipos de Servidores. Servidores com estado

Arquitetura de Sistemas Distribuídos. Introdução a Sistemas Distribuídos

Conceitos de Banco de Dados

MODELO CLIENTE SERVIDOR

Tópicos em Sistemas Distribuídos. Modelos de Comunicação

MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS

Camadas de Serviço de Hardware e Software em Sistemas Distribuídos. Introdução. Um Serviço Provido por Múltiplos Servidores

SISTEMAS OPERACIONAIS

Sistemas Operacionais

Professor: Macêdo Firmino Disciplina: Sistemas Operacionais de Rede

Sistemas Distribuídos

ADMINISTRAÇÃO DE SISTEMA OPERACIONAL DE REDE (AULA 1)

Projeto de Arquitetura

Comparação SDs X Scs

Sistemas de Arquivos Distribuídos. Universidade Federal do ABC Prof. Dr. Francisco Isidro Massetto

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Figura 01 Kernel de um Sistema Operacional

Faculdade Lourenço Filho - ENADE

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Sistemas Distribuídos RPC

Prof. Engº esp Luiz Antonio Vargas Pinto

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

Prof. Luiz Fernando Bittencourt MC714. Sistemas Distribuídos 2 semestre, 2013

Projeto: Camada Independente de Dispositivo

Sistemas Operacionais Gerência de Dispositivos

Sistemas Operacionais

3 SCS: Sistema de Componentes de Software

Sistemas Distribuídos Grupos

MANUAL DO ADMINISTRADOR LOCAL. Entidade Municipal

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

FTIN Formação Técnica em Informática Módulo Sistema Proprietário Windows AULA 04. Prof. André Lucio

SISTEMAS DISTRIBUÍDOS

Versionamento de Código. Núcleo de Desenvolvimento de Software

Sistemas Operacionais Arquivos. Carlos Ferraz Jorge Cavalcanti Fonsêca

1 REQUISITOS BÁSICOS PARA INSTALAR O SMS PC REMOTO

Manual AGENDA DE BACKUP

Disciplina de Banco de Dados Introdução

Banco de Dados Arquiteturas para SGBDs

BC Sistemas Operacionais Sistema de Arquivos (aula 10 Parte 2) Prof. Marcelo Z. do Nascimento

Capítulo 6 Sistemas de Arquivos

Acadêmicos: Luís Fernando Martins Nagata Gustavo Rezende Vinícius Rezende Santos

UFRJ IM - DCC. Sistemas Operacionais I. Unidade IV Sistema de arquivos. Prof. Valeria M. Bastos Prof. Antonio Carlos Gay Thomé 13/06/2012 1

Introdução ao Active Directory AD

Mercado Eletrônico Instalação e Atualização MEConnect2

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Sistemas de Arquivos. Sistemas Operacionais - Professor Machado

Banco de Dados I. Apresentação (mini-currículo) Conceitos. Disciplina Banco de Dados. Cont... Cont... Edson Thizon

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande

Rede de Computadores

FTP Protocolo de Transferência de Arquivos

Fundamentos de Sistemas Computacionais Introdução

CSAU Guia: Manual do CSAU 10.0 como implementar e utilizar.

Características Carlos Ferraz

Processos e Threads (partes I e II)

3. Comunicação em Sistemas Distribuídos

SISTEMAS DISTRIBUIDOS

Comunicação em Sistemas Distribuídos. Conceitos: Paradigma C/S. Conceitos: Paradigma C/S. Paradigma Cliente/Servidor

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

Transcrição:

Sistemas Distribuídos Sistemas de Arquivos Distribuídos Roteiro Sistema de arquivos distribuídos Requisitos Arquivos e diretórios Compartilhamento Cache Replicação Estudo de caso: NFS e AFS Sistemas Distribuídos 2

Sistema de arquivos Responsável por organizar, armazenar, recuperar, nomear, compartilhar e proteger arquivos Fornece uma interface de programação que caracteriza a abstração de arquivo Libera a aplicação dos detalhes de alocação e layout de arquivos Sistemas Distribuídos 3 Sistema de arquivos distribuídos Serviço de arquivo: o que o sistema de arquivos oferece aos clientes Primitivas, parâmetros e ações Servidor de arquivos: processo que roda em uma máquina do sistema e implementa o serviço de arquivos Sistemas Distribuídos 4

Requisitos de um sistema de arquivos distribuídos Transparência Acesso Localização Mobilidade Desempenho Escala Sistemas Distribuídos 5 Requisitos de um sistema de arquivos distribuídos Atualizações concorrentes de arquivo Alterações em um arquivo por um cliente não deve interferir nas operações simultâneas de outros clientes Lock de arquivos ou registros Replicação de arquivos Distribuição de carga escalabilidade Tolerância a falha Sistemas Distribuídos 6

Requisitos de um sistema de arquivos distribuídos Heterogeneidade de hardware e sistema operacional Tolerância a falha Operações idempotentes Servidor stateless Replicação Sistemas Distribuídos 7 Requisitos de um sistema de arquivos distribuídos Consistência Problemas com o uso de arquivos replicados ou cache Segurança Necessidade de autenticar requisições dos usuários Eficiência Desempenho e confiabilidade comparáveis ao sistema de arquivos local Sistemas Distribuídos 8

Arquivos O que é um arquivo? Seqüência de bytes Seqüência de registros Atributos de arquivos: informações sobre os arquivos Proteção: Listas de capacidades (associadas aos usuários) Listas de controle de acesso (associadas aos arquivos) Sistemas Distribuídos 9 Modelos de acesso Remoto: grande número de operações no arquivo que permanece no servidor Local (upload/download): somente operações de leitura e escrita que transferem o arquivo inteiro entre cliente e servidor Vantagem: simplicidade conceitual Desvantagem: ocupa memória do cliente Sistemas Distribuídos 10

Modelos de acesso 1. Cliente busca arquivo Cliente Servidor Arquivo antigo Cliente Requisição Servidor Arquivo novo Resposta 2. Acessos são feitos no cliente 3. Ao final, o arquivo é retornado ao servidor Arquivos permanecem no servidor (a) Modelo upload/download (b) Modelo de acesso remoto Sistemas Distribuídos 11 Serviço de diretórios Fornece operações para criação e remoção de diretórios, identificação e mudança de nome de arquivos, movimentação de arquivos entre diretórios Independe do modelo do serviço de arquivos Permitem a criação de subdiretórios que podem conter seus próprios subdiretórios sistema de arquivos hierárquico Sistemas Distribuídos 12

Servidor de arquivos 1 Raiz A A D Cliente 1 B C B C E F Servidor de arquivos 2 Raiz D A D Cliente 2 E F B C E F Sistemas Distribuídos 13 Raiz Raiz A A D B C B C E F D Cliente 1 E F Cliente 2 Sistemas Distribuídos 14

Transparência de nomeação Transparência de localização: o nome do caminho não deve dar nenhuma identificação de onde o arquivo está localizado Ex.: servidor1/dir1/dir2/x - o arquivo x está no servidor1 mas não informa onde este servidor está localizado Se o arquivo é grande e o servidor1 não tem espaço enquanto há bastante espaço no servidor2. Poder-se-ia mover o arquivo para o servidor2 mas isto mudaria o nome do caminho. Sistemas Distribuídos 15 Transparência de nomeação Independência de localização: sistema no qual os arquivos podem ser movidos sem que seu caminho mude Três métodos para identificar arquivos e diretórios: nome da máquina + nome do caminho montagem dos sistemas de arquivos remotos na hierarquia de arquivos locais um único espaço de nomes que devem ser os mesmos em todas as máquinas Sistemas Distribuídos 16

Compartilhamento de arquivos Consistência seqüencial No sistema com um processador as operações ocorrem seqüencialmente Ordenação absoluta de tempo de todas as operações Obtida facilmente em um sistema distribuído se houver um único servidor e os clientes não fizerem cache dos arquivos Se fizer cache: enviar imediatamente as modificações realizadas ineficiente Sistemas Distribuídos 17 Compartilhamento de arquivos Semântica de sessão As mudanças em um arquivo aberto só são visíveis ao processo que modificou o arquivo Só quando o arquivo for fechado é que estas modificações serão visíveis aos outros processos Quando 2 processos estiverem modificando um arquivo ao mesmo tempo o resultado final vai depender de quem fechou o arquivo por último Sistemas Distribuídos 18

Compartilhamento de arquivos Arquivos imutáveis Os arquivos podem ser criados e lidos mas não modificados. Para modificar um arquivos deve-se fazer a substituição por um novo arquivo. E se 2 processos estão tentando substituir um determinado arquivo ao mesmo tempo? Mesmo problema da solução anterior Sistemas Distribuídos 19 Compartilhamento de arquivos Transações atômicas Utilização das transações atômicas para tratar arquivos compartilhados. Desta forma todas as modificações tem a propriedade tudo-ou-nada Sistemas Distribuídos 20

Propriedades de sistemas de arquivos Estudo realizado em 1981 (Satyanarayanan): a maioria dos arquivos são pequenos (menores que 10K) leitura é mais comum que escrita leituras e escritas grande parte das vezes são feitas seqüencialmente a maioria dos arquivos tem vida curta não é usual arquivo compartilhado processos em média usam poucos arquivos existem classes de arquivos diferentes Sistemas Distribuídos 21 Estrutura do sistema Distinção entre cliente e servidor Forma de estruturação do serviço de arquivos e de diretórios (juntos ou separados) Manutenção de informações de estado. Sem informação: tolerante a falhas, não há necessidade de OPEN/CLOSE, não gasta espaço na memória do servidor com tabelas, não há limite de arquivos abertos e não há problemas quando o cliente falha Com informação: mensagens de solicitação menores, melhor desempenho, possível ler informações adiantadas, fácil obter idempotência e possível bloquear arquivos. Sistemas Distribuídos 22

Armazenamento em cache Em um sistema cliente-servidor existem quatro lugares para armazenamento de informação: disco do servidor (melhor opção a princípio) memória principal do servidor memória principal do cliente disco do cliente Uso de cache ajuda a melhorar o desempenho do sistema Sistemas Distribuídos 23 Armazenamento em cache Qual é a unidade de transferência de cache? Arquivos ou blocos? Qual é o algoritmo de substituição? LRU com listas ligadas Para evitar atraso de acesso à rede é conveniente manter uma cache no lado cliente Opções para cache: espaço de endereçamento do processo dentro do kernel processo gerenciador de cache Sistemas Distribuídos 24

Consistência de cache Clientes diferentes podem ter versões diferentes de arquivos ou blocos em suas caches semântica de sessão Write-through: quando uma entrada da cache (arquivo ou bloco) o novo valor é mantido na cache e enviado imediatamente ao servidor. Problemas: gerente mantém cache após finalização do processo tráfego alto escrita retardada Sistemas Distribuídos 25 Consistência de cache Write-on-close: escrever o arquivo de volta no servidor somente quando ele for fechado. Arquivos temporários: esperar para escrever de volta Algoritmo de controle centralizado Sistemas Distribuídos 26

Replicação Serviço de replicação de arquivo: são mantidas várias cópias de arquivos que são armazenadas em um servidores separados aumento de confiabilidade: se um servidor sair do ar, não haverá perda de dados melhora da disponibilidade: acesso possível mesmo que um servidor esteja fora do ar aumento de desempenho: carga de trabalho dividida entre os vários servidores Sistemas Distribuídos 27 Replicação Transparência de replicação: o sistema se encarrega da replicação e o processo não fica ciente do serviço Implementação de replicação replicação explícita: o processo controla o procedimento replicação retardada: o servidor se encarrega de atualizar as réplicas replicação com uso de comunicação em grupo: as chamadas são transmitidas a todos os servidores Sistemas Distribuídos 28

Replicação grupo S1 S1 S1 mais tarde C S2 C S2 C S2 mais tarde S3 S3 S3 Replicação explícita Replicação retardada Replicação com uso de grupo Sistemas Distribuídos 29 Protocolos de atualização Como os arquivos podem ser modificados? Garantir a coerência das modificações Algoritmos: Replicação da cópia principal Método eletivo Sistemas Distribuídos 30

Protocolos de atualização Replicação da cópia principal: um dos servidores é escolhido para ser o principal as modificações de arquivos são feitas no servidor principal que se encarrega de enviar mensagens de atualização aos servidores secundários as leituras podem ser feitas em qualquer servidor as atualizações são escritas em memória estável antes de modificar a cópia principal Vantagem: simplicidade Desvantagem: ponto único de falha (servidor principal) Sistemas Distribuídos 31 Protocolos de atualização Método eletivo: Guifford (1979) os clientes devem solicitar e adquirir permissão de vários servidores antes de fazer modificações se um arquivo foi replicado em N servidores, o cliente entrar em contato com no mínimo N/2 + 1 servidores a fim de obter consentimento para atualizações caso haja concordância, o arquivo é modificado e um novo número de versão é associado ao arquivo Sistemas Distribuídos 32

Protocolos de atualização para ler um arquivo replicado, o cliente solicita o número da versão do arquivo de metade mais um dos servidores, se todas forem as mesmas então esta versão é a mais recente O esquema é um pouco mais geral: quorum de leitura (N R ) quorum de escrita (N W ) N R + N W > N Sistemas Distribuídos 33 Protocolos de atualização Sistemas Distribuídos 34

Alguns sistemas de arquivos distribuídos 9P AFS AppleShare Coda DFS Freenet NFS OpenAFS SMB (CIFS) Sistemas Distribuídos 35 NFS - Network File System Desenvolvido pela Sun Introduzido em 1985 As interfaces chave foram colocadas em domínio público e um código fonte de referência disponibilizado sob licença padrão de fato Sistemas Distribuídos 36

NFS - Network File System NFS fornece o acesso transparente a arquivos remotos para programas cliente Tipicamente cada computador possui módulos cliente e servidor NFS instalados no kernel A relação cliente-servidor é simétrica Sistemas Distribuídos 37 Características Transparência de acesso: modulo NFS apresenta uma API ao processo idêntica à API do SO Transparência de localização: cada cliente estabelece um espaço de nomes adicionando os sistemas de arquivo remotos ao seu sistema local O sistema é exportado pelo servidor e montado pelo cliente Sistemas Distribuídos 38

Características servidor 1 cliente servidor 2 / (root) / (root) / (root) export... vmunix users nfs people student xy staff users big jon bob... jim ann jane... Sistemas Distribuídos 39 Características Transparência de falha: serviço sem informação de estado e a maioria das operações são idempotentes Transparência de desempenho: cliente e servidor empregam a técnica de cache para melhorar desempenho Transparência de migração: serviço de montagem fornece uma interface RPC para montagem e desmontagem de diretórios remotos Sistemas Distribuídos 40

Arquitetura NFS Implementação em três níveis: 1. Nível da chamada de sistema: trata as chamadas OPEN, READ e CLOSE 2. Sistema de arquivos virtual (VFS): mantém uma tabela com uma entrada para cada um dos arquivos abertos (nó-v) 3. SO ou cliente NFS Sistemas Distribuídos 41 Arquitetura NFS Sistemas Distribuídos 42

Montando diretório Programa mount executado pelo administrador do sistema 1. Recebe um nome de diretório remoto e um local 2. Comunica-se com a máquina remota 3. Se o arquivo existir e puder ser montado remotamente o servidor autoriza o cliente a fazer a montagem Sistemas Distribuídos 43 Montando diretório 4. O cliente faz uma chamada de sistema MOUNT para o kernel 5. O kernel constrói um nó-v para o diretório remoto e solicita ao cliente a criação de um nó-r (nó-i remoto) em suas tabelas internas O nó-v (nível VFS) aponta para o nó-r (cliente NFS) ou nó-i (SO local) Sistemas Distribuídos 44

Abrindo arquivo Quando um arquivo remoto é aberto: o kernel descobre o diretório onde o arquivo vai ser montado (caminho), verifica se o diretório é remoto e procura o diretório nos nós-v o ponteiro para o nó-r O controle passa para o cliente NFS que prepara uma entrada de nó-r em suas tabelas e passa esta informação para o VFS O VFS coloca em suas tabelas um nó-v apontando para o nó-r recém criado O processo recebe um descritor de arquivo Sistemas Distribuídos 45 Lendo arquivo Quando um arquivo remoto for lido: o VFS localiza o nó-v correspondente ao descritor de arquivo e a partir dele determina se o arquivo é local (nó-i) ou remoto (nó-r) Leitura antecipada: as transferências de dados são feitas usando números grandes de bytes, normalmente 8K (eficiência) Operação de escrita é semelhante Escrita retardada: os dados são cumulados localmente Sistemas Distribuídos 46

Cache Os servidores colocam dados na cache para evitar acessos a disco Para resolver coerência de cache: temporizador associados ao bloco de cache 3 s para arquivos e 30 s para diretórios sempre que um arquivo da cache for aberto é verificada a data de última modificação no servidor a cada 30 s todos os blocos são enviados ao servidor Sistemas Distribuídos 47 AFS - Andrew File System Desenvolvido pela Universidade de Carnegie-Mellon Objetivo: suporte ao compartilhamento de informação de larga escala, minimizando a comunicação entre cliente e servidor Cada usuário tem uma estação de trabalho modificada executando uma versão do SO, que inclui um pedaço de código denominado venus e um servidor de arquivos no espaço do usuário denominado vice Sistemas Distribuídos 48

AFS - Andrew File System Processo de usuário Servidor vice venus Sistema operacional Sistema operacional Rede Sistemas Distribuídos 49 AFS - Andrew File System Sistemas Distribuídos 50

AFS - Andrew File System As estações de trabalho são agrupadas em células Espaço de nomes inclui diretórios /cache: contém cópias dos arquivos remotos em cache de disco /cmu: traz nomes das células remotas compartilhadas Abaixo delas estão seus respectivos sistemas de arquivos Semântica parecida com sessão Sistemas Distribuídos 51 Abrindo arquivo Quando um arquivo é aberto, o código venus chama um OPEN e transfere o arquivo todo ou, se for um arquivo gigantesco, uma parte grande dele para o disco local e o insere no diretório /cache Permite que o usuário faça o máximo localmente O descritor retornado aponta para o arquivo em /cache As leituras e escritas operam na cópia local Ao fechar ele é copiado de volta Sistemas Distribuídos 52

Consistência de arquivos Quando um arquivo é transferido para a cache, venus diz a vice se pode ou não haver aberturas subseqüentes por outros processos Em caso negativo vice registra a localização do arquivo Se outro processo pedir o mesmo arquivo, vice envia msg para venus solicitando envio de cópia arquivo caso tenha sido modificado Sistemas Distribuídos 53