settingsLogin | Registersettings

[Openstack] Multiple availability zones

0 votes

Thanx everyone in helping me figure out how I wanted my multiple
controller nodes setup - using keepalived and load balance the
services with that is well under way and so far it looks like
it's working.

I still have to fine-tune and finish that work of. But modifying
my setup scripts etc to set this up (the physical hosts is setup
using PXE and a bunch of scripts etc; the VMs is setup using
puppet - it's to late to puppetize the physical nodes, but it's
fine, PXE and the scripts let me destroy a node and just recreate
it in minutes), lead me directly to another TODO I've had for a while,
which now require a decision.

My blade center have sixteen half-height nodes (eight in two rows),
where I've decided to have the first node as a Control node (that's
the one that's been up and running for months now), the following
seven nodes in the first row as internal (for my own personal use)
compute nodes. Those nodes would be dedicated for my infrastructure.
Such as LDAP, kerberos, SMTP, VoIP server etc, etc.

Those seven is also fully working.

Technically I only seem to need three nodes for all of that, but
that would mean that they would be quite cramped (I don't have
that much memory in the machines unfortunately). And I'd loose
out on having services on different physical hosts. Also, possible
future need makes it reasonable to dedicate all seven to my
infrastructure.

Then node nine (first node on the second row) would then be my
second control node (this is the one I'm setting up now) and then
seven physical nodes for "miscellaneous" (mostly my development
and test machines of different operating systems, distributions
and versions, friends VMs etc, etc).

So what this means is that having two different availability zones,
first row is now named 'nova' (which is the default in OS, and it
makes sense to keep that) and the second .. "user" (or whatever)
seems like a reasonable approach.

From what I understand of AZs, is that if I create an instance,
I need to specify the AZ (I'm using Heat and extremely early on
in my OS setup, I created templates and worked around the need
to specify the AZ - my template use that for me now) and the
instance will ONLY be started in that specified AZ. Which helps
things being created in the right place.

Eventually, I probably have to figure out a way to make sure
that only I can create instances in the 'nova' AZ, but that
can be an exercise for another day..

However, and here comes the question after a long babbling of
what I'm up to, the two controller nodes need to be able to
manage both availability zones! I can not (do not want to)
waste more resources. Technically, I don't really NEED two
controllers, but for at least a rudimentary high-availability
(which is, because they're on the same network, on the same
switch, on the same breaker, the same power cable etc, etc,
is only imaginary and one can still handle the load just fine,
even with the possible future use, having two makes at least
some shred of 'good idea'), I've already dedicated these two
physical nodes for that.

Is this possible? Can a controller node (i.e., a physical node
that runs EVERYTHING but Nova - aodh, barbican, ceilometer, cinder,
etc, etc, etc!) also control multiple availability zones?

They of course could have their own separate default AZ, even
though I'm not sure that is needed.

The first objection I can think of is the networking - where
do the network go in/out of OS if the primary controller dies?
And how do I solve that? Currently, everything goes in and out
via the first control node, which seems to be just fine. So what
happens to the traffic if/when that dies? Will OS (Neutron)
automatically use the second controller?
--
System administrators motto:
You're either invisible or in trouble.
- Unknown


Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
Post to : openstack@lists.openstack.org
Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
asked Sep 28, 2016 in openstack by Turbo_Fredriksson (8,980 points)   7 13 19

4 Responses

0 votes

Hello Turbo,
If I have understood it correctly your primary question is about
availability zones.

There is no requirements for running a availability zone, it's simply a
way to group compute resources into a zone.
After users can select where the resources should be deployed.

As compared to having regions where it's more two clouds having the same
Keystone for authentication.

Availability zones is simply a logical separation of your resources
compared to host aggregates your resources can only be in one
availability zone but have multiple host aggregates. See the aggregate
documentation and perhaps that clears it up more than my messy writing.
http://docs.openstack.org/developer/nova/aggregates.html

Forgive me if I missed some questions or statements in your wall of
text, it's early in the morning :)
Best regards

On 09/28/2016 09:18 PM, Turbo Fredriksson wrote:
Thanx everyone in helping me figure out how I wanted my multiple
controller nodes setup - using keepalived and load balance the
services with that is well under way and so far it looks like
it's working.

I still have to fine-tune and finish that work of. But modifying
my setup scripts etc to set this up (the physical hosts is setup
using PXE and a bunch of scripts etc; the VMs is setup using
puppet - it's to late to puppetize the physical nodes, but it's
fine, PXE and the scripts let me destroy a node and just recreate
it in minutes), lead me directly to another TODO I've had for a while,
which now require a decision.

My blade center have sixteen half-height nodes (eight in two rows),
where I've decided to have the first node as a Control node (that's
the one that's been up and running for months now), the following
seven nodes in the first row as internal (for my own personal use)
compute nodes. Those nodes would be dedicated for my infrastructure.
Such as LDAP, kerberos, SMTP, VoIP server etc, etc.

Those seven is also fully working.

Technically I only seem to need three nodes for all of that, but
that would mean that they would be quite cramped (I don't have
that much memory in the machines unfortunately). And I'd loose
out on having services on different physical hosts. Also, possible
future need makes it reasonable to dedicate all seven to my
infrastructure.

Then node nine (first node on the second row) would then be my
second control node (this is the one I'm setting up now) and then
seven physical nodes for "miscellaneous" (mostly my development
and test machines of different operating systems, distributions
and versions, friends VMs etc, etc).

So what this means is that having two different availability zones,
first row is now named 'nova' (which is the default in OS, and it
makes sense to keep that) and the second .. "user" (or whatever)
seems like a reasonable approach.

From what I understand of AZs, is that if I create an instance,
I need to specify the AZ (I'm using Heat and extremely early on
in my OS setup, I created templates and worked around the need
to specify the AZ - my template use that for me now) and the
instance will ONLY be started in that specified AZ. Which helps
things being created in the right place.

Eventually, I probably have to figure out a way to make sure
that only I can create instances in the 'nova' AZ, but that
can be an exercise for another day..

However, and here comes the question after a long babbling of
what I'm up to, the two controller nodes need to be able to
manage both availability zones! I can not (do not want to)
waste more resources. Technically, I don't really NEED two
controllers, but for at least a rudimentary high-availability
(which is, because they're on the same network, on the same
switch, on the same breaker, the same power cable etc, etc,
is only imaginary and one can still handle the load just fine,
even with the possible future use, having two makes at least
some shred of 'good idea'), I've already dedicated these two
physical nodes for that.

Is this possible? Can a controller node (i.e., a physical node
that runs EVERYTHING but Nova - aodh, barbican, ceilometer, cinder,
etc, etc, etc!) also control multiple availability zones?

They of course could have their own separate default AZ, even
though I'm not sure that is needed.

The first objection I can think of is the networking - where
do the network go in/out of OS if the primary controller dies?
And how do I solve that? Currently, everything goes in and out
via the first control node, which seems to be just fine. So what
happens to the traffic if/when that dies? Will OS (Neutron)
automatically use the second controller?


Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
Post to : openstack@lists.openstack.org
Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
responded Sep 29, 2016 by Tobias_Urdin (1,300 points)   1
0 votes

On Sep 29, 2016, at 8:52 AM, Tobias Urdin wrote:

If I have understood it correctly your primary question is about
availability zones.

Technically I guess that's right, but not so much about what it/they
are and how they're used, but more like "can a controller manage multiple
zones"..

And with "a controller" I'm thinking Neutron, Keystone, Cinder etc, etc.
--
You know, boys, a nuclear reactor is a lot like a woman.
You just have to read the manual and press the right buttons
- Homer Simpson

responded Sep 29, 2016 by Turbo_Fredriksson (8,980 points)   7 13 19
0 votes

Yes because a availability zone does not "belong" to anything.

It's simply a group of resources defined in your nova database to make
scheduling decisions.

Best regards

On 09/29/2016 03:08 PM, Turbo Fredriksson wrote:
On Sep 29, 2016, at 8:52 AM, Tobias Urdin wrote:

If I have understood it correctly your primary question is about
availability zones.
Technically I guess that's right, but not so much about what it/they
are and how they're used, but more like "can a controller manage multiple
zones"..

And with "a controller" I'm thinking Neutron, Keystone, Cinder etc, etc.
--
You know, boys, a nuclear reactor is a lot like a woman.
You just have to read the manual and press the right buttons
- Homer Simpson


Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
Post to : openstack@lists.openstack.org
Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack


Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
Post to : openstack@lists.openstack.org
Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
responded Sep 29, 2016 by Tobias_Urdin (1,300 points)   1
0 votes

On Sep 29, 2016, at 2:11 PM, Tobias Urdin wrote:

Yes because a availability zone does not "belong" to anything.

Well, the comments in the config file(s) seem to differ from that
statement:

# Default value of availability zone hints. The availability zone
# aware schedulers use this when the resources availability_zone_hints
# is empty. Multiple availability zones can be specified by a comma
# separated string. This value can be empty. In this case, even if
# availability_zone_hints for a resource is empty, availability zone
# is considered for high availability while scheduling the resource.
# (list value)
default_availability_zones = nova

# Availability zone of this node (string value)
availability_zone = nova

Or at least, might be a little .. "fuzzy". Does the "Multiple az can be specified
with a comma" belong to the 'defaultavailabilityzones' (the suffixing 's' in
that seem to indicate that - plural) or to the 'availability_zone'??

How can there be multiple defaults (!!) but only one specified!?

So what you're saying is that if I specify, for example:

default_availability_zones = nova,users
availability_zone = nova

then that service (Neutron in this case) should be able to deal with both my
AZs? What about the i/o from Neutron? Will it be automatic, or do I have to
'link' my two Neutron (etc) controllers somehow? Or are they linked "via"
RabbitMQ and/or MySQL?
--
Turbo Fredriksson
turbo@bayour.com

responded Sep 29, 2016 by Turbo_Fredriksson (8,980 points)   7 13 19
...