What is the current recommendation for Linux filesystem?

Hello mates,

I’m about to make a small upgrade building a new PC and I want to review the file system for it to be used together with Manjaro KDE Stable.

Currently I’m using 4 different hardware for storage:

  1. SSD sata EXT4 for root and swap
  2. SSD sata EXT4 dedicated for games
  3. HD sata NTFS personal data files shared with windows
  4. HD sata NTFS - Back-up personal data files shared with windows (this drive is unplugged, I use it only when doing back-ups)

New PC

  1. SSD NVMe TBD for root and swap
  2. SSD sata TBD dedicated for games
  3. HD Tsata TBD personal data files shared with windows
  4. no changes here

TBD = To be Defined

There are some hype for BTRFS due to snapshots, and Manjaro team put some effort in this direction, also Fedora team, but watching the video below where the guy present benchmark data and for his personal use he decided to use EXT4 for root and all the rest using OpenZFS, what is your opinion and recommendation?

My only decision right now is to convert my personal HD from NTFS to something else preferable self healing because I had some issue with new NTFS driver requiring me to boot windows to fix small issue and I’m not planning to install windows in the new machine, it’s not needed anymore.

Regarding snapshot both openZFS and BTRFS can be used with Timeshift and are well integrated to Manjaro tools/calamaris ?

1 Like

I am using this:

NTFS Windows C: + NTFS Windows D:(all data) + EXT4 Linux /

windows and linux use one big D: for data storage, NTFS C: and EXT4 Linux are only for OS and software

No swap because 16GB RAM is enough for me

About Linux filesystem, I prefer Ext4 > XFS > Btrfs, it seems that Btrfs is slow for IO, and XFS cannot shrink partition size.

On the other hand, if ZFS become stable on linux, I will use ZFS.

1 Like

There is no general recommendations.

ext4 is the defacto standard for Linux and it work well with any media.

If you need to exchange data between Windows & LInux - I’d suggest exFAT. While NTFS tend to be locked if Windows feels like it - exFAT won’t.

Other than that you should do a thorough research of the pro’s and con’s and make your own decision.

If you value your data - consider if your technical knowlegde level is adequate - play it safe - research especially on the con’s of considered filesystems.

Ext4 is the default standard, but when I do back-up with Timeshift it takes a lot of time to complete and it it copy all files (30GB each backup), so it’s time and resource consuming right? in this particular case for root partition looks like BTRFS and openZFS are a better option, they both have snapshot, and both are selfhealing, so looks like my data are better protected. Is this understand right?

For Game, performance is preferable, and the video shows openZFS is the current fastest one, right?

zfs needs more resources (so I’ve read, RAM in particular) - which could negatively affect overall performance of your system.

Games need processor/graphics and RAM - disk access is unlikely to be anywhere near to being a critical factor
and the different filesystems are not hugely different
and speed is different for different use cases (file size, more read or more write activity …)

It’s not as easy as:
this is faster than that, so: take what you think is the fastest

Much more important is that you know how to recover if something goes wrong - this is easy with ext4
with btrfs and zfs there is … a learning curve - which is not ideal when you need to get to your backup

A backup is only a backup if it is on a different disk in case the original fails - and that means doing a copy in any case, no matter the filesystem.

If you use Timeshift with rsync — which is the only way you can use it between separate filesystems — then it only consumes time and resources for the first backup. All subsequent backups are incremental and will use hard-links against the initial backup for files that have not changed. Hard-links do not consume any disk space because they are merely additional directory entries for already existing inodes.

I back up my entire system from a SATA3 SSD to a SATA2 HDD in roughly five to ten minutes when there has been a major system update, and about one to two minutes for intermediate backups.

Furthermore, filesystem throughput benchmarks are really meaningless on desktop systems due to the fact that the kernel uses caching and a virtual filesystem layer. It is only on servers with huge SQL databases and the likes where such benchmarks can be some sort of indication of the individual performance of each filesystem type, and even then there are huge differences in the numbers depending on what exactly is being tested for and what the usage scenario of the machine is.

That all said, I use btrfs because I like how sophisticated it is, but as @linux-aarhus said, ext4 is still the default, because it is time-proven and robust. That doesn’t mean that it would be the best choice, but it’s a reliable filesystem with good performance.

Your mileage may vary. :wink:

