openstack team mailing list archive
-
openstack team
-
Mailing list archive
-
Message #18635
nova.virt.xenapi.driver [-] Got exception: ['XENAPI_MISSING_PLUGIN', 'xenhost']
Hi all,
I tried to add a third compute node to a running openstack platform
(composed of a head node and a compute node).
I use Ubuntu 12.04 + XCP + folsom (stable release). And, I use devstack to
install the compute node.
The first problem is that the 2nd (new) compute node is not able to see
that the head node nova services are enabled, however it is still able to
detect that nova services of the first compute node are running and
available.
nova-manage service list
2012-11-15 20:02:46 DEBUG nova.utils
[req-44c68f9f-b9f4-498b-a081-c0273e23e05f None None] backend <module
'nova.db.sqlalchemy.api' from '/opt/stack/nova/nova/db/sqlalchemy/api.pyc'>
from (pid=25406) __get_backend /opt/stack/nova/nova/utils.py:502
Binary Host Zone
Status State Updated_At
nova-consoleauth DevStackOSDomU nova
enabled XXX 2012-11-15 20:01:37
nova-cert computeDomU01 nova
enabled :-) 2012-11-15 20:02:30
nova-network computeDomU01 nova
enabled :-) 2012-11-15 20:02:33
nova-scheduler computeDomU01 nova
enabled :-) 2012-11-15 20:02:33
nova-compute computeDomU01 nova
enabled :-) 2012-11-15 20:02:30
nova-network DevStackOSDomU nova
enabled XXX 2012-11-15 20:01:40
nova-scheduler DevStackOSDomU nova
enabled XXX 2012-11-15 20:01:40
nova-cert DevStackOSDomU nova
enabled XXX 2012-11-15 20:01:35
nova-compute DevStackOSDomU nova
enabled XXX 2012-11-15 20:01:40
nova-network computeDomU02 nova
enabled :-) 2012-11-15 20:02:43
nova-compute computeDomU02 nova
enabled XXX None
nova-scheduler computeDomU02 nova
enabled :-) 2012-11-15 20:02:43
nova-cert computeDomU02 nova
enabled :-) 2012-11-15 20:02:43
The nova-services are of course running on the head node. Actually,
launching "nova-manage service list" on the head node or the first compute
node returns the following output:
nova-manage service list
2012-11-15 20:05:08 DEBUG nova.utils
[req-47839159-dc05-4947-a070-66b9f0db36e7 None None] backend <module
'nova.db.sqlalchemy.api' from '/opt/stack/nova/nova/db/sqlalchemy/api.pyc'>
from (pid=6912) __get_backend /opt/stack/nova/nova/utils.py:502
Binary Host Zone
Status State Updated_At
nova-consoleauth DevStackOSDomU nova
enabled :-) 2012-11-15 20:04:10
nova-cert computeDomU01 nova
enabled :-) 2012-11-15 20:05:03
nova-network computeDomU01 nova
enabled :-) 2012-11-15 20:05:07
nova-scheduler computeDomU01 nova
enabled :-) 2012-11-15 20:05:07
nova-compute computeDomU01 nova
enabled :-) 2012-11-15 20:05:03
nova-network DevStackOSDomU nova
enabled :-) 2012-11-15 20:04:15
nova-scheduler DevStackOSDomU nova
enabled :-) 2012-11-15 20:04:15
nova-cert DevStackOSDomU nova
enabled :-) 2012-11-15 20:04:09
nova-compute DevStackOSDomU nova
enabled :-) 2012-11-15 20:04:15
nova-network computeDomU02 nova
enabled :-) 2012-11-15 20:05:16
nova-compute computeDomU02 nova
enabled XXX None
nova-scheduler computeDomU02 nova
enabled :-) 2012-11-15 20:05:16
nova-cert computeDomU02 nova
enabled :-) 2012-11-15 20:05:16
And the 2nd problem is the fact that nova-compute does not start on the new
compute node, and returns this error:
2012-11-15 19:57:05 DEBUG nova.virt.xenapi.driver [-] Got exception:
['XENAPI_MISSING_PLUGIN', 'xenhost'] from (pid=25140)
_unwrap_plugin_exceptions /opt/stack/nova/nova/virt/xenapi/driver.py:754
2012-11-15 19:57:05 ERROR nova.virt.xenapi.host [-] The call to host_data
returned an error: ['XENAPI_MISSING_PLUGIN', 'xenhost'].
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/eventlet/hubs/poll.py", line
97, in wait
readers.get(fileno, noop).cb(fileno)
File "/usr/local/lib/python2.7/dist-packages/eventlet/greenthread.py",
line 192, in main
result = function(*args, **kwargs)
File "/opt/stack/nova/nova/service.py", line 132, in run_server
server.start()
File "/opt/stack/nova/nova/service.py", line 410, in start
self.manager.update_available_resource(ctxt)
File "/opt/stack/nova/nova/compute/manager.py", line 2785, in
update_available_resource
self.resource_tracker.update_available_resource(context)
File "/opt/stack/nova/nova/utils.py", line 760, in inner
retval = f(*args, **kwargs)
File "/opt/stack/nova/nova/compute/resource_tracker.py", line 366, in
update_available_resource
resources = self.driver.get_available_resource()
File "/opt/stack/nova/nova/virt/xenapi/driver.py", line 411, in
get_available_resource
host_stats = self.get_host_stats(refresh=True)
File "/opt/stack/nova/nova/virt/xenapi/driver.py", line 573, in
get_host_stats
return self.host_state.get_host_stats(refresh=refresh)
File "/opt/stack/nova/nova/virt/xenapi/driver.py", line 159, in host_state
self._host_state = host.HostState(self._session)
File "/opt/stack/nova/nova/virt/xenapi/host.py", line 134, in __init__
self.update_status()
File "/opt/stack/nova/nova/virt/xenapi/host.py", line 162, in
update_status
data["disk_total"] = total
TypeError: 'str' object does not support item assignment
Removing descriptor: 5
2012-11-15 19:57:05 CRITICAL nova [-] 'str' object does not support item
assignment
2012-11-15 19:57:05 TRACE nova Traceback (most recent call last):
2012-11-15 19:57:05 TRACE nova File "/usr/local/bin/nova-compute", line
7, in <module>
2012-11-15 19:57:05 TRACE nova execfile(__file__)
2012-11-15 19:57:05 TRACE nova File "/opt/stack/nova/bin/nova-compute",
line 48, in <module>
2012-11-15 19:57:05 TRACE nova service.wait()
2012-11-15 19:57:05 TRACE nova File "/opt/stack/nova/nova/service.py",
line 659, in wait
2012-11-15 19:57:05 TRACE nova _launcher.wait()
2012-11-15 19:57:05 TRACE nova File "/opt/stack/nova/nova/service.py",
line 192, in wait
2012-11-15 19:57:05 TRACE nova super(ServiceLauncher, self).wait()
2012-11-15 19:57:05 TRACE nova File "/opt/stack/nova/nova/service.py",
line 162, in wait
2012-11-15 19:57:05 TRACE nova service.wait()
2012-11-15 19:57:05 TRACE nova File
"/usr/local/lib/python2.7/dist-packages/eventlet/greenthread.py", line 166,
in wait
2012-11-15 19:57:05 TRACE nova return self._exit_event.wait()
2012-11-15 19:57:05 TRACE nova File
"/usr/local/lib/python2.7/dist-packages/eventlet/event.py", line 116, in
wait
2012-11-15 19:57:05 TRACE nova return hubs.get_hub().switch()
2012-11-15 19:57:05 TRACE nova File
"/usr/local/lib/python2.7/dist-packages/eventlet/hubs/hub.py", line 177, in
switch
2012-11-15 19:57:05 TRACE nova return self.greenlet.switch()
2012-11-15 19:57:05 TRACE nova File
"/usr/local/lib/python2.7/dist-packages/eventlet/greenthread.py", line 192,
in main
2012-11-15 19:57:05 TRACE nova result = function(*args, **kwargs)
2012-11-15 19:57:05 TRACE nova File "/opt/stack/nova/nova/service.py",
line 132, in run_server
2012-11-15 19:57:05 TRACE nova server.start()
2012-11-15 19:57:05 TRACE nova File "/opt/stack/nova/nova/service.py",
line 410, in start
2012-11-15 19:57:05 TRACE nova
self.manager.update_available_resource(ctxt)
2012-11-15 19:57:05 TRACE nova File
"/opt/stack/nova/nova/compute/manager.py", line 2785, in
update_available_resource
2012-11-15 19:57:05 TRACE nova
self.resource_tracker.update_available_resource(context)
2012-11-15 19:57:05 TRACE nova File "/opt/stack/nova/nova/utils.py", line
760, in inner
2012-11-15 19:57:05 TRACE nova retval = f(*args, **kwargs)
2012-11-15 19:57:05 TRACE nova File
"/opt/stack/nova/nova/compute/resource_tracker.py", line 366, in
update_available_resource
2012-11-15 19:57:05 TRACE nova resources =
self.driver.get_available_resource()
2012-11-15 19:57:05 TRACE nova File
"/opt/stack/nova/nova/virt/xenapi/driver.py", line 411, in
get_available_resource
2012-11-15 19:57:05 TRACE nova host_stats =
self.get_host_stats(refresh=True)
2012-11-15 19:57:05 TRACE nova File
"/opt/stack/nova/nova/virt/xenapi/driver.py", line 573, in get_host_stats
2012-11-15 19:57:05 TRACE nova return
self.host_state.get_host_stats(refresh=refresh)
2012-11-15 19:57:05 TRACE nova File
"/opt/stack/nova/nova/virt/xenapi/driver.py", line 159, in host_state
2012-11-15 19:57:05 TRACE nova self._host_state =
host.HostState(self._session)
2012-11-15 19:57:05 TRACE nova File
"/opt/stack/nova/nova/virt/xenapi/host.py", line 134, in __init__
2012-11-15 19:57:05 TRACE nova self.update_status()
2012-11-15 19:57:05 TRACE nova File
"/opt/stack/nova/nova/virt/xenapi/host.py", line 162, in update_status
2012-11-15 19:57:05 TRACE nova data["disk_total"] = total
2012-11-15 19:57:05 TRACE nova TypeError: 'str' object does not support
item assignment
2012-11-15 19:57:05 TRACE nova
Any ideas how to solve this problem??
Thank you,
Afef
Follow ups