Sun Microsystems first added virtualization features to its proprietary Unix OS with Solaris Domains, a technology that was found only on expensive, heavyweight Sun hardware such as the E10000. That’s much too large a platform for most installations, however. With Solaris Containers, Sun has brought similar functionality to the mainstream. Containers run on Solaris 10 in either the Sparc or x86 flavors and, combined with the introduction of the multicore Sun Sparc T1 processor, have breathed new life into Sun’s virtualization strategy.
Containers allow multiple Solaris 10 installations to run on a single physical server, where the virtual servers all share a common kernel but run as separate entities, with all processes in the virtual servers running under the umbrella of the host kernel. Although this concept isn’t exactly new, Solaris Zones add a welcome twist.
Zones permit much finer-grained resource control than earlier technologies did. They allow an administrator to create pools of resources that break down by CPU. Assigning Zones to these pools dictates the resources available to the Zone, be it a single dedicated CPU or a pool of several CPUs. Zones even permit administrators to allocate fractions of a CPU to a virtual machine, where previously these aspects would be controlled using Solaris Resource Manager.
The Fair Share Scheduler in Solaris 10 is responsible for proportionally allocating resources from a pool to different containers in different zones. Thus, two zones in separate containers can have different resource weighting to allocate more resources on demand to one zone or the other, giving admins a high degree of control over resource utilization.
As with all Solaris-based products, Sun’s toolset is largely command-line based, which allows admins to script resource allocation and deployment tools. Creating Containers and Zones is a fairly straightforward process via the command line. Beyond these tools, Sun offers an additional product called the Solaris Container Manager, part of its N1 management toolset. This is a GUI addition to Sun Management Center that lets administrators configure and manage Containers across multiple host systems.
Sun has also acknowledged the need to move beyond Solaris, and has been working to provide Linux binary compatibility within Containers on x86 systems. So far this capability is still in its infancy, but Sun claims that Solaris Containers running Linux apps actually achieve greater speeds than when running natively on the Linux kernel, which is definitely a neat trick.
Containers are the only virtualization option for low- and mid-range Sparc servers, but Sun also resells VMware products for use on its Opteron line. Even so, Solaris customers on any platform would be wise to give Containers a look. They certainly have the hallmark Sun thoroughness and complexity, and they back that up with solid performance.