Let me explain a little bit more on the workflow of creating a volume:
1) User sends request to Cinder API service;
2) API creates a DB entry for the volume and marks its status to ‘creating’ (https://github.com/openstack/cinder/blob/stable/havana/cinder/volume/flows/create_volume/__init__.py#L545) and sends a RPC message to scheduler;
3) scheduler picks up the message and makes placement decision and if a back-end is available, it sends the request via RPC to volume service;
4) volume service picks up the message to perform the real job creating a volume for user.
There are multiple cases in which a volume’s status can be stuck in ‘creating’:
a) something wrong happened during RPC message being processed by scheduler (e.g. scheduler service is down refer bug : bug: https://review.openstack.org/#/c/64014/ – related to this change message is lost, scheduler service goes down while scheduler processing the message);
b) something went wrong AFTER backend is chosen, which means scheduler successfully sends out the message to target back-end, but somehow the message isn’t picked up by target volume service or there is unhandled exception while volume service handling the request.
If the cinder volume creation passed api, scheduler and get stuck in creation in volume, restart services again using
service openstack-cinder-volume restart
Cinder services restart commands service openstack-cinder-api restart service openstack-cinder-backup restart service openstack-cinder-scheduler restart service openstack-cinder-volume restart Thanks !!