Hi Reka,

Thanks for your reply. The affinity support you mentioned below will IMHO work 
only for a small number of cartirdges / instances and only if the cartridges 
don’t scale.
Instead it might be more useful to utilize affinity support of the underlying 
IAAS.
For example, openstack supports affinity which, at least at the IAAS level 
meets the requirement as well. It lets you define a flag with the values 
affinity / anti-affinity which behaves as follows:

If affinity is set, the scheduler will place all VMs (at boot time) on the same 
compute host
If anti-affinity is set, the scheduler will place each (out of the same batch 
of VMs) booted VM  on a different compute host. This will make sure that none 
the VMs (same batch of VMs referenced by same the server-group id)  is 
co-located on the same compute host.

I posted a link to the openstack, search for ServerGroupAntiAffinityFilter

http://docs.openstack.org/juno/config-reference/content/section_compute-scheduler.html

Other link I found while searching: 
https://raymii.org/s/articles/Openstack_Affinity_Groups-make-sure-instances-are-on-the-same-or-a-different-hypervisor-host.html

I would think other IAASes will support similar concepts ?!


One question I had while investigating the feature, in the stratos partition 
resource definition documentation (see link below) we  reference 3 properties 
for openstack:
region, host and zone – how do they map to openstack concepts ?
I am assuming that zone refers to availability zones (correct ?), not sure 
about host (btw, is there documentation which explains the mapping of stratos 
concepts to specific IAASes ? )

https://cwiki.apache.org/confluence/display/STRATOS/4.1.0+Network+Partition+Resource+Definition#id-4.1.0NetworkPartitionResourceDefinition-Propertydefinitions


Another question would be where the new parameter should exist, deployment 
policy seems to make the most sense, for example a user specifies the 
co-location within a certain zone.

If this feature is not very generic among IAASes then it probably would make 
sense to support this feature by extending stratos configuration so it allows 
IAAS specific boot parameter ?

Also, jcloud will have to be extended as well to support this enhancement.

WDYT ?

Thanks

Martin

From: Reka Thirunavukkarasu [mailto:r...@wso2.com]
Sent: Wednesday, July 29, 2015 10:09 PM
To: dev
Subject: Re: DISCUSS: co-location of VMs in stratos (affinity / anti-affinity)

Hi Martin,
I will provide some details according to what i have understood. Please correct 
me, if I'm wrong.
A group can consist of different kind of VMs which we called as cartridges in 
stratos. In that case, co-located affinity can be provided to VMs which are 
part of same group by providing a group level deployment policy. As you are 
already aware of, all the VMs which belong to that group will reside in the 
same partition where partition can be a host or zone. Apart from that, if you 
need to achieve anti-affinity, then you can define another group with set of 
other VMs and define deployment policy at the cartridge level. So that 
individual VM will be placed by referring to its own deployment policy rather 
than looking at the group level policy.
AFAIU, this is the level of Affinity aware VM colocation that we supported now. 
Also please note that prior to write such application and cartridge group 
definition, the level of affinity among different types of VM has to be 
identified and experimented well, since stratos currently doesn't have the 
capability of automatically identified the affinity aware colocation VMs.
If this doesn't fit with what you have asked, can you elaborate more on your 
perception of the Affinity aware VM colocation?
Thanks,
Reka


On Thu, Jul 30, 2015 at 7:21 AM, Martin Eppel (meppel) 
<mep...@cisco.com<mailto:mep...@cisco.com>> wrote:
Hi,

As part of our original grouping design we proposed a feature to either 
co-locate or not co-locate individual VMs.

Quoting from the original grouping specification:

Quote begin:
Co-Location
VMs within a group will be spun up based on the model of subscriptions, 
deployment policies and partitions. The model needs to be extended so that:


•        It must be possible to require VMs to be co-located on a single host.

•        It must be possible to require VMs to be located in separate zones.

Quote end.

As we have some immediate needs we started looking into it and would like to 
get the input from the community  for the requirement / implementation (with 
the idea to contribute it back to the master repository eventually).

The question would be what is the current support for it (stratos 4.1) and what 
are the suggestions to enhance stratos to support this enhancement ?

Any other ideas or considerations on how to support the enhancement ?

Thanks

Martin



--
Reka Thirunavukkarasu
Senior Software Engineer,
WSO2, Inc.:http://wso2.com,
Mobile: +94776442007

Reply via email to