On 2018-01-08 13:17, Graham Cobb wrote:
On 08/01/18 16:34, Austin S. Hemmelgarn wrote:
Ideally, I think it should be as generic as reasonably possible,
possibly something along the lines of:
A: While not strictly necessary, running regular filtered balances (for
example `btrfs balance start -dusage=50 -dlimit=2 -musage=50 -mlimit=4`,
see `man btrfs-balance` for more info on what the options mean) can help
keep a volume healthy by mitigating the things that typically cause
ENOSPC errors. Full balances by contrast are long and expensive
operations, and should be done only as a last resort.
That recommendation is similar to what I do and it works well for my use
case. I would recommend it to anyone with my usage, but cannot say how
well it would work for other uses. In my case, I run balances like that
once a week: some weeks nothing happens, other weeks 5 or 10 blocks may
get moved.
For reference, my use case is for two separate btrfs filesystems each on
a single large disk (so no RAID) -- the disks are 6TB and 12TB, both
around 80% used -- one is my main personal data disk, the other is my
main online backup disk.
The data disk receives all email delivery (so lots of small files,
coming and going), stores TV programs as PVR storage (many GB sized
files, each one written once, which typically stick around for a while
and eventually get deleted) and is where I do my software development
(sources and build objects). No (significant) database usage. I am
guessing this is pretty typical personal user usage (although it doesn't
store any operating system files). The only unusual thing is that I have
it set up as about 20 subvolumes, and each one has frequent snapshots
(maybe 200 or so subvolumes in total at any time).
The online backup disk receives backups from all my systems in three
main forms: btrfs snapshots (send/receive), rsnapshot copies (rsync),
and DAR archives. Most get updated daily. It contains several hundred
snapshots (most received from the data disk).
It would be interesting to hear if similar balancing is seen as useful
for other very different cases (RAID use, databases or VM disks, etc).
In my own usage I've got a pretty varied mix of other stuff going on.
All my systems are Gentoo, so system updates mean that I'm building
software regularly (though on most of the systems that happens on tmpfs
in RAM), I run a home server with a dozen low use QEMU VM's and a bunch
of transient test VM's, all of which I'm currently storing disk images
for raw on top of BTRFS (which is actually handling all of it pretty
well, though that may be thanks to all the VM's using PV-SCSI for their
disks), I run a BOINC client system that sees pretty heavy filesystem
usage, and have a lot of personal files that get synced regularly across
systems, and all of this is on raid1 with essentially no snapshots. For
me the balance command I mentioned above run daily seems to help, even
if the balance doesn't move much most of the time on most filesystems,
and the actual balance operations take at most a few seconds most of the
time (I've got reasonably nice SSD's in everything).
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html