SmartOS is a Joy to Use
|Photo by Marc PEZIN on Unsplash|
I had a renewed interest in the Solaris operating systems. It was a sad time when Oracle closed the Opensolaris project and killed Solaris. But it's direct descendant Illumos project is still alive and well. There are three well know distribution based Illumos -- Omnios CE, Openindiana and SmartOS.
Omnios CE is community driven server oriented distribution
Openindiana aims to be the direct descendant to Opensolaris
SmartOS is a live OS that provides virtualization
What Illumos Offers
ZFS - The de facto file system for production systems in my opinion.
DTrace - Dynamic tracing for identifying software issues.
Zone - a container technology based on Jail (from BSD).
Crossbow - Network virtualization technology.
What SmartOS offer
SmartOS is a live OS. This means you burn the OS onto a USB key and boot from it. It's diskless. The update process involved burning another USB key and boot from that. Many components are immutable (e.g. /etc and /usr). The persistent data are stored on the internal hard drive managed by ZFS. In addition to the technologies that it inherited from Illumos, it also provides support for KVM and Bhyve.
What I need
I'm looking for a cheap machine to use as a home lab. It's going to be hosting a range of different operating systems. Therefore SmartOS is the obvious choice.
The first place you should go to is https://wiki.smartos.org/. I read through the entire guide before attempting any deployment. It's well written and has pretty much all you need to get started.
SmartOS focuses on virtualization. It consolidated the creation and management of Zones and VMs into a single command -- vmadm. It manages the prebuild image using command -- imgadm. It uses JSON file format to define the virtual environment (i.e. zone, kvm and bhyve).
A typical process for create a virtual environment contains the following:
Decide on what you want to use Zone, KVM or Bhyve.
Find the image that you want using "imgadm avail".
Import the image "imgadm avail <UUID>".
Create the JSON file that contains the specs of the virtual environment.
Run "vmadm create -f vm1.json" to create the VM.
Enjoy your virtual environment.
The process is just that simple. SmartOS's wiki page provides sample JSON files that you can copy and modify to fit your needs.
I have a cheap Dell Optiplex 9010 small form factor with Intel i7 and 8GB of RAM. I've spon up 6 virtual environments (2 zones and 4 KVMs) with in minutes.