Cómo crear el sistema de archivos en particiones grandes


Discos | Hard drives

Algunas veces en los discos se presentan  inconsistencias entre el el tamaño, el valor usado y el espacio disponible. El problema ocurre cuando el sistema operativo dice algo distinto de lo que uno esperaría lógicamente. Por ejemplo:

# df -h | grep data

Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 788G 726G 23G 98% /var/data

Si sacamos la cuenta debería ser  788 GB – 726 GB = 62 GB…pero df (osea Linux) reporta que hay disponibles 23 GB. ¿Dónde están los otros 39 GB?

El asunto está en el espacio disponible. ¿Disponible para quién? Pues para el sistema operativo, usuarios, etc. Pero resulta que cuando se crea el sistema de archivos en ext2, ext3, etx4, por omisión se reserva un 5% de espacio en el disco para evitar que el sistema colapse, por ejemplo por bitácoras o base de datos haciendo que el mismo sea inoperante, y de forma root pueda usarlo para rescatarlo. Entonces, verificando el tamaño de esa partición vemos que el 5% de 788 GB es 39.5 GB. Allí está la diferencia.

Ahora, cómo podemos recuperar o aprovechar esos GB adicionales, ya que si se usa para una partición de datos pierde el sentido eso de guardar 5% para que el sistema operativo funcione correctamente, ya que en todo caso eso aplicaría para la partición destinada a la raíz /o a /var. Hay dos formas:

  1. Al momento de crear el sistema de archivo de las particiones puede usarse la opción -m con la orden mkfs.ext[2,3,4]. Ejemplo:
    mkfs.ext3 -m 0 /dev/sdb1
  2. Si el sistema de archivos ya fue creado, se puede usar la misma opción -m pero con la orden tune2fs. Pero aquí es importante primero desmontar la partición previamente para evitar posibles pérdidas o inconsistencia de datos. Ejemplo:
# umount /var/data

# tune2fs -m 0 /dev/sdb1

tune2fs 1.41.12 (17-May-2010)
Setting reserved blocks percentage to 0% (0 blocks)

# mount /var/data

Luego volvemos a consultar el espacio disponible:

# df -h | grep data

Filesystem Size Used Avail Use% Mounted o

/dev/sdb1 788G 726G 63G 93% /var/data

Ahora las cuentas si dan…por cierto, y cómo podríamos saber el espacio reservado sin usar df? Existen dos formas:

  1. Usando dumpe2fs:
    # dumpe2fs -h /dev/sdb1 | grep Reserved
    
    dumpe2fs 1.41.12 (17-May-2010)
    Reserved block count: 0
  2. Usando  tune2fs:
    # tune2fs -l /dev/sdb1 | grep Reserved Reserved block count: 0

Los Comentarios están cerrados