SISTEMA DE ARQUIVOS DISTRIBUÍDOS



Documentos relacionados
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

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

Unix: Sistema de Arquivos. Geraldo Braz Junior

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

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

Sistemas Operacionais: Sistema de Arquivos

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

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

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

Figura 01 Kernel de um Sistema Operacional

SISTEMAS DISTRIBUÍDOS

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

Sistemas Distribuídos

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

Sistema de Arquivos EXT3

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

Fundamentos de Sistemas Operacionais

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

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

Sistemas Operacionais

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS

SISTEMAS OPERACIONAIS 2007

ESTRUTURA DE UM SISTEMA OPERACIONAL

Sistemas Operacionais

ESTUDO DE CASO WINDOWS VISTA

Organização e Arquitetura de Computadores

Sistemas Operacionais. Conceitos de um Sistema Operacional

Noções de. Microsoft SQL Server. Microsoft SQL Server

1

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING

Sistemas Operacionais

Sistemas Distribuídos

Considerações no Projeto de Sistemas Cliente/Servidor

Senado Federal Questões 2012

Redes de Computadores

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

SOP - TADS Sistemas de Arquivos Cap 4 Tanenmbaum

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

SISTEMAS OPERACIONAIS

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

Bancos de Dados III. Replicação de Dados. Rogério Costa Replicação

TRABALHO COM GRANDES MONTAGENS

Sistema de Arquivos FAT

Aula 01 Visão Geral do Linux

SISTEMAS DISTRIBUÍDOS

Fundamentos de Arquivos e Armazenamento Secundário

Sistemas Cliente-Servidor

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

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

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

Sistemas de Arquivos. Sistemas Operacionais - Professor Machado

Sistemas Operacionais

*O RDBMS Oracle é um sistema de gerenciamento de banco de dados relacional.

Estruturas do Sistema de Computação

Arquitetura de Computadores. Sistemas Operacionais IV

Engenharia de Software III

5 Mecanismo de seleção de componentes

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

Sistemas Operacionais

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

ISO/IEC 12207: Gerência de Configuração

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

Prof. Engº esp Luiz Antonio Vargas Pinto

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

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais

Sistemas Distribuídos. Aleardo Manacero Jr.

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

Sistemas de Gerência de Bancos de Dados. 7 - Outras Arquiteturas para SGBDs SGBDs Cliente-Servidor

Introdução. Banco de dados. Por que usar BD? Por que estudar BD? Exemplo de um BD. Conceitos básicos

Sistemas Operacionais

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

Introdução à Computação: Sistemas Operacionais II

Arquitetura dos Sistemas Operacionais

Entendendo como funciona o NAT

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

Tabela de roteamento

Sistemas Operacionais

Comunicação. Parte II

Introdução ao Modelos de Duas Camadas Cliente Servidor

Sistemas Distribuídos RPC x RMI. Edeyson Andrade Gomes

Manual AGENDA DE BACKUP

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

Sistemas de Arquivos Distribuídos: DFS. Projeto

Visão do Usuário da DSM

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

Sistemas Operacionais. INTRODUÇÃO Prof. Rafael Alberto Vital Pinto FACSUL/CESUR

AULA 5 Sistemas Operacionais

Gerência de Redes. Arquitetura de Gerenciamento.

Introdução Banco de Dados

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

Introdução ao Active Directory AD

UNIVERSIDADE. Sistemas Distribuídos

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

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

Conteúdo Store manager... 2

Transcrição:

SISTEMA DE ARQUIVOS DISTRIBUÍDOS Sistemas Distribuídos 331 Arquivo: objeto que existe após criação, é imune a falhas temporárias e é persistente até que seja destruído Propósito de arquivos: armazenamento permanente de informações; compartilhamento de informações (sub)sistema de arquivos -> realiza gerência de arquivos organização, armazenamento, nomeação, compartilhamento, proteção permitem que programas usem conjunto de operações sobre a abstração de arquivos - livram programadores de detalhes como alocação de espaço e projeto do dispositivo secundário Sistemas Distribuídos 332 1

