Use dd conv=sparse when writing images to nodes
When using whole disk images, one generally wants the *virtual*
size of the image to be close to the size of the overcloud nodes'
physical disks (since no partition/logical volume/filesystem
expansion is done). As an example, one might end up with a 4GB
overcloud image (QCOW file) that has a virtual size of 100GB or
more.
Ironic uses qemu-img to convert this QCOW file to a "raw" image,
which is a *sparse* file. When the image is copied to an overcloud
node's disk (via iSCSI), we currently write all 100GB (mainly of
zeroes) across the network to the node's disk.
Adding conv=sparse to the dd command makes it skip the "holes" in
the image file; it will only the write the portions of the image
that actually contain data across the network.
Closes-Bug #1743651
Change-Id: Ief3688b210c3b19ce8be45c5f9571b7ba6e79127
(cherry picked from commit ab0492a364
)
This commit is contained in:
parent
d7401a1290
commit
9347e60f9b
|
@ -290,7 +290,8 @@ def is_block_device(dev):
|
|||
|
||||
def dd(src, dst):
|
||||
"""Execute dd from src to dst."""
|
||||
utils.dd(src, dst, 'bs=%s' % CONF.disk_utils.dd_block_size, 'oflag=direct')
|
||||
utils.dd(src, dst, 'bs=%s' % CONF.disk_utils.dd_block_size, 'oflag=direct',
|
||||
'conv=sparse')
|
||||
|
||||
|
||||
def qemu_img_info(path):
|
||||
|
|
Loading…
Reference in New Issue