September 11th, 2024

Why Oxide Chose Illumos

The Oxide Rack will use KVM or bhyve as the VMM, considering Rust for system programming. Key features include live migration, security measures, and strong isolation for enhanced reliability.

Read original articleLink Icon
Why Oxide Chose Illumos

The document discusses the design and implementation considerations for the Oxide Rack's host operating system and hypervisor. It outlines the hardware and software components that will form the backbone of compute and storage services, emphasizing the importance of selecting an appropriate Virtual Machine Monitor (VMM). The primary candidates for the VMM are KVM on GNU/Linux and bhyve on illumos, with KVM being favored for its feature richness and support for modern virtualization needs. The document also highlights the potential of using Rust for system programming, advocating for its safety and performance benefits over traditional C. It notes the necessity of supporting popular guest operating systems like Linux and Windows, and outlines essential features such as live migration, security measures against microarchitecture attacks, and the need for robust out-of-band management. The document concludes by emphasizing the importance of isolation and sandboxing to enhance security and reliability in the virtualized environment.

- The Oxide Rack will utilize KVM on GNU/Linux or bhyve on illumos as the VMM.

- Rust is being considered for system programming due to its safety and performance advantages.

- Essential features for the Oxide Rack include live migration, security against microarchitecture attacks, and support for Linux and Windows guests.

- Strong isolation and sandboxing facilities are necessary to mitigate potential security vulnerabilities.

- The design aims to balance performance, safety, and maintainability in the virtualized environment.

Link Icon 28 comments
By @bonzini - 2 months
> QEMU is often the subject of bugs affecting its reliability and security.

{{citation needed}}?

When I ran the numbers in 2019, there hadn't been guest exploitable vulnerabilities that affected devices normally used for IaaS for 3 years. Pretty much every cloud outside the big three (AWS, GCE, Azure) runs on QEMU.

Here's a talk I gave about it that includes that analysis:

slides - https://kvm-forum.qemu.org/2019/kvmforum19-bloat.pdf

video - https://youtu.be/5TY7m1AneRY?si=Sj0DFpRav7PAzQ0Y

By @ReleaseCandidat - 2 months
Instead of stating more or less irrelevant reasons, I'd prefer to read something like "I am (have been?) one of the core maintainers and know Illumos and Bhyve, so even if there would be 'objectively' better choices, our familiarity with the OS and hypervisor trump that". A "I like $A, always use $A and have experience using $A" is almost always a better argument than "$A is better than $B because $BLA", because that doesn't tell me anything about the depth of knowledge of using $A and $B or the knowledge of the subject of decision - there is a reason half of Google's results is some kind of "comparison" spam.
By @sausagefeet - 2 months
While it's fair to say this does describe why Illumos was chosen, the actual RFD title is not presented and it is about Host OS + Virtualization software choice.

Even if you think it's a foregone conclusion given the history of bcantrill and other founders of Oxide, there absolutely is value in putting decision to paper and trying to provide a rational because then it can be challenged.

The company I co-founded does an RFD process as well and even if there is 99% chance that we're going to use the thing we've always used, if you're a serious person, the act of expressing it is useful and sometimes you even change your own mind thanks to the process.

By @taspeotis - 2 months
I kagi’d Illumos and apparently Bryan Cantrill was a maintainer.

Bryan Cantrill is CTO of Oxide [1].

I assume that has no bearing on the choice, otherwise it would be mentioned in the discussion.

[1] https://bcantrill.dtrace.org/2019/12/02/the-soul-of-a-new-co...

By @tcdent - 2 months
Linux has a rich ecosystem, but the toolkit is haphazard and a little shakey. Sure, everyone uses it, because when we last evaluated our options (in like 2009) it was still the most robust solution. That may no longer be the case.

Given all of that, and taking into account building a product on top of it, and thus needing to support it and stand behind it, Linux wasn't the best choice. Looking ahead (in terms of decades) and not just shipping a product now, it was found that an alternate ecosystem existed to support that.

