migrating to space_cache=2 and btrfs userspace commands
From: DanglingPointer <hidden>
Date: 2021-07-13 15:39:00
We're currently considering switching to "space_cache=v2" with noatime
mount options for my lab server-workstations running RAID5.
* One has 13TB of data/metadata in a bunch of 6TB and 2TB disks
totalling 26TB.
* Another has about 12TB data/metadata in uniformly sized 6TB disks
totalling 24TB.
* Both of the arrays are on individually luks encrypted disks with
btrfs on top of the luks.
* Both have "defaults,autodefrag" turned on in fstab.
We're starting to see large pauses during constant backups of millions
of chunk files (using duplicacy backup) in the 24TB array.
Pauses sometimes take up to 20+ seconds in frequencies after every
~30secs of the end of the last pause. "btrfs-transacti" process
consistently shows up as the blocking process/thread locking up
filesystem IO. IO gets into the RAID5 array via nfsd. There are no disk
or btrfs errors recorded. scrub last finished yesterday successfully.
After doing some research around the internet, we've come to the
consideration above as described. Unfortunately the official
documentation isn't clear on the following.
Official documentation URL -
https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs(5)
1. How to migrate from default space_cache=v1 to space_cache=v2? It
talks about the reverse, from v2 to v1!
2. If we use space_cache=v2, is it indeed still the case that the
"btrfs" command will NOT work with the filesystem? So will our
"btrfs scrub start /mount/point/..." cron jobs FAIL? I'm guessing
the btrfs command comes from btrfs-progs which is currently v5.4.1-2
amd64, is that correct?
3. Any other ideas on how we can get rid of those annoying pauses with
large backups into the array?
Thanks in advance!
DP