Volume migration with file I/O instead of iSCSI attachment

Registered by Jon Bernard

When migrating a volume between two backends, the copy_volume_data routine in the source volume's driver is executed to move the blocks from one volume to another. This routine assumes that both source and destination volumes can be attached locally via iSCSI. This is technically not necessary for local volumes and also prevents drivers such as Ceph from participating in volume migration operations.

I propose that we abstract the iSCSI volume attachement into a routine that can determine the best way to return a file-like python object. For remote volumes, this may fall back to attaching the volume using iSCSI. And for drivers that do not use iSCSI like Ceph, its RBD interface can be hidden behind a similar file-like object such that copy_volume_data does not see this difference.

Blueprint submission via cinder-specs is in progress.

Blueprint information

Status:
Complete
Approver:
Mike Perez
Priority:
Medium
Drafter:
Jon Bernard
Direction:
Approved
Assignee:
Jon Bernard
Definition:
Approved
Series goal:
Accepted for liberty
Implementation:
Implemented
Milestone target:
milestone icon 7.0.0
Started by
Mike Perez
Completed by
John Griffith

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:bp/generic-volume-migration,n,z

Addressed by: https://review.openstack.org/109065
    Propose a more generic volume migration approach

Addressed by: https://review.openstack.org/135002
    Add support for generic volume migration

Addressed by: https://review.openstack.org/187270
    WIP: Add support for generic volume migration

Gerrit topic: https://review.openstack.org/#q,topic:bug/1489335,n,z

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.