Yes - Built-in (CPU\Memory) and plugable scheduler
A policy engine determines the specific host on which a virtual machine runs. The policy engine decides which server will host the next virtual machine based on whether load balancing criteria have been defined, and which policy is being used for that cluster. RHV-M will use live migration to move virtual machines around the cluster as required.
A scheduler handles virtual machine placement, allowing users to create new scheduling policies, and also write their own logic in Python and include it in a policy.
- The scheduler serves scheduling requests for running or migrating virtual machines according to a policy.
- The scheduling policy also includes load balancing functionality.
- Scheduling is performed by applying hard constraints and soft constraints to get the optimal host for that request at a given point of time
- The infrastructure allowing users to extend the new scheduler, is based on a service called ovirt-scheduler-proxy. The services purpose is for RHV admins to extend the scheduling process with custom python filters, weight functions and load balancing modules.
- Every cluster has a scheduling policy. Administrators can create their own policies or use the built-in policies which were extended to support new capabilities such as shutting down servers for power saving policy.
The load balancing process runs once every minute for each cluster in a data center. You can disable automatic migration for individual vm or pin them to specific hosts.
You can choose to set the policy as either even distribution or power saving, but NOT both.