Using zones in Cactus

Asked by Everett Toews

Hi All,

I'm attempting to use zones in Cactus but haven't been able to get the configuration quite right. The setup I'm attempting is 1 parent zone with 2 child zones.

Here's my relevant config:

*Parent zone nova.conf*

--scheduler_driver=nova.scheduler.zone.ZoneScheduler
--allow_admin_api=true
--enable_zone_routing=true

*Child zone 1 nova.conf*

--scheduler_driver=nova.scheduler.simple.SimpleScheduler
--allow_admin_api=true
--zone_name=nova1

*Child zone 2 nova.conf*

--scheduler_driver=nova.scheduler.simple.SimpleScheduler
--allow_admin_api=true
--zone_name=nova2

On the node of the parent zone I do:

nova zone-add http://xxx.xxx.xxx.xxx:8774/v1.0/ nova1-admin 5c966a51-89f2-47c9-9d87-5d950ce8f492
nova zone-add http://xxx.xxx.xxx.yyy:8774/v1.0/ nova2-admin 67966a51-89f3-47c9-9d87-5d951ce8f434

After waiting a couple of minutes I do a "nova zone-list" and get the output:

+----+------+-----------+--------------+---------------------------------+
| ID | Name | Is Active | Capabilities | API URL |
+----+------+-----------+--------------+---------------------------------+
| 1 | None | True | None | http://xxx.xxx.xxx.xxx:8774/v1.0/ |
| 2 | None | True | None | http://xxx.xxx.xxx.yyy:8774/v1.0/ |
+----+------+-----------+--------------+---------------------------------+

After another few minutes the Is Active field changes to False for both of them.

My questions are:

1. What am I doing wrong? Is there any config I'm missing?
2. Do I need to explicitly add the parent zone? I would think that the act of adding a zone to another zone makes it a parent.
3. How are users/projects sync'd across zones? If zones share nothing, how are the child zones aware of users/project? Do users/project even matter to child zones?
4. Is there any config that needs to be done on the compute nodes of a zone?

Thanks,
Everett

Question information

Language:
English Edit question
Status:
Solved
For:
OpenStack Compute (nova) Edit question
Assignee:
No assignee Edit question
Solved by:
Sandy Walsh
Solved:
Last query:
Last reply:
Revision history for this message
Sandy Walsh (sandy-walsh) said :
#1

Can you give a paste of the compute/scheduler/api logs ... we should be able to see where things are going wonky from there.

Also, I'd use trunk for zones. There have been lots of changes since Cactus.

Revision history for this message
Everett Toews (everett-toews) said :
#2

Found the problem. I was actually running the child zones in VMs in the parent zone just to try all of this stuff out. I had forgotten to authorize the port 8774. Once that was done the parent zone could communicate with the child zones.

However, even though the parent and child zones can communicate I'm still unable to start VMs in the child zones. I think this is because Cactus doesn't have a Scheduler based on ZoneAwareScheduler. I tried using the ZoneScheduler but that scheduler only knows about Availability Zones. The overloaded use of the word zone can be confusing (especially if you throw in Swift's meaning as well).

Unfortunately I'm unable to use trunk or even any of the Diablo milestones, we'll have to wait until the Diablo release to try all of the new stuff for zones. I don't mind setting this aside until the Diablo release but I think my questions are still relevant.

1. Is Cactus release able to schedule instances to child zones?
2. Do I need to explicitly add the parent zone? I would think that the act of adding a zone to another zone makes it a parent.
3. How are users/projects sync'd across zones? If zones share nothing, how are the child zones aware of users/project? Do users/project even matter to child zones?
4. Is there any config that needs to be done on the compute nodes in a zone?

I think something that would also really help would be to include a concrete example of configuring a parent and child zone in the documentation at http://nova.openstack.org/devref/zone.html. Kind of a 1-2-3 guide to the basic setup of a parent and child zone. Something that would be essential in such a guide would be clearly defining all flags that are relevant to zones and exactly which flags are for which services.

Revision history for this message
Best Sandy Walsh (sandy-walsh) said :
#3

1. Is Cactus release able to schedule instances to child zones?

No, you need the ZoneAwareScheduler derivations for that.

2. Do I need to explicitly add the parent zone? I would think that the act of adding a zone to another zone makes it a parent.

No, you add children to a zone and that implicitly makes it a parent.

3. How are users/projects sync'd across zones? If zones share nothing, how are the child zones aware of users/project? Do users/project even matter to child zones?

Keystone is the Auth layer that will be used to span zones. Users/projects/tenants will have to be shared across zones. There are some blueprints on federated identity and zones available. We are working on that now.

4. Is there any config that needs to be done on the compute nodes in a zone?

Nothing specific to the Compute nodes. Look at the Distributed Scheduler docs for a good breakdown of what's needed overall: http://nova.openstack.org/devref/distributed_scheduler.html

I agree with your point about more documentation. Once we get through our next phase of Alpha I'll try to do just that.

Revision history for this message
Everett Toews (everett-toews) said :
#4

Thanks Sandy Walsh, that solved my question.