一种磁盘空间管理方法及装置的制造方法

文档序号:8942776阅读:508来源:国知局
一种磁盘空间管理方法及装置的制造方法
【技术领域】
[0001]本发明涉及磁盘空间管理技术领域,更具体地说,涉及一种磁盘空间管理方法及
目.0
【背景技术】
[0002]磁盘空间管理是一种负责存储中磁盘上chunk的分配、回收等的机制,通过磁盘空间管理,可以查询磁盘中chunk的使用情况,数据的排布情况等,通过磁盘空间管理可以很好的利用磁盘中的chunk。为了防止磁盘空间过度使用导致数据丢失或崩溃,现有的文件系统、操作系统可以支持磁盘空间的配额管理,即设定用户的磁盘空间配额,对用户的空间进行限制,用户在给定的磁盘空间配额下自由使用,系统根据用户拥有的所有文件所占用的磁盘空间来计算用户磁盘空间的使用情况,当用户使用的磁盘空间达到配额限制时,系统会提示磁盘空间已满,不允许用户再继续上传数据。但是现有技术中对磁盘的所有操作都会直接访问磁盘,频繁的访问磁盘不仅效率低下,也会影响磁盘的性能。
[0003]因此,如何减少操作中直接访问磁盘的次数,增加访问磁盘的效率,减少对磁盘的性能的影响是现在需要解决的问题。

【发明内容】

