inconsistência entre du -sh e df -h

6

Eu sei que isso é uma ocorrência comum quando o resultado de du -sh é menor que o retornado pelo sistema de arquivos com df -h . (Porque alguns arquivos ainda estão abertos em processos etc.) Mas no meu caso eu tenho o oposto.

Estou executando o Ubuntu 12.04 e tentando obter o tamanho usado de uma montagem NFS

df -h retorna 270G used enquanto du -sh da pasta montada retorna 320G used .

Atualização: Estou montando a partição com as seguintes opções:

nas-server:/path/to/mount /mnt/mount/point  nfs proto=tcp,rsize=8192,wsize=8192,hard,intr,exec

Alguém sabe de onde isso pode vir? A quantidade correta no disco deve ser 270G ~

Obrigado pela sua ajuda. Eu vou fornecer qualquer informação extra necessária.

    
por D.Mill 16.09.2013 / 10:41

2 respostas

1

Obrigado a todos pelas ótimas respostas e sugestões. Estou postando para responder meu problema específico. Apenas no improviso ajuda alguém (o que pode muito bem não ser dadas as circunstâncias)

O NAS que eu estava recebendo minhas informações de sistema de arquivos tem - se não estou confundindo - um certo nível de virtualização, tanto quanto as partições vão (HP X9000). Portanto, df deve retornar uma "estimativa" precisa se tudo correr bem.

No entanto, devido a um erro com o NAS que foi corrigido desde então, o tamanho da partição virtual não estava sendo atualizado e, portanto, df retornaria um valor inválido (desatualizado). Mostrando 270Go em vez do valor correto real de 320Go (cometi um erro nos meus comentários)

Todas as questões acima resultaram disso. Desde então, isso também ocorreu quando o NAS estava trabalhando em modo degradado (por qualquer motivo)

Obrigado mais uma vez pessoal.

    
por 09.01.2014 / 18:43
2

du conta os blocos usados pelos arquivos com link físico uma vez, não uma vez por link físico. No entanto, existem algumas maneiras pelas quais essa desduplicação pode falhar:

  1. A tabela du usa para desduplicar arquivos com link fixo é um tamanho fixo. Se você tiver mais arquivos com hardlink do que a tabela pode armazenar, desduplicação pode não ser bem-sucedida. (Algumas versões de du têm uma tabela dimensionada dinamicamente e não apresentam esse problema.)

  2. A desduplicação é baseada em valores de inode. Se o servidor NAS mostrar diferentes números de inode para arquivos com hardlink, a desduplicação não será possível. Alguns servidores NAS fazem um ótimo trabalho ao apresentar inodes porque eles usam um sistema de arquivos que possui inodes. Outros têm que "fingir" e não fazer um bom trabalho.

A propósito ...

du conta apenas os dados do arquivo.

df conta o uso de blocos para os dados do arquivo mais todos os metadados: diretórios, superblocos, tabela de inode, blocos de direcionamento / indireto / duploindirect e assim por diante.

Portanto, df deve retornar um tamanho "usado" menor que du . Se acontecer o contrário, eu presumo que essa deduplicação está quebrada ou o servidor NAS fez algo que faz com que df exiba informações inválidas.

    
por 25.11.2013 / 13:57