Why does Linux run well on a mainframe?
There are two main reasons why Linux runs on the IBM mainframes so well.
First, Linux is largely independent of the computer architecture on which it runs. The small amount of architecture-dependent Linux code is in well-defined locations in the Linux source tree. For Linux, the mainframe is just another supported architecture.
Secondly, mainframe architecture is capable of supporting multiple operating systems -- and at the same time. From the beginning, mainframes have been designed to run multiple diverse workloads, and that meant running multiple operating systems optimized for various workload characteristics. So, as far as the mainframe is concerned, Linux is just another operating system supporting well-established workloads. What synergies exist between Linux and the mainframe?
In our book, we demonstrate how Linux benefits from mainframe hardware and virtualization technology. We show that Linux as an operating system can scale as the workload grows and [describe] how the processing power available on the mainframe can be used to run hundreds of Linux instances.
Some experts in the industry have claimed that Linux does not scale well on systems with multiple processors. To judge the ability of an operating system to scale well, you might ask the following two questions: Can a single instance of the operating system distribute work to multiple processors? Can the operating system also use multiple processors efficiently?
IBM performance experts have run experiments that demonstrate Linux's ability to use multiple processors and use them efficiently. These performance measurements clearly show that many Linux applications scale well on a mainframe, including Java applications and business intelligence workloads.
Multitasking is another important point. Linux inherits the value of the zSeries internal hardware memory structure. The mainframe memory is designed to facilitate efficient multitasking. Multitasking efficiency depends on the ability of the operating system to switch between the large number of tasks that are typically active at any time in such a system. As a result, Linux multitasking is more efficient on the mainframe than on many other platforms. How does virtualization add value to Linux/mainframe environments?
Virtualization is key to running large numbers of Linux instances on the mainframe. The IBM mainframe offers two virtualization technologies: z/VM and logical partitioning (LPAR). LPAR provides a first level of virtualization of processors and I/O, while z/VM goes beyond that by virtualizing storage and other resources.
IBM z/VM also makes it possible to run -- and manage -- hundreds of virtual Linux servers from a single point of control. Sharing the mainframe resources, virtual servers do not take up any physical space, nor do they need separate physical networking cables or cooling. Does Linux need to be tweaked or tailored to work well on a mainframe?
One might expect that an operating system needs customizing to the hardware on which it will run in order for it to use resources efficiently; not so. Only changes to Linux architecture-dependent code were needed for Linux to use symmetrical multiprocessor mainframes and use them well. In our book, we describe how Linux performs on the mainframe. Is Linux well-suited to virtualization?
Linux has made an effort to keep the operating system lean so that it can be very effective at running a single application per server. Operating systems with this characteristic lend themselves to horizontal growth -- you tend to have multiple instances of them. In contrast, there are operating systems that are designed to run almost anything in a single instance. Both approaches have their benefits.
Any operating system that can run on an S/390 or z/Architecture mainframe can also run under the control of z/VM, that is, in a z/VM-created guest. z/VM faithfully represents the complete mainframe architecture to the guest operating system. Like any other operating system that runs on the mainframe architecture, Linux runs on z/VM without any further changes.
The value of z/VM in the Linux-on-the-mainframe context is z/VM's ability to run large numbers of Linux instances simultaneously. If your model of growth was to add more Linux instances, you do not have to change that when going to Linux under z/VM. You can move your server farm from discrete, physical servers to run under z/VM as virtual servers (depending on application availability).
In the book, we explain how z/VM can manage a virtual server farm for you by dynamically allocating resources to servers that need them. You can also easily change the allocation of resources using z/VM tools. A change can be made in a matter of seconds or minutes, while the user requesting the change is still on the phone.