Solaris 10 has a feature called Solaris Containers that allows the creation of multiple virtual machines under one instance of the operating system. Multiple copies of Windows or Linux are needed to create multiple virtual machines with Microsoft Virtual Server or VMware's GSX because each must use its own copy of the operating system. VMware is a unit of EMC Corp. Likewise, open-source Xen requires a copy of Linux for each virtual machine.
Using an entire operating system for each virtual machine uses up system memory, generates more administrative overhead, and in the case of Windows, generates a Windows license fee for each virtual machine, says John Fowler, Sun's executive VP of the network systems group.
With Solaris Containers, each application on a server can be assigned its own memory, CPU, and storage resources but function under one running instance of the operating system.
"The goal of a virtual machine is isolation," not a unique instance of the operating system, Fowler says. Solaris Containers are isolated from each other. One container can't impede the resources of another, such as straying across a memory boundary and overwriting another application's data. Each container can have its own IP address, its own share of CPUs, and its own share of network bandwidth, he says.
"Department A can't access the virtual machine of Department B. You pretend that you gave them their own machine, but it's really root access to a container," Fowler says, meaning the department has access, similar to that of a system administrator, to the virtual machine that runs its applications.
With containers, it would be possible to install 10 production applications on one server, a practice usually avoided because the operation of one might impede the operation of several others. In virtual machines, however, boundaries are defined and enforced by the operating system, preventing such crossover interference.
"You can activate containers only as you need them," Fowler says.
One container can make use of CPU resources that are unused at the moment, even though another container might have first call on them, once its traffic level warrants their use.
New Energy Associates LLC, a supplier of electricity-demand forecasting and other utility applications, uses Solaris Containers to equip each of its developers with the equivalent of a small test data center. "The application server, the Web server, and the database server required separate boxes" to allow developers to test their new code, says Neal Tisdale, VP of software development. His best developers were spending too much time stalking the halls to find and beg permission to use three servers in order to test their code. Now those three server functions are accomplished on one workstation using three Solaris Containers, Tisdale says.
"We're putting the equivalent of a data center in every developer's office," he says.
Tisdale is saving developer time through the use of virtualization. He saved 20% of his 2006 capital budget, or $110,000, by reducing the number of new servers needed in the data center. The developers are equipped with dual-processor SunFire V40 workstations running Solaris 10 for x86.
Tisdale's move to virtualization is typical of how it can be done incrementally, at the discretion of the IT manager, Fowler says. "It's more of a journey than a Big Bang. You don't have to wake up tomorrow and have a virtual data center," he says.
Containers are the equivalent to what's known as LPARS, or Logical Partitions on an IBM mainframe. LPARS are also used on IBM AIX-based Unix servers. Hewlett-Packard's HP-UX also has a logical partitioning capability, IDC analyst Dan Kusnetzky says.
The Solaris Containers feature "does not allow another operating system to be hosted," he adds. With Microsoft Virtual Server, Windows can host a Linux virtual machine. Likewise, VMware's GSX or ESX Server can host any x86 operating system in a virtual machine on the hardware where it's running.
Another virtual machine vendor, SWsoft Inc., offers Virtuozzo for creating multiple virtual machines under one copy of Windows or Linux.