[openstack-dev] instance_type_extra_specs with nova 2012.2-dev

michel.gauthier at bull.net michel.gauthier at bull.net
Wed Aug 22 15:00:35 UTC 2012


Hi all,
I have installed devstack (nova 2012.2-dev ) on a single host (virtual 
host) to test instance_type_extra_specs.

The capabilities and cpu_info of my host are the following :

cpu_info of compute_nodes table of nova db :
------------------------------------------------------------------
cpu_info : {
        "vendor": "Intel", 
        "features": ["lahf_lm", "lm", "syscall", "hypervisor", "cx16", 
"ssse3", "pni", "ss", "sse2", "acpi", "ds", "clflush", "apic"], 
        "permitted_instance_types": ["i686", "x86_64"], 
        "model": "pentium3", 
        "arch": "x86_64", 
        "topology": {"cores": 1, "threads": 1, "sockets": 2}
}


capabilities published by nova-compute service and used in 
compute_capabilities_filter.py file :
---------------------------------------------------------------------------------------------------------------------------------------------
Capabilities : {
        u'disk_available': 5, 
        u'vcpus_used': 1, 
        u'supported_instances': [[u'i686', u'qemu', u'hvm'], [u'x86_64', 
u'qemu', u'hvm']], 
        u'hypervisor_type': u'QEMU', 
        u'host_ip': u'172.31.70.169', 
        u'hypervisor_hostname': u'folsom-mg', 
        u'host_memory_free': 455, 
        u'disk_total': 15, 
        u'cpu_info': {
                u'vendor': u'Intel', 
                u'features': [u'lahf_lm', u'lm', u'syscall', 
u'hypervisor', u'cx16', u'ssse3', u'pni', u'ss', u'sse2', u'acpi', u'ds', 
u'clflush', u'apic'], 
                u'permitted_instance_types': [u'i686', u'x86_64'], 
                u'model': u'pentium3', 
                u'arch': u'x86_64', 
                u'topology': {u'cores': 1, u'threads': 1, u'sockets': 2}
        }, 
        u'host_memory_total': 2003, 
        'timestamp': datetime.datetime(2012, 8, 22, 12, 42, 56, 948437), 
        u'hypervisor_version': 1000000, 
        u'disk_used': 10, 
        u'vcpus': 2
}

For my tests, I create an instance_type named michel with differents 
instance_type_extra_specs using nova-manage instance_type 
set_key/unset_key command.
The results are listed below (nova-manage instance_type list) :
1- michel: Memory: 1024MB, VCPUS: 2, Root: 40GB, Ephemeral: 0Gb, FlavorID: 
15, Swap: 0MB, RXTX Factor: 1.0, ExtraSpecs {u'titi': u'bonjour'}
2- michel: Memory: 1024MB, VCPUS: 2, Root: 40GB, Ephemeral: 0Gb, FlavorID: 
15, Swap: 0MB, RXTX Factor: 1.0, ExtraSpecs {u'vcpus': u'== 2'}
3- michel: Memory: 1024MB, VCPUS: 2, Root: 40GB, Ephemeral: 0Gb, FlavorID: 
15, Swap: 0MB, RXTX Factor: 1.0, ExtraSpecs {u'vcpus': u'>= 1'}
4- michel: Memory: 1024MB, VCPUS: 2, Root: 40GB, Ephemeral: 0Gb, FlavorID: 
15, Swap: 0MB, RXTX Factor: 1.0, ExtraSpecs {u'vcpus': u'>= 3'}
5- michel: Memory: 1024MB, VCPUS: 2, Root: 40GB, Ephemeral: 0Gb, FlavorID: 
15, Swap: 0MB, RXTX Factor: 1.0, ExtraSpecs {u'hypervisor_type': u'QEMU'}
6- michel: Memory: 1024MB, VCPUS: 2, Root: 40GB, Ephemeral: 0Gb, FlavorID: 
15, Swap: 0MB, RXTX Factor: 1.0, ExtraSpecs {u'hypervisor_type': u's== 
QEMU'}
7- michel: Memory: 1024MB, VCPUS: 2, Root: 40GB, Ephemeral: 0Gb, FlavorID: 
15, Swap: 0MB, RXTX Factor: 1.0, ExtraSpecs {u'hypervisor_type': u'<in> 
QEMU'}
8- michel: Memory: 1024MB, VCPUS: 2, Root: 40GB, Ephemeral: 0Gb, FlavorID: 
15, Swap: 0MB, RXTX Factor: 1.0, ExtraSpecs {u'hypervisor_type': u'<in> 
QE'}
9- michel: Memory: 1024MB, VCPUS: 2, Root: 40GB, Ephemeral: 0Gb, FlavorID: 
15, Swap: 0MB, RXTX Factor: 1.0, ExtraSpecs {u'hypervisor_type': u'<in> 
EU'}

10- michel: Memory: 1024MB, VCPUS: 2, Root: 40GB, Ephemeral: 0Gb, 
FlavorID: 15, Swap: 0MB, RXTX Factor: 1.0, ExtraSpecs {u'cpu_info': u"<in> 
'model': 'pentium3'"}
11- michel: Memory: 1024MB, VCPUS: 2, Root: 40GB, Ephemeral: 0Gb, 
FlavorID: 15, Swap: 0MB, RXTX Factor: 1.0, ExtraSpecs {u'cpu_info': u'<in> 
model: pentium3'}
12- michel: Memory: 1024MB, VCPUS: 2, Root: 40GB, Ephemeral: 0Gb, 
FlavorID: 15, Swap: 0MB, RXTX Factor: 1.0, ExtraSpecs {u'cpu_info': u"<in> 
'pentium3'"}
13- michel: Memory: 1024MB, VCPUS: 2, Root: 40GB, Ephemeral: 0Gb, 
FlavorID: 15, Swap: 0MB, RXTX Factor: 1.0, ExtraSpecs {u'cpu_info': u'<in> 
pentium3'}
14- michel: Memory: 1024MB, VCPUS: 2, Root: 40GB, Ephemeral: 0Gb, 
FlavorID: 15, Swap: 0MB, RXTX Factor: 1.0, ExtraSpecs {u'cpu_info': u"<in> 
u'pentium3'"}

On nova boot command, the filter scheduler is used with 
ComputeCapabilitiesFilter class.
No problem in my tests with extra_specs values titi (not existing in 
capabilities), vcpus and hypervisor_type.
Cases 1, 4, 9 fail instance_type extra_specs requirements in 
ComputeCapabilitiesFilter :: host_passes procedure (OK)
Cases 2, 3, 5, 6, 7, 8 pass instance_type extra_specs requirements in 
ComputeCapabilitiesFilter :: host_passes procedure (OK)

But when I want to specify a key/value pair in instance_type_extra_specs 
concerning cpu_info capabilities, the test is always failed.
Is it a syntax problem nova-manage instance_type set_key command?
Or is it due to the fact that cpu_info is a sub-dict of capabilities dict?

Thank you in advance for your help.

Michel





-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20120822/65207800/attachment.html>


More information about the OpenStack-dev mailing list