API / interface mapping ETSI NFV vs. OpenStack Blazar¶
Resource reservation mapping tables¶
The following tables are an attempt to map the resource reservation APIs / interfaces between ETSI NFV-IFA005 and Blazar for OpenStack.
I. Create Compute Resource Reservation¶
I.a) Create compute pool/resources reservation REQUEST¶
ETSI NFV IFA005 | Blazar | Description | Comment | ||
---|---|---|---|---|---|
- | name | Name of the lease/reservation. | |||
computePoolReservation [1]: ComputePoolReservation | reservations: resource_type = ‘virtual:instance’ | Instance reservation is only available from OpenStack Pike release. | |||
- | amount | Amount of virtual instances of a given flavour to be reserved. | |||
numCpuCores [1]: Integer | vcpus | Number of vCPU cores to be reserved. | |||
numVcInstances [1]: Integer | - | Number of virtualized container instances to be reserved (without explicitly reserved specific virtual containers). | |||
virtualMemSize [1]: Number | memory_mb | Size of virtual memory to be reserved. | |||
- | disk_gb | Size of (disk) storage to be reserved. | |||
computeAttributes [0..1]:
VirtualComputeAttributes
ReservationData
|
- | Information specifying additional attributes of the compute resource to be reserved. | Not yet available in Pike release. Blueprint available in [1] | ||
affinityConstraint [0..N]: AffinityOrAnti AffinityConstraint | affinity: Boolean | Element with (anti-)affinity information of the virtualised compute resources to reserve. For the resource reservation at resource pool granularity level, it defines the (anti-)affinity information of the virtual compute pool resources to reserve. For the resource reservation at virtual container granularity level, it defines the (anti-)affinity information of the virtualisation container(s) to reserve. | Only boolean (anti-)affinity rule in Pike release. Blueprint available in [2] | ||
antiAffinityConstraint [0..N]: AffinityOrAnti AffinityConstraint | |||||
startTime [0..1]: TimeStamp | start_date [0..1]: DateTime | Timestamp indicating the earliest time to start the consumption of the resources. | Resources are reserved for immediate use if:
|
||
endTime [0..1]: TimeStamp | end_date [0..1]: DateTime | Timestamp indicating the end time of the reservation (when the issuer of the request expects that the resources will no longer be needed) and used by the VIM to schedule the reservation. |
|
||
expiryTime [0..1]: TimeStamp | - | Timestamp indicating the time the VIM can release the reservation in case no allocation request against this reservation was made. | Not yet available in Pike release. | ||
- | before_end_notification | Timestamp indicating when the before_end action will be executed, e.g. take a snapshot of the resources of the lease. |
|
||
locationConstraints [0..1]: -tbd- | - | If present, it defines location constraints for the resource(s) is (are) requested to be reserved, e.g. in what particular Resource Zone. | Not yet available in Pike release. Blueprint available in [3] | ||
resourceGroupId [0..1]: Identifier | project_id: Identifier | Unique identifier of the “infrastructure resource group”, logical grouping of virtual resources assigned to a tenant within an Infrastructure Domain. |
Note
In Blazar reservations are encapsulated in leases, whereby one lease can have several reservations (i.e. reserved resources) with the same start and end dates.
Note
In the reservation system (e.g. Blazar) each lease/reservation has additional implementation level attributes not listed in the mapping tables in this document, e.g. lease_id, status, status reason, action, …, and which are not included in reservation requests.
I.b) Create virtualisation container reservation REQUEST¶
ETSI NFV IFA005 | Blazar | Description | Comment | ||
---|---|---|---|---|---|
- | name | Name of the lease/reservation. | |||
reservations | |||||
resource_type = ‘...’ | |||||
virtualisationContainerReservation [0..N]: | Virtualisation containers that need to be reserved (e.g. following a specific compute “flavour”). | ||||
VirtualisationContainerReservation | |||||
containerId [1]: Identifier | Identifier given to the compute flavour. | ||||
flavourId [1]: Identifier | The containerFlavour encapsulates information of the virtualisation container to be reserved. | ||||
accelerationCapability [0..N]: -tbd- | Selected acceleration capabilities (e.g. crypto, GPU) from the set of capabilities offered by the compute node acceleration resources. The cardinality can be 0, if no particular acceleration capability is requested. | ||||
virtualMemory [1]: VirtualMemoryData | Virtual memory of the virtualised compute. | ||||
virtualCpu [1]: VirtualCpuData | Virtual CPU(s) of the virtualised compute. | ||||
storageAttributes [0..N]: VirtualStorageData | Element containing information about the size of virtualised storage resource (e.g. size of volume, in GB), the type of storage (e.g., volume, object), and support for RDMA. | ||||
virtualNetworkInterface [0..N]: VirtualNetworkInterface | Virtual network interfaces of the virtualised compute. | ||||
affinityConstraint [0..N]: AffinityOrAntiAffinityConstraint | affinity: Boolean | Element with (anti-)affinity information of the virtualised compute resources to reserve. For the resource reservation at resource pool granularity level, it defines the (anti-)affinity information of the virtual compute pool resources to reserve. For the resource reservation at virtual container granularity level, it defines the (anti-)affinity information of the virtualisation container(s) to reserve. | Affinity and AntiAffinity rules are not yet available in Pike release. | ||
antiAffinityConstraint [0..N]: AffinityOrAntiAffinityConstraint | |||||
startTime [0..1]: TimeStamp | start_date [0..1]: DateTime | Timestamp indicating the earliest time to start the consumption of the resources. | Resources are reserved for immediate use if:
|
||
endTime [0..1]: TimeStamp | end_date [0..1]: DateTime | Timestamp indicating the end time of the reservation (when the issuer of the request expects that the resources will no longer be needed) and used by the VIM to schedule the reservation. |
|
||
expiryTime [0..1]: TimeStamp | - | Timestamp indicating the time the VIM can release the reservation in case no allocation request against this reservation was made. | Not yet available in Pike release. | ||
- | before_end_notification | Timestamp indicating when the before_end action will be executed, e.g. take a snapshot of the resources of the lease. | |||
locationConstraints [0..1]: -tbd- | - | If present, it defines location constraints for the resource(s) is (are) requested to be reserved, e.g. in what particular Resource Zone. | Not yet available in Pike release. | ||
resourceGroupId [0..1]: Identifier | project_id: Identifier | Unique identifier of the “infrastructure resource group”, logical grouping of virtual resources assigned to a tenant within an Infrastructure Domain. |
I.c) Create reservation RESPONSE¶
ETSI NFV IFA005 | Blazar | Description | Comment | |||
---|---|---|---|---|---|---|
ReservedVirtualCompute [1]: | reservations | |||||
computePoolReserved [0..1]: ReservedComputePool | resource_type = ‘virtual:instance’ | Information about compute resources that have been reserved, e.g. {“cpu_cores”:90, “vm_instances”:10, “ram”:10000}. In Blazar resource_type = ‘virtual:instance’ if the reservation was for virtual instances. | Instance reservation is available from Pike release. | |||
- | id | Identifier of the reservation. | ||||
- | lease-id | Identifier of the corresponding lease. | ||||
- | resource_id | ?? | ||||
- | amount | Amount of virtual instances of a given flavour that have been reserved. | ||||
numVcInstances [1]: Integer | - | Number of virtual container instances that have been reserved. | ||||
numCpuCores [1]: Integer | vcpus | Number of CPU cores that have been reserved. | ||||
virtualMemSize [1]: Number | memory_mb | Size of virtual memory that has been reserved. | ||||
- | disk_gb | Size of (disk) storage that has been reserved. | ||||
- | affinity: Boolean | Affinity information of the reserved resources. | (NFV-IFA005) no such information is returned. Recommendation to add this attribute to the response message. | |||
computeAttributes [0..1]: VirtualComputeAttributes ReservationData | - | Information specifying additional attributes of the virtual compute resource that have been reserved. | ||||
virtualisationContainerReserved [0..N]: ReservedVirtualisation Container | Information about the virtualisation container(s) that have been reserved. | |||||
containerId [1]: Identifier | Identifier of the virtualisation container that has been reserved. | |||||
flavourId [1]: Identifier | Identifier of the given compute flavour used in the reserved virtualisation container. | |||||
accelerationCapability [0..N]: -tbd- | Selected acceleration capabilities (e.g. crypto, GPU) from the set of capabilities offered by the compute node acceleration resources. The cardinality can be 0, if no particular acceleration capability is provided. | |||||
virtualMemory [1]: VirtualMemoryData | Virtual memory of the reserved virtualisation container. | |||||
virtualCpu [1]: VirtualCpuData | Virtual CPU(s) of the reserved virtualisation container. | |||||
virtualDisks [0..N]: VirtualStorage | Element with information of the virtualised storage resources attached to the reserved virtualisation container. | |||||
virtualNetworkInterface [0..N]: VirtualNetworkInterface | Element with information of the virtual network interfaces of the reserved virtualisation container | |||||
zoneId [0..1]: Identifier (reference to ResoureZone) | References the resource zone where the virtualisation container has been reserved. Cardinality can be 0 to cover the case where reserved network resources are not bound to a specific resource zone. | |||||
reservationStatus [1]: Enum | status; status_reason | Status of the compute resource reservation, e.g. to indicate if a reservation is being used | ||||
startTime [0..1]: TimeStamp | start_date [1] | Indication when the consumption of the resources starts. If the value is 0, resources are reserved for immediate use. | ||||
endTime [0..1]: TimeStamp | end_date [1] | Indication when the reservation ends (when it is expected that the resources will no longer be needed) and used by the VIM to schedule the reservation. If not present, resources are reserved for unlimited usage time. | ||||
expiryTime [0..1]: TimeStamp | - | Indication when the VIM can release the reservation in case no allocation request against this reservation was made. | ||||
- | events |
II. Query / list compute resource reservation¶
II.a) REQUEST¶
ETSI NFV IFA005 | Blazar | Description | Comment |
---|---|---|---|
queryReservationFilter [1]: Filter | lease_id | Query filter based on e.g. name, identifier, meta-data information or status information expressing the type of information to be retrieved. It can also be used to specify one or more reservations to be queried by providing their identifiers. | Blazar does not yet allow to list leases based on a filter. In Blazar you can either list all leases registered in Blazar (GET /v1/leases) or show information about a specific lease (GET /v1/leases/{lease-id}). |
II.a) RESPONSE¶
ETSI NFV IFA005 | Blazar | Description | Comment |
---|---|---|---|
queryResult [0..N]: ReservedVirtualCompute | leases{ reservations {..} } | Element containing information about the reserved resource. Cardinality is 0 if the query did not return any result. | For attributes of ReservedVirtualCompute see clause I.c. |
III. Update reservation¶
Note
Compute host reservations in Blazar supports updating for name, start time, and end time.
Note
Instance reservation does not yet support the update operation. A bug report is available in [4] .
III.a) REQUEST¶
ETSI NFV IFA005 | Blazar | Description | Comment |
---|---|---|---|
reservationId [1]: Id | lease_id | Identifier of the existing resource reservation to be updated. | |
- | name | Name of the lease/reservation. | |
computePoolReservation [0..1]: ComputePoolReservation | - | New amount of compute resources to be reserved. | For attributes of ComputePoolReservation see clause I.a. |
virtualisationContainer Reservation [0..N]: VirtualisationContainerReservation | - | New virtualisation containers to be reserved (e.g. following a specific compute “flavour”). | For attributes of VirtualisationContainerReservation see clause I.b. |
startTime [0..1]: TimeStamp | start_date [1] | Indication when the consumption of the resources resources starts. If not present, the original setting will not be changed. If present and the value is 0, resources are reserved for immediate use. | |
endTime [0..1]: TimeStamp | end_date [1] | Indication when the reservation ends (when it is expected that the resources will no longer be needed) and used by the VIM to schedule the reservation. If not present, resources are reserved for unlimited usage time. | |
expiryTime [0..1]: TimeStamp | - | Indication when the VIM can release the reservation in case no allocation request against this reservation was made. |
III.a) RESPONSE¶
ETSI NFV IFA005 | Blazar | Description | Comment |
---|---|---|---|
reservationData [0..N]: ReservedVirtualCompute | leases { reservations {..} } | Element containing information about the updated reserved resource. | For attributes of ReservedVirtualCompute and Blazar reservations see clause I.c. |
IV. Terminate compute resource reservation¶
IV.a) REQUEST¶
ETSI NFV IFA005 | Blazar | Description | Comment |
---|---|---|---|
reservationId [1..N]: Identifier | lease_id | Identifier of the resource reservation(s) to terminate. |
IV.a) RESPONSE¶
ETSI NFV IFA005 | Blazar | Description | Comment |
---|---|---|---|
reservationId [1..N]: Identifier | - | Identifier of the resource reservation(s) successfullly terminated. | Blazar just returns a HTTP/1.1 204 NO CONTENT response code. |