一种存储池化容量利用方法,系统,电子设备及存储介质与流程

文档序号:19064288发布日期:2019-11-06 02:08阅读:178来源:国知局
一种存储池化容量利用方法,系统,电子设备及存储介质与流程

本发明涉及存储技术领域,尤其涉及一种存储池化容量利用方法,系统,电子设备及存储介质。



背景技术:

大数据时代,巨大的数据流量对底层存储提出了越来越高的要求,不仅要求存储的速度同时还要求存储的容量,tb、pb甚至更高级别的容量要求已经是一种常态化的需求。存储设备通过整合底层物理硬盘对外提供大容量、高可靠的存储服务。对于最终用户而言,其主要关注可利用的存储服务及其能够提供的容量,因此可以通过虚拟化的手段,将多个存储服务提供的存储池资源进行整合,统一向用户提供服务,即存储虚拟池化服务。

通过存储虚拟池化,可以有效的整合存储资源,给用户提供统一、一致的存储服务,用户无须登陆或处理各种各样形态不一的存储服务。随着存储虚拟池化服务的使用,在虚拟层引入了一个新问题——如何有效利用虚拟池化空间中各个存储服务提供的容量。

在解决虚拟池化空间容量利用问题上,一种简单的作法是“先进先出”原则,即根据添加到虚拟池化空间上存储服务的顺序,依次进行查询校验,以判断是否满足用户存储需求。但这种方法一是存在查询效率问题,二是无法针对虚拟池化空间上所有存储资源进行一个统一规划,不能有效利用各个存储资源的容量。这两点随着虚拟池化空间上附着存储资源数量的增多愈发严重。



技术实现要素:

本发明的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明的实践而习得。

本发明针对在虚拟池化空间上创建逻辑卷操作时,如何有效利用虚拟池化空间中存储资源的容量,提出了一种简单高效的容量利用方法。

根据本发明实施例的第一方面,提供了一种存储池化容量利用方法,方法包括:

步骤一:获取算法前置条件:创建的逻辑卷数量,获取各个存储资源空闲容量大小和总数量;

步骤二:判断创建逻辑卷数量和存储资源数量关系,根据存储资源空闲容量和创建逻辑卷数量计算结果;

步骤三:根据二分查找原理,计算最大供给容量。

在本发明的一些实施例中,基于前述方案,步骤一还包括:

获取算法实现的前置条件:创建的逻辑卷数量n,虚拟池化空间上每个存储资源的空闲容量ci,i=1,2,3……m,其中m为虚拟池化空间上附着的所有存储资源的总数;

根据空闲容量ci,i=1,2,3……m,由大到小对存储资源进行排序,排序后的空闲容量为fi,i=1,2,3……m。

在本发明的一些实施例中,基于前述方案,步骤二还包括:

比较需要创建的逻辑卷数量n和存储资源数量m的大小,如果m>=n,则记x=n,否则,记x=m;x为算法中归一化的变量。

在本发明的一些实施例中,基于前述方案,步骤二还包括:

若x<=0代表用户输入或获取到的存储资源数量错误,算法结束并给予用户相关提示;

若x=1,则表示在一个拥有预设空闲容量的存储资源上提供所有的n个卷,则每个卷的最大供给量为f1/n,最终所有的存储卷将创建在该最大空闲容量存储资源上;

若x>1,则表示在多个存储资源上共同提供n个存储卷的容量;最终n个卷是创建在多个存储资源上的;

基于m>=x,在空闲容量由大到小排序后的前x个存储资源中进行判断即可。

在本发明的一些实施例中,基于前述方案,步骤三还包括:

若x>1时,在空闲容量由大到小排序后的前x个存储资源中计算最大供给容量的步骤:

s11,将最大供给容量记为max_size,其初始值设置为空闲容量由大到小排序后前x个存储资源中最后一个存储资源的空闲容量,设置min_size=0;

s12,设置初始值count=0,space=0,顺序遍历x个存储资源,对于每个存储资源的空闲容量free,计算count=free/max_size,space=free%max_size;

s13,将x个存储资源计算的count和space各自求和。

在本发明的一些实施例中,基于前述方案,步骤三还包括:

s14,如果count==n并且space==0,则x个存储资源上能够以max_size提供用户所要求的n个逻辑卷的创建,且其上没有其他剩余空间,则结束循环,此时的max_size即为所求最大供给容量;

s15,否则,若count>=n,则x个存储资源以max_size提供用户所要求的n个逻辑卷的创建;将最小空闲容量的存储资源排除,将在剩下的x-1个存储资源中筛选;

s16,将min_size设置为max_size,同时将max_size设置为空闲空间最小的存储资源空闲容量,重新开始执行s12;

s17,若count<n,说明所选的max_size大于阈值,在x个存储资源中无法以max_size提供用户所要求的n个逻辑卷创建,在min_size和max_size之间计算最大供给容量,结束循环。

