Skip to content

Documentation is lacking service setup & config steps, config example is ignored by service #294

@FalconFour

Description

@FalconFour

I'm just getting started using bees as I work on setting up a btrfs array for my data at home. Mostly experimenting - cautiously. All new stuff to me, as I'm just learning about the capabilities of btrfs, compression, deduplication, etc.

Setting up bees was a very frustrating experience with a huge hole in the documentation: it says how to build it, and it talks about config options, but there's a huge gap in "how to install it", basically. It leaves me hanging at "good luck, you've installed it, good luck figuring out how to invoke it!"

By reading the code of the scripts provided (I shouldn't have had to do that...), I traced-out that it had installed itself as a systemd service under /usr/lib/systemd/system/[email protected], an instanced service - and reading the code further, it looks like it wants a volume UUID (not a mount point or what was configured in the sample conf file).

So I started the service that way, and waited for the initial crawl.
And waited.
And waited.
I gave it a full day, full CPU, full disk I/O, sloooooooooooowwwwly churning through every byte of readable data... spamming journald with dedupe blocks... sloooooooowwwlly....
And at the end of the night, flummoxed that it was still churning, I said "it'll probably be done in an hour", set it to work overnight, went to sleep...
Woke up, IT WAS STILL CHURNING.

Early yesterday, I had realized it was placing its block map on the slow, spinning-disk bulk data array - and I decided to move it onto the main system SSD. That should rocket-speed its indexing. So I did, I moved /mnt/btrfs_pool/.beeshome over into /etc/bees and edited /etc/bees/beesd.conf to match, then restarted beesd@(uuid).service.

It turns out, no. It created an all-new block index again, completely detached from the original - despite my config file. It turns out that beesd.conf is completely ignored. Now I don't even know what size it's using.

All of this confusion arises from a complete lack of documentation about how to use "the provided beesd scripts" or its attached service. Docs completely gloss-over that part, and Googling different things comes up blank.

So I figured it'd be apt to point this out and, from the unreal amount of pain I've experienced crashing my way through this, hopefully push the docs to fill in a gap around how to use the beesd scripts and service. I now know, by reading this line, that beesd expects to find an instanced config file somewhere that ChatGPT will hopefully be able to help me decode:

FILE_CONFIG="$(grep -E -l '^[^#]*UUID\s*=\s*"?'"$UUID" "$CONFIG_DIR"/*.conf | head -1)"
[ ! -f "$FILE_CONFIG" ] && ERRO "No config for $UUID"
INFO "Find $UUID in $FILE_CONFIG, use as conf"
source "$FILE_CONFIG"

So far that's the best documentation I can find. 😵‍💫

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions