硬盘数据管理方法和硬盘控制装置制造方法及图纸

技术编号:14826276 阅读:91 留言:0更新日期:2017-03-16 13:40
本发明专利技术实施例公开了种硬盘数据管理方法和硬盘控制装置,用于高效管理硬盘上的碎片。本发明专利技术实施例应用于包括硬盘的硬盘控制装置,该硬盘包括数据区和日志区,方法包括:向缓存器件写入数据;判断数据是否是热点数据,其中热点数据为存储在硬盘上后在预设次数的修改和释放后能使硬盘产生预设数量碎片的数据;若数据不是热点数据,则为数据在数据区分配数据区空间,将数据写入数据区空间;若数据是热点数据,则为数据在日志区分配日志区空间,将数据写入日志区空间。通过在硬盘上将不同类型的数据保存在不同的区域以不同的方式进行管理,可提高硬盘上的碎片管理效率,日志区对硬盘碎片的高效管理,可减少硬盘碎片的产生。

【技术实现步骤摘要】

本专利技术涉及数据处理领域,尤其涉及一种磁盘数据管理方法和磁盘控制装置。
技术介绍
对于普通的机械硬盘,因为其依赖机械转动磁盘和移动磁头定位读写位置,所以硬盘顺序读写是最理想的读写模型。如果磁盘空间碎片化,那么写数据的时候,无法分配到连续的空间,导致磁头抖动严重,数据传输的主要时间消耗在定位磁道和扇区上,从而留给传输数据的时间很少。因为文件的数据比较离散,那么读取的这些文件的时候,效率也较低。因此,大多数磁盘文件系统都在尽力避免产生大量的碎片空间,但是碎片化仍然无法避免。如,采用COW机制可以利用磁盘顺序写的优势。当要修改写一块数据的时候,不是直接覆盖老版本的数据,而是读取老版本的数据,修改好之后,写到一个新的位置,将写数据的数据都聚合起来,顺序写到磁盘上,释放老版本的数据。因为数据的位置变化了,需要将指向数据的上一层索引块中的指针进行修改,如此递归到最顶层。这样就会释放大量的数据,导致磁盘上产生大量的碎片。
技术实现思路
本专利技术实施例提供了一种磁盘数据管理方法和磁盘控制装置,用于高效管理磁盘上的碎片。本专利技术第一方面提供一种磁盘数据管理方法,该方法应用于包括磁盘的磁盘控制装置,磁盘包括数据区和日志区,该方法包括:磁盘控制装置向缓存器件写入数据,该缓存器件例如可以是内存、flash卡、固态硬盘等与磁盘不同的存储器件,然后,磁盘控制装置判断该数据是否是热点数据,其中热点数据为存储在磁盘上后在预设次数的修改和释放后能使磁盘产生预设数量碎片的数据。通过在缓存器件上对写入的数据进行判断,确定该数据的类型,以对不同的数据执行不同的处理方式。在向磁盘写入数据时,若该数据不是热点数据,则为数据在数据区分配数据区空间,将数据写入数据区空间;若该数据是热点数据,则为数据在日志区分配日志区空间,将数据写入日志区空间。本专利技术第一方面的磁盘数据管理方法,将待写入磁盘的数据分为热点数据和非热点数据,热点数据易于导致磁盘产生碎片,将热点数保存在日志区上,以日志方式进行管理,即使日志区上的数据频繁修改产生磁盘碎片,也方便对这些碎片进行回收等管理,而将非热点数据保存在数据区,非热点数据的释放不易导致磁盘产生碎片,数据区可以无需为磁盘碎片管理分配过多资源,从而,通过在磁盘上将不同类型的数据保存在不同的区域以不同的方式进行管理,可提高磁盘上的碎片管理效率,有效对磁盘上的碎片进行管理,规避或减少磁盘碎片产生。结合第一方面,在第一种可能的实现方式中,缓存器件为内存,为该数据在日志区分配日志区空间之后,第一种可能的实现方式还包括:建立该数据和日志区空间的映射关系。即磁盘控制装置为该数据在日志区分配日志区空间后,在缓存器件上建立一映射关系,为该数据和其分配到的日志区空间的对应关系,通过该映射关系记录数据在日志区的存储情况,从而可使用该映射关系对日志区的数据和缓存器件上的数据淘汰操作进行管理。其中,在第一种可能的实现方式中,缓存器件为内存,但缓存器件还可以是其它的情形。结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中建立数据和日志区空间的映射关系,包括:建立多个目标数据和多个目标数据分配到的日志区空间的映射关系,其中目标数据属于热点数据;将数据写入日志区空间,包括:将多个目标数据的多个写操作组合为一个事务;将事务的所有目标数据写入日志区空间。而当事务的其中一个目标数据的写操作执行失败时,事务的其他目标数据执行的写操作失败。多个目标数据指至少两个目标数据,相应的,多个写操作指至少两个写操作。这样,引入数据库领域事务的概念,以多个热点数据为单位对进行操作,如以多个属于同一事务的热点数据建立映射关系,和以事务的所有热点数据的写操作一起执行向日志区的写操作。这样能提高数据处理的效率。结合第一方面的第二种可能的实现方式,第三种可能的实现方式还包括:在内存上缓存属于热点数据的数据。将热点数据缓存在内存上,例如,在将热点数据写入日志区时,还将这些数据保留在内存上或者,在向内存写入数据前从日志区读取其上的热点数据,并缓存在内存上,这样,后续向内容写入数据时,可直接在内存上对数据进行修改,数据在内存中迁移,减少了磁盘上碎片的产生,并可根据迁移情况对日志区的数据进行整理。结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中将事务的所有目标数据写入日志区空间之前,第四种可能的实现方式还包括:根据多个目标数据建立数据链表,其中,数据链表用于管理目标数据,数据链表管理的目标数据与事务的目标数据相同;然后,根据数据链表对目标数据进行管理,而,根据数据链表对目标数据进行管理,包括:建立第二数据链表后,当第二数据链表管理的第二目标数据是由预先建立的第一数据链表管理的第一目标数据修改得到时,在第一数据链表上解除对第一目标数据的管理;在与第一数据链表对应的第一映射关系上删除第一目标数据的信息。这样,在内存上,通过数据链表即可管理不同事务间数据的迁移。根据数据链表对内存上的数据进行管理的方式可以为:在预设释放条件下,根据数据链表从先到后的建立顺序,查找数据链表未解除管理的数据;在内存上释放目标数据链表未解除管理的数据,且在内存上保留目标数据链表对应的目标映射关系。通过释放目标数据链表上的数据可扩大内存管理数据的容量。系统通过目标映射关系的查询,即可从日志区上读取到对应的数据。结合第一方面的第四种可能的实现方式,在第六种可能的实现方式中在预设释放条件下,根据数据链表从先到后的建立顺序,查找数据链表未解除管理的数据,包括:当内存达到第一预设水位时,根据数据链表从先到后的建立顺序,查找数据链表未解除管理的数据;另外,该方法还包括第二阶段的内存数据淘汰,即在内存上释放目标数据链表未解除管理的数据之后,该方法还包括:在内存达到第二预设水位时,从日志区读取目标映射关系指向的数据;将目标映射关系指向的数据写入数据区;在内存上删除目标映射关系。通过两阶段的内存数据淘汰机制可扩大内存对数据的管理容量,而在第二阶段的内存数据淘汰中,此时目标映射关系指向的数据为不活跃的数据,被修改的可能性较低,可将这些数据从日志区迁移到数据区保存,这不会过多增加数据区的碎片。结合第一方面的第四种可能的实现方式,在第六种可能的实现方式该方法还包括:根据事务的写入顺序为事务对应的数据链表按照递增规则分配事务号。通过为数据链表分配事务号,即可根据事务号来对数据链表进行管理,提高了管理效率。如,从当前事务号最小的数据链表开始,根据事务号由小到大的顺序查找数据链表未解除管理的数据,这样即可实现根据数据链表从先到后的建立顺序,查找数据链表未解除管理的数据。结合第一方面的第四种可能的实现方式,在第七种可能的实现方式中该方法还包括:在预设回收条件下,执行日志区数据搬迁的步骤。例如执行日志区数据搬迁的步骤,包括:查找映射关系;根据映射关系记录的信息判断与映射关系对应的第一日志区上的数据是否迁移完;若第一日志区上的数据未迁移完,则根据映射关系记录的信息,确定第一日志区上的空间利用率;当第一日志区的空间利用率小于预设利用率阀值时,将第一日志区的数据迁移至第二日志区,并更新与被搬迁的数据对应的映射关系,其中第二日志区为空闲的日志区或在回收日志区时使用过的日志区;当当前日志区总的空间水位达到预设空间阀值时,则停止执行日志本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/201610912077.html" title="硬盘数据管理方法和硬盘控制装置原文来自X技术">硬盘数据管理方法和硬盘控制装置</a>

【技术保护点】
一种磁盘数据管理方法,其特征在于,所述方法应用于包括磁盘的磁盘控制装置,所述磁盘包括数据区和日志区,所述方法包括:向缓存器件写入数据;判断所述数据是否是热点数据,其中所述热点数据为存储在所述磁盘上后在预设次数的修改和释放后能使所述磁盘产生预设数量碎片的数据;若所述数据不是热点数据,则为所述数据在所述数据区分配数据区空间,将所述数据写入所述数据区空间;若所述数据是热点数据,则为所述数据在所述日志区分配日志区空间,将所述数据写入所述日志区空间。

【技术特征摘要】
1.一种磁盘数据管理方法,其特征在于,所述方法应用于包括磁盘的磁盘控制装置,所述磁盘包括数据区和日志区,所述方法包括:向缓存器件写入数据;判断所述数据是否是热点数据,其中所述热点数据为存储在所述磁盘上后在预设次数的修改和释放后能使所述磁盘产生预设数量碎片的数据;若所述数据不是热点数据,则为所述数据在所述数据区分配数据区空间,将所述数据写入所述数据区空间;若所述数据是热点数据,则为所述数据在所述日志区分配日志区空间,将所述数据写入所述日志区空间。2.根据权利要求1所述的方法,其特征在于,所述缓存器件为内存,所述为所述数据在所述日志区分配日志区空间之后,所述方法还包括:建立所述数据和所述日志区空间的映射关系。3.根据权利要求2所述的方法,其特征在于,所述建立所述数据和所述日志区空间的映射关系,包括:建立多个目标数据和所述多个目标数据分配到的日志区空间的映射关系,其中所述目标数据属于热点数据;所述将所述数据写入所述日志区空间,包括:将所述多个目标数据的多个写操作组合为一个事务;将所述事务的所有目标数据写入日志区空间,当所述事务的其中一个目标数据的写操作执行失败时,所述事务的其他目标数据执行的写操作失败。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:在所述内存上缓存属于所述热点数据的数据。5.根据权利要求4所述的方法,其特征在于,所述将所述事务的所有目标数据写入日志区空间之前,所述方法还包括:根据所述多个目标数据建立数据链表,其中,所述数据链表用于管理所述目标数据,所述数据链表管理的目标数据与所述事务的目标数据相同;根据所述数据链表对所述目标数据进行管理;在预设释放条件下,根据所述数据链表从先到后的建立顺序,查找所述数据链表未解除管理的数据;在所述内存上释放目标数据链表未解除管理的数据,且在所述内存上保留所述目标数据链表对应的目标映射关系;其中,所述根据所述数据链表对所述目标数据进行管理,包括:建立第二数据链表后,当所述第二数据链表管理的第二目标数据是由预先建立的第一数据链表管理的第一目标数据修改得到时,在所述第一数据链表上解除对所述第一目标数据的管理;在与所述第一数据链表对应的第一映射关系上删除所述第一目标数据的信息。6.根据权利要求5所述的方法,其特征在于,所述在预设释放条件下,根据所述数据链表从先到后的建立顺序,查找所述数据链表未解除管理的数据,包括:当所述内存达到第一预设水位时,根据所述数据链表从先到后的建立顺序,查找所述数据链表未解除管理的数据;所述在所述内存上释放目标数据链表未解除管理的数据之后,所述方法还包括:在所述内存达到第二预设水位时,从所述日志区读取所述目标映射关系指向的数据;将所述目标映射关系指向的数据写入所述数据区;在所述内存上删除所述目标映射关系。7.根据权利要求5所述的方法,其特征在于,所述方法还包括:在预设回收条件下,执行日志区数据搬迁的步骤;所述执行日志区数据搬迁的步骤,包括:查找所述映射关系;根据映射关系记录的信息判断与所述映射关系对应的第一日志区上的数据是否迁移完;若所述第一日志区上的数据未迁移完,则根据所述映射关系记录的信息,确定第一日志区上的空间利用率;当所述第一日志区的空间利用率小于预设利用率阀值时,将所述第一日志区的数据迁移至第二日志区,并更新与所述被搬迁的数据对应的映射关系,其中所述第二日志区为空闲的日志区或在回收日志区时使用过的日志区;当当前日志区总的空间水位达到预设空间阀值时,则停止执行日志区数据搬迁的步骤,否则继续执行日志区数据搬迁的步骤。8.根据权利要求7所述的方法,其特征在于,所述方法还包括:根据所述事务的写入顺序为所述事务对应的数据链表按照递增规则分配事务号;在所述执行日志区数据搬迁的步骤中,所述查找所述映射关系,包括:从当前事务号最小的数据链表开始,根据所述事务号由小到大的顺序查找与所述数据链表对应的映射关系。9.根据权利要求4所述的方法,其特征在于,所述在所述内存上缓存属于所述热点数据的数据,包括:所述判断所述数据是否是热点数据之后,若所述数据是热点数据,则在所述内存上保留所述数据;或者,所述向缓存器件写入数据之前,从所述日志区读取数据到所述缓存器件缓存。10.根据权利要求1至9任一项所述的方法,其特征在于,所述热点数据包括数据大小小于预设数据阀值的数据和/或所述热点数据包括元数据。11.根据权利要求1至9任一项所述的方法,其特征在于,所述为所述数据在所述日志区分配日志区空间,将所述数据写入所述日志区空间,包括:为所述数据在所述日志区按照顺序分配日志区空间,将所述数据顺序追加写入所述日志区空间。12.根据权利要求1至9任一项所述的方法,其特征在于,所述方法还包括:当所述数据区的空间利用率大于预设数据区利用阀值时,将当前空闲的日志区转化为数据区;当所述日志区的空间利用率大于预设日志区利用阀值时,将由空闲的日志区转化成的数据区转化为日志区。13.根据权利要求2至9任一项所述的方法,其特征在于,所述方法还包括:为所述映射关系在日志区上分配日志区空间;将所述映射关系写入所述映射关系分配到的日志区空间。14.一种磁盘控制装置,其特征在于,所述磁盘控制装...

【专利技术属性】
技术研发人员:丁敬文
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

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

1