CN114518836B - 管理存储系统的存储资源池的方法、设备和程序产品 - Google Patents
管理存储系统的存储资源池的方法、设备和程序产品 Download PDFInfo
- Publication number
- CN114518836B CN114518836B CN202011308120.XA CN202011308120A CN114518836B CN 114518836 B CN114518836 B CN 114518836B CN 202011308120 A CN202011308120 A CN 202011308120A CN 114518836 B CN114518836 B CN 114518836B
- Authority
- CN
- China
- Prior art keywords
- storage devices
- shared
- group
- shared storage
- existing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003860 storage Methods 0.000 title claims abstract description 618
- 238000000034 method Methods 0.000 title claims abstract description 92
- 238000004590 computer program Methods 0.000 claims description 13
- 238000013507 mapping Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 25
- 230000008569 process Effects 0.000 description 20
- 238000012545 processing Methods 0.000 description 12
- 230000005012 migration Effects 0.000 description 9
- 238000013508 migration Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 101150060298 add2 gene Proteins 0.000 description 5
- 238000013500 data storage Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 239000002041 carbon nanotube Substances 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000009420 retrofitting Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000011282 treatment Methods 0.000 description 1
Abstract
公开了管理存储系统的存储资源池的方法、设备和程序产品。资源池中的多个存储设备被划分为至少一个分组,一个已有分组中的存储设备的第一数量不高于分组阈值范围的上限阈值。根据确定第二数量的存储设备被添加至资源池,确定第一数量与第二数量的和。根据确定第一数量与第二数量的和不满足分组阈值范围,基于第二数量的存储设备中的至少一部分创建新分组;向已有分组中添加第二数量的存储设备中的另一部分存储设备。将从已有分组中选择的一组共享存储设备中的每个存储设备中的第一部分存储空间分配至已有分组,以及将一组共享存储设备中的每个存储设备中的第二部分存储空间分配至新分组。可以提高存储系统中的多个存储设备中的存储空间的利用率。
Description
技术领域
本公开的各实现方式涉及存储管理,更具体地,涉及用于管理存储系统的存储资源池(简称为资源池)的方法、设备和计算机程序产品。
背景技术
随着数据存储技术的发展,各种数据存储设备已经能够向用户提供越来越高的数据存储能力,并且数据访问速度也有了很大程度的提高。在提高数据存储能力的同时,用户对于数据可靠性和存储系统的可扩展性也提供了越来越高的需求。目前,已经开发出了基于独立磁盘冗余阵列(Redundant Array of Independent Disks,RAID)的多种数据存储系统来提高数据的可靠性。当存储系统中的一个或者多个磁盘出现故障时,可以从其他正常操作的磁盘上的数据来重建故障磁盘中的数据。
目前已经开发出了映射独立磁盘冗余阵列(Mapped RAID)。在该映射RAID中,磁盘是一个逻辑概念并且可以包括多个区块(extent)。一个逻辑磁盘中包括的多个区块可以分布在资源池中的不同物理存储设备上。对于映射RAID的一个条带中的多个区块而言,该多个区块应当分布在不同的物理存储设备上,以便当该多个区块中的一个区块所在的物理存储设备出现故障时,可以执行重建操作以便从其他区块所在的物理存储设备中恢复数据。
为了便于管理资源池中的多个存储设备,可以按照分组阈值范围(包括上限阈值和下限阈值),将多个存储设备划分为至少一个分组,并且基于每个分组中的多个存储设备来创建用户存储系统。在此,每个分组中的存储设备的数量满足分组阈值范围。在存储系统的运行期间,可以向资源池中添加新的存储设备。在某些情况下,资源池中的存储设备不能被划分至符合上述阈值范围的分组,此时不能向分组中添加新增的存储设备。此时,如何尽可能有效地利用新增存储设备中的存储空间,成为一个技术难题。
发明内容
因而,期望能够开发并实现一种以更为有效的方式来管理资源池中的多个存储设备的技术方案。期望该技术方案能够与现有的存储系统相兼容,并且通过改造现有存储系统的各种配置,来以更为有效的方式管理存储设备。
根据本公开的第一方面,提供了一种用于管理存储系统的资源池的方法。资源池包括多个存储设备,多个存储设备被划分为至少一个分组,至少一个分组中的一个已有分组中的存储设备的第一数量不高于分组阈值范围的上限阈值。在该方法中,根据确定第二数量的存储设备被添加至资源池,确定第一数量与第二数量的和。根据确定第一数量与第二数量的和不满足分组阈值范围,基于第二数量的存储设备中的至少一部分创建新分组;向已有分组中添加第二数量的存储设备中的另一部分存储设备。将从已有分组中选择的一组共享存储设备中的每个存储设备中的第一部分存储空间分配至已有分组,以及将一组共享存储设备中的每个存储设备中的第二部分存储空间分配至新分组。
根据本公开的第二方面,提供了一种电子设备。该电子设备包括:至少一个处理器;以及与至少一个处理器耦合的存储器,存储器具有存储于其中的指令,指令在被至少一个处理器执行时使得设备执行根据本公开的第一方面的方法。
根据本公开的第三方面,提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,机器可执行指令用于执行根据本公开的第一方面的方法。
附图说明
结合附图并参考以下详细说明,本公开各实现方式的特征、优点及其他方面将变得更加明显,在此以示例性而非限制性的方式示出了本公开的若干实现方式。在附图中:
图1示意性示出了其中可以实现本公开的实现方式的存储系统的示意图;
图2示意性示出了根据本公开的一个实现方式的用于管理存储系统的资源池的过程的框图;
图3示意性示出了根据本公开的一个实现方式的用于管理存储系统的资源池的方法的流程图;
图4示意性示出了根据本公开的一个实现方式的用于确定一组共享存储设备的方法的流程图;
图5示意性示出了根据本公开的一个实现方式的向资源池中添加更多存储设备的过程的框图;
图6示意性示出了根据本公开的一个实现方式的用于释放共享存储设备的方法的流程图;
图7示意性示出了根据本公开的一个实现方式的用于从一组共享存储设备中选择将要被释放的共享存储设备的过程的框图;
图8示意性示出了根据本公开的一个实现方式的用于从将要被释放的共享存储设备中迁移数据的过程的框图;以及
图9示意性示出了根据本公开的示例性实现的用于管理存储系统的资源池的设备的框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实现。虽然附图中显示了本公开的优选实现,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实现所限制。相反,提供这些实现是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实现”和“一个实现”表示“至少一个示例实现”。术语“另一实现”表示“至少一个另外的实现”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
在本公开的上下文中,存储系统可以是基于RAID的存储系统。基于RAID的存储系统可以将多个存储设备组合起来,成为一个磁盘阵列。通过提供冗余的存储设备,可以使得整个磁盘组的可靠性大大超过单一的存储设备。RAID可以提供优于单一的存储设备的各种优势,例如,增强数据整合度,增强容错功能,增加吞吐量或容量,等等。RAID存在多个标准,例如RAID-1,RAID-2,RAID-3,RAID-4,RAID-5,RAID-6,RAID-10,RAID-50等等。
首先参见图1描述根据本公开的示例性实现方式的应用环境。图1示意性示出了其中可以实现本公开的实现方式的存储系统100的示意图。如图1所示,存储系统100可以包括资源池110,资源池可以包括多个存储设备。为了便于管理,可以将多个存储设备划分至一个或多个分组。例如,存储设备122、…、124、…、以及126可以被划分至分组120,存储设备132、…、134、…、以及136可以被划分至分组130。可以基于映射RAID技术,利用分组中的各个存储设备中的存储空间来创建用户存储系统。例如,可以基于分组120中的存储空间分别创建用户存储系统140、…、以及142。
在此,可以为分组中包括的存储设备的数量设置分组阈值范围。例如,分组阈值范围可以包括上限阈值(表示为THhigh),用于指定分组中的存储设备的数量的上限;分组阈值范围可以包括下限阈值(表示为THlow),用于指定分组中的存储设备的数量的下限。通常而言,上限阈值可以被设置为64或者其他数值;下限阈值可以根据存储系统的条带宽度和所要求的后备存储设备的数量来确定。例如,在4D+1P的存储系统中,条带宽度为4+1=5,并且后备存储设备的数量为1,则可以基于两者的求和来确定下限阈值:5+1=6。此时,每个分组可以包括6至64个存储设备。当资源池110包括的存储设备的数量超过64时,可以存在多个分组。
将会理解,资源池110中仅有一个分组中的存储设备的数量小于(或者等于)上限阈值,而其他一个或多个的分组中的存储设备的数量应当等于上限阈值。在向资源池添加更多新的存储设备时,首先向分组数量小于上限阈值的分组(如果存在)中添加新的存储设备,以便达到上限阈值。如果存在更多新的存储设备,则创建新的分组。基于上述描述可知,当资源池中包括1个分组时,可以容纳6-64个存储设备;当资源池中包括2个分组时,可以容纳72-128个存储设备;当资源池中包括N个分组时,可以容纳(N-1)*64+6至N*64个存储设备。
将会理解,上述范围并不连续,这导致在向资源池110中添加新存储设备时,可能会出现不能充分利用新存储设备的情况。例如,假设资源池包括1个分组,并且该分组包括62个存储设备。当向资源池添加5个存储设备时,可以将5个存储设备中的4个存储设备添加至已有分组,而另外的5-4=1个存储设备用于创建新分组。由于新分组中存储设备的数量为1(1<6)并且不满足下限阈值,此时并不能利用新分组中的1个存储设备的存储空间。因而,期望提供一种更为有效的方式来管理资源池中的存储设备,以便尽可能充分地利用全部存储设备中的存储空间。
为了至少部分地解决上述技术方案中的不足,根据本公开的示例性实现方式,提供了一种管理存储系统的资源池的技术方案。在下文中,将参见图2概括描述根据本公开的示例性实现方式的过程。图2示意性示出了根据本公开的一个实现方式的用于管理存储系统的资源池的过程200的框图。根据本公开的示例性实现方式,提出了“共享存储设备”的概念,在此共享存储设备表示在两个分组之间共享的存储设备。可以存在一个或多个共享存储设备,并且每个共享存储设备的存储空间可以被划分为两部分,一部分用于已有分组,而另一部分用于新的分组。
如图2所示,假设分组130包括63个存储设备132、…、134、以及136,并且向资源池中添加4个存储设备212至214以形成分组130和210,此时可以确定一组共享存储设备220(包括存储设备134、…、以及136)。具体地,可以基于3个存储设备212至214创建新分组210,并且借用已有分组130中的3个存储设备134、…、以及136中的一部分存储空间(例如,50%)。此时,分组130包括存储设备132等中的全部存储空间以及存储设备134、…、136以及212中50%的存储空间,新分组210包括存储设备134、…、136以及212中另外50%的存储空间以及存储设备214等中的全部存储空间。此时,分组130中的存储设备的数量满足上限阈值230,并且分组210中的存储设备的数量满足下限阈值240。
利用本公开的示例性实现方式,尽管共享存储设备中的用于每个分组的存储空间都小于全部存储空间,共享存储设备可以使得每个分组中的存储设备的数量都满足上限阈值和下限阈值的要求,因而可以充分利用新增存储设备中的存储设备。将会理解,上文图2仅仅示意性示出了一组共享存储设备220的示例。依赖于已有分组中的存储设备的数量和新增存储设备的数量,将会存在不同的情况。在下文中,将会分别详细描述。
图3示意性示出了根据本公开的一个实现方式的用于管理存储系统的资源池的方法300的流程图。可以在存储系统100中的具有计算能力的电子设备处执行方法300。在此,存储系统100的资源池110包括多个存储设备,多个存储设备被划分为至少一个分组。至少一个分组中的一个分组(例如,最后一个分组)中的存储设备的第一数量(表示为CNTold)不高于分组阈值范围的上限阈值,并且至少一个分组中的该分组以外的其他分组中的存储设备的数量分别等于上限阈值。换言之,按照预定的上限阈值来划分分组,并且至多仅有最后一个分组中的存储设备的数量小于(或者等于)上限阈值。如果全部分组中的存储设备的数量都等于上限阈值,则可以将任何一个分组作为最后一个分组。
根据本公开的示例性实现方式,可以首先找到所包括存储设备的数量小于上限阈值的最后一个分组(称为已有分组),可以向已有分组添加一个或多个存储设备。如果已有分组中的存储设备的数量达到上限阈值,可以创建新分组并且从已有分组中确定一个或多个共享存储设备。将会理解,如果全部分组中的存储设备的数量都等于上限阈值,则可以创建新的分组并且从任何一个已有分组中确定一个或多个共享存储设备。
在框310处,根据确定第二数量(表示为CNTadd)的存储设备被添加至资源池,确定第一数量CNTold与第二数量CNTadd的和。将会理解,第一数量与第二数量的和表示当前尚未形成常规分组的存储设备的数量。如果该数量满足分组阈值范围,则可以直接将第二数量的存储设备中的零个至多个存储设备加入已有分组。如果存在剩余存储设备,可以基于剩余存储设备创建新分组。此时,新分组中的存储设备的数量将会高于或者等于下限阈值,因而可以充分利用新增的第二数量的存储设备中的全部存储空间。
在框320处,根据确定第一数量与第二数量的和不满足分组阈值范围,基于第二数量的存储设备中的至少一部分创建新分组。在框330处,向已有分组中添加第二数量的存储设备中的另一部分存储设备。为方便描述起见,第二数量的存储设备中的被添加至已有分组的存储设备的数量可以表示为CNTadd,old、第二数量的存储设备中的被添加至新分组的存储设备的数量表示为CNTadd,new。
根据本公开的示例性实现方式,当第一数量和第二数量的和不满足分组阈值范围时,则将会导致按照常规技术方案不能充分利用全部存储空间的情况。此时,可以创建新分组,并且从已有分组中“借用”一组共享存储设备中的一部分存储空间。根据本公开的示例性实现方式,可以首先确定将要被添加至已有分组和新分组的存储设备的数量CNTadd,old和CNTadd,new。可以基于公式1来确定向已有分组中添加的存储设备的数量CNTadd,old,并且可以基于公式2来确定向新分组中添加的存储设备的数量CNTadd,new:
CNTadd,old=THhigh-CNTold 公式1
CNTadd,new=CNTadd-CNTadd,old 公式2
其中THhigh表示上限阈值,THlow表示下限阈值,CNTold表示第一数量,CNTadd表示第二数量,CNTadd,old表示第二数量的存储设备中的被添加至已有分组的存储设备的数量,CNTadd,new表示第二数量的存储设备中的被添加至新分组的存储设备的数量。
假设已有分组包括62个存储设备,新增6个存储设备,则62+6=68(不满足分组阈值范围)。此时可以向已有分组添加64-62=2个存储设备,并且向新分组中添加6-2=4个存储设备。假设已有分组包括60个存储设备,新增7个存储设备,则60+7=67,此时可以向已有分组添加64-60=4个存储设备,并且向新分组中添加7-4=3个存储设备。在上述两个示例中,由于新分组中的存储设备都没有达到下限阈值,因而新分组可以和已有分组需要共享一个或者多个存储设备。
在框340处,将从已有分组中选择的一组共享存储设备中的每个存储设备中的第一部分存储空间分配至已有分组,以及将一组共享存储设备中的每个存储设备中的第二部分存储空间分配至新分组。在此,可以首先从已有分组中确定一组共享存储设备。根据本公开的示例性实现方式,可以基于第二数量和下限阈值来选择一组共享存储设备(一组共享存储设备的数量表示为CNTshare)。
在下文中,将参见图4详细描述如何选择一组共享存储设备。图4示意性示出了根据本公开的一个实现方式的用于确定一组共享存储设备的方法400的流程图。具体地,在框410处,可以比较第二数量CNTadd(CNTadd=CNTadd,new+CNTadd,old)和下限阈值THlow。如果第二数量不低于分组阈值范围的下限阈值,则表示新增的存储设备的数量已经满足下限阈值。此时,方法400前进至框412,并且可以将CNTadd,old个存储设备中的(THlow-CNTadd,new)个标记为共享存储设备。具体地,可以从被添加至已有分组的另一部分存储设备(也即,被添加到已有分组中的CNTadd,old个存储设备)中选择一组共享存储设备,并且所选择的共享存储设备的数量为THlow-CNTadd,new。
将会理解,共享存储设备将会被两个分组使用,这导致共享存储设备的工作负载将会变高,因而需要选择当前工作负载最低的存储设备来作为共享存储设备。由于新添加至已有分组的CNTadd,old个存储设备尚未被使用,从这些存储设备中选择共享存储设备,可以优先地选择工作负载最低并且性能最佳的存储设备来作为共享存储设备。以此方式,可以缓解共享存储设备的工作负载较高的问题,进而提高整个存储系统的性能。
在一个示例中,假设已有分组包括60个存储设备,新增7个存储设备,可以向已有分组添加CNTadd,old=64-60=4个存储设备,并且向新分组中添加CNTadd,new=7-4=3个存储设备。此时第二数量(CNTadd=7)高于下限阈值(THlow=6)。因而,可以从已有分组中的4个新增存储设备中选择共享存储设备。具体地,可以基于下限阈值THlow和新分组中的存储设备的数量CNTadd,new之间的差,来确定共享存储设备的数量:THlow-CNTadd,new=6-3=3。换言之,可以从已有分组中的4个新增存储设备中选择3个存储设备,作为共享存储设备。
根据本公开的示例性实现方式,如果第二数量低于分组阈值范围的下限阈值,这表示新增的第二数量的存储设备不足以构建一个分组,还需要从已有分组中的初始存储设备中“借用”一个或多个存储设备。换言之,可以从被添加至已有分组的另一部分存储设备以及第一数量的存储设备中选择一组共享存储设备。此时,在框410处的判断结果为“否”,并且方法400前进至框420。由于新增的CNTadd,old个存储设备尚未被使用并且工作负载最低,在框420处,可以首先将CNTadd,old个存储设备标记为共享存储设备。在一个示例中,假设已有分组包括60个存储设备,新增5个存储设备,可以向已有分组添加CNTadd,old=64-60=4个存储设备,并且向新分组中添加CNTadd,new=5-4=1个存储设备。此时第二数量(CNTadd=5)低于下限阈值(THlow=6)。因而可以选择已有分组中的4个新增存储设备来作为共享存储设备。
根据本公开的示例性实现方式,可以基于第一数量、第二数量、以及分组阈值范围,确定一组共享存储设备中的来自第一数量的存储设备的目标数量。可以按照上文描述的方法,首先确定分别被添加至已有分组和新分组的存储设备的数量CNTadd,old和CNTadd,new。继而,可以确定共享存储设备的期望数量CNTshare,并且基于该期望数量与一组共享存储设备的当前数量之间的差,来确定从第一数量的存储设备中选择多少个共享存储设备。根据本公开的示例性实现方式,可以基于THlow-CNTadd,new-CNTadd,old来确定从第一数量的存储设备中选择多少个共享存储设备。
具体地,可以基于下限阈值THlow和新分组中的存储设备的数量CNTadd,new之间的差,来确定共享存储设备的期望数量:CNTshare=THlow-CNTadd,new=6-1=5。换言之,由于此时新分组中仅包括1个存储设备,还需要5个共享存储设备才能达到下限阈值。在上文中已经选择了4个共享存储设备,因而还需要从已有分组中的第一数量的存储设备中选择5-4=1个共享存储设备。换言之,还需要从已有分组中的最初的60个存储设备中选择1个存储设备。根据本公开的示例性实现方式,为了确保共享存储设备可以应对较高的工作负载,可以从已有分组中的最初的60个存储设备中选择工作负载最低的存储设备。根据本公开的示例性实现方式,可以基于第一数量的存储设备中的各个存储设备的工作负载,从第一数量的存储设备中选择满足目标数量的至少一个存储设备。
此时,方法400前进至框430处,并且确定已有分组中的每个初始存储设备的工作负载。可以基于多个方面的因素来确定每个存储设备的工作负载。例如,可以考虑存储设备中的存储空间的状态、存储设备中的区块所在的条带的分布、存储设备中的数据被访问的频率、存储设备的磨损度,等等。将会理解,由于共享存储设备将要服务于两个分组,可以优先地选择工作负载较低的存储设备来作为共享存储设备。例如,可以将已有分组中最初的60个存储设备的工作负载进行排序,并且选择工作负载最低的分组来作为共享存储设备。在框440处,可以根据每个存储设备的工作负载,将THlow-CNTadd,new-CNTadd,old个存储设备标记为共享存储设备。
根据本公开的示例性实现方式,可以将共享存储设备中的存储空间划分为两部分,并且分别将两部分存储空间分别分配给已有分组和新分组。例如,可以按照1∶1的比例(或者其他比例)来划分。如果选择的共享存储设备的使用率超过阈值比例(例如,50%),也即在框450处的判断结果为“是”,则方法400前进至框460处,以便执行数据迁移。换言之,可以将选择的共享存储设备中的数据迁移至第一数量的存储设备中的另一存储设备。如果在框450处的判断结果为“否”,则方法400直接前进至470。
在框470处,将共享存储设备中的第一部分存储空间分配给已有分组,将共享存储设备中的第二部分存储空间分配给新分组。将会理解,此时共享存储设备中的空闲存储空间将会达到50%,因而可以从该共享存储设备的空闲空间中确定用于分配给新分组的第二部分存储空间,并且可以从该存储设备中的第二部分存储空间以外的存储空间中,确定第一部分存储空间。例如,可以将50%的空闲空间分配给新分组,并且将其余的存储空间分配给已有分组。可以基于分配的存储空间来更新相应分组的地址映射,例如,可以基于第一部分存储空间,更新已有分组的地址映射,并且可以基于第二部分存储空间,更新新分组的地址映射。
图4中的框410至470示出了确定一个或多个共享存储设备以及分别向已有分组和新分组分配共享存储设备中的存储空间的步骤。此时,已有分组和新分组可以进入稳定的工作状态。随着存储系统的运行,各个存储设备的工作负载可以出现差异,因而在框480处可以执行负载平衡过程。利用本公开的示例性实现方式,在向资源池中添加了存储设备之后,如果资源池中的存储设备的数量不满足分组阈值范围,可以在已有分组和新分组之间共享一个或多个存储设备。以此方式,可以尽可能地利用新增存储设备中的存储空间。
随着存储系统的运行,可以不断地向资源池中添加存储设备,因而资源池中的存储设备的数量将会变化。此时,可以释放部分或者全部共享存储设备,也即,可以将部分或者全部共享存储设备中的数据迁移至新添加的存储设备。在下文中,将参见图5描述再次添加存储设备的情况。图5示意性示出了根据本公开的一个实现方式的向资源池中添加更多存储设备的过程500的框图。图5中以阴影示出的存储设备134、…、136和212表示再次添加之前的一组共享存储设备220。可以向资源池添加存储设备510,此时可以向新分组中添加存储设备510以形成新分组520,并且可以释放一个共享存储设备(例如,存储设备134)。
具体地,可以将存储设备134中的第二部分存储空间中的数据迁移至存储设备510,并且将存储设备134中的全部存储空间分配给已有分组130。此时,一组共享存储设备530可以包括存储设备136、212等,并且分组130和520中的存储设备的数量都满足上阈值230和下限阈值240。
根据本公开的示例性实现方式,可以比较所述第三数量和所述上限阈值与所述新分组中的存储设备的数量之间的差。如果确定第三数量(表示为CNTadd2)高于该差值,则基于上限阈值仅能向新分组添加第三数量的存储设备中的一部分存储设备。此时可以释放全部共享存储设备,并且可以基于其余的存储设备来创建新的分组。如果其余存储设备的数量满足分组阈值范围,则可以按照常规技术方案来创建新的分组。如果其余存储设备的数量不满足分组阈值范围,则可以按照上文描述的方法300来创建新的分组。
根据本公开的示例性实现方式,可以确定上限阈值与新分组中的存储设备的数量之间的差值,并且比较第三数量和该差值。如果第三数量不高于该差值,可以向新分组添加第三数量的存储设备,并且此时新分组中的存储设备的数量不会超过上限阈值。
根据本公开的示例性实现方式,可以基于当前的一组共享存储设备是否为空来确定后续的步骤。如果一组共享存储设备为空(即,此时不存着任何共享存储设备),则可以按照已有技术方案或者上文描述的方法300来进行处理。如果一组共享存储设备非空(即,存在一个或多个共享存储设备),则可以比较一组共享存储设备的数量与第三数量,以便将一组共享存储设备中的至少一部分共享存储设备中的数据迁移至第三数量的存储设备。如果一组共享存储设备的数量高于第三数量,则只能利用第三数量的存储设备来替换一部分共享存储设备。如果一组共享存储设备的数量不高于第三数量,则可以利用第三数量的存储设备来替换全部共享存储设备。
在下文中,将参见图6描述有关释放共享存储设备的更多细节。图6示意性示出了根据本公开的一个实现方式的用于释放的共享存储设备的方法600的流程图。如果框610处的判断结果为否,则表示不存在共享存储设备,此时各个分组处于稳定工作状态,并且方法600直接前进至框670处。如果框610处的判断结果为是,则方法600前进至框620处,以便比较一组共享存储设备的数量CNTshare与新增存储设备的第三数量CNTadd2。
在框620处,如果判断结果为否,则表示可以释放全部共享存储设备。换言之,可以将全部共享存储设备中的“借用”部分中的数据迁移至新分组中的新增存储设备。方法600前进至框622处,以便将全部共享存储设备中的第二部分的数据迁移至新增的存储设备。具体地,可以从第三数量的存储设备中选择至少一个存储设备,在此至少一个存储设备的数量等于一组共享存储设备的数量。假设当前一组存储设备包括5个存储设备,并且向新分组添加了6个存储设备。可以从6个存储设备中任意选择5个存储设备来作为迁移目的地。进一步,可以将5个共享存储设备中的第二部分中的数据分别迁移至选择的5个存储设备。
在框620处,如果判断结果为是,则表示可以仅能释放一部分共享存储设备。此时方法600前进至框630处,以便从一组共享存储设备中选择共享存储设备的子集。将会理解,共享存储设备的工作负载较重,为了避免过重的工作负载造成瓶颈,优先地可以释放工作负载最重的一个或多个共享存储设备。在框630处,可以确定每个共享存储设备的工作负载。
在下文中,将参见图7描述有关确定将要被释放的共享存储设备的过程。图7示意性示出了根据本公开的一个实现方式的用于从一组共享存储设备中选择将要被释放的共享存储设备的过程700的框图。如图7所示,针对一组共享存储设备220中的每个存储设备134、...、136以及212,可以确定相应的工作负载710、...、712、714。在此可以基于上文描述的多个方面来确定工作负载,以便找到工作负载最重的存储设备。假设工作负载710高于其他存储设备的工作负载,则可以选择迁移存储设备134中的数据。
根据本公开的示例性实现方式,可以选择CNTadd2个存储设备以用于释放。返回图6,在框640处,可以选择工作负载最高的CNTadd2个共享存储设备。此时,选择的子集中的共享存储设备的数量等于CNTadd2。继续上文的示例,假设已有分组包括60个存储设备,第一次新增5个存储设备,向已有分组添加CNTadd,old=64-60=4个存储设备,并且向新分组中添加CNTadd,new=5-4=1个存储设备。此时一组共享存储设备包括5个存储设备(其中4个存储设备是新增的存储设备,并且1个存储设备是最初的60个存储设备中的一个存储设备)。假设第二次新增4个存储设备,新增存储设备的数量4小于一组共享存储设备的数量5,此时可以从一组存储设备中选择4个存储设备来作为子集。
根据本公开的示例性实现方式,可以确定一组共享存储设备中的每个共享存储设备的工作负载,并且按照工作负载来从一组共享存储设备中选择子集。可以优先地选择工作负载最重的存储设备来执行数据迁移。继续上述示例,目前一组共享存储设备包括5个存储设备,其中1个存储设备来自于已有分组中最初的60个存储设备,由于该存储设备的使用时间较长并且其中包括较多的数据,可以优先地将该存储设备添加至子集中。进一步,可以从一组共享存储设备中的其余4个存储设备中选择工作负载较重的3个存储设备,以便添加至子集中。
在框650处,可以将选择的共享存储设备中的第二部分数据迁移至新增的存储设备。在下文中,将参见图8描述有关迁移的更多细节。图8示意性示出了根据本公开的一个实现方式的用于从将要被释放的共享存储设备中迁移数据的过程800的框图。如图8所示,将要被释放的存储设备134可以包括第一部分810和第二部分812,其中第一部分810被分配给已有分组,而第二部分812被分配给新分组。可以将第二部分812中的数据迁移至新增的存储设备510。具体地,可以将选择的子集中的每个共享存储设备中的第二部分中的数据迁移至第三数量的存储设备。换言之,可以将4个共享存储设备中的分配给新分组的存储空间中的数据,分别迁移至新增的4个存储设备中。
将会理解,在此仅迁移共享存储设备中的第二部分(也即,分配给新分组的存储空间)中的数据。第一部分存储空间仍然属于已有分组。在已经完成数据迁移之后,共享存储设备中的全部存储空间都将属于已有分组。此时,可以更新分组的地址映射以使得分组包括子集中的每个共享存储设备的全部存储空间。进一步,可以从一组共享存储设备中移除子集中的共享存储设备。可以从一组共享存储设备中逐一移除已经完成数据迁移的每个共享存储设备。在完成从4个共享存储设备迁移数据之后,一组共享存储设备仅包括5-4=1个共享存储设备。在迁移之后,第二部分中的数据不再有用,因而如图6的框660所示,可以释放存储设备中的第二部分的存储空间。此时,存储设备134中的全部存储空间都将属于已有分组。
上文已经详细描述了释放共享存储设备的过程。在释放过程中,可以将共享存储设备中的分配给新分组的存储空间中的数据,迁移至新分组中的新增存储设备。以此方式,已有分组中的各个存储设备将逐步恢复到仅服务于一个分组的状态。
在框670处,可以执行负载平衡过程。换言之,如果发现某个分组中的存储设备的工作负载出现不平衡,则可以在该分组内部的多个存储设备之间执行负载平衡过程。例如,可以在已有分组中执行负载平衡过程、可以在新分组中执行负载平衡过程、或者可以在已有分组和新分组中都执行负载平衡过程。在此的负载平衡过程可以涉及多方面因素,例如,可以平衡存储设备中的存储空间的使用率、存储设备中的数据被访问的频率、存储设备的磨损度,等等。以此方式,可以平衡各个存储设备的工作负载,进而提高存储系统的性能和并且提高存储系统的响应速度。
在上文中已经参见图2至图8详细描述了根据本公开的方法的示例,在下文中将描述相应的装置的实现。根据本公开的示例性实现,提供了一种用于管理存储系统的资源池的装置。在此,资源池包括多个存储设备,多个存储设备被划分为至少一个分组,至少一个分组中的一个已有分组中的存储设备的第一数量不高于分组阈值范围的上限阈值。该装置包括:确定模块,配置用于根据确定第二数量的存储设备被添加至资源池,确定第一数量与第二数量的和;创建模块,配置用于根据确定第一数量与第二数量的和不满足分组阈值范围,基于第二数量的存储设备中的至少一部分创建新分组;添加模块,配置用于向已有分组中添加第二数量的存储设备中的另一部分存储设备;以及分配模块,配置用于将从已有分组中选择的一组共享存储设备中的每个存储设备中的第一部分存储空间分配至已有分组,以及将一组共享存储设备中的每个存储设备中的第二部分存储空间分配至新分组。根据本公开的示例性实现方式,该装置还包括用于执行上文描述的方法中的其他步骤的模块。
图9示意性示出了根据本公开的示例性实现的用于管理存储系统的资源池的设备900的框图。如图所示,设备900包括中央处理单元(CPU)901,其可以根据存储在只读存储器(ROM)902中的计算机程序指令或者从存储单元908加载到随机访问存储器(RAM)903中的计算机程序指令,来执行各种适当的动作和处理。在RAM 903中,还可存储设备900操作所需的各种程序和数据。CPU 901、ROM902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
设备900中的多个部件连接至I/O接口905,包括:输入单元906,例如键盘、鼠标等;输出单元907,例如各种类型的显示器、扬声器等;存储单元908,例如磁盘、光盘等;以及通信单元909,例如网卡、调制解调器、无线通信收发机等。通信单元909允许设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法300,可由处理单元901执行。例如,在一些实现中,方法300可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元908。在一些实现中,计算机程序的部分或者全部可以经由ROM 902和/或通信单元909而被载入和/或安装到设备900上。当计算机程序被加载到RAM 903并由CPU 901执行时,可以执行上文描述的方法300的一个或多个步骤。备选地,在其他实现中,CPU 901也可以以其他任何适当的方式被配置以实现上述过程/方法。
根据本公开的示例性实现方式,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器耦合的存储器,存储器具有存储于其中的指令,指令在被所述至少一个处理器执行时使得设备执行一种用于管理资源池的方法。资源池包括多个存储设备,多个存储设备被划分为至少一个分组,至少一个分组中的一个已有分组中的存储设备的第一数量不高于分组阈值范围的上限阈值,并且该方法包括:根据确定第二数量的存储设备被添加至资源池,确定第一数量与第二数量的和;根据确定第一数量与第二数量的和不满足分组阈值范围,基于第二数量的存储设备中的至少一部分创建新分组;向已有分组中添加第二数量的存储设备中的另一部分存储设备;以及将从已有分组中选择的一组共享存储设备中的每个存储设备中的第一部分存储空间分配至已有分组,以及将一组共享存储设备中的每个存储设备中的第二部分存储空间分配至新分组。
根据本公开的示例性实现方式,将第一部分存储空间分配至已有分组包括:基于第一部分存储空间,更新已有分组的地址映射;以及将第二部分存储空间分配至新分组包括:基于第二部分存储空间,更新新分组的地址映射。
根据本公开的示例性实现方式,该方法进一步包括:基于第二数量和下限阈值来选择一组共享存储设备。
根据本公开的示例性实现方式,选择一组共享存储设备包括:根据确定第二数量不低于分组阈值范围的下限阈值,从被添加至已有分组的另一部分存储设备中选择一组共享存储设备。
根据本公开的示例性实现方式,选择一组共享存储设备包括:根据确定第二数量低于分组阈值范围的下限阈值,从被添加至已有分组的另一部分存储设备以及第一数量的存储设备中选择一组共享存储设备。
根据本公开的示例性实现方式,从第一数量的存储设备中选择一组共享存储设备包括:基于第二数量以及分组阈值范围,确定一组共享存储设备中的来自第一数量的存储设备的目标数量;以及基于第一数量的存储设备中的各个存储设备的工作负载,从第一数量的存储设备中选择满足目标数量的至少一个存储设备。
根据本公开的示例性实现方式,选择满足目标数量的至少一个存储设备包括:根据确定选择的至少一个存储设备的空闲存储空间小于阈值比例,将选择的至少一个存储设备中的数据迁移至第一数量的存储设备中的另一存储设备。
根据本公开的示例性实现方式,该方法进一步包括:针对一组共享存储设备中的给定共享存储设备,从给定共享存储设备的空闲存储空间中,确定第二部分存储空间;以及从给定共享存储设备中的第二部分存储空间以外的存储空间中,确定第一部分存储空间。
根据本公开的示例性实现方式,该方法进一步包括:根据确定第三数量的存储设备被添加至资源池,比较第三数量和上限阈值与新分组中的存储设备的数量之间的差;根据确定第三数量不高于差,向新分组添加第三数量的存储设备;以及根据确定一组共享存储设备非空,将一组共享存储设备中的至少一部分共享存储设备中的数据迁移至第三数量的存储设备。
根据本公开的示例性实现方式,将至少一部分共享存储设备中的数据迁移至第三数量的存储设备包括:根据确定一组共享存储设备的数量不高于第三数量,从第三数量的存储设备中选择至少一个存储设备,至少一个存储设备的数量等于一组共享存储设备的数量;以及分别将一组共享存储设备中的每个共享存储设备中的第二部分中的数据迁移至选择的至少一个存储设备。
根据本公开的示例性实现方式,该方法进一步包括:更新已有分组的地址映射以使得已有分组包括一组共享存储设备中的每个共享存储设备的全部存储空间。
根据本公开的示例性实现方式,将至少一部分共享存储设备中的数据迁移至第三数量的存储设备包括:根据确定一组共享存储设备的数量高于第三数量,从一组共享存储设备中选择共享存储设备的子集,选择的子集中的共享存储设备的数量等于第三数量;将选择的子集中的每个共享存储设备中的第二部分中的数据迁移至第三数量的存储设备;以及从一组共享存储设备中移除子集中的共享存储设备。
根据本公开的示例性实现方式,该方法进一步包括:更新已有分组的地址映射以使得已有分组包括子集中的每个共享存储设备的全部存储空间。
根据本公开的示例性实现方式,从一组共享存储设备中选择子集包括:根据一组共享存储设备中的每个共享存储设备的工作负载,从一组共享存储设备中选择子集。
根据本公开的示例性实现方式,该方法进一步包括:根据确定第三数量的存储设备被添加至资源池,比较第三数量与上限阈值与新分组中的存储设备的数量之间的差;根据确定第三数量高于差,基于上限阈值,向新分组添加第三数量的存储设备中的一部分存储设备。
根据本公开的示例性实现方式,该方法进一步包括:针对已有分组和新分组中的任一项中的存储设备中的数据执行负载平衡。
根据本公开的示例性实现方式,分组阈值范围的上限阈值和下限阈值分别定义至少一个分组中的各个分组中的存储设备的数量的上限和下限,以及下限阈值是基于存储系统的条带的宽度和后备存储设备的数量所确定的。
根据本公开的示例性实现方式,至少一个分组中的已有分组以外的其他分组中的存储设备的数量分别等于上限阈值。
根据本公开的示例性实现,提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,机器可执行指令用于执行根据本公开的方法。
根据本公开的示例性实现,提供了一种计算机可读介质。计算机可读介质上存储有机器可执行指令,当机器可执行指令在被至少一个处理器执行时,使得至少一个处理器实现根据本公开方法。
本公开可以是方法、设备、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实现中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实现的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其他可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其他可编程数据处理装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实现的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实现,上述说明是示例性的,并非穷尽性的,并且也不限于所公开的各实现。在不偏离所说明的各实现的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实现的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文公开的各实现。
Claims (20)
1.一种用于管理存储系统的资源池的方法,所述资源池包括多个存储设备,所述多个存储设备被划分为至少一个分组,所述至少一个分组中的一个已有分组中的存储设备的第一数量不高于分组阈值范围的上限阈值,所述方法包括:
根据确定第二数量的存储设备被添加至所述资源池,确定所述第一数量与所述第二数量的和;
根据确定所述第一数量与所述第二数量的所述和不满足所述分组阈值范围,基于所述第二数量的存储设备中的至少一部分创建新分组;
向所述已有分组中添加所述第二数量的存储设备中的另一部分存储设备;以及
将从所述已有分组中选择的一组共享存储设备中的每个存储设备中的第一部分存储空间分配至所述已有分组,以及将所述一组共享存储设备中的每个存储设备中的第二部分存储空间分配至所述新分组,
其中所述分配对组织所述存储设备有效以使得:
所述一组共享存储设备中的每个存储设备既是所述已有分组的成员,也是所述新分组的成员;
所述已有分组中包括所述共享存储设备的存储设备的数量等于所述上限阈值;以及
所述新分组中包括所述共享存储设备的存储设备的数量高于或等于所述分组阈值范围的下限阈值。
2.根据权利要求1所述的方法,其中:
将所述第一部分存储空间分配至所述已有分组包括:基于所述第一部分存储空间,更新所述已有分组的地址映射;以及
将所述第二部分存储空间分配至所述新分组包括:基于所述第二部分存储空间,更新所述新分组的地址映射。
3.根据权利要求1所述的方法,进一步包括:基于所述第二数量和所述分组阈值范围的所述下限阈值来选择所述一组共享存储设备。
4.根据权利要求3所述的方法,其中选择所述一组共享存储设备包括:
根据确定所述第二数量不低于所述分组阈值范围的所述下限阈值,从被添加至所述已有分组的所述另一部分存储设备中选择所述一组共享存储设备。
5.根据权利要求3所述的方法,其中选择所述一组共享存储设备包括:
根据确定所述第二数量低于所述分组阈值范围的所述下限阈值,从被添加至所述已有分组的所述另一部分存储设备以及所述第一数量的存储设备中选择所述一组共享存储设备。
6.根据权利要求5所述的方法,其中从所述第一数量的存储设备中选择所述一组共享存储设备包括:
基于所述第二数量以及所述分组阈值范围,确定所述一组共享存储设备中的来自所述第一数量的存储设备的目标数量;以及
基于所述第一数量的存储设备中的各个存储设备的工作负载,从所述第一数量的存储设备中选择满足所述目标数量的至少一个存储设备。
7.根据权利要求6所述的方法,其中选择满足所述目标数量的所述至少一个存储设备包括:根据确定选择的所述至少一个存储设备的空闲存储空间小于阈值比例,将选择的所述至少一个存储设备中的数据迁移至所述第一数量的存储设备中的另一存储设备。
8.根据权利要求7所述的方法,进一步包括:针对所述一组共享存储设备中的给定共享存储设备,
从所述给定共享存储设备的空闲存储空间中,确定所述第二部分存储空间;以及
从所述给定共享存储设备中的所述第二部分存储空间以外的存储空间中,确定所述第一部分存储空间。
9.根据权利要求1所述的方法,进一步包括:
根据确定第三数量的存储设备被添加至所述资源池,比较所述第三数量和所述上限阈值与所述新分组中的存储设备的数量之间的差;
根据确定所述第三数量不高于所述差,向所述新分组添加所述第三数量的存储设备;以及
根据确定所述一组共享存储设备非空,将所述一组共享存储设备中的至少一部分共享存储设备中的数据迁移至所述第三数量的存储设备。
10.根据权利要求9所述的方法,其中将所述至少一部分共享存储设备中的所述数据迁移至所述第三数量的存储设备包括:
根据确定所述一组共享存储设备的数量不高于所述第三数量,从所述第三数量的存储设备中选择至少一个存储设备,所述至少一个存储设备的数量等于所述一组共享存储设备的数量;以及
分别将所述一组共享存储设备中的每个共享存储设备中的所述第二部分中的数据迁移至选择的所述至少一个存储设备。
11.根据权利要求10所述的方法,进一步包括:更新所述已有分组的地址映射以使得所述已有分组包括所述一组共享存储设备中的每个共享存储设备的全部存储空间。
12.根据权利要求9所述的方法,其中将所述至少一部分共享存储设备中的所述数据迁移至所述第三数量的存储设备包括:
根据确定所述一组共享存储设备的数量高于所述第三数量,从所述一组共享存储设备中选择共享存储设备的子集,选择的所述子集中的共享存储设备的数量等于所述第三数量;
将选择的所述子集中的每个共享存储设备中的第二部分中的数据迁移至所述第三数量的存储设备;以及
从所述一组共享存储设备中移除所述子集中的共享存储设备。
13.根据权利要求12所述的方法,进一步包括:更新所述已有分组的地址映射以使得所述已有分组包括所述子集中的每个共享存储设备的全部存储空间。
14.根据权利要求12所述的方法,其中从所述一组共享存储设备中选择所述子集包括:根据所述一组共享存储设备中的每个共享存储设备的工作负载,从所述一组共享存储设备中选择所述子集。
15.根据权利要求1所述的方法,进一步包括:
根据确定第三数量的存储设备被添加至所述资源池,比较所述第三数量与所述上限阈值与所述新分组中的存储设备的数量之间的差;
根据确定所述第三数量高于所述差,基于所述上限阈值,向所述新分组添加所述第三数量的存储设备中的一部分存储设备。
16.根据权利要求1所述的方法,进一步包括:针对所述已有分组和所述新分组中的任一项中的存储设备中的数据执行负载平衡。
17.根据权利要求1所述的方法,其中所述分组阈值范围的所述上限阈值和所述下限阈值分别定义所述至少一个分组中的各个分组中的存储设备的数量的上限和下限,以及所述下限阈值是基于所述存储系统的条带的宽度和后备存储设备的数量所确定的。
18.根据权利要求17所述的方法,其中所述至少一个分组中的所述已有分组以外的其他分组中的存储设备的数量分别等于所述上限阈值。
19.一种电子设备,所述设备包括:
至少一个处理器;以及
与所述至少一个处理器耦合的存储器,所述存储器具有存储于其中的指令,所述指令在被所述至少一个处理器执行时使得所述设备执行一种用于管理资源池的方法,所述方法包括根据权利要求1-18中的任一项所述的方法。
20.一种计算机程序产品,所述计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,所述机器可执行指令用于执行根据权利要求1-18中的任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011308120.XA CN114518836B (zh) | 2020-11-20 | 管理存储系统的存储资源池的方法、设备和程序产品 | |
US17/201,521 US11709755B2 (en) | 2020-11-20 | 2021-03-15 | Method, device, and program product for managing storage pool of storage system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011308120.XA CN114518836B (zh) | 2020-11-20 | 管理存储系统的存储资源池的方法、设备和程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114518836A CN114518836A (zh) | 2022-05-20 |
CN114518836B true CN114518836B (zh) | 2024-07-05 |
Family
ID=
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10296252B1 (en) * | 2018-01-31 | 2019-05-21 | EMC IP Holding Company LLC | Reducing drive extent allocation changes while splitting a group of storage drives into partnership groups in response to addition of a storage drive to an array of storage drives in a data storage system that uses mapped RAID (redundant array of independent disks) technology |
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10296252B1 (en) * | 2018-01-31 | 2019-05-21 | EMC IP Holding Company LLC | Reducing drive extent allocation changes while splitting a group of storage drives into partnership groups in response to addition of a storage drive to an array of storage drives in a data storage system that uses mapped RAID (redundant array of independent disks) technology |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110413201B (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
CN110737391B (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
CN110413203B (zh) | 用于管理存储系统的方法、设备和计算机可读介质 | |
CN111104055B (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
CN109725830B (zh) | 管理独立磁盘冗余阵列的方法、设备和存储介质 | |
US10616134B1 (en) | Prioritizing resource hosts for resource placement | |
CN112764661A (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
CN110413208B (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
US10152235B2 (en) | Data integrity and acceleration in compressed storage environments in combination with software defined native RAID | |
CN111124250A (zh) | 用于管理存储空间的方法、设备和计算机程序产品 | |
CN112748867B (zh) | 用于存储管理的方法、电子设备以及计算机程序产品 | |
CN112948279A (zh) | 管理存储系统中的访问请求的方法、设备和程序产品 | |
CN112732168B (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
CN113590019B (zh) | 用于存储管理的方法、电子设备和计算机程序产品 | |
US11403026B2 (en) | Method, device and computer program product for managing storage system | |
CN112748862A (zh) | 用于管理盘的方法、电子设备和计算机程序产品 | |
CN108733307B (zh) | 存储管理方法、设备以及计算机可读介质 | |
US10594620B1 (en) | Bit vector analysis for resource placement in a distributed system | |
CN114518836B (zh) | 管理存储系统的存储资源池的方法、设备和程序产品 | |
CN112748848A (zh) | 用于存储管理的方法、设备和计算机程序产品 | |
US11709755B2 (en) | Method, device, and program product for managing storage pool of storage system | |
CN112764665B (zh) | 存储管理的方法、设备和计算机程序产品 | |
US20200174885A1 (en) | Write-balanced parity assignment within a cluster | |
CN113391758B (zh) | 在存储系统中管理条带的方法、设备和计算机程序产品 | |
CN112748860B (zh) | 用于存储管理的方法、电子设备和计算机程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |