[openstack-dev] question about the scheduler filters
Mark McLoughlin
markmc at redhat.com
Fri Aug 17 11:42:17 UTC 2012
On Thu, 2012-08-16 at 20:22 -0600, Jim Fehlig wrote:
> While merging the recent ComputeFilter additions with the ArchFilter, I
> spent too much time agonizing over the name ArchFilter, which I was now
> making filter on more than just architecture. ComputeCapabilitiesFilter
> seems like better name, but this is already taken.
>
> Looking at ComputeCapabilitiesFilter again, I realize it is filtering on
> some of the same properties as the combined ArchFilter [1], but from a
> different source. IIUC, ComputeCapabilitiesFilter filters on properties
> that originate from the instance type/flavor. The combined ArchFilter
> filters on properties that originate from the image. It seems this
> could be a source of confusion for users, but at the same time seems
> necessary, particularly for properties such as architecture, preferred
> hypervisor and virtual machine mode, which I tend to think are
> properties of an image more so than a flavor. E.g. I could select my
> "Xen arm" flavor, but unless I also selected a "Xen arm" image, I could
> have an instance that doesn't boot.
>
> Do folks have any issues with filters using both image and flavor
> properties? Being relatively new here, this may very well be intended
> :). If so, I'd like to change the name of ArchFilter to better reflect
> its new additions. What do you think of ImagePropertiesFilter? It
> filters hosts based on compute properties defined on the image. Or
> ImageComputePropertiesFilter, to accommodate a future class of
> filterable image properties?
Ok, stepping back for a minute. Before your patch, we had:
ComputeFilter
simply matches enabled compute hosts
ArchFilter
match the architecture from the image properties against the compute
node's permitted_instance_types
it's using instance_properties['architecture'] which is taken from the
image's architecture property in _create_instance() - see how
base_options is populated
permitted_instance_types is just the list of guest archs
ComputeCapabilitiesFilter
matches properties defined in an instance type's extra specs against
compute capabilities
AggregateInstanceExtraSpecsFilter
matches properties defined in an instance type's extra specs against
admin-defined properties on a host aggregate
And then you added:
match the arch, hypervisor type and vm type from the image properties
against those supported by the compute node
It looks to me like what you've added is a complete superset of
ArchFilter - i.e. if you just specify the architecture property on the
image, the behaviour should be identical.
So, IMHO, it should be fine to move your new matching into
ImagePropertiesFilter and just delete ArchFilter.
Cheers,
Mark.
More information about the OpenStack-dev
mailing list