Add z/VM Support¶
Add z/VM support in nova tree.
z/VM provides a highly secure and scalable enterprise cloud infrastructure and an environment for efficiently running multiple diverse critical applications on IBM z Systems and IBM LinuxONE with support for more virtual servers than any other platform in a single footprint. These z/VM virtual servers can run Linux, z/OS and more. The detailed information can be found at http://www.vm.ibm.com/
The z/VM driver team has met the following requirements from the Nova core team by refer to previous virt driver integration.
CI running and publishing results against Nova and nova-zvm driver: Results are publicly available, as well as the configuration of the CI. Per guidance from the Nova core team, the CI runs against all Nova change sets but is not currently voting on patches as it is not an in-tree driver. The CI test logs is also publicly available.
External users beyond z/VM itself: Companies are actively using the z/VM driver to integrate into OpenStack clouds like SuSE; Canonical and RHEL are under discussion. Currently Openmainframe project is the major technical community and open project for mainframe enablement including openstack other open source projects.
Show commitment to the driver: Our first supported release was Icehouse and we continue to maintain, extend the driver with each subsequent release, following the stable branch support model. We are committed to developing the driver following the OpenStack way, with open source code, open design/development, and an open community. The z/VM driver fits the Nova compute driver design, and follows the community development direction. We also ensure that the development team is actively participating in upstream development - attending IRC meetings, mid-cycles, and summits.
A user should be able to deploy a glance-based image with basic networking on a system with the z/VM hypervisor. That image may be Linux (RHEL, SLES, Ubuntu, etc…).
The change proposed is to submit a series of patches building out enough basic function to support deployment of a glance-based virtual machine on z/VM. This subset of the driver code (and associated unit tests) would support features such as:
Basic VM lifecycle tasks (spawn, shutdown, reboot, snapshot, etc)
Flat/VLAN networking using the z/VM neutron agent
This phase of the driver is meant to get the net minimum of mandatory and choice options from the support matrix.
We see this as a long-term journey. We will continue to work to bring further functionality into the Nova tree over subsequent releases.
Some of the specific functions supported in out-of-tree driver now that would come as part of future blueprints that are not part of this one:
Cinder Volume Support
Integrate the entire driver. That would be too unwieldy to do in one release and would require too much core reviewer time.
Do not integrate the driver. As there are users of the driver, and the Nova direction is to have drivers in-tree, this is not an option.
Data model impact¶
REST API impact¶
Other end user impact¶
Other deployer impact¶
Deployers who wish to use the z/VM driver will need to change the
compute_driver in their conf to
zvm.zVMDriver. The in-tree
z/VM driver will initially have a very limited set of functionality. As
noted above, they can install the nova-zvm out-of-tree driver to gain the
additional functionality while the team works over multiple releases to
integrate the driver.
For this first integration, there will be no required configuration from the
deployer beyond setting the
compute_driver type. The driver will be
documented in the hypervisor support matrix (along with its capabilities
- Primary assignee:
jichenjc rhuang ychuang
Add support for basic life cycle tasks (Create, Power On/Off, Delete)
Add console output
Increase the scope of the existing z/VM CI to include the z/VM driver in-tree. Two jobs will need to be kicked off for each Nova change (one for out-of-tree, one for in-tree) during this transition period.
All code paths run through the standard Tempest tests as part of our CI. The code will also include significant unit test. This code will come from the out-of-tree nova-zvm driver. The CI infrastructure will also continue to support the automated testing of the out-of-tree nova-zvm driver.
As there is no ID team now, we will primary work on following documents and other doc that related to virt driver as well:
https://docs.openstack.org/nova/latest/admin/arch.html#hypervisors https://docs.openstack.org/nova/latest/admin/configuration/hypervisors.html http://docs.openstack.org/developer/nova/support-matrix.html
Overview: Out-of-tree Nova driver for z/VM
Overview: Open source z/VM neutron agent
Overview: Ceilometer collector for the z/VM platform. Captures I/O, CPU and memory statistics.
z/VM used to submit patches and has some discussions with nova community back to 2013/2014 time frame. At that time we are lack of CI so we followed guidelines in creating our CI and do more contributions to community.
And we had more effort in CI test and more cooperation with wider community like Open mainframe project https://www.openmainframeproject.org/ talked above, we want to continue our effort to make z/VM accepted as in-tree plugin.