Sistemas de Arquivos Distribuído

May 20, 2019 | Author: Thomaz Barros | Category: Client–Server Model, Cache (Computing), Server (Computing), Computer Architecture, Computing
Share Embed Donate


Short Description

Apresentação breve sobre sistemas de arquivos distribuídos (NFS e HDFS)....

Description

Introdução a Armazenamento Secundário e Sistemas de Arquivos Arquivos Distribuído Distribuído Disciplina: Sistemas Distribuídos Professora: Fávia Delicato Alunos: Thomaz Barros Wagner Vieira Abril, 2014

Agenda 1.

Sistema de Arquivos

2.

Sistemas de Arquivos Distribuído

3.

Network File System (NFS) 1. Introdução 2. Arquitetura 3. Sincronização 4. Consistência de Cache

4.

Google File System (GFS) 1. Introdução 2. Arquitetura 3. Servidor Master 4. Escalabilidade

5.

Hadoop Distributed File System (HDFS) 1. Pressupostos 2. Arquitetura 3. Sincronização e Consitência de Cache

2

Sistema de Arquivos Introdução !

Permite aos usuários criarem arquivos que podem ser persistidos, compartilhados e estruturados, ou seja, organizados internamente.

!

Operações básicas de manipulação de arquivos: ! ! !

!

!

!

Criar – inclui arquivo na estrutura de arquivos; Apagar – exclui arquivo da estrutura de arquivos; Abrir – permite que processos manipulem determinado arquivo; Fechar – encerra a permissão de manipulação de determinado arquivo por parte de um processo. Ler – permite que determinado processo leia dados do arquivo; Escrever – permite que determinado processo modifique o conteúdo do arquivo;

3

Sistema de Arquivos – Definições !

Estrutura de Arquivo ! Field (campo) : elemento básico do dado, que contém um único valor, como um sobrenome de um empregado, uma data ou uma leitura de um sensor; ! Record (registro) : conjunto de campos; (arquivo): conjunto de registros ! File similares;

!

Alguns sistemas de arquivo não contém o conceito de registro.

4

Sistemas de Gerenciamento de Arquivos !

Provêem serviços para usuários e aplicações manipularem os arquivos.

!

Devem cumprir os seguintes objetivos:

1. Satisfazer os requisitos dos usuários

!

Criar, deletar, ler e escrever arquivos; Controlar o acesso aos arquivos; Mover dados entre os arquivos;

!

Recuperação em caso de dano;

!

Acesso aos arquivos através de seu nome;

! !

5

Sistema de Gerenciamento de Arquivos 2. Minimizar o quanto possível problemas de validade, corrupção e perda de dados;

3. Prover o máximo de desempenho em termos de throughput de dados e tempo de resposta ao usuário;

4. Suportar um variado leque de dispositivos de armazenamento secundário;

5. Prover uma inteface de E/S padronizada para os processos executados no sistema operacional;

6. Prover suporte a E/S concorrente;

6

Arquitetura de um Sistema de Arquivos Genérico Programa de usuário

Indexação Métodos de Acesso Indexação Sequencial sequencial

Hashed

E/S lógicas Supervisor de E/S básicas Sistema de arquivo básico Drivers de dispositivos secundários

7

Sistemas de Arquivos Distribuído !

Sistemas de arquivos foram originalmente desenvolvidos para lidar com um único dispositivo.

!

A mudança de como usuários e organizações compartilham arquivos levou ao desenvolvimento de sistemas de arquivos distribuídos;

!

Permitem: ! !

!

Armazenamento remoto de arquivos; Acesso remoto a arquivos;

Exemplos: ! ! ! !

Network File System (NFS); Google File System (GFS); Hadoop Distributed File System (HDFS); Ivy;

8

Network File System !

Utiliza a arquitetura cliente-servidor;

!

Acesso transparente aos arquivos;

!

Indiferente ao sistema de arquivos é utilizado localmente;

!

Modelo de acesso remoto;

Requisições do cliente para o acesso a arquivos

Arquivo permanece no servidor

9

NFS - Arquitetura System call layer

System call layer

Virtual file system (VFS) layer

Virtual file system (VFS) layer

Local file system interface

NFS client

NFS server

RPC client stub

RPC server stub

Local file system interface

10

NFS – Sincronização !

Necessidade de existir uma política de leitura e escrita para evitar problemas quando um arquivo é compartilhado por dois ou mais usuários;

!

Inicialmente, vimos que todas as operações sobre os arquivos eram diretamente encaminhadas para o servidor;

!

Contudo, essa abordagem pode prejudicar o desempenho das operações;

11

NFS – Sincronização !

Na prática, segue-se o seguinte modelo: 1. Arquivo movido para o cliente

Arquivo antigo

Arquivo novo

2. Acessos são feitos no cliente 3. Cliente termina e retorna o arquivo ao arquivo

!

Como controlar quando há modificações simultâneas?

12

NFS – Sincronização !

Uso de um gerenciador de bloqueio;

!

Leitura não é bloqueante por completo;

!

Escrita necessita de bloqueio exclusivo;

!

São quatro operações de bloqueio: !

Lock; Lockt;

!

Locku;

!

Renew;

!

13

