RFC – Hypervisor Performance Manager for s390x (KVM IBM z Systems)

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.adm... Please feel free to comment !!! Thanks and Regards Chandra

Hi Chandra, On 11/23/2016 08:47 AM, Chandra Shekhar Reddy Potula wrote:
Proposal of introducing a new plugin – Hypervisor Performance Manager(HPM) for s390x (KVM IBM z Systems).
I'd say to we understand better on the requirements to then identify if a new plugin is really needed or it can be contained on Kimchi. 1) Are there similar tools for x86 and ppc?
*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.
Could you elaborate more on it? How do the things work? What is it needed from user and how that information is used?
–Collection of virtual server and hypervisor performance metrics related to understanding of performance goal achievement.
What is a virtual server? Is it a hypervisor host? Is the idea behind it to collect statistics on how the virtual machines are affecting the host in a global view? Like condensing the individual stats we have today for each virtual machine in one place?
–Operational controls.
Could you elaborate more?
·A command line interface that provides similar functions as the zHPM APIs.
Why a new command line if the user can use zHPM directly? Or they can't do that ?
·Collection of hypervisor level and virtual server level performance metrics to help set up performance goals, and support virtual server CPU management.
Some new concepts here. =) What is hypervisor leval and virtual server level?
·Management of CPU resource allocation to virtual servers in order to meet goals
Is virtual server a virtual machine? We already have CPU allocation for each virtual machine. Is the idea to condensing that into one view?
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.adm...
Please feel free to comment !!!
Not sure I understand the whole idea but for me it seems to be an overall host view when running virtual machines. So probably, it should be part of Ginger plugin and not a new plugin or part of Kimchi. Please, correct me if I am wrong.
Thanks and Regards
Chandra
_______________________________________________ Kimchi-devel mailing list Kimchi-devel@ovirt.org http://lists.ovirt.org/mailman/listinfo/kimchi-devel
participants (2)
-
Aline Manera
-
Chandra Shekhar Reddy Potula