Jump to: navigation, search

Blueprint-nova-planned-resource-reservation-api

Revision as of 15:11, 27 February 2013 by JulienDanjou (talk | contribs) (Design)
  • Created: Julien Danjou
  • Contributors: Julien Danjou, Patrick Petit, François Rossigneux

Summary

This blueprint introduces a reservation planning concept.

The aims of this blueprint is:

  • to allow resources to be reserved in advance for a certain amount of time by users
  • to allow operators to do capacity planning based on made reservation
  • to allow resources to be reserved in advance with extra criteria and hints for the scheduler
  • to allow instances to be created from and accounted in a reservation

Design

A reservation, or lease, is tight to a project. It has a start and an end timestamp, during which the lease is valid. It also has a number of nodes and their flavors associated with, so it can be quantified. A lease has a set of scheduler hints set that are immutable. An API call allows a user to retrieve the list and combination of applicable hints. When a user tries to creates a lease, the list of scheduler hints is checked for validity: an operator can refuse a lease with invalid or too strict hints.

When an instance is created, it's registered as being part of the lease when the user passes the information at creation time. It's taken from the lease when it's destroyed. If an instance is created as being part of a lease, the scheduler has to launch the instance with the requirements fulfilled.

Nova-reservation-design.png