Sistemas de Arquivos Distribuídos. Bruno M. Carvalho Sala: 3F2 Horário: 35M34

Documentos relacionados
Sistemas de arquivos distribuídos. ECO036 - Sistemas Paralelos e Distribuídos

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

Protótipo tipo de um sistema de arquivos para ambiente distribuído

Sistema Distribuído. Sistema Distribuído. Aplicações Distribuídas. Conceitos Básicos

Caracterização de Sistemas Distribuídos

Sistemas de Arquivos. (Aula 23)

Curso de Sistemas Distribuídos

Processamento Paralelo

Sistemas Distribuídos

Sistemas Distribuídos Aspectos de Projeto de SD. Aspectos de Projeto em SD. Transparência 14/03/12. ! Transparência; ! Abertura; !

SISTEMAS DISTRIBUÍDOS

Sistemas de Ficheiros Distribuídos. Pedro Ferreira DI - FCUL

Sistemas Distribuídos. Capítulo 7 - Aula 16

Programação Distribuída. Metas de um Sistema Distribuído

Implementação de Diretórios (1)

Sistemas Distribuídos. Aleardo Manacero Jr.

Características de Sistemas Distribuídos

Sistemas da Informação. Banco de Dados I. Edson Thizon

Características de Sistemas Distribuídos

Sistemas Distribuídos

Sistema de arquivos Distribuidos

Desenvolvimento de Aplicações Distribuídas

Características de Sistemas de Arquivos Distribuídos Serviços de nomes e diretórios

Memória Compatilhada Distribuída. Bruno M. Carvalho Sala: 3F2 Horário: 35M34

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

Sistemas Distribuídos. abril de 2015

O que faz? De tudo um pouco.

Organização e Arquitetura de Computadores I

AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES

Universidade Federal do Maranhão

UNIVERSIDADE ESTADUAL DE PONTA GROSSA SETOR DE CIÊNCIAS AGRÁRIAS E DE TECNOLOGIA DEPARTAMENTO DE INFORMÁTICA

Aula 04. Evandro Deliberal

Sistemas Distribuídos

Introdução aos Sistemas Distribuídos

Sistemas de Arquivos. Capítulo 6. Sistemas Operacionais João Bosco Junior -

SIDs: ARQUITETURA DE SISTEMAS DISTRIBUÍDOS

Sistemas Distribuídos

Visões Arquiteturais. Visões Arquiteturais

Matéria Introdutória. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Rede de computadores Cliente- servidor. Professor Carlos Muniz

Banco de Dados e Aplicações em Negócios: Introdução.

slide Pearson Prentice Hall. Todos os direitos reservados.

Sistemas Operacionais. Prof. André Y. Kusumoto

Conceitos de Sistemas Distribuídos

Download e Upload. De forma muito objetiva podemos dizer que um arquivo possui pelo menos três características que os definem:

Projeto de Sistemas Distribuídos. Considerações

Sistemas de Arquivos. Diretórios Gerenciamento de Espaço em Disco

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

Redes P2P Gnutella e Simuladores

Metas de um Sistema Distribuído

Sistemas Operacionais. Entrada/Saída

Alcides Pamplona

Sistemas Operacionais

Técnico Subsequente em Redes de Computadores Introdução a Sistemas Abertos (ISA)

SSC510 Arquitetura de Computadores. 8ª aula

Banco de Dados. SGBDs. Professor: Charles Leite

Sistemas de Computação. Gerenciamento de memória

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ACESSO, ATRIBUTOS E OPERAÇÕES COM ARQUIVOS PROFESSOR CARLOS MUNIZ

Universidade Federal da Paraíba CCEN Departamento de Informática Disciplina: Banco de Dados. Aula 1 Introdução a Banco de Dados

Arquitetura Cliente-Servidor Generalizada com identificação de tiers. Arquitetura Cliente-Servidor Generalizada com identificação de tiers

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

Computação Distribuída

Formação de DBAs SQL Server 2008

INTRODUÇÃO A SISTEMAS DE ARQUIVO E GERENCIA DE MEMÓRIA

TÓPICOS EM COMPUTAÇÃO APLICADA

Quando Distribuir é bom

Capítulo 11 Sistemas de Arquivos

Desenvolvimento de Aplicações Distribuídas

ÍNDICE. Redes de Computadores - 1º Período de Cap 12 - Fls. 1

Sistema de arquivos. Adriano J. Holanda 24/5/2016

Introdução (hardware) INTRODUÇÃO Hardware. Introdução (hardware) Introdução (hardware) Introdução (hardware) Introdução (hardware)

FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CAPÍTULO 5. Cristina Boeres

RPC e RMI. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo

Quando Distribuir é bom

O que é um sistema distribuído?

Sistemas Operacionais

Sistemas Operacionais

Correção de Erros. Erros de memória de semicondutores podem ser:

Ambientes de Execução

Vamos fazer um pequeno experimento

Memória Compartilhada e Distribuída. _ Notas de Aula _ Prof. Tiago Garcia de Senna Carneiro DECOM/UFOP

