Onde no sistema de arquivos devo armazenar dados compartilhados?

44

Onde o sistema de arquivos unix é o local convencional para salvar dados não específicos do usuário, por exemplo, dados compartilhados via nfs ou ftp, ou backups?

Eu obviamente poderia criar e usar qualquer pasta arbitrária (como / home / shared, / data ou / var / data), mas estou realmente me perguntando se há alguma diretriz de prática "melhor" ou "comum". O Padrão de hierarquia do sistema de arquivos não especifica um local para dados compartilhados.

Para backups, costumo usar / var / backups, mas como vários cronjobs escrevem para ele, ele deve ser deixado para uso deles?

    
por misterben 07.12.2010 / 11:23

4 respostas

29

Esta questão parece parece ter uma resposta clara no Padrão de Hierarquia do Sistema de Arquivos , que especifica /srv como "contendo [ing] dados específicos do site que são servidos por este sistema ". (3.16.1)

  

Este objetivo principal de especificar isso é para que usuários possam encontrar a localização dos arquivos de dados para determinada   service , e para que os serviços que requerem uma única árvore para dados readonly, dados graváveis e scripts

(minha ênfase)

Nota: "Servido pelo sistema" não se refere necessariamente à Internet. Não precisa nem mesmo significar uma rede. É aplicável até mesmo a um sistema compartilhado. Além disso, as palavras site e serviço devem ser entendidas em seus significados pré-internet. Seu site pode ser "o departamento de física" ou "o escritório de finanças".

Ele continua dizendo:

  

Em sistemas grandes, pode ser útil estruturar / srv por contexto administrativo, como   / srv / physics / www, / srv / compsci / cvs, etc. Esta configuração será diferente de host para host. Portanto, nenhum programa   deve depender de uma estrutura de subdiretórios específica de / srv existente ou de dados necessariamente armazenados em / srv.   No entanto, / srv deve sempre existir em sistemas compatíveis com FHS e deve ser usado como local padrão para   tais dados.

Portanto, você deve estruturar ainda mais seus dados em diretórios como /srv/nfs , /srv/backup e assim por diante.

Eu também devo mencionar que poucas pessoas fazem isso mais. Mas não há uma boa razão para isso não acontecer. A norma não está de modo algum desatualizada.

/var é tradicionalmente usado para coisas como print-spools e log-files, mas também é usado pelo servidor web Apache (nos sistemas Debian de qualquer maneira - SUSE use / srv); Não parece haver consenso se /var é um diretório adequado para dados compartilhados. Mas se você decidir usá-lo, não terá arrependimentos, tenho certeza.

Note também que a resposta de Karthick não está de forma alguma errada. O FHS diz que / srv "deve ser usado como o local padrão para tais dados ", mas o padrão deixa algum espaço para sua própria preferência, dependendo de como você interpreta os termos.

    
por Stefano Palazzo 07.12.2010 / 13:55
12
  • Os dados específicos de não usuários podem ser armazenados em / usr / local / var para que eles não acabem em um compartilhamento de novos trabalhos.
  • Tudo o que não está em ../local/ .. tem permissão para acabar em um compartilhamento nfs, portanto, se você quiser fazer o download de dados de um compartilhamento nfs, verifique se eles estão armazenados localmente no disco rígido da máquina.
  • Em seguida, você deve escolher um caminho com ... / local / .. nele ... o restante depende da natureza dos dados, do tipo dele. Pode ser / local / var ou / local / tmp, etc.

Hierarquia do sistema de arquivos:

Também dê uma olhada nisto

    
por karthick87 07.12.2010 / 12:07
5

Eu não acho que o FHS defina qualquer lugar para dados de usuários compartilhados. É até os usuários onde eles querem armazenar dados compartilhados. Eu costumo usar /usr/local/shared ou /home/shared .

    
por binW 07.12.2010 / 12:35
1

Eu vi que /export costumava servir com nfs e /mnt costumava montar um compartilhamento nfs localmente, em um ambiente corporativo, como sugerido na documentação do NFS, um padrão que eu suspeito que veio originalmente do Sun OS, mais tarde renomeado Solaris.

O arquivo /etc/exports nomeia os volumes exportados e o diretório /exports os serve aos usuários remotos, que os montam em /mnt . O host do servidor também pode montar esses mesmos compartilhamentos em /mnt usando o mesmo daemon nfs para o uso de quaisquer clientes ou processos executados localmente no servidor, para manter a compatibilidade com quaisquer hosts remotos e talvez reter a funcionalidade de nivelamento de carga, cotas, etc.

Isso é o mais próximo possível de um "padrão". Note que /export não está no FHS, portanto /export foi adicionado independentemente, então presumivelmente ninguém está satisfeito com /srv . Provavelmente por causa da possível confusão com 'serviços' rodando como daemons ao invés de volumes 'servidos'. /export é nomeado inequivocamente com pouca chance de confusão. Eu nunca vejo nada em /srv .

    
por cheryljosie 20.12.2012 / 04:27

Tags