Re: [openstack-dev] [nova] Server Groups - remove VM from group?

2014-09-12 Thread Russell Bryant
On 09/11/2014 05:01 PM, Jay Pipes wrote:
> On 09/11/2014 04:51 PM, Matt Riedemann wrote:
>> On 9/10/2014 6:00 PM, Russell Bryant wrote:
>>> On 09/10/2014 06:46 PM, Joe Cropper wrote:
 Hmm, not sure I follow the concern, Russell.  How is that any different
 from putting a VM into the group when it’s booted as is done today?
   This simply defers the ‘group insertion time’ to some time after
 initial the VM’s been spawned, so I’m not sure this creates anymore
 race
 conditions than what’s already there [1].

 [1] Sure, the to-be-added VM could be in the midst of a migration or
 something, but that would be pretty simple to check make sure its task
 state is None or some such.
>>>
>>> The way this works at boot is already a nasty hack.  It does policy
>>> checking in the scheduler, and then has to re-do some policy checking at
>>> launch time on the compute node.  I'm afraid of making this any worse.
>>> In any case, it's probably better to discuss this in the context of a
>>> more detailed design proposal.
>>>
>>
>> This [1] is the hack you're referring to right?
>>
>> [1]
>> http://git.openstack.org/cgit/openstack/nova/tree/nova/compute/manager.py?id=2014.2.b3#n1297
>>
> 
> That's the hack *I* had in the back of my mind.

Yep.

-- 
Russell Bryant

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [nova] Server Groups - remove VM from group?

2014-09-11 Thread Chris Friesen

On 09/11/2014 04:22 PM, Joe Cropper wrote:

I would be a little wary about the DB level locking for stuff like that
— it’s certainly doable, but also comes at the expense of things
behaving ever-so-slightly different from DBMS to DBMS.  Perhaps there
are multiple “logical efforts” here—i.e., adding some APIs and cleaning
up existing code.


I think you could actually do it without locking.  Pick a host as we do 
now, write it into the database, then check whether you hit a race and 
if so then clear that host from the database and go back to the beginning.


Basically the same algorithm that we do now, but all contained within 
the scheduler code.


Chris

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [nova] Server Groups - remove VM from group?

2014-09-11 Thread Joe Cropper
I would be a little wary about the DB level locking for stuff like that — it’s 
certainly doable, but also comes at the expense of things behaving 
ever-so-slightly different from DBMS to DBMS.  Perhaps there are multiple 
“logical efforts” here—i.e., adding some APIs and cleaning up existing code.

In any case, I’ve started a blueprint on this [1] and we can continue iterating 
in the nova-spec once kilo opens up.  Thanks all for the good discussion on 
this thus far.

[1] https://blueprints.launchpad.net/nova/+spec/dynamic-server-groups

- Joe
On Sep 11, 2014, at 5:04 PM, Chris Friesen  wrote:

> On 09/11/2014 03:01 PM, Jay Pipes wrote:
>> On 09/11/2014 04:51 PM, Matt Riedemann wrote:
>>> On 9/10/2014 6:00 PM, Russell Bryant wrote:
 On 09/10/2014 06:46 PM, Joe Cropper wrote:
> Hmm, not sure I follow the concern, Russell.  How is that any different
> from putting a VM into the group when it’s booted as is done today?
>  This simply defers the ‘group insertion time’ to some time after
> initial the VM’s been spawned, so I’m not sure this creates anymore
> race
> conditions than what’s already there [1].
> 
> [1] Sure, the to-be-added VM could be in the midst of a migration or
> something, but that would be pretty simple to check make sure its task
> state is None or some such.
 
 The way this works at boot is already a nasty hack.  It does policy
 checking in the scheduler, and then has to re-do some policy checking at
 launch time on the compute node.  I'm afraid of making this any worse.
 In any case, it's probably better to discuss this in the context of a
 more detailed design proposal.
 
>>> 
>>> This [1] is the hack you're referring to right?
>>> 
>>> [1]
>>> http://git.openstack.org/cgit/openstack/nova/tree/nova/compute/manager.py?id=2014.2.b3#n1297
>>> 
>> 
>> That's the hack *I* had in the back of my mind.
> 
> I think that's the only boot hack related to server groups.
> 
> I was thinking that it should be possible to deal with the race more cleanly 
> by recording the selected compute node in the database at the time of 
> scheduling.  As it stands, the host is implicitly encoded in the compute node 
> to which we send the boot request and nobody else knows about it.
> 
> Chris
> 
> 
> ___
> OpenStack-dev mailing list
> OpenStack-dev@lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [nova] Server Groups - remove VM from group?

