Por que os tamanhos de 2 diretórios são diferentes se os dados dentro dos diretórios forem idênticos? Eles são partições e discos idênticos do ext4

6
root@phoenix:~# ls -ld /backups/external?/var/subsonic/thumbs/110
drwxr-xr-x 2 root root 73728 Mar  4 15:35 /backups/external3/var/subsonic/thumbs/110
drwxr-xr-x 2 root root 69632 Mar  4 15:35 /backups/external4/var/subsonic/thumbs/110

O conteúdo dos diretórios acima é idêntico. Os discos e configurações do sistema de arquivos são idênticos. No entanto, os tamanhos dos diretórios eles mesmos são diferentes.

Sim, o conteúdo do diretório em questão é idêntico, verifiquei com diff -r, rsync -avx e além de comparar. Aqui está o diff -r output:

root@phoenix:~# diff -r /backups/external{3,4}/var/subsonic/thumbs/110
root@phoenix:~# 

du -bs output:

root@phoenix:~# du -bs /backups/external?/var/subsonic/thumbs/110
4116125 /backups/external3/var/subsonic/thumbs/110
4112029 /backups/external4/var/subsonic/thumbs/110

du -b - contagem total de saída apenas os arquivos dentro de cada diretório :

root@phoenix:~# du -b --total /backups/external3/var/subsonic/thumbs/110/* | tail -1 
4042397 total
root@phoenix:~# du -b --total /backups/external4/var/subsonic/thumbs/110/* | tail -1 
4042397 total

Então, para o external3:

4042397 + 73728 = 4116125

e para external4:

4042397 + 69632 = 4112029

O tamanho dos arquivos adicionados ao tamanho do próprio diretório corresponde à saída de du -bs.

    
por cb303 05.05.2012 / 07:15

1 resposta

8

O tamanho relatado por ls -l para um diretório não tem relação com o tamanho acumulado dos arquivos armazenados nele.

É justo, para sistemas de arquivos mais comuns, o tamanho em bytes que foi requerido para armazenar as entradas de diretório. Este tamanho cresce em tamanho de bloco (por exemplo: 4096, 8192, ...). Quantas entradas podem ser armazenadas em um bloco depende do sistema de arquivos e também variam com o tamanho dos nomes dos arquivos.

Quando as entradas do diretório são removidas, o tamanho do diretório não é afetado para reduzir a fragmentação.

No seu exemplo, o diretório external3 tem 18 * 4096 blocos alocados, enquanto o external4 tem 17 * 4096 bloqueia.

Isso significa apenas que o primeiro armazenou mais uma vez arquivos (ou arquivos com nomes maiores) mesmo quando o conteúdo do diretório é atualmente idêntico. Não é grande coisa.

    
por 05.05.2012 / 08:07

Tags