一种基于日志方式的存储空间管理方法和装置制造方法及图纸

技术编号:10905428 阅读:75 留言:0更新日期:2015-01-14 14:37
本发明专利技术提供一种基于日志方式的存储空间管理方法,该方法应用于存储设备,该方法包括:在申请存储空间或释放存储空间的时候,在预设大小的第二映射区域SMR中记录对应的申请或者释放日志,该申请或者释放日志记录申请或者释放存储空间的起始位置以及大小信息;按照一定的策略,顺序对所述申请或释放日志,以及上一次的合并日志执行存储空间合并的操作,并在所述SMR中记录本次产生的合并日志,所述合并日志记录了空闲的存储空间的起始位置以及大小。本发明专利技术的技术方案解决了现有存储空间管理中大量随机存储空间释放导致的设备性能降低的问题,并且对存储设备的内存容量要求不高。

【技术实现步骤摘要】
一种基于日志方式的存储空间管理方法和装置
本专利技术涉及存储
,尤其涉及一种基于日志方式的存储空间管理方法和装置。
技术介绍
无论是基于文件系统还是基于其它块设备的应用,都有两个基本的要求:1、记录数据存储在块设备的哪些块上;2、块设备的哪些块是空闲状态。从原则上来说,可以不用记录块设备的哪些块是空闲的,而只记录数据存储在哪些块上即可。因为块的状态只有两种:使用状态或者空闲状态。所以,可以通过已使用的块来推算出哪些块是空闲的。但是,这又意味着需要遍历所有已使用的块。为了使申请空闲块的效率更高,绝大多数块设备都会记录哪些块是空闲的。目前记录块是空闲状态还是已使用状态主要有两种方法,一是bitmap的方式,一是b-tree的方式。当然,最常用的还是bitmap的方式。bitmap是用一段连续空间的第N个比特位来表述块设备的第N个块是空闲的还是被占用的。相对而言,bitmap的资源消耗比较小,对于4KB的块大小,其资源消耗仅为1/(4096*8)=0.003%(其8代表一个字节8个比特位)。对于1GB大小的文件系统而言,bitmap所需要的空间大小为32KB;而对于1TB大小的文件系统而言,则需要的空间大小为2MB。这个大小对于系统的内存来说,还是可以接受的,但是从查找效率的角度来说,相对就比较低了。而如果对于1PB的文件系统而言,bitmap需要的大小则变为32GB,这个大小对于大多数设备的内存来说都是不可以接受的。这就意味着每次需要获取块状态时,都需要从磁盘读取,这将严重影响文件系统的性能。针对上述问题,一个比较容易想到的方法是:将bitmap分为多个小的bitmap,再用bitmap来映射划分后的小的bitmap,请参图1所示。这样就可以通过最顶层的bitmap来找出哪些小的bitmap是有空闲块的;如果小的bitmap不在内存中,则将小的bitmap从磁盘中读取出来。但是,这样仍会存在如下问题:不论是申请还是释放块资源,bitmap都需要更新。对于申请块资源的操作,可以对bitmap的更新进行控制,但是对于释放块资源的操作则很难进行控制,因为释放操作是上层应用触发的。频繁进行块资源的释放,就意味着频繁更新bitmap,就意味着有很多的读写IO。更甚,若bitmap的更新涉及到很多小的bitmap,即bitmap的更新具有很大的随机性时,系统将不堪重负。B-tree则是采用extent(一段连续的存储空间)的方式来管理连续的块(block)。Extent的方式采用偏移加长度的方法来管理空闲的块空间。但是b-tree与bitmap存在上述同样的问题。
技术实现思路
有鉴于此,本专利技术提供一种基于日志方式的存储空间管理方法。该方法应用于存储设备,包括:在申请存储空间或释放存储空间的时候,在预设大小的第二映射区域SMR中记录对应的申请或者释放日志,该申请或者释放日志记录申请或者释放存储空间的起始位置以及大小信息;按照一定的策略,顺序对所述申请或释放日志,以及上一次的合并日志执行存储空间合并的操作,并在所述SMR中记录本次产生的合并日志,所述合并日志记录了空闲的存储空间的起始位置以及大小。优选地,日志在SMR中的记录采用循环覆盖的方式进行;所述按照一定的策略,顺序对所述申请或释放日志,以及上一次的合并日志执行存储空间合并的操作包括:当上一次合并产生的合并日志以及当前未被合并的申请或释放日志总数量占SMR内容区域日志总容纳量的比值达到预设阈值时,顺序对所述申请或释放日志,以及上一次的合并日志执行存储空间合并的操作;或者,在申请存储空间且没有满足该申请所需大小的存储空间时,顺序对所述申请或释放日志,以及上一次的合并日志执行存储空间合并的操作。优选地,顺序对所述申请或释放日志,以及上一次的合并日志执行存储空间合并的操作包括:顺序针对当前每条未被合并的申请或释放日志,按照日志中记录的起始位置和大小,判断是否可以和红黑树中当前的节点进行合并,如果可以则进行合并;合并后将新生成的节点插入到红黑树中,并删除被合并的节点;该新生成的节点的内容为:本次合并后空闲存储空间的起始位置和大小。优选地,所述SMR中记录的日志包括:表示是释放空间操作还是申请空间操作的信息;表示是真实申请释放操作的日志还是合并操作的日志的信息;日志的编号Cur_journal_id,该编号随着日志的增加依次增加;所述顺序对所述申请或释放日志,以及上一次的合并日志执行存储空间合并的操作为按照日志编号递增的顺序依次执行所述合并的操作。优选地,磁盘存储空间被划分为若干个区域region,每个region包括数据区域DR和映射区域MR;其中MR包括主映射区域PMR和第二映射区域SMR;PMR包括头部区域和记录了属于该PMR管理的各SMR的位置以及下一个PMR位置的内容区域;SMR包括头部区域和记录所述日志的内容区域。优选地,存储设备启动工作后,将从磁盘中读取PMR信息、SMR信息到内存中,并基于内存中的PMR信息和SMR信息进行存储空间的管理。优选地,若从磁盘中读取到内存中的SMR内容区域中的编号最大的日志是合并日志,在需要进一步进行合并操作时,需要重新将所述合并日志之前的上一次合并日志、上一次合并日志之后的申请日志、释放日志重新进行一次合并操作。优选地,在申请存储空间时,如果SMR管理的DR中存在若干个满足申请条件的连续可用的空间,则选择逻辑块地址lba小的所述可用空间。相较于现有技术,本专利技术的技术方案解决了现有存储空间管理中大量随机存储空间释放导致的设备性能降低的问题,并且对存储设备的内存容量要求不高。附图说明图1是一种多层bitmap映射示意图。图2是本专利技术实施例流程图。图3是本专利技术实施例存储空间的划分结构图。图4是本专利技术实施例日志内容图。图5是本专利技术实施例日志合并示例图。图6(a)~图6(b)是本专利技术实施例另一日志合并示例图。具体实施方式针对
技术介绍
中提到的技术问题,本专利技术主要提供一种基于日志方式进行存储空间管理的技术方案。该技术方案解决了现有存储空间管理中大量随机存储空间释放导致的设备性能降低的问题。以下通过具体实施例详细说明。请参图2所示的本专利技术实施例流程图。S21、在申请存储空间或释放存储空间的时候,在预设大小的第二映射区域SMR中记录对应的申请或者释放日志,该申请或者释放日志记录申请或者释放存储空间的起始位置以及大小信息。S22、按照一定的策略,顺序对所述申请或释放日志,以及上一次的合并日志执行存储空间合并的操作,并在所述SMR中记录本次产生的合并日志,所述合并日志记录了空闲的存储空间的起始位置以及大小。上述方法在进行存储空间申请或释放的时候,仅是记录对应的申请或释放操作日志;当满足一定的条件之后,再对上述申请或释放日志进行合并操作(合并操作的本质是:统计出存储空间中哪些空间已被释放,将连续已被释放的空间,即extent,进行合并,并且将该合并操作结果作为合并日志追加到SMR区域中作为一新的日志进行记录)。这样就避免了频繁的进行存储空间的管理,提升了存储设备的性能。另,该合并日志记录了空闲存储空间的起始位置和大小,新的存储空间的申请操作可以根据该起始位置和大小判断是否满足申请需求,如果满足,则直接申请该存储空间。请进一步参图3,作为一个本文档来自技高网
...
一种基于日志方式的存储空间管理方法和装置

