09/08/2026
Keeping Your OpenStack Cloud Healthy: A Comprehensive Verification Guide
In the complex world of cloud computing, particularly with a robust platform like OpenStack, ensuring that all services are running optimally is paramount. Downtime or degraded performance can have significant repercussions for users and applications relying on your cloud infrastructure. This guide provides a detailed walkthrough on how to verify the operational status of key OpenStack services, offering practical commands and insights to keep your cloud environment healthy and efficient.

Understanding OpenStack Resources
Before diving into service verification, it's crucial to understand what OpenStack resources are. In essence, OpenStack resources refer to the fundamental building blocks that users can provision and manage within the cloud. These include virtual machines (instances), storage volumes, floating IP addresses, and more. The table below illustrates a typical tenant's resource usage, showing the amount used versus the limit allocated. Monitoring these resources is vital for capacity planning and preventing service disruptions due to resource exhaustion. For example, if a tenant's 'instances' usage reaches its limit, they won't be able to launch new virtual machines.

| Resource | Used | Limit | Percentage Used |
|---|---|---|---|
| cores | 1 | 20 | 5 % |
| floating_ips | 1 | 10 | 10 % |
| gigabytes | 12 | 1000 | 1 % |
| images | 1 | 4 | 25 % |
| injected_file_content_bytes | 0 | 10240 | 0 % |
| injected_file_path_bytes | 0 | 255 | 0 % |
| injected_files | 0 | 5 | 0 % |
| instances | 1 | 10 | 10 % |
| key_pairs | 0 | 100 | 0 % |
| metadata_items | 0 | 128 | 0 % |
| ram | 512 | 51200 | 1 % |
| reservation_expire | 0 | 86400 | 0 % |
| security_group_rules | 0 | 20 | 0 % |
| security_groups | 0 | 10 | 0 % |
| volumes | 2 | 10 | 20 % |
Verifying Core OpenStack Services
Ceilometer
Ceilometer is OpenStack's metering service, crucial for collecting resource usage data. To ensure it's operational:
- On every MongoDB node:
- Check MongoDB service status:
# service mongodb status - Verify MongoDB ports are listening:
# netstat -nltp | grep mongo. Look for management and local IP addresses in the LISTEN state.
- Check MongoDB service status:
- On every controller node:
# service ceilometer-agent-central status# service ceilometer-api status# service ceilometer-agent-notification status# service ceilometer-collector status
- On every compute node:
# service ceilometer-polling status
- On any controller node (for clustered environments):
- Use Pacemaker/Corosync to check status:
# pcs status | grep ceilometeror# crm status | grep ceilometer. Ensure the Ceilometer resource shows a 'Started' status.
- Use Pacemaker/Corosync to check status:
Cinder
Cinder provides block storage services. Verify its components:
- On every controller node:
# service cinder-api status# service cinder-scheduler status
- On every node with the Cinder role:
# service cinder-volume status# service cinder-backup status
Corosync/Pacemaker
These are essential for high availability in OpenStack. Their status directly impacts the availability of other services:
- On every controller node:
- Check cluster services:
# service corosync statusand# service pacemaker status - Verify overall cluster status:
# pcs statusor# crm status. Ensure all controller hostnames are listed in the 'Online' field. - Check resource status:
# pcs resource showor# crm resource show. All critical resources should be in a 'Started' state.
- Check cluster services:
Glance
Glance is OpenStack's image service. Check its core components:
- On every controller node:
# service glance-api status# service glance-registry status
Heat
Heat is the orchestration service. Verify its engines and APIs:
- On any controller node:
- Use the Heat CLI to list services:
# source openrcfollowed by# heat service-list. All listed Heat engines should be 'up'.
- Use the Heat CLI to list services:
- On every controller node:
# service heat-api status# service heat-api-cfn status# service heat-api-cloudwatch status# service heat-engine status
Horizon
Horizon is the web dashboard for OpenStack. Since it's typically served by Apache:
- On all controller nodes:
- Verify Apache status:
# service apache2 status - Check if Horizon ports are listening:
# netstat -nltp | egrep ':80|:443'. You should see your management and local IP addresses with ports 80 or 443 in the LISTEN state.
- Verify Apache status:
Ironic
Ironic provides bare metal provisioning. Check its services:
- On every controller node:
# service ironic-api status
- On every Ironic node:
# service ironic-conductor status
- On any controller node (for clustered environments):
- Check Pacemaker status:
# pcs status | grep ironic. Ensure the Ironic resource is 'Started'.
- Check Pacemaker status:
Keystone
Keystone is the identity service, also often served by Apache:
- On all controller nodes (and Keystone nodes if separate):
- Verify Apache status:
# service apache2 status - Check if Keystone ports are listening:
# netstat -nltp | egrep '5000|35357'. Ensure your management and local IP addresses have ports 5000 and 35357 in the LISTEN state.
- Verify Apache status:
MySQL/Galera
Database services are critical. For Galera clusters, ensure synchronization:
- On any controller node:
- Check Galera cluster status:
# pcs status|grep -A1 clone_p_mysqlor# crm status|grep -A1 clone_p_mysql. The 'clone_p_mysqld' resource should be 'Started' on all controllers. - Verify replication status:
# mysql -e "show status" | egrep 'wsrep_(local_state|incoming_address)'. Ensure 'wsrep_local_state_comment' is 'Synced' and 'wsrep_incoming_address' lists all controller node management IPs.
- Check Galera cluster status:
Neutron
Neutron manages networking. Its agents are vital:
- On every compute node:
# service neutron-openvswitch-agent status
- On every controller node:
- Verify server status:
# service neutron-server status - Verify agent statuses:
# service neutron-metadata-agent status,# service neutron-dhcp-agent status,# service neutron-l3-agent status,# service neutron-openvswitch-agent status
- Verify server status:
- On any controller node:
- Use the Neutron CLI to check agent status:
# source openrcfollowed by# neutron agent-list. All agents should show ':-)' in the 'alive' column and 'True' in 'admin_state_up'. - Check Pacemaker status:
# pcs status | grep -A2 neutron. Ensure Neutron resources are 'Started' across all controllers.
- Use the Neutron CLI to check agent status:
Nova
Nova is the compute service. Verify its various components:
- Using the Nova CLI (on any controller node):
# source openrc# nova service-list. All services should be 'enabled' and 'up'.
- On every controller node:
# service nova-api status# service nova-cert status# service nova-compute status# service nova-conductor status# service nova-consoleauth status# service nova-novncproxy status# service nova-scheduler status# service nova-spicehtml5proxy status# service nova-xenvncproxy status
- On every compute node:
# service nova-compute status
RabbitMQ
RabbitMQ is the message broker, essential for inter-service communication.

