Guía de tecnologías

Crear un pool de almacenamiento y espejo con Btrfs en Linux

7 min read Almacenamiento Actualizado 25 Sep 2025
Pool y espejo con Btrfs en Linux
Pool y espejo con Btrfs en Linux

Pool de almacenamiento y espejo con varios discos duros

Qué es Btrfs

Btrfs (abreviatura de B-tree filesystem, también llamado “Butter FS” o “Better FS”) es un sistema de archivos moderno para Linux que integra funciones avanzadas a nivel de sistema de archivos: instantáneas, checksums, subvolúmenes, almacenamiento agrupado y perfiles de datos/metadata (RAID a nivel de FS). En una línea: Btrfs es un sistema de archivos con funcionalidades que normalmente requerirían múltiples herramientas.

Términos clave:

  • Subvolumen: unidad lógica dentro de Btrfs que actúa como un punto de montaje aislado.
  • Balance: operación que redistribuye los bloques entre dispositivos tras añadir o quitar discos.
  • Perfil de datos (-d) y metadata (-m): controlan cómo se distribuyen o duplican los datos y metadatos entre dispositivos.

Nota rápida: para configuraciones de disco único o cuando no se necesita pooling, ext4 sigue siendo una opción estable y sencilla.

Variantes de intención (SEO)

  • Crear pool Btrfs
  • Btrfs RAID en Linux
  • Pooling y mirroring con Btrfs
  • Recuperación de fallos en Btrfs
  • /etc/fstab para Btrfs

Escenario de ejemplo: cuatro discos

Usaremos cuatro discos para el ejemplo:

  • /dev/sdb — 1 TiB
  • /dev/sdc — 1 TiB
  • /dev/sdd — 500 GiB
  • /dev/sde — 500 GiB

Además existe /dev/sda con el sistema y el cargador de arranque. No tocamos /dev/sda: combinamos únicamente los cuatro discos adicionales para crear un pool de ~3 TiB de capacidad agregada (capacidad bruta, el espacio usable depende del perfil elegido).

Crear un sistema de archivos Btrfs en un disco

  1. Formatea el primer dispositivo como Btrfs:
sudo mkfs.btrfs /dev/sdb
  1. Monta ese dispositivo en /mnt:
sudo mount /dev/sdb /mnt

Ahora /mnt contiene un sistema de archivos Btrfs y puedes añadirle otros dispositivos.

Añadir discos al pool

Formatea los discos adicionales (si no tienen ya Btrfs):

sudo mkfs.btrfs /dev/sdc
sudo mkfs.btrfs /dev/sdd
sudo mkfs.btrfs /dev/sde

Añade cada dispositivo al pool montado en /mnt:

sudo btrfs device add /dev/sdc /mnt
sudo btrfs device add /dev/sdd /mnt
sudo btrfs device add /dev/sde /mnt

Si ya había datos en /dev/sdb, balancea el sistema para redistribuir bloques entre todos los dispositivos:

sudo btrfs filesystem balance /mnt

Alternativa: crear el filesystem a la vez en todos los discos

Si sabes de antemano que quieres que el sistema abarque todos los discos, puedes crear el FS directamente con todos los dispositivos:

sudo mkfs.btrfs -d single /dev/sdb /dev/sdc /dev/sdd /dev/sde

Explicación de perfiles de datos (-d) y metadata (-m)

  • single: distribuye datos sin redundancia. Útil si los discos son de distinto tamaño o si buscas máxima capacidad.
  • raid0: striping (como RAID 0). Aumenta rendimiento y capacidad, sin redundancia.
  • raid1: duplicación entre dispositivos (mirroring). Incrementa tolerancia a fallos; el espacio usable equivale a la capacidad del disco más pequeño por pareja.
  • raid10: combinación de striping y mirroring. Requiere al menos 4 dispositivos y pares balanceados.

Ejemplo: si usas -d raid1 con los discos del ejemplo, el espacio usable quedará limitado por el tamaño de los discos más pequeños y por la duplicación necesaria.

Convertir perfil RAID en un filesystem ya existente

Si quieres cambiar el perfil de datos y/o metadata después de creado el sistema, usa balance con -dconvert y -mconvert. Primero monta el sistema (si no está montado):

