El misterioso caso del espacio en disco desaparecido…

En ocasiones en nuestros servidores nos encontramos con el extraño caso de espacio “desaparecido”.

Cuando df -h y du -ch no concuerdan, “espacio perdido”, lo que nos pasa es que cuando borramos logs del httpd y el proceso sigue corriendo, éstos no son reclamados por el sistema de archivos porque el proceso los tiene atados.

[root@servidor ~]# du -ch –max-depth=0 /
7,7G    /
7,7G    total

[root@servidor ~]# df -h
S.ficheros          Tamaño Usado  Disp Uso% Montado en
/dev/mapper/VolGroup00-LogVol00
32G   28G  1,7G  95% /
/dev/sda1              99M   24M   71M  25% /boot
tmpfs                1014M     0 1014M   0% /dev/shm

21 gigas “perdidos”, por qué?

Se verifica primero que mensajes esta marcando apache – httpd

[root@servidor ~]# lsof | grep httpd | grep deleted
httpd      1672   root    2w      REG      253,0         361    7996589 /var/log/httpd/error_log (deleted)
httpd      1672   root   10w      REG      253,0         361    7996589 /var/log/httpd/error_log (deleted)
httpd      1672   root   11w      REG      253,0         237    7996597 /var/log/httpd/ssl_error_log (deleted)
httpd      1672   root   12w      REG      253,0 21653919235    7996497 /var/log/httpd/access_log (deleted)
httpd      1672   root   13w      REG      253,0           0    7996465 /var/log/httpd/ssl_access_log (deleted)
httpd      1672   root   14w      REG      253,0           0    7996476 /var/log/httpd/ssl_request_log (deleted)
httpd     13568 apache    2w      REG      253,0         361    7996589 /var/log/httpd/error_log (deleted)
httpd     13568 apache   10w      REG      253,0         361    7996589 /var/log/httpd/error_log (deleted)
httpd     13568 apache   11w      REG      253,0         237    7996597 /var/log/httpd/ssl_error_log (deleted)
httpd     13568 apache   12w      REG      253,0 21653919235    7996497 /var/log/httpd/access_log (deleted)
httpd     13568 apache   13w      REG      253,0           0    7996465 /var/log/httpd/ssl_access_log (deleted)
httpd     13568 apache   14w      REG      253,0           0    7996476 /var/log/httpd/ssl_request_log (deleted)
httpd     13570 apache    2w      REG      253,0         361    7996589 /var/log/httpd/error_log (deleted)
httpd     13570 apache   10w      REG      253,0         361    7996589 /var/log/httpd/error_log (deleted)
httpd     13570 apache   11w      REG      253,0         237    7996597 /var/log/httpd/ssl_error_log (deleted)
httpd     13570 apache   12w      REG      253,0 21653919235    7996497 /var/log/httpd/access_log (deleted)

Desde cuando httpd está corriendo? desde agosto 20 (en este ejemplo)

[root@servidor ~]# ps aux | grep httpd
root      1672  0.0  0.6 163100 12868 ?        Ss   Aug20   0:27 /usr/sbin/httpd
apache   13572  0.6  0.4 163628  8408 ?        S    14:07   0:00 /usr/sbin/httpd
apache   13573  0.5  0.4 163628  8408 ?        S    14:07   0:00 /usr/sbin/httpd
apache   13574  0.6  0.4 163628  8408 ?        S    14:07   0:00 /usr/sbin/httpd
apache   13591  0.5  0.4 163628  8408 ?        S    14:07   0:00 /usr/sbin/httpd
apache   13592  0.4  0.4 163628  8408 ?        S    14:07   0:00 /usr/sbin/httpd
apache   13593  0.4  0.4 163628  8408 ?        S    14:07   0:00 /usr/sbin/httpd
root     13595  0.0  0.0   3940   728 pts/1    R+   14:08   0:00 grep httpd

En un intento de liberar espacio se han borrado los logs varias veces como se ve en el lsof.

Solución:

service httpd stop
service httpd start

Razón: bajar el proceso libera los archivos eliminados de forma que el espacio libre es reclamado por el sistema de archivos.

du y df vuelven a ser consistentes.

[root@servidor ~]# service httpd start
Iniciando httpd: httpd: apr_sockaddr_info_get() failed for servidor
httpd: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName
[  OK  ]
[root@servidor ~]# lsof | grep httpd | grep deleted
[root@servidor ~]# df -h
S.ficheros          Tamaño Usado  Disp Uso% Montado en
/dev/mapper/VolGroup00-LogVol00
32G  7,7G   22G  27% /
/dev/sda1              99M   24M   71M  25% /boot
tmpfs                1014M     0 1014M   0% /dev/shm

Nota: esta mini-guia fue basada en un correo de Miguel Molina, quien amablemente me mostró como encontrar las gb perdidas en el camino. Si lo ven salúdenlo y denle las gracias…

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s