Culture of the community, design principles, maintainability are all things to consider beyond just "is it popular".

Exciting times in computing once again!

By @transpute - 2 months
> Xen: Large and complicated (by dom0) codebase, discarded for KVM by AMZN

  1. Xen Type-1 hypervisor is smaller than KVM/QEMU.
  2. Xen "dom0" = Linux/FreeBSD/OpenSolaris. KVM/bhyve also need host OS.
  3. AMZN KVM-subset: x86 cpu/mem virt, blk/net via Arm Nitro hardware.
  4. bhyve is Type-2.
  5. Xen has Type-2 (uXen).
  6. Xen dom0/host can be disaggregated (Hyperlaunch), unlike KVM.
  7. pKVM (Arm/Android) is smaller than KVM/Xen.
> The Service Management Facility (SMF) is responsible for the supervision of services under illumos.. a [Linux] robust infrastructure product would likely end up using few if any of the components provided by the systemd project, despite there now being something like a hundred of them. Instead, more traditional components would need to be revived, or thoroughly bespoke software would need to be developed, in order to avoid the technological and political issues with this increasingly dominant force in the Linux ecosystem.

Is this an argument for Illumos over Linux, or for translating SMF to Linux?

By @rtpg - 2 months
> There is not a significant difference in functionality between the illumos and FreeBSD implementations, since pulling patches downstream has not been a significant burden. Conversely, the more advanced OS primitives in illumos have resulted in certain bugs being fixed only there, having been difficult to upstream to FreeBSD.

curious about what bugs are being thought of there. Sounds like a very interesting situation to be in

By @alberth - 2 months
Isn’t it simply Oxide founders are old Sun engineers, and Illumos is the open source spinoff of their old work.
By @daneel_w - 2 months
"• Emerging VMMs (OpenBSD’s vmm, etc): Haven’t been proven in production"

It's a small operation, but https://openbsd.amsterdam/ have absolutely proven that OpenBSD's hypervisor is production-capable in terms of stability - but there are indeed other problems that rule against it on scale.

For those who are unfamiliar with OpenBSD: the primary caveat is that its hypervisor can so far only provide guests with a single CPU core.

By @jonstewart - 2 months
Illumos makes sense as a host OS—it’s capable, they know it, they can make sure it works well on their hardware, and virtualization means users don’t need that much familiarity with it.

If I were Oxide, though, I’d be sprinting to seamless VMWare support. Broadcom has turned into a modern-day Oracle (but dumber??) and many customers will migrate in the next two years. Even if those legacy VMs aren’t “hyperscale”, there’s going to be lots of budget devoted to moving off VMWare.

By @JonChesterfield - 2 months
Illumos and ZFS sounds completely sensible for a company that runs on specific hardware. They mention the specific epyc cpu their systems are running on which suggests they're all ~ identical.

Linux has a massive advantage where it comes to hardware support for all kinds of esoteric devices. If you don't need that, and you've got engineers that are capable of patching the OS to support your hardware, yep, have at it. Good call.

By @throw0101b - 2 months
Somewhat related, they discussed why they chose to use ZFS for their storage backend as opposed to (say) Ceph in a podcast episode:

* https://www.youtube.com/watch?v=UvEKSqBBcZw

Certainly they already had experience with ZFS (as it is built into Illumos/Solaris), but as it was told to them by someone they trusted who ran a lot of Ceph: "Ceph is operated, not shipped [like ZFS]".

There's more care-and-feeding required for it, and they probably don't want that as they want to treat product in a more appliance/toaster-like fashion.

By @Rendello - 2 months
I like the RFDs. Oxide just did a podcast episode on the process:

https://oxide.computer/podcasts/oxide-and-friends/2065190

