Btrfs Basic
Status
btrfs device states /app
btrfs fi show /app
Convert raid
Convert to raid0 and remove one disk
btrfs balance start -f -sconvert=single -mconvert=single -dconvert=single /app
btrfs device remove /dev/bcache0 /app
Add disk and convert to raid1
btrfs device add -f /dev/bcache0 /app
btrfs balance start -dconvert=raid1 -mconvert=raid1 /app
Check raid level
# btrfs fi df /app
Data, RAID1: total=2.69GiB, used=2.51GiB
System, RAID1: total=32.00MiB, used=16.00KiB
Metadata, RAID1: total=317.94MiB, used=239.55MiB
GlobalReserve, single: total=12.03MiB, used=0.00B
#
If contains multiple block group profiles, could happen when a profile conversion using balance filters was interrupted.
Data, RAID1: total=2.03GiB, used=1.86GiB
Data, single: total=704.00MiB, used=665.56MiB
System, RAID1: total=32.00MiB, used=16.00KiB
Metadata, RAID1: total=288.00MiB, used=239.56MiB
GlobalReserve, single: total=11.94MiB, used=0.00B
WARNING: Multiple block group profiles detected, see 'man btrfs(5)'.
WARNING: Data: single, raid1
Perform rebalance again
# btrfs balance start -dconvert=raid1 -mconvert=raid1 /app
Done, had to relocate 12 out of 12 chunks
Scrub
btrfs scrub start /app
btrfs scrub status /app
Error
To correct error, first find out corrupted file, then restore from backup or delete the file
dmesg -T | grep BTRFS | grep 'check error' | grep path
Then reset error count to zero
btrfs device states -z /app
Then scrub again.