zoukankan      html  css  js  c++  java
  • OpenStack Cinder删除卷太慢的解决方法

    1.让OpenStack删除卷更快
    为什么速度这么慢?

    当我们执行删除卷命令以后,openstack会尝试去清除卷上的数据,他是如何清除的呢?
    其实他是通过dd命令填充空白数据上去(dd if=/dev/zero)。这样子的清理方式目的是
    为了彻底的清除数据,保证数据安全。但是对于ceph作为后端存储的情况而言,我们把image删
    除了,数据也就相当安全了。这样子的操作并没有太多用处。特别是存储空间大于50GB的情况下,会操作很久。

    我们可以做那些什么?
    直接修改/etc/cinder/cinder.conf 配置文件:

    # 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)

    北丐洪七公--Jeff
    Dignity comes from strength, strength comes from struggle!
    本文版权归作者和博客园共有,欢迎转载,未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    算法学习(二)——树状数组求逆序数
    ZOJ 2412 Farm Irrigation
    排列的生成算法(一)
    汉诺塔递归实现
    汇编(五)
    汇编(四)
    汇编(三)
    汇编(二)
    0103MySQL中的B-tree索引 USINGWHERE和USING INDEX同时出现
    0103如何通过索引长度确定是否使用全索引
  • 原文地址:https://www.cnblogs.com/wangyifu/p/7660309.html
Copyright © 2011-2022 走看看