Install profile for bcache and btrfs, SSDs and several HDDs

Hi,

for some curious reasons, I am ending up with a system that contains 6 SATA powered disks (slow), including one SSD and 6 HDDs, + 2 NVMe SSDs (fast). I can use their storage capacity well.
I am currently approaching a fresh install of Fedora.

After some reading around, I am getting the sense that it would make sense to use one or both of the NVMe SSDs as a bcache for the much slower HDDs. I have difficulties finding advice on how to configure that.
I do find some mentions of bcache around Fedora 20 but nothing current, let alone in relation to btrfs.

Well, my question/topic is not yet well formed, as my understanding is not yet well formed.

So, at this point I would welcome very much suggestions on what to read that might help me better understand.

Cheers!

I’m not sure what your goals are. If it’s data preservation, you want multiple, independent copies of your data. If there is no important data and this is about understanding complex storage stacks, then the advice will be quite different. It mainly depends on your expectations.

Here’s a recent story about such a complicated arrangement:

https://lore.kernel.org/linux-btrfs/CAD7Y51gpvZ79nVnkg+i3AuvT-1OiXj0eaq2-aig38pGmBtm-Xw@mail.gmail.com/

A small hardware problem had a greater impact due to the design which reduced device isolation. The overall complexity of the storage stack made it difficult for folks to understand, in particular the user.

The more complex anything is, the more important design and expertise in each layer become. And the less you can rely on repair as a way out, the more you will have to depend on backup->reformat->restore.

Any backup is better than none. And any backup you understand and trust is better than any fancy feature rich sounding backup. I do like Btrfs snapshots with send/receive, that’s the primary way I backup these days, and it’s because I understand it and now consider it less exotic than alternatives. One hint of this can be discovered with the btrfs subvolume find-new command.

3 Likes

https://wiki.archlinux.org/index.php/bcache

ArchWiki has some good info on this topic.

1 Like

Another idea, since you have the hardware and are interested in using one of the flash drives as a cache, you could experiment with Stratis which has integrated cache support.

And separately use Btrfs on a plain partition on one of the other hard drives (no cache). And compare the two setups. Depending on your workload, it might turn out that using Btrfs native compression helps more than Stratis SSD caching. But there’s one way to find out!

For system installation, Stratis isn’t supported but I suggest just using default/automatic partitioning when installing, which for Fedora 33 will use Btrfs.

2 Likes

Thank you for this idea. Now getting back to this theme.
In case you know more about stratis: is it really the case that stratis does not yet allow for redundancy/raid-like pools? stratis: Configure Stratis local storage pools | stratis-cli System Administration | Man Pages | ManKier says the only option is no redundancy. Or do I read this wrongly?

You could use dmsetup to create your redundency then use stratis to provision the filesystems on the mapper pool.

I would also like to use just one tool for all things disk management related, but this isn’t really any different from using the motherboard BIOS or a caching RAID controller conceptually. There’s the low-level configuration of a storage array with the OS doing it’s thing on top.

It reminds me of the long ago times when you had to perform a low-level format of your hard drive using the machine BIOS before you could try to access it with an OS. Not days I’d like to return to by any stretch.

1 Like