Network File System. Terminologia do NFS



Documentos relacionados
CST em Redes de Computadores

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

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

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

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

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

Considerações no Projeto de Sistemas Cliente/Servidor

Fundamentos de Sistemas Operacionais

Sistemas Distribuídos

MODELO CLIENTE SERVIDOR

Entendendo como funciona o NAT

Sistemas Operacionais

Arquitetura TCP/IP. Parte IV Mapeamento de endereços IP em endereços físicos (ARP) Fabrízzio Alphonsus A. M. N. Soares

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

Aula 01 Visão Geral do Linux

SISTEMA DE ARQUIVOS DISTRIBUÍDOS

SISTEMAS DISTRIBUIDOS

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

Capítulo 8 - Aplicações em Redes

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

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

Servidor Proxy armazenamento em cache.

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

Prof. Marcelo Cunha Parte 5

Sistemas de Arquivos. Sistemas Operacionais - Professor Machado

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

CSAU Guia: Manual do CSAU 10.0 como implementar e utilizar.

Sistemas Operacionais

Projeto: Camada Independente de Dispositivo

USO GERAL DOS PROTOCOLOS SMTP, FTP, TCP, UDP E IP

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


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

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

Documentação Symom. Agente de Monitoração na Plataforma Windows

SISTEMAS DISTRIBUÍDOS

ADMINISTRAÇÃO DE SISTEMAS OPERACIONAIS SERVIÇOS IMPRESSÃO. Professor Carlos Muniz


REDES DE COMPUTADORES

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

Rede d s d e d Com o pu p t u ado d r o es Conceitos Básicos M d o e d los o de d Re R de d s:

Guia de Conectividade Worldspan Go Res! A V A N Ç A D O

Sistemas Distribuídos RPC x RMI. Edeyson Andrade Gomes

ACL Linux. O que são ACLs e por que usá-las?

Sistemas Operacionais: Sistema de Arquivos

Redes de Computadores Aula 3

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

Redes de Computadores II INF-3A

Sistemas Operacionais

Configurando um Servidor de Arquivos SAMBA. Prof. Armando Martins de Souza

Conexão rápida entre dois computadores em uma plataforma Linux

Prof. Samuel Henrique Bucke Brito

UNIVERSIDADE. Sistemas Distribuídos

Capítulo 6 Sistemas de Arquivos

Linux Network Servers

1.1 Porque um nível de aplicação proxy?

O que são DNS, SMTP e SNM

Arquitetura de Rede de Computadores

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

SMTP, POP, IMAP, DHCP e SNMP. Professor Leonardo Larback

AULA 03 MODELO OSI/ISO. Eduardo Camargo de Siqueira REDES DE COMPUTADORES Engenharia de Computação

Redes de Computadores

03/11/2011. Apresentação. SA do Linux. Sistemas de Arquivos. Curso Tecnologia em Telemática. Disciplina Administração de Sistemas Linux

ADDRESS RESOLUTION PROTOCOL. Thiago de Almeida Correia

Sistemas Distribuídos

Redes de Computadores. Protocolos de comunicação: TCP, UDP

Redes de Computadores

Sistemas Distribuídos

Para funcionamento do Netz, alguns programas devem ser instalados e alguns procedimentos devem ser seguidos. São eles:

Sistemas Operacionais de Rede. Configuração de Rede

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo

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

DarkStat para BrazilFW

Teleprocessamento e Redes (MAB-510) Gabarito da Segunda Lista de Exercícios 01/2010

Um Driver NDIS Para Interceptação de Datagramas IP

SISTEMAS OPERACIONAIS II ESPECIFICAÇÃO CAMADA INDEPENDENTE

Na Figura a seguir apresento um exemplo de uma "mini-tabela" de roteamento:

Documento de Análise e Projeto VideoSystem

INDICE 1. INTRODUÇÃO CONFIGURAÇÃO MÍNIMA INSTALAÇÃO INTERLIGAÇÃO DO SISTEMA ALGUNS RECURSOS SERVIDOR BAM...

Manual de Administração DPS Printer 2.1 NDDigital S/A - Software

REDES DE COMPUTADORES E TELECOMUNICAÇÕES MÓDULO 16

Lista de Erros Discador Dial-Up

Exercícios de revisão V2. FAT: 300 GB / 2KB = 150MB X 8 bytes (64 bits / 8) = 1.2GB

3. Comunicação em Sistemas Distribuídos

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

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

Prof. Luiz Fernando Bittencourt MC714. Sistemas Distribuídos 2 semestre, 2013

OURO MODERNO Web Designer APOSTILA DE EXEMPLO. (Esta é só uma reprodução parcial do conteúdo)

Sistema de Arquivos EXT3

Tipos de Servidores. Servidores com estado

Configuração de um servidor FTP. Campus Cachoeiro Curso Técnico em Informática

Sistemas Distribuídos RPC

Cap 03 - Camada de Aplicação Internet (Kurose)