sudo mount /dev/sdb1 /mnt

Ejemplo para convertir a RAID1 (datos y metadata):

sudo btrfs balance start -dconvert=raid1 -mconvert=raid1 /mnt

Puedes sustituir raid1 por raid0, raid10 o single según lo permitido por el número y tamaño de dispositivos. Ten en cuenta que algunos cambios requieren más espacio libre para reubicación de datos y pueden tardar.

Qué hacer ante un fallo de disco

Si un disco falla, monta degradado para trabajar con el pool y eliminar el dispositivo desaparecido:

sudo mount -o degraded /dev/sdb /mnt
sudo btrfs device delete missing /mnt
  • Si no usabas RAID1/RAID10, los datos que residían exclusivamente en el disco fallado se perderán.
  • Tras reemplazar el disco físico, añade el nuevo dispositivo con btrfs device add y vuelve a balancear.

Quitar un disco del pool

Para retirar un dispositivo sano del pool montado en /mnt:

sudo btrfs device delete /dev/sdc /mnt

Esta operación mueve los datos fuera del disco que se elimina; puede tardar y fallará si no hay espacio suficiente en los discos restantes.

Montaje automático en /etc/fstab (recomendación: usar UUID)

Obtén el UUID del dispositivo con blkid o lsblk:

sudo blkid /dev/sdb
# o
lsblk -o NAME,UUID,MOUNTPOINT

Entrada ejemplo (dispositivo directo, menos recomendable que usar UUID):

/dev/sdb /mnt btrfs device=/dev/sdb,device=/dev/sdc,device=/dev/sdd,device=/dev/sde 0 0

Mejor: usar UUID del filesystem o del RAID lógico generado por Btrfs. Reemplaza por el valor real:

UUID= /mnt btrfs defaults,device=/dev/sdb,device=/dev/sdc,device=/dev/sdd,device=/dev/sde 0 0

Al arrancar, systemd y el kernel intentarán montar el Btrfs; si falta un dispositivo y quieres permitir arranque en modo degradado, añade la opción degraded en la línea de fstab o gestiona el montaje en un script de arranque.

Opciones de montaje recomendadas

Para grandes arreglos rotativos (HDD):

compress-force=zlib,autodefrag,nospace_cache

Para SSDs:

noatime,compress=lzo,ssd,discard,space_cache,autodefrag,inode_cache

Estas opciones influyen en rendimiento, uso de CPU (compresión) y comportamiento de borrado (discard). Prueba y mide; la compresión puede ahorrar espacio pero aumenta uso de CPU.

Playbook rápido paso a paso

  1. Planifica: decide perfil (-d/-m), ten discos identificados y backups.
  2. Formatea el primer disco: sudo mkfs.btrfs /dev/sdb.
  3. Monta: sudo mount /dev/sdb /mnt.
  4. Añade discos: sudo btrfs device add /dev/sdc /mnt (repite por cada disco).
  5. Balancea si había datos: sudo btrfs filesystem balance /mnt.
  6. Verifica estado: sudo btrfs filesystem df /mnt y sudo btrfs device stats /mnt.
  7. Configura /etc/fstab usando UUID y opciones de montaje.
  8. Monitoriza SMART de discos y ten procedimientos de reemplazo y pruebas periódicas.

Lista de verificación según roles

Administrador de sistemas:

  • Verificar compatibilidad del kernel y utilidades btrfs-progs.
  • Probar conversiones y restauraciones en entorno no productivo.
  • Hacer snapshots periódicos antes de operaciones de balance.

Usuario doméstico:

  • Hacer copia de seguridad antes de formatear.
  • Usar RAID1 si requieres tolerancia a fallos.
  • Evitar mezclar discos de tamaños muy diferentes si buscas rendimiento consistente.

Casos en los que Btrfs puede no ser la mejor opción

  • Necesitas soluciones con soporte corporativo largo plazo y documentación de empresas: ZFS en algunas plataformas o sistemas gestionados pueden ser preferibles.
  • Si no quieres gestionar la complejidad del pooling/RAID a nivel de FS, LVM + ext4 puede ser más sencillo.
  • Operaciones experimentales de Btrfs (a lo largo del tiempo hubo funciones que evolucionaron): comprueba la versión de btrfs-progs y notas de la distribución.