2014-09-11 Thread Chris Friesen

On 09/11/2014 03:01 PM, Jay Pipes wrote:

On 09/11/2014 04:51 PM, Matt Riedemann wrote:

On 9/10/2014 6:00 PM, Russell Bryant wrote:

On 09/10/2014 06:46 PM, Joe Cropper wrote:

Hmm, not sure I follow the concern, Russell.  How is that any different
from putting a VM into the group when it’s booted as is done today?
  This simply defers the ‘group insertion time’ to some time after
initial the VM’s been spawned, so I’m not sure this creates anymore
race
conditions than what’s already there [1].

[1] Sure, the to-be-added VM could be in the midst of a migration or
something, but that would be pretty simple to check make sure its task
state is None or some such.


The way this works at boot is already a nasty hack.  It does policy
checking in the scheduler, and then has to re-do some policy checking at
launch time on the compute node.  I'm afraid of making this any worse.
In any case, it's probably better to discuss this in the context of a
more detailed design proposal.



This [1] is the hack you're referring to right?

[1]
http://git.openstack.org/cgit/openstack/nova/tree/nova/compute/manager.py?id=2014.2.b3#n1297



That's the hack *I* had in the back of my mind.


I think that's the only boot hack related to server groups.

I was thinking that it should be possible to deal with the race more 
cleanly by recording the selected compute node in the database at the 
time of scheduling.  As it stands, the host is implicitly encoded in the 
compute node to which we send the boot request and nobody else knows 
about it.


Chris


___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [nova] Server Groups - remove VM from group?

2014-09-11 Thread Jay Pipes

On 09/11/2014 04:51 PM, Matt Riedemann wrote:

On 9/10/2014 6:00 PM, Russell Bryant wrote:

On 09/10/2014 06:46 PM, Joe Cropper wrote:

Hmm, not sure I follow the concern, Russell.  How is that any different
from putting a VM into the group when it’s booted as is done today?
  This simply defers the ‘group insertion time’ to some time after
initial the VM’s been spawned, so I’m not sure this creates anymore race
conditions than what’s already there [1].

[1] Sure, the to-be-added VM could be in the midst of a migration or
something, but that would be pretty simple to check make sure its task
state is None or some such.


The way this works at boot is already a nasty hack.  It does policy
checking in the scheduler, and then has to re-do some policy checking at
launch time on the compute node.  I'm afraid of making this any worse.
In any case, it's probably better to discuss this in the context of a
more detailed design proposal.



This [1] is the hack you're referring to right?

[1]
http://git.openstack.org/cgit/openstack/nova/tree/nova/compute/manager.py?id=2014.2.b3#n1297


That's the hack *I* had in the back of my mind.

-jay

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [nova] Server Groups - remove VM from group?

2014-09-11 Thread Matt Riedemann



On 9/10/2014 6:00 PM, Russell Bryant wrote:

On 09/10/2014 06:46 PM, Joe Cropper wrote:

Hmm, not sure I follow the concern, Russell.  How is that any different
from putting a VM into the group when it’s booted as is done today?
  This simply defers the ‘group insertion time’ to some time after
initial the VM’s been spawned, so I’m not sure this creates anymore race
conditions than what’s already there [1].

[1] Sure, the to-be-added VM could be in the midst of a migration or
something, but that would be pretty simple to check make sure its task
state is None or some such.


The way this works at boot is already a nasty hack.  It does policy
checking in the scheduler, and then has to re-do some policy checking at
launch time on the compute node.  I'm afraid of making this any worse.
In any case, it's probably better to discuss this in the context of a
more detailed design proposal.



This [1] is the hack you're referring to right?

[1] 
http://git.openstack.org/cgit/openstack/nova/tree/nova/compute/manager.py?id=2014.2.b3#n1297


--

Thanks,

Matt Riedemann


___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [nova] Server Groups - remove VM from group?

2014-09-11 Thread Joe Cropper
Great to hear.  I started a blueprint for this [1].  More detail can be added 
once the kilo nova-specs directory is created… for now, I’ve tried to put some 
fairly detailed notes on the blueprint’s description.

[1] https://blueprints.launchpad.net/nova/+spec/dynamic-server-groups

- Joe
On Sep 11, 2014, at 2:11 AM, Sylvain Bauza  wrote:

