Savanna with Quantum Network

Asked by thej ranjan

Hi,

I installed Savanna including the dashboard. I am able to create everything, like node group templates, cluster templates etc. But when i try to launch the cluster, i get an error. Later from few searches i found that Savanna is not ready to fully support Neutron/Quantum and only support Nova-Network [Pls correct me if i am wrong].

Is there any workaround, that can make Savanna work on a Quantum Network. I am getting the following error in the savanna API Log.

2013-07-20 19:53:26.218 18342 WARNING savanna.service.instances [-] Can't start cluster 'test' (reason: unexpected type <type 'NoneType'> for addr arg)
Traceback (most recent call last):
  File "/usr/local/savanna/savanna-venv/local/lib/python2.7/site-packages/eventlet/hubs/hub.py", line 346, in fire_timers
    timer()
  File "/usr/local/savanna/savanna-venv/local/lib/python2.7/site-packages/eventlet/hubs/timer.py", line 56, in __call__
    cb(*args, **kw)
  File "/usr/local/savanna/savanna-venv/local/lib/python2.7/site-packages/eventlet/greenthread.py", line 194, in main
    result = function(*args, **kwargs)
  File "/usr/local/savanna/savanna-venv/local/lib/python2.7/site-packages/savanna/context.py", line 127, in wrapper
    func(*args, **kwargs)
  File "/usr/local/savanna/savanna-venv/local/lib/python2.7/site-packages/savanna/service/api.py", line 110, in _provision_cluster
    i.create_cluster(cluster)
  File "/usr/local/savanna/savanna-venv/local/lib/python2.7/site-packages/savanna/service/instances.py", line 48, in create_cluster
    _rollback_cluster_creation(cluster, ex)
  File "/usr/lib/python2.7/contextlib.py", line 24, in __exit__
    self.gen.next()
  File "/usr/local/savanna/savanna-venv/local/lib/python2.7/site-packages/savanna/service/instances.py", line 36, in create_cluster
    _await_instances(cluster)
  File "/usr/local/savanna/savanna-venv/local/lib/python2.7/site-packages/savanna/service/instances.py", line 183, in _await_instances
    if not _check_if_up(instance):
  File "/usr/local/savanna/savanna-venv/local/lib/python2.7/site-packages/savanna/service/instances.py", line 203, in _check_if_up
    if not networks.init_instances_ips(instance, server):
  File "/usr/local/savanna/savanna-venv/local/lib/python2.7/site-packages/savanna/service/networks.py", line 55, in init_instances_ips
    network = netaddr.IPNetwork(nova_network.cidr)
  File "/usr/local/savanna/savanna-venv/local/lib/python2.7/site-packages/netaddr/ip/__init__.py", line 907, in __init__
    implicit_prefix, flags)
  File "/usr/local/savanna/savanna-venv/local/lib/python2.7/site-packages/netaddr/ip/__init__.py", line 802, in parse_ip_network
    raise TypeError('unexpected type %s for addr arg' % type(addr))
TypeError: unexpected type <type 'NoneType'> for addr arg
(18342) accepted ('127.0.0.1', 42740)

Thanks in advance.

Question information

Language:
English Edit question
Status:
Answered
For:
Sahara Edit question
Assignee:
Sergey Lukjanov Edit question
Last query:
Last reply:
Revision history for this message
Sergey Lukjanov (slukjanov) said :
#1

Unfortunately we are not test Savanna with Neutron now. Here is a bp for integration with Neutron - https://blueprints.launchpad.net/savanna/+spec/add-neutron-support

BTW you can try to use flag use-floating-ips to make savanna use only internal ips, theoretically if savanna will able to access instances using internal network than cluster should be created ok.

Revision history for this message
thej ranjan (thejranjan) said :
#2

Dear Sergey,

Thanks for you reply. But in my case I have set "use_floating_ips=False" in my config file. And the interesting part is even when use_floating_ips is set to true i am getting the same error.

Any help please.

Thanks.

Revision history for this message
arindam (arindam-live) said :
#3

quantum does not support auto assignment of floating ip.
link: https://blueprints.launchpad.net/neutron/+spec/auto-associate-floating-ip

Revision history for this message
Sergey Lukjanov (slukjanov) said :
#4

Savanna could work w/o floating ip if internal network is accessible from host where savanna installed.

Revision history for this message
Sergey Lukjanov (slukjanov) said :
#5

I read code one more time and I think savanna will not work with neutron at all before this bp will be implemented.

Revision history for this message
thej ranjan (thejranjan) said :
#6

Okie, but I dont want it to have floating IP, is it possible to patch the code, to work without neutron and to work only with internal IP's so that we need not wait till the bp to be implemented for people who want to try out savanna.

also use_floating_ips doesn't seem to have any effect i believe. So cant it be considered as a bug.

