Versions Compared

Key

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

...

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 DedicatedResourcePlanner which will implement a deployment planner interface.

Explicit Dedication

...

  1. Admin adds Pod/cluster/host
  2. Admin dedicates the pod/cluster/host to a domain/account using new dedication APIs 
  3. Admin enables the pod/cluster/host

Dedication will be used when:

  1. If a request is placed to deploy a VM with Service Offering flag "isdedicated" ON.
    1. Check if the account/domain has dedicated resources:
      1. If Yes, Place the VM in dedicated resources.
      2. If No, Place the VM in new free empty host, make that host dedicated to that account.

...

:

  1. list affinity types: Add a new type: explicit dedication
  2. User should be able to create affinity groups based on the explicit dedication type
  3. User can associate above affinity group to VM during deployment.
  4. A new ExplicitDedicationProcessor plugin that implements AffinityGroupProcessor adapter (see https://cwiki.apache.org/confluence/display/CLOUDSTACK/FS+-+Affinity-Anti-affinity+groups) andImage Added set deploymentplan scope to the correct resource level.
  5. The Deployment Planning Manager will call the ExplicitDedicationProcessor to process the dedication request.

ExplicitDedicationProcessor

This will implement the process to set scope to the correct resource level for planners to look into.

For Example:

Zone Z  has Pods P1,  P2. P1 has Clusters C1, C2  and P2 has Cluster C3

Clusters

C1 -> h1 (dedicated A), h2 (dedicated B)

C2 -> h3 (dedicated A)

C3 -> h4, h5(dedicated B) 

  • To deploy VM for Acct A with explicit dedication, processor should set the scope of plan to Pod P1 since both dedicated hosts are in Pod P1 even if in different clusters. Also set the Pod P2 in avoid set.
  • To deploy VM for Acct B with explicit dedication, processor 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.

API Changes:

Following new APIs will be added:

  • Dedicating Resources (Explicit or Implicit)
    • dedicateZone
    • dedicatePod
    • dedicateCluster
    • dedicateHost

      These are new admin APIs to dedicate a zone/pod/cluster/host for an account/domain.

      Parameters include:
       a)    PodId ZoneId/PodId/ClusterId/HostId
       b)    DomainId
       c)      AccountIdAccountId

       d)    ImplicitDedication      

...

  • Release dedication of resources 
    • releaseDedicatedZone
    • releaseDedicatedPod
    • releaseDedicatedCluster
    • releaseDedicatedHost

      These are new admin APIs to remove the dedication of zone/pod/cluster/host

       Parameters include:
       a)    PodId ZoneId/PodId/ClusterId/HostId

  • Listing Dedicated resources per account/domain
    • listDedicatedZones
    • listDedicatedPods
    • listDedicatedClusters
    • listDedicatedHosts

     These are new admin APIs to list dedicated pods/clusters/hosts for an account/domain.

     Parameters include:
       a)    PodId zoneId/PodId/ClusterId/HostId
       b)    DomainId
       c)    AccountId

...