The resources of a compute node (such as memory or disk space) representation capacity that is used up by allocation to instances. An instance has resource requirements, a specification of the quantity of each type of resource it needs, and this is used to match instances to compute nodes with sufficient available resources by the scheduler. The compute manager at a host is aware of the resources available at the compute node and is responsible for their allocation and management. Because it has definitive knowledge of what resources are actually available, the compute manager has the final say as to whether a compute node is able to host an instance.
There are a number of defined resources in Nova, including disk, memory and number of vCPU. The purpose of this specification is to support an extensible set of resources so that new resources can be defined for compute nodes and resource requirements for instances. These will be made available to the scheduler and allocated by the compute manager.
Note that although most resources, including disk memory and vCPU, would map to a physical counterpart, typically via a virtualisation technology, it is also possible to create entirely arbitrary quantities that do not. For example, a provider may chose that only one instances of a certain type should run on a compute node. This simple case can be supported by defining a new resource for compute nodes and associating a requirement for that resource with the instance type.