(sub)sistema de arquivos distribuídos -> provê funcionalidade análoga a sistemas de arquivos, mas em ambiente distribuído Provê adicionalmente: Compartilhamento de informações remotas Mobilidade do usuário Disponibilidade (réplicas) Possibilidade de trabalhar com estações sem disco Desvantagens: Mais complexo Segurança Componente importante em um sistema distribuído Sistemas Distribuídos 333 Sistema de arquivos distribuídos provê 3 tipos de serviços básicos: Serviço de armazenamento: trata da alocação e administração do espaço na memória secundária usada para armazenar os arquivos Sistema de arquivos verdadeiro, preocupa-se com as operações sobre arquivos individuais, implementa vários aspectos como: semântica de compartilhamento mecanismo de caching mecanismo de replicação controle de concorrência controle de acesso Serviço de nomes: provê o mapeamento entre um nome textual de um arquivo para uma referência para um arquivo, isto é, seu ID. Serviço de diretórios Sistemas Distribuídos 334 2

Características desejáveis: Transparências: de estrutura: sistema de arquivos distribuídos normalmente usa vários servidores de arquivos - esta estrutura deve ser transparente aos usuários de acesso: acesso a arquivos locais e remotos da mesma forma de nome: nome não indica local de replicação: a existência de múltiplas cópias de um arquivo não é conhecida pelo usuário Mobilidade do usuário Performance: deve ser comparável a sistema centralizado -> usuário não deve sentir a necessidade de fazer cópia local de um arquivo Simplicidade de uso: semântica deve ser de fácil compreensão. Idealmente, semântica deveria ser a mesma de um sistema tradicional Sistemas Distribuídos 335 Características desejáveis: Escalabilidade: suportar crescimento de: usuários, recursos Alta disponibilidade: continuar funcionamento mesmo na presença de falhas parciais. Sistema pode ter funcionalidade e/ou desempenho degradados, mas são proporcionais aos componentes falhos Gracefull Degradation (...décadence avec élégance) Alta confiabilidade: minimizar perdas de dados Integridade dos dados: coordenar apropriadamente acessos concorrentes de vários usuários Segurança: privacidade Heterogeneidade Sistemas Distribuídos 336 3

Modelos de Arquivos - Quanto à sua estrutura, arquivos podem ser: Estruturados: neste modelo, o arquivo é visto como uma seqüência de registros, podendo assim ser indexados ou não. Não estruturados: seqüência de dados não estruturados, onde o conteúdo do arquivo é simplesmente uma seqüência de bytes. Neste modelo, a interpretação dos dados é tarefa da aplicação. A maioria dos sistemas operacionais modernos usam o modelo não estruturado. No modelo não estruturado, diversas aplicações podem interpretar os dados da forma que melhor lhe convier. Sistemas Distribuídos 337 Modelos de arquivos - Quanto à sua modificabilidade, arquivos podem ser: Mutáveis: neste modelo, a escrita no arquivo re-escreve seu conteúdo anterior, isto é, um arquivo é representado como uma seqüência única de dados que é alterada a cada atualização. Não-mutáveis: neste modelo, um arquivo não pode ser modificado depois de ter sido criado, a não ser para ser apagado. Em geral um sistema de versões é utilizado para gerar novas cópias (alterações) do arquivo, ou seja cada arquivo é representado por uma seqüência de arquivos que mantém a história de modificações que o arquivo sofreu. Cada versão é também um arquivo não-mutável Sistemas Distribuídos 338 4

