存储空间分配方法及装置与流程

文档序号:18162603发布日期:2019-07-13 09:24阅读:504来源:国知局
存储空间分配方法及装置与流程

本申请涉及存储技术领域,具体而言,涉及一种存储空间分配方法及装置。



背景技术:

存储系统包括多个存储设备,这些存储设备提供的存储空间被虚拟成存储池。在实际应用中,可以根据需要从存储池中分配特定大小的存储空间挂载到主机上供用户使用。该挂载到主机上的存储空间即为一个lun(logicalunitnumber,逻辑单元号)。

在使用中,存储系统的管理员可以根据需要指定需要新建的lun的分配模式和容量。相关技术中的存储系统通常支持以下两种容量分配模式:精简配置(thinprovision)模式,即不为新建的lun分配存储空间,当需要向该lun写入数据时再根据需要写入的数据量来分配相应大小的存储空间给该lun;厚配置(thickprovision)模式,为新建的lun分配指定的容量的存储空间。

然而,用户对lun的容量需求通常存在以下几种情况:第一,明确知道待新建的lun所需的容量;第二,完全不确定待新建的lun所需的容量;第三,不确定待新建的lun所需的容量,但可以确定该lun所需的最小容量。相关技术中的存储系统只能分配满足第一和第二两种容量需求的存储空间,但无论如何配置都无法分配符合第三种容量需求的存储空间。



技术实现要素:

有鉴于此,本申请的目的之一在于提供一种存储空间分配方法及装置,以至少部分地改善上述问题。

第一方面,本申请实施例提供一种存储空间分配方法,应用于存储系统,所述方法包括:

接收待新建的目标逻辑单元号lun的容量分配模式、最小保障容量和最大容量,其中,所述容量分配模式为精简配置模式或厚配置模式,所述最小保障容量不超过所述最大容量,所述最大容量不超过所述存储系统的总容量;

确定所述存储系统的当前可用容量;

在所述容量分配模式为厚配置模式的情况下,若所述最小保障容量不超过所述当前可用容量,且所述最大容量和所述最小保障容量相同,则在新建所述目标lun时,为所述目标lun分配所述最小保障容量或所述最大容量的存储空间;

在所述容量分配模式为精简配置模式的情况下,为新建的所述目标lun分配所述最小保障容量的存储空间;

在新建所述目标lun后,若所述目标lun的剩余容量不足以存储待写入的数据,则扩大所述目标lun的存储空间,使得所述目标lun能够存储所述待写入的数据,且所述目标lun扩大后的容量不超过所述最大容量。

第二方面,本申请实施例提供一种存储空间分配装置,应用于存储系统,所述装置包括:

接收模块,用于接收待新建的目标lun的容量分配模式、最小保障容量和最大容量,其中,所述容量分配模式为精简配置模式或后配置模式,所述最小保障容量不超过所述最大容量,所述最大容量不超过所述存储系统的总容量;

参数检测模块,用于确定所述存储系统的当前可用容量;

分配模块,用于在所述容量分配模式为精简配置模式的情况下,为新建的所述目标lun分配所述最小保障容量的存储空间;在新建所述目标lun后,若所述目标lun的剩余容量不足以存储待写入的数据,则扩大所述目标lun的存储空间,使得所述目标lun能够存储所述待写入的数据,且所述目标lun扩大后的容量不超过所述最大容量。

第三方面,本申请实施例还提供一种控制器,应用于存储系统,所述控制器包括处理器及可读存储介质,所述可读存储介质上存储有机器可执行指令,所述机器可执行指令被执行时促使处理器实现本申请实施例提供的存储空间分配方法。

相对于现有技术而言,本申请实施例具有以下有益效果:

