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