• Nenhum resultado encontrado

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
31
0
0

Texto

(1)

Desenvolvimento de Sistemas

Distribuídos

Aula 03 – Sistema de Arquivos Distribuídos

Prof. Gustavo Callou gcallou@gmail.com

(2)

Agenda

Sistema de Arquivos Distribuídos Introdução

Requisitos do sistema de arquivos distribuídos Arquitetura do serviço de arquivos

Estudos de caso

Sun NFS

(3)

Introdução

O compartilhamento de informações armazenadas talvez seja o aspecto mais importante dos recursos distribuídos.

Os requisitos de compartilhamento dentro de redes locais e intranets levam à necessidade de um serviço que suporte o armazenamento persistente dos dados e programas.

Descreveremos os sistemas de arquivos distribuídos “básicos”

Sem replicação, garantias de largura de banda e temporização

(4)

Introdução

Os sistemas de arquivos foram originalmente desenvolvidos como um recurso do sistema operacional.

Depois, eles adquiriram características como

controle de acesso e mecanismos de proteção de arquivos.

Úteis para compartilhamento de dados e programas Um serviço de arquivos permite que os programas armazenem e acessem arquivos remotos exatamente

(5)

Sharing

Persis-tence Distributedcache/replicasConsistencymaintenanceExample

Main memory RAM

File system UNIX file system

Distributed file system Sun NFS

Web Web server

Distributed shared memory Ivy (DSM, Ch. 18)

Remote objects (RMI/ORB) CORBA

Persistent object store 1 CORBA Persistent

Object Service

Peer-to-peer storage system OceanStore (Ch. 10)

1 1 1

2

Types of consistency:

1: strict one-copy. 3: slightly weaker guarantees. 2: considerably weaker guarantees.

Sistemas de Armazenamento e suas

Propriedades

(6)

Requisitos do sistema de arquivos distribuído (1)

Transparência – deve suportar muitos dos

requisitos de transparência dos sistemas distribuídos: Transparência de acesso

Transparências de localização Transparência de mobilidade Transparência de desempenho

(7)

Requisitos do sistema de arquivos distribuído (2)

Atualizações concorrentes de arquivos – As

alterações feitas em um arquivo por um único cliente não devem interferir na operação de outros clientes que estejam acessando o mesmo arquivo

Problema do controle da concorrência

Serviços de arquivos atuais utilizam travamento (lock) em nível de arquivo ou em nível de registro.

(8)

Requisitos do sistema de arquivos distribuído (3)

Replicação de arquivos – um arquivo pode ser

representado por várias cópias de seu conteúdo em diferentes locais.

Melhora a escalabilidade do serviço Melhora a tolerância a falhas

A maioria suporta caches locais que é uma forma limitada de replicação

(9)

Requisitos do sistema de arquivos distribuído (4)

Heterogeneidade da plataforma – As interfaces de

serviço devem ser definidas de modo que o software cliente e servidor possa ser implementado para

diferentes plataformas.

(10)

Requisitos do sistema de arquivos distribuído (5)

Tolerância a falhas – o serviço deve continuar

diante das falhas de clientes e servidores

Semânticas de invocação (no max 1 vez, ao menos 1 vez)

Operações idempotentes (pedidos duplicados não resultam em atualizações inválidas)

Servidores sem estado (stateless – sem necessidade de recuperar estado anterior ao ocorrer uma

falha/desligamento)

(11)

Requisitos do sistema de arquivos distribuído (6)

Consistência – Os sistemas de arquivos

convencionais oferecem semântica de atualização de

cópia única (one-copy).

Os processos concorrentes percebem apenas uma cópia do conteúdo do arquivo

Atrasos inevitáveis na propagação de modificações

(12)

Requisitos do sistema de arquivos distribuído (7)

Segurança – praticamente todos os sistemas de

arquivos fornecem mecanismos de controle de acesso baseados no uso de listas de controle de acesso.

Em serviço de arquivos distribuídos, há

necessidade de autenticar as requisições dos

clientes

(13)

Requisitos do sistema de arquivos distribuído (8)

Eficiência – deve ser tão eficiente quanto um

