Resource Reservation
Overview
Requirements
You must have installed the chameleon fork of python-blazarclient.
pip install \
git+https://github.com/chameleoncloud/python-blazarclient@chameleoncloud/xena
Adding Resources
Hosts
You shouldn't need to do this manually, as Doni will manage this for you.
If you need to, the command is
openstack reservation host create
Devices
openstack reservation device create
Disabling Resources
Hosts
To Disable Resources for Maintenance - Run the following command to disable a host for maintenance. This will make the resource unreservable for users while allowing administrators to create leases. The healing monitor does not flip the 'reservable' for hosts when the host is flagged as disabled.
openstack reservation host set<host id/name> --extra disabled=true
On disabling a host, it is also set as unreservable. For example, running openstack reservation host list
should show the disabled host with disabled
set to True:
openstack reservation host list -c hypervisor_hostname -c disabled -c reservable
+--------------------------------------+------------+----------+
| hypervisor_hostname | reservable | disabled |
+--------------------------------------+------------+----------+
| 328aa140-e8cb-48a8-a789-fb293bfb8f74 | True | False |
| 8576d7ad-7f34-4588-a868-9075ac8d2c9f | True | False |
| c3ce27b8-85b2-441d-ace1-078fd187f637 | False | True |
+--------------------------------------+------------+----------+
To Enable Resources After Maintenance - To unset the disabled flag and make the resource reservable again, use the following command:
openstack reservation host unset<host id/name> --extra disabled
This enables the host, and the 'reservable' flag is not automatically turned on, but the healing monitor should turn 'reservable' to True eventually.
openstack reservation host list -c hypervisor_hostname -c disabled -c reservable
+--------------------------------------+------------+----------+
| hypervisor_hostname | reservable | disabled |
+--------------------------------------+------------+----------+
| 328aa140-e8cb-48a8-a789-fb293bfb8f74 | True | False |
| 8576d7ad-7f34-4588-a868-9075ac8d2c9f | True | False |
| c3ce27b8-85b2-441d-ace1-078fd187f637 | False | False |
+--------------------------------------+------------+----------+
Networks
Create a Reservable Network
This creates an entry in Blazar, allowing a user to reserve a vlan on a physical network. When their lease starts, a neutron network will be created using that vlan and physnet.
Make sure that the segment ID + physnets you add here are outside the range of ad-hoc vlans defined for neutron (in your defaults.yml
file). Otherwise, Blazar's reservable vlans and neutron's ad-hoc ones may conflict.
Usage:
openstack reservation network create \
--network-type <NETWORK_TYPE> \
--physical-network <PHYSICAL_NETWORK> \
--segment <SEGMENT_ID> \
--extra <key>=<value>
options:
--network-type NETWORK_TYPE
Type of physical mechanism associated with the network segment. For example: flat, geneve, gre, local, vlan, vxlan.
--physical-network PHYSICAL_NETWORK
Name of the physical network in which the network segment is available, required for VLAN networks
--segment SEGMENT_ID
VLAN ID for VLAN networks or Tunnel ID for GENEVE/GRE/VXLAN networks
--extra <key>=<value>
Extra capabilities key/value pairs to add for the network
Example:
openstack reservation network create \
--network-type vlan \
--physical-network physnet1 \
--segment 2000 \
--extra mykey=myvalue
Add or update capability to a Reservable Network
openstack reservation network set --extra key=value NETWORK_ID
Example, change the physical network:
openstack reservation network set --extra physical_network=physnet1
Convention for Stitch-able Networks
To indicate that a network can be connected to other sites at L2, we use the key stitch_provider
For example, if you have plumbed VLANs from your dataplane switch to a FABRIC facility port, indicate these with:
openstack reservation network set --extra stitch_provider=fabric
Floating IPs
Create a new reservable floating IP
openstack reservation floatingip create <NETWORK_ID> <FLOATING_IP_ADDRESS>
Last updated