Thanks & Regards.

Revision history for this message
WangDong (woshisuidonghui) said :
#7

when I am launching cluster after some floating ip available, I can see the instace, but when the launching finished and the cluster turned error ,the instaces were deleted. Does that mean, if I use quantum, I can not run savanna? What can I do if I want to run savanna?
Thanks.

Revision history for this message
Alexander Rubtsov (arubtsov) said :
#8

WangDong, in order to use Savanna you can change Quantum to Nova-network in your OpenStack environment.
Quantum (Neutron) support targeted for Savanna 0.3 which is tentatively expected to release in mid-October:
https://wiki.openstack.org/wiki/Savanna/Roadmap

Revision history for this message
thej ranjan (thejranjan) said :
#9

Dear DongWang,

Kindly replace your network.py with the modifications i made after that restart the savanna-api.

The network.py will be at <savanna install dir>/lib/python2.7/site-packages/savanna/service/network.py

After replacing the file and restarting savanna api, launch cluster, all the vm's in your cluster will come up, and you can verify this from the instances page.

Once you find the instances are up, assign floating ip for all nodes.

If you are running savanna api with --debug flag, you will see some informative logs.

I have added some logs, for my understanding, and the code is not neat and clean. (i am not a programmer basically) :)

Kindly let me know if this works or not.

Thanks

Revision history for this message
thej ranjan (thejranjan) said :
#10

This is my modifications to the actual code. Didnt find a method to share file here, so pasting the code.

http://paste.openstack.org/show/42740/

Regards

Revision history for this message
jianfeng2013 (jfzhang1984) said :
#11

I also have this problem, and modify the source code in service/networks.py and instances.py

Revision history for this message
Bill Stokes (stokesb1) said :
#12

I have the same problem, and updated the network.py code per the comments above. However, when I launch the cluster it sits in the 'waiting' state indefinitely. The debug output keeps looping throught the servers it created for the clustuer. The following information is what keeps getting displayed. Looks like the management_ip is None, and not sure if that is the root of my problem.

2013-08-29 11:00:58.793 14371 WARNING savanna.service.networks [-] This is the server networks : {u'External': [u'10.10.10.95']}
2013-08-29 11:00:58.793 14371 WARNING savanna.service.networks [-] Length of IP List : 1
2013-08-29 11:00:58.794 14371 WARNING savanna.service.networks [-] This is the network_label External
2013-08-29 11:00:58.794 14371 WARNING savanna.service.networks [-] This is the management IP :None
2013-08-29 11:00:58.794 14371 WARNING savanna.service.networks [-] This is the IP :10.10.10.95
2013-08-29 11:00:59.877 14371 WARNING savanna.service.networks [-] This is the intance : <savanna.db.models.Instance[object at 383a4
d0] {created=datetime.datetime(2013, 8, 29, 17, 38, 11, 76763), updated=datetime.datetime(2013, 8, 29, 17, 38, 11, 76771), extra=Non
e, node_group_id=u'8841ab56-23a7-46d6-a65c-95222cb9102c', instance_id=u'c29b8ced-6382-4f89-8bf9-96a662275a37', instance_name=u'TestCluster-NameNode_JobTacker_Medium-001', internal_ip=u'10.10.10.98', management_ip=None, volumes=[]}>
2013-08-29 11:00:59.877 14371 WARNING savanna.service.networks [-] This is the server : <Server: TestCluster-NameNode_JobTack
er_Medium-001>

Revision history for this message
Sergey Lukjanov (slukjanov) said :
#13

Work on basic support of neutron has been started:

https://review.openstack.org/#/c/44001/
https://review.openstack.org/#/c/44054/

Revision history for this message
thej ranjan (thejranjan) said :
#14

Dear Bill,

The changes will work only with some conditions.

1. Each VM in cluster should have only 1 Network Interface attached and a floating IP.
2. There should be exactly 1 floating IP for all the instances spun up in the cluster.

Based on your description the management IP is null, which means you didnt apply floating IP to instances. Try to add floating IP for each node, and monitor the logs. You can see the floating IP coming up as the management IP and after that the cluster configuration will start and succeed.

Revision history for this message
Bill Stokes (stokesb1) said :
#15

I was able to edit the network.py file to allow the internal IPs to be used. This corrected my issue. Change was to:

...
  cluster_node_opts = [
      cfg.BoolOpt('use_floating_ips',
+ default=False, # True - default setting; uses floating IP. False allows for external/internal IPs to be used instead
...

Revision history for this message
Bill Stokes (stokesb1) said :
#16

Thx Thej, our current infrastructure won't allow for floating IPs. The change above will get us working until the Neutron bp is completed.

Can you help with this problem?

Provide an answer of your own, or ask thej ranjan for more information if necessary.

To post a message you must log in.