0

I've created a small OpenStack cloud consisting of 3 nodes that all contain the same services, using kolla ansible. I can start instances using the Cirros toy image no problem, and also an offical debian cloud image, however starting a Windows 10 image I created myself does not work.

First a couple of details on the images I have tried:

$ openstack image list --long
+-----------+-------------+------------------+-------------+--------+------------+-----------+
| Name      | Disk Format | Container Format |        Size | Status | Visibility | Protected |
+-----------+-------------+------------------+-------------+--------+------------+-----------+
| Win10Pro  | qcow2       | bare             | 12238913536 | active | shared     | False     |
| cirros    | qcow2       | bare             |    16338944 | active | public     | False     |
| debian-11 | qcow2       | bare             |   253231104 | active | public     | False     |
+-----------+-------------+------------------+-------------+--------+------------+-----------+

My hunch is that it has something to do with the size (Windows is huuuge at more than 10GB), as API calls are slow. Most calls take more than 1 second, like e.g. openstack server list, which takes between 1.5 and 2 seconds. Ping times between the machines seem fine to me, around 0.4 ms.

So how can I best debug this?

This is the error when launching a Windows instance:

'code': 500, 'created': '2022-06-25T06:21:06Z', 'message': 'Build of instance 3d0498e2-ddde-4bcf-ab54-7881360fe9f7 aborted:                                                                                                                                                              
 ("Connection broken: TimeoutError(110, \'Connection timed out\')", TimeoutError(110, \'Connection timed out\'))', 'details': 'Traceback (most recent call last):                                                                                                                         
  File "/var/lib/kolla/venv/lib/python3.9/site-packages/nova/compute/manager.py", line 2746, in _build_resources                                                                                                                                                                          
    self._shutdown_instance(context, instance,                                                                                                                                                                                                                                            
  File "/var/lib/kolla/venv/lib/python3.9/site-packages/nova/compute/manager.py", line 3005, in _shutdown_instance                                                                                                                                                                        
    self._try_deallocate_network(context, instance, requested_networks)                                                                                                                                                                                                                   
  File "/var/lib/kolla/venv/lib/python3.9/site-packages/nova/compute/manager.py", line 2922, in _try_deallocate_network                                                                                                                                                                   
    self._set_instance_obj_error_state(instance)                                                                                                                                                                                                                                          
  File "/var/lib/kolla/venv/lib/python3.9/site-packages/oslo_utils/excutils.py", line 227, in __exit__                                                                                                                                                                                    
    self.force_reraise()                                                                                                                                                                                                                                                                  
  File "/var/lib/kolla/venv/lib/python3.9/site-packages/oslo_utils/excutils.py", line 200, in force_reraise                                                                                                                                                                               
    raise self.value                                                                                                                                                                                                                                                                      
  File "/var/lib/kolla/venv/lib/python3.9/site-packages/nova/compute/manager.py", line 2917, in _try_deallocate_network                                                                                                                                                                   
    _deallocate_network_with_retries()                                                                                                                                                                                                                                                    
  File "/var/lib/kolla/venv/lib/python3.9/site-packages/oslo_service/loopingcall.py", line 436, in func                                                                                                                                                                                   
    return evt.wait()                                                                                                                                                                                                                                                                     
  File "/var/lib/kolla/venv/lib/python3.9/site-packages/eventlet/event.py", line 125, in wait                                                                                                                                                                                             
    result = hub.switch()                                                                                                                                                                                                                                                                 
  File "/var/lib/kolla/venv/lib/python3.9/site-packages/eventlet/hubs/hub.py", line 313, in switch                                                                                                                                                                                        
    return self.greenlet.switch()                                                                                                                                                                                                                                                         
  File "/var/lib/kolla/venv/lib/python3.9/site-packages/oslo_service/loopingcall.py", line 150, in _run_loop                                                                                                                                                                              
    result = func(*self.args, **self.kw)                                                                                                                                                                                                                                                  
  File "/var/lib/kolla/venv/lib/python3.9/site-packages/oslo_service/loopingcall.py", line 407, in _func                                                                                                                                                                                  
    result = f(*args, **kwargs)                                                                                                                                                                                                                                                           
  File "/var/lib/kolla/venv/lib/python3.9/site-packages/nova/compute/manager.py", line 2906, in _deallocate_network_with_retries                                                                                                                                                          
    self._deallocate_network(                                                                                                                                                                                                                                                             
  File "/var/lib/kolla/venv/lib/python3.9/site-packages/nova/compute/manager.py", line 2150, in _deallocate_network                                                                                                                                                                       
    self.network_api.deallocate_for_instance(                                                                                                                                                                                                                                             
  File "/var/lib/kolla/venv/lib/python3.9/site-packages/nova/network/neutron.py", line 1811, in deallocate_for_instance                                                                                                                                                                   
    self._delete_ports(neutron, instance, ports, raise_if_fail=True)                                                                                                                                                                                                                      
  File "/var/lib/kolla/venv/lib/python3.9/site-packages/nova/network/neutron.py", line 1785, in _delete_ports                                                                                                                                                                             
    raise exceptions[0]                                                                                                                                                                                                                                                                   
  File "/var/lib/kolla/venv/lib/python3.9/site-packages/nova/network/neutron.py", line 1775, in _delete_ports                                                                                                                                                                             
    neutron.delete_port(port)                                                                                                                                                                                                                                                             
  File "/var/lib/kolla/venv/lib/python3.9/site-packages/nova/network/neutron.py", line 197, in wrapper                                                                                                                                                                                    
    ret = obj(*args, **kwargs)                                                                                                                                                                                                                                                            
  File "/var/lib/kolla/venv/lib/python3.9/site-packages/neutronclient/v2_0/client.py", line 831, in delete_port                                                                                                                                                                           
    return self.delete(self.port_path % (port))                                                                                                                                                                                                                                           
  File "/var/lib/kolla/venv/lib/python3.9/site-packages/nova/network/neutron.py", line 197, in wrapper                                                                                                                                                                                    
    ret = obj(*args, **kwargs)                                                                                                                                                                                                                                                            
  File "/var/lib/kolla/venv/lib/python3.9/site-packages/neutronclient/v2_0/client.py", line 352, in delete                                                                                                                                                                                
    return self.retry_request("DELETE", action, body=body,                                                                                                                                                                                                                                
  File "/var/lib/kolla/venv/lib/python3.9/site-packages/nova/network/neutron.py", line 197, in wrapper                                                                                                                                                                                    
    ret = obj(*args, **kwargs)                                                                                                                                                                                                                                                            
  File "/var/lib/kolla/venv/lib/python3.9/site-packages/neutronclient/v2_0/client.py", line 333, in retry_request                                                                                                                                                                         
    return self.do_request(method, action, body=body,                                                                                                                                                                                                                                     
  File "/var/lib/kolla/venv/lib/python3.9/site-packages/nova/network/neutron.py", line 197, in wrapper                                                                                                                                                                                    
    ret = obj(*args, **kwargs)                                                                                                                                                                                                                                                            
  File "/var/lib/kolla/venv/lib/python3.9/site-packages/neutronclient/v2_0/client.py", line 297, in do_request                                                                                                                                                                            
    self._handle_fault_response(status_code, replybody, resp)                                                                                                                                                                                                                             
  File "/var/lib/kolla/venv/lib/python3.9/site-packages/nova/network/neutron.py", line 197, in wrapper                                                                                                                                                                                    
    ret = obj(*args, **kwargs)                                                                                                                                                                                                                                                            
  File "/var/lib/kolla/venv/lib/python3.9/site-packages/neutronclient/v2_0/client.py", line 272, in _handle_fault_response                                                                                                                                                                
    exception_handler_v20(status_code, error_body)                                                                                                                                                                                                                                        
  File "/var/lib/kolla/venv/lib/python3.9/site-packages/neutronclient/v2_0/client.py", line 90, in exception_handler_v20                                                                                                                                                                  
    raise client_exc(message=error_message,                                                                                                                                                                                                                                               
neutronclient.common.exceptions.NeutronClientException: <html><body><h1>504 Gateway Time-out</h1>                                                                                                                                                                                         
The server didn\'t respond in time.                                                                                                                                                                                                                                                       
</body></html>                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                                                          
During handling of the above exception, another exception occurred:                                                                                                                                                                                                                       
                                                                                                                                                                                                                                                                                          
Traceback (most recent call last):                                                                                                                                                                                                                                                        
  File "/var/lib/kolla/venv/lib/python3.9/site-packages/nova/compute/manager.py", line 2312, in _do_build_and_run_instance                                                                                                                                                                
    self._build_and_run_instance(context, instance, image,                                                                                                                                                                                                                                
  File "/var/lib/kolla/venv/lib/python3.9/site-packages/nova/compute/manager.py", line 2521, in _build_and_run_instance                                                                                                                                                                   
    compute_utils.notify_about_instance_create(                                                                                                                                                                                                                                           
  File "/var/lib/kolla/venv/lib/python3.9/site-packages/oslo_utils/excutils.py", line 227, in __exit__                                                                                                                                                                                    
    self.force_reraise()                                                                                                                                                                                                                                                                  
  File "/var/lib/kolla/venv/lib/python3.9/site-packages/oslo_utils/excutils.py", line 200, in force_reraise                                                                                                                                                                               
    raise self.value                                                                                                                                                                                                                                                                      
  File "/var/lib/kolla/venv/lib/python3.9/site-packages/nova/compute/manager.py", line 2494, in _build_and_run_instance                                                                                                                                                                   
    LOG.info(\'Took %0.2f seconds to spawn the instance on \'                                                                                                                                                                                                                             
  File "/usr/lib/python3.9/contextlib.py", line 135, in __exit__                                                                                                                                                                                                                          
    self.gen.throw(type, value, traceback)                                                                                                                                                                                                                                                
  File "/var/lib/kolla/venv/lib/python3.9/site-packages/nova/compute/manager.py", line 2754, in _build_resources                                                                                                                                                                          
    raise exception.BuildAbortException(                                                                                                                                                                                                                                                  
nova.exception.BuildAbortException: Build of instance 3d0498e2-ddde-4bcf-ab54-7881360fe9f7 aborted: ("Connection broken: TimeoutError(110, \'Connection timed out\')", TimeoutError(110, \'Connection timed out\'))                                                                       
'}
Evgeniy Berezovsky
  • 851
  • 1
  • 8
  • 26
  • The neutron service is responsible for the network, so I don't think it's your image size. Is the control node under heavy load so neutron wouldn't return in time? Enable debug logs for neutron (and probably nova) to see what else happens during that time. Are the other network agents alive? Check all neutron logs. If you create a port first and create the windows instance with that port, does that work? – eblock Jun 30 '22 at 11:10
  • Thanks @eblock In the meantime, I have gotten rid of the whole deployment. Will return to this if and when I try (and fail) again. – Evgeniy Berezovsky Jul 21 '22 at 01:53

0 Answers0