> 
> Le 11/09/2014 01:10, Joe Cropper a écrit :
>> Agreed - I’ll draft up a formal proposal in the next week or two and we can 
>> focus the discussion there. Thanks for the feedback - this provides a good 
>> framework for implementation considerations.
> 
> Count me on it, I'm interested in discussing the next stage.
> 
> When preparing the scheduler split, I just discovered it was unnecessary to 
> keep the instance groups setup in the scheduler, because it was creating 
> dependencies to other Nova objects that the Scheduler doesn't necessarly need 
> to handle.
> I proposed accordingly a patch for moving the logic to the conductor instead, 
> see the proposal here :
> https://review.openstack.org/110043
> 
> Reviews are welcome of course.
> 
> -Sylvain
> 
> 
>> - Joe
>> On Sep 10, 2014, at 6:00 PM, Russell Bryant  wrote:
>> 
>>> On 09/10/2014 06:46 PM, Joe Cropper wrote:
 Hmm, not sure I follow the concern, Russell.  How is that any different
 from putting a VM into the group when it’s booted as is done today?
 This simply defers the ‘group insertion time’ to some time after
 initial the VM’s been spawned, so I’m not sure this creates anymore race
 conditions than what’s already there [1].
 
 [1] Sure, the to-be-added VM could be in the midst of a migration or
 something, but that would be pretty simple to check make sure its task
 state is None or some such.
>>> The way this works at boot is already a nasty hack.  It does policy
>>> checking in the scheduler, and then has to re-do some policy checking at
>>> launch time on the compute node.  I'm afraid of making this any worse.
>>> In any case, it's probably better to discuss this in the context of a
>>> more detailed design proposal.
>>> 
>>> -- 
>>> Russell Bryant
>>> 
>>> ___
>>> OpenStack-dev mailing list
>>> OpenStack-dev@lists.openstack.org
>>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>> 
>> ___
>> OpenStack-dev mailing list
>> OpenStack-dev@lists.openstack.org
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> 
> 
> ___
> OpenStack-dev mailing list
> OpenStack-dev@lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [nova] Server Groups - remove VM from group?

2014-09-11 Thread Sylvain Bauza


Le 11/09/2014 01:10, Joe Cropper a écrit :

Agreed - I’ll draft up a formal proposal in the next week or two and we can 
focus the discussion there.  Thanks for the feedback - this provides a good 
framework for implementation considerations.


Count me on it, I'm interested in discussing the next stage.

When preparing the scheduler split, I just discovered it was unnecessary 
to keep the instance groups setup in the scheduler, because it was 
creating dependencies to other Nova objects that the Scheduler doesn't 
necessarly need to handle.
I proposed accordingly a patch for moving the logic to the conductor 
instead, see the proposal here :

https://review.openstack.org/110043

Reviews are welcome of course.

-Sylvain



- Joe
On Sep 10, 2014, at 6:00 PM, Russell Bryant  wrote:


On 09/10/2014 06:46 PM, Joe Cropper wrote:

Hmm, not sure I follow the concern, Russell.  How is that any different
from putting a VM into the group when it’s booted as is done today?
This simply defers the ‘group insertion time’ to some time after
initial the VM’s been spawned, so I’m not sure this creates anymore race
conditions than what’s already there [1].

[1] Sure, the to-be-added VM could be in the midst of a migration or
something, but that would be pretty simple to check make sure its task
state is None or some such.

The way this works at boot is already a nasty hack.  It does policy
checking in the scheduler, and then has to re-do some policy checking at
launch time on the compute node.  I'm afraid of making this any worse.
In any case, it's probably better to discuss this in the context of a
more detailed design proposal.

--
Russell Bryant

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev



___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [nova] Server Groups - remove VM from group?

2014-09-10 Thread Joe Cropper
Agreed - I’ll draft up a formal proposal in the next week or two and we can 
focus the discussion there.  Thanks for the feedback - this provides a good 
framework for implementation considerations.

- Joe
On Sep 10, 2014, at 6:00 PM, Russell Bryant  wrote:

> On 09/10/2014 06:46 PM, Joe Cropper wrote:
>> Hmm, not sure I follow the concern, Russell.  How is that any different
>> from putting a VM into the group when it’s booted as is done today?
>> This simply defers the ‘group insertion time’ to some time after
>> initial the VM’s been spawned, so I’m not sure this creates anymore race
>> conditions than what’s already there [1].
>> 
>> [1] Sure, the to-be-added VM could be in the midst of a migration or
>> something, but that would be pretty simple to check make sure its task
>> state is None or some such.
> 
> The way this works at boot is already a nasty hack.  It does policy
> checking in the scheduler, and then has to re-do some policy checking at
> launch time on the compute node.  I'm afraid of making this any worse.
> In any case, it's probably better to discuss this in the context of a
> more detailed design proposal.
> 
> -- 
> Russell Bryant
> 
> ___
> OpenStack-dev mailing list
> OpenStack-dev@lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [nova] Server Groups - remove VM from group?

