DFS permitem que múltiplos processos compartilhem dados de várias localizações, fundamentais em SD; têm o mesmo propósito dos sistemas de arquivos locais em sistemas não distribuídos, construídos em cima deles, porém exige mecanismos adicionais relacionados à comunicação, sincronização, replicação, consistência, etc. Exemplo: NFS e AFS

ARQUITETURAS

Arquitetura Cliente-Servidor: cada servidor de arquivo distribuído fornece uma visão padronizada de seu sistema de arquivos local; os clientes acessam arquivos armazenados em um servidor através de um protocolo de comunicação (RPC).

DFS Baseados em Cluster: utilizados para aplicações paralelas, onde os arquivos são distribuídos entre vários servidores. File-striping: distribuir um único arquivo em múltiplos servidores.

Processos: única diff → diferentes tipos de processos cooperando, como serv. de armaz. e gerenc. de arq.

Comunicação: muitos DFS são baseados em RPC, visando tornar o sistema independente dos SO subjacentes, das redes e dos protoc. de transp..

NFSv3 — 4 oper.: Request LOOKUPResponse Lookup name; Request READResponse read file data;

NFSv4 — 2 oper., procedimento composto: Request LOOKUP, OPEN, READ → Response Lookup name, open file, read file data; Suporte a callback: permite serv. fazer chamada de RPC p/ o cliente.

Naming: nome geral. organizados em um namespace hierárquico. No NFS, os clientes têm acesso transparente a um sistema de arquivos remoto, permitindo montar um sistema de arquivos remoto em seu próprio sistema de arquivos local.

Mounting/Export: serv. NFS exporta partes de seu sistema de arquivos local, permitindo que clientes montem e acessem essas partes localmente. A montagem no cliente associa uma parte do sistema de arquivos remoto ao seu próprio sistema. Quando o cliente acessa arquivos nesse namespace montado, são feitas chamadas remotas ao servidor para acesso aos arquivos. Esse processo pode ser aninhado, com partes do namespace montado tb sendo montadas de outros servidores.

Automounting: montar um namespace remoto sob demanda, ou seja, quando é acessado no cliente e não na inicialização do sistema.

Sincronização: nos SD a semântica (UNIX, sessão, arq. imutáveis, transações) do compartilhamento de arquivos se torna um pouco complicada quando questões de desempenho estão em jogo.