btrfs-balance
Balance block groups on a btrfs filesystem. tldr-pages
On Linux
Linux
Show the status of a running or paused balance operation
sudo btrfs [b status path/to/btrfs_filesystemIdentifyBalance all block groups (slow; rewrites all blocks in filesystem)
sudo btrfs [b start path/to/btrfs_filesystemIdentifyBalance data block groups which are less than 15% utilized, running the operation in the background
sudo btrfs [b start --background -dusage=15 path/to/btrfs_filesystemIdentifyBalance a max of 10 metadata chunks with less than 20% utilization and at least 1 chunk on a given device devid (see btrfs filesystem show)
sudo btrfs [b start -musage=20,limit=10,devid=devid path/to/btrfs_filesystemIdentifyConvert data blocks to the raid6 and metadata to raid1c3 (see mkfs.btrfs(8) for profiles)
sudo btrfs [b start -dconvert=raid6 -mconvert=raid1c3 path/to/btrfs_filesystemIdentifyConvert data blocks to raid1, skipping already converted chunks (e.g. after a previous cancelled conversion operation)
sudo btrfs [b start -dconvert=raid1,soft path/to/btrfs_filesystemIdentifyCancel, pause, or resume a running or paused balance operation
sudo btrfs [b cancel path/to/btrfs_filesystemIdentify