2014-09-10 Thread Joe Cropper
+1, Chris.

I think the key thing here is that such race conditions can already happen if 
timed just right, unless there’s been some additional checks put in place in 
the compute API layer since I last scanned the code.  We could even look at 
some x-process locking mechanisms as well if we think that’s necessary.

Overall, this seems like a feasible, fairly minor enhancement--that wouldn’t 
make us any worse off than we are today (perhaps address some existing race 
conditions), all whilst providing a large improvement to the overall usability 
of the server groups.  :-)

- Joe
On Sep 10, 2014, at 5:54 PM, Chris Friesen  wrote:

> On 09/10/2014 04:16 PM, Russell Bryant wrote:
>> 
>> 
>>> On Sep 10, 2014, at 2:03 PM, Joe Cropper 
>>> wrote:
>>> 
>>> I would like to craft up a blueprint proposal for Kilo to add two
>>> simple extensions to the existing server group APIs that I believe
>>> will make them infinitely more usable in any ‘real world’ scenario.
>>> I’ll put more details in the proposal, but in a nutshell:
>>> 
>>> 1. Adding a VM to a server group Only allow it to succeed if its
>>> policy wouldn’t be violated by the addition of the VM
>>> 
>> 
>> I'm not sure that determining this at the time of the API request is
>> possible due to the parallel and async nature of the system. I'd love
>> to hear ideas on how you think this might be done, but I'm really not
>> optimistic and would rather just not go down this road.
> 
> I can see a possible race against another instance booting into the group, or 
> another already-running instance being added to the group.  I think the 
> solution is to do the update as an atomic database transaction.
> 
> It seems like it should be possible to create a database operation that does 
> the following in a single transaction:
> --look up the hosts for the instances in the group
> --check that the scheduler policy would be satisfied (at least for the basic 
> affinity/anti-affinity policies)
> --add the instance to the group
> 
> Chris
> 
> ___
> OpenStack-dev mailing list
> OpenStack-dev@lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [nova] Server Groups - remove VM from group?

2014-09-10 Thread Russell Bryant
On 09/10/2014 06:46 PM, Joe Cropper wrote:
> Hmm, not sure I follow the concern, Russell.  How is that any different
> from putting a VM into the group when it’s booted as is done today?
>  This simply defers the ‘group insertion time’ to some time after
> initial the VM’s been spawned, so I’m not sure this creates anymore race
> conditions than what’s already there [1].
> 
> [1] Sure, the to-be-added VM could be in the midst of a migration or
> something, but that would be pretty simple to check make sure its task
> state is None or some such.

The way this works at boot is already a nasty hack.  It does policy
checking in the scheduler, and then has to re-do some policy checking at
launch time on the compute node.  I'm afraid of making this any worse.
In any case, it's probably better to discuss this in the context of a
more detailed design proposal.

-- 
Russell Bryant

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [nova] Server Groups - remove VM from group?

2014-09-10 Thread Chris Friesen

On 09/10/2014 04:16 PM, Russell Bryant wrote:




On Sep 10, 2014, at 2:03 PM, Joe Cropper 
wrote:

I would like to craft up a blueprint proposal for Kilo to add two
simple extensions to the existing server group APIs that I believe
will make them infinitely more usable in any ‘real world’ scenario.
I’ll put more details in the proposal, but in a nutshell:

1. Adding a VM to a server group Only allow it to succeed if its
policy wouldn’t be violated by the addition of the VM



I'm not sure that determining this at the time of the API request is
possible due to the parallel and async nature of the system. I'd love
to hear ideas on how you think this might be done, but I'm really not
optimistic and would rather just not go down this road.


I can see a possible race against another instance booting into the 
group, or another already-running instance being added to the group.  I 
think the solution is to do the update as an atomic database transaction.


It seems like it should be possible to create a database operation that 
does the following in a single transaction:

--look up the hosts for the instances in the group
--check that the scheduler policy would be satisfied (at least for the 
basic affinity/anti-affinity policies)

--add the instance to the group

Chris

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [nova] Server Groups - remove VM from group?

2014-09-10 Thread Joe Cropper
Hmm, not sure I follow the concern, Russell.  How is that any different from 
putting a VM into the group when it’s booted as is done today?  This simply 
defers the ‘group insertion time’ to some time after initial the VM’s been 
spawned, so I’m not sure this creates anymore race conditions than what’s 
already there [1].