When using btrfs, i suggest using 2 devices from different vendors, so you are able to use RAID with btrfs.
Btrfs may be not the fastest, but if you use what it can best, it is very good. (I do use RAID1, (2 devices), compression (zfs zstd:9, gain 2:1), snapshots (snapper 30-60, manually rollbacks) , maybe btrfs send in the future)

You find good Information about Btrfs in the wiki

https://wiki.manjaro.org/index.php/Btrfs

I’m using Timeshift with rsync, but all new back-up it does entirely new, maybe it’s a bug, so due to disk space issue I can keep only 2 back-ups, looks like with BTRFS the snapshots are faster and consume less space, and considering this file system is self healing, I assume that it requires less maintenance from users. Or this self learning in practice is a complete different story?

1 Like

If that is the case, then you are backing up to a non-POSIX filesystem, such as NTFS. NTFS does not support hard-links, nor does it support POSIX file ownership and permissions. Therefore, it should not be used for backing up from a UNIX system, because Timeshift needs that information in order to be able to restore your backups with the correct permissions and ownership.

Yes, btrfs is self-healing, but btrfs snapshots are not backups.

3 Likes

Hello Aragorn, thanks for help but Looks like my systems is not behaving as you indicate, the timeshift back-up it done at the same SSD as root and it is EXT4, you can check in the picture below, you can also check 2 back-ups with just 2 days difference and the sizes are basically the same ~45GiB.

Note, the Timeshift indicates that windows filesystem are not supported, maybe the hard-links you mention is what BTRFS used for snapshots, but for EXT4 currently, each back-up is completely new.

Back-up from 15/feb/2022 - 45,1GiB

Back-up from 17/feb/2022 - 45,3GiB

Yes, BTRFS snapshot is not a back-up, and I use timeshift not as back-up itself but as system recovery in case of issues during updates / energy lost / System crash / forced reset, etc, I do back-up with different disk only for personal data as pointed in the original post, so snapshots fits my purpose of use. In case of hardware fault, we can replace the hardware and install everything again.

You are misreading the information. It is using hard-links. Look at the percentage of used disk space and the amount of free space left.

2 Likes

The percentage of disk space is the same because both back-up was already wrote in the disk, but as you can see below, I just deleted one of the two back-up and my total free space increased from 98GiB to 105GiB, so maybe you are partially right, part of the back-up is hard-link but it’s still 7GiB and it’s a lot.

Have you checked the size of the journald log? By default it reserves a huge portion of the filesystem it’s on. That is one of the reasons — by far not the only reason, but a valid reason still — why I use a separate partition for /var.

I don’t know if it’s exactly the same but used the command below to limit journal size

$ journalctl --vacuum-size=50M
$ journalctl --vacuum-time=2weeks

But backing to File system, winch one do you use for root and for personal files? what are your reasons, maybe the reasons helps me :grinning:

It’s a little more complicated on my end than just having everything in the root partition. :wink:

Filesystem     Type      Size  Used  Free    % Mountpoint
/dev/sda1      vfat      511M  544K  511M   1% /boot/efi
/dev/sda2      ext4      488M   60M  393M  14% /boot
/dev/sda3      btrfs     1.0G   22M  884M   3% /
/dev/sda4      btrfs      22G  7.9G   14G  37% /usr
/dev/sda5      btrfs     512M  3.4M  499M   1% /usr/local
/dev/sda6      btrfs     2.0G  145M  1.7G   8% /opt
/dev/sda8      btrfs     400G   84G  316G  21% /srv
/dev/sda9      btrfs     450G  2.2G  447G   1% /home
/dev/sda11     btrfs      20G  2.9G   17G  15% /var

Those are all on an SATA3-connected SSD. My backups are stored on /dev/sdb2, which resides on an SATA2-connected HDD and which is also a btrfspartition.

Why only /dev/sda2 is using EXT4?

Because GRUB had a problem with btrfs when I installed this system back in April 2019. :wink:

Do you know if the issue was fixed for new installations using latest Manjaro ISO file?

I believe so, yes.

1 Like

Any additional recommendation or experience are welcome mainly related to EXT4 / BTRFS / openZFS

For other mate that ready this thread I’d like to mention that the new NTFS drive was big performance improvement, but in my case, once my PC has some GPU issue that makes it crash requiring reset and the new drive generates some small issue in the HD, as windows does, it prevent my system to boot requiring me to boot on windows to check and fix the disk and back again to Linux, this is the reason I will replace the NTFS used in my data files and let it just with back-up driver and so I have a good interchangeable file system, otherwise we always need a dual boot for safety reason.

More details here: NTFS issue