NFS – Consistência de Cache Cache de Memória

Aplicação Cliente

Servidor NFS

Cache de disco

14

NFS – Consistência de Cache !

Duas abordagens para Cache: 1. Vimos anteriormente; 1. Arquivo movido para o cliente

Arquivo antigo

Arquivo novo

2. Acessos são feitos no cliente 3. Cliente termina e retorna o arquivo ao arquivo

15

NFS – Consistência de Cache 2. Open Delegation 1. Cliente requisita o arquivo 2. Servidor delega o arquivo

Arquivo antigo Cópia local

3. Servidor revoga delegação

Arquivo atualizado 4. Cliente envia o arquivo

16

Google File System (GFS) !

Acesso paralelo e intensivo de arquivos é uma realidade.

!

Muitos computadores envolvidos em processos de leitura ou escrita de arquivos; !

!

Esses mesmos computadores podem se tornar indisponíveis repentinamente;

Google File System (GFS) vem para solucionar tais problemas.

17

GFS – Introdução !

Focado em arquivos muito grandes (vários gigabytes);

!

Operações de escrita costumam anexar mais dados aos arquivos existentes; !

!

Ao invés de sobrescrever os arquivos existentes;

Sempre em mente que os servidores não são confiáveis;

18

GFS – Arquitetura nome do arquivo, índice do chunk

endereço de contato

Estado do chunk server

Instruções

ID do chunk, faixa

Chunk server

Chunk server

Chunk server

Sistema de Arquivo Linux

Sistema de Arquivo Linux

Sistema de Arquivo Linux

Dados do chunk

A organização de um cluster de servidores do Google

19

GFS – Servidor Master !

Armazena a metadados dos chunks; ! ! !

!

O que acontece se um chunk server falhar? ! !

!

Localização; Label; Quais processos estão ocorrendo.

Exitem réplicas dos chunks em mais de um servidor; “Snapshot” do chunk e procede com uma nova replicação.

Atualizações periódicas do que cada servidor de chunks possui;

20

GFS – Arquitetura / Escalabilidade Chunk 1 Arquivo 1

Chunk Server

Chunk 2 Arquivo 1 Chunk 1 Arquivo 2

Chunk 1 Arquivo 2

Aplicação cliente

Endereço do chunk

Master

Chunk Server

Chunk 1 Arquivo 1

Redundância

Chunk 2 Arquivo 2

Chunk 1 Arquivo 2

Chunk Server

Chunk 1 Arquivo 2 Chunk 2 Arquivo 2

21

GFS – Escalabilidade !

Por que essa arquitetura permite a escalabilidade dos serviços?

!

Maior carga de operações compete aos servidores de chunk, assim o master não é um gargalo;

22

Hadoop Distributed File System (HDFS) !

Um módulo do projeto Apache Hadoop; !

Programa open-source para confiabilidade, escalabilidade e computação distribuída.

!

Fornece acesso de alta taxa de transferência aos dados da aplicação;

!

Projetado para rodar em hardware commodity  / hardware de baixo custo;

!

Minimização do consumo de largura de banda global e latência de leitura.

23

HDFS – Pressupostos !

Base de dados grandes !

Adequado para aplicações Big Data;

Volume Tamanho do Dado

Complexidade dos dados

24

HDFS – Pressupostos !

Falhas de hardware (mais uma norma do que uma exceção);

!

Mover computação é mais barato que mover dados;

!

Portabilidade para diferentes hardwares e plataformas; !

HDFS é construído usando a linguagem Java;

!

Modelo Simples de Coerência: uma vez escrito o arquivo não pode ser alterado;

!

Streaming de dados nos acessos.

25

HDFS – Arquiterura Metadados ops

Metadados (Nome, réplicas, …): home/foo/data, 3, …

NameNode

Cliente

Leitura

Blocos ops DataNodes

DataNodes Replicação

Blocos

Rack 1

Rack 2 Escrita Cliente

Nota: 1/3 da réplica em um bloco, 2/3 em um rack e de 1/3 distribuído uniformemente entre racks restantes.

26

HDFS – Sincronização e Consistência de Cache !

Cache do lado do cliente – arquivo temporário local;

!

Foco na melhora de desempenho;

!

Alocação no DataNode a cada montante de dados equivalente a um bloco HDFS;

!

Quando arquivo é fechado pelo cliente, NameNode efetiva a criação do arquivo e o aloca em dispositivo secundário;

27

HDFS – Protocolo de Comunicação !

Todos os protocolos de comunicação HDFS são camadas em cima do protocolo TCP/IP. !

!

Cliente estabelece uma conexão a uma porta TCP configurável na máquina NameNode. Comunica o Protocolo de Cliente com o NameNode; DataNodes falam com o NameNode usando protocolo de DataNode;

!

RPC abstração envolve tanto ClientProtocol e protocolo DataNode;

!

NameNode nunca inicia um pedido; apenas responde aos pedidos RPC emitidos por DataNodes ou clientes.

28

Introdução a Armazenamento Secundário e Sistemas de Arquivos Distribuído Disciplina: Sistemas Distribuídos Professora: Fávia Delicato Alunos: Thomaz Barros Wagner Vieira Abril, 2014

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF