磁盘碎片整理方法、装置及主机制造方法及图纸

技术编号:15107359 阅读:75 留言:0更新日期:2017-04-08 19:54
本发明专利技术实施例提供一种磁盘碎片整理方法、装置及主机,该方法,包括:根据第一空间管理对象判断第一磁盘区域的碎片化程度;若确定所述第一磁盘区域的碎片化程度达到预设碎片化程度,则根据所述第一空间管理对象将碎片整理子区域对应的每个对象的数据块均写入连续磁盘空间中,并将每个所述对象的数据块写入连续磁盘空间时所产生的元数据写入所述连续空间中;其中,所述碎片整理子区域小于等于所述第一磁盘区域;释放所述碎片整理子区域;可见,根据空间管理信息对所述碎片整理子区域进行磁盘碎片整理后可得到所述第一磁盘区域中的一段连续空闲空间,提高了磁盘碎片整理效率。

【技术实现步骤摘要】

本专利技术实施例涉及计算机技术,尤其涉及一种磁盘碎片整理方法、装置及主机
技术介绍
随着磁盘容量越来越大,文件系统使用的时间越来越长,磁盘上的碎片空间越来越多。对于机械磁盘而言,顺序读写才能充分发挥其性能,但越来越多的磁盘碎片带来越来越多的离散IO,使磁头来回跳跃,导致读写性能急剧下降。图1A为现有磁盘碎片整理方法示意图,图1B为磁盘碎片整理之前对象的物理视图,图1C为现有磁盘碎片整理之后对象的物理视图。现有技术中,通过如下方式进行磁盘碎片整理:1)判断某个源文件(即对象)包括的连续数据块个数是否达到预设阈值;2)若达到所述预设阈值,则如图1A所示为所述源文件创建临时文件,并为所述临时文件分配一段空闲的连续磁盘空间;3)将所述源文件离散的数据块读取出来并写入到所述连续磁盘空间中;4)释放所述源文件所占用的磁盘空间,并将所述临时文件命名为所述源文件名。现有技术中,在磁盘空间分配过程中,所述源文件离散的数据块之间可能存在其他文件的数据块,如图1B所示,blk1、blk7、blk9、blk11和blk13为其它文件的数据块;按照现有磁盘碎片整理方法(对单个文件的数据块进行磁盘碎片整理)得到图1C所示,可见,磁盘上的磁盘碎片仍然很多。
技术实现思路
本专利技术实施例提供一种磁盘碎片整理方法、装置及主机,提高了磁盘碎片整理效率。第一方面,本专利技术实施例提供一种磁盘碎片整理方法,包括:根据第一空间管理对象判断第一磁盘区域的碎片化程度;其中,所述第一空间管理对象用于记录为每个对象分配所述第一磁盘区域的磁盘子单元时对应的空间管理信息;所述第一磁盘区域为磁盘空间中预设大小对应的磁盘区域;每个所述空间管理信息包括:对象名、层数、块数、偏移值及空间大小值;若确定所述第一磁盘区域的碎片化程度达到预设碎片化程度,则根据所述第一空间管理对象将碎片整理子区域对应的每个对象的数据块均写入连续磁盘空间中,并将每个所述对象的数据块写入连续磁盘空间时所产生的元数据写入所述连续空间中;其中,所述碎片整理子区域小于等于所述第一磁盘区域;释放所述碎片整理子区域。结合第一方面,在第一方面的第一种可能的实现方式中,所述根据第一空间管理对象判断第一磁盘区域的碎片化程度,包括:根据所述第一空间管理对象中的每个所述空间管理信息确定所述第一磁盘区域的总碎片个数;根据所述总碎片个数和所述第一磁盘区域的总块数判断所述第一磁盘区域的碎片化程度;其中,所述第一磁盘区域的总块数为所述第一磁盘区域所包括的磁盘子单元的总数。结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述根据所述第一空间管理对象中的每个所述空间管理信息确定所述第一磁盘区域的总碎片个数,包括:将所述第一空间管理对象中的每个所述空间管理信息按照偏移值的递增顺序进行排序;根据排序后的空间管理信息中每相邻的两个空间管理信息,确定所述第一磁盘区域的总碎片个数。结合第一方面、第一方面的第一种或第二种任一种可能的实现方式,在第一方面的第三种可能的实现方式中,所述根据所述第一空间管理对象将碎片整理子区域对应的每个对象的数据块均写入连续磁盘空间中之前,还包括:根据所述第一空间管理对象确定所述碎片整理子区域;所述碎片整理子区域为:所述第一磁盘区域中的至少一个磁盘子区域。结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述根据所述第一空间管理对象确定所述碎片整理子区域,包括:根据预设区域值将所述第一磁盘区域划分为至少两个磁盘子区域,并确定每个所述磁盘子区域的碎片个数;根据每个所述磁盘子区域的碎片个数和所述第一磁盘区域的总碎片个数确定所述碎片整理子区域。结合第一方面、第一方面的第一种至第四种任一种可能的实现方式,在第一方面的第五种可能的实现方式中,所述根据所述第一空间管理对象将碎片整理子区域对应的每个对象的数据块均写入连续磁盘空间中,并将每个所述对象的数据块写入连续磁盘空间时所产生的元数据写入所述连续空间中,包括:根据所述第一空间管理对象依次将每个所述对象的数据块写入所述连续磁盘空间中,并依次将每个所述对象的数据块写入所述连续磁盘空间时所产生的元数据写入所述连续磁盘空间中。结合第一方面的第五种可能的实现方式,在第一方面的第六种可能的实现方式中,所述根据所述第一空间管理对象依次将每个对象的数据块写入所述连续磁盘空间中,包括:将所述第一空间管理对象中属于所述碎片整理子区域的每个所述空间管理信息依次按照对象名、层数及块数的递增顺序进行排序;按照排序后的空间管理信息依次读取所述碎片整理子区域中数据块,并依次写入所述连续磁盘空间中。结合第一方面、第一方面的第一种至第六种任一种可能的实现方式,在第一方面的第七种可能的实现方式中,所述根据所述第一空间管理对象将碎片整理子区域对应的每个对象的数据块均写入连续磁盘空间中之前,还包括:根据所述碎片整理子区域所占的磁盘空间大小,确定碎片整理所需的连续磁盘空间大小,并根据所述连续磁盘空间大小为所述碎片整理子区域分配所述连续磁盘空间;所述连续磁盘空间用于存放所述碎片整理子区域中的数据块及元数据块。结合第一方面的第七种可能的实现方式,在第一方面的第八种可能的实现方式中,所述根据所述碎片整理子区域所占的磁盘空间大小,确定碎片整理所需的连续磁盘空间大小之前,还包括:根据属于所述碎片整理子区域的各个空间管理信息所包括的空间大小值的总和,确定所述碎片整理子区域所占的磁盘空间大小。结合第一方面的第七种或第八种可能的实现方式,在第一方面的第九种可能的实现方式中,所述根据所述连续磁盘空间大小为所述碎片整理子区域分配所述连续磁盘空间,包括:根据所述连续磁盘空间大小以及预设元数据块比例为所述碎片整理子区域分配所述连续磁盘空间。结合第一方面、第一方面的第一种至第九种任一种可能的实现方式,在第一方面的第十种可能的实现方式中,所述根据第一空间管理对象判断第一磁盘区域的碎片化程度之前,还包括:获取所述空间管理信息。第二方面,本专利技术实施例提供一种磁盘碎片整理装置,包括:判断模块,用于根据第一空间管理对象判断第一磁盘区域的碎片化程度;其中,所述第一空间管理对象用于记录为每个对象分配所述第一磁盘区域的磁盘子单元时对应的空间管理信息;所述第一磁盘区域为磁盘空间中预设大小对应的磁盘区域;每个所本文档来自技高网...

