Versions Compared

Key

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

...

Host 1 is explicitly dedicated to domain D1, Host 2 is implicitly dedicated, and Host 3 is a shared host. 

Assumptions:

  1. Hosts can be implicitly dedicated. This is required to prevent unavailability of resources. 
  2. VM deployment will fail if both explicit dedication and implicit dedication are required.

SID-VM  : VM with Strict Implicit Dedication required  

...

This feature will come as a separate plugin which will use the PluggableService to add the DedicatedResources feature APIs into CloudStack, the DedicatedResourceManager will be responsible for thread scheduling and the ExplicitDedicationProcessor will implement AffinityGroupProcessor adapter and  ImplicitDedicationPlanner will implement a deployment planner interface.

No Format

Ways to achieve Dedication:

...


To Use Explicit Dedication: Create an Affinity Group of type "explicit dedication". Use that AG to deploy a VM.

...


To Use Implicit Dedication: Create a Service Offering with Implicit dedication planner. Choose a type: 'strict' or 'preferred'. Use that SO to deploy a VM.
  •  

Explicit Dedication Design

...

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. Zones dedicated to a domain at the creation level will be considered as explicit dedication of zones. The functionality will be redirected to 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.

API Changes

Following new APIs will be added:

...

       d)    ImplicitDedication flag

DB Changes:

  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

     

...