CONHECIMENTOS ESPECÍFICOS TÉCNICO DE LABORATÓRIO / ÁREA INFORMÁTICA

Transcrição:

Network File System Network File System é um sistema que permite a montagem de sistemas de arquivos remotos em uma rede TCP/IP Desenvolvido pela SUN nos anos 80 Baseado na especificação RFC1094 Originalmente baseado no protocolo UDP Extensões posteriores (RFC 1913) Especifica uso com o TCP Assim, computadores em uma rede local podem compartilhar seus sistemas de arquivos como se fosse um único sistema de arquivos global Acesso a arquivos remotos é idêntico ao acesso a arquivos locais 1 Terminologia do NFS Servidor NFS Um servidor de arquivos NFS determina os sistemas de arquivos locais que serão compartilhados com outras máquinas Cliente NFS Um cliente NFS monta os sistemas de arquivos compartilhados através da rede e os trata como se fossem locais Cliente e servidor se comunicam através de RPC (Chamada Remota de Procedimentos) 1!

NFS lida com heterogeniedade Foi projetado para ser usado para diferentes sistemas operacionais e arquiteturas de rede (muito comum em uma LAN) O protocolo usa Remote Procedure Call (RPC) e uma External Data Representation (XDR), que provêm interfaces independentes de implementação (sistemas e linguagens) 3 Benefícios do NFS Arquivos compartilhados pela rede Os arquivos estão localizados no servidor Ficam disponíveis para vários usuários simultaneamente Softwares comuns Pacotes de software podem ser compartilhados Diminui o espaço gasto em disco e facilita a gerência. Os arquivos remotos parecem ser locais A distribuição de arquivos é transparente para o usuário e as aplicações Arquivos remotos são montados na árvore de diretórios local 2!

Sistema de Arquivos Distribuído através do NFS servidor disponibiliza (exporta) o sistema através do arquivo /etc/exports Cliente precisa montá-lo através do comando mount ou com uma entrada do arquivo /etc/fstab Arquitetura do NFS cliente servidor Chamda de sistema! Chamda de sistema! Virtual File System! FS local! Cliente NFS! RPC! Req. p/ servidor! Virtual File System! FS local! Servidor NFS! RPC! Req. d/ cliente! Rede Local! 3!

Funcionamento do NFS cliente Chamda de sistema! Virtual File System! FS local! Cliente NFS! RPC! Req. p/ servidor! Virtual File System: Mantém tabela de v-nodes para cada arquivo aberto Cada v-node: indica o tipo de sistema de arquivo e aponta ou para um i-node do disco local ou para um r-node (para um arquivo remoto) Rede Local! Virtual File System / vnodes Cada arquivo e diretório em uso é representado por um objeto na memória do núcleo: vnode. É um struct padrão com atributos do arquivo/dir. Cada FS específico mantém cache de vnodes 9 4!

Vnodes: operações e atributos Operações em vnodes são mapeadas para operações correspondentes nos FS específicos. Protocolo NFS possui uma operação para cada operacão em vnodes, com tipos similares de argumentos e resultados.! 10 Percorrendo pathnames Cada pathname ( /usr/local/abc ) precisa obter o v-node (do objeto abc ) Isso é feito por uma sequência de vop_lookup que descem a árvore de vnode Exemplo: open ( /usr/local/abc )! vp = get vnode de / (root)! vp->vop_lookup(&cvp, usr );! vp = cvp;! vp->vop_lookup(&cvp, local );! vp = cvp;! vp->vop_lookup(&cvp, abc );! considerando: mounting points Obtendo vnode do rood ou durrend dir Guardando em cache traduções nome -> vnode Resolvendo soft symbolic links 11 5!

Protocolo NFS Montagem de um volume remoto Através do comando mount:!mount servidor.com.br:/misc/export /misc/local! Adicionar entrada em /etc/fstab, indicando o servidor, co path e o mount point local server:/usr/local/pub!/pub!nfs rsize=..,wsize=..,! Usando autofs (o automout daemon, só faz o mount quando houver o acesso ao arquivo ou diretório) Arquivo /etc/auto.master: para cada mount point há um arquivo de map (map file), que indica o diretório remoto e as opções de montagem O mount() no cliente gera um RPC MOUNT REQUEST para servidor, que é respondido com um RPC MOUNT REPLY (que retorna um file handle do diretório/volume montado) 12 Protocolos NFS NFS é stateless (não é mantida qualquer informação dos clientes no servidor) Não existe uma requisição do cliente para abrir um arquivo (não suporta open/close), senão servidor precisaria saber quais estão abertos (e em qual posição) As requisiçõs LOOKUP, READ e WRITE são idempotentes (contém todas as informaçoes necessárias) Se houver falha, cliente nõareceberá a confirmação e precisará repetir a operacão! 6!

