Blazar monitors states of resources and heals reservations which are expected to suffer from resource failure. Resource specific functionality, e.g., calling Nova APIs, is provided as a monitoring plugin. The following sections describe the resource monitoring feature in detail.
Blazar supports 2 types of monitoring - push-based and polling-based.
Push-based monitoring
The monitor listens to notification messages sent by other components, e.g., sent by Nova for the host monitoring plugin. And it picks up messages which refer to the resources managed by Blazar. Event types, topics to subscribe and notification callbacks are provided by monitoring plugins.
Polling-based monitoring
The blazar-manager periodically calls a states check method of monitoring plugins. Then, the monitoring plugins check states of resources, e.g., List Hypervisors of the Compute API is used for the host monitoring plugin.
Admins can enable/disable these monitoring by setting configuration options.
When the monitor detects a resource failure, it heals reservations which are expected to suffer from the failure. Note that it does not immediately heal all of reservations for the failed resource because the resource is expected to recover sometime in the future, i.e., the monitor heals only reservations which are active or will start soon.
In addition, the monitor periodically checks validity of reservations and heals invalid reservations. Therefore, even though the failed resource did not recover in the last interval, the periodic task heals invalid reservations which will start in the next interval.
The healing flow is as follows:
Leases and reservations have flags that indicate states of reserved resources. Reservations have the following two flags:
Leases have the following flag:
Lease owners can see health of the lease and reservations included in the lease by checking these flags.
Resource specific functionality is provided as a monitoring plugin. The following resource is currently supported.
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.