sistema de arquivo convencional Desempenho e confiabilidade Instalação e operação adequada

(14)

Arquitetura do serviço de arquivos distribuídos

A estruturação do serviço de arquivo distribuído é feita em três componentes:

Um serviço de arquivo plano Um serviço de diretório

Um módulo cliente

Os serviços exportam uma interface para uso dos programas clientes

O módulo cliente fornece uma única interface de programação (operações semelhantes àquelas

(15)

Client computer Server computer Application program Application program Client module

Flat file service Directory service

Arquitetura do serviço de arquivos

distribuídos

(16)

Serviço de arquivos plano

Se preocupa com a implementação de operações sobre o conteúdo dos arquivos.

São usados idenficadores exclusivos de arquivo (UFIDs – Unique File IDentifiers) para fazer

referências a arquivos em todas as requisições de operações.

As UFIDs são longas seqüências de bits gerada pelo serviço de arquivos plano e que é retornada para o

(17)

Serviço de diretório

Fornece um mapeamento entre nomes textuais de arquivos e seus UFIDs.

Os clientes podem obter um UFID de um arquivo citando seu nome textual para o serviço de diretório

O serviço de diretório fornece as funções

necessárias para gerar diretórios, adicionar novos nomes de arquivos a eles e para obter suas UFIDs.

Ele é um cliente do serviço de arquivos plano

(18)

Módulo cliente

Integra e estende as operações do serviço de arquivos plano e do serviço de diretório sob uma interface de programação de aplicativo única.

O módulo cliente também contém informações sobre locais de rede dos processos servidor de arquivos

plano e servidor de diretório.

Pode implementar uma cache de blocos de arquivo recentemente usados no cliente.

(19)

Operações do serviço de arquivos plano

Read(FileId, i, n) -> Data

- gera BadPosition Se de um arquivo, começando no elemento i, e a retorna em1 ≤ i ≤ Length(File): lê uma seqüência de até n elementos

data. Gera uma exceção se o valor i é inválido.

Write(FileId, i, Data)

-gera BadPosition Se um arquivo, começando no elemento i, ampliando o arquivo,1 ≤ i ≤ Length(File)+1: grava uma seqüência de Data em

se necessário. Gera uma exceção se o valor i é inválido.

(20)

Operações do serviço de arquivos plano

Create() -> FileId Cria um novo arquivo de tamanho 0 e gera um UFID para ele.

Delete(FileId) Remove o arquivo

GetAttributes(FileId) -> Attr Retorna os atributos do arquivo

(21)

Comparação com o UNIX (1)

O serviço de arquivos plano não tem as operações

open e close – o acesso é através da UFID

apropriada.

As funções Read e Write incluem um parâmetro

especificando um ponto de partida dentro do arquivo para cada transferência.

No UNIX, cada operação read ou write começa na posição corrente do ponteiro de leitura e escrita.

Operação seek para posicionamento explícito.

(22)

Comparação com o UNIX (2)

A interface do serviço de arquivos distribuídos

diferem da interface do sistema de arquivos UNIX por motivos de tolerância a falhas:

Operações que podem ser repetidas – operações idempotentes com semântica pelo menos uma vez.

Servidores sem estado (stateless) – um servidor sem estado pode ser reiniciado após uma falha e retomar a operação sem necessidade de restaurar qualquer estado. As operações de arquivo do UNIX não são

idempotentes, nem consistentes, com o requisito de uma implementação sem estado.

(23)

Controle de acesso

Nas implementações distribuídas, as verificações de direitos de acesso podem ser feitas de duas maneiras:

É feita uma verificação de acesso quando um nome de arquivo é convertido em um UFID e os resultados são codificados na forma de uma capacidade, a qual é

retornada para o cliente.

Uma identidade de usuário é enviada com cada

requisição de cliente e as verificações de acesso são realizadas pelo servidor para cada operação de arquivo. Os dois métodos permitem implementação de

servidor sem estado e são usados em sistema de arquivos distribuídos atuais.

(24)

Operações do serviço de diretório

Lookup(Dir, Name) -> FileId - gera NotFound

Localiza o nome textual no diretório e retorna o UFID relevante. Se Name não estiver no diretório, gera uma exceção.

AddName(Dir, Name, FileId) - gera NameDuplicate

|Se Name não estiver no diretório, adiciona (Name, File) no diretório e atualiza o registro de atributos do arquivo. Se Name já estiver no diretório, gera uma exceção.

(25)

Operações do serviço de diretório

UnName(Dir, Name) Se Name estiver no diretório, a entrada contendo Name

é removida do diretório.

Se Name não estiver no diretório, gera uma exceção.

GetNames(Dir, Pattern) -> NameSeqRetorna todos os nomes textuais presentes no

diretório que correspondam à expressão regular Pattern.

(26)

Sistema de arquivos hierárquico

Um sistema de atribuição de nomes de arquivos

como o do UNIX pode ser implementado pelo módulo cliente através dos serviços de arquivos planos e de diretório.

A raiz da árvore é um diretório com um UFID conhecido.

Pode ser fornecida uma função que obtenha o UFID de um arquivo a partir de seu nome de caminho.

(27)

Grupos de arquivos

Um grupo de arquivos é um conjunto de arquivos localizado em determinado servidor.

Semelhante a um sistema de arquivo tradicional de sistemas operacionais.

Foram introduzidos para mover conjuntos de arquivos armazenados em mídia removível entre computadores.

A representação de UFIDs inclui um componente identificador de grupo de arquivos.

Os identificadores de grupo devem ser únicos em todo um sistema distribuído.

(28)

Sun NFS

O NFS foi o primeiro serviço de arquivo projetado como um produto.

As definições das principais interfaces foram colocadas em domínio público.

O NFS fornece acesso transparente a arquivos remotos para programas clientes executando em UNIX e outros sistemas operacionais

O NFS possui um alto nível de suporte para

(29)

Sistema de Arquivos Local e Remoto

acessível ao Cliente do NFS

Prof. Gustavo Callou 29

jim ann jane joe users students usr vmunix Client Server 2 . . . nfs Remote mount staff

big jon bob people Server 1 export (root) Remote mount . . . x (root) (root)

Note: The file system mounted at /usr/students in the client is actually the sub-tree located at /export/people in Server 1; the file system mounted at /usr/staff in the client is actually the sub-tree located at /nfs/users in Server 2.

(30)

Outros sistemas de arquivos distribuídos

Andrew File System (AFS)

– Focado em sistemas de grande escala

– Existem versões comerciais e é de domínio público

– Base do sistema de arquivos DCE/DSF no DCE

(Distributed Computing Environment)

Coda File System

– Descendente do AFS

– Maior tolerância a falhas

Server Message Block (SMB) / Common Internet File System (CIFS)

(31)

Resumo

Requisitos do sistema de arquivos distribuídos Arquitetura do serviço de arquivos

Estudos de caso

Sun NFS

AFS, Coda, SMB

Referências

Documentos relacionados

Execuções seriais - Não permite que as transações sejam intercaladas entre si. Execuções serializáveis – Permite que as transações sejam intercaladas entre si, mas produzem

Este estudo analisa as características dos cursos de Ciências Con- tábeis no Brasil, classificando-os quanto aos melhores e aos piores desempenhos no Enade e no Exame de

Além disso, estudou-se a variação topográfica do rebolo em função do volume usinado, sob distintas condições de dressamento e taxas de retificação. Dependendo

somente uma thread dentro da região crítica; outras thread precisam esperar sua vez; ao sair outra thread pode entrar. retirada(conta,

Servidores que oferecem mapeamento definitivo entre nome e IP para um servidor ou serviço. (ex. Web,

Atravessei-os contando, aos trambulhões, é verdade, cae aqui, cae acolá, aborrecido de uns, estimado de on- tros, como todos Bomos, emquanto não chega a

Parágrafo Único - Às pessoas mencionadas nos incisos I a IV não se aplica a vedação prevista neste artigo caso sejam os únicos Cotistas do FUNDO, ou

A direção de prova estará a cargo de José Guedes. Este Troféu de karting será disputado de acordo com o presente Regulamento particular, o qual todos os concorrentes, pelo