I have a further question. When defining custom resources using Placement and Provider Config, does the service responsible for resource allocation and update of allocations to instances need to be implemented independently by the creator of the custom resource?
Provider config is the mechanism to allow you to only inject additional resource providers/traits/etc to compute nodes, so you still need an external machanism to add the relevant items to that config file. There was a spec to add mechanism to make nova delegate management of subsect of host resources to RMD[1], but this was abandoned due to the provider config and preference to avoid implementing the built-in logic to pull resources from the RMD which is quite specific to Intel's architecture.
Alternatively, does a mechanism exist within OpenStack components (e.g., Nova) to support this? AFAIK, no, and a complete external mechanism may be needed.
I'm struggling to decide on the implementation approach. Should the resource allocation process be handled as a plugin (separable from the OpenStack codebase), or should I modify the libvirt driver to add the processing for allocating LLC and memory bandwidth?
If the available resources can be obtained by a more generic way (like libvirt api or kernel api, without relying on ARM specific software) then it'd be acceptable to implement the logic to detect available resources and update resource providers within libvirt driver. [1] https://blueprints.launchpad.net/nova/+spec/rmd-base-enablement In addition there is no mechanism to change domain xml according to custom resources atm, so you may have to implement the feature within nova (or create a modified version of libvirt driver which sounds non-ideal). On 12/18/24 5:21 PM, Junya Noguchi (Fujitsu) wrote:
Dear Mr. Stanley
Thank you for your response.
I understand that I can define custom resources using Placement and Provider Config[1][2]. I've also confirmed that Intel RMD (Resource Manager Daemon) is mentioned as a use case, but it seems there's no RMD integration for OpenStack[3].
I have a further question. When defining custom resources using Placement and Provider Config, does the service responsible for resource allocation and update of allocations to instances need to be implemented independently by the creator of the custom resource? Alternatively, does a mechanism exist within OpenStack components (e.g., Nova) to support this? For example, is there a function that calls a custom hook function when creating a domain in nova-compute?
I'm struggling to decide on the implementation approach. Should the resource allocation process be handled as a plugin (separable from the OpenStack codebase), or should I modify the libvirt driver to add the processing for allocating LLC and memory bandwidth?
[1] https://docs.openstack.org/nova/latest/admin/managing-resource-providers.htm... [2] https://docs.openstack.org/placement/latest/ [3] https://networkbuilders.intel.com/docs/networkbuilders/resource-management-d... 3.1
Best regards, Junya Noguchi.