Protocolos NFS Protocolo de Acesso ao Arquivo: Requisições GETATTR e LOOKUP Cliente faz o parse hierarquico do caminho fazendo várias requisições de GETATTR e LOOKUP Se o caminho indicado é válido e o diretório tiver sido exportado pelo servidor, então o servidor responde com um handle file handle = (file system type, volumeid, # i-node, inf.de segurança) O handle é um token de 32 bits que inclui todas as informações necessárias para identificar o arquivo/objeto no servidor e obter um ponteiro para ele. Cliente NFS cria um v-node apontando para um r-node open( )! Exemplo:!! /user/public/bill/nfs_tutorial.txt montado em nfs/bill!! Descobre IP servidor e faz consulta sobre a porta de acesso ao nfsd! Obtém os atributos de arquivo para /user/bill! Verifica se subdiretorio public está disponível! Verifica arquivo procurado existe! Obtém os atributos do arquivo requisitado! 15 7!

Leitura/Escrita Remota Protocolo NFS: Leitura Cliente acessa um arquivo em um servidor NFS: Consulta o v-node local e obtém o file handle Requisições de leitura/escrita carregam o file handle, e o offset Executa vários READ RPC para o servidor Recebe como resposta os blocos Faz o cache dos blocos O Servidor NFS: Recebe a requisição RPC, que é direcionada para o rpc.nfsd Se o v-node, aponta para i-node, atende localmente a requisição fazendo acesso ao disco local Se v-node aponta para r-node, faz-se uma requisição para o servidor correto (como se fosse um cliente) 17 8!

read()! return! 18 Caching Clientes guardam blocos de dados e diretórios em uso no cache (para evitar latência do RPC na rede) Se cliente A têm um bloco de um arquivo remoto F em seu cache, e cliente B modifica esse arquivo F, não há notificação do servidor para A invalidar/atualizar o bloco no seu cache Cada bloco vem com um timestamp da última modificação do arquivo no servidor. Após um invalidation_period, antes de buscar um novo bloco (ou na re-abertura do arquivo), o timestamp é comparado com o do servidor, e se diferir, todos os blocos do cache cliente são invalidados, e reacessados O Servidor também não confirma a conclusão de um write (i.e. quando o dado é alterado no arquivo local) 19 9!

Caching Se um bloco de arquivo é modificado no cache do cliente, é marcado como tal e escalonado para ser copiado (flush) para o servidor Flush é feito em intervalos de tempo mas garantidamente antes de um close() Entradas de diretório: são cachedas para leitura, mas são atualizadas diretamente no servidor Ao abrir um arquivo, o cache do seu diretório pai também é validado Períodos de verificação de coerência de cache: para arquivos (3 seg), para diretórios (30 seg) 20 Transferência de blocos Transferência de blocos em lotes de 8K-16K Busca antecipada para otimizar acesso sequencial 21 10!

Componentes do NFS rpc.portmaster rpc.mountd rpc.nfsd rpc.statd rpc.rquotad mount/umount /etc/exports /var/lock/subsys/nfs Roteia procedimentos remotos para os daemons Monta e desmonta sistemas de arquivos Provê acesso aos arquivos locais Estatísticas Verifica cotas do usuário nos volumes remotos Monta/desmonta sistema de arquivos Arquivos/diretórios compartilhavéis Bloqueia execução de várias cópias do NFS Inicialização Os programas (daemons) do NFS devem ser inicializados com o boot O comando pmap_dump mostra o estado dos daemons RPC (Remote Procedure Calls) do sistema. O script nfs em /etc/rc.d/nfs pode ser usado para interromper, reiniciar, parar ou consultar os programas NFS./nfs [start stop status restart reload] 11!

/etc/exports Arquivo /etc/exports usado pelos daemons mountd e nfsd para determinar quais arquivos poderão ser montados, e por quais clientes Formato do arquivo Em cada linha, uma partição ou (sub)diretório exportado Lista de máquinas clientes (ou domínio) autorizados opções (entre parênteses) indicam qual é o tipo de acesso Exemplo /home *.inf.puc-rio.br (rw), exu.inf.puc-rio.br (ro)! /usr/local 192.168.0.1 (rw)! /etc/hosts.allow e /etc/hosts.deny Indicam quais máquinas na rede podem usar quais serviços do servidor NFS, e quais não podem Serviços são o portmap, mountd, rquotad, statd Quando há acesso por cliente, é verificado se seu endereçoip/nome: está em hosts.allow -> permite acesso Está em hosts.deny -> bloqueia acesso Senão -> permite acesso Exemplo: portmap: 192.168.0.1! mountd: ALL 12!

NFS: Prós & Contras Prós: Aplicação no cliente não precisa saber em qual servidor os arquivos estão (Transparência de localização e de migração) Reduzido overhead de conexões, pois cliente consegue acessar vários arquivos pela mesma conexão NFS permite o acesso a partes do arquivo (ao contrário de FTP e HTTP, que acessam arquivos inteiros) Contras: Servidor NFS confia cegamente que o cliente já verificou o controle de acesso do userid. Não há o uso de credenciais ou senhas. Em redes com alta latência, NFS acaba sendo inviável, por depender do pouco eficiente RPC Dados são transmitidos sem critografia 26 13!