【技术保护点】
一种磁盘碎片整理方法,其特征在于,包括:根据第一空间管理对象判断第一磁盘区域的碎片化程度;其中,所述第一空间管理对象用于记录为每个对象分配所述第一磁盘区域的磁盘子单元时对应的空间管理信息;所述第一磁盘区域为磁盘空间中预设大小对应的磁盘区域;每个所述空间管理信息包括:对象名、层数、块数、偏移值及空间大小值;若确定所述第一磁盘区域的碎片化程度达到预设碎片化程度,则根据所述第一空间管理对象将碎片整理子区域对应的每个对象的数据块均写入连续磁盘空间中,并将每个所述对象的数据块写入连续磁盘空间时所产生的元数据写入所述连续空间中;其中,所述碎片整理子区域小于等于所述第一磁盘区域;释放所述碎片整理子区域。

【技术特征摘要】
1.一种磁盘碎片整理方法,其特征在于,包括:
根据第一空间管理对象判断第一磁盘区域的碎片化程度;其中,所述第
一空间管理对象用于记录为每个对象分配所述第一磁盘区域的磁盘子单元时
对应的空间管理信息;所述第一磁盘区域为磁盘空间中预设大小对应的磁盘
区域;每个所述空间管理信息包括:对象名、层数、块数、偏移值及空间大
小值;
若确定所述第一磁盘区域的碎片化程度达到预设碎片化程度,则根据所
述第一空间管理对象将碎片整理子区域对应的每个对象的数据块均写入连续
磁盘空间中,并将每个所述对象的数据块写入连续磁盘空间时所产生的元数
据写入所述连续空间中;其中,所述碎片整理子区域小于等于所述第一磁盘
区域;
释放所述碎片整理子区域。
2.根据权利要求1所述的方法,其特征在于,所述根据第一空间管理对
象判断第一磁盘区域的碎片化程度,包括:
根据所述第一空间管理对象中的每个所述空间管理信息确定所述第一磁
盘区域的总碎片个数;
根据所述总碎片个数和所述第一磁盘区域的总块数判断所述第一磁盘区
域的碎片化程度;其中,所述第一磁盘区域的总块数为所述第一磁盘区域所
包括的磁盘子单元的总数。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一空间管
理对象中的每个所述空间管理信息确定所述第一磁盘区域的总碎片个数,包
括:
将所述第一空间管理对象中的每个所述空间管理信息按照偏移值的递增
顺序进行排序;
根据排序后的空间管理信息中每相邻的两个空间管理信息,确定所述第
一磁盘区域的总碎片个数。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述根据所述
第一空间管理对象将碎片整理子区域对应的每个对象的数据块均写入连续磁
盘空间中之前,还包括:
根据所述第一空间管理对象确定所述碎片整理子区域;所述碎片整理子
区域为:所述第一磁盘区域中的至少一个磁盘子区域。
5.根据权利要求4所述的方法,其特征在于,所述根据所述第一空间管
理对象确定所述碎片整理子区域,包括:
根据预设区域值将所述第一磁盘区域划分为至少两个磁盘子区域,并确
定每个所述磁盘子区域的碎片个数;
根据每个所述磁盘子区域的碎片个数和所述第一磁盘区域的总碎片个数
确定所述碎片整理子区域。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述根据所述
第一空间管理对象将碎片整理子区域对应的每个对象的数据块均写入连续磁
盘空间中,并将每个所述对象的数据块写入连续磁盘空间时所产生的元数据
写入所述连续空间中,包括:
根据所述第一空间管理对象依次将每个所述对象的数据块写入所述连续
磁盘空间中,并依次将每个所述对象的数据块写入所述连续磁盘空间时所产
生的元数据写入所述连续磁盘空间中。
7.根据权利要求6所述的方法,其特征在于,所述根据所述第一空间管
理对象依次将每个对象的数据块写入所述连续磁盘空间中,包括:
将所述第一空间管理对象中属于所述碎片整理子区域的每个所述空间管
理信息依次按照对象名、层数及块数的递增顺序进行排序;
按照排序后的空间管理信息依次读取所述碎片整理子区域中数据块,并
依次写入所述连续磁盘空间中。
8.根据权利要求1-7中任一项所述的方法,其特征在于,所述根据所述
第一空间管理对象将碎片整理子区域对应的每个对象的数据块均写入连续磁
盘空间中之前,还包括:
根据所述碎片整理子区域所占的磁盘空间大小,确定碎片整理所需的连
续磁盘空间大小,并根据所述连续磁盘空间大小为所述碎片整理子区域分配
所述连续磁盘空间;所述连续磁盘空间用于存放所述碎片整理子区域中的数
据块及元数据块。
9.根据权利要求8所述的方法,其特征在于,所述根据所述碎片整理子
区域所占的磁盘空间大小,确定碎片整理所需的连续磁盘空间大小之前,还

\t包括:
根据属于所述碎片整理子区域的各个空间管理信息所包括的空间大小值
的总和,确定所述碎片整理子区域所占的磁盘空间大小。
10.根据权利要求8或9所述的方法,其特征在于,所述根据所述连续
磁盘空间大小为所述碎片整理子区域分配所述连续磁盘空间,包括:
根据所述连续磁盘空间大小以及预设元数据块比例为所述碎片整理子区
域分配所述连续磁盘空间。<...

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

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

1