The Death of Virtual Machines? Not so Fast
Dan argues that containers are great, but not always the right choice.
- By Dan Kusnetzky
I was reading "Are Containers the Beginning of the End of Virtual Machines?" In this article, Jeffrey Schwartz asks if containers, an implementation of OS virtualization and partitioning (OSVP), will replace virtual machine (VM) technology. While the analysis is certainly worth reading, he's speculating whether one type of virtualization technology will replace the other over time. I believe that both types have a good future, because they address different requirements, and both types of requirements are likely to continue to be found in enterprise datacenters.
Virtual Processing Software: A Definition
Both OSVP software and VM software are types of virtual processing software. My book, "Virtualization: A Manager's Guide" (O'Reilly, 2011), offers the following definition for processing virtualization:
Processing virtualization does one of three things: encapsulates the operating system so that many virtual systems can run on a single system, links multiple systems together so that workloads will fail over if a system fails, or links systems together so an application or data can be spread across all of them for performance or scalability. This means that, depending upon the type of processing virtualization, the application can be run on multiple systems simultaneously or run under a hypervisor. A hypervisor can run as a process under another operating system or can run directly on the system hardware. Hypervisors can support one or more complete virtual systems at the same time.
This technology, as with other virtualization technologies, was originally developed for mainframe systems in the late 1960s, was recreated on minicomputers (now called midrange machines) in the 1980s, and started appearing on industry-standard systems (x86-based) in the early 1990s.
This type of virtualization is often used in conjunction with several other types.
There are five different types of virtualization technology in this layer (see "The 7-Layer Virtualization Model" or my book for a deeper look at the layer cake I call virtualization). Workload managers, cluster managers, parallel processing managers, OSVP and VM software are all found at this layer.
Operating System Virtualization and Partitioning
OSVP virtualization technology makes it possible for different workloads to reside on the same physical host and operate independently, in near complete isolation, on the same OS. This capability has been a standard part of mainframe systems since the 1960s. It was made available as partitions, LPARs, VPARs or containers in Unix environments in the 1980s. It has reappeared in Linux environments, and several companies are offering this type of technology for Windows.
The benefits of this approach are performance and efficiency. Because one OS is supporting all these virtual environments, less memory and storage is required. Furthermore, switching from one partition to another is very fast. Also, a single physical host may be able to support several times the number of independent workloads than if VM software was being used.
While using this approach, all of the workloads work with the same OS and the same version of that OS. So mixtures of Windows, Unix and Linux workloads on the same physical host aren't part of the repertoire of this type of processing virtualization.
The tradeoff is between performance and flexibility.
Virtual Machine Software
VM software, also known as a "hypervisor," works differently than OSVP, even though some attributes are the same. Rather than sitting inside a single OS and allowing it to partition and isolate workloads, VM software typically sits below the OS. It encapsulates all of the software, from the OS all the way up to the applications running on that OS into a virtual system. Several VMs are allowed to execute simultaneously on the same physical host.
The benefits of this approach are somewhat similar to the use of OSVP. VMs can execute on the same system, but be isolated from one another. The major difference, however, is that VM software makes it possible for many different OSes or OS versions to happily work at the same time on the same physical host.
There's a cost for that flexibility, however: VM files can be big, and take up quite a bit of memory and storage. Moving them into and out of physical systems can take quite a while. Moving them from one physical machine to another can consume a lot of network bandwidth, as well. This also means the process of switching from one VM to another can take significantly more time than switching from one partition to another.
If the enterprise wants the flexibility of having Windows, Linux and Unix workloads coexisting and executing on the same physical machine at the same time, VM software is the best choice.
Dan's Take: Not One or the Other
What does all this add up to? Both types of processing virtualization technology are likely to have a strong future in the datacenter. When organizations need to run multiple workloads on the same physical system simultaneously, and they're happy to have them all run on the same OS, OSVP is the best choice. Smaller system configurations could be used to get the same or better performance. This is why Docker is getting so much attention today.
If support of workloads hosted by a number of different OSes or OS versions is required, VM software is the answer.
Daniel Kusnetzky, a reformed software engineer and product manager, founded Kusnetzky Group LLC in 2006. He's literally written the book on virtualization and often comments on cloud computing, mobility and systems software. He has been a business unit manager at a hardware company and head of corporate marketing and strategy at a software company.