[openstack-dev] [climate] Mirantis proposal to extend Climate to support virtual resources reservation

Patrick Petit patrick.petit at bull.net
Fri Aug 2 15:24:33 UTC 2013

Dear All,

There has been some discussions recently about project Climate on 
Stackforge which aim is to provide host reservation services. This 
project is somehow related to 
https://wiki.openstack.org/wiki/WholeHostAllocation in that Climate 
intends to deal with the reservation part of dedicated resource pools 
called Pclouds in that blueprint. Climate wiki page can be found here 

The purpose of that email is that a team at Mirantis is proposing to 
extend the scope of that service so that all sorts of resources 
(physical and virtual) could be reserved. The architectural approach of 
Mirantis is giving a first shot of this extension at 
https://wiki.openstack.org/wiki/Resource-reservation-service. We 
reviewed the proposal to evaluate how it fits with the initial use cases 
and objectives of Climate. However, as the scope is becoming much 
bigger, I thought we'd better bring the discussion to the open instead 
of discussing it in private so that everybody who a stake or general 
interest in that subject can chime in.

In the review below, I am referring to the Mirantis proposal at 

Here are four general comments/questions.

 1. The primary assumption of Climate is that the role of the
    reservation service is to manage resource reservations and only
    resource reservations. This is because reserving a resource doesn't
    imply necessarily that the user wants to use it. In fact, as a user
    I may decide not to use a reservation at all and decide instead to
    resell it through some market place if that's possible. In its
    proposal, Mirantis specifies that the reservation service is also
    responsible for managing the life cycle of the reservations like
    starting instances when a lease becomes active. I foresee several
    situations where this behavior is not desirable like reserved
    instances to be launched upon some external conditions that can be
    time based or load based regardless of the lease terms. In this
    situation, this is typically not the reservation service but the
    auto-scaling service (Heat) who's in charge. So, is it planned in
    your design to make the life-cycle management part of the service
    optional or completely disabled if not needed?

 2. The proposal specifies that the usage workflow is to first create a
    lease (with parameters including start and end dates) and then
    populate it with resource reservations requests to the Nova, Cinder,
    Neutron, ... APIs . I think this workflow can create two kinds of
    problems. First, a lease request could be synchronous or
    asynchronous but it should be transactional in my opinion. A second
    problem is that it probably won't work for physical host
    reservations since there is no support for that in Nova API.
    Originally, the idea of Climate is that the lease creation request
    contains the terms of the lease along with a specification of the
    type of resource (e.g. host capacity) to be reserved and the number
    of those. In the case of an immediate lease, the request would
    return success if the lease can be satisfied or failure otherwise.
    If successful, reservation is effective as soon as the lease
    creation request returns. This I think is a central principal both
    from a usability standpoint and an operational standpoint. What a
    user wants to know is whether a reservation can be granted in a
    all-or-nothing manner at the time he is asking the lease. Second, an
    operator wants to know what a lease entails operationally speaking
    both in terms of capacity availability and planing at the time a
    user requests the lease. Consequently, I think that the reservation
    API should allow a user to specify in the lease request the number
    and type of resource he wants to reserve along with the lease term
    parameters and that the system responds yes or no in a transactional

 3. The proposal specifies that a lease can contain a combo of different
    resources types reservations (instances, volumes, hosts, Heat
    stacks, ...) that can even be nested and that the reservation
    service will somehow orchestrate their deployment when the lease
    kicks in. In my opinion, many use cases (at least ours) do not
    warrant for that level of complexity and so, if that's something
    that is need to support your use cases, then it should be delivered
    as module that can be loaded optionally in the system. Our preferred
    approach is to use Heat for deployment orchestration.

 4. The proposal specifies that the Reservation Scheduler notifies the
    Reservation Manager when a lease starts and ends. Do you intend to
    send those notifications directly or through Ceilometer? Reservation
    state changes are of general interest for operational and billing
    purposes. I also think that the Reservation Manager may want to
    query the Reservation Scheduler to check the state of the ongoing
    leases and scheduled leased as opposed to just being notified when a
    lease starts and ends. That's  because typically in the case of
    physical host reservation, the Reservation Manager must anticipate
    (account for) the time it takes to bootstrap and provision the hosts
    before the lease starts.

I think it's probably enough as a starting point. I propose we iterate 
on this first and see where this is taking us.
Best regards,

Patrick Petit
Cloud Computing Principal Architect, Innovative Products
Bull, Architect of an Open World TM
Tél : +33 (0)4 76 29 70 31
Mobile : +33 (0)6 85 22 06 39

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20130802/bd4d98c1/attachment.html>

More information about the OpenStack-dev mailing list