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 to provide 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