本申请实施例提供一种存储空间分配方法及装置,为lun增设了容量分配参数:容量分配模式、最小保障容量和最大容量,使得存储系统在待新建的目标lun的容量分配模式为厚配置模式的情况下,若其最小保障容量不超过存储系统的当前可用容量,且该最小保障容和最大容量相同,则为目标lun分配该最小保障容量或该最大容量的存储空间。在目标lun的容量分配模式为精简配置模式的情况下,为新建的目标lun分配最小保障容量的存储空间;在新建目标lun后,若其剩余容量不足以存储待写入的数据,则扩大目标lun的存储空间,使得目标lun能够存储该待写入的数据,且目标lun扩大后的容量不超过目标lun的最大容量。针对不确定目标lun所需的具体容量大小,但能够确定目标lun所需的最小容量的情况,通过上述设计,可以给目标lun分配符合该情况的存储空间。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需使用的附图做简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应该被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的一种存储系统与用户设备的交互示意图;

图2为本申请实施例提供的存储空间分配方法的一种流程示意图;

图3为图2所示步骤s22的子步骤示意图;

图4为本申请实施例提供的存储空间分配方法的又一流程示意图;

图5为本申请实施例提供的控制器的一种硬件结构框图;

图6为本申请实施例提供的存储空间分配装置的一种功能模块框图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

请参照图1,图1是本申请实施例提供的一种存储系统10和用户设备的交互示意图。在本实施例中,用户设备可以是主机或其他任何可以挂载存储系统10提供的存储空间的设备。例如,图1中示出的主机21、主机22和主机23可以充当本实施例中的用户设备。

存储系统10包括控制器11及多个存储节点12,其中,多个存储节点12提供的存储空间被虚拟成存储池,控制器11用于对多个存储节点12进行管理,例如,可以用于接收用户设备发送的请求(例如,读写请求)并转发给相应的存储节点12;又如,可以根据用户设备的请求为用户设备新建相应的lun,并从存储池中分配相应的存储空间给该lun,以供用户设备使用。其中,用户设备挂载的lun在该用户设备上呈现为一个存储空间标识,类似于用户设备上的磁盘符。

例如,主机21挂载有lun2,主机22挂载有lun3,主机23挂载有lun5。其中,lun2、lun3和lun5分别对应存储系统10的存储池中的特定存储空间。

换言之,所述多个存储节点12可以通过控制器11向用户提供存储服务。其中,所述存储节点12可以是任意能够存储信息的物理设备,例如,硬盘、磁盘阵列、存储服务器等。

在本实施例中,存储系统10可以是分布式存储系统或集中式存储系统。其中,若存储系统10为分布式存储系统,则存储系统10中的多个存储节点12均可以提供控制管理服务,换言之,该多个存储节点12均可充当控制器11。若存储系统10为集中式存储系统,则控制器11可以是和存储系统10中的多个存储节点12相互独立的设备。

在实际应用中,用户(例如,系统管理员)可以根据各个用户设备的需要为待新建的lun(在本实施例中约定为“目标lun”)设置容量分配参数,使得控制器11在新建该lun后,按照该容量分配参数为该lun分配存储空间。

相关技术中的存储系统提供给用户配置的容量分配参数为:容量分配模式和容量。其中,容量分配模式包括上述的精简配置模式和厚配置模式。

经研究发现,针对上述的第三种容量需求,即:无法确定目标lun所需的具体容量,但可以确定目标lun所需的最小容量的情况,相关技术中的存储系统存在如下问题:

一方面,如果将目标lun的容量分配模式设置为厚配置模式,则存储系统的控制器将按照用户设置的容量来分配存储空间给新建的目标lun,这样一来,容易出现因用户设置的容量过大从而导致资源浪费的问题,以及因设置的容量过小导致无法满足目标lun的实际需求的问题;

另一方面,如果将目标lun的容量分配模式设置为精简配置模式,则存储系统的控制器在新建目标lun时不会分配存储空间,在需要写入的数据时,再根据需要写入的数据量来分配存储空间。在此情况下,势必无法满足目标lun对最小容量的需求。

基于以上分析,无论如何配置容量分配参数,相关技术中的存储系统都无法满足上述第三种容量需求。

为至少部分地改善以上问题,本申请实施例提供一种存储空间分配方法及装置,将存储系统的lun提供的容量这一参数调整为最小保障容量和最大容量两个参数,使得存储系统的控制器根据用户配置的容量分配模式、最小保障容量和最大容量来为新建的目标lun分配存储空间。以下将对该内容进行描述。