[1] Sure, the to-be-added VM could be in the midst of a migration or something, 
but that would be pretty simple to check make sure its task state is None or 
some such.

- Joe
On Sep 10, 2014, at 5:16 PM, Russell Bryant  wrote:

> 
> 
>> On Sep 10, 2014, at 2:03 PM, Joe Cropper  wrote:
>> 
>> I agree, Chris.  I think a number of folks put in a lot of really great work 
>> into the existing server groups and there has been a lot of interest on 
>> their usage, especially given that the scheduler already has some constructs 
>> in place to piggyback on them.
>> 
>> I would like to craft up a blueprint proposal for Kilo to add two simple 
>> extensions to the existing server group APIs that I believe will make them 
>> infinitely more usable in any ‘real world’ scenario.  I’ll put more details 
>> in the proposal, but in a nutshell:
>> 
>> 1. Adding a VM to a server group
>> Only allow it to succeed if its policy wouldn’t be violated by the addition 
>> of the VM
>> 
> 
> I'm not sure that determining this at the time of the API request is possible 
> due to the parallel and async nature of the system. I'd love to hear ideas on 
> how you think this might be done, but I'm really not optimistic and would 
> rather just not go down this road. 
> 
>> 2. Removing a VM from a server group
>> Just allow it
>> 
>> I think this would round out the support that’s there and really allow us to 
>> capitalize on the hard work everyone’s already put into them.
>> 
>> - Joe
>> 
>>> On Aug 26, 2014, at 6:39 PM, Chris Friesen  
>>> wrote:
>>> 
 On 08/25/2014 11:25 AM, Joe Cropper wrote:
 I was thinking something simple such as only allowing the add
 operation to succeed IFF no policies are found to be in violation...
 and then nova wouldn't need to get into all the complexities you
 mention?
>>> 
>>> Personally I would be in favour of this...nothing fancy, just add it if it 
>>> already meets all the criteria.  This is basically just a database 
>>> operation so I would hope we could make it reliable in the face of 
>>> simultaneous things going on with the instance.
>>> 
 And remove would be fairly straightforward as well since no
 constraints would need to be checked.
>>> 
>>> Agreed.
>>> 
>>> Chris
>>> 
>>> ___
>>> OpenStack-dev mailing list
>>> OpenStack-dev@lists.openstack.org
>>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>> 
>> 
>> ___
>> OpenStack-dev mailing list
>> OpenStack-dev@lists.openstack.org
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> ___
> OpenStack-dev mailing list
> OpenStack-dev@lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [nova] Server Groups - remove VM from group?

2014-09-10 Thread Russell Bryant


> On Sep 10, 2014, at 2:03 PM, Joe Cropper  wrote:
> 
> I agree, Chris.  I think a number of folks put in a lot of really great work 
> into the existing server groups and there has been a lot of interest on their 
> usage, especially given that the scheduler already has some constructs in 
> place to piggyback on them.
> 
> I would like to craft up a blueprint proposal for Kilo to add two simple 
> extensions to the existing server group APIs that I believe will make them 
> infinitely more usable in any ‘real world’ scenario.  I’ll put more details 
> in the proposal, but in a nutshell:
> 
> 1. Adding a VM to a server group
> Only allow it to succeed if its policy wouldn’t be violated by the addition 
> of the VM
> 

I'm not sure that determining this at the time of the API request is possible 
due to the parallel and async nature of the system. I'd love to hear ideas on 
how you think this might be done, but I'm really not optimistic and would 
rather just not go down this road. 

> 2. Removing a VM from a server group
> Just allow it
> 
> I think this would round out the support that’s there and really allow us to 
> capitalize on the hard work everyone’s already put into them.
> 
> - Joe
> 
>> On Aug 26, 2014, at 6:39 PM, Chris Friesen  
>> wrote:
>> 
>>> On 08/25/2014 11:25 AM, Joe Cropper wrote:
>>> I was thinking something simple such as only allowing the add
>>> operation to succeed IFF no policies are found to be in violation...
>>> and then nova wouldn't need to get into all the complexities you
>>> mention?
>> 
>> Personally I would be in favour of this...nothing fancy, just add it if it 
>> already meets all the criteria.  This is basically just a database operation 
>> so I would hope we could make it reliable in the face of simultaneous things 
>> going on with the instance.
>> 
>>> And remove would be fairly straightforward as well since no
>>> constraints would need to be checked.
>> 
>> Agreed.
>> 
>> Chris
>> 
>> ___
>> OpenStack-dev mailing list
>> OpenStack-dev@lists.openstack.org
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> 
> 
> ___
> OpenStack-dev mailing list
> OpenStack-dev@lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [nova] Server Groups - remove VM from group?

