18 agosto 2016

Tune2fs, ese gran desconocido

TUNE2FS es una gran utileria *NIX, y a diferencia de, y siguiendo con mi aclamada serie "SystemD y la puta madre que lo parió a el y al deficiente mental de Poettering", un pequeña semblanza sobre su uso.

A menos que se le especifique lo contrario, los sistemas de archivos ext2, ext3, y ext4 reservan un 5% de espacio de cada particion de nuestro disco, es una medida de seguridad, por si se da el caso de que la particion llegue a un 100% de espacio utilizado, estos 5% se le reservan al usuario root para poder de esta manera seguir utilizandolo y seguir accediendo al servidor y realizar tareas de gestión y administración.

Ahora bien, como liberar espacio reservado con TUNE2FS y aprovechar el 5% del espacio reservado de las particiones (solo ext2, ext3 y ext4)

tune2fs permite ajustar parámetros en sistemas de archivos extendidos (ext2, ext3, ext4). Podemos visualizar todos estos parámetros del siguiente modo (supongamos que queremos trabajar con la partición /dev/sda2). Tenemos que autenticarnos como root:

root@gostir:[~]# tune2fs -l /dev/sda2
tune2fs 1.43.1 (08-Jun-2016)
Filesystem volume name:  
Last mounted on:          /
Filesystem UUID:          2a295a29-1a29-480e-a29b-d0fe2aa29a29
Filesystem magic number:  0xFA29
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:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              12492800
Block count:              49951488
Reserved block count:     2497574
Free blocks:              38045156
Free inodes:              12135994
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      1012
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8192
Inode blocks per group:   512
Flex block group size:    16
Filesystem created:       Tue Feb 23 12:08:11 2016
Last mount time:          Sat Jul 16 20:11:23 2016
Last write time:          Sat May 28 12:05:26 2016
Mount count:              93
Maximum mount count:      -1
Last checked:             Tue Feb 23 12:08:11 2016
Check interval:           0 ()
Lifetime writes:          75 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
First orphan inode:       5637052
Default directory hash:   half_md4
Directory Hash Seed:      00bd9a29-fa29-4a29-aa29-2a29e26efa29
Journal backup:           inode blocks
root@gostir:[~]#

Ahora bien, de toda la informacon que TUNE2FS nos brinda, lo que nos interesa realmente es esto:

root@gostir:[~]# tune2fs -l /dev/sda2 | grep "Reserved"
Reserved block count:     2497574
Reserved GDT blocks:      1012
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
root@gostir:[~]#

Como se ve, hay 2497574 bloques, y como cada uno de es 4096 bytes, sacando la cuenta nos dice que tenemos algo asi como nueve gigas y medio reservados.
A modo de recordatorio, es muy facil {[((2497574 Bloques Reservados * 4096 bytes)/1024 Kbytes)/1024 Mbytes]/1024 Gbytes}= Espacio Reservado

Este disco ya fue "tuneado" antes de la instalacion, y se le "aprovecharon" +50GB de espacio reservado, por eso no les va a coincidir el total de bloques con que los reservados sean solo el 5%.

Para modificar el número de bloques reservados debemos ejecutar tune2fs con el parámetro -m seguido del nuevo porcentaje de bloques a reservar. En este caso vamos a reducir el número de bloques reservados al 0% (NO LO RECOMIENDO NUNCA):

Les recomiento que previamente usen el manual y lo lean:

root@gostir:[~]# man tune2fs

root@gostir:[~]# tune2fs -r 0 -m 0 /dev/sda2

Y listo, ya tendremos prácticamente el total los GiB recuperados (la casa siempre se queda con algo, alrededor de 250 MB). Simplemente tecleando tune2fs podremos visualizar algunas de las demás opciones. Esta herramienta es la encargada de modificar todo lo referente a los parámetros del sistema de archivos, inclusive nos permite controlar cuando sera la próxima comprobación del disco rigido.

Normalmente yo calculo dejarle libre entre 10 o 20GB, asi cuando el disco se quede sin espacio, ROOT va a tener espacio para trabajar mas o menos comodamente. Con CERO de espacio libre, no hay manera realmente.

Si listamos de nuevo la información del filesystem ya deberíamos ver reflejados los nuevos cambios, también deberíamos tener liberado ese espacio en disco.

root@gostir:[~]# tune2fs -l /dev/sda2 | grep "Reserved"

O de manera mas simple aun:

root@gostir:[~]# df -h


Y obviamente como un simple usuario:

vampii@gostir:[~]$ df -h
S.ficheros     Tamaño Usados  Disp Uso% Montado en
/dev/root        188G    43G  136G  24% /
devtmpfs         1,8G      0  1,8G   0% /dev
tmpfs            1,8G   436K  1,8G   1% /run
tmpfs            1,8G    84K  1,8G   1% /dev/shm
cgroup_root      1,8G      0  1,8G   0% /sys/fs/cgroup
cgmfs            100K      0  100K   0% /run/cgmanager/fs
/dev/sda3        726G   670G   19G  98% /home
vampii@gostir:[~]$

Que te diviertas!