请参照图2,图2是本申请实施例提供的一种存储空间分配方法的流程示意图。该方法可以应用于存储系统10的控制器11,下面对该方法包括的各个步骤进行描述。

步骤s21,接收待新建的目标lun的容量分配模式、最小保障容量和最大容量,其中,所述容量分配模式为精简配置模式或厚配置模式,所述最小保障容量不超过所述最大容量,所述最大容量不超过所述存储系统的总容量。

在本实施例中,针对需要新建的目标lun,用户可以在用户设备上配置目标lun的容量分配模式、最小保障容量和最大容量,并通过相应的触发操作将所述容量分配模式、所述最小保障容量和所述最大容量发送给控制器11。其中,所述触发操作例如可以是点击或选取用户设备提供的新建lun的选项。对应地,所述容量分配模式、所述最小保障容量和所述最大容量可以携带在用于请求新建所述目标lun的新建请求中发送给控制器11。

其中,用户配置的最小保障容量需不超过最大容量,所述最大容量需不超过所述存储系统10的总容量。在一种实施方式中,可以由用户设备检测用户配置的最小保障容量是否超过最大容量,以及检测用户配置的最大容量是否超过存储系统10的总容量,若其中任意一个判断结果为是,则可以提示用户重新进行配置;若两个判断结果均为否,则将用户配置的容量分配模式、最小保障容量和最大容量发送给控制器11。

在又一种实施方式中,可以由用户设备直接将用户配置的容量分配模式、最小保障容量和最大容量发送给控制器11,控制器11在接收到该容量分配模式、最小保障容量和最大容量时,检测该最小保障容量是否超过该最大容量以及检测该最大容量是否超过存储系统10的总容量,若其中任意一个判断结果为是,则向用户设备输出提示信息以提示用户重新进行配置;若两个判断结果均为否,则进行后续的步骤。

当然,在其他实施方式中,也可以由用户设备对最小保障容量和最大容量进行比较,由控制器11对最大容量和存储系统10的总容量进行比较;或是,由用户设备对最大容量和存储系统10的总容量进行比较,由控制器11对最小保障容量和最大容量进行比较,本实施例不以此为限制。

步骤s22,确定所述存储系统10的当前可用容量。

其中,所述存储系统10的当前可用容量是指所述存储系统10还可以用于分配的容量。详细地,在所述存储系统10已建立的lun中,各个处于厚配置模式的lun的最小保障容量(或最大容量)以及各个处于精简配置模式的lun的当前实际容量和最小保障容量中较大的一个,均为无法用于分配的容量,因此,所述存储系统10的总容量除去前述的无法用于分配的容量,即为所述当前可用容量。

基于此,在本实施例的一种实施方式中,步骤s22可以包括图3所示的各个步骤。

步骤s31,从所述存储系统10已建立的lun中确定当前处于厚配置模式的第一lun,计算各第一lun的最小保障容量之和,或者计算各第一lun的最大容量之和,得到第一容量。

步骤s32,从所述存储系统10已建立的lun中确定当前处于精简配置模式的第二lun,计算各第二lun的最小保障容量之和,得到第二容量。

在本实施例中,控制器11中可以记录有存储系统10中当前已建立的lun的相关信息,所述相关信息例如可以包括已建立的lun的当前实际容量、最小保障容量及最大容量等。此外,控制器11中还可以包括针对处于精简配置模式的lun创建的第一集合以及针对处于厚配置模式的lun创建的第二集合。其中,第一集合和第二集合可以通过名称进行区别,例如,第一集合可以命名为lun_thin,第二集合可以命名为lun_thick。

在新建任意一个lun时,若该lun的容量分配模式为精简配置模式,则可以在第一集合中记录该lun的标识信息;若该lun的容量分配模式为厚配置模式,则可以在第二集合中记录该lun的标识信息。

在实施时,可以将第一集合中记录的标识信息指示的lun确定为第一lun,将第二集合中记录的标识信息指示的lun确定为第二lun,进而可以通过步骤s31计算得到第一容量,即:所有精简配置模式的lun占用的容量;以及,通过步骤s32计算得到第二容量,即:所有厚配置模式的lun占用的容量。其中,第一容量和第二容量可以通过名称进行区分,例如,第一容量可以记为capacity_thin,第二容量可以记为capacity_thick。当然,在其他示例中,第一容量和第二容量也可以采用其他名称。

