CN102981967A - 一种提升自动精简配置容量回收效率的方法 - Google Patents
一种提升自动精简配置容量回收效率的方法 Download PDFInfo
- Publication number
- CN102981967A CN102981967A CN2012104531439A CN201210453143A CN102981967A CN 102981967 A CN102981967 A CN 102981967A CN 2012104531439 A CN2012104531439 A CN 2012104531439A CN 201210453143 A CN201210453143 A CN 201210453143A CN 102981967 A CN102981967 A CN 102981967A
- Authority
- CN
- China
- Prior art keywords
- space
- block
- storage pool
- module
- storage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种提升自动精简配置容量回收效率的方法,包括存储池空间分配以及回收算法,通过扩展自动精简存储池的容量分配以及回收算法来提高回收效率;该系统包括:文件系统模块;通用块设备模块;ISCSI协议实例模块;自动精简存储池模块,通过软件方式来回收空间,与硬件方式相比价格便宜,适合对于购买存储设备经费不足的情况;相比整个存储块进行空间回收的方式,本发明描述的算法对存储块回收效率比较高,本发明中描述的存储池与自动精简存储池在概念上是等价的,采用本发明性价比高,存储池中空间回收效率高,采用独立模块方式进行安装,易于使用。
Description
技术领域
本发明涉及计算机或存储系统, 具体地说是一种提升自动精简配置容量回收效率的方法。
背景技术
目前很多存储系统都支持自动精简配置技术,自动精简配置是一种容量分配的技术,自动精简存储池中的存储块(存储空间)不会一次性的分配过大的空间给某项应用,而是根据该项应用实际所需要的容量,多次的少量的分配给应用程序,当该项应用所产生的数据增长,分配的容量空间已不够的时候,系统会再次从后端存储池中补充分配一部分存储空间;自动精简配置中最为关键的部分是存储池空间分配以及回收,之所以这部分重要是因为这些被释放的存储空间就象内存一样可以被重新利用,增加了存储空间的使用效率,减少资源的浪费。
目前存储界对于存储空间进行回收的方法主要有:全零页回收、整个存储块进行空间回收;对于全零页回收来说,当整个存储块全部以硬件方式填充为零时,进行整个存储块的回收再利用,这是通过硬件方式实现的,虽然存储空间回收起来效率高,但是设备价格昂贵;整个存储块进行空间回收的方式,存储块空间回收效率比较低,这种方式之所以回收效率低是因为,回收算法严重依赖于文件系统层首次通知空间回收模块的信息,如果文件系统通知的逻辑块起始地址没有与存储块的起始地址对齐,或者逻辑块的数目与存储块的大小不一致,均会导致存储池不能将存储块进行回收,被其它文件系统重新利用。
发明内容
本发明的目的是提供一种提升自动精简配置容量回收效率的方法。
本发明的目的是按以下方式实现的,通过扩展自动精简存储池的容量分配以及回收算法来提高回收效率;该系统包括:文件系统模块;通用块设备模块; ISCSI协议实例模块;自动精简存储池模块;其中:
文件系统层模块:文件系统调用通用块设备模块提供的接口触发DISCARD请求;该请求携带的主要信息逻辑块起始地址,逻辑块的数目,标记请求类型为DISCARD;
通用块设备层模块:定义REQ_DISCARD,并提供回调函数供文件系统层以及ISCSI实例调用;通过该模块,将DISCARD请求转发给精简存储池模块、ISCSI协议实例;
ISCSI协议实例模块:iSCSI-initiator将收到来自通用块设备的DISCARD请求传递给iSCSI-target;iSCSI-target调用块设备层提供的回调函数将iSCSI-initiator发送的DISCARD请求转发给自动精简存储池模块;
自动精简存储池模块:负责接收处理DISCARD请求,进行空间的回收操作;同时也会对文件系统写请求进行空间的分配;
具体步骤如下:
(1) 自动精简存储池模块收到写请求
1)首先从存储池的已分配RbTree中查找是否已经分配了空间,如果没有分配,则从存储池空闲RbTree中提取一整块存储块,计算写请求所占用的存储块空间;如果写请求所占用空间为一整块存储块大小,则将分配的存储块保存到已分配RbTree数据结构中;如果写请求未占满新分配的一整块存储块空间,则将空闲部分重新保存到空闲RbTree中;
2)从存储池的已分配RbTree数据结构中查找是否已经分配了空间,如果已经分配空间,则查看写请求所占用空间的大小,如果已经分配空间大小满足本次写请求大小,则不再进行空间分配;如果已经分配的空间大小不能满足本次写请求,则从空闲RbTree数据结构中提取空闲空间,如果提取的空间满足本次写请求,则将所占用的存储块保存到已分配RbTree数据结构中,并判断本次写请求与之前写请求的存储块地址空间是否连续,如果连续,则将两次写请求合并,形成一个新的请求保存到已分配RbTree数据结构中,否则不进行合并;如果提取的空间不能完全满足本次写请求,则使用空闲RbTree中的部分存储块空闲空间,对于所占用的部分空闲空间与之前的写请求根据合并条件执行合并操作,对于不能满足本次写请求的部分空间,走步骤1)流程;
(2) 自动精简存储池模块收到DISCARD请求:
自动精简存储池模块根据DISCARD请求所携带的逻辑块起始地址,逻辑块的数目信息,执行空间回收,回收步骤如下:
根据请求所携带的逻辑块起始地址,逻辑块的数目信息;从已分配RbTree中查找已分配存储块,如果查找到的存储块为整块空间,则将整个存储块空间存储到空闲RbTree中,供下次分配时重新利用;如果查找到的存储块不是整个空间,则将匹配部分进行空间回收,将回收的空间存储到空闲RbTree中,根据存储块合并条件执行合并操作,对于不能匹配的存储块空间,继续保存在已存储池分配RbTree中,并根据存储块合并条件执行合并操作。
精简存储池模块根据通用块设备层转发的DISCARD请求所指定的逻辑块起始地址、逻辑块的数目信息,回收存储池已经分配的存储块;通过跟踪存储池中存储块块的使用情况,判断是否对整个存储块进行空间回收,对于已经回收的部分存储块空间,整个存储块不能被其它文件系统重新使用,只有整个存储块空间被回收,才能被其它文件系统重新使用。
本发明的有益效果是:经过上面的分析,本发明中的存储池空间分配以及回收算法,通过软件方式来回收空间,与硬件方式相比价格便宜,适合对于购买存储设备经费不足的情况;相比整个存储块进行空间回收的方式,本发明描述的算法对存储块回收效率比较高,本发明中描述的存储池与自动精简存储池在概念上是等价的,采用本发明性价比高,存储池中空间回收效率高,采用独立模块方式进行安装,易于使用。
附图说明
附图1 存储池空间分配流程图;
附图2 存储池空间回收流程图。
具体实施方式
参照说明书附图对本发明的作以下详细地说明。
本发明的一种提升自动精简配置容量回收效率的方法,是通过扩展自动精简存储池的容量分配以及回收算法来提高回收效率;该系统包括:文件系统模块;通用块设备模块; ISCSI协议实例模块;自动精简存储池模块。
文件系统层模块:文件系统调用通用块设备模块提供的接口触发DISCARD请求;该请求携带的主要信息逻辑块起始地址,逻辑块的数目,标记请求类型为DISCARD。
通用块设备层模块:定义REQ_DISCARD,并提供回调函数供文件系统层以及ISCSI,实例调用;通过本模块,将DISCARD请求转发给精简存储池模块、ISCSI协议实例。
ISCSI协议实例模块:iSCSI-initiator将收到来自通用块设备的DISCARD请求传递给iSCSI-target;iSCSI-target调用块设备层提供的回调函数将iSCSI-initiator发送的DISCARD请求转发给自动精简存储池模块。
自动精简存储池模块:负责接收处理DISCARD请求,进行空间的回收操作;同时也会对文件系统写请求进行空间的分配。
具体步骤如下:
(1) 自动精简存储池模块收到写请求
1)首先从存储池的已分配RbTree中查找是否已经分配了空间,如果没有分配,则从存储池空闲RbTree中提取一整块存储块,计算写请求所占用的存储块空间;如果写请求所占用空间为一整块存储块大小,则将分配的存储块保存到已分配RbTree数据结构中;如果写请求未占满新分配的一整块存储块空间,则将空闲部分重新保存到空闲RbTree中;
2) 首先从存储池的已分配RbTree数据结构中查找是否已经分配了空间,如果已经分配空间,则查看写请求所占用空间的大小,如果已经分配空间大小满足本次写请求大小,则不再进行空间分配;如果已经分配的空间大小不能满足本次写请求,则从空闲RbTree数据结构中提取空闲空间,如果提取的空间满足本次写请求,则将所占用的存储块保存到已分配RbTree数据结构中,并判断本次写请求与之前写请求的存储块地址空间是否连续,如果连续,则将两次写请求合并,形成一个新的请求保存到已分配RbTree数据结构中,否则不进行合并;如果提取的空间不能完全满足本次写请求,则使用空闲RbTree中的部分存储块空闲空间,对于所占用的部分空闲空间与之前的写请求根据合并条件执行合并操作,对于不能满足本次写请求的部分空间,走4.1.1流程;
(2) 自动精简存储池模块收到DISCARD请求:
自动精简存储池模块根据DISCARD请求所携带的逻辑块起始地址,逻辑块的数目信息,执行空间回收;
1)根据请求所携带的逻辑块起始地址,逻辑块的数目信息;从已分配RbTree中查
找已分配存储块,如果查找到的存储块为整块空间,则将整个存储块空间存储到空闲RbTree中,供下次分配时重新利用;如果查找到的存储块不是整个空间,则将匹配部分进行空间回收,将回收的空间存储到空闲RbTree中,根据存储块合并条件执行合并操作,对于不能匹配的存储块空间,继续保存在已存储池分配RbTree中,并根据存储块合并条件执行合并操作。
本发明所描述存储池存储块分配以及回收算法运行在精简存储池模块内部;本发明的软件包可以按照如下物理方式部署:
方式一:部署在客户端主机的模块包括:文件系统模块、通用块设备模块、iSCSI实例(iSCSI-initiator);部署在存储服务端的模块包括:iSCSI实例(iSCSI-target)、通用块设备模块、自动精简存储池模块。
方式二:在不需要ISCSI协议实例模块的情况下,文件系统模块;通用块设备模块和自动精简存储池模块三个模块部署在一台主机上。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。
Claims (2)
1.一种提升自动精简配置容量回收效率的方法, 其特征在于通过扩展自动精简存储池的容量分配以及回收算法来提高回收效率;该系统包括:文件系统模块;通用块设备模块; ISCSI协议实例模块;自动精简存储池模块;其中:
文件系统层模块:文件系统调用通用块设备模块提供的接口触发DISCARD请求;该请求携带的主要信息逻辑块起始地址,逻辑块的数目,标记请求类型为DISCARD;
通用块设备层模块:定义REQ_DISCARD,并提供回调函数供文件系统层以及ISCSI实例调用;通过该模块,将DISCARD请求转发给精简存储池模块、ISCSI协议实例;
ISCSI协议实例模块:iSCSI-initiator将收到来自通用块设备的DISCARD请求传递给iSCSI-target;iSCSI-target调用块设备层提供的回调函数将iSCSI-initiator发送的DISCARD请求转发给自动精简存储池模块;
自动精简存储池模块:负责接收处理DISCARD请求,进行空间的回收操作;同时也会对文件系统写请求进行空间的分配;
具体步骤如下:
(1) 自动精简存储池模块收到写请求
1)首先从存储池的已分配RbTree中查找是否已经分配了空间,如果没有分配,则从存储池空闲RbTree中提取一整块存储块,计算写请求所占用的存储块空间;如果写请求所占用空间为一整块存储块大小,则将分配的存储块保存到已分配RbTree数据结构中;如果写请求未占满新分配的一整块存储块空间,则将空闲部分重新保存到空闲RbTree中;
2)从存储池的已分配RbTree数据结构中查找是否已经分配了空间,如果已经分配空间,则查看写请求所占用空间的大小,如果已经分配空间大小满足本次写请求大小,则不再进行空间分配;如果已经分配的空间大小不能满足本次写请求,则从空闲RbTree数据结构中提取空闲空间,如果提取的空间满足本次写请求,则将所占用的存储块保存到已分配RbTree数据结构中,并判断本次写请求与之前写请求的存储块地址空间是否连续,如果连续,则将两次写请求合并,形成一个新的请求保存到已分配RbTree数据结构中,否则不进行合并;如果提取的空间不能完全满足本次写请求,则使用空闲RbTree中的部分存储块空闲空间,对于所占用的部分空闲空间与之前的写请求根据合并条件执行合并操作,对于不能满足本次写请求的部分空间,走步骤1)流程;
(2) 自动精简存储池模块收到DISCARD请求:
自动精简存储池模块根据DISCARD请求所携带的逻辑块起始地址,逻辑块的数目信息,执行空间回收,回收步骤如下:
根据请求所携带的逻辑块起始地址,逻辑块的数目信息;从已分配RbTree中查找已分配存储块,如果查找到的存储块为整块空间,则将整个存储块空间存储到空闲RbTree中,供下次分配时重新利用;如果查找到的存储块不是整个空间,则将匹配部分进行空间回收,将回收的空间存储到空闲RbTree中,根据存储块合并条件执行合并操作,对于不能匹配的存储块空间,继续保存在已存储池分配RbTree中,并根据存储块合并条件执行合并操作。
2.根据权利1中所述的方法,其特征在于,精简存储池模块根据通用块设备层转发的DISCARD请求所指定的逻辑块起始地址、逻辑块的数目信息,回收存储池已经分配的存储块;通过跟踪存储池中存储块块的使用情况,判断是否对整个存储块进行空间回收,对于已经回收的部分存储块空间,整个存储块不能被其它文件系统重新使用,只有整个存储块空间被回收,才能被其它文件系统重新使用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210453143.9A CN102981967B (zh) | 2012-11-13 | 一种提升自动精简配置容量回收效率的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210453143.9A CN102981967B (zh) | 2012-11-13 | 一种提升自动精简配置容量回收效率的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102981967A true CN102981967A (zh) | 2013-03-20 |
CN102981967B CN102981967B (zh) | 2016-11-30 |
Family
ID=
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104317742A (zh) * | 2014-11-17 | 2015-01-28 | 浪潮电子信息产业股份有限公司 | 一种优化空间管理的自动精简配置方法 |
CN109408231A (zh) * | 2018-10-11 | 2019-03-01 | 北京中电华大电子设计有限责任公司 | 一种有效管理多应用卡存储空间的方法 |
TWI662476B (zh) * | 2017-03-31 | 2019-06-11 | 日商阿自倍爾股份有限公司 | 時間序列資料記錄方法及裝置 |
CN110532198A (zh) * | 2019-09-09 | 2019-12-03 | 成都西山居互动娱乐科技有限公司 | 一种存储空间分配的方法及装置 |
CN114063907A (zh) * | 2021-10-20 | 2022-02-18 | 郑州云海信息技术有限公司 | 一种存储空间分配方法、系统、存储介质及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080168209A1 (en) * | 2007-01-09 | 2008-07-10 | Ibm Corporation | Data protection via software configuration of multiple disk drives |
US20100191908A1 (en) * | 2009-01-23 | 2010-07-29 | Hitachi, Ltd. | Computer system and storage pool management method |
CN101976223A (zh) * | 2010-10-09 | 2011-02-16 | 成都市华为赛门铁克科技有限公司 | 自动精简配置方法和装置 |
CN102591789A (zh) * | 2011-12-26 | 2012-07-18 | 成都市华为赛门铁克科技有限公司 | 存储空间回收方法及装置 |
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080168209A1 (en) * | 2007-01-09 | 2008-07-10 | Ibm Corporation | Data protection via software configuration of multiple disk drives |
US20100191908A1 (en) * | 2009-01-23 | 2010-07-29 | Hitachi, Ltd. | Computer system and storage pool management method |
CN101976223A (zh) * | 2010-10-09 | 2011-02-16 | 成都市华为赛门铁克科技有限公司 | 自动精简配置方法和装置 |
CN102591789A (zh) * | 2011-12-26 | 2012-07-18 | 成都市华为赛门铁克科技有限公司 | 存储空间回收方法及装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104317742A (zh) * | 2014-11-17 | 2015-01-28 | 浪潮电子信息产业股份有限公司 | 一种优化空间管理的自动精简配置方法 |
CN104317742B (zh) * | 2014-11-17 | 2017-05-03 | 浪潮电子信息产业股份有限公司 | 一种优化空间管理的自动精简配置方法 |
TWI662476B (zh) * | 2017-03-31 | 2019-06-11 | 日商阿自倍爾股份有限公司 | 時間序列資料記錄方法及裝置 |
CN109408231A (zh) * | 2018-10-11 | 2019-03-01 | 北京中电华大电子设计有限责任公司 | 一种有效管理多应用卡存储空间的方法 |
CN110532198A (zh) * | 2019-09-09 | 2019-12-03 | 成都西山居互动娱乐科技有限公司 | 一种存储空间分配的方法及装置 |
CN110532198B (zh) * | 2019-09-09 | 2023-08-08 | 成都西山居互动娱乐科技有限公司 | 一种存储空间分配的方法及装置 |
CN114063907A (zh) * | 2021-10-20 | 2022-02-18 | 郑州云海信息技术有限公司 | 一种存储空间分配方法、系统、存储介质及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102307206B (zh) | 基于云存储的快速访问虚拟机镜像的缓存系统的缓存方法 | |
CN102236603B (zh) | 虚拟化环境中垃圾回收的方法和系统 | |
CN108132842B (zh) | 一种嵌入式软件内存管理系统 | |
US11042477B2 (en) | Memory management using segregated free lists | |
CN102799471B (zh) | 操作系统的进程回收方法及系统 | |
CN102262591B (zh) | 用于内存复制系统进行垃圾回收的方法和系统 | |
CN103365726B (zh) | 一种面向gpu集群的资源管理方法和系统 | |
CN103067425A (zh) | 虚拟机创建方法、虚拟机管理系统及相关设备 | |
WO2014127684A1 (zh) | 内存回收方法及装置 | |
CN103793278A (zh) | 一种基于虚拟器件运维规则的资源自动调整方法 | |
CN102520887A (zh) | 一种应用于云计算的存储空间配置与管理方法 | |
CN101984417A (zh) | 内存管理方法及装置 | |
CN103888501A (zh) | 虚拟机迁移方法和装置 | |
CN104572845A (zh) | 文件分发方法、装置、设备及系统 | |
CN102137167B (zh) | 不间断运行的虚拟机迁移方法及装置 | |
CN105718319A (zh) | 一种内存池版图解析方法和内存池装置 | |
CN111459403B (zh) | 一种存储硬件管理方法及装置 | |
CN109165175A (zh) | 设备标识生成方法和装置 | |
CN105224418A (zh) | 一种数据备份方法和装置 | |
CN103116475A (zh) | 一种自动精简配置扩容的方法 | |
WO2017028689A1 (zh) | 一种网络平台下资源内容回收的方法和装置 | |
CN102650959A (zh) | 一种检测内存单元的方法及设备 | |
CN109189739A (zh) | 缓存空间回收方法和装置 | |
CN113065034A (zh) | 一种分布式系统编号生成方法和系统 | |
CN102497410B (zh) | 一种云计算系统计算资源动态分区的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |