Hi all,
<div><br></div><div>I tried to add a third compute node to a running openstack platform (composed of a head node and a compute node).</div><div>I use Ubuntu 12.04 + XCP + folsom (stable release). And, I use devstack to install the compute node.</div>
<div>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.</div>
<div><div>nova-manage service list</div><div>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</div>
<div>Binary           Host                                 Zone             Status     State Updated_At</div><div>nova-consoleauth DevStackOSDomU                       nova             enabled    XXX   2012-11-15 20:01:37</div>
<div>nova-cert        computeDomU01                        nova             enabled    :-)   2012-11-15 20:02:30</div><div>nova-network     computeDomU01                        nova             enabled    :-)   2012-11-15 20:02:33</div>
<div>nova-scheduler   computeDomU01                        nova             enabled    :-)   2012-11-15 20:02:33</div><div>nova-compute     computeDomU01                        nova             enabled    :-)   2012-11-15 20:02:30</div>
<div>nova-network     DevStackOSDomU                       nova             enabled    XXX   2012-11-15 20:01:40</div><div>nova-scheduler   DevStackOSDomU                       nova             enabled    XXX   2012-11-15 20:01:40</div>
<div>nova-cert        DevStackOSDomU                       nova             enabled    XXX   2012-11-15 20:01:35</div><div>nova-compute     DevStackOSDomU                       nova             enabled    XXX   2012-11-15 20:01:40</div>
<div>nova-network     computeDomU02                        nova             enabled    :-)   2012-11-15 20:02:43</div><div>nova-compute     computeDomU02                        nova             enabled    XXX   None      </div>
<div>nova-scheduler   computeDomU02                        nova             enabled    :-)   2012-11-15 20:02:43</div><div>nova-cert        computeDomU02                        nova             enabled    :-)   2012-11-15 20:02:43</div>
</div><div><br></div><div>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:</div><div>
<div>nova-manage service list</div><div>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</div>
<div>Binary           Host                                 Zone             Status     State Updated_At</div><div>nova-consoleauth DevStackOSDomU                       nova             enabled    :-)   2012-11-15 20:04:10</div>
<div>nova-cert        computeDomU01                        nova             enabled    :-)   2012-11-15 20:05:03</div><div>nova-network     computeDomU01                        nova             enabled    :-)   2012-11-15 20:05:07</div>
<div>nova-scheduler   computeDomU01                        nova             enabled    :-)   2012-11-15 20:05:07</div><div>nova-compute     computeDomU01                        nova             enabled    :-)   2012-11-15 20:05:03</div>
<div>nova-network     DevStackOSDomU                       nova             enabled    :-)   2012-11-15 20:04:15</div><div>nova-scheduler   DevStackOSDomU                       nova             enabled    :-)   2012-11-15 20:04:15</div>
<div>nova-cert        DevStackOSDomU                       nova             enabled    :-)   2012-11-15 20:04:09</div><div>nova-compute     DevStackOSDomU                       nova             enabled    :-)   2012-11-15 20:04:15</div>
<div>nova-network     computeDomU02                        nova             enabled    :-)   2012-11-15 20:05:16</div><div>nova-compute     computeDomU02                        nova             enabled    XXX   None      </div>
<div>nova-scheduler   computeDomU02                        nova             enabled    :-)   2012-11-15 20:05:16</div><div>nova-cert        computeDomU02                        nova             enabled    :-)   2012-11-15 20:05:16</div>
</div><div><br></div><div>And the 2nd problem is the fact that nova-compute does not start on the new compute node, and returns this error:</div><div><div>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</div>
<div>2012-11-15 19:57:05 ERROR nova.virt.xenapi.host [-] The call to host_data returned an error: ['XENAPI_MISSING_PLUGIN', 'xenhost'].</div><div>Traceback (most recent call last):</div><div>  File "/usr/local/lib/python2.7/dist-packages/eventlet/hubs/poll.py", line 97, in wait</div>
<div>    readers.get(fileno, noop).cb(fileno)</div><div>  File "/usr/local/lib/python2.7/dist-packages/eventlet/greenthread.py", line 192, in main</div><div>    result = function(*args, **kwargs)</div><div>  File "/opt/stack/nova/nova/service.py", line 132, in run_server</div>
<div>    server.start()</div><div>  File "/opt/stack/nova/nova/service.py", line 410, in start</div><div>    self.manager.update_available_resource(ctxt)</div><div>  File "/opt/stack/nova/nova/compute/manager.py", line 2785, in update_available_resource</div>
<div>    self.resource_tracker.update_available_resource(context)</div><div>  File "/opt/stack/nova/nova/utils.py", line 760, in inner</div><div>    retval = f(*args, **kwargs)</div><div>  File "/opt/stack/nova/nova/compute/resource_tracker.py", line 366, in update_available_resource</div>
<div>    resources = self.driver.get_available_resource()</div><div>  File "/opt/stack/nova/nova/virt/xenapi/driver.py", line 411, in get_available_resource</div><div>    host_stats = self.get_host_stats(refresh=True)</div>
<div>  File "/opt/stack/nova/nova/virt/xenapi/driver.py", line 573, in get_host_stats</div><div>    return self.host_state.get_host_stats(refresh=refresh)</div><div>  File "/opt/stack/nova/nova/virt/xenapi/driver.py", line 159, in host_state</div>
<div>    self._host_state = host.HostState(self._session)</div><div>  File "/opt/stack/nova/nova/virt/xenapi/host.py", line 134, in __init__</div><div>    self.update_status()</div><div>  File "/opt/stack/nova/nova/virt/xenapi/host.py", line 162, in update_status</div>
<div>    data["disk_total"] = total</div><div>TypeError: 'str' object does not support item assignment</div><div>Removing descriptor: 5</div><div>2012-11-15 19:57:05 CRITICAL nova [-] 'str' object does not support item assignment</div>
<div>2012-11-15 19:57:05 TRACE nova Traceback (most recent call last):</div><div>2012-11-15 19:57:05 TRACE nova   File "/usr/local/bin/nova-compute", line 7, in <module></div><div>2012-11-15 19:57:05 TRACE nova     execfile(__file__)</div>
<div>2012-11-15 19:57:05 TRACE nova   File "/opt/stack/nova/bin/nova-compute", line 48, in <module></div><div>2012-11-15 19:57:05 TRACE nova     service.wait()</div><div>2012-11-15 19:57:05 TRACE nova   File "/opt/stack/nova/nova/service.py", line 659, in wait</div>
<div>2012-11-15 19:57:05 TRACE nova     _launcher.wait()</div><div>2012-11-15 19:57:05 TRACE nova   File "/opt/stack/nova/nova/service.py", line 192, in wait</div><div>2012-11-15 19:57:05 TRACE nova     super(ServiceLauncher, self).wait()</div>
<div>2012-11-15 19:57:05 TRACE nova   File "/opt/stack/nova/nova/service.py", line 162, in wait</div><div>2012-11-15 19:57:05 TRACE nova     service.wait()</div><div>2012-11-15 19:57:05 TRACE nova   File "/usr/local/lib/python2.7/dist-packages/eventlet/greenthread.py", line 166, in wait</div>
<div>2012-11-15 19:57:05 TRACE nova     return self._exit_event.wait()</div><div>2012-11-15 19:57:05 TRACE nova   File "/usr/local/lib/python2.7/dist-packages/eventlet/event.py", line 116, in wait</div><div>2012-11-15 19:57:05 TRACE nova     return hubs.get_hub().switch()</div>
<div>2012-11-15 19:57:05 TRACE nova   File "/usr/local/lib/python2.7/dist-packages/eventlet/hubs/hub.py", line 177, in switch</div><div>2012-11-15 19:57:05 TRACE nova     return self.greenlet.switch()</div><div>
2012-11-15 19:57:05 TRACE nova   File "/usr/local/lib/python2.7/dist-packages/eventlet/greenthread.py", line 192, in main</div><div>2012-11-15 19:57:05 TRACE nova     result = function(*args, **kwargs)</div><div>
2012-11-15 19:57:05 TRACE nova   File "/opt/stack/nova/nova/service.py", line 132, in run_server</div><div>2012-11-15 19:57:05 TRACE nova     server.start()</div><div>2012-11-15 19:57:05 TRACE nova   File "/opt/stack/nova/nova/service.py", line 410, in start</div>
<div>2012-11-15 19:57:05 TRACE nova     self.manager.update_available_resource(ctxt)</div><div>2012-11-15 19:57:05 TRACE nova   File "/opt/stack/nova/nova/compute/manager.py", line 2785, in update_available_resource</div>
<div>2012-11-15 19:57:05 TRACE nova     self.resource_tracker.update_available_resource(context)</div><div>2012-11-15 19:57:05 TRACE nova   File "/opt/stack/nova/nova/utils.py", line 760, in inner</div><div>2012-11-15 19:57:05 TRACE nova     retval = f(*args, **kwargs)</div>
<div>2012-11-15 19:57:05 TRACE nova   File "/opt/stack/nova/nova/compute/resource_tracker.py", line 366, in update_available_resource</div><div>2012-11-15 19:57:05 TRACE nova     resources = self.driver.get_available_resource()</div>
<div>2012-11-15 19:57:05 TRACE nova   File "/opt/stack/nova/nova/virt/xenapi/driver.py", line 411, in get_available_resource</div><div>2012-11-15 19:57:05 TRACE nova     host_stats = self.get_host_stats(refresh=True)</div>
<div>2012-11-15 19:57:05 TRACE nova   File "/opt/stack/nova/nova/virt/xenapi/driver.py", line 573, in get_host_stats</div><div>2012-11-15 19:57:05 TRACE nova     return self.host_state.get_host_stats(refresh=refresh)</div>
<div>2012-11-15 19:57:05 TRACE nova   File "/opt/stack/nova/nova/virt/xenapi/driver.py", line 159, in host_state</div><div>2012-11-15 19:57:05 TRACE nova     self._host_state = host.HostState(self._session)</div>
<div>2012-11-15 19:57:05 TRACE nova   File "/opt/stack/nova/nova/virt/xenapi/host.py", line 134, in __init__</div><div>2012-11-15 19:57:05 TRACE nova     self.update_status()</div><div>2012-11-15 19:57:05 TRACE nova   File "/opt/stack/nova/nova/virt/xenapi/host.py", line 162, in update_status</div>
<div>2012-11-15 19:57:05 TRACE nova     data["disk_total"] = total</div><div>2012-11-15 19:57:05 TRACE nova TypeError: 'str' object does not support item assignment</div><div>2012-11-15 19:57:05 TRACE nova </div>
</div><div><br></div><div><br></div><div>Any ideas how to solve this problem??</div><div><br></div><div>Thank you,</div><div>Afef</div><div><br></div><div><br></div>