De desempenho: o desempenho da aplicação cliente não poderá ser comprometido enquanto ocorre uma variação dos processos sobre os recursos disponíveis pelos SAD's, isto é, mesmo que haja concorrência no acesso pelos arquivos isso não deve afetar os usuários.
De escalabilidade: os recursos computacionais podem sofrer alterações para abrigar maior poder computacional ou o ingresso de novos servidores sem prejudicar o serviço.
Contra falhas: garantir a disponibilidade dos arquivos ininterruptamente e se ocorrerem falhas o programa cliente não deverá saber como elas serão tratadas.
De replicação: várias cópias dos mesmos arquivos armazenados em locais diferentes para garantir a disponibilidade. A aplicação cliente deverá visualizar apenas uma cópia do mesmo, não necessitando saber a quantidade replicada e o local.[5]
Como o nome fala por si mesmo, alterações feitas por um cliente não devem interferir nas operações de outros clientes, mesmo que esses clientes estejam manipulando o mesmo arquivo.
Quando diversos processos acessam os mesmos dados simultaneamente, é preciso tomar cuidado para que esses processos recebam informações corretas e também para que a consistência do sistema de arquivos não seja afetada.[6]
O SAD deve manter cópias atualizadas dos arquivos em diferentes locais. Essa medida traz algumas benesses como balanceamento de carga, pois mais servidores podem atender a uma determinada requisição, melhora a escalabilidade e tolerância a falhas, pois se caso algum arquivo falhar, ele pode ser requisitado a algum outro servidor que o tenha, retornando a um estado consistente, sem que os clientes tenham conhecimento.
Umas rede Heterogênea, isto é, que possui nós de diferentes tipos, pode ser vantajosa na medida em que cada tipo de tarefa pode ser executada em uma máquina apropriada.[6]
O serviço deve continuar executando mesmo com falhas parciais.Tanto os clientes quanto os servidores de arquivos podem sofrer quedas e romperem a comunicação com os outros nós da rede por intervalos que podem variar entre segundos e até horas. O sistema deve evitar , sempre que possível, que falhas como esta causem uma depreciação muito grande no tempo de resposta aos clientes ou que o serviço seja interrompido.[6]
Só deve haver uma versão disponível de cada arquivo no SAD, ou seja, se algum cliente ler um arquivo X em um momento, e outro cliente ler o mesmo arquivo X em outro momento e/ou outro lugar, se X não foi modificado, ambos os clientes devem visualizar exatamente o mesmo conteúdo.
O SAD deve ter preocupação com permissão (a pessoa que está acessando o arquivo pode fazê-lo?), autenticação (essa pessoa é realmente ela?), privacidade (dados secretos podem ser vistos por outras pessoas?) e integridade (esse dado arquivo foi danificado no transporte?).
O SAD deve fazer todas as atividades listadas nos requisitos acima com um desempenho comparável a, ou melhor que, um sistema de arquivos centralizado, de modo que, mesmo se a carga nos servidores varie constantemente, o funcionamento de aplicações clientes do SAD não sejam muito penalizadas.
A provisão dos serviços oferecidos pelos sistemas de arquivos distribuídos é feita pelo serviço de arquivo e pelo serviço de diretório, que serão abordados a seguir.
O serviço de arquivo é responsável por expor a interface de manipulação dos arquivos, em outras palavras, é a definição dos serviços providos pelo SAD no tocante a manipulação dos arquivos como leitura, escrita e alteração do conteúdo e alguns atributos do arquivo. Esses atributos do arquivo pode ser algo como o dono, tamanho, data de criação, permissões, dentre outros.
Quando o cliente está manipulando um determinado arquivo, o mesmo pode estar completamente copiado e disponível ou qualquer operação será feita via rede. A essas duas abordagens de construção do serviço de arquivo dá-se o nome de cópia remota e acesso remoto respectivamente[7].
Quando a manipulação é feita completamente remota, ou seja sem que nenhuma parte do arquivo seja copiada, o gerenciamento de versões do arquivo é menos complexo, pois toda alteração é feita diretamente no arquivo. A cópia remota será tratada em uma seção posterior, sob o nome de cache.