I wanted to open a discussion and get some thoughts on the default use of Btrfs with its Copy-on-Write (COW) behavior on systems where NVMe storage is either absent or highly unlikely. My particular concern focuses on scenarios such as:
USB Live Boot Environments: When running a live openSUSE environment from a USB drive, performance can already be a bottleneck. Adding the overhead of Btrfs COW on top of a relatively slow USB 2.0 or 3.0 connection can make the experience noticeably sluggish.
Installers: Similarly, during the installation process itself, disk operations can feel significantly slower on traditional HDDs or even slower SATA SSDs compared to what one might expect, arguably due to the COW nature of Btrfs. This can contribute to a less responsive installation experience.
Immutable Installs (e.g., MicroOS/Aeon/Kalpa): While I understand the immense benefits of Btrfs and COW for snapshotting and rollbacks in immutable systems, I’m curious if the performance implications on non-NVMe hardware have been thoroughly evaluated for the typical user. For users with older hardware or those installing on slower drives, is the current default truly optimal for their experience, especially when disk I/O is a more frequent operation (e.g., during updates, container operations, or even just general system use)?
My primary question is whether the benefits of Btrfs COW (like snapshots and checksums) always outweigh the performance penalties on slower storage mediums, especially when considering the initial user experience with live boots and installations, or the daily usability of immutable systems on less performant hardware.
Could there be a case for:
A more intelligent default detection? Perhaps the installer could detect the storage type and offer a different default (e.g., ext4, or Btrfs with nodatacow for the @ subvolume, or even a different mount option if it helps) if NVMe isn’t present.
Clearer options during installation? While users can manually change the filesystem, perhaps highlighting the performance implications of Btrfs COW on slower drives during the installation process could be beneficial.
Optimizations for Btrfs on slower media? Are there specific Btrfs mount options or configurations that could be recommended or even defaulted to when non-NVMe storage is detected, to mitigate some of the performance overheads without sacrificing critical features entirely?
Revisiting the default for Live/Installer environments? Given that these are temporary environments, is the full Btrfs COW overhead truly necessary, or could a more lightweight filesystem be used by default to enhance responsiveness?
I genuinely appreciate the power and features Btrfs brings to openSUSE. This is more about ensuring the best possible out-of-the-box experience for the widest range of hardware, particularly for those not fortunate enough to have NVMe drives.
Could you please stop with this selfpromotion? The “■■■■■■■■■■■■■■■■■■■■■■” is becoming really annoying. It has absolutely no value for others.
I don’t find the speed difference between nvme and SATA SSDs all that noticeable in day to day use. I have both in my system. As for mechanical drives, they are so slow regardless of filesystem that I use them exclusively when capacity is needed and bandwidth really doesn’t matter. I don’t install games (or any other application) on them; I put spreadsheets, music, films etc on them. SSDs are cheap enough now that you can have speed and capacity if you need it.
Beyond a certain size, say 2-4 TB, HDDs still make some cost/performance sense depending on the workload. 6x6 TB HDDs in a ZFS array makes a lot of sense for backups, streaming, etc.
For the casual reader, I have added the following note in the prologue:
“Some remarks on science, pseudoscience, and learning how to not fool yourself. Caltech’s 1974 commencement address: Cargo Cult Science by RICHARD P. FEYNMAN”
Well yes; there’s no sense putting your uncompressed blu-ray collection and job applications on an SSD, but it’s pretty normal these days for a videogame to be upwards of 100GB and you don’t really want that on a HDD. This is why I have 5TB of SSD storage and 14TB of HDD storage lolololo