Versions Compared

Key

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

...

3. Shared Resources: All the non-dedicated resources.

For Implicit Dedication, the options available are:

4. Strict Implicit dedication: VM with this requirement will be deployed on the host having VMs of same account. 

...

Ways to achieve Dedication:

  • To achieve Use Explicit Dedication: Create an Affinity Group of type "explicit dedication". Use that AG to deploy a VM.
  • To achieve Use Implicit Dedication: Create a Service Offering with Implicit dedication planner. Choose which type of Implicit Dedication you want: 'strict' or preffered. Use that SO to deploy a VM.

...

Case 2: Deploy VM for account B with explicit dedication, processors should set the scope of plan to Zone Z  since the dedicated hosts are in Pod P1 and P2 , with parent being the zone itself. Also set the Cluster C2  in avoid set.

Default Processor:

Default Processor will be modified to make sure that dedicated resources are not picked, when dedication is NOT required.

Implicit Dedication Design

  1. Admin should be able to choose a planner while creating a Service Offering.
  2. In Service Offering, the list of planners will be shown, which include the new planner for Implicit Dedication: ImplicitDedicationPlanner
  3. If ImplicitDedicationPlanner is selected, a new pluggable UI for new API configurePlanner is shown up.
  4. configurePlanner API will take in name-value parameters for implicitDedication mode as input.
  5.  Admin can set the name-value parameter for 
    1. Strict Implicit Dedication as  "implicitDedicationMode = Strict" 
    2. Preferred Implicit Dedication as "implicitDedicationMode = Preferred"
  6. These parameters will get stored in reference to the service_offering_id.
  7. ImplicitDedicationPlanner takes the above parameters as input and  set the scope of the plan of the VM to choose implicitly dedicated resources.

...

Change in the Existing Private Zone functionality:

In the current code of CloudStack, Zones can be dedicated to domains while creation. Users in that domain can deployVm only in that dedicated zone.

Change:

  1. Zones dedicated to a domain at the creation level will be considered as explicit dedication of zones. The functionality will be redirected to use explicit dedication affinity group when Vm (with explicit dedication) is deployed.
  2. All the Zones will be listed, and if explicit type affinity group is provided, deployment will only happen if any of the resource in that zone will be dedicated to that user's account or domain.
    Otherwise deployment can happen in shared resources.

API Changes

Following new APIs will be added:

...

       d)    ImplicitDedication      

   Note: Either "DomainId or AccountId" OR "ImplicitDedication Flag" can be provided as a parameter but not both. If neither of them specified, fail the request.

...

  1. New Table : dedicated_resources (id, uuid, zone_id, pod_id, cluster_id, host_id, domain_id, account_id)
       || Field || Type || Null || Key || Default || Extra ||

    id

    bigint(20) unsigned

    NO

    PRI

    NULL

    auto_increment

    uuid

    varchar(40)

    YES

    UNI

    NULL

     

    data_center_id

    bigint(20) unsigned

    NO

    MUL

    NULL

     

    pod_id

    bigint(20) unsigned

    NO

    MUL

    NULL

     

    cluster_id

    bigint(20) unsigned

    NO

    MUL

    NULL

     

    host_id

    bigint(20) unsigned

    NO

    MUL

    NULL

     

    domain_id

    bigint(20) unsigned

    YES

    MUL

    NULL

     

    account_id

    bigint(20) unsigned

    YES

    MUL

    NULL

     

    implicit_dedication

    tinyint(1) unsigned

    NO

    MUL

    0  

    service_offering table:

     

    Introduce a column “isdedicated” in  service_offering table. Default value should be 0.

UI flow

  • TBD
  • Pluggable UI when ImplicitDedicationPlanner is selected in ServiceOffering

DRS? 

* This is applicable only for placement operations through CloudStack. This implementation is to only support scenarios where the HV does not do HA or DRS.