Maximiza tu Espacio en Linux con Btrfs y Compresión Zstd

 

btrfs-zstd

En este artículo te guiare para configurar un disco duro en un servidor linux, en este caso un Debian 12 ,(también se podrá en otras distribuciones) usando el sistema de archivos Btrfs y su característica de compresión. Esto te permitirá almacenar más datos de la capacidad física de tu disco.

¡ATENCIÓN: Este proceso borrará todos los datos de tu disco! Asegúrate de hacer una copia de seguridad de cualquier información importante antes de empezar.


1. Entendiendo el Concepto: Más Allá de los 2TB Físicos

Para esta guía supondremos que tenemos un disco de 2 Terabytes (TB) físicos. La "magia" para almacenar más de 2TB radica en dos conceptos clave:

  • GPT (Tabla de Particiones GUID): Es el método moderno para organizar las particiones de un disco. A diferencia del antiguo MBR, GPT no tiene el límite de 2TB por partición, lo que te permite usar discos de cualquier tamaño. ¡Es fundamental para nuestro objetivo!
  • Compresión de Datos (Btrfs): El sistema de archivos Btrfs puede comprimir automáticamente los datos cuando se guardan en el disco. Esto significa que un archivo de 10MB puede ocupar solo 5MB (o menos) en el disco, liberando espacio. Cuanto más "repetitivos" sean tus datos (por ejemplo, archivos de texto, logs, documentos), mayor será el ahorro. Archivos que ya están muy comprimidos (como vídeos MP4 o imágenes JPG) no se comprimirán mucho más.

2. Preparación: Identifica tu Disco e Instala Herramientas

Antes de tocar el disco, necesitamos saber cuál es y tener las herramientas necesarias.

Paso 2.1: Identifica tu Disco

  1. Abre una terminal en tu servidor Debian.

  2. Ejecuta el siguiente comando para listar tus discos:

    sudo fdisk -l
    

    O para una vista más detallada:

    sudo blkid
    
  3. Localiza el disco de 2TB. Fíjate bien en el nombre que le da el sistema (por ejemplo, /dev/sdb/dev/sdc/dev/nvme0n1).

    ¡Advertencia Crucial! Es absolutamente crítico que uses el nombre correcto del disco en los siguientes pasos. Si eliges el disco equivocado, ¡podrías borrar tu sistema operativo!

    Para este manual, asumiremos que tu disco de 2TB es /dev/sdb. Deberás sustituir /dev/sdb por el nombre real de tu disco en TODOS los comandos.

Paso 2.2: Instala las Herramientas de Btrfs

Necesitas un paquete llamado btrfs-progs.

sudo apt update
sudo apt install btrfs-progs

3. Particionando el Disco con GPT

Vamos a preparar el disco para usar la tabla de particiones GPT y crear una única partición grande.

  1. Inicia la herramienta parted para tu disco:

    sudo parted /dev/sdb
    

    (¡Recuerda cambiar /dev/sdb por el nombre de tu disco!)

  2. Crea la tabla de particiones GPT:

    mklabel gpt
    

    parted te preguntará si estás seguro. Escribe Yes y presiona Enter.

  3. Crea una única partición que ocupe todo el disco:

    mkpart primary 0% 100%
    

    Esto creará una partición principal que se extiende desde el inicio (0%) hasta el final (100%) de tu disco.

  4. Verifica que la partición se ha creado correctamente:

    print
    

    Deberías ver una partición grande (por ejemplo, /dev/sdb1) listada.

  5. Sal de parted:

    quit
    

    Si tiene entorno gráfico en tu sistema puedes hacer este proceso con GParted


4. Formateando la Partición con Btrfs

Ahora que tenemos la partición, vamos a crear el sistema de archivos Btrfs en ella.

sudo mkfs.btrfs /dev/sdb1

(¡Asegúrate de que /dev/sdb1 coincida con el nombre de tu partición!)

Este comando crea el sistema de archivos Btrfs. No te preocupes por la compresión todavía, eso lo haremos al montarlo.


5. Montando el Disco con Compresión

Para usar el disco, necesitamos un lugar donde "engancharlo" en el sistema de archivos de Linux, conocido como punto de montaje. También es el momento de activar la compresión.

Paso 5.1: Crea un Punto de Montaje

Crea un directorio donde montarás tu disco. Puedes llamarlo como quieras, por ejemplo /mnt/datos o /srv/almacenamiento.

sudo mkdir /mnt/datos

Paso 5.2: Monta el Disco Temporalmente con Compresión

