Article Proposal: Choosing BTRFS or LVM+EXT4

Not surprisingly there were a few comments in my LVM article and in some of the other articles around users trying to understand whether they should choose BTRFS or LVM+EXT4. It could certainly be a fairly complex topic, and full of opinion, but I think it could be useful to have a high-level comparison, with links out to more detailed discussions. This could help individuals come to a decision they are comfortable without wading through all the various bits of detailed discussions out on the Internet.

Largely the article would be an overview of my own discovery and decision process, as I’m going through the exact same questions. I think I can provide good pointers, in line with Fedora choices, and hand people the high-level information necessary for them to make a decision for their own situation and feel like it was based on explicit choice on their part instead of just being carried along in ignorance of alternatives.

I’ve been thinking on it some, and here is the sketch of what I had in mind:

tl;dr; Both are great choices, so go with the defaults unless you have some specific use case you want to address (or you want to play with new tech). If you are doing a fresh install of Fedora 33 use the default BTRFS, if upgrading from an earlier release, leave LVM+EXT4.

Start with assurances that both options are stable and mature. Highlighting the lineage and successful usage of both setups. Pointing to additional info as I find it.

BTRFS Strengths (some of these I still need to confirm/double-check, I’m still a BTRFS newbie)

  • Subvolumes for easy snapshot management (no preallocation, send/receive)
  • Online resize, including shrink
  • Directory level filesystem options (COW, compression, etc)
  • Checksuming etc

LVM+EXT4 Strengths

  • LVM volumes can host other filesystems
  • Caching volumes
  • Some virtual machine integrations with volume pools, etc

Maybe comparison of proper on-going maintenance for each setup?

Quick pointer to what is involved in going from LVM+EXT4 to BTRFS: basically reformat and reinstall.

3 Likes

Hello @troycurtisjr,
I think this would be a great article!
+1 from me.

What about keeping LVM and doing an online conversion?

Wouldn’t LVM be a bit limiting WRT BTRFS? My understanding was it doesn’t really make sense to do.

Yeah I think it definitely has some tradeoffs, and you lose some of the benefits of going with BTRFS. However it is a viable option, and you would get things like send/receive snapshot functionality. I looked at it a bit and came away with the idea of not to do it, but it seems like it should definitely be mentioned in the article.

It sounds like a timely article to me. :slightly_smiling_face: +1. I’ve created card #256 to track your article progress.

1 Like

Quick pointer to what is involved in going from LVM+EXT4 to BTRFS: basically reformat and reinstall.

I just proposed an article about conversion to dive further into the topic. (Having gone through it myself.)

Though I converted from a single non-LVM EXT4 volume. With LVM, I assume, the logical volumes would have to be merged which requires free space. And after conversion you’d have a volume group with 1 Btrfs partition. Am I correct?

Yeah there are a few options. To get the full simplicity with using Btrfs that largely motivated choosing it as the default in Fedora 33 you do need to reformat and reinstall. This way LVM is eliminated. However, running Btrfs on top of LVM is entirely reasonable, and there may be good reasons for doing so. Of course you lose some of the simplicity of file system management that a single Btrfs provides. For instance, if you wanted to be able to use certain options, such as raid1, differently for different mount points then you’d have to choose between raw partitions or LVM logical volumes to get multiple Btrfs volumes. In such a case, LVM is a lot more flexible than straight partitions.

1 Like