[Kimchi-devel] RFC – Hypervisor Performance Manager for s390x (KVM IBM z Systems)

Chandra Shekhar Reddy Potula chandra at linux.vnet.ibm.com
Wed Nov 23 10:47:07 UTC 2016


Proposal of introducing a new plugin – Hypervisor Performance 
Manager(HPM) for s390x (KVM IBM z Systems).

*Abstract*

z Systems Hypervisor Performance Manager (zHPM) can be used to bring a 
goal-oriented approach to the performance management of a hypervisor. 
zHPM dynamically manages resource allocation when contention occurs 
based on user-specified policies associated with performance objectives.

*Introduction about HPM:*

zHPM provides the following capabilities:

·APIs to enable a virtualization management solution for fully operating 
zHPM.

·These APIs are provided using RESTful web services. The zHPM APIs 
provide the following functions:

–Definition of workload resource groups and performance policy.

–Collection of virtual server and hypervisor performance metrics related 
to understanding of performance goal achievement.

–Operational controls.

·A command line interface that provides similar functions as the zHPM APIs.

·Collection of hypervisor level and virtual server level performance 
metrics to help set up performance goals, and support virtual server CPU 
management.

·Management of CPU resource allocation to virtual servers in order to 
meet goals


Workload resource groups

A workload resource group is a collection of virtual servers that host a 
business application. The workload resource group provides a "management 
view" of these virtual servers. By defining a workload resource group 
you can manage hypervisor resources based on the requirements of the 
business applications deployed on the KVM for IBM z Systems hypervisor.

Performance policies

In zHPM, a performance policy defines goals for virtual servers in a 
workload resource group. You can define performance policies and express 
a business goal and an importance level for the virtual servers that are 
part of a workload resource group. zHPM then monitors and manages 
hypervisor resources allocated to the virtual servers based on these 
performance policies.

Service class

the service class a virtual server is associated with.

*Use Cases:*

New plugin Hypervisor Performance Manager(HPM) UI toprovide the 
following operations support:


1.Performance Policies

         a.List

         b.Add/Update/Remove

         c.Import/Export

2.Workload Resource Group (WRG) configuration

         a.List WRG’s

         b.Get/Create/Edit/Delete WRG

         c.Add/Remove Virtual Server from WRG

3.Service Classes

         a.Details of Service Class

         b.Fetch or update Virtual Server information

4.Virtual Server CPU Management

         a.Get/Enable/Disable CPU management

         b.Report dynamic CPU resource adjustments

REST API’s Supported by HPM.

1.Workload Resource Group

a.GET /zhpm/wsapi/v1/workload-resource-groups

b.GET /zhpm/wsapi/v1/workload-resource-groups/detail

c.GET /zhpm/wsapi/v1/workload-resource-groups/{wrg-resource-id}

d.POST /zhpm/wsapi/v1/workload-resource-groups

e.DELETE /zhpm/wsapi/v1/workload-resource-groups/{wrg-resource-id}

f.POST /zhpm/wsapi/v1/workload-resource-groups/{wrg-resource-id}/actions

2.Performance Policies

a.POST /zhpm/wsapi/v1/workload-resource-groups/{wrg-resource-id}

b.POST /zhpm/wsapi/v1/workload-resource-groups/default

c.POST /zhpm/wsapi/v1/workload-resource-groups/{wrg-resource-ids

d.GET /zhpm/wsapi/v1/workload-resource-groups/{wrg-resource-id}

e.GET /zhpm/wsapi/v1/workload-resource-groups/detail

3.Virtual Servers

a.GET /zhpm/wsapi/v1/virtual-servers

b.GET /zhpm/wsapi/v1/virtual-servers/{vs-resource-id}

c.POST /zhpm/wsapi/v1/virtual-servers/{vs-resource-id}

d.GET /zhpm/wsapi/v1/virtual-servers/detail

4.Metrics

a.GET /zhpm/wsapi/v1/metrics/raw/hypervisor

b.GET /zhpm/wsapi/v1/metrics/calculated/hypervisor

c.GET /zhpm/wsapi/v1/metrics/raw/workload-resource-groups

d.GET /zhpm/wsapi/v1/metrics/calculated/workload-resource-groups

e.GET /zhpm/wsapi/v1/metrics/raw/workload-resource-groups/default

f.GET /zhpm/wsapi/v1/metrics/calculated/workload-resource-groups/default

g.GET /zhpm/wsapi/v1/metrics/raw/workload-resource-groups/{wrg-resource-id}

a.GET 
/zhpm/wsapi/v1/metrics/calculated/workload-resource-groups/{wrg-resource-id}

5.CPU Management

a.GET /zhpm/wsapi/v1/mgmt-levels

b.POST /zhpm/wsapi/v1/mgmt-levels

c.GET /zhpm/wsapi/v1/dynamic-resource-adjustments

6.Memory Management

TBD

The following code changes will be made in support of plugin:

1.Plugin infrastructure

2.Backend python code support for Kimchi/Ginger for the REST API development

3.Frontend HTML5/JavaScript code.


More details to be followed like detailed use cases, REST API and 
mock-ups ...


Further documentation can be found @ 
http://www.ibm.com/support/knowledgecenter/SSNW54_1.1.1/com.ibm.kvm.v111.admin/part2.htm?cp=linuxonibm


  Please feel free to comment !!!


Thanks and Regards

Chandra

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ovirt.org/pipermail/kimchi-devel/attachments/20161123/7a5b0544/attachment.html>


More information about the Kimchi-devel mailing list