Live Notes may be taken for this topic at: http://etherpad.openstack.org/Scheduler
A request comes in from a user to build a new slice/instance/vm.
Given many thousands potential nodes, how do we decide where to put it?
Identify the things that factor into the decision, such as:
- Qualitative suitability measures (hard rules)
- Is it "active" (nodes will likely have some sort of state ("active", "maintenance", etc.)?
- is the hardware current or being phased out?
- Will it fit? (a 16 GB slice won't fit on a node with only 256 MB free)
- Quantitative suitability (weighting)
- State (more states may be eligible for new VMs, but some might be preferred over others (e.g. "active" servers should be preferred over "spare" servers, but if need be, a "spare" server is eligible)
- How busy is the server doing other things (like building VM's or cleaning up after old ones)?
- Does the user have other VM's in the same cluster (not a hard rule, because we only have that many clusters)
- Does the user have other VM's on the same node (not a hard rule, because we only have that many nodes)
- Does the node have a cached copy of the disk image already?
Do we need "best match", "good enough", or "not too shabby"?
Discussion to include Auctioning and "go get it" as well. ideas:
- host responds only if valid candidate
- then least busy wins
- at launch queue, like coin sorter (more complex)
- first to answer wins unless large, then least busy
- host intelligent better because it scales, higher level intelligence does not
Current Ozone implementation of Server Best Match (SBM):
- Hard rules
- Soft rules
- best weighted winds