- On any controller node:
- Check cluster status:
# rabbitmqctl cluster_status. The 'running_nodes' field should list all controller hostnames in the 'rabbit@' format, and the 'partitions' field should be empty.
- Check cluster status:
Troubleshooting Common Issues
If a service fails to start or shows an error, common troubleshooting steps include:
- Checking Logs: OpenStack services generate extensive logs. Locating and examining logs for the specific service (e.g.,
/var/log/ceilometer/alarm.log,/var/log/nova/nova-compute.log) is crucial for identifying the root cause. - Resource Availability: Ensure sufficient CPU, RAM, and disk space are available on the nodes where services are running.
- Network Connectivity: Verify that nodes can communicate with each other on the necessary ports. Firewalls can often be a culprit.
- Configuration Errors: Double-check configuration files (e.g., in
/etc/ceilometer/,/etc/nova/) for syntax errors or incorrect parameters. - Database Connectivity: For services relying on a database (like MySQL), ensure the database is running and accessible.
Conclusion
Regularly verifying the status of your OpenStack services is a cornerstone of maintaining a stable and reliable cloud environment. By systematically checking each component using the commands outlined above, you can proactively identify and address potential issues before they impact your users. A well-maintained OpenStack deployment ensures optimal resource utilization and a seamless user experience.
If you want to read more articles similar to Ensuring Your OpenStack Services Are Operational, you can visit the Taxis category.
