# Method used to wipe old volumes (string value)
# Allowed values: none, zero, shred
volume_clear = none
openstack-config --set /etc/cinder/cinder.conf DEFAULT volume_clear none 默认值是zero,我们配置成none,就跳过清理这步。如果我们想只清理前100MB呢?
# Method used to wipe old volumes (string value)
# Allowed values: none, zero, shred
volume_clear = zero
# Size in MiB to wipe at start of old volumes. 0 => all (integer value)
volume_clear_size = 100
cinder 中clear_volume段代码
def clear_volume(volume_size, volume_path, volume_clear=None,
volume_clear_size=None, volume_clear_ionice=None,
throttle=None):
"""Unprovision old volumes to prevent data leaking between users."""
if volume_clear is None:
volume_clear = CONF.volume_clear
if volume_clear_size is None:
volume_clear_size = CONF.volume_clear_size
if volume_clear_size == 0:
volume_clear_size = volume_size
if volume_clear_ionice is None:
volume_clear_ionice = CONF.volume_clear_ionice
LOG.info(_LI("Performing secure delete on volume: %s"), volume_path)
# We pass sparse=False explicitly here so that zero blocks are not
# skipped in order to clear the volume.
if volume_clear == 'zero':
return copy_volume('/dev/zero', volume_path, volume_clear_size,
CONF.volume_dd_blocksize,
sync=True, execute=utils.execute,
ionice=volume_clear_ionice,
throttle=throttle, sparse=False)
else:
raise exception.InvalidConfigurationValue(
option='volume_clear',
value=volume_clear)