2014-09-10 Thread Joe Cropper
I agree, Chris.  I think a number of folks put in a lot of really great work 
into the existing server groups and there has been a lot of interest on their 
usage, especially given that the scheduler already has some constructs in place 
to piggyback on them.

I would like to craft up a blueprint proposal for Kilo to add two simple 
extensions to the existing server group APIs that I believe will make them 
infinitely more usable in any ‘real world’ scenario.  I’ll put more details in 
the proposal, but in a nutshell:

1. Adding a VM to a server group
Only allow it to succeed if its policy wouldn’t be violated by the addition of 
the VM

2. Removing a VM from a server group
Just allow it

I think this would round out the support that’s there and really allow us to 
capitalize on the hard work everyone’s already put into them.

- Joe

On Aug 26, 2014, at 6:39 PM, Chris Friesen  wrote:

> On 08/25/2014 11:25 AM, Joe Cropper wrote:
>> I was thinking something simple such as only allowing the add
>> operation to succeed IFF no policies are found to be in violation...
>> and then nova wouldn't need to get into all the complexities you
>> mention?
> 
> Personally I would be in favour of this...nothing fancy, just add it if it 
> already meets all the criteria.  This is basically just a database operation 
> so I would hope we could make it reliable in the face of simultaneous things 
> going on with the instance.
> 
>> And remove would be fairly straightforward as well since no
>> constraints would need to be checked.
> 
> Agreed.
> 
> Chris
> 
> ___
> OpenStack-dev mailing list
> OpenStack-dev@lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [nova] Server Groups - remove VM from group?

2014-08-26 Thread Chris Friesen

On 08/25/2014 11:25 AM, Joe Cropper wrote:

I was thinking something simple such as only allowing the add
operation to succeed IFF no policies are found to be in violation...
and then nova wouldn't need to get into all the complexities you
mention?


Personally I would be in favour of this...nothing fancy, just add it if 
it already meets all the criteria.  This is basically just a database 
operation so I would hope we could make it reliable in the face of 
simultaneous things going on with the instance.



And remove would be fairly straightforward as well since no
constraints would need to be checked.


Agreed.

Chris

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [nova] Server Groups - remove VM from group?

2014-08-25 Thread Joe Cropper
> Even something like this is a lot more complicated than it sounds due to
the fact that several operations can be happening in parallel.

That's fair, but I was thinking that the 'add existing' VM is fairly
close in behavior to 'add new' VM to the group, less of course any
parallel operations happening on the VM itself.

> I think we just need to draw a line for Nova that just doesn't include this
functionality.

If that's our general direction, no problem.  I'm just thinking about
this from a user's perspective; this would be very difficult for any
administrator to use in its current form because you essentially can't
make a mistake in the group management--any mistake results in you
having to essentially delete the VM and start over, which is a pretty
major usability issue IMO, at least in terms of most production
environments.

Don't get me wrong, I think server groups have a lot of interesting
use cases (I actually would really like to use them) in their current
form and I think as a starting point, this is great.  But I think
without some of these added flexibilities, I think it would be very
challenging for any IT administrator to use them--hence why I'm
exploring adding some additional functionality; I'm even happy to help
implement this, if we can get any type of concurrence on the subject.
:-)

- Joe

On Mon, Aug 25, 2014 at 12:58 PM, Russell Bryant  wrote:
> On 08/25/2014 01:25 PM, Joe Cropper wrote:
>> I was thinking something simple such as only allowing the add operation to 
>> succeed IFF no policies are found to be in violation... and then nova 
>> wouldn't need to get into all the complexities you mention?
>
> Even something like this is a lot more complicated than it sounds due to
> the fact that several operations can be happening in parallel.  I think
> we just need to draw a line for Nova that just doesn't include this
> functionality.
>
>> And remove would be fairly straightforward as well since no constraints 
>> would need to be checked.
>
> Right, remove is straight forward, but seems a bit odd to have without
> add.  I'm not sure there's much value to it.
>
> --
> Russell Bryant
>
> ___
> OpenStack-dev mailing list
> OpenStack-dev@lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [nova] Server Groups - remove VM from group?

2014-08-25 Thread Russell Bryant
On 08/25/2014 01:25 PM, Joe Cropper wrote:
> I was thinking something simple such as only allowing the add operation to 
> succeed IFF no policies are found to be in violation... and then nova 
> wouldn't need to get into all the complexities you mention?

Even something like this is a lot more complicated than it sounds due to
the fact that several operations can be happening in parallel.  I think
we just need to draw a line for Nova that just doesn't include this
functionality.

