BSD Now

Episode 279: Future of ZFS | BSD Now 279


Listen Later

The future of ZFS in FreeBSD, we pick highlights from the FreeBSD quarterly status report, flying with the raven, modern KDE on FreeBSD, many ways to launch FreeBSD in EC2, GOG installers on NetBSD, and more.

Headlines
The future of ZFS in FreeBSD
The sources for FreeBSD’s ZFS support are currently taken directly from Illumos with local ifdefs to support the peculiarities of FreeBSD where the Solaris Portability Layer (SPL) shims fall short. FreeBSD has regularly pulled changes from Illumos and tried to push back any bug fixes and new features done in the context of FreeBSD. In the past few years the vast majority of new development in ZFS has taken place in DelphixOS and zfsonlinux (ZoL). Earlier this year Delphix announced that they will be moving to ZoL: https://www.delphix.com/blog/kickoff-future-eko-2018 This shift means that there will be little to no net new development of Illumos. While working through the git history of ZoL I have also discovered that many races and locking bugs have been fixed in ZoL and never made it back to Illumos and thus FreeBSD. This state of affairs has led to a general agreement among the stakeholders that I have spoken to that it makes sense to rebase FreeBSD’s ZFS on ZoL. Brian Behlendorf has graciously encouraged me to add FreeBSD support directly to ZoL https://github.com/zfsonfreebsd/ZoF so that we might all have a single shared code base.
A port for ZoF can be found at https://github.com/miwi-fbsd/zof-port Before it can be committed some additional functionality needs to be added to the FreeBSD opencrypto framework. These can be found at https://reviews.freebsd.org/D18520
This port will provide FreeBSD users with multi modifier protection, project quotas, encrypted datasets, allocation classes, vectorized raidz, vectorized checksums, and various command line improvements.

FreeBSD Quarterly Status Update
With FreeBSD having gone all the way to 12, it is perhaps useful to take a look back at all the things that have been accomplished, in terms of many visible changes, as well as all the things that happen behind the scenes to ensure that FreeBSD continues to offer an alternative in both design, implementation, and execution.
The things you can look forward to reading about are too numerous to summarize, but cover just about everything from finalizing releases, administrative work, optimizations and depessimizations, features added and fixed, and many areas of improvement that might just surprise you a little.
Please have a cup of coffee, tea, hot cocoa, or other beverage of choice, and enjoy this culmulative set of reports covering everything that’s been done since October, 2017.
—Daniel Ebdrup

