About a year and a half ago I became aware of a pretty cool OpenSolaris offshoot called SmartOS. A year and a quarter ago I started using it at home to power the home VM platform (TFTP servers, DHCP server, DNS server, AFP-speaking backup target for Time Machine). We put some SmartOS stuff in the datacenter and in fact it’s the underlying OS for the VM that runs this blog.

But what is SmartOS anyway?

  • Based on Illumos (OpenSolaris forked just before Oracle closed it back up again)
  • A new way to think of Solaris Zones, with nice wrappers around them too
  • Unlike classic Solaris, has a decent binary package manager (pkgin from NetBSD)
  • Like Solaris 11, has a really nice startup framework (SMF)
  • Boots from memory stick or TFTP, runs from RAM
  • Runs ZFS on local storage; no need for a SAN.
  • Stores all its configuration bits in your zpool, not on the boot media, so a software upgrade is just a matter of swapping thumb drives and rebooting.
  • SmartOS is the hypervisor that runs Joyent’s cloud hosting products (this is Joyent the node.js folks)
  • Has kvm support so you can run Linux or FreeBSD or whatever in it if you want…
  • Since it’s an OS hypervisor rather than an emulator of a bare metal machine, disk space use is much more flexible, as is memory.

Shortcomings of SmartOS:

  • Documentation can be a little sparse. If you’re interested in user-land stuff like how to set up an AMP stack, you’re better off to read the Joyent Cloud docs.
  • IPv6 support is really sparse. If you want to conf up IPv6 you have to permit spoofing in the VM and then configure it with an SMF startup script of course, rather than through the provisioning process like IPv4.
  • Needs EPT if you’re going to do KVM. Pulling a random junker machine out of the trash for T&E would not be fair anyway though…

In a series of upcoming articles I’ll share some recipes I developed for a DHCP server, the blog machine setup, etc.