Sistemas de Arquivos Distribuídos

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais
Advertisements

Sistemas Distribuídos
Sistemas Distribuídos
Bruno M. Carvalho Sala: 3B2 Horário: 35T34
Sistemas distribuídos Metas de Projeto Prof. Diovani Milhorim
Sistemas Distribuídos
Sistemas Cliente/Servidor Introdução
Sistemas operacionais
Sistemas operacionais
Sistemas distribuídos
Barramentos Introdução.
Resumo 1.1) Introdução 1.2) Abordagem Convencional de Arquivos
Sistema de Arquivos - PROTEÇÃO DE ARQUIVOS
Ambientes Operacionais
Processos no Unix e Linux
Arquitetura de Sistemas Operacionais Francis Berenger Machado
Memória Compatilhada Distribuída
Bruno M. Carvalho Sala: 3F2 Horário: 35M34
SISTEMAS DISTRIBUÍDOS
Interação Cliente Servidor
Capítulo 6 Sistemas de Arquivos 6.1 Arquivos 6.2 Diretórios
Concepts and Capabilities
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
Conceitos Básicos Dado: fato do mundo real que está registrado e possui um significado implícito no contexto de um domínio de aplicação Exemplos: endereço,
1 Sistemas Distribuídos - SDI Caracterização de Sistemas Distribuídos. Introdução. Exemplos de Sistemas Distribuídos. Desafios.
Softwares.
ESTRUTURA DE COMUNICAÇÃO DE DADOS
Proteção de Memória O sistema operacional deve impedir que um processo tenha acesso ou modifique uma página do sistema sem autorização. Proteção para páginas.
Fundamentos da Arquitetura de Computadores
Sistemas Operacionais
Sistemas Operacionais
Sistemas Distribuídos
Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Sistemas Distribuídos
Sistemas Distribuídos
Sistemas Operacionais
SISTEMAS OPERACIONAIS I Gerenciamento de Arquivos
SISTEMAS OPERACIONAIS I
Sistemas Operacionais
SGBD Distribuído Lílian Simão Oliveira.
Processos.
Bancos de Dados Estrutura e Funcionamento de um SGBD
Sistemas Operacionais: Sistema de Arquivos
Módulos de um sistema operativo
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Capítulo 10: Interface de Sistemas de Arquivos.
Definição um sistema de BD distribuído consistem em uma rede de várias ocorrências de bases de dados interligadas. característica principal para o usuário,
Subsistema de Entrada e Saída do Kernel
Infra-Estrutura de Software
Integração de Ferramentas CASE
Capítulo 4: Processos.
Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.
Transações Banco de Dados II Aline S Costa 1. TRANSAÇÕES Conjunto de operações que formam uma única unidade lógica de trabalho; Conjunto de instruções.
Engenharia de Controle e Automação Computação Para Engenharia Semana /02/2013 Professor Leomir J. Borba- –
Aula – Sistemas Operacionais
Sistemas de Memória Cache em Multiprocessadores
Sistemas de Arquivos Sistemas Operacionais Profa. Priscila Facciolli
Projeto e Implementação de Sistemas de Arquivos
Sistemas Distribuídos Nadilma Nunes Aula Inicial – Apresentação da disciplina.
Sistemas Distribuídos
Redes e Sistemas Distribuídos II – Cód Prof. MSc. Ronnison Reges Vidal.
Banco de Dados Distribuídos Sílvia Cristina de Matos Soares
Prof. Arthur Projeto Lógico de ComputadoresArquiteturas Avançadas Projeto Lógico de Computadores Prof. Arthur Arquiteturas Avançadas.
Comunicação Multimídia. Sub-sistema de Aplicação Computação colaborativa = CSCW Dimensões de colaboração –tempo trabalho cooperativo assíncrono trabalho.
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas de Arquivos Capítulo Arquivos 6.2 Diretórios 6.3 Implementação do sistema.
Sistema de Arquivos Distribuídos (SAD)- Características Serviços de nomes e diretórios Prof. Dr. Norian Marranghello Grupo 13 Guilherme Eberhart Jorge.
Sistemas Operacionais Sistemas de Arquivos Prof. José Queiroz - ZEQUE.
Estruturas de Sistemas Operacionais. Componentes Comuns do Sistema Administração de Processos Administração da Memória Principal Administração do Armazenamento.
Bruna Cavallero Martins Universidade Católica de Pelotas.
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais FATEC-PB Professor: Gustavo Wagner
Transcrição da apresentaçã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: A maioria dos arquivos são pequenos Leitura é muito mais comum que escrita Acessos randômicos em leituras e escritas são raros A maioria dos arquivos tem uma duração curta Compartilhamento de arquivos não é comum O processo médio usa poucos arquivos 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 NR e de escrita NW tal que NW + NR > N, onde N é o número total de servidores Como leituras são muito mais frequentes que escritas, geralmente NR é um número pequeno e NW é 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: Escalabilidade: 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ão- especialistas