News Roundup
One year of flying with the Raven: Ready for the Desktop?
It has been a little over one year now that I’m with the Ravenports project. Time to reflect my involvement, my expectations and hopes.
  • Ravenports
  • Ravenports is a universal packaging framework for *nix operating systems. For the user it provides easy access to binary packages of common software for multiple platforms. It has been the long-lasting champion on Repology’s top 10 repositories regarding package freshness (rarely dropping below 96 percent while all other projects keep below 90!).
    For the porter it offers a well-designed and elegant means of writing cross-platform buildsheets that allow building the same version of the software with (completely or mostly) the same compile-time configuration on different operating systems or distributions.
    And for the developer it means a real-world project that’s written in modern Ada (ravenadm) and C (pkg) – as well as some Perl for support scripts and make. Things feel very optimized and fast. Not being a programmer though, I cannot really say anything about the actual code and thus leave it to the interested reader’s judgement.

    Modern KDE on FreeBSD
    New stuff in the official FreeBSD repositories! The X11 team has landed a newer version of libinput, opening up the way for KDE Plasma 5.14 in ports. That’s a pretty big update and it may frighten people with a new wallpaper.
    What this means is that the graphical stack is once again on-par with what Plasma upstream expects, and we can get back to chasing releases as soon as they happen, rather than gnashing our teeth at missing dependencies. The KDE-FreeBSD CI servers are in the process of being upgraded to 12-STABLE, and we’re integrating with the new experimental CI systems as well. This means we are chasing sensibly-modern systems (13-CURRENT is out of scope).

    The many ways to launch FreeBSD in EC2
    Talking to FreeBSD users recently, I became aware that while I’ve created a lot of tools, I haven’t done a very good job of explaining how, and more importantly when to use them. So for all of the EC2-curious FreeBSD users out there: Here are the many ways to launch and configure FreeBSD in EC2 — ranging from the simplest to the most complicated (but most powerful):
    • Launch FreeBSD and SSH in
    • Launch FreeBSD and provide user-data
    • Use the AMI Builder to create a customized FreeBSD AMI
    • Build a FreeBSD AMI from a modified FreeBSD source tree
    • Build your own disk image
    • I hope I’ve provided tools which help you to run FreeBSD in EC2, no matter how common or unusual your needs are. If you find my work useful, please consider supporting my work in this area; while this is both something I enjoy working on and something which is useful for my day job (Tarsnap, my online backup service), having support would make it easier for me to prioritize FreeBSD/EC2 issues over other projects.

      Using the GOG.com installers for Linux, on NetBSD
      GOG.com prefers that you use their GOG Galaxy desktop app to download, install and manage all of your GOG games. But customers always have the option to install the game on their own terms, with a platform-specific installer.
      GOG offers these installers for Mac, Windows and/or Linux, depending on which platforms the game is available for.
      • The installers truly are platform-specific:
      • macOS games are distributed in a standard .pkg
      • Windows games are distributed in a setup wizard .exe
      • Linux games are distributed in a goofy shell archive
      • Of course, none of those are NetBSD. So, if I wanted to even attempt to play a game distributed by GOG.com on NetBSD, which one should I pick? The obvious choice is the Linux installer, since Linux is the most similar to NetBSD, right? Au contraire! In practice, I found that it is easier to download the Windows installer.
        Here’s what I mean. For example, I ported the open source version of Aquaria to pkgsrc, but that package is only the game’s engine, not the multimedia data. The multimedia data is still copyrighted. Therefore, you need to get it from somewhere else. GOG is usually a good choice, because they distribute their games without DRM. And as mentioned earlier, picking the Linux installer seemed like a natural choice.
        Now, actually PLAYING the games on NetBSD is a separate matter entirely. The game I’ve got here, though, my current obsession Pyre, is built with MonoGame and therefore could theoretically work on NetBSD, too, with the help of a library called FNA and a script for OpenBSD called fnaify. I do hope to create a pkgsrc package for FNA and port the fnaify script to NetBSD at some point.

        Beastie Bits
        • Software as a Reflection of Values With Bryan Cantrill
        • Collection of bmc talks, updated 2018
        • wump: incorrect wumpus movement probability
        • Debugging Rust with VSCode on FreeBSD
        • SMB/CIFS on FreeBSD
        • BSD Tattoo
        • pkgsrc-2018Q4 branch announcement
        • toying with wireguard on openbsd
        • new USB audio class v2.0 driver
        • Todd Mortimer Removing ROP Gadgets from OpenBSD EuroBSDCon 2018
        • OpenBSD 6.5 release page is online
        • shell access to historical Unix versions in your browser
        • Feedback/Questions
          • Brad - ZFS Features and Upgrades
          • Andre - Splitting ZFS array
          • Michael - Priority/nice value for Jails?
            • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to [email protected]
            • ...more
              View all episodesView all episodes
              Download on the App Store

              BSD NowBy JT Pennington

              • 4.9
              • 4.9
              • 4.9
              • 4.9
              • 4.9

              4.9

              89 ratings


              More shows like BSD Now

              View all
              Security Now (Audio) by TWiT

              Security Now (Audio)

              1,971 Listeners

              Software Engineering Radio - the podcast for professional software developers by se-radio@computer.org

              Software Engineering Radio - the podcast for professional software developers

              272 Listeners

              The Changelog: Software Development, Open Source by Changelog Media

              The Changelog: Software Development, Open Source

              283 Listeners

              LINUX Unplugged by Jupiter Broadcasting

              LINUX Unplugged

              265 Listeners

              Python Bytes by Michael Kennedy and Brian Okken

              Python Bytes

              215 Listeners

              Late Night Linux by The Late Night Linux Family

              Late Night Linux

              154 Listeners

              Home Assistant Podcast by HK Media

              Home Assistant Podcast

              65 Listeners

              CoRecursive: Coding Stories by Adam Gordon Bell - Software Developer

              CoRecursive: Coding Stories

              189 Listeners

              Kubernetes Podcast from Google by Abdel Sghiouar, Kaslin Fields

              Kubernetes Podcast from Google

              181 Listeners

              Late Night Linux Family All Episodes by The Late Night Linux Family

              Late Night Linux Family All Episodes

              44 Listeners

              Linux Dev Time by The Late Night Linux Family

              Linux Dev Time

              21 Listeners

              Self-Hosted by Jupiter Broadcasting

              Self-Hosted

              135 Listeners

              2.5 Admins by The Late Night Linux Family

              2.5 Admins

              92 Listeners

              Linux After Dark by The Late Night Linux Family

              Linux After Dark

              29 Listeners

              Oxide and Friends by Oxide Computer Company

              Oxide and Friends

              47 Listeners