The Great Linux Filesystem War

Поделиться
HTML-код
  • Опубликовано: 8 сен 2024

Комментарии • 89

  • @JanBruunAndersen
    @JanBruunAndersen Месяц назад +31

    Ahh... I thought it was about The Great Battle of:
    - /bin versus /usr/bin
    - /usr/local versus /opt

    • @mithrandirthegrey7644
      @mithrandirthegrey7644 Месяц назад +4

      It wasn't... but it SHOULD have been ;)

    • @kristeinsalmath1959
      @kristeinsalmath1959 27 дней назад +1

      For personal use ~/.opt ~/.bin, in case I can't /opt (by default)
      For servers, /usr/bin or /opt

    • @terrydaktyllus1320
      @terrydaktyllus1320 17 дней назад

      There is no "battle" between those directories.
      /bin is for core system applications that come with "every" system where as /usr/bin is for the applications you add on to the core system.
      /usr/local and /opt have no correlation anyway - /opt in Linux tends to be used for bigger applications or binary installed applications (usually non-Open Source) to keep them away from the rest of the system.
      You can argue there's a "battle" between /usr/bin and /usr/local/bin albeit that the Linux world seems to be accepting that /usr/local/bin is pretty much redundant these days.

    • @mithrandirthegrey7644
      @mithrandirthegrey7644 16 дней назад

      @@terrydaktyllus1320 wrong. There's no rule that says you can't just put everything in /bin .

    • @terrydaktyllus1320
      @terrydaktyllus1320 16 дней назад

      @@mithrandirthegrey7644 Double wrong. Where did I use the word "rule"? That's you putting words into my mouth and then arguing against them - which ultimately means I take no active role in your conversation with yourself and can leave you alone arguing with you like a bit of a loony.
      These is the "standard methodology" for laying out a UNIX / Linux filesystem - ultimately it means that a sysadmin on one type of UNIX system can go to another different UNIX system and at least "get their bearings quickly" by expecting every application and file to be in a specific place.
      Ultimately how you personally organise your own systems is up to you - generally, you can put stuff where you like as long as your PATH variable is correct and locations of dependencies aren't hard coded into a binary. Just don't ask me or any sane UNIX sysadmin to look after such a system, you're on your own there.
      Good, I'm glad we sorted that out and you can thank me later for making you a slightly better informed person today. Consider yourself lucky, my clients pay me lots of money for information like this that you have just got for free.
      Off you go then, maybe go read a UNIX book or two - Evie Nemeth's "UNIX and Linux System Administration Handbook" might be a good start for you, junior.
      Discussion closed.

  • @georgH
    @georgH 29 дней назад +3

    It takes a lot of time doing these benchmarks, thank you!
    I have two unused 750gb drive, and I've been wanting for a while to benchmark different versions of zfs on the same disks and same hardware (opensolaris, freebsd, linux; and how each evolved in time).
    But it takes forever! Phoronics benchmarks are incredibly slow. So I really appreciate your patience.

  • @l4nc
    @l4nc Месяц назад +4

    Annual test and my annual comment. Thank you for amazing job!

  • @NFvidoJagg2
    @NFvidoJagg2 Месяц назад +3

    As someone running Btrfs on my gaming rig, it's nice to see it make some gains to being on par with ext4 in terms of speed. Still got a ways to go.

  • @prashanthb6521
    @prashanthb6521 Месяц назад +7

    Thank you for this episode. I use ZFS and I love it.

  • @michaeldeloatch7461
    @michaeldeloatch7461 Месяц назад +4

    It would be nice if you would consider creating a follow-on video wherein you discuss the feature set, history and philosophy behind each of these F/S. For F/S, of course.

  • @enkaskal
    @enkaskal Месяц назад +1

    have been sooooo looking forward to this! :D
    this is my favorite series of all your videos...
    well, maybe second as i really like the historic documentary style videos the best, but FS showdowns are the most impactful to my daily life ;)

  • @georgH
    @georgH 29 дней назад +1

    That was a great run. Thank you for including bcachefs, it'll be nice to see how it improves as developers finish the main features and begin optimizing (I think it can take years, though to reach the same performance as others, I'll start using it when it's stable, not necessarily performant)

  • @joshhardin666
    @joshhardin666 Месяц назад +5

    You note that you can't easily test zfs without memory caching. Memory caching is integral to the operation of zfs, particularly when it comes to zil as the way it does COW is to write it temporarily to the zil, read it back into memory, optimize it, and then write it back to disk in zfs records. one of the whole points of the zfs architecture is to keep hot data (such as filesystem metadata, latest used small blocks, and most often accessed blocks IN MEMORY so that the disk has time to perform the expensive operations of ensuring data integrity for writes across the pool while ALSO taking advantage (depending on raidz level) of enhanced i/o via distributing reads across disks as well. - tl;dr: it's weird and it IS ram dependent to show off what it does and how it does it.

    • @CyberGizmo
      @CyberGizmo  Месяц назад +2

      haha IKR. This is a bench mark of how well a filesystem does I/O in systems engineering what completes an I/O is when a write is committed to disk, or when a read is completed from disk. I can not measure that with this new version of zfs. I have measured it just fine in the past, so zfs itself is not the issue. If i want to test the speed of memory I have lots and lots of benchmarks for that.

  • @esra_erimez
    @esra_erimez Месяц назад +3

    I click your videos fast, but not this fast. The topic is something I'm very interested in. I stick to ext4 without LVM on my workstation but keeping my eyes open.

    • @skilletpan5674
      @skilletpan5674 Месяц назад +3

      Btrfs has a lot of nice features on it that I've been following for a while. Expanding an array one disk at a time is just nice. Also not needing all the drives to be exactly the same is handy. I.e it's a good way to steadily upgrade your array over time. Why remove a small failing disk with the same small size when you can replace it with a bigger one? The file regeneration stuff is also nice. Journaling is also handy as well. If ZFS could grow a disk at at time I'd be more interested in it.
      EXT4 is just a nice "simple" filesystem that is robust code base wise. Nothing wrong as a boot drive.

  • @philiprobar
    @philiprobar Месяц назад +6

    XFS does support journaling.

  • @a7i3n93
    @a7i3n93 Месяц назад

    This was quite interesting. I've been banging my head on some of this lately. Thanks D.J.

  • @cybernit3
    @cybernit3 Месяц назад +2

    You remind me of Donald Sutherlund, heh; thank you for going over all the filesystems, I just use ext4 for my basic needs.

  • @guilherme5094
    @guilherme5094 Месяц назад +1

    Thanks DJ, and Btrfs for me.

  • @1234567zeek
    @1234567zeek Месяц назад +1

    wow, I get something out of all your videos ... thanks for the heads-up about ext5 being integrated into the kernel. Its very sad because ext4 is a great filesystem.

  • @peterjansen4826
    @peterjansen4826 Месяц назад +8

    I still use ext4, I have been tempted by xfs but overall the differences are so small that I stick to ext4. I don't get the point of btrfs, I respect the good work from the devs and if people like it then I am happy for them, but why sacrifice performance for a feature (snapshots) which you could use a dedicated tool for?

    • @terrydaktyllus1320
      @terrydaktyllus1320 Месяц назад +3

      I agree 100%. ext4 "just works" for me, it has done for years, even when I use it on software RAID and with lvm.

    • @billfarley9015
      @billfarley9015 Месяц назад +2

      My experience with Open SUSE is that btrfs snapshots are much faster than using Timeshift with ext4. I didn't notice a drop off in performance but I wasn't testing for it. Btrfs may still need some work.

    • @terrydaktyllus1320
      @terrydaktyllus1320 Месяц назад

      @@billfarley9015 I have no personal need for Timeshift. I have a backup policy that has worked fine for me since I started using Linux back in 1996 anyway. ext4 has always worked well within that backup policy.

    • @darukutsu
      @darukutsu Месяц назад +6

      Some big features which convinced me to switch at least for ZFS but same could be said about btrfs:
      1. snapshots of your environment don't take almost any space, takes milliseconds to create snapshot of large dataset
      1.5 ability to create datasets("virtual partitions") for better managing your system, backups, or filesystem features for each of them
      2. easy way to rollback, just boot to your snapshot on current machine
      3. builtin functionality for sending snapshot to remote machine
      4. builtin raids (good for remote backup site)
      5. COW, I can literally plug computer off of source without being scared of loosing data, or doing fsck after some block was corrupted. It happened to me few times when power went down and after that I have to play with fsck...
      I'm average normie computer user browsing, gaming, programming etc,etc... I haven't seen any big performance loss since switch(2 years using of zfs). But I'm no large datacentre or someone who create lots of files.

    • @peterjansen4826
      @peterjansen4826 Месяц назад

      ​@@billfarley9015I don't know if the snapshot-speed is relevant considering that you can use your PC for something else while it is making a snapshot. My philofophy: have a separate data-partition (your user-directory) and install-script and if something goes wrong then spend 10 minutes (including downloading an ISO, making the USB-stick bootable with that on it and booting it up) on a clean install and everything is fine again. In the worst case you might have to remove some directories in dotconfig, dotlocal and/or dotcache if something goes wrong in any of those directories.

  • @esra_erimez
    @esra_erimez Месяц назад +6

    3:33 No pun intended?

    • @Blubberland
      @Blubberland Месяц назад +3

      Explanation:
      His filesystem is as dead as his wife.
      en.wikipedia.org/wiki/Hans_Reiser

  • @TavishMcEwen
    @TavishMcEwen 19 дней назад

    I'll be trying out bcachefs as root spread across two ssds, two hdds, and an intel optane cache soon!
    I've already gotten a dumb dracut module to boot
    (Don't worry i have daily backups)

  • @steeltormentors
    @steeltormentors 9 дней назад

    it's kinda both surprising and unsurprising on the performance of bcachefs (written in Rust btw!).
    surprising that it got such a dismal performance compared to others.
    unsurprising because zero cost abstraction as Rust labelled themselves is a pipe-dream. Extra safety measures will always costs something.

  • @nmihaylove
    @nmihaylove Месяц назад +2

    WIth ZFS the size of the ARC is controlled via a kernel module parameter - zfs_arc_max. Maybe you can try that.
    There is also the per-dataset property primarycache=all | none | metadata which controls the ARC caching for the specific dataset. One caveat - turning off ARC also turns off prefetching which tanks the read performance with HDDs specifically. I get the impression that each ZFS record is being read separately with each request launched after the servicing of the previous one. And with an HDD it most probably causes it to be read on the next revolution of the platters. So I'd strongly advise against that. It may work for SSDs though.
    But with any of these things, when doing benchmarking, I would have thought that you'd try to tweak them to achieve the best performance, not hamper it.

  • @paxdriver
    @paxdriver Месяц назад +1

    I have an idea for zfs:
    If you have 8gigs of of ram and 16 gigs set up as swap you can consume the physical memory by mounting a ramdisk after boot so only swap will be available for operations. If the swap is on a sata ssd and everything else is running off a faster nvme then you would have the sata swap drive bottleneck all memory operations so only the filesystem speed would left to differentiate benchmark results, right?

    • @CyberGizmo
      @CyberGizmo  Месяц назад +1

      Worth a shot, thanks @paxdriver. I usually run my zfs benchmarks without a zil but yeah I use a SATA SSD when I am paired with rotational drives. For the RAID tests I am using SATA SSD since I have a ton of them laying around, will try it both with and without a ZIL

  • @entelin
    @entelin Месяц назад +1

    ZFS is more comparable to a database than it is to a traditional filesystem, and like a database it loves eating memory. I doubt traditional fs benchmarks have much meaning there.

  • @CB0T
    @CB0T Месяц назад +1

    ETX4 FTW, another great vídeo. Thanks DJWare!

  • @juancarlospizarromendez3954
    @juancarlospizarromendez3954 Месяц назад

    Many days later of uptime, the memory capacity was decreasing, probably it is due to the block leaks of the ZFS (disabled compression for lesser CPU workloads). Rebooting was the only thing to recover the memory capacity.

  • @savagepro9060
    @savagepro9060 Месяц назад +6

    Butter-FS gives Tux high cholesterol!

  • @anonamouse5917
    @anonamouse5917 28 дней назад

    I'm using Linux Mint in a simple home environment. I'd love to use EXT4 for it's search speed over NTFS. Unfortunately, I can't turn off Persistant Preallocation (space waster for my use case) or set my own Inode Table size (the terminal command only works on small drives and lies to me on large drives)☹

  • @glenni83
    @glenni83 Месяц назад

    Been a long time, since its been so close in file systems. Usually, things change a couple of times in a year, where the tables flip. Somethings tells me, that we are facing a new standard and an end point of performance. I dont see this change much the next few years. Maybe we see systems that is a bit behind improve. But they are pretty much there as well, when we look at btrfs.
    Ive been using btrfs for some time, but i switched it out on my distro, my system dont like btrfs for some reason. But i also have 990 pro disks at 4TB. For some odd reason, my system stutters with btrfs and i can see that my system i slower then normal if i change to ext4. So now ive gone back to ext4 on my distro, how ever.. Im dual booting with windows 11, meaning btrfs is a good options for putting games on. So i made a storage in btrfs on 4tb, that has my steam games and shared files that both windows and linux. You see, windows has something called winbtrfs. Now my windows read and write btrfs and no file corruptions :D So if i update the games in steam in linux, its updated in windows and vice versa. That saved me a lot of storage space, now i dont need a linux game disk or storage disk for files i want to access in both systems. I know, some crazy people even install windows now on btrfs. Something i would not do :P But they are getting to a point where things starts to get intressting.

  • @nezu_cc
    @nezu_cc Месяц назад +20

    To me, trying to prevent zfs from using ram is a stupid idea. You're trying to remove one of the selling points of zfs. Zfs loves memory and fast SSD caches to accelerate large arrays of spinning rust. Trying to benchmark it in a crippled state wouldn't be fair IMO. People build massive servers to run zfs, samba/nfs, and nothing else. There is clearly a market for that.

    • @CyberGizmo
      @CyberGizmo  Месяц назад +15

      haha maybe for you, but I am measuring the time it takes for an I/O to be committed to disk, in systems engineering that is when an I/O is complete, if I wanted to test the speed of memory, I have lots of tests for that. I have measured ZFS I/O to disk in the past without an issue, but this new version will not let me measure what I need. As for how zfs is used I am well aware of how it works, I use it everyday in my lab.

    • @kianseibel2236
      @kianseibel2236 Месяц назад +2

      ​@@CyberGizmo​ ZFS is just different. It should be configurated with mem, or it will sucks in many cases. Arc is the cache, other file systems just use OS's. Can we just throw away this feature and continue to compare this file system with anothers? And with this feature??
      I think, if we want to choose a file system in a real world, we shouldn't just measure io time or whatever. We should choose it for purpose. Or all of these mesurements make no sense. We know, that XFS is faster that ext4, but XFS restores itself more slow (im not sure acctually, it is just an example). Btrfs has snapshots but bad in random data reading. And so on. Without known purpose, we can't make decision.

    • @karnimux
      @karnimux Месяц назад

      @@CyberGizmo Can you make a video discussing how zfs works on linux and how to understand the ram usage. When I am running zfs on a linux system I have no idea what is going on with my system usage. free -m does not seem to know how much ram is being cached and how much ram is available/free on the system. What should the arc be set to according to your experience?

    • @insanemal
      @insanemal Месяц назад

      ZFS is exceptionally slow. Also it obeys io=direct so if you can force direct writes you'll get more accurate numbers

    • @VaxisPraxis
      @VaxisPraxis Месяц назад +2

      ZFS is meant to be run as a system dedicated filesytem. That is to say once you use ZFS the only other software you should be running is something like SMB to export it to the network.

  • @old486whizz
    @old486whizz Месяц назад +2

    For me the biggest complaint with XFS (which is more urgent than journaling) is shrinking the filesystem.. you cant have massive filesystems IMO that you may want to shrink for space reclaim but then you cannot shrink it.

    • @terrydaktyllus1320
      @terrydaktyllus1320 Месяц назад

      Surely if you have that much of a need to shrink (or enlarge) filesystems, then you'd underpin everything with LVM anyway, or am I missing something?

    • @old486whizz
      @old486whizz Месяц назад

      @@terrydaktyllus1320 you can't shrink xfs though (which sits on top of LVM).

    • @Knirin
      @Knirin Месяц назад

      @@terrydaktyllus1320 Preparing disks for virtual machines. On first boot they are expanded to the size of the vm.

    • @terrydaktyllus1320
      @terrydaktyllus1320 Месяц назад

      @@Knirin That seems a strange way to do it. You normally assign a maximum storage size limit for a VM, it then grows as it needs to until it gets to that maximum size. Your way seems very inefficient.

    • @Knirin
      @Knirin Месяц назад

      @@terrydaktyllus1320 Your example is of thin disk provisioning. A expanding file system has a minimum size and can then expand to handle anything larger than that minimum. If the VM’s storage is thinly provisioned the difference in used storage between a 64 GB or 256 GB expanded image will be a few megabytes of filesystem metadata. More importantly I don’t need to reinstall the operating system on the 256 GB disk image if I use an expandable filesystem.
      This technology is heavily used by cloud providers to prepare clean snapshots that they can base new virtual machines off of without needing the complexity of snapshot trees outside of the vm.
      It is also used for persistent live USB drives as well.
      How badly the lack of a compaction tool for xfs affects this process depends on how much temporary disk space a vm needs during initial installation and setup. The cloning and system initialization process usually doesn’t need as much free space.

  • @elalemanpaisa
    @elalemanpaisa Месяц назад

    I would always configure my Database to use a raw device and never on top of a filesystem though. Hence I wouldn't think about that too much here when comparing FS'

  • @NetBandit70
    @NetBandit70 Месяц назад +4

    "ResierFS is a dead project"
    savage

  • @leetucker9938
    @leetucker9938 Месяц назад

    I always like , TY

  • @CyborgZeta
    @CyborgZeta Месяц назад +1

    Huh. I didn't know ext5 was a thing.

  • @amonaxos
    @amonaxos Месяц назад

    Things going wrong...and going fast!

  • @CVLova
    @CVLova Месяц назад

    would love to see access times.

  • @Blubberland
    @Blubberland Месяц назад

    In case of a single user desktop I only need to compare the first row of each file system on each diagram?
    Or did I miss something here?
    In that case BTRFS looks worse than I would like it to.
    But I'd also like to see compression in that comparison.

  • @benhetland576
    @benhetland576 Месяц назад

    Around 7:00, what are the numbers? It's hard to interpret the diagrams, either positively or negatively, when I have no idea if the values are some score values (higher is better), some kind of time (lower is better; ns, μs, ms, seconds or maybe minutes?), or something else.

  • @drakemallard6100
    @drakemallard6100 Месяц назад

    Seems that btrfs made some nice progress during the last year

  • @ShinigamiDa
    @ShinigamiDa Месяц назад

    Any idea when the btrfs raid 5/6 will be fixed, I've been lurking around the status for a few years now.

  • @jaakkohintsala2597
    @jaakkohintsala2597 Месяц назад

    Do these test account for parallel I/O performance? I think XFS is supposed to quite performant with that.

  • @act.13.41
    @act.13.41 Месяц назад

    Thanks DJ for covering this.

  • @SouthFacedWindows
    @SouthFacedWindows Месяц назад +2

    so XFS is the best?

  • @r_j_p_
    @r_j_p_ Месяц назад

    What gets me is how slow these file systems can be when you have large number of files in a single file system or you write big files.

  • @keyboard_g
    @keyboard_g Месяц назад

    Assuming we have memory to space, is ZFS on root a good idea?
    Is rolling back to a previous snapshot was easy as BTRFS and Snapper?

    • @darukutsu
      @darukutsu Месяц назад

      yes definitely, I am no hardcore user tho, but from what I use on Arch taking snaphost periodically every 15minutes sending them once a week to remote server it maybe take 500mb after I boot and then it use ram efficiently, caching and freeing. Recommend something like zfsbootmenu to rollback. I would say 16GB is plenty and 8GB is enough for basic tasks, but the more the better. I ran zfs on freebsd with something around 6gb ram but that's different story.
      I would argue why to switch from btrfs when not using raid5/6 when already accommodated. Because updating ZFS for first few times could be pain, not knowing how to update, or which zfs to use. Don't use dkms, since some kernel version can change something and broke some internal functionality of ZFS - that's at least what I was told.

  • @skilletpan5674
    @skilletpan5674 Месяц назад +1

    SystemD is a filesystem now? Why don't they start their own kernel as well.

    • @CyberGizmo
      @CyberGizmo  Месяц назад +1

      LOL, give it time I am sure they will

    • @user-in2cs1vp6o
      @user-in2cs1vp6o Месяц назад

      ​@@CyberGizmoEh, id try it. Id try any distro for the hell of it.

  • @miaorenfeng3620
    @miaorenfeng3620 Месяц назад

    and yet, people ask why I stay away from systemd

  • @keyboard_g
    @keyboard_g Месяц назад +2

    ReiserFS is as dead a project as... well.

  • @JeremyMcMillan
    @JeremyMcMillan Месяц назад

    Why compare filesystems that suck at using memory? Memory has never been cheaper.

    • @volodumurkalunyak4651
      @volodumurkalunyak4651 Месяц назад

      Because those filesystems are actually smart to inform memory manager: "I am using x amount of memory as filesystem cache, part of it can be discarded if necsessary"
      ZFS: "i am using Y amount of memory no matter what, I dont respond to your 'free some memory' command"

  • @entelin
    @entelin Месяц назад

    "Reiserfs is dead" -- Just like his wife!

  • @Adiga_50
    @Adiga_50 Месяц назад

    Zfs is not free software, so X

    • @entelin
      @entelin Месяц назад

      That is highly debatable. "GPL & CDDL both require that the relevant code must be licensed under their license specifically" which makes it \technically\ incompatible with the GPL but it's very much a copyleft license. If the CDDL isn't "free software" then neither are BSD licenses. That said, there's some legal debate over the particulars of this and different distros come to different conclusions regarding shipping it's kernel patches. Ubuntu for example doesn't see a problem with it.