z/OS Container Extensions (zCX)

z/OS Container Extensions (zCX)

z/OS Container Extensions (zCX)

Deploying Linux on Z containerized applications inside z/OS

 View Only

zCX Feature Updates

By Anthony Giorgio posted Fri April 02, 2021 08:36 AM

  

Introduction

IBM® z/OS® Container Extensions (IBM zCX) makes it possible to integrate Linux on IBM Z applications with z/OS. Application developers can develop and data centers can operate popular open source packages, Linux applications, IBM software, and third-party software together with z/OS applications and data.  Since the general availability of zCX in the fall of 2019, zCX has received significant extensions and enhancements.  This article covers the various scalability, performance, and usability improvements that are available.

Licensing

zCX Trial

You can try zCX using the 90-day trial before deciding whether to purchase a license. The trial provides 90 days of free usage to evaluate zCX from the day the trial begins. The trial extends to all zCX instances running on a sysplex. After 90 elapsed days, you can purchase a license to continue using zCX.

ILMT Support

The IBM License Metric Tool (ILMT) has been enhanced to support the zCX environment. Licensing for IBM Linux on Z software, running in zCX, is the same as Linux on Z software running in traditional IBM Z environments. This is used to validate capacity for licensing of IBM Linux on Z Software procured through IBM Passport Advantage. This enables Passport Advantage customers to determine their full and sub-capacity processor value units (PVU) licensing requirements. zCX will report standard and zIIP capacity and usage metrics to ILMT. This is an optional feature that can be enabled for each individual zCX instance as desired.

Scalability Enhancements

More Containers Per Instance

The maximum number of concurrent containers that can be run in a single zCX instance has been raised to 1000.  Running a large number of concurrent containers in a single zCX instance will depend on the workload's resource requirements and how much CPU, memory, and disk space is available.  In general, a large number of containers will require a commensurate increase in the resources assigned to the instance.

Raising the Memory Limit

The memory limit for a zCX instance has been raised to 1TB.  This means that a single instance can assign up to 1TB of memory to the Linux guest.  Note that this memory is independent of memory used for other z/OS purposes. You must make sure that z/OS has enough memory available for normal operations in addition to the memory allocated to zCX. Utilizing large amounts of memory is best combined with the Large Memory Page Support APAR.

Increasing the Maximum Disk Size

Disks assigned to a zCX instance are backed by z/OS VSAM linear datasets (LDS).  The VSAM LDS maximum allocation size for zCX instance has been increased to 1TB.  This provides the capability to run large data intensive workloads in zCX. 

Increasing the Number of Disks Per Instance

In a zCX instance, user data disks are used to store data such as home directory contents and Docker containers.  The number of user data disks that you can allocate and associate with a zCX instance has been increased to 245.  This means that you can leverage both the large disk size capability and the increased number of disks to run very large workloads in zCX..

Performance Enhancements

Reducing zCX Processing Contention

By reducing the switching between zIIPs and standard processors, this APAR provides significant scaling and zIIP eligibility improvements. Reducing the time spent on standard processors reduces the total cost of ownership. It also reduces contention during virtual CPU and I/O processing. All of these improvements result in much smoother scaling and the ability to reach higher transaction rates.

Using Vector Instructions in Linux

The IBM Z processors support Single Instruction Multiple Data (SIMD) instructions, also known as vector instructions. Vector instructions can dramatically improve the performance of applications that take advantage of them. This APAR allows Linux applications that utilize these instructions to run in the zCX guest.

Speeding Up zCX Network Communications

The ability to move data in and out of a server is a key performance metric. z/OS Communications Server APARs PH16581 and OA58300 make significant improvements in that area. Their support allows inbound traffic via Workload Queueing (IWQ) when using OSA-Express 6S or 7S in QDIO mode. This improves performance and ensures that processing used to route zCX network traffic will run on zIIP processors. These APARs also enhance the blocking and batching of work elements which improves zCX traffic processing.

Large Memory Page Support

