$ btrfs filesystem defrag -v -r dir/
Recursively defragment files under dir/, print files as they are processed. The file names will be printed in batches, similarly the amount of data triggered by defragmentation will be proportional to last N printed files. The system dirty memory throttling will slow down the defragmentation but there can still be a lot of IO load and the system may stall for a moment.
$ btrfs filesystem defrag -v -r -f dir/
Recursively defragment files under dir/, be verbose and wait until all blocks are flushed before processing next file. You can note slower progress of the output and lower IO load (proportional to currently defragmented file).
$ btrfs filesystem defrag -v -r -f -clzo dir/
Recursively defragment files under dir/, be verbose, wait until all blocks are flushed and force file compression.
$ btrfs filesystem defrag -v -r -t 64M dir/
Recursively defragment files under dir/, be verbose and try to merge extents to be about 64MiB. As stated above, the success rate depends on actual free space fragmentation and the final result is not guaranteed to meet the target even if run repeatedly.
$ btrfs filesystem resize -1G /path
$ btrfs filesystem resize 1:-1G /path
Shrink size of the filesystem’s device id 1 by 1GiB. The first syntax expects a device with id 1 to exist, otherwise fails. The second is equivalent and more explicit. For a single-device filesystem it’s typically not necessary to specify the devid though.
$ btrfs filesystem resize max /path
$ btrfs filesystem resize 1:max /path
Let’s assume that devid 1 exists, the filesystem does not occupy the whole block device, eg. it has been enlarged and we wan the grow the filesystem. Simply using max as size we will achieve that.
root@test:/home/test/VMs# gdisk -l /dev/sda
GPT fdisk (gdisk) version 0.8.10
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
Disk /dev/sda: 3907029168 sectors, 1.8 TiB
Logical sector size: 512 bytes
Disk identifier (GUID): 7DFD9799-AE91-4827-AC15-E6E15863A453
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 3907029134
Partitions will be aligned on 2048-sector boundaries
Total free space is 31459294 sectors (15.0 GiB)
Number Start (sector) End (sector) Size Code Name
1 2048 411647 200.0 MiB EF02 Linux filesystem
2 411648 12994559 6.0 GiB 8200 Swap
3 12994560 65423359 25.0 GiB 8300 System
4 65423360 2162575359 1000.0 GiB 8300 Linux filesystem
5 2319861760 3907029134 756.8 GiB 8300 Linux filesystem
8 2194032640 2319861759 60.0 GiB 8300 Linux filesystem
root@test:/home/test/VMs# df -h
S.ficheros Tamaño Usados Disp Uso% Montado en
/dev/sda3 25G 19G 4,7G 81% /
udev 10M 0 10M 0% /dev
tmpfs 3,2G 9,2M 3,2G 1% /run
tmpfs 7,9G 460K 7,9G 1% /dev/shm
tmpfs 5,0M 4,0K 5,0M 1% /run/lock
tmpfs 7,9G 0 7,9G 0% /sys/fs/cgroup
/dev/sda8 60G 58G 2,4G 97% /xfs
/dev/sda4 200G 185G 14G 93% /home
tmpfs 1,6G 4,0K 1,6G 1% /run/user/118
tmpfs 1,6G 12K 1,6G 1% /run/user/1000
root@test:/home/test/VMs# btrfs filesystem df /home/
Data, single: total=188.01GiB, used=185.94GiB
System, DUP: total=8.00MiB, used=48.00KiB
System, single: total=4.00MiB, used=0.00B
Metadata, DUP: total=1.50GiB, used=680.66MiB
Metadata, single: total=8.00MiB, used=0.00B
GlobalReserve, single: total=240.00MiB, used=0.00B
root@test:/home/test/VMs# btrfs filesystem show /dev/sda4
Label: none uuid: 3ac934be-2651-48d2-8850-3d3bbc8a98e0
Total devices 1 FS bytes used 186.60GiB
devid 1 size 200.00GiB used 191.04GiB path /dev/sda4
Btrfs v3.17
root@test:/home/test/VMs# btrfs filesystem resize +50G /home
Resize ‘/home’ of ‘+50G’
root@test:/home/test/VMs# btrfs filesystem df /home/
Data, single: total=188.01GiB, used=185.94GiB
System, DUP: total=8.00MiB, used=48.00KiB
System, single: total=4.00MiB, used=0.00B
Metadata, DUP: total=1.50GiB, used=680.89MiB
Metadata, single: total=8.00MiB, used=0.00B
GlobalReserve, single: total=240.00MiB, used=0.00B
root@test:/home/test/VMs# df -h
S.ficheros Tamaño Usados Disp Uso% Montado en
/dev/sda3 25G 19G 4,7G 81% /
udev 10M 0 10M 0% /dev
tmpfs 3,2G 9,2M 3,2G 1% /run
tmpfs 7,9G 460K 7,9G 1% /dev/shm
tmpfs 5,0M 4,0K 5,0M 1% /run/lock
tmpfs 7,9G 0 7,9G 0% /sys/fs/cgroup
/dev/sda8 60G 58G 2,4G 97% /xfs
/dev/sda4 250G 188G 62G 76% /home
tmpfs 1,6G 4,0K 1,6G 1% /run/user/118
tmpfs 1,6G 12K 1,6G 1% /run/user/1000
root@test:/home/test/VMs# btrfs filesystem show /dev/sda4
Label: none uuid: 3ac934be-2651-48d2-8850-3d3bbc8a98e0
Total devices 1 FS bytes used 179.06GiB
devid 1 size 250.00GiB used 191.04GiB path /dev/sda4
Btrfs v3.17