【技术保护点】
一种基于日志方式的存储空间管理方法,该方法应用于存储设备,其特征在于,该方法包括:在申请存储空间或释放存储空间的时候,在预设大小的第二映射区域SMR中记录对应的申请或者释放日志,该申请或者释放日志记录申请或者释放存储空间的起始位置以及大小信息;按照一定的策略,顺序对所述申请或释放日志,以及上一次的合并日志执行存储空间合并的操作,并在所述SMR中记录本次产生的合并日志,所述合并日志记录了空闲的存储空间的起始位置以及大小。

【技术特征摘要】
1.一种基于日志方式的存储空间管理方法,该方法应用于存储设备,其特征在于,该方法包括:在申请存储空间或释放存储空间的时候,在预设大小的第二映射区域SMR中记录对应的申请或者释放日志,该申请或者释放日志记录申请或者释放存储空间的起始位置以及大小信息,存储设备的存储空间被划分为若干个区域region,每个region包括数据区域DR和映射区域MR;其中MR包括主映射区域PMR和所述第二映射区域SMR;当上一次合并产生的合并日志以及当前未被合并的申请或释放日志总数量占SMR内容区域日志总容纳量的比值达到预设阈值时,或者在申请存储空间且没有满足该申请所需大小的存储空间时,顺序对所述申请或释放日志,以及上一次的合并日志执行存储空间合并的操作,并在所述SMR中记录本次产生的合并日志,所述合并日志记录了空闲的存储空间的起始位置以及大小。2.如权利要求1所述的方法,其特征在于,日志在SMR中的记录采用循环覆盖的方式进行。3.如权利要求1所述的方法,其特征在于,顺序对所述申请或释放日志,以及上一次的合并日志执行存储空间合并的操作包括:顺序针对当前每条未被合并的申请或释放日志,按照日志中记录的起始位置和大小,判断是否可以和红黑树中当前的节点进行合并,如果可以则进行合并;合并后将新生成的节点插入到红黑树中,并删除被合并的节点;该新生成的节点的内容...

【专利技术属性】
技术研发人员:蔡和
申请(专利权)人:浙江宇视科技有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1