add throttle ability for cinder volume migrate

Registered by boh.ricky

Cinder migrate command has the "--force-host-copy" mode.
On this mode for the volume (which is not attached to a running instance), the migrate‘s inner implement is based on the "dd" command for a generic implement. But there is no throttle in current implement in this case.

I think it's better to throttle it to avoid to affect other processes running in the same machine too much.
This feature is to add the throttle ability on this case.

The "dd" command doesn't has any throttle ability.
So i plan to use "pv" command to do the throttle as follow.
dd if=/dev/sda | pv -L 3k |dd of=/home/bigfile

About pv:
http://www.ivarch.com/programs/pv.shtml

Blueprint information

Status:
Complete
Approver:
None
Priority:
Undefined
Drafter:
boh.ricky
Direction:
Needs approval
Assignee:
Zhou Yu
Definition:
Obsolete
Series goal:
None
Implementation:
Started
Milestone target:
milestone icon next
Started by
boh.ricky
Completed by
Sean McGinnis

Related branches

Sprints

Whiteboard

(smcginnis): Marking obsolete as this has been sitting out there for a long time. If this is still needed, please submit a new bp.

Gerrit topic: https://review.openstack.org/#q,topic:bp/throttle-cinder-migrate,n,z

Addressed by: https://review.openstack.org/95376
    Add throttle ability for cinder volume migrate

The generic migration code path in Cinder, will have volume service attach both source volume and destination volume on the node, and then copy the data over. For most volume backends that uses storage protocol like iSCSI, this process only consumes network bandwidth and memory bandwidth of the physical node, not local disk IO involved. It may impact network IO of that node. Is that 'the read/write of other processes' mentioned in commit message and blueprint?

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.