Estou enfrentando um problema com espaço incorreto de fs relatado por df
.
Estamos falando do servidor Ubuntu metal 14.04, com a partição /
gerenciada pelo LVM.
O tamanho relatado por df
é diferente do tamanho informado pelo super-bloco fs. Também calcular o tamanho de du -skh
(em diretórios relacionados à partição /
) prova que df
está mostrando resultados incorretos.
Isso é o que relatou por df
:
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rootvg-lv_root 20G 16G 2.8G 86% /
Isso é o que o superbloco reporta (3616906*4096/1024**2=14128 MB free)
:
Last mounted on: /
Filesystem magic number: 0xEF53
Filesystem state: clean
Filesystem OS type: Linux
Inode count: 1290240
Block count: 5242880 << exactly 20 GB
Reserved block count: 227170
Free blocks: 3616906 << around 14 GB free
Free inodes: 1201391
First block: 0
Block size: 4096
Fragment size: 4096
Eu fiz um strace para df
e descobri que ele usa o statfs
syscall para obter informações sobre um determinado fs (962132*4096/1024**2=3758 MB free)
:
statfs("/", {f_type="EXT2_SUPER_MAGIC", f_bsize=4096, f_blocks=5129119, f_bfree=**962132**, f_bavail=730866, f_files=1290240, f_ffree=1091851, f_fsid={-456623966, 1549023591}, f_namelen=255, f_frsize=4096}) = 0
Provavelmente, o problema com statfs
ou de alguma forma como é obtida a informação fs.
Para resolvê-lo, tentei remontar /
partition ( mount / -orw,remount
), mas isso não ajudou.
Minha pergunta - como posso corrigir df
informações sem reiniciar ou perturbar o funcionamento normal deste servidor?
P.S.
- existem não fd em espera pelo processo (
lsof +L1 | grep deleted
)
- Estou ciente de que 883 MB estão reservados para o usuário com UID 0
- Este não é um problema de mascaramento de ponto de montagem (quando arquivos fs 'hide' montados no diretório de ponto de montagem)