Yesterday I threw away the SmartOS hypervisor from my home lab server. SmartOS is an excellent operating system (based on the Illumos, an open source fork of Solaris) made for running very demanding cloud infrastructures. Zones, ZFS, DTrace, the KVM port are some of the kicking ass features built-in into SmartOS.
If you compare it to Xen or ESX, it’s pretty lightweight with the memory and doesn’t require disk based installation procedure because it usually boots from an USB image. When it comes to updates, if you screw it up you can easily rollback to an old USB image. Actually, I couldn’t find any drawbacks with SmartOS, but I still got rid of it. I’ll tell you why.
The rise of the containers is pushing away the boundaries of virtualization. The entire application stacks can be deployed much faster and with no virtualization overhead at all. “Every single CPU cycle that goes to your hypervisor is money wasted”, a Nasser’s Manesh quote, summarizes pretty much the previous statements. Running containers at bare metal performance is a reality.
CoreOS is a distributed orchestration platform for Docker and Rkt containers. Everything on CoreOS runs in a container. CoreOS is now powering my HP ProLiant DL160 G6 server. If you are curious about the specifications, here is:
- 2 x Intel Xeon E5645 hex core processors
- 32 GB DDR3 RAM
- 2 x 1 TB SATA disks
- 2 NIC adapters
CoreOS installation was straightforward. I booted the server from the CoreOS ISO image. Next, I generated a public/private key pair on my laptop:
The private key is used to ssh the CoreOS machine. After a small network issue, I was able to copy the public key to the server. One last thing was to create the minimal cloud-config
yaml configuration file.
I was ready to start the installation on /dev/sda
disk device by executing the coreos-install
script.
It took about 10 minutes to download the latest image and to setup the CoreOS. Really fast! I was eager to test the installation (note the user name is core).
It works like a charm! Having a CoreOS cluster is more fun, so I am planning to deploy the KVM instance on the laptop. That should be enough to try things out. I am looking forward to try pachyderm, spark or storm in a containerized environment. Learning about etcd, fleet and flannel is going to be an exciting journey. I’ll share about the experience here - on the place where bunnies dwell.
See you soon.