Jump to: navigation, search

ZVMDriver

Revision as of 02:08, 4 November 2014 by Huang Rui (talk | contribs) (Created page with "= 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 virtu...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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:

  1. Nova-Compute uses z/VM driver to control/configure z/VM.
  2. 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.
  3. The z/VM driver sends RESTful APIs to communicate with xCAT MN.
  4. The zVM OpenStack driver will fetch images from Glance unless the image is already in xCAT image repository"
  5. xCAT MN manages each z/VM partition using a System z hardware control point (zHCP) running on a privileged Linux virtual server.
  6. 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

  1. One OpenStack nova-compute service node will manage one and only one xCAT MN node.
  2. Each of the zVM systems (reside in different LPARs or CECs ) has one nova-compute service node
  3. zHCP must be managed by xCAT MN.
  4. 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

References

  1. z/VM
  2. xCAT
  3. xCAT on z/VM
  4. http://en.wikipedia.org/wiki/Z/VM
  5. http://en.wikipedia.org/wiki/System_z