This APAR increases the hardware page frame size that can be selected to back the Linux guest storage from 4K to either 2G or 1M. Using a larger frame size significantly reduces both zIIP and GCP utilization. It also reduces the number of required hardware pages, which improves zCX startup and container run-time performance. 2G pages provide the best performance and are recommended for all production environments. However, there are cases where 1M pages are a good choice as well.

Networking Enhancements

zCX IPv6 Support

Support has been added for zCX to use IPv6 networks. Each instance can now have a single IPv6 address in addition to the required IPv4 address. This also allows zCX to send and receive traffic over an IPv6 network in addition to an IPv4 one. These help zCX meet corporate IT policy and IPv6 enablement network requirements.

Usability Enhancements

Consolidated Version Message for zCX Components

zCX consists of three separate components: 
  • The virtualization layer that hosts the embedded Linux operating system
  • The zCX appliance instance which hosts the Linux kernel and Docker engine
  • The z/OSMF workflows that perform lifecycle operations on a zCX instance
This APAR adds a new consolidated version message that is displayed during startup of a zCX instance.  This message shows the version information for each of the above components.  It also displays the version number of the available appliance, which is helpful to identify if an appliance is backlevel. A new console command has been added to display this information from a running zCX instance.

Docker Proxy Server Support

Docker Registries are a common way to store and distribute Docker binary images. A registry is a scalable server-side application that stores and distributes Docker images, while Docker Hub is a public Docker registry that is hosted in the cloud. All Docker engines (including zCX) are configured to pull Docker images from it by default. Many enterprise docker installations may not have direct access to external public Docker registries. With the Docker proxy support, you can now configure the zCX Docker engine to leverage the proxy information to access external public or private docker registries. The support allows you to configure HTTP and HTTPS proxy endpoints with the ability to exclude certain domain names and IP addresses from routing via the proxy server. You also have the ability to optionally provide the private CA certificate for the proxy server to enable TLS authenticated communications.

Resource Shortage z/OS Alerts

A resource monitor has been added to the zCX guest so that console messages are produced when guest resources are constrained. These messages are generated when the Linux guest is constrained on memory or disk space. Depending on the resource consumption level, different messages are generated. By watching for these notifications, the system programmer can know when to add more resources to the zCX instance in order to assure continued availability.

APARs and PTFs


Enhancements APARs PTFs
Performance Improvements (zCX and z/OS Communications Server) OA58296, OA58300, PH16581 UJ02045, UJ01511, UI66733
IBM License Metric Tool (ILMT) Support  OA58598, OA58599,  
OA58600, OA58621, OA58587, OA58601 
UJ01574, UJ01575, UJ01577, UJ01576, UJ01572, UJ01571 
Docker Proxy Support  OA58236, OA58237, OA58238, OA58267, OA58131  UJ01141, UJ01142, UJ01143, UJ01146, UJ01108 
Private CA certificate support for Docker Proxy  OA58698, OA58936, OA58949, OA58950  UJ02348, UJ02326, UJ02327, UJ02328 
zCX Trial (90 days) OA58969  UJ02411
IPv6 Support  OA59508, OA59509, OA59515, OA59516, OA59873  UJ04323, UJ04319, UJ04320, UJ04321, UJ90005 
Vector / SIMD Support  OA59111 UJ03302
Performance Improvements  - Phase II 
(Large page frames support to back zCX guest memory)
OA59865, OA59573  UJ03983, UJ03948 
Consolidated Version Command Support  OA59835, OA59836, OA59837, OA59838, OA58996  UJ03743, UJ03733, UJ03734, UJ03735, UJ03620 
zCX Resource Shortage z/OS Alerts  OA60452, OA60513, OA60529, OA60530, OA60303  UJ04666, UJ04652,  
UJ04653, UJ04654,  
UJ90006 
zCX Constraints Relief – Guest Memory and Disk Storage  OA59865, OA59934, OA59943, OA59944, OA59945, OA59864  UJ03983, UJ03973,  
UJ03974, UJ03975,  
UJ03976, UJ03961 
 

0 comments
42 views

Permalink