Este comando montará tu disco y activará la compresión Zstandard (zstd), que es un buen balance entre velocidad y eficiencia de compresión.

sudo mount -o compress=zstd /dev/sdb1 /mnt/datos
  • compress=zstd: Esta es la clave para que Btrfs comprima tus datos.

Paso 5.3: Verifica el Montaje

Asegúrate de que todo se montó correctamente:

  1. Verifica el espacio disponible (verás la capacidad física, pero el espacio útil será mayor):
    df -h /mnt/datos
    
  2. Confirma que la compresión está activa:
    cat /proc/mounts | grep /mnt/datos
    
    Deberías ver compress=zstd en la salida.

6. Configurando el Montaje Permanente (Fstab)

Para que tu disco se monte automáticamente cada vez que el servidor se reinicie, necesitamos añadirlo al archivo /etc/fstab.

Paso 6.1: Obtén el UUID de tu Partición

El UUID (Identificador Único Universal) es la mejor forma de referenciar una partición en /etc/fstab porque es único y nunca cambia, a diferencia de /dev/sdb1 que podría variar.

sudo blkid /dev/sdb1

Busca una línea similar a: UUID="**XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX**" (un largo código alfanumérico). Copia este UUID.

Paso 6.2: Edita /etc/fstab

  1. Abre el archivo fstab con un editor de texto (por ejemplo, nano):

    sudo nano /etc/fstab
    
  2. Añade la siguiente línea al final del archivo:

    UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX /mnt/datos btrfs defaults,compress=zstd 0 0
    
    • Reemplaza XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX con el UUID que copiaste.
    • /mnt/datos: El punto de montaje que creaste.
    • btrfs: Indica el tipo de sistema de archivos.
    • defaults,compress=zstd: Opciones de montaje estándar y la activación de la compresión.
    • 0 0: Son opciones para el volcado (dump) y la comprobación de integridad (fsck), que no son necesarias para Btrfs de esta manera.
  3. Guarda los cambios y sal del editor (en nanoCtrl+O para guardar, EnterCtrl+X para salir).

Paso 6.3: Prueba la Configuración de Fstab

Es buena práctica simular un montaje para asegurarte de que tu fstab está correcto antes de reiniciar:

  1. Desmonta el disco (si estaba montado):
    sudo umount /mnt/datos
    
  2. Monta todo lo que está en fstab:
    sudo mount -a
    
    Si no hay errores, ¡todo está correcto! El disco debería estar montado nuevamente.

7. Ajustando Permisos (Opcional, pero Recomendado)

Por defecto, el dueño del directorio montado (/mnt/datos) será root. Si quieres que un usuario específico tenga acceso para leer y escribir allí, cambia los permisos:

sudo chown -R tu_usuario:tu_grupo /mnt/datos
sudo chmod -R 775 /mnt/datos
  • tu_usuario: Reemplázalo por el nombre de tu usuario en Debian (ej., miusuario).
  • tu_grupo: Reemplázalo por el grupo principal de tu usuario (generalmente, el mismo nombre que el usuario, ej., miusuario).

8. Capacidad Final: ¿Cuánto Espacio Ganarás?

Ahora que tienes Btrfs con compresión activada, tu disco de 2TB puede almacenar más de 2TB de datos lógicos.

  • ¿Cuánto más? Depende totalmente de la compresibilidad de tus datos.
    • Si guardas muchos archivos de texto, documentos, código fuente o logs, podrías ver un ahorro significativo, quizás duplicando o incluso triplicando el espacio efectivo (es decir, en un disco de 2TB, podrías almacenar 3TB, 4TB o más de datos lógicos).
    • Si guardas principalmente vídeos, imágenes JPG/PNG o archivos ya comprimidos (ZIP, MP3, etc.), el ahorro será mínimo, ya que estos archivos ya están muy comprimidos.

Ejemplo: Si tu disco tiene 1.86 TB de espacio útil y tus datos tienen un ratio de compresión promedio de 1.5:1, podrías almacenar aproximadamente 1.86 TiB×1.52.79 TiB de datos lógicos.

Puedes usar el comando sudo btrfs filesystem df /mnt/datos para ver cuánto espacio físico se está usando realmente y cuánto está disponible.


¡Felicidades! Tu servidor Debian 12 ahora tiene un disco de 2TB configurado con Btrfs y compresión Zstandard, listo para almacenar más datos de lo que esperabas. ¡Disfruta del espacio extra!

0 Comentarios