Obtenha o tamanho do diretório btrfs que pode conter subvolumes

4

A maneira usual de obter o tamanho do diretório é:

du -hs /path/to/directory

No entanto, não está funcionando e suspeito que seja um problema do btrfs. Está relatando que o tamanho de um subdiretório com submódulos é maior que o tamanho total do próprio disco.

No entanto, posso verificar usando o utilitário gnome disks que o disco está mais de 60% vazio.

Inspeção adicional variando n em

du -h --max-depth=n /path/to/folder

Consigo restringir tamanhos de subdiretórios grandes aos subvolumes btrfs, e é por isso que acho que esse problema está relacionado a subvolumes

    
por Peeyush Kushwaha 09.04.2018 / 20:20

1 resposta

4

Sim, é provavelmente um problema relacionado ao BTRFS.

Como regra geral, o du clássico não é confiável com o BTRFS, e muitas vezes pode dar resultados aparentemente absurdos como esse. Em última análise, isso decorre do fato de que stat() (a chamada do sistema que du usa para ver quanto espaço cada arquivo está usando no disco) não sabe ou se importa com reflexos, instantâneos, compactação transparente ou praticamente nada outra coisa que o BTRFS fornece além da semântica POSIX padrão.

O impacto disso é que du contará todos os blocos compartilhados entre arquivos por meio de reflinks (que incluem todos os blocos que foram desduplicados, blocos compartilhados por causa dos arquivos sendo copiados usando o clone ioctl e qualquer um que faça parte dos instantâneos ) uma vez cada arquivo que contém uma referência a esse bloco e, portanto, du pode mostrar o uso de disco aparente muito maior do que o uso de espaço real.

Sugiro usar btrfs filesystem du em vez de du , pois ele contará corretamente todo o uso de espaço compartilhado.

Note também que o GNOME Disk Utility e df também não são totalmente confiáveis quando lidam com BTRFS, mas por razões diferentes (eles respondem corretamente pelos reflinks, mas não entendem o alocador de dois estágios que o BTRFS usa, então eles podem realmente relatar o disco como quase vazio mesmo se você não puder escrever nada nele). Como resultado disso, eles freqüentemente mostrarão valores de uso diferentes daqueles que você obteria executando du na raiz do sistema de arquivos. (e fica ainda pior se você usar du -x , porque isso não cruzará os limites de subvolume, pois eles se parecem com pontos de montagem).

    
por 09.04.2018 / 21:26

Tags