TrueNAS is Multi-OS
Welcome to the post-OS Era
There was a time in history where all that mattered was an Operating System (OS) and the hardware it ran on — the “pre-software era”, if you will. Your hardware dictated the OS you used.
Once software applications became prominent, your hardware’s OS determined the applications you could run. Application vendors were forced to juggle the burden of “portability” between OS platforms, choosing carefully the operating systems they’d develop their software to. Then, there were the great OS Wars of the 1990s, replete with the rampant competition, licensing battles, and nasty lawsuits, which more or less gave birth to the “open source OS” era.
The advent of the hypervisor simultaneously gave way to the “virtual era” which set us on a path of agnosticism toward the OS. Instead of choosing from the applications available for your chosen OS, you could simply install another OS on the same hardware for your chosen application. The OS became nothing but a necessary cog in the stack.
TrueNAS open storage enables this “post-OS era” with support for storage clients of all UNIX flavors, Linux, FreeBSD, Windows, MacOS, VMware, Citrix, and many others. Containerization has carried that mentality even further. An operating system, like the hardware that runs it, is now just thought of as part of the “infrastructure”.
So, which OS should TrueNAS use? There have been some comments in the press about our plans, so we thought it best to share a fuller picture.
Most are aware by now that we have decided to unify FreeNAS & TrueNAS into a single software image and brand: TrueNAS Open Storage. With the release of Version 12.0, what was previously called FreeNAS will now be TrueNAS CORE. What was formerly TrueNAS will now be TrueNAS Enterprise. Both of these TrueNAS editions use FreeBSD 12.0 as the base OS and it has been performing very well. Future development for these editions will continue on FreeBSD.
We also announced the start of a new Open Source project, called TrueNAS SCALE. The goals of this project include running Linux containers and building scale-out clustered storage. Because of these project goals, we chose Linux (Debian) as the base OS so that we had access to all of these container and clustering tools and could deliver a well-integrated user experience in a reasonable timeframe.
So, TrueNAS is now officially multi-OS. As ComputerWorld once said, “Welcome to the post-OS Era”.
The history of TrueNAS is FreeNAS and FreeBSD. FreeBSD is a well-structured OS with our preferred BSD license. It integrates well with ZFS and is well suited to the Open Storage business model that TrueNAS uses. The modularity, stability, and simplicity of FreeBSD are well known. This translates into simpler and easier to use software, particularly for a storage platform. Who doesn’t love that?
However, the marketplace winner for new applications is the Linux OS and Containers. Even Microsoft is embracing this reality. Whether you prefer Docker, LXC, or Kubernetes, the primary application platform for the next decade is containers and scale-out infrastructure. If application platforms will be simpler and cheaper by integrating Linux containers with ZFS storage, then who would not want that option?
The iXsystems Engineering Team looked at the choices and decided that being multi-OS was the right solution. It was better than picking one OS for all products and having to make major tradeoffs with respect to stability, continuity, market reach, and innovation. We also wanted to be more inclusive, broadening our community by inviting users and developers that are familiar with Linux. Therefore, being “multi-OS” gives our users and developers the best of both worlds:
- Stability and reliability of our current TrueNAS CORE/Enterprise products by continuing to deliver them on FreeBSD.
- Faster access to the foundational technologies required to make TrueNAS SCALE (containers, scale-out) into a best-in-class hyperconverged infrastructure.
The critical element of the system common to all TrueNAS editions is ZFS which has to secure, store, and manage data over many years and even decades. We also needed to invest in enabling TrueNAS as a multi-OS capable platform.
How did we enable Multi-OS?
Starting with the FreeNAS 11.1 code base from a couple of years ago, we have invested in the multi-OS transition with a few key initiatives:
- Middleware was updated to be OS independent and have clean REST and Web sockets APIs.
- Web user interface was modernized using Angular and the new APIs. It is also OS independent.
- Collaboration with Open Source component projects like Samba and rclone to ensure we would have portability of key components.
- Minimize use and exposure of Linux’s systemd and FreeBSD’s rc.d.
- OpenZFS 2.0 integration of FreeBSD and Linux so that data and pools could be migrated easily between OSes.
- QA/testing infrastructure built so that we could test all editions with the same tests.
What developers will find is that apart from the OS, over 90% of TrueNAS software is shared between the CORE, Enterprise, and SCALE editions. More importantly for users, improvements to one edition will generally be shared and available for the other editions.
What is the impact on TrueNAS users?
For users, nothing… except for more rapid development of new features and solutions. There will be more choices in the future, but we assume there are no objections to that!
For Linux developers, there will be new opportunities to contribute to the Open Source TrueNAS SCALE project. We aim to make it a very well coordinated and managed environment to develop the best Open Hyperconverged Infrastructure. We’ll be calling for contributors soon.
If you have any additional questions or need advice on a new project, please email us at info@iXsystems.com. We are standing by to help.