步骤s33,针对所确定的每个第二lun,计算该第二lun的当前容量和最小保障容量的差,得到一超出容量;若所述超出容量为负值,则将所述超出容量设置为0。

步骤s34,计算各第二lun的超出容量之和,得到超出总容量。

在实施过程中,考虑到当精简配置模式的lun(即:第一lun)不足以存储待写入的数据时,控制器11在确保分配给该第一lun的容量不超过该第一lun的最大容量的情况下,会给该第一lun扩容,因此,第二lun实际占用的容量可能是其最小保障容量,也可能是其当前实际容量。

详细地,如果第二lun的当前实际容量超过其最小保障容量,则该第二lun占用的容量为其当前实际容量;如果第二lun的当前实际容量没有超过其最小保障容量,则该第二lun占用的容量为其最小保障容量。

在此情况下,可以计算各个第二lun的当前实际容量和最小保障容量的差值,以确保计算得到的当前可用容量的准确性。

步骤s35,根据所述存储系统10的总容量、所述第一容量、所述第二容量及所述超出总容量计算得到所述存储系统10的当前可用容量。

详细地,可以计算所述存储系统10的总容量与所述第一容量、所述第二容量及所述超出总容量的差值,作为所述当前可用容量。

例如,假设:存储系统10的总容量为capacity_total,第一容量为capacity_thin,第二容量为capacity_thick,超出总容量为capacity_exceed,则,所述存储系统10的当前可用容量capacity_max_use=capacity_total-capacity_thick-capacity_thin-capacity_exceed。

在本实施例的其他实施方式中,步骤s22可以通过以下过程实现:

从存储系统10已建立的lun中确定当前处于厚配置模式的第一lun以及当前处于精简配置模式的第二lun;计算各第一lun的最小保障容量之和,或者计算各第一lun的最大容量之和,得到第一容量;针对每个第二lun,将该第二lun的当前实际容量和最小保障容量中较大的一个确定为该第二lun占用的容量;计算各第二lun占用的容量之和,得到第三容量;计算存储系统10与所述第一容量和所述第三容量之差,得到所述当前可用容量。

步骤s23,在所述容量分配模式为厚配置模式的情况下,若所述最小保障容量不超过所述存储系统10的总容量,且所述最大容量和所述最小保障容量相同,则在新建所述目标lun时,为所述目标lun分配所述最小保障容量或所述最大容量的存储空间。

通过步骤s23可以配置出符合上述第一种容量需求的容量分配参数。例如,当确定目标lun所需的容量为20tb时,可以将目标lun的容量分配模式设置成厚配置模式,将目标lum的最小保障容量和最大保障容量均设置成20tb。如此,控制器11可以为新建的目标lun分配20tb的存储空间。

可选地,在一种实施方式中,如果控制器11检测到所述最大容量和所述最小保障容量不相同,则可以向用户设备输入提示信息以提示用户重新进行配置。在又一种实施方式中,可以由用户设备在检测到用户配置为目标lun配置的容量分配模式为厚配置模式时,将所述目标lun的最大容量自动设置成与用户配置的最小保障容量相同的值。

步骤s24,在所述容量分配模式为精简配置模式的情况下,为新建的所述目标lun分配所述最小保障容量的存储空间。

步骤s25,在新建所述目标lun后,若所述目标lun的剩余容量不足以存储待写入的数据,则扩大所述目标lun的存储空间,使得所述目标lun能够存储所述待写入的数据,且所述目标lun扩大后的容量不超过所述最大容量。

在实施时,若目标lun的容量需求为上述的第三种情况,例如,不确定目标lun需要的具体容量,但可以确定目标lun最少需要使用10tb(terabyte,太字节)。在此情况下,可以将目标lun的容量分配模式设置为精简配置模式,将目标lun的最小保障容量设置成10tb。至于目标lun的最大容量,在此没有限制,只要不超过存储系统10的总容量即可。当然,在其他场景中,为了确保其他lun有足够的容量,可以适应性地调整目标lun的最大容量。

