ZVMDriver
Contents
Overview
zVM drivers, consist of a set of drivers for different OpenStack components, enables OpenStack to communicate with z/VM hypervisor to manage z/VM system and virtual machines running on the system
Concepts
System z
System z is a family name used by IBM for all of its mainframe computers. IBM System z are the direct descendants of System/360, announced in 1964, and the System/370 from 1970s, and now includes the IBM System z9, the IBM System z10 and the newer IBM zEnterprise. System z is famous for its high availability and used in government, financial services, retail, manufacturing, and just about every other industry.
z/VM
z/VM is a hypervisor for the IBM System z platform that provides a highly flexible test and production environment. z/VM offers a base for customers who want to exploit IBM virtualization technology on one of the industry's best-of- breed server environments, the IBM System z family. With virtualization technology, customers can easily create many virtual machines consisting of virtualized processor, communications, storage, networking, and I/O resources.
The z/VM hypervisor is designed to help clients extend the business value of mainframe technology across the enterprise by integrating applications and data while providing exceptional levels of availability, security, and operational ease. z/VM virtualization technology is designed to allow the capability for clients to run hundreds to thousands of Linux servers on a single mainframe running with other System z operating systems, such as z/OS, or as a large-scale Linux-only enterprise server solution.
xCAT
xCAT is an open source scalable distributed computing management and provisioning tool that provides a unified interface for hardware control, discovery, and OS diskful/diskfree deployment. It is used by NASA, University of Toronto, IBM, Adaptive Computing, Los Alamos Laboratory and so on. This picture show the architure of xCAT.
Architecture
The picture above shows how the system works:
- Nova-Compute uses z/VM driver to control/configure z/VM.
- The xCAT management node (MN) runs on any Linux virtual server and it is used to manage virtual servers spanning across multiple z/VM partitions.
- The z/VM driver sends RESTful APIs to communicate with xCAT MN.
- The zVM OpenStack driver will fetch images from Glance unless the image is already in xCAT image repository"
- xCAT MN manages each z/VM partition using a System z hardware control point (zHCP) running on a privileged Linux virtual server.
- The zHCP interfaces with z/VM systems management API (SMAPI), directory manager (DirMaint), and control program layer (CP) to manage the z/VM partition. It utilizes a C socket interface to communicate with the SMAPI layer and VMCP Linux module to communicate with the CP layer.
Prerequisites
- One OpenStack nova-compute service node will manage one and only one xCAT MN node.
- Each of the zVM systems (reside in different LPARs or CECs ) has one nova-compute service node
- zHCP must be managed by xCAT MN.
- Compute Node and xCAT MN can ssh each other without password.
Configuration
By default /etc/nova/nova.conf, these options are required:
# Use z/VM compute_driver = zvm.ZVMDriver network_api_class = nova.network.quantumv2.api.API libvirt_vif_driver = nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver # config drive is required force_config_drive=true # Only tgz is valid for now config_drive_format=tgz # Host name or IP address of xCAT management_node zvm_xcat_server = 192.168.1.100 # xCAT username zvm_xcat_username = root # Password of the xCAT user zvm_xcat_password = xxxxxxx # z/VM disk pool for ephemeral disks zvm_diskpool = pool1 # z/VM host that managed by xCAT MN zvm_host = system360 # Default zfcp scsi disk pool zvm_scsi_pool = smpool # Valid optiosns are: 'architecture' -- attempt relocation even though hardware architecture facilities or CP features are not available on destination system; 'domain' -- attempt relocation even though VM would be moved outside of its domain, or 'domain' -- relocation should proceed even if CP determines that there are insufficient storage resources on destination system zvm_vmrelocate_force = architecture # User profile for creating a z/VM userid zvm_user_profile = myprofile # The xCAT MM node name zvm_xcat_master = xcatmaster
These options are optional, and the values listed below are default values:
# xCAT group for OpenStack zvm_xcat_group = all # Default disk type for root disk, can be ECKD/FBA zvm_disk_pool_type = ECKD # Sets the admin password in the config drive zvm_config_drive_inject_password = False # Valid options are: 'yes' -- VMRELOCATE command will do one early pass through virtual machine storage and then go directly to the quiesce stage, or 'no' -- specifies immediate processing zvm_vmrelocate_immediate = yes # Maximum wait time(seconds) for relocation to complete zvm_vmrelocate_max_total = nolimit # Maximum quiesce time(seconds) a VM may be stopped during a relocation attempt zvm_vmrelocate_max_quiesce = nolimit # Timeout(seconds) when start an instance. zvm_reachable_timeout = 180 # Default password for a new created z/VM user zvm_user_default_password = password # Default OS password for a new created z/VM user zvm_os_default_password = ospass # Default privilege level for a new created z/VM user zvm_user_default_privilege = g # The path to store the z/VM image files zvm_image_tmp_path = /opt/stack/data/nova/images # The period(days) to clean up an image that not be used for deploy in one xCAT MN within the defined time xcat_image_clean_period = 30 # The threshold for xCAT free space, if snapshot or spawn check xCAT free space not enough for its image operations, it will prune image to meet the threshold xcat_free_space_threshold = 50