加快Cinder中Volume的删除速度
2013-07-16 20:23
274 查看
问题
以前一篇博文OpenStack中删除Volume缓慢的问题 提到采用LVM作为后端存储时在删除Volume的时候为了安全有一个将整个Volume的数据清除的dd操作,如果Volume容量较大的话这个操作非常耗时, 并且如果同时删除一个存储服务器上的多个Volume的话会使服务器负载非常重,因此有必要来修改这个dd操作来加快Volume的删除。解决方法
解决方法就是如前篇文章据说的只dd Volume头部的100M左右的数据,如下所示:[ugyn@ugyn-fedora cinder]$ git diff diff --git a/cinder/volume/driver.py b/cinder/volume/driver.py index 2091848..33ef10b 100644 --- a/cinder/volume/driver.py +++ b/cinder/volume/driver.py @@ -200,7 +200,7 @@ class VolumeDriver(object): if (out[0] == 'o') or (out[0] == 'O'): raise exception.VolumeIsBusy(volume_name=volume['name']) - self._delete_volume(volume, volume['size']) + self._delete_volume(volume, 0.125) def create_snapshot(self, snapshot): """Creates a snapshot.""" @@ -218,7 +218,7 @@ class VolumeDriver(object): # TODO(yamahata): zeroing out the whole snapshot triggers COW. # it's quite slow. - self._delete_volume(snapshot, snapshot['volume_size']) + self._delete_volume(snapshot, 0.125) def local_path(self, volume): # NOTE(vish): stops deprecation warning
这里修改为0.125的原因是最终该参数乘1024后作为dd 的count参数,而count参数要求为整数,所以我这里用了0.125也就是只dd开头的128M数据。这里删除Volume或Snapshot 的操作比较简单,只涉及四个函数,具体可以看下源代码。修改完后重启cinder-volume即可,注意我这里修改的是F版。
北方工业大学 |
云计算研究中心 | 姜永
相关文章推荐
- 加速 cinder 删除volume速度
- 删除多余迅雷7插件,加快启动速度
- 练习2-9 在求对二的补码时,表达式 x &= (x - 1) 可以删除 x 中最右边值为 1 的一个二进制位,请解释这样做的道理。用这一方法重写biecount函数,以加快其执行速度。
- 练习 2-9 在求对二的补码时,表达式x &= (x – 1)可以删除x中最右边值为1的一个二进制位。请解释这样做的道理。用这一方法重写bitcount函数,以加快其执行速度。
- 从cinder 删除volume 分析cinder rpc
- easyui中datagrid数据删除问题(加快删除速度)
- Vista小技巧几则 - 删除文件, 禁用 zip 目录, 加快拷贝移动目录速度
- 关于lvremove删除openstack cinder volume所对应的逻辑卷的方法
- 如何删除系统临时文件,加快系统运行速度
- 开启 MySQL query cache,加快数据库读取速度
- linux加快串口速度的方法。linux读写不卡机的方法,linux串口接收注意事项,串口窍门,串口加速方法,
- MySQL临时表的简单用法 在大数据量时有时会加快查询速度
- 数据库建立索引为什么会加快查询速度
- 我的想法——如何加快一个人成熟的速度
- 如何加快页面加载速度
- ant 加快eclipse下android项目编译速度
- 加快vs2008的启动速度
- 102.只改一个值!马上加快宽带上网速度
- win7系统怎么加快任务栏预览窗口速度?
- 用Redis作为缓存服务器,加快数据库操作速度