Attaching Volumes

The following sequence diagram outlines the current flow when attaching a volume to an instance using the os-volume_attachments API. This diagram uses the libvirt driver as an example virt driver to additionally document the optional interactions with the os-brick library on the compute hosts during the request.

Note

os-brick is not always used to connect volumes to the host, most notably when connecting an instance natively to ceph rbd volumes

The diagram also outlines the various locks taken on the compute during the attach volume flow. In this example these include locks against the instance.uuid, cinder_backend.uuid orchestrated for nova-compute by os-brick and the generic connect_volume lock taken within os-brick itself. This final connect_volume lock also being held when detaching and disconnecting a volume from the host by os-brick.

Attach volume workflow