一种空闲block查询的方法及系统技术方案

技术编号:17195637 阅读:18 留言:0更新日期:2018-02-03 22:30
本申请公开了一种存储容量查询的方法,包括:判断block信息队列的状态是否为空闲状态;若是,则将该block信息队列载入内存;依次判断该block信息队列中的block信息是否为空闲block信息;若为空闲block信息,则确定对应block为空闲block。该方法先判断判断block信息队列的状态是否为空闲状态,若是,再依次判断该block信息队列中的block信息是否为空闲block信息,若为空闲block信息则确定对应block为空闲block,达到了快速查询大存储容量的存储系统中空闲block的目的。本申请同时还提供了一种空闲block查询的系统及计算机可读存储介质,具有上述有益效果。

【技术实现步骤摘要】
一种空闲block查询的方法及系统
本申请涉及存储系统领域,特别涉及一种空闲block查询的方法、系统及计算机可读存储介质。
技术介绍
现有技术中通过使用bitmap的方法来查询存储系统中的存储容量是否分配,然而随着存储容量的增长,特别是PB、EB、ZB等存储容量级别的存储系统出现,仅使用bitmap来查询容量已经相当困难。以1TB硬盘、4KB的block(容量存储单位)为例,总共由268435456(总容量/block容量=1024*1024*1024KB/4KB)个block组成。按照uint64,即一次查询64个block为例,遍历一次需要查询4194304(总数/一次查询个数=268435456/64)次,对于存储系统来说太过繁琐。同时,1TB容量的bitmap需要32MB(总数/8/1024/1024=268435456/8/1024/1024)的内存空间,而1PB(1PB=1024TB)存储系统中,存储bitmap需要的内存为1024*32MB=32GB,存储系统难以一次将bitmap载入,更不用提EB、ZB等存储容量级别的存储系统了。因此,如何快速查询大存储容量的存储系统中的空闲block是本领域技术人员目前需要解决的技术问题。
技术实现思路
本申请的目的是提供一种空闲block查询的方法、系统及计算机可读存储介质,该方法能够快速查询大存储容量的存储系统中的空闲block。为解决上述技术问题,本申请提供一种空闲block查询的方法,该方法包括:判断block信息队列的状态是否为空闲状态;若是,则将所述block信息队列载入内存;依次判断载入内存的所述block信息队列中的block信息是否为空闲block信息;其中,所述空闲block信息为对应的block处于空闲状态时的表现信息;若为空闲block信息,则确定所述空闲block信息对应的block为空闲block。可选的,当所述block信息队列中包括空闲数量时,还包括:判断接收到的指令为空闲block分配指令或繁忙block收回指令;若所述指令为所述空闲block分配指令,则分配所述空闲block,并将所述空闲block对应的block信息修改为繁忙block信息;其中,所述繁忙block信息为对应的block处于繁忙状态时的表现信息;若所述指令为所述繁忙block收回指令,则收回所述繁忙block,并将所述繁忙block对应的block信息修改为所述空闲block信息;将所述空闲数量更新为现有的所述空闲信息的数量。可选的,在将所述block信息队列载入内存之后,还包括:判断所述block信息队列中的空闲数量是否小于阈值;若是,则将新block信息队列载入所述内存,并判断所述空闲数量是否为零;若所述空闲数量为零,则将所述block信息队列从所述内存中移除。本申请还提供一种空闲block查询的系统,该系统包括:第一判断模块,用于判断block信息队列的状态是否为空闲状态;载入模块,用于当所述block信息队列的状态为空闲状态时,将所述block信息队列载入内存;第二判断模块,用于依次判断载入内存的所述block信息队列中的block信息是否为空闲block信息;其中,所述空闲block信息为对应的block处于空闲状态时的表现信息;确定模块,用于当载入内存的所述block信息队列中的block信息为所述空闲block信息时,确定所述空闲block信息对应的block为空闲block。可选的,该系统还包括:第三判断模块,用于判断接收到的指令为空闲block分配指令或繁忙block收回指令;第一分配修改模块,用于当所述指令为所述空闲block分配指令时,分配所述空闲block,并将所述空闲block对应的block信息修改为繁忙block信息;其中,所述繁忙block信息为对应的block处于繁忙状态时的表现信息;第二分配修改模块,用于当所述指令为所述繁忙block收回指令时,收回所述繁忙block,并将所述繁忙block对应的block信息修改为所述空闲block信息;更新模块,用于当所述block信息队列中包括空闲数量时,将所述空闲数量更新为现有的所述空闲信息的数量。可选的,所述载入模块还包括:判断子模块,用于判断所述block信息队列中的空闲数量是否小于阈值;载入判断子模块,用于当所述block信息队列中的空闲数量小于阈值时,将新block信息队列载入所述内存,并判断所述空闲数量是否为零;移除子模块,用于若所述空闲数量为零,则将所述block信息队列从所述内存中移除。本申请还提供一种空闲block查询的计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述空闲block查询的方法的步骤。本申请所提供的一种空闲block查询的方法,通过判断block信息队列的状态是否为空闲状态;若是,则将该block信息队列载入内存;依次判断载入内存的block信息队列中的block信息是否为空闲block信息;其中,该空闲block信息为对应的block处于空闲状态时的表现信息;若是,则确定该空闲block信息对应的block为空闲block。本申请所提供的技术方案,先判断判断block信息队列的状态是否为空闲状态,若是,才将该block信息队列载入内存,再依次判断载入内存的block信息队列中的block信息是否为空闲block信息,若为空闲block信息则确定该空闲block信息对应的block为空闲block,达到了快速查询大存储容量的存储系统中空闲block的目的,同时,通过将block信息队列载入内存,解决了存储系统难以一次将大数据量bitmap载入内存的问题。本申请同时还提供了一种空闲block查询的系统及计算机可读存储介质,具有上述有益效果,在此不再赘述。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本申请实施例所提供的一种空闲block查询的方法的流程图;图2为本申请实施例所提供的一种实现block信息队列的数据结构的设计方式;图3为本申请实施例所提供的一种实现block信息队列的数据结构;图4本申请实施例所提供的另一种空闲block查询的方法的流程图;图5为本申请实施例所提供的一种空闲block查询的系统的结构图;图6为本申请实施例所提供的另一种空闲block查询的系统的结构图。具体实施方式本申请的核心是提供一种空闲block查询的方法、系统及计算机可读存储介质,该方法能够快速查询大存储容量的存储系统中的空闲block。为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。请参考图1,图1为本申请实施例所本文档来自技高网...
一种空闲block查询的方法及系统

