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.
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
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.
Further
documentation can be found @ http://www.ibm.com/support/knowledgecenter/SSNW54_1.1.1/com.ibm.kvm.v111.admin/part2.htm?cp=linuxonibm