Follow

This article applies to OpenStack versions prior to Ocata.

For OpenStack Ocata or later, see OpenStack InfiniBox Volume Driver.


This is a general troubleshooting guide for the Infinidat OpenStack Cinder Volume Driver.

How do I restart OpenStack services?

  • If you want to get our driver reloaded, try:

    service openstack-cinder-volume restart
  • If you want to get everything reloaded, try:

    openstack-service restart

Different behaviours in the Infinidat Cinder Volume Driver for handing non-existing pools in InfiniBox

This article applies to OpenStack versions prior to Ocata.

For OpenStack Ocata or later, see OpenStack InfiniBox Volume Driver.

The default behavior of our volume driver is to raise an exception during startup if the pool defined in the volume backend configuration does not exist within InfiniBox.

This means that the volume backend won't show up in the UI and provision volumes with it, and in our opinion, it is better than showing it and having volume-create fail (without showing the root cause).

In case there are still volumes in the Cinder database that were provisioned with the volume backend, you won't be able to delete or force-delete them since the backend is not running.

You can change the behaviour of the driver by added infinidat_allow_pool_not_found = true to the configuration; this will allow the driver to start even though the volume does not exist, so you could force-delete the volume from the Cinder APIs.

There's no option to set this parameter with infini-openstack (our command-line tool); this needs to be done manually by modifying the cinder configuration file (the default location is /etc/cinder/cinder.conf). Here's a sample diff when applying this change: 

 [infinibox-10000-pool-1]
 volume_driver = infinidat_openstack.cinder.InfiniboxVolumeDriver
 san_ip = box-demo
 infinidat_pool_id = 1
 san_login = admin
 san_password = 123456
 infinidat_provision_type = thin
 infinidat_prefer_fc = False
-infinidat_allow_pool_not_found = False
+infinidat_allow_pool_not_found = True
 infinidat_purge_volume_on_deletion = False

It doesn't matter if the value is True or true

Deleting a volume via Cinder's force-delete API may fail if the volume is mapped or has snapshots

This article applies to OpenStack versions prior to Ocata.

For OpenStack Ocata or later, see OpenStack InfiniBox Volume Driver.

 

The default behaviour of our volume driver is to call use the DELETE API of InfiniBox in the implementation of Cinder delete_volume method.

If everything works correctly, this shouldn't be a problem for Cinder, since it controls the snapshots and volume mappings and will not allow even call our API - it will validate beforehand that the volume is not being used.

Cinder also exposed a method to the client named force-delete which bypasses all the validations; problem is that it doesn't pass the force to the volume driver, and we cannot tell if the user requested a force-delete and expects us to do whatever it takes to delete the volume (such as removing LUN mappings, deleting the snapshot tree, etc).

There was two ways customers can handle this situation:

  • Delete the volume mappings and snapshots from InfiniBox GUI/CLI and then run Cinder's force-delete again, and it should work this time
  • Set infinidat_purge_volume_on_deletion = True in the backend configuration and then use the force-delete command; when this parameter is set to true, we will use the purge method in infinipy, which will recursively purge all the volume's children, remove the volume mappings and then delete it (assuming the user has credentials to do all that).

 

There's no option to set this parameter with infini-openstack (our command-line tool); this needs to be done manually by modifying the cinder configuration file (the default location is /etc/cinder/cinder.conf). Here's a sample diff when applying this change: 

 

 [infinibox-10000-pool-1]
 volume_driver = infinidat_openstack.cinder.InfiniboxVolumeDriver
 san_ip = box-demo
 infinidat_pool_id = 1
 san_login = admin
 san_password = 123456
 infinidat_provision_type = thin
 infinidat_prefer_fc = False
 infinidat_allow_pool_not_found = False
-infinidat_purge_volume_on_deletion = False
+infinidat_purge_volume_on_deletion = True

 

 

 

It doesn't matter if the value is True or true


Collecting Infinidat/Cinder logs

In case of an error in our volume driver, it is better to take a look in the following log files.

  • Infinidat logs (Host PowerTools) are located at:

/var/log/infinihost*.log

  • The Infinidat Cinder Volume Driver logs are written to the Cinder Volume Driver log file at:

/var/log/cinder/volume.log

If the source of the problem is not clear from the logs, please collect the above files, and the following OpenStack logs, and send us to the Support web site:

/var/log/cinder/*.log

/var/log/nova/*.log

In case Host PowerTools is installed, more system files and troubleshooting info can be collected using:

infinihost logs collect

Was this article helpful?
0 out of 0 found this helpful

0 out of 0 found this helpful

Comments