通过上述设计,即可使得分配给目标lun的存储空间满足目标lun对最小容量的需求,且在目标lun所需存储的数据超过该最小容量时,能够分配到更多的存储空间。换言之,通过以上设计,用户可以配置出合适的容量分配参数,以使存储系统10的控制器11分配的存储空间满足上述第三种容量需求。

此外,通过上述设计,也可以配置出合适的容量分配参数,使得控制器11分配的存储空间满足所述的第二种容量需求。例如,完全不确定目标lun所需的容量,在此情况下,可以将目标lun的容量分配模式设置为精简配置模式,将目标lun的最小保障容量设置成较小值(例如,0),将目标lun的最大容量设置成不大于存储系统10的总容量的值。

如此,控制器11可以不为新建的目标lun分配存储空间,或只分配极少的存储空间给新建的目标lun,在需要写入数据时,再根据需要写入的数据量分配相应的存储空间。

在上述设计的基础上,如果用户配置的容量分配参数不合理,还是可能出现分配的存储空间无法满足目标lun的容量需求的情况。基于此,本申请实施例可以在分配存储空间之前,检测用户配置的容量分配参数的合理性。对应地,在执行步骤s22之前,本实施例提供的存储空间分配方法还可以包括图4所示的步骤。

步骤s41,比较所述最小保障容量和所述当前可用容量。

步骤s42,若所述最小保障容量不超过所述当前可用容量,则为新建的所述目标lun分配所述最小保障容量的存储空间。

通过上述设计,可以确保用户设置的容量分配参数的合理性,从而合理地分配存储系统10的存储空间。

可选地,如果控制器11检测到所述最小保障容量超过所述当前可用容量,则可以向用户设备输出提示信息,以提示用户配置不合理或提示用户重新配置容量分配参数。

值得说明的是,上文描述的在用户配置的容量分配模式为厚配置模式的情况下,如果是由控制器11对用户配置的最小保障容量和最大容量进行比较和/或对该最大容量和存储系统10的总容量进行比较,这两个比较的步骤可以是在执行步骤s41之前、之后或并行执行。

在一些应用场景中,用户可能需要修改已经建立的lun的容量分配参数,此时控制器11可以对用户修改后的容量分配参数进行检测,以确保其合理性。

其中,如果用户在不修改容量分配模式的情况下对最小保障容量和/或最大容量进行修改,控制器11采用的检测方式与前述的对待新建的目标lun的容量分配参数的检测方式类似,在此不再赘述。

如果用户修改的是容量分配模式,则可以通过下文描述的方式进行检测。对应地,在新建所述目标lun后,本实施例提供的存储空间分配方法还可以包括以下三个步骤。

第一,接收针对所述目标lun的第一修改请求,所述第一修改请求指示将所述目标lun的容量分配模式从精简配置模式修改为厚配置模式。

第二,确定所述存储系统10中可供所述目标lun使用的目标容量以及所述目标lun的当前实际容量,其中,所述目标容量包括所述存储系统10的当前可用容量与所述目标lun的当前实际容量。

其中,目标容量是指所述存储系统10中当前可供目标lun使用的容量,具体可以包括存储系统10的当前可用容量以及目标lun已经分配到的容量。

可选地,在一种实施方式中,所述目标容量可以通过图4所示的步骤进行计算,只需在确定处于精简配置模式的第一lun时,将目标lun从所确定的各个第一lun中排除即可,最终按照图4所示步骤计算得到的记过即为所述目标容量。在又一种实施方式中,可以直接按照图4所示的步骤计算得到存储系统10的当前可用容量,再计算该当前可用容量与目标lun的当前实际容量的和,即为所述目标容量。

第三,在满足第一预设条件的情况下,将所述目标lun的容量分配模式从精简配置模式修改为厚配置模式,以及将所述目标lun当前的最小保障容量修改为所述第一修改请求中指示的最小保障容量,以及将所述目标lun当前的最大容量修改为所述第一修改请求中指示的最大容量。