在本发明的一些实施例中,基于前述方案,步骤三还包括:

当s12开始的循环结束时,根据二分查找的原理,以min_size、max_size、y为输入,先计算出一个中间变量mid_size,以步骤s12,s13的计算判断原则判断mid_size是否为精准匹配;

若是,则mid_size即为所求;如果mid_size过大,则在min_size和mid_size之间重新二分查找;

如果mid_size小,即存储资源上还有剩余空间,则在mid_size和max_size之间查找;最终筛选计算出最终的最大供给容量。

根据本发明实施例的第二方面,提供了一种存储池化容量利用系统,包括:存储资源,虚拟池化服务模块以及算法前置条件配置模块;

算法前置条件配置模块用于获取算法前置条件:创建的逻辑卷数量,获取各个存储资源空闲容量大小和总数量;

虚拟池化服务模块用于判断创建逻辑卷数量和存储资源数量关系,根据存储资源空闲容量和创建逻辑卷数量计算结果;根据二分查找原理,计算最大供给容量。

根据本发明实施例的第三方面,提供了一种存储池化容量利用方法的电子设备,包括:

存储器,用于存储计算机程序及存储池化容量利用方法;

处理器,用于执行所述计算机程序及存储池化容量利用方法,以实现存储池化容量利用方法的步骤。

根据本发明实施例的第四方面,提供了一种具有实现存储池化容量利用方法的计算机可读存储介质,计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行以实现存储池化容量利用方法的步骤。

从以上技术方案可以看出,本发明具有以下优点:

通过本发明的方法,当用户在前端界面上使用虚拟池化空间时,根据用户输入的创建逻辑卷的数量,以及虚拟池化空间上所附着的存储资源的个数及每个存储资源的空闲容量的大小,自动计算出最大可利用容量。同时如果当用户同时输入要创建的逻辑卷的数量和每个卷的大小时,根据算法计算出的最大供给容量,能够在前端界面给予用户提示虚拟池化空间能否满足用户需求,方便用户操作。

为从根本上解决改善虚拟池化空间容量利用问题,本发明以用户输入的需要在虚拟池化空间上创建逻辑卷的数量和虚拟池化空间上存储资源的个数及每个存储资源的容量为依据,通过简单高效的二分查找判断虚拟池化空间能够提供的最大容量,有效的利用了虚拟池化空间上的各个存储资源,同时有利于当用户前端界面同时输入创建卷数量和每个卷容量时,当虚拟池化空间无法提供对应存储服务时,给予用户以提示。

附图说明

为了更清楚地说明本发明的技术方案,下面将对描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为存储池化容量利用方法流程图;

图2为存储池化容量利用系统示意图。

具体实施方式

为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将运用具体的实施例及附图,对本发明保护的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本专利中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本专利保护的范围。

所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。

如图1和图2中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

如果在硬件中实现,本发明涉及一种装置,例如可以作为处理器或者集成电路装置,诸如集成电路芯片或芯片组。可替换地或附加地,如果软件或固件中实现,所述技术可实现至少部分地由计算机可读的数据存储介质,包括指令,当执行时,使处理器执行一个或更多的上述方法。例如,计算机可读的数据存储介质可以存储诸如由处理器执行的指令。

计算机可读介质的计算机程序产品可以形成一部分,其可以包括包装材料。数据的计算机可读介质可以包括计算机存储介质,诸如随机存取存储器(ram),只读存储器(rom),非易失性随机存取存储器(nvram),电可擦可编程只读存储器(eeprom),闪存,磁或光学数据存储介质,和类似物。在一些实施例中,一种制造产品可包括一个或多个计算机可读存储媒体。

本发明方法以用户输入的在虚拟池化空间上创建的逻辑卷数量以及虚拟池化空间上存储资源的数量和各个存储资源的容量为前提,通过简单有效的二分查找算法,实现虚拟池化资源在既定需要创建逻辑卷数量下,最大可供给的容量计算。

通过该发明,可以有效利用虚拟池化空间上各个存储资源的有效空间,同时,当虚拟池化空间上附着的存储资源数量庞大时,二分查找能够有效的提供查询效率。当用户在前端同时输入创建逻辑卷数量和容量时,通过最大可供给容量给予用户有效提示。

本发明方法中算法实现以用户输入的创建卷的数量、虚拟池化空间上附着的存储资源的数量和各个存储资源的容量为前置条件,通过简单有效的二分查找算法,实现虚拟池化资源在既定需要创建逻辑卷数量下,最大可供给的容量计算。算法实现过程如下:

(1)获取算法实现的前置条件:需要创建的逻辑卷数量n,虚拟池化空间上每个存储资源的空闲容量ci,i=1,2,3……m,其中m为虚拟池化空间上附着的所有存储资源的总数。