[0004]本发明的目的在于提供一种磁盘空间管理方法及装置,以实现减少操作中直接访问磁盘的次数,增加访问磁盘的效率,减少对磁盘的性能的影响。
[0005]为实现上述目的,本发明实施例提供了如下技术方案:
[0006]一种磁盘空间管理方法,包括:
[0007]接收将目标数据写入磁盘的写入指令;
[0008]根据所述写入指令,在磁盘中查找与所述写入指令相对应的目标存储空间的位置;
[0009]将所述目标存储空间中的内容数据映射到内存中;
[0010]根据所述目标数据,对所述内存中的所述内容数据进行修改;
[0011 ]将所述内存中修改后的内容数据,刷写到所述目标存储空间中。
[0012]优选的,所述接收将目标数据写入磁盘的写入指令之后,还包括:
[0013]判断所述磁盘中空闲存储空间的数量是否小于空闲存储空间的阈值;
[0014]若是,则触发回调函数,对所述磁盘进行扩容处理,和/或删除所述磁盘中的过期数据。
[0015]优选的,将所述内存中修改后的内容数据,刷写到所述目标存储空间中之后,还包括:
[0016]判断所述磁盘中空闲存储空间的数量是否小于I/O端口大小;
[0017]若是,则触发回调函数,对所述磁盘进行扩容处理,和/或删除所述磁盘中的过期数据。
[0018]优选的,根据所述写入指令,在磁盘中查找与所述写入指令相对应的目标存储空间的位置,包括:
[0019]根据所述写入指令,通过B+树在磁盘中查找与所述写入指令相对应的目标存储空间的位置。
[0020]优选的,将所述内存中修改后的内容数据,刷写到所述目标存储空间中之后,包括:
[0021]将所述目标存储空间的位图标记为I。
[0022]—种磁盘空间管理装置,包括:
[0023]接收模块,用于接收将目标数据写入磁盘的写入指令;
[0024]查找模块,用于根据所述写入指令,在磁盘中查找与所述写入指令相对应的目标存储空间的位置;
[0025]映射模块,用于将所述目标存储空间中的内容数据映射到内存中;
[0026]修改模块,用于根据所述目标数据,对所述内存中的所述内容数据进行修改;
[0027]刷写模块,用于将所述内存中修改后的内容数据,刷写到所述目标存储空间中。
[0028]优选的,还包括:
[0029]第一判断模块,用于接收将目标数据写入磁盘的写入指令之后,判断所述磁盘中空闲存储空间的数量是否小于空闲存储空间的阈值;
[0030]若是,则触发扩容模块,所述扩容模块用于对所述磁盘进行扩容处理,和/或删除所述磁盘中的过期数据。
[0031]优选的,还包括:
[0032]第二判断模块,用于将所述内存中修改后的内容数据,刷写到所述目标存储空间中之后,判断所述磁盘中空闲存储空间的数量是否小于I/O端口大小;
[0033]若是,则触发所述扩容模块。
[0034]优选的,所述查找模块包括:
[0035]根据所述写入指令,通过B+树在磁盘中查找与所述写入指令相对应的目标存储空间的位置。
[0036]优选的,所述刷写模块,包括:将所述目标存储空间的位图标记为I。
[0037]通过以上方案可知,本发明实施例提供的一种磁盘空间管理方法及装置,包括:接收将目标数据写入磁盘的写入指令;根据所述写入指令,在磁盘中查找与所述写入指令相对应的目标存储空间的位置;将所述目标存储空间中的内容数据映射到内存中;根据所述目标数据,对所述内存中的所述内容数据进行修改;将所述内存中修改后的内容数据,刷写到所述目标存储空间中,本实施例这种通过对映射到内存中的数据进行修改,再将修改后的数据刷写道对应位置的磁盘中的方式,减少了操作中直接访问磁盘的次数,增加了访问磁盘的效率,减少了对磁盘性能的影响。
【附图说明】
[0038]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0039]图1为本发明实施例公开的一种磁盘空间管理方法流程示意图;
[0040]图2为本发明实施例公开的一种磁盘chunk结构图;
[0041]图3为本发明实施例公开的一种磁盘空间管理装置示意图。
【具体实施方式】
[0042]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0043]本发明实施例公开了一种磁盘空间管理方法及装置,以实现减少操作中直接访问磁盘的次数,增加访问磁盘的效率,减少对磁盘的性能的影响。
[0044]参见图1,本发明实施例提供的一种磁盘空间管理方法,包括:
[0045]S101、接收将目标数据写入磁盘的写入指令;
[0046]具体的,若对磁盘进行读操作时,同样也是通过B+树查找到需要读取的chunk块在磁盘上的位置进行读取。
[0047]S102、根据所述写入指令,在磁盘中查找与所述写入指令相对应的目标存储空间的位置;
[0048]优选的,根据所述写入指令,在磁盘中查找与所述写入指令相对应的目标存储空间的位置,包括:
[0049]根据所述写入指令,通过B+树在磁盘中查找与所述写入指令相对应的目标存储空间的位置。
[0050]具体的,在本实施例中,通过位图及B+树对磁盘上的chunk进行组织管理,将磁盘chunk映射到内存中,当磁盘有I/O访问时,直接操作内存中的数据,减少了访问磁盘的次数,以提高磁盘chunk的访问效率
[0051]S103、将所述目标存储空间中的内容数据映射到内存中;
[0052]S104、根据所述目标数据,对所述内存中的所述内容数据进行修改;
[0053]S105、将所述内存中修改后的内容数据,刷写到所述目标存储空间中。
[0054]具体的,在对磁盘进行写操作的时候,采用的方法是将磁盘chunk(即本实施例中的存储空间)的内容拷贝到内存中,对磁盘的操作转化为对内存的操作,在对内存中的chunk块操作完成后,再将发生变化的chunk块中的数据刷写到磁盘相应的位置,以提高访问磁盘的效率。
[0055]具体的,本实施例提供的B+树结构为B-树的变型树,一棵m阶的B+树和m阶的B-树的差异在于:
[0056]1、有η棵子树的结点中含有η个关键字,每个关键字不保存数据,只用来索引,所有数据都保存在叶子节点。
[0057]2、所有的叶子结点中包含了全部关键字的信息,及指向含这些关键字记录的指针,且叶子结点本身依关键字的大小自小而大顺序链接。
[0058]3、所有的非终端结点可以看成是索引部分,结点中仅含其子树(根结点)中的最大(或最小)关键字。
[0059]参见图2为本实施例提供的一种磁盘chunk结构图,具体来说每一个chunk被分为三部分。第一部分为固定大小的node-header,第二部分
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1