Modelos de acesso a arquivos Quanto ao acesso remoto modelo de serviço remoto: pedidos do cliente processados sempre no servidor, tráfego através da rede para cada pedido modelo de cache Quanto à unidade de transferência arquivo: Amoeba, CFS, AndrewFS(AFS-2) bloco: NFS, LOCUS, Sprite, Apollo Domain FS byte (intervalos do arquivo): Cambridge FS record: Research Storage System (RSS) Sistemas Distribuídos 339 Como cada arquivo pode ser acessado simultaneamente por diversos usuários, é importante definir quando uma modificação no arquivo feita por um usuário é vista por outro usuário Quanto à semântica de compartilhamento de arquivos, tem-se: Semântica Unix Semântica de Sessão Semântica de Arquivos Imutáveis Semântica baseada em Transações Sistemas Distribuídos 340 5

Quanto à semântica de compartilhamento de arquivos: Semântica Unix ordenação temporal absoluta das operações escritas em um arquivo aberto são imediatamente visíveis a usuários que também tenham este arquivo aberto de difícil implementação: SA Distribuídos oferecem semântica mais relaxada Sistemas Distribuídos 341 Quanto à semântica de compartilhamento de arquivos: Semântica de Sessão cliente abre arquivo, faz uma série de acessos, fecha arquivo sessão: conjunto de acessos desde o open até o close modificações durante a sessão visíveis somente pelo cliente que iniciou a sessão; no fechamento da sessão: modificações ficam visíveis para os próximos clientes que iniciarem sessões clientes que já tem sessões iniciadas não vêem as modificações! cada cliente mantém sua cópia do arquivo qual deve ser a imagem final do arquivo quando várias sessões sobre o mesmo arquivo são fechadas? Último - mas e se acontecem atrasos de rede? Qual é o último? semântica: a imagem final é de uma das sessões Sistemas Distribuídos 342 6

Quanto à semântica de compartilhamento de arquivos: Semântica de Arquivos Imutáveis problema de publicação de modificações para outros usuários desaparece administração de múltiplas versões Semântica baseada em Transações transação: conjunto de operações entre um begin- e um end-transaction modificações dentro de uma transação são feitas visíveis para outros clientes somente no end-transaction conteúdo final é como se transações fossem realizadas em série sobre o arquivo (serializadas) garante-se uma série possível Sistemas Distribuídos 343 Para melhorar a performance do sistema de arquivos, esquemas de file-caching são implementados pelo mesmo Em file-caching, uma cópia do arquivo, ou parte dele, é mantida mais próxima de quem o está usando, de forma que caso seja necessário seja mais rápido fazer um novo acesso ao arquivo. Considerações: localização da cache propagação da modificação validação da cache Sistemas Distribuídos 344 7

Localização da cache: memória principal do servidor diminui acesso a disco, fácil de implementar, transparente ao usuário, fácil de manter consistência acesso à rede toda vez que tiver que acessar dados disco do cliente diminui o acesso à rede, maior confiabilidade, maior capacidade de armazenamento - bom se trabalha com transferencia de arquivo não funciona em estações sem disco memória principal do cliente diminui o acesso à rede E diminui acesso a disco, permite estações sem disco ruim se cache muito grande for necessária Tannenbaum: entre cache na mem. Servidor ou disco do cliente a primeira é quase sempre mais rápida e simples de implementar Sistemas Distribuídos 345 Localização da cache Memória principal do cliente Disco do cliente (opcional) Memória principal do servidor rede Disco do servidor Sistemas Distribuídos 346 8

Cache na memória do cliente: abordagens cache dentro do processo Processo cache hit cache hit do usuário cache hit Gerente de cache No cache server espaço de usuário kernel kernel cache no kernel cache miss cache miss cache miss server server server Sistemas Distribuídos 347 Cache na memória do cliente: abordagens cache no processo biblioteca de funções implementa bom se processos individualmente usam mesmo arquivo cache no núcleo overhead de chavear para núcleo cache disponível para mais de um processo cache manager process mantém o (micro)kernel do sistema livre de código de serviço aumenta overhead - e se páginas do gerente de cache são jogadas para memória virtual (swap?) - necessidade de bloquear de maneira fixa Sistemas Distribuídos 348 9