【技术保护点】
一种空闲block查询的方法,其特征在于,包括:判断block信息队列的状态是否为空闲状态;若是,则将所述block信息队列载入内存;依次判断载入内存的所述block信息队列中的block信息是否为空闲block信息;其中,所述空闲block信息为对应的block处于空闲状态时的表现信息;若为空闲block信息,则确定所述空闲block信息对应的block为空闲block。

【技术特征摘要】
1.一种空闲block查询的方法,其特征在于,包括:判断block信息队列的状态是否为空闲状态;若是,则将所述block信息队列载入内存;依次判断载入内存的所述block信息队列中的block信息是否为空闲block信息;其中,所述空闲block信息为对应的block处于空闲状态时的表现信息;若为空闲block信息,则确定所述空闲block信息对应的block为空闲block。2.根据权利要求1所述的方法,其特征在于,当所述block信息队列中包括空闲数量时,还包括:判断接收到的指令为空闲block分配指令或繁忙block收回指令;若所述指令为所述空闲block分配指令,则分配所述空闲block,并将所述空闲block对应的block信息修改为繁忙block信息;其中,所述繁忙block信息为对应的block处于繁忙状态时的表现信息;若所述指令为所述繁忙block收回指令,则收回所述繁忙block,并将所述繁忙block对应的block信息修改为所述空闲block信息;将所述空闲数量更新为现有的所述空闲信息的数量。3.根据权利要求2所述的方法,其特征在于,在将所述block信息队列载入内存之后,还包括:判断所述block信息队列中的空闲数量是否小于阈值;若是,则将新block信息队列载入所述内存,并判断所述空闲数量是否为零;若所述空闲数量为零,则将所述block信息队列从所述内存中移除。4.一种空闲block查询的系统,其特征在于,包括:第一判断模块,用于判断block信息队列的状态是否为空闲状态;载入模块,用于当所述block信息队列的状态为空闲状态时,将所述block信息队列载入内存;第二判断模块,用于依次判断...

【专利技术属性】
技术研发人员:张传庆
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

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

1