Troubleshooting Disk

From Linux Wiki
Jump to navigation Jump to search

Spațiul pe disc este raportat ca fiind 100% plin de către df, dar du nu găsește fișiere mari (Deleted Open Files / Ghost Space)[edit | edit source]

Ștergi un fișier imens de log, dar comanda "df -h" arată în continuare că discul este plin. Acest lucru se întâmplă deoarece un proces (Nginx, Apache, un serviciu Java) are încă acel fișier deschis.

Identificare[edit | edit source]

# lsof +L1 # Caută fișierele șterse dar ținute blocate de procese active # lsof | grep -i deleted # caută direct flagul "deleted"

Remediere[edit | edit source]

# systemctl restart <serviciu> # Repornire doar serviciul care ține fișierul blocat (vezi PID-ul din "lsof" # echo 0 > /proc/<PID>/fd/<FD> # Fără restart de serviciu. <PID> și <FD> sunt luate din output-ul comenzii "lsof"

"df -h" arată spațiu liber, dar sistemul spune "No space left on device" (Epuizare Inodes)[edit | edit source]

Sistemele de fișiere Linux (ext4, XFS) au o limită fixă de fișiere pe care le pot crea (numite inodes), indiferent de dimensiunea lor. Dacă un script creează milioane de fișiere mini (sesiuni de PHP, cache, e-mailuri), discul se blochează complet chiar dacă mai ai sute de GB liberi.

Identificare[edit | edit source]

# df -i # Verifică utilizarea procentuală a tabelului de Inodes # find /cale/catre/mount -xdev -type d -exec sh -c 'echo "$(find "$1" -type f | wc -l) $1"' _ {} \; | sort -n -r | head -n 15 # Cauți directorul care conține cele mai multe fișiere

Remediere[edit | edit source]

# rm -rfv /cale/catre/dir/* # De obicei dă erori de tipul "Argument list too long" # find /cale/catre/dir -type f -delete # Rezolvare rapidă şi corectă

Mount blocat sau înghețat (NFS / CIFS Network Storage Timeout)[edit | edit source]

Un storage extern conectat prin rețea (NFS sau Samba/CIFS) își pierde conexiunea. În acel moment, orice comandă de sistem care atinge acel folder va îngheța complet terminalul.

Identificare[edit | edit source]

# dmesg -T | grep -iE 'nfs|cifs|timeout|server.*not answering' # Verifică logurile de kernel pentru timeout-uri de rețea. Procesele sunt in starea "D"

Remediere[edit | edit source]

# umount -f -l /cale/catre/mount_blocat # "-f" (Force) Forțează închiderea conexiunii. "-l" (Lazy) Deconectează instant folderul din sistem