HugePage flavor fails openstack-nova-scheduler placement even though Compute supports HugePages

Solution In Progress - Updated -

Issue

When we try to create an instance that requires HugePages, our flavor matches the HugePages configuration of the designated compute, but nova-scheduler refuses, resulting in an instance in NOSTATE:

+--------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field                                | Value                                                                                                                                                                    |
+--------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| OS-DCF:diskConfig                    | MANUAL                                                                                                                                                      
| OS-EXT-AZ:availability_zone          |                                                                                                                                                                   
| OS-EXT-SRV-ATTR:host                 | None                                                                                                                                                         
| OS-EXT-SRV-ATTR:hypervisor_hostname  | None                                                                                                                                                       
| OS-EXT-SRV-ATTR:instance_name        | instance-0000000f                                                                                                                             
| OS-EXT-STS:power_state               | NOSTATE                                                                                                                                                        
| OS-EXT-STS:task_state                | None                                                                                                                                                              
| OS-EXT-STS:vm_state                  | error                                                                                                                                            
| OS-SRV-USG:launched_at               | None                                                                                                                                             
| OS-SRV-USG:terminated_at             | None                                                                                                                                     
| accessIPv4                           |                                                                                                                                                        
| accessIPv6                           |                                                                                                                                               
| addresses                            |                                                                                                                                         
| config_drive                         |                                                                                                                                                         
| created                              | 2019-08-03T00:14:08Z                                                                                                                                 
| fault                                | {u'message': u'No valid host was found. There are not enough hosts available.',
|                                      | u'code': 500, u'details': u'  File "/usr/lib/python2.7/site-  
|                                      | packages/nova/conductor/manager.py", line 497, in build_instances\n    context,
|                                      | request_spec, filter_properties)\n  File "/usr/lib/python2.7/site- 
|                                      | packages/nova/conductor/manager.py", line 568, in _schedule_instances\n
|                                      | hosts = self.scheduler_client.select_destinations(context, spec_obj)\n  File
|                                      | "/usr/lib/python2.7/site-packages/nova/scheduler/utils.py", line 370, in wrapped\n
|                                      | return func(*args, **kwargs)\n  File "/usr/lib/python2.7/site-  
|                                      | packages/nova/scheduler/client/__init__.py", line 51, in select_destinations\n
|                                      | return self.queryclient.select_destinations(context, spec_obj)\n  File 
|                                      | "/usr/lib/python2.7/site-packages/nova/scheduler/client/__init__.py", line 37,
|                                      | in __run_method\n return getattr(self.instance, __name)(*args, **kwargs)\n  File
|                                      | "/usr/lib/python2.7/site-packages/nova/scheduler/client/query.py", line 32, in
|                                      | select_destinations\n    return self.scheduler_rpcapi.select_destinations(context,
|                                      | spec_obj)\n  File "/usr/lib/python2.7/site-packages/nova/scheduler/rpcapi.py",
|                                      | line 126, in select_destinations\n return cctxt.call(ctxt,\'select_destinations\', 
|                                      | **msg_args)\n  File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/client.py",
|                                      | line 169, in call\n    retry=self.retry)\n  File "/usr/lib/python2.7/site-
|                                      | packages/oslo_messaging/transport.py", line 97, in _send\n    timeout=timeout,
|                                      | retry=retry)\n  File "/usr/lib/python2.7/site-packages/oslo_messaging/_drivers
|                                      | /amqpdriver.py", line 584, in send\n    retry=retry)\n
|                                      | File "/usr/lib/python2.7/site-packages/oslo_messaging/_drivers/amqpdriver.py",
|                                      | line 575, in _send\n    raise result\n', u'created': u'2019-08-03T00:14:09Z'}         
| flavor                               | test-flavor4 (9273b869-8e92-4b4e-ab7a-22ba17595b00)            
| hostId                               |                                                                                                                          
| id                                   | 09c01855-8138-4435-8777-db4ad0269f5a                                                                                       
| image                                | test-image (f83c5835-4e20-4b82-b624-39e68da7aae6)                                                             
| key_name                             | test-keypair                                                                                                                  
| name                                 | test-instance4                                                                                                       
| os-extended-volumes:volumes_attached | []                                                                                                            
| project_id                           | f1cf591eb1c24d4d9d5890acc809f5b2                                                                            
| properties                           |                                                                                                                              
| status                               | ERROR                                                                                                                         
| updated                              | 2019-08-03T00:14:09Z                                                                                                               
| user_id                              | 632c3b2d23a94b0e8f9430929ac4534c                                                                                     
+--------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

In nova-scheduler logs, you see errors:
- Host does not support requested memory pagesize. Requested: 1048576 kB
- Filtering removed all hosts for the request with instance ID 'f1ab3263-0c76-45e1-a89f-6b40a9a65d60'. Filter results: ['RetryFilter: (start: 88, end: 88)', 'AvailabilityZoneFilter: (start: 88, end: 88)', 'NUMATopologyFilter: (start: 88, end: 0)'

Environment

  • Red Hat OpenStack Platform 13
  • Red Hat OpenStack Platform 10

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In