Problema: quando os dados ficam na cache do cliente, estes podem estar replicados em diversos clientes. Como manter a consistência dos dados? Propagação das modificações: write-through: quando a cache é modificada, a modificação é enviada imediatamente para o servidor para atualizar a cópia principal bom para leituras, mas péssimo para escritas delayed-write: quando uma escrita é feita na cache, o cliente só atualiza a cache e marca a mesma como modificada; algum tempo após todas modificações são agrupadas e encaminhadas ao servidor quando dados são retirados da cache escritas periódicas quando o arquivo é fechado - bom para session semantics Sistemas Distribuídos 349 Um arquivo pode estar em diversas caches ao mesmo tempo. Quando os dados que estão nas caches devem ser atualizadas? esquemas de validação de cache: iniciada pelo cliente - cliente contata servidor para saber se sua chache está atual: verificar antes de cada acesso: anula vantagens de caching verificação periódica: semântica difusa - dados dependentes do tempo verificação na abertura: bom para session semantics Sistemas Distribuídos 350 10

esquemas de validação de cache: iniciada pelo servidor servidor mantém lista de clientes com arquivos abertos e o modo evitar conflitos (r,r ok) (r,w Nok) (w,w Nok ) nega abertura, enfilera pedido, dinamicamente muda modo de acesso ao arquivo para modo remoto e desabilita caches complexidade, servidores tem que ter estado Sistemas Distribuídos 351 Replicação de arquivos Um arquivo replicado é um arquivo que possui diversas cópias Cada cópia pode estar em um servidor diferente Vantagens: aumenta disponibilidade, aumenta confiabilidade, melhora tempo de resposta, reduz tráfego, melhora escalabilidade Tipos de replicação de arquivos: replicação explícita: programador controla réplicas replicação preguiçosa: transparente ao programador; sistema decide quando replicar e quantas réplicas são necessárias sistema gera réplicas em background, quando não há outras tarefas replicação usando grupo: réplicas geradas no mesmo momento Sistemas Distribuídos 352 11

servidor grupo S1 cliente S1 S1 1 mais tarde 2 agora C S2 C S2 C S2 mais tarde 3 S3 S3 S3 Explícita Preguiçosa Grupo Sistemas Distribuídos 353 SISTEMA DE ARQUIVOS DISTRIBUÍDOS Network File System - NFS Sistemas Distribuídos 354 12

(NFS) Network File System (NFS) Desenvolvido pela Sun Microsystem para ser utilizado em ambientes Unix Diversos outros fabricantes suportam o mesmo: Linux, Windows, Independente de hardware Três apectos importantes: Arquitetura Protocolos Implementação Sistemas Distribuídos 355 (NFS) Arquitetura do NFS Objetivo: ter um conjunto de clientes e servidores compartilhando o mesmo sistema de arquivos Clientes e servidores não precisam estar na mesma rede Cada máquina pode ser cliente e/ou servidor Cada servidor NFS exporta alguns de seus diretórios para clientes Se um diretório é exportado, então toda subárvore é exportada No Unix, a lista de diretórios que são exportados se encontra no arquivo /etc/exports (toda vez que o servidor é iniciado estes diretórios são export.) Clientes acessam estes diretórios através de um comando para montá-los, e.g. mount no Unix Quando o cliente monta um diretório remoto ele fará parte de sua estrutura de diretórios Sistemas Distribuídos 356 13