其中,所述第一预设条件可以包括:所述第一修改请求中指示的最小保障容量不超过所述目标容量,且所述第一修改请求中指示的最小保障容量不小于所述目标lun当前的最小保障容量以及所述当前实际容量,且所述第一修改请求中指示的最大容量和最小保障容量相同。

可选地,所述第一修改请求中指示的最小保障容量和目标lun当前的最小保障容量可以相同,也可以不同。所述第一修改请求中指示的最大容量和目标lun当前的最大容量可以相同,也可以不同。

在本实施例中,限制修改后的最小保障容量不小于目标lun的当前实际容量和当前的最小保障容量,可以避免因为容量分配参数的修改导致目标lun中的数据丢失。

此外,在新建所述目标lun后,本实施例提供的存储空间分配方法还可以包括以下三个步骤。

第一,接收针对所述目标lun的第二修改请求,所述第二修改请求指示将所述目标lun的容量分配模式从厚配置模式修改为精简配置模式。

第二,确定所述存储系统10中可供所述目标lun使用的目标容量,所述目标容量包括所述存储系统10的当前可用容量与所述目标lun的当前实际容量。

其中,所述目标容量的含义与前文提及的目标容量类似,但其计算方式和前文提及的目标容量的计算方式略有不同。在一种实施方式中,可以按照图3所示步骤进行计算,只需在从存储系统10已建立的lun中确定处于厚配置模式的第二lun时,从所确定的各个第二lun中排除所述目标lun,如此,依照图3所示步骤计算得到的结果即为所述目标容量。在又一种实施方式中,可以直接依照图3所示步骤计算得到存储系统10的当前可用容量,并计算该当前可用容量与目标lun的当前实际容量的和,即为所述目标容量。

第三,在满足第二预设条件的情况下,将所述目标lun的容量分配模式从厚配置模式修改为精简配置模式,以及将所述目标lun当前的最小保障容量修改为所述第二修改请求中指示的最小保障容量,以及将所述目标lun当前的最小保障容量修改为所述第二修改请求中指示的最大容量。

其中,所述第二预设条件可以包括:所述第二修改请求中指示的最小保障容量不超过所述目标容量且不小于所述目标lun当前的最小保障容量,并且所述第二修改请求中指示的最大容量不超过所述存储系统10的总容量。

请参照图5,是本实施例提供的控制器11的一种硬件结构示意图。控制器11可以包括处理器111及机器可读存储介质112。处理器111与机器可读存储介质112可经由系统总线通信。并且,机器可读存储介质112存储有机器可执行指令,通过读取并执行机器可执行指令,处理器111可执行上文描述的存储空间分配方法。

本文中提及的机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含存储信息,如可执行指令、数据等。

请参照图6,是本申请实施例提供的存储空间分配装置30的一种功能模块框图。存储空间分配装置30包括至少一个可以以软件形式存储于机器可读存储介质112中的功能模块。从功能上划分,存储空间分配装置30可以包括接收模块31、参数检测模块32和分配模块33。

接收模块31用于接收待新建的目标lun的容量分配模式、最小保障容量和最大容量,其中,所述容量分配模式为精简配置模式或后配置模式,所述最小保障容量不超过所述最大容量,所述最大容量不超过所述存储区系统10的总容量。

参数检测模块32用于确定存储系统10的当前可用容量。

可选地,参数检测模块33可以通过如下方式确定所述存储系统10的当前可用容量:

从所述存储系统10已建立的lun中确定当前处于厚配置模式的第一lun,计算各第一lun的最小保障容量之和,或者计算各第一lun的最大容量之和,得到第一容量;从所述存储系统10已建立的lun中确定当前处于精简配置模式的第二lun,计算各第二lun的最小保障容量之和,得到第二容量;针对所确定的每个第二lun,计算该第二lun的当前容量和最小保障容量的差,得到一超出容量;若所述超出容量为负值,则将所述超出容量设置为0;计算各第二lun的超出容量之和,得到超出总容量;根据所述存储系统10的总容量、所述第一容量、所述第二容量及所述超出总容量计算得到所述存储系统10的当前可用容量。