Modelo mental rápido

Piensa en Btrfs como un “contenedor inteligente” para discos: maneja cómo y dónde se escriben bloques (perfil), puede duplicarlos (mirroring), y puede moverlos entre discos cuando añades o quitas dispositivos (balance). Esto te permite tratar muchos discos como si fuesen uno solo.

Mapa de decisiones (Mermaid)

flowchart TD
  A[¿Cuántos discos tienes?] -->|1| B[Usa ext4 o Btrfs single]
  A -->|2| C[¿Quieres redundancia?]
  C -->|Sí| D[Usa Btrfs raid1]
  C -->|No| E[Usa Btrfs single o raid0]
  A -->|>=4| F[¿Deseas rendimiento + redundancia?]
  F -->|Sí| G[raid10]
  F -->|No| H[raid1 o raid0 según preferencia]

Pruebas y criterios de aceptación antes de producción

  • El sistema se monta automáticamente tras reinicio (o monta manual sin errores).
  • btrfs device scan y btrfs filesystem df /mnt muestran los dispositivos esperados.
  • Tras simular la pérdida de un disco (desconectar y montar en modo degradado), btrfs device delete missing /mnt completa sin pérdida de datos cuando hay redundancia.
  • Restauración: al sustituir un disco y añadir el nuevo dispositivo, el balance redistribuye los datos correctamente.

Riesgos y mitigaciones

  • Riesgo: fallo simultáneo de varios discos. Mitigación: copias externas y snapshots regulares.
  • Riesgo: metadata corrupta. Mitigación: usar perfiles que incluyan duplicación de metadata (-m raid1) y monitorizar errores con btrfs device stats.
  • Riesgo: operaciones de balance largas que ocupen I/O. Mitigación: programar en ventanas de baja carga o usar throttling.

Alternativas a Btrfs

  • ZFS: madura, funciones similares, diferente licencia y consumo de RAM; buena para entornos de servidor.
  • LVM + mdadm: enfoque tradicional de capas (volúmenes lógicos + RAID a nivel bloque).
  • ext4/XFS sobre LVM: sencilla y ampliamente soportada si no necesitas pooling a nivel de FS.

Comandos útiles de verificación

# Mostrar información general del filesystem
sudo btrfs filesystem df /mnt

# Mostrar dispositivos en el pool
sudo btrfs filesystem show

# Estadísticas de errores por dispositivo
sudo btrfs device stats /mnt

# Estado de subvolúmenes
sudo btrfs subvolume list /mnt

# Iniciar un balance con límites (para evitar saturar I/O)
sudo btrfs balance start -dusage=5 /mnt

Glosario rápido

  • Balance: operación que redistribuye bloques para optimizar espacio tras cambios en los dispositivos.
  • Degraded: estado en el que falta un dispositivo y el filesystem puede montar con tolerancia si hay redundancia.
  • Subvolumen: unidad lógica dentro de Btrfs que puedes montar por separado.

Resumen final

Btrfs proporciona un método potente y flexible para crear pools de almacenamiento y habilitar mirroring sin capas externas. Es ideal para usuarios que necesitan combinar discos o probar configuraciones RAID a nivel de sistema de archivos. Antes de mover cargas críticas a Btrfs, prueba los procedimientos en un entorno de laboratorio, mantén copias de seguridad y monitoriza regularmente.

Crédito de la imagen: William Hook

Autor
Edición

Materiales similares

Gestiona tu historial de YouTube: ver, borrar y pausar
Privacidad

Gestiona tu historial de YouTube: ver, borrar y pausar

Crear usuarios en Active Directory desde el controlador
Active Directory

Crear usuarios en Active Directory desde el controlador

Incursiones remotas en Pokémon GO: guía y novedades
Videojuegos

Incursiones remotas en Pokémon GO: guía y novedades

Instalar Xfinity Internet en casa: guía paso a paso
Guía técnica

Instalar Xfinity Internet en casa: guía paso a paso

Arreglar Instagram en Windows 11 — Guía rápida
Soporte técnico

Arreglar Instagram en Windows 11 — Guía rápida

Cambiar navegador predeterminado en Windows 11
Windows

Cambiar navegador predeterminado en Windows 11