Currently, the cinder-volume service is very much _not_ HA. If you lose the cinder-volume service that created the volume you will run into a host of issues including the one you describe. You can only run it in active-passive.
Here is how to properly configure Cinder-Volume in a multinode environment with ceph as of Juno:
Assumptions:
- 2 nodes (can be more) both running Cinder-Volume service backed by a distributed backend like Ceph
- Both nodes have a generic hostname that is the same (e.g. "controller" not "controller01")
Setup:
- Install cinder-volume services on both controllers.
- Shut down cinder-volume on one of the controllers (must be shutdown completely, not running)
- Check
cinder service-list
and ensure you only see one cinder-volume
binary running with our generic hostname - Configure Corosync/Pacemaker or similar to start a service on the inactive controller when the active controller fails
Then you should have an HA solution. The hostname part is what is going to trip you up. It has to be the same name so cinder sees it as the same service.
I am told this is all being worked on for Kilo. If it isn't fixed in Kilo, it should be by the time we get to "L"