]> review.fuel-infra Code Review - openstack-build/cinder-build.git/commit
LVM: Support efficient data copy for LVM driver
authorMitsuhiro Tanino <mitsuhiro.tanino@hds.com>
Thu, 9 Jul 2015 20:04:25 +0000 (16:04 -0400)
committerMitsuhiro Tanino <mitsuhiro.tanino@hds.com>
Fri, 24 Jul 2015 00:10:18 +0000 (20:10 -0400)
commit8a944bc8573eee775de8ea983191e0a4e808aaba
tree69ebfe89d0f825681cf9b4651b858a1023786234
parent0cc4b6d5116dda93c4e5fc2f639d993b9ff58b3c
LVM: Support efficient data copy for LVM driver

The create_volume_from_snapshot() and migrate_volume() use
dd command for data copy, but the copy always copies full blocks
even if the source data contains many null or zero blocks.
When we use thin provisioned LVM, blocks are not pre-allocated,
so unused region returns zero.
If we copy full block for destination volume, unnecessary blocks
will be allocated and the usage will be 100%.

The dd command has conv=sparse option in order to copy data more
efficiently. This patch enables conv=sparse option for
create_volume_from_snapshot() and migrate_volume() when we use
thin provisioned LVM.

Change-Id: I104c4127bc4a33da9c11ad2aac93766f862e2981
Closes-bug: #1472486
cinder/tests/unit/test_volume.py
cinder/volume/drivers/lvm.py