IBILCE - Instituto de Biociências, Letras e Ciências Exatas

Bancos de Dados Distribuídos. Bancos de Dados Distribuídos. Conteúdo. Motivação. Motivação. Introdução aos BDs Distribuídos.

FUNDAMENTOS DE REDES DE COMPUTADORES Unidade 5 Camada de Transporte e Aplicação. Luiz Leão

Disciplina: Sistemas Operacionais

Introdução. descrever os tipos de interfaces e linguagens oferecidas por um SGBD. mostrar o ambiente de programas dos SGBD s

SSC0611 Arquitetura de Computadores

Data Warehouse ETL. Rodrigo Leite Durães.

Thread. Thread. Sistemas Operacionais. Leonard B. Moreira. UNIVERSIDADE ESTÁCIO DE SÁ fevereiro, / 41

Sistemas de Arquivos. Pedro Cruz. EEL770 Sistemas Operacionais

SSC0611 Arquitetura de Computadores

Sistemas Operacionais

Data and Computer Network Endereçamento IP

Instalação e Configuração de Servidores Linux Server Partições e Sist. de Arquivos. Prof. Alex Furtunato

histórico migração de processos em sistemas operacionais distribuídos balanceamento de carga de CPU otimização do uso da rede

ARQUITETURA DE SISTEMAS OPERACIONAIS. VISÃO GERAL DE UM SISTEMA OPERACIONAL Prof. André Luís Alves E. M. DR. LEANDRO FRANCESCHINI

Sistemas Distribuídos

Projeto de Sistemas Distribuídos. Considerações

2.1 NesC Seguem alguns dos principais desafios impostos à linguagem NesC:

Replicação. Protocolos. June 2, 2010

Transcrição:

Sistemas de Arquivos Distribuídos Bruno M. Carvalho Sala: 3F2 Horário: 35M34

Introdução Serviço de arquivos descreve os serviços oferecidos pelo sistema de arquivos aos clientes Servidor de arquivos processo executado em alguma máquina e que implementa o serviço de arquivos Mais de um servidor de arquivo pode estar executando simultaneamente, inclusive com serviços diferentes, por exemplo um servidor UNIX e um MS DOS

Projeto de Sistemas de Arquivos Distribuídos Sistema de arquivos pode ser dividido em: Serviço de arquivos implementa operações em arquivos como leitura e escrita Serviço de diretórios implementa criação e manipulação de diretórios e adição e deleção de arquivos de diretórios

Interface do Sistema de Arquivos O que é um arquivo? (sequência de bytes) Um arquivo pode ter atributos, que são pedaços de informação sobre o arquivo que não são parte dele (tamanho, dono, data) Serviço de arquivos descreve primitivas para que se possa alterar algumas das primitivas Arquivos podem ou não (imutáveis) ser modificados após criação Proteção é implementada usando se capacidades ou listas de controle de acesso

Interface do Sistema de Arquivos Capacidades são tickets que descrevem acesso permitido do usuário para cada objeto Listas de controle de acesso são associadas com cada arquivo e descrevem quem pode acessar or arquivos e como (bits de controle do UNIX é uma lista de controle de acesso simplificada) Serviços de arquivos podem usar modelos upload/download (arquivos são transferidos por inteiro) ou de acesso remoto (partes dos arquivos são transferidas)

Interface do Servidor de Diretórios Serviço de diretórios define um alfabeto e sintaxe para criação de nomes de arquivos e diretórios Implementados hierarquicamente, geralmente permitem a criação de links para diretórios ou arquivos arbitrários, que podem gerar grafos de diretórios (isto é, podem conter ciclos) O ideal é que todas as máquinas tenham mesma visão do sistema de arquivos. Isso geralmente não é possível quando se usa montagem remota Existe ou não um diretório raiz (root) global?

Transparência de Nomes A idéia de transparência de localização é que o nome completo do arquivo não tenha nenhuma parte que indique onde o arquivo está fisicamente Sistema onde arquivo pode ser relocado sem que mude de nome possui independência de localização Abordagens máquina:nome e montagem remota de arquivos são simples mas não implementam espaço único de nomes

Nomes em Dois Níveis Arquivos possuem nomes simbólicos e nomes binários, e diretórios são responsáveis por mapear os nomes simbólicos em binários Nome binário varia de sistema a sistema, por exemplo, I nodes em UNIX, ou pode indicar um servidor mais o nome do arquivo (link simbólico) Serviço de diretórios pode mapear nome simbólico em uma capacidade, que contém informações de localização Mapeamento pode retornar mais de uma localização do arquivo

Semânticas de Compartilhamento de Arquivos Necessária sua definição quando mais de um usuário compartilha a mesmo arquivo A semântica UNIX diz que leitura de um arquivo deve retornar valor mais recente do arquivo. Pode ser conseguida em um SD se somente um servidor é usado Baixa performance. Uso de caches melhora performance mas dificulta a manutenção da semântica UNIX Propagar todas as mudanças de volta para o servidor

