Guia BTRFS en lechuga

Introducción

Web con documentación sobre el formato btrfs

Guia general: https://wiki.archlinux.org/index.php/Btrfs

Cheatsheet: https://blog.programster.org/btrfs-cheatsheet

Mirar paquete btrfsmaintenance: https://github.com/kdave/btrfsmaintenance/blob/master/btrfs-defrag.sh

Creación de un sistema de ficheros BTRFS

Creación de un sistema de ficheros
sudo mkfs.btrfs -L [etiqueta] [/dev/partition]

Convertir un sistema ext3/ext4 a btrfs: https://btrfs.wiki.kernel.org/index.php/Conversion_from_Ext3
sudo btrfs-convert /dev/partition

Visualización de pools

Visualizar dispositivos con btrfs
sudo lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL

Visualizar estado de los pools detectados
sudo btrfs filesystem show

Ver estadísticas de un pool
sudo btrfs device stats [path]

Ver espacio libre
btrfs filesystem df _path_
btrfs filesystem usage _path_

Añadir y quitar dispositivos de almacenamiento

Guia: https://btrfs.wiki.kernel.org/index.php/Using_Btrfs_with_Multiple_Devices#Using_add_and_delete

Añadir un disco (recomendable balancear después)
sudo btrfs device add /dev/new_device /mnt/pool_nocrit

Eliminar un disco del pool (se redistribuyen sus datos por el resto del pool)
sudo btrfs device /dev/old_device /mnt/pool_nocrit

Substituir un disco
sudo btrfs replace start [devid] /dev/sda /mnt/pool_backup
sudo btrfs replace status /mnt/pool_backup
sudo btrfs filesystem resize 1:max /mnt/pool_backup

Mantenimiento del pool

Cambiar etiqueta
btrfs filesystem label PuntoDeMontaje NuevaEtiqueta

Balance sistema de ficheros (proceso muy lento)
btrfs filesystem balance start /mnt/pool_nocrit

Estado del balanceo de ficheros
sudo btrfs filesystem balance status /mnt/pool_nocrit

Hacer un snapshot de un subvolumen
sudo btrfs subvolume snapshot [-r] /mnt/pool_nocrit /mnt/pool_nocrit/snapshot

Crear un subvolumen
sudo btrfs subvolume create /mnt/pool_nocrit/

Ver subvolumenes
sudo btrfs subvolume list [path]

Borrar un subvolumen
sudo btrfs subvolume delete [path]

Incrementar una imagen btrfs en un archivo loop

Agrandar el fichero loop (ej. 100MB, 1GB, etc.)
fallocate -l [nuevo tamaño del archivo] lxc_backend.img

Extender el filesystem
btrfs filesystem resize [nuevo tamaño] [punto de montaje]