"Virtual" is a word used by other manufacturers today. Virtual on one machine is not the same as on other machines. On the mainframe it is not only the memory that can be virtualized. On the mainframe, virtualization has been part of the design for over 30 years. It is the key factor that allows you to do consolidation on the mainframe. For more details on virtualization, see Chapter 7, "The Value of Virtualization."
2.4.1 The roots of z/VM
In the 1960s, hardware was expensive, and it was imperative to use a computer as economically as possible, that is, to run it as much of the time as possible. The machine was needed to run existing business applications, and also to test new programs. Ideally, each tester needed a full machine with all the hardware and software available. Thus, there was a need for an operating system environment that allowed multiple users to use a single machine. Within IBM, two approaches were taken to meet the need: the Time-Sharing System (TSS) and what was to become the Virtual Machine (VM) operating system.
Time sharing allows multiple users to share the use of the operating system. Virtual machines allow multiple operating systems to share the same machine hardware.
2.4.2 Virtual machines
The VM operating system started its days as an unofficial project. Wanting to build a timesharing system for S/360 but realizing that the "official" TSS project would not be able to provide the sophisticated testing platform that they needed, developers at the Cambridge Scientific Center started work on the Cambridge Monitor System (CMS) at the end of 1964.
It was to be a new kind of operating system, a system that would provide not only virtual memory, but entire virtual machines. In the virtual machine model, the hardware resources of a computer system are managed by one computer program, the Control Program (CP). Users' activities are managed by an operating system (CMS is one such OS). Developers saw that the cleanest way to protect users from one another was to use the S/360 Principles of Operations manual to describe the user's interface to the CP. Each user would have a virtual S/360 machine image in software created by the CP. The virtual machine image appears to be actual computer hardware to the programs running in that virtual machine, including operating systems and application programs. The idea of a virtual S/360 was new, but what was really important about their concept was that nobody until then had seen how elegantly a virtual machine system could be built, with very minor hardware changes and not much software.
The CMS developers worked under a very early S/360 operating system until they got enough of CMS together so that they could start it stand-alone from a card reader. In 1972, IBM announced VM/370 as an operating system together with S/370 models 370/158 and 370/168. Today, this operating system has evolved into what is now called z/VM.
Virtualization, stemming from the time-sharing concept and the need to virtualize the hardware, made IBM go back and look at the mainframe architecture and extend it to ensure the isolation needed for the virtual machines and to allow the virtualization Control Program to optimize performance.
z/VM is an important reason why Linux on the mainframe is so attractive. The "guest operating system" capability of VM, along with the guest isolation provided by the virtual machine concept, makes it possible to run hundreds of Linux servers under z/VM.
Figure 2-14 shows a typical system with z/VM and Linux running as guest operating systems, side by side with other operating systems. z/VM itself can also run under z/VM (as a test environment, for example).
Figure 2-14. Linux as guest operating systems under z/VM
2.4.3 Logical partitioning (LPAR)
Some of the concepts of virtualization were so fundamental that it made sense to take them down below the architecture level. This became the logical partitioning (LPAR) and Processor Resource/Systems Manager (PR/SM) concepts.
Regardless of the number of central processors, a mainframe today can be divided logically into parts, giving the appearance of multiple different, totally separated and isolated computers to the users and to the system operator. A single zSeries 900 server today can be divided into as many as 15 logical partitions (LPARs).
For each LPAR, you can define the architecture and resources (central processors, central storage, and channels). A separate operating system can be installed and used in each LPAR. The operating systems in the LPARs can be different; you can run any mainframe operating system. An example is shown in Figure 2-15.
Figure 2-15. Linux images on one of two LPARS in a system
2.4.4 LPAR versus VM
With VM, resources can be dedicated to a guest operating system or virtualized. A virtualized resource appears to a program as a real resource that it can use fully. In fact, the resource is shared. With LPAR, resources can be dedicated (for the partition to use fully) or shared with other partitions. Table 2-3 shows the virtualization capabilities of VM and LPAR.