Will Manjaro make BTRFS Default?

Im curious will Manjaro make BTRFS a default file system?

I don’t know - while btrfs is a mature system and it works fine - it requires some user knowledge and maintenance.

This - in my opinion makes it - unsuitable as a default file system - just like the other lesser used Linux file systems.

4 Likes

I am using Btrfs for a few weeks, no issues at all.

It is not so hard.

Also some distros made it as default also

1 Like

I am also using it for the past weeks. I am really enjoying it.

Manjaro is on great path and i started recommending it even more.

Huge Tanks to Manjaro Developers. Love you all

I used btrfs for a while, but have dropped it in my latest re-install.
It has some very nice features indeed, but imho (or just my luck or w/e) it is not as stable wrt bad sectors on the hard disk…

1 Like

Yea I love btrfs I have been using it for maybe a year now with little to no issues. The only issues I have had were to do with something I messed up. I would love to see Manjaro chose btrfs for it’s file system it would be a welcome addition. I am also new to Manjaro been a long term linux mint user and Manjaro does a lot of things as default that mint never did.

2 Likes

I used it as the default fs for OpenSUSE Tumbleweed just before switching back to Manjaro a few months ago.

It was stable, but not performant. Once you start using more btrfs features on disk (I forgot which ones I was using, other than deduplication), it really bogs down.

That was my experience, anyway.

1 Like

Hi, there’s already a thread about it:

Btrfs should be used by those who need it.

3 Likes

There are no plans for making it the default filesystem, but there are plans on making it more easily accessible. Here is (my) current road map:

  1. Add services to automate btrfs maintenance (done)
  • automatically enable those services in calamares
  1. Fix swapfile handling for btrfs in calamares (pull request pending)
  2. Improve btrfs subvolume layout in calamares
  • needs distro configurable options to be merged
  1. Automatically setup grub-btrfs + timeshift-autosnap for btrfs in calamares
  2. Add filesystem drop down menu to automatic mode of calamares
  • needs to be done in C++/qml, so I need to learn it or someone else has to do it
  1. Add btrfs subvolume gui for the partitioning module of calamares
  • way out of my league at the moment
  1. Add some graphical tools for managing btrfs features (hopefully Fedora might do this now that they default to btrfs)

I’m happy if I get to the point 5. I’m hoping to get there by the next release, but we’ll see. If we get there, then btrfs will not be the default, but you will be able to select it very easily, and it will be user friendly enough to use for regular users. Btrfs is a great filesystem option, but it is not good for everyone.

Here is an github issue with sketch on how the filesystem selection might look like:

5 Likes

I am really looking forward to your work and I am really glad that i am a part of this community .

Because you’re still in the planning stage of BTRFS support, may i add this:

Because BTRFS works with sub-volumes (a bit like LVM) you should make sure the user has a possibility to select which sub-volume name to use at what mount-point.
Both for a fresh install and for installs on already existing BTRFS setups.
This becomes more important, actually crucial, when the user uses the same BTRFS to install multiple distros…
OpenSUSE fe. did not have that possibility yet when i tried it, maybe still has not…

This is the item 6 on the roadmap. It also becomes possible with item 3, but then you need to edit a text file before launching calamares to do it.

I’m using an NVME drive with XFS because with BTRS there is a performance penalty. Too slow.

I’m down to try btrfs to see what it’s like however I can’t believe I’m saying this but I don’t want it to replace ext4. I have two external hard drives. One is backup of the other and if they both got corrupt at the same time well you can probably figure the rest. I like server grade stability. It’s one of the things Linux has over Windows that Manjaro tries to maintain while still being arch-like.

I recently bought a Synology NAS intended for end-users and it has a default installation of btrfs. Also allowing ext4 but that’s not the default. It seems a large provider of mass storage and backup already made a choice and sells it to the general public, but of course they can limit the kind of usage. I understand that makes a difference but the fs must be stable enough to sell it to non-technical users.

Also, Facebook is using btrfs on their production servers. It’s stable and mature system by now.

However, I don’t think the ecosystem around is very beginner friendly yet. That is what I would wish to address: make a sane and stable default setup and automate the maintenance as much as possible.

3 Likes

The main thing that bogs down btrfs is having a ton of snapshots that you don’t need. If you just make snapshots and never clean any of them up your gonna have a big issue at some point. I recommend keeping at most 20 snapshots at any one time.

Usually my rule of thumb is 1 snapshot a month keep and than several weeks of past snapshots. If you do a lot of stuff in one day than I would trade all the monthly snapshots for hourly snapshots just in case you would need to go back to something in the last hour.

If you don’t care about a minor slowdown you can keep up to 50 snapshots at that point it starts to slow significantly.

I think that btrfs is super user friendly. Most things can be done with a single command and the documentation is top notch. For being terminal driven it’s really simple.

You need to set the right options on mount. Before I did that I was just using the default and on my nvme it sucked but than I optimized it with some nvme/ssd friendly options.

  • ssd: use SSD specific options for optimal use on SSD and NVME

  • noatime: prevent frequent disk writes by instructing the Linux kernel not to store the last access time of files and folders

  • space_cache: allows btrfs to store free space cache on the disk to make caching of a block group much quicker

  • commit=120: time interval in which data is written to the filesystem

  • compress=zstd: allows to specify the compression algorithm which we want to use. btrfs provides lzo, zstd and zlib compression algorithms. Based on some Phoronix test cases, zstd seems to be the better performing candidate.

  • Lastly the pass flag for fschk in the fstab is useless for btrfs and should be set to 0.