By @craftkiller - 2 months
I wonder if CockroachDB abandoning the open source license[0] will have an impact on their choice to use it. It looks like the RFD was posted 1 day before the license switch[1], and the RFD has a section on licenses stating they intended to stick to the OSS build:

> To mitigate all this, we’re intending to stick with the OSS build, which includes no CCL code.

    [0] https://news.ycombinator.com/item?id=41256222
    [1] https://rfd.shared.oxide.computer/rfd/0110
By @tonyg - 2 months
> Nested virtualisation [...] challenging to emulate the underlying interfaces with flawless fidelity [...] dreadful performance

It is so sad that we've ended up with designs where this is the case. There is no intrinsic reason why nested virtualization should be hard to implement or should perform poorly. Path dependence strikes again.

By @computersuck - 2 months
Because CTO Bryan Cantrill, who was a core contributor to illumos
By @rbatiati - 2 months
Letting licensing alone, I think they have a couple of killer reasons to choose Illumos: It's a fine operating system, and it's much easier for them to land the fixes/features they need on the Illumos kernel than if they've built on Linux.
By @BirAdam - 2 months
I think a bigger reason for Oxide using Illumos is that many of the people over there are former Sun folks.
By @Aissen - 2 months
Point 1.1 about QEMU seems even less relevant today, with QEMU adding support for the microvm machines, hence greatly reducing the amount of exposed code. And as bonzini said in the thread, the recent vulnerability track record is not so bad.
By @magicalhippo - 2 months
Been running Bhyve on FreeBSD (technically FreeNAS). Found PCIe pass-through of NMVe drives was fairly straight forward once the correct incantations were found, but network speed to host has been fairly abysmal. On my admittedly aging Threadripper 1920X, I can only get ~2-3 Gbps peak from a Linux guest.

That's with virtio, the virtual intel "card" is even slower.

They went with Illumos though, so curious if the poor performance is a FreeBSD-specific thing.

By @mechanicker - 2 months
Wonder if this is more due to Bhyve being developed on FreeBSD and Illumos derives from a common ancestor BSD?

I know NetApp (stack based on FreeBSD) contributed significantly to Bhyve when they were exploring options to virtualize Data ONTAP (C mode)

https://forums.freebsd.org/threads/bhyve-the-freebsd-hypervi...

By @blinkingled - 2 months
I guess that's one way of keeping Solaris alive :)
By @kayo_20211030 - 2 months
Is the date on this piece correct?

The section about Rust as a first class citizen seems to contain references to its potential use in Linux that are a few years out of date; with nothing more current than 2021.

> As of March 2021, work on a prototype for writing Linux drivers in Rust is happening in the linux-next tree.

By @anonnon - 2 months
Ctrl+f Cantrill >Phrase not found

Bryan Cantrill, ex-Sun dev, ex-Joyent CTO, now CTO of Oxide, is the reason they chose Illumos. Oxide is primarily an attempt to give Solaris (albeit Rustified) a second life, similar to Joyent before. The company even cites Sun co-founder Scott McNealy for its principles:

https://oxide.computer/principles

>"Kick butt, have fun, don't cheat, love our customers and change computing forever."

>If this sounds familiar, it's because it's essentially Scott McNealy's coda for Sun Microsystems.

By @yellowapple - 2 months
I'm surprised that KVM on Illumos wasn't in the running, especially with SmartOS setting that as precedent (even if bhyve is preferred nowadays).
By @fefe23 - 2 months
These sound like reason you retconned so it sounds like you didn't choose Illumos because your founder used to work at Sun and Joyent before. :-)

Frankly I don't understand why they blogged that at all. It reeks of desperation, like they feel they need to defend their choice. They don't.

It also should not matter to their customers. They get exposed APIs and don't have to care about the implementation details.

By @saagarjha - 2 months
Unrelated, but is this a homegrown publishing platform?
By @leoh - 2 months
I’d love to use Illumos, but a lack of arm64 support is a non-starter