Ready to dive one more level deeper into the model? Processing virtualization (see Figure 4-1) has five forms: parallel processing monitors, workload management monitors, high availability/fail over/disaster recovery monitors, virtual machine software, and operating system virtualization and partitioning. Parallel processing, workload management, and high availability configurations are commonly called “clusters,” even though they serve different purposes. Although some forms of processing virtualization, such as virtual machine software and operating system virtualization and partitioning software, seem similar (see Chapter 3 for more information on application virtualization), processing virtualization operates at or below the operating system.
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.
As shown in Figure 4-2, there are many different forms of processing virtualization. They make it possible for either a single system to appear to be many or many systems appear to be a single system.
Let’s examine each type in turn:
Virtual machine software allows the entire stack of software that makes up a system to be encapsulated into a virtual machine file. Then a hypervisor can run one or more complete virtual systems on a physical machine. There are two types of hypervisors: A type 1 hypervisor runs on top of the physical system. A type 2 hypervisor allows a guest system to run as a process under another operating system. Each of these systems processes as if it has total control of its own system, even though it may only be using a portion of the capabilities of a larger physical system.
Operating system virtualization and partitioning allows many applications to run under a single operating system and gives each a completely isolated, protected environment. Each application functions as if it is running on its own system and is managing its own resources.
Parallel processing monitors make it possible for many machines to execute the same applications or application components, with the goal of reducing the processing time of the application. Each system is asked to process one segment of data or run a single application component. As it finishes its task, the parallel processing monitor passes it another task to complete. This computational approach allows applications to complete hundreds, thousands, or, perhaps, tens of thousands times faster.
Workload management monitors (also known as load balancing monitors) make it possible for multiple instances of a single application to run simultaneously on many machines. As requests are made, the workload monitor sends each to the system having the most available capacity. While each application may run no more quickly than before, more people can be served by the application.
High availability/fail over/disaster recovery monitors make it possible for people using a computing service to be protected from an application, system, or system component failure. The monitor detects a failure and restarts an application to a surviving system.
Memory virtualization or distributed cache memory makes it possible for many systems to share their internal memory. This capability is at the heart of the many non-relational databases known collectively as NoSQL databases.
Processing virtualization is the best choice if the organization is pursuing the following goals:
The organization needs to have different workloads or applications share the same machine, even though those workloads or applications were developed to run under different versions of the same operating system, say Windows Server 2003 and Windows Server 2008. Virtual machine software, a form of processing virtualization, makes it possible to run several different operating systems on the same physical system simultaneously.
The organization needs to have different workloads or applications share the same machine, even though those workloads or applications were developed to run under different operating systems, say Windows Server 2008 and Linux. Virtual machine software, a form of processing virtualization, makes it possible to run several different operating systems on the same physical system simultaneously.
Applications must remain available even though components or complete systems have failed. This can be achieved using three different processing virtualization technologies: high availability/fail over/disaster recovery monitors, workload management monitors, or virtual machine software combined with a special form of management software. Complete system environments can be made to fail over from one physical system to another.
The organization needs a single application to run faster than is possible using a single system. In this case, parallel processing software can be used to harness the computational power of many physical or virtual systems to handle tasks significantly faster or significantly larger than a single system could manage.
The organization needs to reduce the overall cost of hardware, reduce power consumption, and/or reduce system administrative costs. Virtual machine or operating system virtualization and partitioning software could be used to move multiple physical system workloads onto a single physical machine. While this can reduce the overall costs of hardware, power, or system administration, it may not reduce the overall costs of administrations, operations, or software.
The organization needs to manage costs by optimizing the use of physical systems. Virtual machine or operating system virtualization and partitioning software can be used to bring many workloads together on a single machine. The goal is to bring workloads having different peak usage patterns together on a single physical machine. If done correctly, idle time for one workload is the busy time for another.
Although there are many players in the processing virtualization market, a short summary of the most important suppliers follows:
Citrix offers virtualization technology in a number of different categories. Citrix acquired XenSource. The company’s XenServer is a hypervisor. The company also offers workload management software.
Microsoft acquired Connectix in February 2003. The company’s product was renamed Hyper-V and has been enhanced significantly over the years. Microsoft also offers parallel processing, workload management, and high availability/fail over/disaster recovery software.
VMware offers a hypervisor called ESX Server. It has developed virtual machine migration software and automation software that functions as a high availability/fail over/disaster recovery product.
There are many different environments in which processing virtualization can be beneficial. The following list contains only a few examples.
Modeling of financial transactions, architectural models, and creation of digital content is very processing intensive. Parallel processing monitors are used to harness the power of many physical systems to create a single, very-high-performance computing environment.
Organizations needing to support enormous transactional workloads, such as an ecommerce site, use workload managers to allow their order entry application to run on many physical systems. This makes it possible for hundreds of thousands or, perhaps, millions of customers to be serviced simultaneously.
Applications that cannot be allowed to fail or slow down may be hosted on several systems simultaneously. If a system, the application, or some application component doesn’t meet service-level objectives, the application can be automatically restarted on another system. Another use of this technology is to allow multiple systems to shadow the functions of a primary system. If that primary system fails, the backup systems can complete the transactions in flight. The end users are unaware of a failure.
Organizations wish to make optimal use of their physical systems, but they need to make applications supported by many different operating system versions or operating systems function side by side. This is the approach commonly selected for industry-standard system workloads, even though operating system virtualization and partitioning might be a better choice in many situations.
When all of an organization’s applications are designed to work with a single operating system, it might be more efficient to use operating system virtualization and partitioning rather than virtual machine software to provide the application isolation and system optimization needed. This is the approach usually selected for mainframe and midrange system workloads.