Network Virtualization 101: The Prelude
July 09 , 2015
Note: The material furnish in this section is copyright protected and in parts taken from my Cloud Technology Handbook (writing in progress).
Being a technology professional in the networking industry, I have witnessed triumph and demise of many technologies and the entities that pioneered those technologies. Industrial decline is a subject of academic research is not something that I would like to delve further here. That said, it is important to note, knowing about origin and analyzing potentials and pitfalls are better ways to prepare yourself and the entity for which you direct the strategy. In this series, I will explore network virtualization technologies from its origin to the future potentials and everything in between. This series of articles are intended to educate the readership from basic to advance level of network configurations in a virtualized environment. Interested readership please stay in touch and follow me at linkedin and twitter (@dchowdhu). To explain virtualized network environment and provide hand-on configuration know-how, I will use 10/25/40 and 100GbE high performance open platform networking equipment from Agema Systems (http://www.agemasystems.com ) and other opensource server tools such as Openstack, Opendaylight, Ryu, Floodlight, Chef and Puppet.
If you are following the trends in Information Technologies (IT) from the broader perspective and data networking technologies to be particular, it is obvious that entire industry is undergoing transformation. However, what most of us do not know is that this transformational change towards virtualized/dynamic network infrastructure or a better phrase “Intelligent Networks”, rooted in the experiment of IBM’s relentless innovation and refinement (Elliott, 2009) in mainframes. In the early 1960s, IBM had many systems that are generations apart and each class of systems was distinctly different than the previous. This made it difficult for customers to keep up with the changes and requirements of each system (EverythingVM, 2010).
Figure 1.0. Virtualization timeline
Another problem was that the computing systems were capable of only doing one job at a time and for many jobs a batch processing was required. IBM defines the batch processing as “jobs that can run without end user interaction, or can be scheduled to run as resources permit” (IBM, 2010). In those days, programs were written on computers using punch cards that were stacked in multiple card decks representing multiple jobs and placed in the card reader. The following figure shows an IBM 1402 punch card reader that was a peripheral of IBM1401 data processing system.
Figure 1.1 IBM 1402 punch card reader and IBM1401 Systems (Columbia, 2011)
This lack of simultaneous tasks and resource sharing capability was clearly an issue that IBM needed to resolve. However, IBM’s work on S/360 mainframe, which was introduced in 1964 as broad replacement for IBM1401 type systems, initially did not include the solution to multitasking capability. It was not until MIT took initiative with GE’s computing devices to support multiple users in their Project MAC program, IBM considered working on an operating system to support S/360 mainframe for multiuser capability. IBM’s Cambridge Scientific Center worked on this concept and delivered a pioneering operating system known as CP-40 that was geared towards S/370 mainframe. This is the beginning of first experimental operating system that had support for virtualization. This undertaking was later resulted in the first hypervisor being developed in 1967 followed by second version of hypervisor (CP-67) in 1968. The CP-67 was later known as CP/CMS. The CP/CMS (Control Program/ Cambridge or later known as Conversational Monitor System) can be considered as the first virtual machine operating system (Milberg, 2009; IBM, 2012). In 1972, IBM announced the vm/370 OS for S/370 system. The CP (control program) was the original hypervisor component that created multiple virtual machines (VM) and the CMS (Conversational Monitor System) was the light weight single user operating system. A simplistic diagrammatical representation of VM/370 architecture is given in the following figure.
Figure 1.2. VM/370 architecture (IBM, 2005; NYU, 2002).
The CP is considered hardware abstraction layer and/or virtual machine control program. In VM/370, it supports CMS and each CMS support one user program or applications. The figure above shows n number of user programs are supported by n number of CMS. This concept is somewhat similar to today’s advance concept of virtualization architecture. In fact, the CMS continues to be the components of IBM’s z/VM operating system today.
Now going back to our “virtualization” timeline in figure 2.1, the next important milestone is OpenVMS which was introduced in VAX and Alpha computer systems of DEC (Digital Equipment Corporation) in the 1977. The VAX systems were developed based on complex instruction set computer (CISC) and ISA (Instruction set Architecture) while Alpha computing system were based on RISC (Reduced Instruction Set Computer) ISA System. The CISC and RISC can be understood simply as two different types of CPU design for example, Intel’s Pentium microprocessor is a CISC design while PowerPC is a RISC. On the other hand, an ISA serves as an interface between hardware and software.
Figure 1.3. The diagrammatical representation of ISA, CISC & RISC concepts.
The figure above shows ISA, CISC and RISC architectural concept that was introduced by DEC through it’s VAX and Alpha systems lineup. DEC’s pioneering contribution did not end there; in fact, the operating system of VAX and Alpha, “OpenVMS” introduced another important concept in addition to virtualization, the “integrated computer networking” that later known as DECnet and was quite important in the history of computing networks. The DECnet was the first peer to peer network architecture and it’s contribution to today’s computing networks can be underestimated. For this reason alone, readership may find learning about DECnet worthwhile. The OpenVMS is thus historically a very important OS (Operating system). Please remember it is not an open source code though it’s source listing can be purchased (Wikipedia, 2013). In 1998, DEC was acquired by Compaq which was later acquired by HP (Hewlett Packard) in 2002. The original OpenVMS thus ended up as the HP OpenVMS as it known today. The OpenVMS is currently used in HP integrity servers and provides virtualization capabilities as depicted in the figure below.
Figure 1.4. HP OpenVMS architecture for virtualization (HP, 2006).
Originally, OpenVMS allowed soft portioning to dynamically share multi-CPU resources and optimization. Today, OpenVMS is integral parts of HP’s integrity server virtualization model allowing multiple virtual machines to share same physical resources thus increasing hardware utilization (HP, 2006).
During the OpenVMs development, IBM’s CP/CMS often referred to as VM/CMS underwent continuous innovations and refinement. National CSS took CP/CMS and started developing their own version of operating system known as VP/CSS. The VP is actually based on the concept of CP and CSS is based on CMS. In this model, each virtual machine created by VP ran a CSS operating system (OS) and this OS allowed user’s program to run and manipulate file system and virtual devices. In 1985, AT&T introduced 6300+ personal computer system with “Simultask”. The “Simultask” was a virtual machine monitor developed jointly by Locus Computing Corporation and AT&T (Wikipedia, 2013). The “Simultask” was actually developed from a software system that allowed users to run DOS/Windows 3.1 on SCO Unix in an 8086 VM (Virtual Machine) mode. In 1988 Insignia Solutions introduced SoftPC and SoftWindows emulators. The SoftPC was the first PC-era virtualization software which allowed DOS program to run on Unix workstation (McLellan, 2013). However, it soon faced stiffed competition from Virtual PC from Connectix. Based on x86 based system, Virtual PC virtualizes standard PC and hardware and supported Windows operating system. Connectix later sold the product and technology to Microsoft and evolved into Windows Virtual PC and later renamed as Microsoft Virtual PC in 2010. It allows users to put multiple operating systems (OS) in single personal computer.
In 1998, VMware filed a patent on virtualization techniques. The patent “6397242” (Virtualization System including Virtual Machine Monitor for a computer with a segmented architecture) was granted on May 28, 2002. It claims that “in a computer that has hardware processor, and a memory, the invention provides a virtual machine monitor (VMM) and a virtual machine (VM) that has at least one virtual processor and is operatively connected to the VMM for running a sequence of VM instructions, which are either directly executable or non-directly executable” (Devine, Bugnion & Rosenblum, 1998). The patent recognizes IBM’s contribution in 1960s and 1970s that was known as “Virtual Machine Monitor” (VMM) and described it as a thin piece of software that runs on top of hardware and virtualizes all resources of the machine. The following diagram shows internal interworks of virtualization system presented in the patent. The VM (virtual Machine) is communicating to the hardware through VOS (Virtual Operating System and VMM (Virtual Machine Monitor). The figure below shows a single VMM for a single VM. The VMM includes a “Decision” sub-system that invokes “BT (Binary Translation)” or “DE (Direct Execution)” engine as appropriate to accommodate VM request. The patent explores details on how BT and DE execution engine facilitate such functions through specific descriptors. In the early VMM, BT level execution was not present, VMware’s patent combines both DE and BT types of execution in single VMM.
Figure 1.5 The virtualization system presented in VMware patent no. 6397242 (Devine, Bugnion & Rosenblum, 1998).
Interestingly, the patent claims that different types of applications can be run in such virtualization system since applications need not to be tied to specific OS. For example, a HOS can be windows based and the VOS can be Unix based and thus an application developed for Unix can also be run. Following this patent, VMware announced it’s first virtual platform for Intel’s IA-32 architecture in 1999. Due to the limitation of the IA-32 architecture, the VMM was run as an application to the HOS (Andresen, 2004; Rosenblum, 2004) of this early product release. Rosenblum (2004) described such implementation of VMM as “Hosted VMM”.
In 2001, VMware released it’s first server virtualization software GSX and ESX. The GSX is a free of charge software and has less features than it’s ESX product, however, GSX is able to create, edit and play the VMs. The GSX product since then is discontinued. For further details on vmware products, please visit http://www.vmware.com . In recent days, proponents of Container based server virtualization technologies are seen as contender of hypervisor/vm based system virtualization. Details about containerized system virtualization is available at http://www.odin.com/fileadmin/media/hcap/pcs/documents/ParCloudStorage_Mini_WP_EN_042014.pdf
This notion of virtualization can be construed as the prelude to understand both network and storage virtualization. In fact, network virtualization are quite different than it is perceived from the perspective of system level virtualization. The fundamental argument and needs are the same but the way network virtualization is realized and deployed in data transport environment is different. One key points to take from this section of the article is that resource sharing is the origin of virtualization as in server so do I network and storage.
In the next section, we will explore network virtualization in details alognwith SDN (Software Defined Networking) and NFV (Network Function Virtualization).
Please stay tune..
About the Author
Director of System Engineering at Agema Systems, Inc