Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Introduction

Currently CloudStack has following 3 deployment planners available out-of-the-box:

...

Each of these planners implements some heuristics that provide ordering of resources on some basis, while choosing resources for VM deployment. Currently in a CloudStack deployment, only one of these planners is can be used for all VM deployments. The global parameter 'vm.allocation.algorithm' decides which planner will be used.

However there could be a need to be able to choose different planning strategies within a single CS deployment. So letting Admin choose a deployment planner for a set of VMs will be helpful.

To enable this, we can expose proposal is:

  • Expose deployment planner as part of a ServiceOffering API.

...

  • By default, the value

...

  • can be set to the default CS FirstFitPlanner, but admin can override it and set some other strategy as per needs.
  • Add a resource reservation mechanism to let deployment planners co-exist

Resource reservation between planners

When the Deployment planner gets exposed per ServiceOffering, then in a CS deployment multiple planners will have to co-exist.

In such case, we might need resource reservation between planners, so that planner executions do not step onto each other's resource choice.

...

e.g Refer to the Implicit Dedication Planner being added as part of this 4.2 release.

Design

API Changes

  1. listDeploymentPlanners Admin API - This will be a new API that will let Admin list the available set of deployment planners.
  2. createServiceOffering API changes - Following new field will be added to this API
    1. deploymentplanner - String value (default: 'FirstFitPlanner' )

DB Changes

  1. ALTER TABLE `cloud`.`service_offering` ADD COLUMN `deployment_planner` varchar(255) NOT NULL DEFAULT 'FirstFitPlanner'  COMMENT 'Planner heuristics used to deploy a VM of this offering';
  2.  

UI changes