Sistemes

El disc que s'omplia sol

Quan df i du no es posen d'acord: espai fantasma sota un punt de muntatge, i com mirar el disc real amb un contenidor efímer.

El disc que s'omplia sol

Vaig passar una tarda sencilla mirant un servidor que deia tenir el disc ple… i que tenia menys de sis gigas de fitxers reals. df assegurava que tot estava ocupat; du no trobava la meitat. Aquesta és la història del misteri i del truc que el va resoldre.

Els símptomes

  • df -h deia: 100% ocupat, zero disponible.
  • du -sh /home sumava molt menys de la meitat del disc.
  • Les bases de dades començaven a fallar perquè no podien escriure.
  • I el millor: cap fitxer gran, cap carpeta sospitosa, cap explicació visible.

Quan df i du no es posen d’acord, alguna cosa molt concreta passa. No és màgia: és que alguna cosa està amagant fitxers a les eines.

Les tres causes clàssiques

1. Fitxers esborrats que un procés encara té oberts

Un procés escriu a un fitxer, algú l’esborra, i el procés continua escrivint. El fitxer no apareix enlloc, però ocupa espai fins que el procés mor.

2. Muntatges que tapen carpetes

Si hi ha dades escrites a /home/dades i després munten un disc a sobre de /home/dades, aquelles dades no les veu ningú — però ocupen espai igualment.

3. Sistemes de fitxers amb la comptabilitat trencada

Rarament, el sistema de fitxers mateix perd el compte del que hi ha. Toca fsck offline.

El truc: mirar sense els muntatges

El meu cas era el número 2, amb trampa. L’espai fantasma vivia sota un punt de muntatge d’un servei que descarrega contingut contínuament. Quan el muntatge està actiu, res no es veu; quan cau, les dades apareixen. I jo no podia fer sudo, així que vaig mirar el disc amb un contenidor Docker efímer:

docker run --rm -i -v /home:/hosthome:ro node:22-slim sh -s <<'EOF'
du -xsh /hosthome/fabricante/mnt/* 2>/dev/null
find /hosthome -xdev -type f -printf "%s\n" | awk '{s+=$1} END {print s/1073741824" GB"}'
EOF

El contenidor no té els meus muntatges d’usuari: veu el disc tal com és. Allà van aparèixer els gigas que du no trobava.

La resolució

  • El servei culpable: desactivat.
  • L’espai: recuperat, de zero lliures a quinze gigas.
  • I un vigilant de disc (el de la nota anterior) perquè no em torni a passar desapercebut.

La lliçó que em quedo: les eines de disc assumeixen un món sense muntatges. Quan les xifres no quadren, no discuteixis amb du: busca què hi ha a sota.