> And remove would be fairly straightforward as well since no constraints would 
> need to be checked. 

Right, remove is straight forward, but seems a bit odd to have without
add.  I'm not sure there's much value to it.

-- 
Russell Bryant

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [nova] Server Groups - remove VM from group?

2014-08-25 Thread Joe Cropper
I was thinking something simple such as only allowing the add operation to 
succeed IFF no policies are found to be in violation... and then nova wouldn't 
need to get into all the complexities you mention?

And remove would be fairly straightforward as well since no constraints would 
need to be checked. 

Thoughts?

Thanks,
Joe

> On Aug 25, 2014, at 12:10 PM, Russell Bryant  wrote:
> 
>> On 08/25/2014 12:56 PM, Joe Cropper wrote:
>> That was indeed a rather long (and insightful) thread on the topic.
>> It sounds like there are still some healthy discussions worth having
>> on the subject -- either exploring your [potentially superseding]
>> proposal, or minimally rounding out the existing server group API to
>> support "add existing VM" [1] and "remove VM" -- I think these would
>> make it a lot more usable (I'm thinking of the poor cloud
>> administrator that makes a mistake when they boot an instance and
>> either forgets to put it in a group or puts it in the wrong group --
>> it's square 1 for them)?
>> 
>> Is this queued up as a discussion point for Paris?  If so, count me in!
> 
> Adding a VM is far from trivial and is why we ripped it out before
> merging.  That implies a potential reshuffling of a bunch of existing
> VMs.  Consider an affinity group of instances A and B and then you add
> running instance C to that group.  What do you expect to happen?  Live
> migrate C to the host running A and B?  What if there isn't room?
> Reschedule all 3 to find a host and live migrate all of them?  This kind
> of orchestration is a good bit outside of the scope of what's done
> inside of Nova today.
> 
> -- 
> Russell Bryant
> 
> ___
> OpenStack-dev mailing list
> OpenStack-dev@lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [nova] Server Groups - remove VM from group?

2014-08-25 Thread Russell Bryant
On 08/25/2014 12:56 PM, Joe Cropper wrote:
> That was indeed a rather long (and insightful) thread on the topic.
> It sounds like there are still some healthy discussions worth having
> on the subject -- either exploring your [potentially superseding]
> proposal, or minimally rounding out the existing server group API to
> support "add existing VM" [1] and "remove VM" -- I think these would
> make it a lot more usable (I'm thinking of the poor cloud
> administrator that makes a mistake when they boot an instance and
> either forgets to put it in a group or puts it in the wrong group --
> it's square 1 for them)?
> 
> Is this queued up as a discussion point for Paris?  If so, count me in!

Adding a VM is far from trivial and is why we ripped it out before
merging.  That implies a potential reshuffling of a bunch of existing
VMs.  Consider an affinity group of instances A and B and then you add
running instance C to that group.  What do you expect to happen?  Live
migrate C to the host running A and B?  What if there isn't room?
Reschedule all 3 to find a host and live migrate all of them?  This kind
of orchestration is a good bit outside of the scope of what's done
inside of Nova today.

-- 
Russell Bryant

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [nova] Server Groups - remove VM from group?

2014-08-25 Thread Joe Cropper
That was indeed a rather long (and insightful) thread on the topic.
It sounds like there are still some healthy discussions worth having
on the subject -- either exploring your [potentially superseding]
proposal, or minimally rounding out the existing server group API to
support "add existing VM" [1] and "remove VM" -- I think these would
make it a lot more usable (I'm thinking of the poor cloud
administrator that makes a mistake when they boot an instance and
either forgets to put it in a group or puts it in the wrong group --
it's square 1 for them)?

Is this queued up as a discussion point for Paris?  If so, count me in!

Thanks,
Joe

On Mon, Aug 25, 2014 at 11:08 AM, Jay Pipes  wrote:
> On 08/25/2014 11:31 AM, Joe Cropper wrote:
>>
>> Thanks Jay.  Those are the same types of questions I was pondering as
>> well when debating how someone might use this.  I think what we have
>> is fine for a first pass, but that's what I was poking at... whether
>> some of the abilities to add/remove members dynamically could exist
>> (e.g., I no longer want this VM to have an anti-affinity policy
>> relative to the others, etc.).
>
>
> I guess what I was getting at is that I think the whole interface is flawed
> and it's not worth putting in the effort to make it slightly less flawed.
>
> Best,
> -jay
>
>
>> - Joe
>>
>> On Mon, Aug 25, 2014 at 10:16 AM, Jay Pipes  wrote:
>>>
>>> On 08/25/2014 11:10 AM, Joe Cropper wrote:


 Hello,

 Is our long-term vision to allow a VMs to be dynamically added/removed
 from a group?  That is, unless I'm overlooking something, it appears
 that you can only add a VM to a server group at VM boot time and
 effectively remove it by deleting the VM?

 Just curious if this was a design point, or merely an approach at a
 staged implementation [that might welcome some additions]?  :)
>>>
>>>
>>>
>>> See here:
>>>
>>> http://lists.openstack.org/pipermail/openstack-dev/2014-April/033746.html
>>>
>>> If I had my druthers, I would revert the whole extension.
>>>
>>> -jay
>>>
>>> ___
>>> OpenStack-dev mailing list
>>> OpenStack-dev@lists.openstack.org
>>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>
>>
>> ___
>> OpenStack-dev mailing list
>> OpenStack-dev@lists.openstack.org
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>
>
>
> ___
> OpenStack-dev mailing list
> OpenStack-dev@lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [nova] Server Groups - remove VM from group?

2014-08-25 Thread Jay Pipes

On 08/25/2014 11:31 AM, Joe Cropper wrote:

Thanks Jay.  Those are the same types of questions I was pondering as
well when debating how someone might use this.  I think what we have
is fine for a first pass, but that's what I was poking at... whether
some of the abilities to add/remove members dynamically could exist
(e.g., I no longer want this VM to have an anti-affinity policy
relative to the others, etc.).


I guess what I was getting at is that I think the whole interface is 
flawed and it's not worth putting in the effort to make it slightly less 
flawed.


Best,
-jay


- Joe

On Mon, Aug 25, 2014 at 10:16 AM, Jay Pipes  wrote:

On 08/25/2014 11:10 AM, Joe Cropper wrote:


Hello,

Is our long-term vision to allow a VMs to be dynamically added/removed
from a group?  That is, unless I'm overlooking something, it appears
that you can only add a VM to a server group at VM boot time and
effectively remove it by deleting the VM?

Just curious if this was a design point, or merely an approach at a
staged implementation [that might welcome some additions]?  :)



See here:

http://lists.openstack.org/pipermail/openstack-dev/2014-April/033746.html

If I had my druthers, I would revert the whole extension.

-jay

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev




___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [nova] Server Groups - remove VM from group?

2014-08-25 Thread Joe Cropper
Thanks Jay.  Those are the same types of questions I was pondering as
well when debating how someone might use this.  I think what we have
is fine for a first pass, but that's what I was poking at... whether
some of the abilities to add/remove members dynamically could exist
(e.g., I no longer want this VM to have an anti-affinity policy
relative to the others, etc.).

- Joe

On Mon, Aug 25, 2014 at 10:16 AM, Jay Pipes  wrote:
> On 08/25/2014 11:10 AM, Joe Cropper wrote:
>>
>> Hello,
>>
>> Is our long-term vision to allow a VMs to be dynamically added/removed
>> from a group?  That is, unless I'm overlooking something, it appears
>> that you can only add a VM to a server group at VM boot time and
>> effectively remove it by deleting the VM?
>>
>> Just curious if this was a design point, or merely an approach at a
>> staged implementation [that might welcome some additions]?  :)
>
>
> See here:
>
> http://lists.openstack.org/pipermail/openstack-dev/2014-April/033746.html
>
> If I had my druthers, I would revert the whole extension.
>
> -jay
>
> ___
> OpenStack-dev mailing list
> OpenStack-dev@lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [nova] Server Groups - remove VM from group?

2014-08-25 Thread Jay Pipes

On 08/25/2014 11:10 AM, Joe Cropper wrote:

Hello,

Is our long-term vision to allow a VMs to be dynamically added/removed
from a group?  That is, unless I'm overlooking something, it appears
that you can only add a VM to a server group at VM boot time and
effectively remove it by deleting the VM?

Just curious if this was a design point, or merely an approach at a
staged implementation [that might welcome some additions]?  :)


See here:

http://lists.openstack.org/pipermail/openstack-dev/2014-April/033746.html

If I had my druthers, I would revert the whole extension.

-jay

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


[openstack-dev] [nova] Server Groups - remove VM from group?

2014-08-25 Thread Joe Cropper
Hello,

Is our long-term vision to allow a VMs to be dynamically added/removed
from a group?  That is, unless I'm overlooking something, it appears
that you can only add a VM to a server group at VM boot time and
effectively remove it by deleting the VM?

Just curious if this was a design point, or merely an approach at a
staged implementation [that might welcome some additions]?  :)

Thanks,
Joe

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev