El otro día se me presento un problema simple en muchos ambientes informáticos, falta de espacio en discos (en este caso de servidores). Grave problema, sin embargo no es que se necesitara mucho.
Para verificar el espacio en disco en un equipo con Linux basta con usar el siguiente comando en la terminal:
|
|
Este comando sirve para mostrar cuanto espacio hay disponible en las diferentes particiones que se encuentran montadas.
Al revisar estos datos me di cuenta de que algo no cuadraba. En el porcentaje de disco usado aparecía 100%!! Pero el servidor aun seguía funcionando con normalidad, salvo algunos servicios, los principales se encontraban en buen estado, por lo que me dio curiosidad, sera que existía alguna partición temporal o algo similar que permitiera esto? Pues bien buscando un poco encontré la razón (http://backdrift.org/freeing-disk-space-in-linux.
Al parecer en las particiones de disco ext (ext1, ext2, ext3, ext4) se reserva un porcentaje de disco para el usuario root, este porcentaje es de 5% y no es visible a simple vista, ni siquiera quitando la opción -h a el comando df (esto muestra el espacio disponible en bytes, y no en Gigabytes, Megabytes o nomenclatura sencilla para el “humano”).
Esta funcionalidad de reservar espacio es bastante útil en muchos casos, debido a que si el servidor se encontraba quedándose sin espacio los servicios primordiales (como ssh, u otros) para conectarse y poder solucionar el inconveniente aun seguirán arriba y funcionando, dado que se ejecutan como usuario root.
Sin embargo actualmente tenemos capacidades inmensas de almacenamiento y los procesos que comentaba no requieren tampoco Gigabytes de espacio para funcionar, por lo que 5% de espacio en discos de 10 GB puede que no sea mucho, pero en unidades de 2 Teras o mas, puede ser una cantidad bastante grande y que esta siendo desaprovechada en nuestros sistemas. Por lo cual como en Linux (y en casi todo el software libre) todo lo podemos modificar, podemos elegir el porcentaje mas adecuado para nuestros sistemas.
En la captura anterior se puede ver que / esta montado en el dispositivo /dev/sda2, y que este tiene 8.1 Gigabytes libres, ejecutando solo df obtenemos los siguientes datos:
|
|
Lo que nos nos muestra 8398060 bytes disponibles. Para ver que cantidad de bytes tenemos reservada al usuario root podemos usar el comando tune2fs de la siguiente manera:
|
|
Aquí podemos ver que tenemos reservados (Reserved block count) 187494 bytes para el usuario root (lo que hace un promedio de 5 %, el valor predeterminado). Aunque esta partición no sea muy grande, mi equipo no es un servidor y no tiene servicios críticos, por lo cual no deseo que ese 5% este reservado para root, por lo cual puedo cambiarlo con el comando tune2fs y definir un porcentaje deseado, en este caso 1%:
|
|
Con esto ya tenemos mas espacio que podemos corroborar usando de nuevo el comando df:
|
|
Puede que no sea mucho el tamaño que logramos, pero en unidades de Teras de almacenamiento pueden ser Gigabytes valiosos los que no estamos usando, o en mi caso mi partición /home también es bastante grande como para poder obtener ese 4% que me es muy útil (aunque se nota ya estoy corto de espacio!).