Jump to: navigation, search

VolumeTypeScheduler

Revision as of 01:21, 18 October 2011 by VladimirPopovski (talk)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Volume Type aware Scheduler

At the Essex Design Summit it was agreed that a working group would be established to improve nova-volume and volume-related scheduler code.

This page tries to cover the first effort of this group to create a basic Volume-type aware scheduler. More advanced volume scheduler to follow as well as integration with Distributed Scheduler.

Overview

Similarly to instance-type aware schedulers there is a need to create volumes on nodes with particular properties. In the simplest case, nodes may report availability of different types of storage (SATA/SAS/SSD).

The idea is to collect information about available volume types from volume drivers and report to schedulers. The scheduler will pick the most appropriate node based on data reported by volume nodes. At the beginning the scheduler could perform only basic matching of reported volume types. The more advanced version of Scheduler could perform distribution of volumes based on load, translation and matching of volume type's extra-specs with parameters reported by volume driver.

It will be also possible to create schedulers responsible for particular volume types.

Design

Volume drivers willing to participate in the new reporting scheme will need to reply with the list containing:

  • Volume type id
  • Total number of elements (in some abstract units)
  • Number of free/available elements
  • Additional characteristics for volume type

These capabilities will be reported to schedulers using update_service_capabilities()

On Scheduler level, capabilities from all nova-volume nodes are automatically stored in in-memory repository similarly to capabilities from "compute" and other nodes (in zone_manager.service_states)

  • Retrieve volume type for requested volume allocation
  • Filter nodes reporting availability of requested volume types
  • Select the most appropriate node based on