分配模块32用于:在所述容量分配模式为厚配置模式的情况下,若所述最小保障容量不超过所述当前可用容量,且所述最大容量和所述最小保障容量相同,则在新建所述目标lun时,为所述目标lun分配所述最小保障容量或所述最大容量的存储空间;在所述容量分配模式为精简配置模式的情况下,为新建的所述目标lun分配所述最小保障容量的存储空间;在新建所述目标lun后,若所述目标lun的剩余容量不足以存储待写入的数据,则扩大所述目标lun的存储空间,使得所述目标lun能够存储所述待写入的数据,且所述目标lun扩大后的容量不超过所述最大容量。

可选地,在本实施例中,所述参数检测模块33用于在为新建的所述目标lun分配所述最小保障容量的存储空间之前,比较所述最小保障容量和所述当前可用容量;若所述最小保障容量不超过所述当前可用容量,则为新建的所述目标lun分配所述最小保障容量的存储空间。

可选地,在本实施例中,接收模块31还可以用于接收针对所述目标lun的第一修改请求,所述第一修改请求指示将所述目标lun的容量分配模式从精简配置模式修改为厚配置模式。

在此情况下,参数检测模块33还可以用于确定所述存储系统10中可供所述目标lun使用的目标容量以及所述目标lun的当前实际容量,其中,所述目标容量等于所述存储系统10的当前可用容量与所述目标lun的当前实际容量的和。

分配模块32还可以用于在满足第一预设条件的情况下,将所述目标lun的容量分配模式从精简配置模式修改为厚配置模式,以及将所述目标lun当前的最小保障容量修改为所述第一修改请求中指示的最小保障容量,以及将所述目标lun当前的最小保障容量修改为所述第一修改请求中指示的最大容量。

其中,所述第一预设条件包括:所述第一修改请求中指示的最小保障容量不超过所述目标容量,且所述第一修改请求中指示的最小保障容量不小于所述目标lun当前的最小保障容量以及所述当前实际容量,且所述第一修改请求中指示的最大容量和最小保障容量相同。

可选地,分配模块32还可以用于在所述容量分配模式为厚配置模式的情况下,若所述最小保障容量不超过所述当前可用容量,且所述最大容量和所述最小保障容量相同,则在新建所述目标lun时,为所述目标lun分配所述最小保障容量或所述最大容量的存储空间。

可选地,接收模块31还可以用于接收针对所述目标lun的第二修改请求,所述第二修改请求指示将所述目标lun的容量分配模式从厚配置模式修改为精简配置模式。

在此情况下,参数检测模块33还可以用于确定所述存储系统10中可供所述目标lun使用的目标容量,所述目标容量等于所述存储系统10的当前可用容量与所述目标lun的当前实际容量的和。

分配模块32还可以用于在满足第二预设条件的情况下,将所述目标lun的容量分配模式从后配置模式修改为精简配置模式,以及将所述目标lun当前的最小保障容量修改为所述第二修改请求中指示的最小保障容量,以及将所述目标lun当前的最小保障容量修改为所述第二修改请求中指示的最大容量。

其中,所述第二预设条件包括:所述第二修改请求中指示的最小保障容量不超过所述目标容量且不小于所述目标lun当前的最小保障容量,并且所述第二修改请求中指示的最大容量不超过所述存储系统10的总容量。

关于上述功能模块的详细描述具体可参考前文中对相应步骤的描述。

综上所述,本申请实施例提供一种存储空间分配方法及装置,为lun增设了容量分配参数:容量分配模式、最小保障容量和最大容量,使得存储系统10在待新建的目标lun的容量分配模式为厚配置模式的情况下,若其最小保障容量不超过存储系统的当前可用容量,且该最小保障容量和最大容量相同,则为目标lun分配该最小保障容量或该最大容量的存储空间。在目标lun的容量分配模式为精简配置模式的情况下,为新建的目标lun分配最小保障容量的存储空间;在新建目标lun后,若其剩余容量不足以存储待写入的数据,则扩大目标lun的存储空间,使得目标lun能够存储该待写入的数据,且目标lun扩大后的容量不超过目标lun的最大容量。针对不确定目标lun所需的具体容量大小,但能够确定目标lun所需的最小容量的情况,通过上述设计,可以给目标lun分配符合该情况的存储空间。

在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

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