(2)根据空闲容量ci,i=1,2,3……m,由大到小对存储资源进行排序,排序后的空闲容量为fi,i=1,2,3……m。

(3)比较需要创建的逻辑卷数量n和存储资源数量m的大小,如果m>=n,则记x=n,否则,记x=m。x为算法中归一化的变量。

(4)若x<=0代表用户输入或获取到的存储资源数量错误,算法结束并给予用户相关提示。

(5)若x=1,则表示需要在一个拥有最大空闲容量的存储资源上提供提供所有的n个卷,则每个卷的最大供给量为f1/n,最终所有的存储卷将创建在该最大空闲容量存储资源上。

(6)若x>1,则表示需要在多个存储资源上共同提供n个存储卷的容量。最终n个卷是创建在多个存储资源上的。由于m>=x,在空闲容量由大到小排序后的前x个存储资源中进行判断即可。

以下为x>1时,在空闲容量由大到小排序后的前x个存储资源中计算最大供给容量的步骤:

(7)将最大供给容量记为max_size,其初始值设置为空闲容量由大到小排序后前x个存储资源中最后一个存储资源的空闲容量(最小的空闲容量),设置min_size=0。

(8)设置初始值count=0,space=0,顺序遍历x个存储资源,对于每个存储资源的空闲容量free,计算count=free/max_size,space=free%max_size。然后将x个存储资源计算的count和space各自求和。

(9)如果count==n并且space==0,说明x个存储资源上能够以max_size提供用户所要求的n个逻辑卷的创建,且其上没有其他剩余空间,即精准匹配。则结束循环,此时的max_size即为所求最大供给容量。

(10)否则,若count>=n,说明x个存储资源能够以max_size提供用户所要求的n个逻辑卷的创建,但其上还有其他剩余空间,因此可能提供更大的供给容量。将最小空闲容量的存储资源排除,将在剩下的x-1个存储资源中筛选。将min_size设置为max_size,同时将max_size设置为空闲空间最小的存储资源空闲容量,重新开始步骤8

(11)若count<n,说明所选的max_size太大,在x个存储资源中无法以max_size提供用户所要求的n个逻辑卷创建,需要在min_size和max_size之间计算最大供给容量,结束循环。

(12)当步骤8开始的循环结束时,求得了最大供给容量(步骤9),要么我们会得到一对筛选出来的(min_size,max_size)以及其所对应的存储资源,其存储资源数量y也已知(x和y可能并不相等)。

(13)根据二分查找的原理,以min_size、max_size、y为输入,先计算出一个中间变量mid_size,以步骤8,9同样的计算判断原则判断mid_size是否为精准匹配,若是,则mid_size即为所求;如果mid_size过大,则在(min_size,mid_size)之间重新二分查找;如果mid_size小,即存储资源上还有剩余空间,则在(mid_size,max_size)之间查找。最终筛选计算出最终的最大供给容量。

以下介绍本发明的装置实施例,可以用于执行本发明上述的方法。图2示出了根据本发明的实施例的系统的结构示意图。一种存储池化容量利用系统,包括:存储资源1,虚拟池化服务模块2以及算法前置条件配置模块3;

算法前置条件配置模块3用于获取算法前置条件:创建的逻辑卷数量,获取各个存储资源1空闲容量大小和总数量;虚拟池化服务2模块用于判断创建逻辑卷数量和存储资源数量关系,根据存储资源空闲容量和创建逻辑卷数量计算结果;根据二分查找原理,计算最大供给容量。

本发明还提供一种存储池化容量利用方法的电子设备,包括:存储器,用于存储计算机程序及存储池化容量利用方法;处理器,用于执行所述计算机程序及存储池化容量利用方法,以实现存储池化容量利用方法的步骤。

本发明还提供一种具有实现存储池化容量利用方法的计算机可读存储介质,计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行以实现存储池化容量利用方法的步骤。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。

所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。

这样本发明提出了一种存储池化容量利用算法实现,解决了通过虚拟池化技术提供存储服务时,对虚拟池化空间上附着的存储资源空间有效利用问题。通过该算法可以在虚拟池化空间上附着大量存储资源时,有效的提高最大供给容量查询效率问题,同时能够针对虚拟池化空间上所有存储资源进行统一规划,有效利用各个存储资源的容量。

虚拟池化空间上可以绑定任意数量的存储资源,各个存储资源的容量可互不相同,虚拟池化空间以统一、一致的方式向用户提供存储服务。用户在使用虚拟池化空间时,需要输入创建卷的数量和容量等关键信息。

针对附着多个存储资源的虚拟池化容量,以用户输入的创建逻辑卷数量、存储资源数量及各自容量为前提,通过计算最大供应容量来达到对虚拟池化空间上存储资源的统一规划和空间有效利用的目的。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1