du -sh em um novo diretório dá resultados diferentes em locais diferentes

1

Veja o que aconteceu quando criei um novo diretório e imediatamente corri nele. Não há conteúdo neste diretório.

me@mybox[~]$ mkdir /scratch/test2
me@mybox[~]$ du -sh /scratch/test2
4.0K    /scratch/test2

OK, então, um novo diretório em / scratch (que é um LV em sda que está executando o RHEL 6.6) ocupa 4.0K de espaço.

me@mybox[~]$ mkdir /home/me/test
me@mybox[~]$ du -sh /home/me/test
512 test

Um novo diretório no meu diretório pessoal (que é um diretório do ZFS hospedado via NFS de um servidor Solaris) leva 512 bytes. Agora, se eu esperar um minuto ou mais e du / home / me / test novamente:

me@mybox[~]$ du -sh /home/me/test
1.5K     test

A quantidade de espaço ocupado salta para 1.5K, apesar do diretório ainda estar vazio (até onde eu posso dizer de ls -la )

Eu gostaria de entender as razões técnicas para essas diferenças. Apenas em geral, como o que está acontecendo no curto espaço entre o diretório tendo 512 bytes e 1.5K? O que esse espaço extra significa? Por que os 512 bytes e 1.5K são significativamente menores que o 4.0K necessário para um diretório no disco local?

    
por CptSupermrkt 05.11.2014 / 16:28

1 resposta

1

Você não diz qual tipo de sistema de arquivos é usado para /scratch ; Eu espero que seja ext4. O ext4 usa 4k blocos para alocação, de modo que é a menor quantidade de espaço que um objeto do sistema de arquivos pode usar (excluindo arquivos de tamanho zero, é claro).

O ZFS é um sistema de arquivos muito especial e, aparentemente, usa blocos de 512 bytes para alocar espaço. Talvez depois de ter acessado o diretório alguns atributos estendidos foram anexados ao diretório, aumentando o espaço usado por esse diretório. Como é um sistema de arquivos montado em NFS, pode haver algum buffer de atributos, talvez se você consultasse os dados no lado do servidor NFS, talvez não visse a mudança no tamanho.

    
por 05.11.2014 / 16:51