[Openstack-operators] [scientific] Resource reservation requirements (Blazar) - Forum session

Masahito MUROI muroi.masahito at lab.ntt.co.jp
Fri Apr 14 07:57:35 UTC 2017


Hi scientific team,

As Jay mentioned the previous mail, I drafted the instance 
reservation[1] of Blazar and some have already added their comments.

1. https://etherpad.openstack.org/p/new-instance-reservation

Please adds your comments, concerns and/or what you want. It could make 
more clear what the draft's missing now and what the instance 
reservation needs to include. Additionally, I think we would have better 
discussion in the forum session basing the previous discussion.


best regards,
Masahito


On 2017/04/12 4:22, Jay Pipes wrote:
> On 04/11/2017 02:08 PM, Pierre Riteau wrote:
>>> On 4 Apr 2017, at 22:23, Jay Pipes <jaypipes at gmail.com
>>> <mailto:jaypipes at gmail.com>> wrote:
>>>
>>> On 04/04/2017 02:48 PM, Tim Bell wrote:
>>>> Some combination of spot/OPIE
>>>
>>> What is OPIE?
>>
>> Maybe I missed a message: I didn’t see any reply to Jay’s question about
>> OPIE.
>
> Thanks!
>
>> OPIE is the OpenStack Preemptible Instances
>> Extension: https://github.com/indigo-dc/opie
>> I am sure other on this list can provide more information.
>
> Got it.
>
>> I think running OPIE instances inside Blazar reservations would be
>> doable without many changes to the implementation.
>> We’ve talked about this idea several times, this forum session would be
>> an ideal place to draw up an implementation plan.
>
> I just looked through the OPIE source code. One thing I'm wondering is
> why the code for killing off pre-emptible instances is being done in the
> filter_scheduler module?
>
> Why not have a separate service that merely responds to the raising of a
> NoValidHost exception being raised from the scheduler with a call to go
> and terminate one or more instances that would have allowed the original
> request to land on a host?
>
> Right here is where OPIE goes and terminates pre-emptible instances:
>
> https://github.com/indigo-dc/opie/blob/master/opie/scheduler/filter_scheduler.py#L92-L100
>
>
> However, that code should actually be run when line 90 raises NoValidHost:
>
> https://github.com/indigo-dc/opie/blob/master/opie/scheduler/filter_scheduler.py#L90
>
>
> There would be no need at all for "detecting overcommit" here:
>
> https://github.com/indigo-dc/opie/blob/master/opie/scheduler/filter_scheduler.py#L96
>
>
> Simply detect a NoValidHost being returned to the conductor from the
> scheduler, examine if there are pre-emptible instances currently running
> that could be terminated and terminate them, and re-run the original
> call to select_destinations() (the scheduler call) just like a Retry
> operation normally does.
>
> There's be no need whatsoever to involve any changes to the scheduler at
> all.
>
>>>> and Blazar would seem doable as long as the resource provider
>>>> reserves capacity appropriately (i.e. spot resources>>blazar
>>>> committed along with no non-spot requests for the same aggregate).
>>>> Is this feasible?
>
> No. :)
>
> As mentioned in previous emails and on the etherpad here:
>
> https://etherpad.openstack.org/p/new-instance-reservation
>
> I am firmly against having the resource tracker or the placement API
> represent inventory or allocations with a temporal aspect to them (i.e.
> allocations in the future).
>
> A separate system (hopefully Blazar) is needed to manage the time-based
> associations to inventories of resources over a period in the future.
>
> Best,
> -jay
>
>>> I'm not sure how the above is different from the constraints I mention
>>> below about having separate sets of resource providers for preemptible
>>> instances than for non-preemptible instances?
>>>
>>> Best,
>>> -jay
>>>
>>>> Tim
>>>>
>>>> On 04.04.17, 19:21, "Jay Pipes" <jaypipes at gmail.com
>>>> <mailto:jaypipes at gmail.com>> wrote:
>>>>
>>>>    On 04/03/2017 06:07 PM, Blair Bethwaite wrote:
>>>>    > Hi Jay,
>>>>    >
>>>>    > On 4 April 2017 at 00:20, Jay Pipes <jaypipes at gmail.com
>>>> <mailto:jaypipes at gmail.com>> wrote:
>>>>    >> However, implementing the above in any useful fashion requires
>>>> that Blazar
>>>>    >> be placed *above* Nova and essentially that the cloud operator
>>>> turns off
>>>>    >> access to Nova's  POST /servers API call for regular users.
>>>> Because if not,
>>>>    >> the information that Blazar acts upon can be simply
>>>> circumvented by any user
>>>>    >> at any time.
>>>>    >
>>>>    > That's something of an oversimplification. A reservation system
>>>>    > outside of Nova could manipulate Nova host-aggregates to "cordon
>>>> off"
>>>>    > infrastructure from on-demand access (I believe Blazar already
>>>> uses
>>>>    > this approach), and it's not much of a jump to imagine operators
>>>> being
>>>>    > able to twiddle the available reserved capacity in a finite
>>>> cloud so
>>>>    > that reserved capacity can be offered to the subset of
>>>> users/projects
>>>>    > that need (or perhaps have paid for) it.
>>>>
>>>>    Sure, I'm following you up until here.
>>>>
>>>>    > Such a reservation system would even be able to backfill capacity
>>>>    > between reservations. At the end of the reservation the system
>>>>    > cleans-up any remaining instances and preps for the next
>>>>    > reservation.
>>>>
>>>>    By "backfill capacity between reservations", do you mean consume
>>>>    resources on the compute hosts that are "reserved" by this paying
>>>>    customer at some date in the future? i.e. Spot instances that can be
>>>>    killed off as necessary by the reservation system to free
>>>> resources to
>>>>    meet its reservation schedule?
>>>>
>>>>    > The are a couple of problems with putting this outside of Nova
>>>> though.
>>>>    > The main issue is that pre-emptible/spot type instances can't be
>>>>    > accommodated within the on-demand cloud capacity.
>>>>
>>>>    Correct. The reservation system needs complete control over a
>>>> subset of
>>>>    resource providers to be used for these spot instances. It would
>>>> be like
>>>>    a hotel reservation system being used for a motel where cars could
>>>>    simply pull up to a room with a vacant sign outside the door. The
>>>>    reservation system would never be able to work on accurate data
>>>> unless
>>>>    some part of the motel's rooms were carved out for reservation
>>>> system to
>>>>    use and cars to not pull up and take.
>>>>
>>>>     >  You could have the
>>>>    > reservation system implementing this feature, but that would
>>>> then put
>>>>    > other scheduling constraints on the cloud in order to be effective
>>>>    > (e.g., there would need to be automation changing the size of the
>>>>    > on-demand capacity so that the maximum pre-emptible capacity was
>>>>    > always available). The other issue (admittedly minor, but still a
>>>>    > consideration) is that it's another service - personally I'd
>>>> love to
>>>>    > see Nova support these advanced use-cases directly.
>>>>
>>>>    Welcome to the world of microservices. :)
>>>>
>>>>    -jay
>>>>
>>>>    _______________________________________________
>>>>    OpenStack-operators mailing list
>>>>    OpenStack-operators at lists.openstack.org
>>>> <mailto:OpenStack-operators at lists.openstack.org>
>>>>
>>>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-operators
>>>>
>>>>
>>>
>>> _______________________________________________
>>> OpenStack-operators mailing list
>>> OpenStack-operators at lists.openstack.org
>>> <mailto:OpenStack-operators at lists.openstack.org>
>>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-operators
>>
>
> _______________________________________________
> OpenStack-operators mailing list
> OpenStack-operators at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-operators


-- 
室井 雅仁(Masahito MUROI)
Software Innovation Center, NTT
Tel: +81-422-59-4539





More information about the OpenStack-operators mailing list