Alguna vez nos puede ocurrir que una partición se nos queda pequeña. Inicialmente se plantean unos tamaños para cada una de las particiones del sistema, pero por un motivo u otro, con el tiempo, se nos queda pequeña.
Hay un método rápido para "aumentar" como máximo un 5% el espacio libre de esta partición: liberar bloques reservados para el usuario root. Para el que no lo sepa, cuando se crea una partición y se formatea en ext3 o ext4 siempre se reserva un 5% de su capacidad para ser usada exclusivamente por el usuario root, y solo en el caso en que el espacio restante (95%) se haya llenado. Esta característica sirve para que un sistema con la partición raíz al 100% de uso (en realidad 95% de uso) permita que el usuario root acceda al servidor y pueda liberar espacio. Y es que algo tan básico como un login en un servidor requiere escritura en logs, y si no hay espacio disponible no se podría acceder al sistema.
Como ejemplo, veamos este servidor con una partición raiz muy pequeña:
root@servidor:~# df -h
S.ficheros Tamaño Usado Disp Uso% Montado en
/dev/sda1 3,8G 1,9G 1,7G 53% /
Ahora mismo dispone de 1'7 GB libres y su porcentaje de uso es del 53%.
Para comprobar qué cantidad de bloques tiene reservados para root ejecutamos:
root@servidor:~# tune2fs -l /dev/sda1
tune2fs 1.41.11 (14-Mar-2010)
Filesystem volume name:
Last mounted on: /
Filesystem UUID: c43a6eba-bf59-457b-91fb-47fb191c6ba7
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags: signed_directory_hash
Default mount options: (none)
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 247504
Block count: 988160
Reserved block count: 49408
Free blocks: 524078
Free inodes: 171389
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 241
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 7984
Inode blocks per group: 499
Flex block group size: 16
Filesystem created: Mon Jul 11 12:36:10 2011
Last mount time: Sat Jul 6 15:57:59 2013
Last write time: Wed Apr 10 19:15:59 2013
Mount count: 2
Maximum mount count: 27
Last checked: Wed Apr 10 19:15:59 2013
Check interval: 15552000 (6 months)
Next check after: Mon Oct 7 19:15:59 2013
Lifetime writes: 242 GB
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 28
Desired extra isize: 28
Journal inode: 8
Default directory hash: half_md4
Directory Hash Seed: 11342c1f-9c65-4104-98dd-1fa1f9235977
Journal backup: inode blocks
Si nos fijamos en estas dos lineas:
Block count: 988160
Reserved block count: 49408
Y dividimos 49408/988160 nos sale 0'05, es decir, un 5% del total de bloques están reservados para root.
Vamos a reducir este porcentaje al 2% con el fin de "liberar" un poco de espacio. En caliente, sin desmontar la partición, ejecutamos:
root@servidor:~# tune2fs -m 2 /dev/sda1
tune2fs 1.41.11 (14-Mar-2010)
Se pone el porcentaje de bloques reservados a 2% (19763 bloques)
Si volvemos a ejecutar el comando tune2fs -l /dev/sda1 obtendremos los siguientes valores:
Block count: 988160
Reserved block count: 19763
Y 19763/988160 da un porcentaje de 2%.
Con df -h podemos ver el ligero aumento de espacio disponible:
root@servidor:~# df -h
S.ficheros Tamaño Usado Disp Uso% Montado en
/dev/sda1 3,8G 1,9G 1,8G 52% /
Cuanto mayor sea la partición, mayor será el espacio liberado. Por ejemplo, para una partición de 500 GB, un 5% supone 25 GB. Es una cantidad muy importante.
Por último, comentar que este espacio reservado también se puede dejar a 0:
# tune2fs -m 0 /dev/sda1
Hay un método rápido para "aumentar" como máximo un 5% el espacio libre de esta partición: liberar bloques reservados para el usuario root. Para el que no lo sepa, cuando se crea una partición y se formatea en ext3 o ext4 siempre se reserva un 5% de su capacidad para ser usada exclusivamente por el usuario root, y solo en el caso en que el espacio restante (95%) se haya llenado. Esta característica sirve para que un sistema con la partición raíz al 100% de uso (en realidad 95% de uso) permita que el usuario root acceda al servidor y pueda liberar espacio. Y es que algo tan básico como un login en un servidor requiere escritura en logs, y si no hay espacio disponible no se podría acceder al sistema.
Como ejemplo, veamos este servidor con una partición raiz muy pequeña:
root@servidor:~# df -h
S.ficheros Tamaño Usado Disp Uso% Montado en
/dev/sda1 3,8G 1,9G 1,7G 53% /
Ahora mismo dispone de 1'7 GB libres y su porcentaje de uso es del 53%.
Para comprobar qué cantidad de bloques tiene reservados para root ejecutamos:
root@servidor:~# tune2fs -l /dev/sda1
tune2fs 1.41.11 (14-Mar-2010)
Filesystem volume name:
Last mounted on: /
Filesystem UUID: c43a6eba-bf59-457b-91fb-47fb191c6ba7
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags: signed_directory_hash
Default mount options: (none)
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 247504
Block count: 988160
Reserved block count: 49408
Free blocks: 524078
Free inodes: 171389
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 241
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 7984
Inode blocks per group: 499
Flex block group size: 16
Filesystem created: Mon Jul 11 12:36:10 2011
Last mount time: Sat Jul 6 15:57:59 2013
Last write time: Wed Apr 10 19:15:59 2013
Mount count: 2
Maximum mount count: 27
Last checked: Wed Apr 10 19:15:59 2013
Check interval: 15552000 (6 months)
Next check after: Mon Oct 7 19:15:59 2013
Lifetime writes: 242 GB
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 28
Desired extra isize: 28
Journal inode: 8
Default directory hash: half_md4
Directory Hash Seed: 11342c1f-9c65-4104-98dd-1fa1f9235977
Journal backup: inode blocks
Si nos fijamos en estas dos lineas:
Block count: 988160
Reserved block count: 49408
Y dividimos 49408/988160 nos sale 0'05, es decir, un 5% del total de bloques están reservados para root.
Vamos a reducir este porcentaje al 2% con el fin de "liberar" un poco de espacio. En caliente, sin desmontar la partición, ejecutamos:
root@servidor:~# tune2fs -m 2 /dev/sda1
tune2fs 1.41.11 (14-Mar-2010)
Se pone el porcentaje de bloques reservados a 2% (19763 bloques)
Si volvemos a ejecutar el comando tune2fs -l /dev/sda1 obtendremos los siguientes valores:
Block count: 988160
Reserved block count: 19763
Y 19763/988160 da un porcentaje de 2%.
Con df -h podemos ver el ligero aumento de espacio disponible:
root@servidor:~# df -h
S.ficheros Tamaño Usado Disp Uso% Montado en
/dev/sda1 3,8G 1,9G 1,8G 52% /
Cuanto mayor sea la partición, mayor será el espacio liberado. Por ejemplo, para una partición de 500 GB, un 5% supone 25 GB. Es una cantidad muy importante.
Por último, comentar que este espacio reservado también se puede dejar a 0:
# tune2fs -m 0 /dev/sda1