(NFS) Basicamente, um servidor exporta diretórios e clientes montam os mesmos em suas árvores de diretórios de maneira remota Se dois ou mais clientes montam a mesma estrutura (mesmo diretório remoto), os mesmos podem compartilhar arquivos Exemplo: um programa em uma máquina pode criar um arquivo dentro do diretório e outro programa em outra máquina pode ler este arquivo A simplicidade do NFS foi uma de suas melhores características Sistemas Distribuídos 357 (NFS) Protocolos NFS Como um dos objetivos é que os clientes ou servidores possam executar em máquinas/sistemas operacionais diferentes, é importante que o serviço (interface) seja bem definida. NFS possui dois protocolos básicos: um para o processo de montar diretórios remotos um para acesso a diretórios e arquivos Estes protocolos especificam como o servidor e o cliente irão conversar, não importando como eles são implementados. Sistemas Distribuídos 358 14

(NFS) Protocolos NFS - montar diretórios remotos Um cliente envia um caminho (path) para o servidor requisitando permissão para montá-lo na sua hierarquia de diretórios Se o caminho é válido, e o diretório está exported, então o servidor envia de volta um file handle para o cliente Este file handle contém informações a respeito do diretório dosco, i-nodo do diretório, etc. As solicitações seguintes utilizam este file handle Existe a possibilidade deste processo ser feito no boot: shell script /etc/rc automaticamente: automount Sistemas Distribuídos 359 (NFS) Protocolos NFS - acesso a arquivos e diretórios Clientes podem enviar mensagens para o servidor para manipular diretórios, ler e escrever arquivos, acessar atributos, A maioria dos comandos Unix é suportada pelo NFS, mas NÃO as operações de open e close O NFS é conhecido como sendo um servidor stateless, ou seja um servidor que não guarda informações sobre os arquivos que estão em uso Cada mensagem do cliente para o servidor contém todas as informações necessárias para ler ou escrever em um arquivo Vantagem: se o servidor pára de funcionar, os clientes não necessariamente vão perder informações Sistemas Distribuídos 360 15

(NFS) Implementação do NFS - estrutura de níveis cliente servidor Nível de chamada de sistema Nível de sistema de arquivos virtual (VFS) Sistema operacional local Disco local Cliente NFS Mensagem para o servidor Nível de sistema de arquivos virtual (VFS) Servidor NFS Mensagem do cliente Sistema operacional local Sistemas Distribuídos 361 Disco local rede (NFS) Implementação NFS - funcionamento O nível de chamada de sistema trata chamadas como open, close, read, Após verificar a chamada, a mesma é enviada para o VFS O VFS é responsável por conter uma entrada em uma tabela para cada arquivo aberto, similar a tabela de i-nodes do Unix. Estas entradas são chamadas de v-nodes O v-node indica se um arquivo é local ou remoto Sistemas Distribuídos 362 16

(NFS) Funcionamento - exemplo Abrir um arquivo remoto (open) quando o arquivo vai ser acessado verifica-se que o mesmo é um arquivo remoto, através do v-node do diretório onde o arquivo encontra-se o VFS pede então ao cliente NFS para abrir o arquivo o cliente NFS pede ao servidor NFS o file-handle do arquivo e cria um r- node relativo ao mesmo, e informa ao VFS que atualiza sua tabela de v- nodes Repare que nada fica armazenado no servidor Sistemas Distribuídos 363 (NFS) Melhorando performance: Read ahead ou caching Read ahead Transferências entre cliente e servidor são feitas em geral em blocos de 8K Quando o cliente recebeu o bloco que necessita, automaticamente o próximo bloco é requisitado Uma política análoga é feita para write; se write escreve menos de 8K, então dados são armazenados até que o bloco seja completado; ou quando o arquivo é fechado Sistemas Distribuídos 364 17

(NFS) Caching NFS associa um timer com cada cache Quando o timer expira, a cache é descartada (normalmente o timer é de 3 seg. para blocos de arquivos e 30 seg. para blocos de diretórios) Quando se tenta abrir um arquivo que está na cache uma mensagem é enviada para o servidor para saber se o arquivo foi modificado se foi, então atualiza dados Cada 30 seg. um timer expira, e se algo foi escrito na cache esta é enviada de volta para o servidor Sistemas Distribuídos 365 18