Linux On System Z - Virtualization

Virtualization

Linux is not emulated on a mainframe. It runs as a complete native operating system, like other mainframe operating systems, at full speed using mainframe processor instructions. Thus, in its simplest configuration, a single instance of Linux can technically occupy a whole mainframe. This configuration is uncommon and not often economically sensible. IBM System z servers can run mixed workloads, including numerous other operating systems, through the use of virtualization. Both hardware and software co-evolved over decades to support these workloads.

System z mainframes are capable of multiple levels of virtualization. In the first level of virtualization, a single machine can be divided into as many as 60 logical partitions (LPARs), and each LPAR is a separate virtual machine running a separate operating system (OS). LPARs are implemented in hardware using a feature called PR/SM which can (optionally, typically) dynamically adjust LPAR boundaries according to real-time demands. This hardware feature is always active in modern mainframes, even in the simplest configuration with a single LPAR spanning the entire machine.

Most Linux on System z customers take advantage of an additional virtualization level, z/VM. This is a mainframe OS with a long history, and one of its main functions is a hypervisor, a provider and manager of virtual machines. Operating systems, such as Linux, that run within a z/VM virtual machine are called guests or images. z/VM virtualizes not only processors and memory but also mainframe (ESCON or FICON) disk storage, networking, cryptographic accelerators, and other mainframe resources.

z/VM operates inside an LPAR, like any other mainframe OS. This provides two levels of Linux virtualization: based on hardware, and based on a hardware-assisted hypervisor. Moreover, z/VM can also be a guest of z/VM, creating nested levels of virtualization at any number of levels deep. Nested virtualization has extra overhead, so running z/VM as a guest is primarily used for testing purposes.

Read more about this topic:  Linux On System Z