Semânticas de Compartilhamento de Arquivos Pode se enviar mudanças para o servidor após fechamento do arquivo. Outros processos acessam arquivo antigo enquanto isso não acontece. É a chamada semântica de sessão Uso de arquivos imutáveis Uso de transações atômicas garante que operações serão efetuadas sem interferências de outras transações

Implementação Usos de arquivos em um SD pode dar pistas importantes de como implementar sistema de arquivos Experimentos feitos em um sistema acadêmico mostraram que: 1. A maioria dos arquivos são pequenos 2. Leitura é muito mais comum que escrita 3. Acessos randômicos em leituras e escritas são raros 4. A maioria dos arquivos tem uma duração curta 5. Compartilhamento de arquivos não é comum 6. O processo médio usa poucos arquivos 7. Existem classes de arquivos diferentes com propriedades diferentes

Usos de arquivos Será que essa observações podem ser extrapoladas para outros tipos de sistemas ou SDs? A dominância de pequenos arquivos sugere que podemos transferir arquivos inteiros de uma vez e prover mecanismos para transferência de pedaços de grandes arquivos. (otimize o caso comum!) Arquivos criados são mantidos no cliente e caso não sejam deletados, são enviados ao servidor Pouco compartilhamento de arquivos sugere uso de caches nos clientes

Estrutura do Sistema Como servidores de arquivos e diretórios são organizados internamente Pode haver ou não distinção entre servidores e clientes Serviços de arquivos e diretórios podem ser combinados em um ou não (menos comunicação x flexibilidade) Servidores com ou sem estado (informações dos processos que estão acessando os arquivos)

Estrutura do Sistema Servidores sem estado: Mais tolerantes a falhas Não precisam de chamadas OPEN/CLOSE (reduz número de mensagens) Não gastam espaço no servidor com tabelas Não limitam número de arquivos abertos Não tem problema caso cliente falhe Servidores com estados armazenados em uma tabela: Requerem mensagens menores Tem melhor performance Podem ler antecipadamente São mais fáceis de se implementar idempotência Pode se bloquear arquivos

Caching Caching no lado do servidor e do cliente Qual é a unidade que a cache gerencia? Qual algoritmo de troca na cache? Onde colocar a cache? Dentro de cada processo: não permite compartilhamento com outros processos No kernel: chamada para o kernel é necessária até em acertos na cache Em um processo gerenciador de cache: tem de se evitar que páginas deste processo sejam paged out

Consistência de Caches Métodos para implementar consistência de cache Caches write through: funciona mas não afeta tráfego de escritas Escrita retardada: melhor performance mas semântica é ambígua Escrita no fechamento: implementa semântica de sessão Controle centralizado: implementa semântica UNIX mas não é robusto e não te boa escalabilidade

Replicação Arquivos geralmente são mantidos em mais de um servidor, o que exige replicação Isso é feito por questões de: Confiabilidade Disponibilidade Eficiência Modo de replicação define se sistema é ou não transparente à replicação Replicação explícita, prequiçosa ou usando grupos

Replicação Na replicação explícita o programador controla o processo de criação de arquivos com o cliente enviando mensagens para os servidores envolvidos Na replicação preguiçosa o cliente envia mensagens para um servidor mestre, que quando possível (daí o nome preguiçosa), envia mensagens para os outros servidores Na replicação usando grupos, as mensagens para todos os servidores são enviadas simultaneamente

Protocolos de Atualização Atualizações dos arquivos criados no processo de replicação podem ser feitas usando se replicação de cópia primária ou votação Todas as atualizações devem ser feitas em um servidor mestre, enquanto que leituras podem ser feitas usando se qualquer servidor No algoritmo de votação cliente tem de adquirir permissões de escrita de vários servidores (mais robusto)

Protocolos de Atualização Definição de quóruns de leitura N R e de escrita N W tal que N W + N R > N, onde N é o número total de servidores Como leituras são muito mais frequentes que escritas, geralmente N R é um número pequeno e N W é quase N Caso alguns servidores não estejam funcionando fica mais difícil de se obter quoruns de escrita, uma variação do algoritmo permite que servidores fantasmas votem em quóruns de escrita, desde que pelo menos um servidor seja real. Ao retornar ao funcionamento, o servidor deve obter um quórum de leitura e se atualizar antes de voltar ao funcionamento normal

Conclusões Estações de trabalho tem ciclos disponíveis Usar cache quando possível Explore as propriedades de uso dos arquivos Minimize mudanças que abranjam o sistema todo Confie no menor número possível de entidades Use batch quando possível

Tendências Novo hardware: Memória mais barata (servidor com armazenamento em memória?!!!!) Backups em meios óticos Fibra ótica Escalabilidade: Partição em unidades menores Semânticas mais relaxadas, como a semântica de sessão

Tendências Usuários móveis. Como tratar número crescente de usuários com laptops, PDAs interagindo com SD: Banda estreita ou inexistente Caches, como manter consistência Ressincronização com sistema Tolerância a falhas: Requerimentos tendem a aumentar com usuários nãoespecialistas