Hi all,
Very shortly Mark will be sending some patches for review that implement the long-awaited integration of mom with vdsm. I felt it would be easier to understand the changes to vdsm if they were explained a bit better. In support of this I have created a wiki page on ovirt.org with a diagram:
http://ovirt.org/wiki/Features/MomIntegration
To facilitate discussion, here is the text of that page:
As discussed at the oVirt Workshop and elsewhere, integrating mom with vdsm will benefit oVirt by providing a mechanism for dynamic, policy-based tuning. This mechanism will pave the way for implementing memory ballooning policies, can enhance migration policy, and will replace the existing ksm tuning thread.
MOM exists today as an independent library that can be used by python programs such as vdsm or in standalone mode (by using the accompanying momd program. Mom's operation is very configurable. The management policy is written in a Fortran-like language and is replaceable by the end user. Additionally, plugins allow you to customize the types of information collected and the manner in which it is collected. Similarly, Controller plugins permit a completely flexible control API to be created.
To integrate mom, vdsm will initialize the mom library in a new thread and start it. Therefore, mom and vdsm will exist in the same process. Vdsm will configure the mom instance to use plugins and a policy that exclusively target the vdsm API. All statistics collection will occur via API calls and any management actions (including adjustments to KSM and VM balloons) will be done through the vdsm api as well. Mom will not use libvirt at all (not even to monitor for new VMs on the system).
Packaging logistics: ------------------------- Mom is an independent package that is already in Fedora. Any changes to mom that are required to support this integration will be submitted to the mom project for inclusion. Vdsm will consume the standard MOM package as a python module/library.
In order to control its mom instance, vdsm will ship a mom configuration file and a mom policy file that will set mom's default behavior. At startup, vdsmd will import mom and initialize it with the configuration and policy files. From that point on, mom will interact with vdsm through the well-defined API in API.py.
New features needed in vdsm: --------------------------------------- In order to fully benefit from mom's capabilities, vdsm should implement the following extra features/APIs:
- Collection of more memory statistics via ovirt-guest-agent including the current memory balloon value. - A vmBalloon API to set a new balloon target.
----- Original Message -----
Hi all,
Very shortly Mark will be sending some patches for review that implement the long-awaited integration of mom with vdsm. I felt it would be easier to understand the changes to vdsm if they were explained a bit better. In support of this I have created a wiki page on ovirt.org with a diagram:
http://ovirt.org/wiki/Features/MomIntegration
To facilitate discussion, here is the text of that page:
As discussed at the oVirt Workshop and elsewhere, integrating mom with vdsm will benefit oVirt by providing a mechanism for dynamic, policy-based tuning. This mechanism will pave the way for implementing memory ballooning policies, can enhance migration policy, and will replace the existing ksm tuning thread.
MOM exists today as an independent library that can be used by python programs such as vdsm or in standalone mode (by using the accompanying momd program. Mom's operation is very configurable. The management policy is written in a Fortran-like language and is replaceable by the end user. Additionally, plugins allow you to customize the types of information collected and the manner in which it is collected. Similarly, Controller plugins permit a completely flexible control API to be created.
To integrate mom, vdsm will initialize the mom library in a new thread and start it. Therefore, mom and vdsm will exist in the same process. Vdsm will configure the mom instance to use plugins and a policy that exclusively target the vdsm API. All statistics collection will occur via API calls and any management actions (including adjustments to KSM and VM balloons) will be done through the vdsm api as well. Mom will not use libvirt at all (not even to monitor for new VMs on the system).
Packaging logistics:
Mom is an independent package that is already in Fedora. Any changes to mom that are required to support this integration will be submitted to the mom project for inclusion. Vdsm will consume the standard MOM package as a python module/library.
In order to control its mom instance, vdsm will ship a mom configuration file and a mom policy file that will set mom's default behavior. At startup, vdsmd will import mom and initialize it with the configuration and policy files. From that point on, mom will interact with vdsm through the well-defined API in API.py.
New features needed in vdsm:
In order to fully benefit from mom's capabilities, vdsm should implement the following extra features/APIs:
- Collection of more memory statistics via ovirt-guest-agent
including the current memory balloon value.
- A vmBalloon API to set a new balloon target.
Looks good to me.
-- Adam Litke agl@us.ibm.com IBM Linux Technology Center
vdsm-devel mailing list vdsm-devel@lists.fedorahosted.org https://fedorahosted.org/mailman/listinfo/vdsm-devel
vdsm-devel@lists.fedorahosted.org