[openstack-dev] [nova][scheduler] Availability Zones and Host aggregates..

Jay Pipes jaypipes at gmail.com
Thu Mar 27 01:14:38 UTC 2014


On Thu, 2014-03-27 at 01:10 +0000, Joshua Harlow wrote:
> Region graphs?
> 
> Sounds like what u are describing sounds like a graph
> (non-hierarchical) which has nodes that have defined attributes on
> them.
> 
> A region then would just be a set of connected nodes (which could be
> connected via a parent<->child edge for example). 
> 
> Each node can also have attributes (allowing regions to also be
> selected by common attributes). Seems like that might fit what is
> wanted?

Precisely.

-jay

> 
> From: Jay Pipes <jaypipes at gmail.com>
> Reply-To: "OpenStack Development Mailing List (not for usage
> questions)" <openstack-dev at lists.openstack.org>
> Date: Wednesday, March 26, 2014 at 4:45 PM
> To: "openstack-dev at lists.openstack.org"
> <openstack-dev at lists.openstack.org>
> Subject: Re: [openstack-dev] [nova][scheduler] Availability Zones and
> Host aggregates..
> 
> 
> 
>         On Wed, 2014-03-26 at 13:33 -0700, Vishvananda Ishaya wrote:
>                 On Mar 26, 2014, at 11:40 AM, Jay Pipes
>                 <jaypipes at gmail.com> wrote:
>                 
>                 > On Wed, 2014-03-26 at 09:47 -0700, Vishvananda
>                 Ishaya wrote:
>                 >> Personally I view this as a bug. There is no reason
>                 why we shouldn’t
>                 >> support arbitrary grouping of zones. I know there
>                 is at least one
>                 >> problem with zones that overlap regarding
>                 displaying them properly:
>                 >> 
>                 >> https://bugs.launchpad.net/nova/+bug/1277230
>                 >> 
>                 >> There is probably a related issue that is causing
>                 the error you see
>                 >> below. IMO both of these should be fixed. I also
>                 think adding a
>                 >> compute node to two different aggregates with azs
>                 should be allowed.
>                 >> 
>                 >> It also might be nice to support specifying
>                 multiple zones in the
>                 >> launch command in these models. This would allow
>                 you to limit booting
>                 >> to an intersection of two overlapping zones.
>                 >> 
>                 >> A few examples where these ideas would be useful:
>                 >> 
>                 >> 1. You have 3 racks of servers and half of the
>                 nodes from each rack
>                 >> plugged into a different switch. You want to be
>                 able to specify to
>                 >> spread across racks or switches via an AZ. In this
>                 model you could
>                 >> have a zone for each switch and a zone for each
>                 rack.
>                 >> 
>                 >> 2. A single cloud has 5 racks in one room in the
>                 datacenter and 5
>                 >> racks in a second room. You’d like to give control
>                 to the user to
>                 >> choose the room or choose the rack. In this model
>                 you would have one
>                 >> zone for each room, and smaller zones for each
>                 rack.
>                 >> 
>                 >> 3. You have a small 3 rack cloud and would like to
>                 ensure that your
>                 >> production workloads don’t run on the same machines
>                 as your dev
>                 >> workloads, but you also want to use zones spread
>                 workloads across the
>                 >> three racks. Similarly to 1., you could split your
>                 racks in half via
>                 >> dev and prod zones. Each one of these zones would
>                 overlap with a rack
>                 >> zone.
>                 >> 
>                 >> You can achieve similar results in these situations
>                 by making small
>                 >> zones (switch1-rack1 switch1-rack2 switch1-rack3
>                 switch2-rack1
>                 >> switch2-rack2 switch2-rack3) but that removes the
>                 ability to decide to
>                 >> launch something with less granularity. I.e. you
>                 can’t just specify
>                 >> ‘switch1' or ‘rack1' or ‘anywhere’
>                 >> 
>                 >> I’d like to see all of the following work
>                 >> nova boot … (boot anywhere)
>                 >> nova boot —availability-zone switch1 … (boot it
>                 switch1 zone)
>                 >> nova boot —availability-zone rack1 … (boot in rack1
>                 zone)
>                 >> nova boot —availability-zone switch1,rack1 … (boot
>                 > 
>                 > Personally, I feel it is a mistake to continue to
>                 use the Amazon concept
>                 > of an availability zone in OpenStack, as it brings
>                 with it the
>                 > connotation from AWS EC2 that each zone is an
>                 independent failure
>                 > domain. This characteristic of EC2 availability
>                 zones is not enforced in
>                 > OpenStack Nova or Cinder, and therefore creates a
>                 false expectation for
>                 > Nova users.
>                 > 
>                 > In addition to the above problem with incongruent
>                 expectations, the
>                 > other problem with Nova's use of the EC2
>                 availability zone concept is
>                 > that availability zones are not hierarchical -- due
>                 to the fact that EC2
>                 > AZs are independent failure domains. Not having the
>                 possibility of
>                 > structuring AZs hierarchically limits the ways in
>                 which Nova may be
>                 > deployed -- just see the cells API for the
>                 manifestation of this
>                 > problem.
>                 > 
>                 > I would love it if the next version of the Nova and
>                 Cinder APIs would
>                 > drop the concept of an EC2 availability zone and
>                 introduce the concept
>                 > of a generic region structure that can be infinitely
>                 hierarchical in
>                 > nature. This would enable all of Vish's nova boot
>                 commands above in an
>                 > even simpler fashion. For example:
>                 > 
>                 > Assume a simple region hierarchy like so:
>                 > 
>                 >              regionA
>                 >              /      \
>                 >         regionB    regionC
>                 > 
>                 > # User wants to boot in region B
>                 > nova boot --region regionB
>                 > # User wants to boot in either region B or region C
>                 > nova boot --region regionA
>                 
>                 I think the overlapping zones allows for this and also
>                 enables additional use
>                 cases as mentioned in my earlier email.
>         
>         
>         You are assuming that the region hierarchy I was describing
>         had only a
>         single root region. I didn't say that. I envision multiple
>         root regions,
>         which would enable compute nodes to reside in multiple
>         regions.
>         
>         
>                   Hierarchical doesn’t work for the
>                 rack/switch model. 
>         
>         
>         Sure it does. Just not a single root hierarchy.
>         
>         
>                 I’m definitely +1 on breaking from the amazon usage
>                 of availability zones but I’m a bit leery to add
>                 another parameter to
>                 the create request.
>         
>         
>         It wouldn't add another *required* parameter to the create
>         request. The
>         region would default to whatever region the keystone endpoint
>         that
>         returned the service catalog for the novaclient had as its
>         default
>         region.
>         
>         
>                   It is also unfortunate that region already has a
>                 meaning
>                 in the amazon world which will add confusion.
>         
>         
>         OK. We could call it something else... though IIRC, trying to
>         come up
>         with a name for this kind of thing is, well, kind of tough :)
>         
>         
>         -jay
>         
>         
>         
>         
>         _______________________________________________
>         OpenStack-dev mailing list
>         OpenStack-dev at lists.openstack.org
>         http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>         
>         





More information about the OpenStack-dev mailing list