CN112748864B - 分配存储盘的方法、电子设备和计算机程序产品 - Google Patents
分配存储盘的方法、电子设备和计算机程序产品 Download PDFInfo
- Publication number
- CN112748864B CN112748864B CN201911052954.6A CN201911052954A CN112748864B CN 112748864 B CN112748864 B CN 112748864B CN 201911052954 A CN201911052954 A CN 201911052954A CN 112748864 B CN112748864 B CN 112748864B
- Authority
- CN
- China
- Prior art keywords
- storage disks
- storage
- disks
- capacity
- disk
- 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 748
- 238000000034 method Methods 0.000 title claims abstract description 72
- 238000004590 computer program Methods 0.000 title abstract description 15
- 238000009826 distribution Methods 0.000 description 33
- 230000008569 process Effects 0.000 description 28
- 238000010586 diagram Methods 0.000 description 19
- 238000012545 processing Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 230000003287 optical effect Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000001174 ascending effect Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 101000682954 Homo sapiens Ribosome biogenesis regulatory protein homolog Proteins 0.000 description 2
- 102100023902 Ribosome biogenesis regulatory protein homolog Human genes 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000006872 improvement Effects 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
- 230000008859 change Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3442—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for planning or managing the needed capacity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/81—Threshold
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开的实施例提供了一种分配存储盘的方法、电子设备和计算机程序产品,该方法包括:从待分配的多个存储盘中确定多组存储盘,每组存储盘包括与一个盘阵列相对应的存储盘。从多组存储盘中,选择一组目标存储盘,该一组目标存储盘具有的不可用容量低于第一阈值容量。基于多个存储盘来构建存储盘集合,该存储盘集合至少包括该一组目标存储盘。以此方式,通过较少的计算开销就能够找到具有优化的可用容量的存储盘集合。
Description
技术领域
本公开的实施例涉及计算机领域,并且更具体地,涉及分配存储盘的方法、电子设备和计算机程序产品。
背景技术
在基于独立盘冗余阵列(RAID)的存储系统中,常常存在很多盘,也称为存储盘。如果一个存储盘发生故障,存储系统可以利用其它存储盘中的数据来对故障盘中的数据进行恢复。然而当存储盘的数目过多的时候,整个存储系统的出现故障的可能性上升。一般而言,存储盘的数目需要被限制。该有限数目的存储盘的集合通常被称为RAID弹性集(RAIDResiliency Set,简称RRS)。因此,如何有效地将存储系统中的多个存储盘分配成为多个集合,来降低存储盘故障所带来的风险,成为当前的一个关注焦点。
发明内容
本公开的实施例提供了一种分配存储盘的方案。
在本公开的第一方面中,提供了一种分配存储盘的方法。该方法包括:从待分配的多个存储盘中确定多组存储盘,每组存储盘包括与一个盘阵列相对应的存储盘;从多组存储盘中,选择一组目标存储盘,该一组目标存储盘具有的不可用容量低于第一阈值容量;以及基于多个存储盘来构建存储盘集合,该存储盘集合至少包括该一组目标存储盘。
在本公开的第二方面中,提供了一种电子设备。该设备包括:处理器;以及与处理器耦合的存储器,存储器具有存储于其中的指令,指令在被处理器执行时使设备执行动作,动作包括:从待分配的多个存储盘中确定多组存储盘,每组存储盘包括与一个盘阵列相对应的存储盘;从多组存储盘中,选择一组目标存储盘,该一组目标存储盘具有的不可用容量低于第一阈值容量;以及基于多个存储盘来构建存储盘集合,该存储盘集合至少包括一组该目标存储盘。
在本公开的第三方面中,提供了一种计算机程序产品,计算机程序产品被有形地存储在计算机可读介质上并且包括机器可执行指令,机器可执行指令在被执行时使机器执行根据第一方面的方法的任意步骤。
提供发明内容部分是为了简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或主要特征,也无意限制本公开的范围。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。在附图中:
图1示出了根据本公开的实施例的示例性环境的示意图;
图2A示出了根据本公开实施例的存储系统的示意图;
图2B和图2C分别示出了两个存储盘分配的示例;
图3示出了根据本公开的实施例的分配存储盘的过程的流程图;
图4示出了根据本公开的实施例的用于确定多组存储盘的过程的流程图;
图5示出了根据本公开的一个实施例的确定多组存储盘的候选组合的示意图;
图6示出了根据本公开的实施例的用于确定一组附加存储盘的过程的流程图;
图7A和图7B分别示出了根据本公开的实施例的基于低容量的存储盘池来确定一组附加存储盘的示意图;以及
图8示出了可以用来实施本公开的实施例的示例设备的框图。
具体实施方式
下面将参考附图中示出的若干示例实施例来描述本公开的原理。虽然附图中显示了本公开的优选实施例,但应当理解,描述这些实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
图1示出了根据本公开的示例性环境的示意图。如图1所示的环境100包括分配设备102和存储系统104。
在一个示例中,存储系统104包括具有不同容量的多个存储盘,例如具有第一容量C1的多个第一存储盘106-A,具有第二容量C2的多个第二存储盘106-B和具有第三容量C3的多个第三存储盘106-C。存储系统104还可以包括具有其他的不同容量的存储盘。多个存储盘可以被分配为一个或多个存储盘集合,存储盘集合的一个示例是RAID弹性集合(RAIDResilience Set,RRS)。
存储盘可以是各种类型的具有存储功能的设备,包括但不限于,硬盘(HDD)、固态盘(SSD)、可移除盘、紧致盘(CD)、激光盘、光盘、数字多功能盘(DVD)、软盘、蓝光盘、串行附接小型计算机系统接口(SCSI)存储盘(SAS)、串行高级技术附接(SATA)存储盘、任何其他磁性存储设备和任何其他光学存储设备、或它们的任何组合。多个存储盘可以构建盘阵列,盘阵列的一个示例可以例如是独立冗余盘阵列(RAID)。
如图1中所示,第一存储盘106-A可以包括多个盘切片(drive slice)108-A、第二存储盘106-B可以包括多个盘切片108-B以及第三存储盘106-C包括多个盘切片108-C。存储盘集合可以包括多个盘切片集合(例如,Uber)。盘切片集合可以被视为一个小的RAID(相对于由多个物理存储盘组成的大型RAID),用于向映射器提供物理存储空间。可以使用RAID算法向盘切片集合读取/写入数据。例如,如果RAID的类型是4+1的RAID-5来创建一个RAID组,则可以从不同的存储盘中分配5个空闲的存储块,并且将该5个存储块组合成小型的RAID。
形成盘切片集合中的盘切片不一定来自同一存储盘,在一个示例中,形成盘切片集合中的盘切片可以来自多个不同存储盘,只要该多个不同的存储盘位于同一存储盘集合内即可。
在一个示例中,存储系统采用盘阵列宽度为4+1的RAID 5。盘阵列的宽度为4+1的RAID 5表示形成RAID 5的存储盘的数目为4+1=5个,其中4个存储盘存储数据,1个存储盘存储校验数据。盘阵列的宽度是指形成盘阵列中的盘的数目。在其他的示例中,还可以采用盘阵列宽度为4+1的RAID 5、盘阵列宽度为8+1的RAID 5或盘阵列宽度为16+1的RAID 5。
在一个示例中,针对盘阵列宽度为4+1的RAID 5,一个盘切片集合可以具有16GB的大小,其中每个盘切片可以是具有4GB的容量。上述示例仅是用于说明,而非对本公开的限定。在其他示例中,可以根据需要设置任意容量大小的盘切片和盘切片集合。
分配设备102被配置为将多个第一存储盘106-A、多个第二存储盘106-B和多个第三存储盘106-C相应地分配到多个存储盘集合中。所获得的存储盘集合一般需要满足一些条件。例如,当存储盘(或盘切片)发生故障时,需要对存储盘集合中所有存储盘进行重建以保证数据的可靠性,然而存储盘的数目较多时,该重建过程将相当漫长。因而当存储盘的总数较多时,分配设备能够有利地将多个存储盘分配到多个存储盘集合,这有利于快速的数据重建,同时保证较高的可靠性。
分配设备102可以与存储系统104通信地耦合在一起,并且动态地获取存储系统中存储盘的总数目以及存储盘相应的容量。分配设备102也可以是存储系统内的一部分,例如存储系统内的控制器,本公开的实施例对此不限定。
在一个示例中,分配设备102可以周期性地检测存储系统中存储盘的总数目以及存储盘相应的容量,例如每隔一天检测一次。在另一示例中,分配设备102可以响应于存储盘接口控制器感测到新的存储盘的插入,来检测存储系统中存储盘的总数目以及存储盘相应的容量。分配设备102还可以根据存储系统中存储盘更新的总数目以及这些存储盘相应的容量,来确定是否需要对存储盘进行重新分配以重新确定更新的存储盘集合。
图2A示出了根据本公开的实施例的存储系统的一个示例。参考图2A,存储系统200中的初始的存储盘集合210中包含多个具有第一物理存储容量C1的第一存储盘206-A、多个具有第二物理存储容量C2的第二存储盘206-B以及多个具有第三物理存储容量C3的第三存储盘206-C,其中C2>C1>C3。
在参考图2A所描述的一个示例存储系统中,第一存储盘206-A的数目是8个,第二存储盘206-B的数目是12个以及第三存储盘206-C的数目是3个,即存储系统200包括23个不同类型的存储盘。第一存储盘206-A可以包括多个盘切片208-A、第二存储盘206-B可以包括多个盘切片208-B以及第二存储盘206-C包括多个盘切片208-C。
在该示例中,考虑到存储系统可靠性的要求,可以设置存储盘集合最多包括25个存储盘。故然而,当新添加了3个第一存储盘206-A和1个第三存储盘206-C时,该存储系统200将总共包含27个存储盘。由于超出了允许被包括存储盘集合中的存储盘的数目25,27个存储盘将被重新分配,以确定2个新的存储盘集合。
上述示例仅是用于说明,而非对本公开的限定。在其他示例中,可以根据需要设置任意容量大小的存储盘和相应的存储盘数目,以及允许被包括存储盘集合中的存储盘的数目。
一般而言,期望分配后的存储盘集合具有大的总有效容量。有效容量指代能够被用于向盘切片集合提供可用的盘切片的存储盘容量。然而,由于存储盘可能具有不同的容量,不同分配方式中的多个存储盘集合所具有的总有效容量并不一定相同。
出于可靠性的目的,存储盘集合中一般需要保留一些保留容量。通过这样的方式,当存储盘集合中存在故障盘(例如,一个故障盘,或者一个或多个故障盘切片),需要对存储盘集合的数据进行重建时,该存储盘集合中的盘切片集合能够继续服务于输入输出(I/O),并且仍然具有用以保护用户数据的RAID算法。
在一些示例中,该保留容量等于存储盘集合中的、一个具有最大有效容量的存储盘的容量。因此,需要至少包括与一个盘阵列相对应的存储盘才能够构建存储盘集合。例如,在盘阵列宽度为4+1的RAID5中,需要4个存储盘存储数据,1个存储盘存储校验数据和一个保留盘,也就是说需要至少6个存储盘才能构建存储盘集合(例如RRS)。在其他示例中,可以根据需要设置任意容量大小的保留容量。
另外,由于在同一存储盘集合中的存储盘的容量不一定彼此相同,故可能有一些盘的一些盘切片并不能被用于存储。这将在下面参考图2B和图2C来详细说明。
图2B和图2C分别示出了对如上参考图2A所描述的示例存储系统中的存储盘进行分配后,所获得的存储盘集合的两个示例。该两个示例可以采用传统的分配方法例如随机分配而获得。
在图2B中所示出的一个分配示例中,经分配的存储系统240中的第一存储盘集合210A包含8个第一存储盘206-A、12个第二存储盘206-B和1个第三存储盘206-C,而第二存储盘集合220A中包含3个第一存储盘206-A和3个第三存储盘206-C。第一存储盘206-A可以包括多个盘切片208-A、第二存储盘206-B可以包括多个盘切片208-B以及第二存储盘206-C包括多个盘切片208-C。
在图2C中所示出的另一个分配示例中,经分配的存储系统280中的第一存储盘集合210B包含5个206-A,12个206-B、和4个206-C,而第二存储盘集合220B中包含6个206-A。该两个分配示例中的存储系统240和存储系统280的总有效容量不相同,其将在下文中详细说明。
现在参考图2B,图2B中的第二存储盘集合220A总共具有6个存储盘,即3个第一存储盘206-A和3个第三存储盘206-C,其中一个第一存储盘206-A可被视作包含第一部分216、以及第二部分218,而一个存储盘206-C可被视作包含第二部分218。
在该示例中,第二存储盘集合220A中的具有第二部分218的盘的数目是6个,因而第二部分218可以被用于向盘切片集合提供可用的盘切片。然而,第二存储盘集合220A中的具有第一部分216的盘的数目是3个,由于数目不足(3,因而小于6),该3个第一存储盘206-A的第一部分不能被用于向盘切片集合提供可用的盘切片,而这会导致存储盘的该部分物理存储容量的浪费。
换言之,第二存储盘集合220A的三个存储盘206-A中的每个均存在浪费容量(其大小对应于第一部分216),第一部分216中包含不能被用于提供可用的存储的一些盘切片208-A。从图2B中可以看出,该存储盘集合220A中具有最大有效容量的盘的容量等于C3,故可以限定保留容量是C3。仅出于解释的目的,保留容量被标识为图2B中的框214。
保留容量和浪费容量均不能够被用于提供可用的盘切片,故被认为是存储盘集合中的不可用容量。
有鉴于此,图2B中的第二存储盘集合220A的6个存储盘的总物理容量等于3*C3+3*C1,移除浪费容量后的总物理容量等于6*C3,然后再移除保留容量C3后,最终可被用于向盘切片集合提供可用的盘切片的总有效容量等于5*C3。因此,存储盘集合220A的不可用容量等于3*C1-2*C3。
在图2B中的第一存储盘集合210A中,由于存储盘的各个部分所对应的盘数目均大于6,故没有浪费容量,存储盘集合220A的不可用容量等于C2,即等于保留容量。仅出于解释的目的,保留容量被标识为图2B中的框212。
因此,存储系统240的不可用容量是存储盘集合220A的不可用容量和存储盘集合220A的不可用容量之和,即3*C1-2*C3+C2。
类似地,在图2C中,经分配的存储系统280中的第一存储盘集合210B没有浪费容量,并且保留容量是C2(被标识为图2C中的框222)。第二存储盘集合220B没有浪费容量,并且保留容量是C1(被标识为图2C中的框224)。因而存储系统280的不可用容量是C1+C2。
换言之,在经分配的的存储盘集合中,由于不同的存储盘具有的不同的容量,存储盘集合(组)的不可用容量至少包括保留容量。可选地,存储盘集合(组)的不可用容量还包括一个或多个存储盘的浪费容量。
从图2B和图2C的示例中可以看出,例如通过随机分配而获得的不同的存储盘集合分配方式所对应的不可用容量是不同的。因此,一般需要通过比较不同的存储盘集合分配方式中的存储系统的不可用容量,来确定最终优化的存储盘集合。
图2B和图2C仅是多种分配方式中的两个示例,还可能存在大量的其他分配方式。可以例如通过使用回溯(backtracking)算法,来遍历整个存储盘集合分配方式的解空间来获得诸如图2B和图2C示出的存储盘集合的分配方式,并且从所有的分配方式中找出优化的分配方式。
然而,例如针对图2A示出的示例,由于总共有27个待分配的存储盘并且这些存储盘期望被分配成两个存储盘集合,每个存储盘均有两个分配选项,即被分配到第一存储盘集合或被分配到第二存储盘集合。以这样的方式,存储盘分配方式的解空间中总共有227个解需要被遍历后,才能找到优化的分配方式。因此,使用回溯方法对存储盘进行分配是复杂且费时的,会导致较大的计算开销,尤其是在经常有新的存储盘被加入存储系统中导致需要经常进行存储盘集合分配的更新的情况下。
本公开的实施例提供了分配诸如图2A所示出的多个存储盘,以形成存储盘集合的方法。在该方法中,首先从多个存储盘中,确定多组存储盘,接着从多组存储盘中确定不可用容量低的一组存储盘,然后以所选择的这一组存储盘为基础,来构建存储盘集合。以此方法,可以快速地获得存储盘集合(诸如RRS)。
下文将结合图3至图7详细描述分配存储盘的方法的过程。为了便于理解,在下文描述中提及的具体数据均是示例性的,并不用于限定本公开的保护范围。
图3示出了根据本公开的实施例的分配存储盘的过程或方法300的流程图。在某些实施例中,方法300可以在图1中示出的分配设备102和/或其他具有类似能力的设备中实现。现参考图2B来描述根据本公开实施例的方法300。
在320,分配设备102从待分配的多个(例如N个)存储盘中确定多组(例如M组)存储盘,每组存储盘包括与一个盘阵列相对应的存储盘。
在一些实施例中,一个盘阵列相对应的存储盘指代与RAID宽度相对应的数目的存储盘,例如,对于盘阵列宽度是4+1=5的RAID,与一个盘阵列相对应的存储盘是6个存储盘(即RAID宽度+1)。在一些实施例,分配设备102可以遍历所有N个存储盘以确定M组存储盘,该M组存储盘的并集包括所有N个存储盘,并且M组存储盘互不相同。在一些实施例中,分配设备102可以根据多个存储盘的容量,对其排序,随后在经排序的多个存储盘中执行上述遍历过程,以确定多组存储盘。
在340,分配设备102从M组存储盘中,选择一组目标存储盘,该一组目标存储盘具有的不可用容量低于第一阈值容量。
第一阈值容量可以通过多种方式来确定。在一些实施例中,分配设备102可以计算M组存储盘具有的相应的M个不可用容量,并且从该M个不可用容量,确定第一阈值容量。
在一些实施例中,分配设备102可以通过迭代地将该M个不可用容量相比较,以便将M个不可用容量中次低的不可用容量确定为第一阈值容量。备选地,分配设备102还可以通过对M个不可用容量进行排序的方式来确定第一阈值容量。接着,分配设备102可以从M组存储盘中,选择具有低于第一阈值容量的不可用容量的一组目标存储盘。
例如,在次低的不可用容量被确定为第一阈值容量的情况下,该选择的一组目标存储盘具有最低的不可用容量。以这样的方式,分配设备102可以快速从多组存储盘中,选择出具有最低的不可用容量(如上面所讨论的,其包括保留容量,以及可选地浪费容量)的一组存储盘。
在另一些实施例中,还可以通过其他方式来设定第一阈值容量,例如根据分配设备的计算开销情况予以确定,或者是由用户人为地规定,本公开的实施例对此并不限定。
在一些实施例中,如果若干组存储盘具有的不可用容量均低于第一阈值容量,在这种情况下,分配设备102可以选择排序靠前的一组存储盘作为该一组目标盘。备选地,分配设备还可以根据多个存储盘的容量分布情况,来从若干组存储盘中选择一组目标存储盘,使得剩余的存储盘分布有利于后续步骤的执行。
在360,分配设备102基于多个存储盘来构建存储盘集合,存储盘集合至少包括该一组目标存储盘。
由于一组目标存储盘是在所有可能的多组存储盘中选择出来的优化解,其具有优化的(例如最低的)不可用容量。以该一组目标存储盘连同其余的多个存储盘来构建存储盘集合,能够使得构建的存储盘集合的不可用容量大约等于(例如等于)一组目标存储盘的不可用容量。换言之,一组目标存储盘可以决定构建的存储盘集合的不可用容量。由于,存储盘集合的不可用容量与存储系统的总有效容量是相关联的,因此,通过一组目标存储盘(例如,其具有最低的不可用容量)来构建存储盘集合,可以有利地保证存储系统的总有效容量。
如上面所讨论的,一组目标存储盘已经包括构建盘阵列所需要的多个盘。在保证可靠性的前提下,通常期望分配后的存储盘集合的数目越少越好,以降低管理的复杂度。在一些实施例中,可以针对存储盘集合包含的存储盘数目设置一个上限值(被表示为Dmax),并且可以根据存储盘的总数目N通过以下公式(1)来确定分配后的存储盘集合的个数(被表示为Snum):
其中表示对计算结果向上取整。
对于将要构建的存储盘集合,则需要满足以下条件:
LT=Max(Dmin,N-(Snum-1)*Dmax) (2)
UT=Min(Dmax,N-(Snum-1)*Dmin) (3)
其中Min()表示取两个值中的较小值,Max()表示取两个值中的较大值,Dmin表示与RAID宽度相对应的存储盘的数目(例如,一个盘阵列相对应的存储盘),LT表示将要构建的存储盘集合允许包含的存储盘的数目范围的下限,以及UT表示将要构建的存储盘集合允许包含的存储盘数目范围的上限,即第一数目。换言之,上述公式(2)和(3)限定了将要构建的存储盘集合允许包含的存储盘数目范围。
通过上述公式(1)至(3)可以确定允许被包括存储盘集合中的存储盘的第一数目。需注意的是,分配设备可以在任何时刻执行上述计算存储盘数目范围的步骤,例如在步骤320之前。
在一个示例中,假设总共有60个待分配存储盘,针对盘阵列宽度为4+1的RAID 5(Dmin=6),限定Dmax是25。分配设备102可以依据公式(1)计算出Snum是3,依据公式(2)计算出LT是10,依据公式(3)计算出UT是25。也就是说将要构建的存储盘集合包含的存储盘数目的范围R是10≤R≤25。
上述示例仅是用于说明,而实施例不限于此。可以基于需要,采用任意合适的盘阵列类型和盘阵列宽度,以及存储盘集合包含的存储盘数目的上限值Dmax。
在一些实施例中,除了一组目标存储盘以外,存储盘集合中还可以包括更多的存储盘,只要构建的存储盘集合中的盘数在上述存储盘数目范围之中即可。因此,分配设备102可以基于第一数目,从多个存储盘中,选择与一组目标存储盘不同的一组附加存储盘。该一组附加存储盘的每个存储盘的容量小于或等于一组目标存储盘中每个存储盘的容量。当向一组目标存储盘中添加具有较低容量的存储盘时,并不会影响整个存储盘集合的的不可用容量。例如,转回到图2B,在向第二存储盘集合220A中添加3个另外的206-C的情况下,新的第二存储盘集合220A不可用容量仍将保持不变,即3*C1-2*C3。
在一些实施例中,当一个存储盘集合被构建以后,分配设备102可以进一步确定剩余的存储盘是否需要继续分配。响应于积极的确定,分配设备102可以继续执行300中的过程,以构建多个另外的存储盘集合。响应于否定的确定,分配设备102可以直接将剩余的存储盘作为一个另外的存储盘集合。这种确定可以例如基于公式(1)来确定。以这样的方式,分配设备102能够在每一次执行300中的过程时,找到优化的存储盘集合。
在另一些实施例中,响应于检测装置(例如,由图1中的分配设备102或存储系统104的中的组件所提供)检测到存储系统中存储盘数目的改变,分配设备102可以重新执行300中的过程,以确定更新的多个存储盘集合。
在又一些实施例中,还可以检测并且确定待分配的多个存储盘的容量是否一致。响应于一致的确定,分配设备102可以直接依据Dmin和Dmax来确定多个存储盘集合。需要注意的是该检测容量的过程可以发生在任何一次分配过程中。
通过实施上述以存储盘组为单位的分配过程,分配设备能够在较小的分配方案的解空间中来寻找具有优化的不可用容量的分配方案,从而通过较少的计算开销就能够找到具有优化的可用容量的存储盘集合。而且,所确定出的存储盘集合不会影响后续一个或多个另外的存储盘集合的构建过程。通过再次执行该分配过程,可以从剩余的存储盘中构建具有优化的可用容量的一个或多个另外的存储盘集合。
图4示出了根据本公开的实施例的用于确定多组存储盘的过程或方法400的流程图。具体地,图4是详细描述图3中的320具体过程。在某些实施例中,方法400可以在图1中示出的分配设备102和/或其他具有类似能力的设备中实现。现参照图5描述根据本公开实施例的用于选择目标组合的过程或方法400。为了便于理解,在下文描述中提及的具体数据均是示例性的,并不用于限定本公开的保护范围。
在420,从多个存储盘中,分配设备102确定第一存储盘池和第二存储盘池。
在一些实施例中,第一存储盘池中包含的每个存储盘的容量小于或等于第二阈值容量,第二存储盘池中的每个存储盘的容量大于第二阈值容量。在一个示例中,分配设备102可以选择第二阈值容量,以使得第一存储盘池中包含的存储盘的数目等于用上述公式(2)所确定的LT。
在一些实施例中,分配设备102可以先将多个存储盘按照容量进行排序,然后再确定第一存储盘池和第二存储盘池,例如参照图5。图5示出了从包括第一存储盘池510和第二存储盘池520的存储系统500中,确定多组存储盘的候选组合的示意图。在一个示例中,可以将存储系统500中的多个存储盘506-1至506-N按照容量进行升序排序。图5中每一个条带对应于506-1至506-N中的一个存储盘,而条带的长度表示相应存储盘的容量的大小,故506-1至506-N还可以指示相应的存储盘的容量排名。以此方式,分配设备102能够简单地确定第一存储盘池510和第二存储盘池520,例如依据排序将在存储盘506-LT(例如,LT可以通过公式(1)-(3)来确定)的左侧的,即容量更小的所有存储盘作为第一存储盘池510,而将其余存储盘作为第二存储盘池520。
回到图4,在440,分配设备102从第一存储盘池中,确定多组存储盘中的一组存储盘。
在一些实施例中,分配设备102可以根据第一存储盘池中的存储盘的容量,通过选择具有最大容量的,与一个盘阵列相对应的存储盘(例如,针对阵列宽度为4+1的RAID 5,选择6个存储盘),来确定该一组存储盘。
参照图5,在一个示例中,针对阵列宽度为4+1的RAID 5,在经升序排列的第一存储盘池,分配设备102可以简单地选择出一组存储盘508-1,该组存储盘508-1中包括存储盘508-LT以及存储盘508-LT左侧相邻的5个盘(即508-(LT-5)至508-LT)。以这样的方式,在第一存储盘池中仅需要计算一组存储盘的不可用容量。
在一些实施例中,如果分配设备102确定该一组存储盘就是最后确定的一组目标存储盘,则分配设备102可以用第一存储盘池中的所有存储盘来构建存储盘集合。参照图5,在一个示例中,如果分配设备102确定508-1是一组目标存储盘,则可以构建存储盘集合包括盘506-1至506-LT。
回到图4,在460,分配设备102从第二存储盘池中,确定多组存储盘中除确定的一组存储盘之外的其余组存储盘。
在一些实施例中,参照图5,分配设备102可以在经排序的第二存储盘池520中,通过选择相邻的多个(例如,针对阵列宽度为4+1的RAID 5,是6个存储盘)存储盘,来确定其余组存储盘508-2、508-3、508-4,直到508-M。该其余组存储盘508-2到508-M的并集包括第二存储盘池中的所有存储盘。以这样方式,第二存储盘池中需要分配设备102来计算不可用容量的次数可以进一步地减少。
通过实施上述基于多个存储盘池的分配过程,可以进一步减少多组存储盘的组数,从而通过进一步减少计算开销。以这样的方式所确定的存储盘的组数可以达到与存储盘总数目的相当的量级,例如针对阵列宽度为4+1的RAID 5,通过以图5图示的方式所确定的存储盘的组数M=N-LT-4,而该分配过程的时间复杂度可以降低到N2的量级。因此,在确定一组目标存储盘时,所需要进行的不可用容量的计算次数、相应的不可用容量之间的比较次数、以及最终的计算时间和计算开销能够进一步减少。
需注意的是,440和460的执行顺序是可以是任意的,或者440和460可以并行地执行。
图6示出了根据本公开的实施例的用于确定一组附加存储盘的过程或方法600的流程图。具体地,图6是详细描述图3中的360具体过程。在某些实施例中,方法600可以在图1中示出的分配设备和/或其他具有类似能力的设备中实现。现参照图7A和图7B来描述根据本公开实施例的用于选择一组附加存储盘的过程或方法600,该一组附加存储盘用于与一组目标存储盘共同构成存储盘集合。为了便于理解,在下文描述中提及的具体数据均是示例性的,并不用于限定本公开的保护范围。
在620,分配设备102从除一组目标存储盘之外的多个存储盘中,确定低容量的存储盘池。
在一个实施例中,低容量的存储盘池中的每个存储盘的容量小于或等于一组目标存储盘中每个存储盘的容量。如上面所讨论的,向一组目标存储盘中添加具有较低容量的存储盘,并不会影响存储盘集合的整体的不可用容量。从低容量的存储盘池中选择存储盘来构建一组附加存储盘,能够保证将要构建的存储盘集合的不可用容量。
在一些实施例中,分配设备102可以将多个存储盘按照容量进行排序,然后确定低容量的存储盘池。图7A和图7B示出了根据本公开的实施例的基于低容量的存储盘池,确定一组附加存储盘的示意图。在一个示例中,参照图7A和图7B,分配设备102可以将存储系统700或存储系统750中的多个存储盘706-1至706-N按照容量进行升序排序,以便在确定出一组目标存储盘710A或710B之后,分配设备102能够简单地确定低容量的存储盘池,例如通过将在710A或710B的左侧(容量更小)的(例如,所有)存储盘的作为低容量的存储盘池。
回到图6,在640,基于低容量的存储盘池,确定一组附加存储盘。
低容量的存储盘池中可能也包含大量的存储盘。如上面所讨论的,通过上述公式(1)至(3)可以确定允许被包括存储盘集合中的存储盘的第一数目UT。所以,分配设备102可以从低容量的存储盘池中选择一些存储盘,使得存储盘集合中的存储盘数目满足第一数目。
在一些实施例中,当低容量的存储盘池中的存储盘的数目小于或等于第二阈值数目时,确定一组附加存储盘包括低容量的存储盘池中的所有存储盘。第二阈值数目基于目标存储盘中的存储盘的数目以及第一数目来确定。换句话说,即使将低容量的存储盘池中的所有盘都添加到存储盘集合中,存储盘集合中的总数目仍在根据公式(1)至(3)确定的数目范围内,即小于或等于第一数目。
在这种情况下,可以直接将低容量的存储盘池中的所有盘作为一组附加存储盘,用于构建存储盘集合。现参考图7A,分配设备102确定710A是一组目标存储盘,并且确定710A左侧(容量更小)的所有存储盘为低容量的存储盘池。从图中可以看出,即使加入低容量的存储盘池中的所有存储盘,将要构建存储盘集合720A中的存储盘数目仍将满足(在此,小于)第一数目UT,即存储盘集合720A在706-UT的左侧。在这种情况下,可以用低容量的存储盘池中的所有存储盘,连同一组目标存储盘710A,来构建存储盘集合720A。
在一些实施例中,当低容量的存储盘池中的存储盘的数目大于第二阈值数目,分配设备102需要从低容量的存储盘池中选择一些存储盘作为一组附加存储盘,使得将要构建的存储盘集合中的存储盘的数目满足第一数目。换句话说,在这种情况下,如果直接将低容量的存储盘池中的所有盘都添加到存储盘集合中,存储盘集合中的总数目将超出第一数目UT。在这种情况下,只能从低容量的存储盘池中选择一些存储盘来作为一组附加存储盘,并且用于构建存储盘集合。
一般地,除选出的一组附加存储盘之外的其他低容量的存储盘将处于继续待分配的状态,故这些其他低容量的存储盘应当不影响后续一个或多个另外的存储盘集合的构建过程。在一些实施例中,可以选择从低容量的存储盘池移除具有最低容量的(多个)存储盘,因为这样的存储盘对后续将要构建的一个或多个另外的存储盘集合的不可用容量的影响较小。
现参考图7B,一组目标存储盘被确定为710B,710B左侧(容量更小)的所有存储盘的作为低容量的存储盘池。从图中可以看出,如果加入低容量的存储盘池中的所有存储盘,将要构建存储盘集合720A中的存储盘数目将超出第一数目。这时候需要从低容量的存储盘池中的存储盘,选择一组附加存储盘,例如选择除具有最小容量的一个存储盘706-1之外的其余所有存储盘作为该一组附加存储盘。在这种情况下,利用一组附加存储盘和一组目标存储盘所构建的存储盘集合包括存储盘706-2至706-UT。在其他的实施例,可以从低容量的存储盘池中移除例如6个,甚至更多个具有最低容量的存储盘来构建一组附加存储盘,只要利用该一组附加存储盘所最终构建的存储盘集合满足第一数目即可。备选地,也可以从低容量的存储盘池中随机地挑选一些存储盘作为一组附加存储盘,只要剩余的(多个)存储盘不影响后续的分配即可。
通过实施上述基于低容量的存储盘池的分配过程,能够确定具有优化容量的存储盘集合,在确保存储盘集合中的存储盘数目满足要求的同时,不影响后续的剩余存储盘的分配过程。
下面将描述根据本公开实施例所得的分配结果的两个示例实现。
在第一个示例实现中,待分配的存储系统中有10个具有100个盘切片的盘(类型1)、10个具有200个盘切片的盘(类型2)和10个具有300个盘切片的盘(类型3)。针对盘阵列宽度为4+1的RAID5,并且针对存储盘集合包含的存储盘数目的上限值Dmax,需要在存储系统中构建创建2个存储盘集合(RRS0和RRS1),并且将要构建的存储盘集合中的存储盘数目范围是6到24。
使用根据本公开实施例的任一个方法,所得分配结果如表1所示:
表1
对于第一存储盘集合RRS0,保留容量为100个盘切片,浪费容量为0,因此不可用容量为100个盘切片。对于第二存储盘集合RRS1,保留容量为300个盘切片,浪费容量为0。整个存储系统的不可用容量为400个盘切片。表1所示出的分配方式是具有优化的不可用容量的分配方式之一。
在第二个示例实现中,待分配的存储系统中有4个具有100个盘切片的盘(类型1)、4个具有200个盘切片的盘(类型2)、4个具有300个盘切片的盘(类型3)、10个具有400个盘切片的盘(类型4)和5个具有500个盘切片的盘(类型5)。类似地,针对盘阵列宽度为4+1的RAID5,并且针对存储盘集合包含的存储盘数目的上限值Dmax,需要在存储系统中构建创建2个存储盘集合(RRS0和RRS1),并且将要构建的存储盘集合中的存储盘数目范围是6到21。
使用根据本公开实施例的任一个方法,所得分配结果如表2所示:
表2
对于RRS0,保留容量为400个盘切片,浪费容量为0,因此不可用容量为400个盘切片。对于RRS1,保留容量为400个盘切片,浪费容量为500个盘切片,因此不可用容量为900个盘切片。整个存储系统的不可用容量为1300个盘切片。表2所示出的分配方式是具有优化的不可用容量的分配方式之一。
图8示出了可以用来实现本公开的实施例的示例电子设备800的示意性框图。例如,电子设备800可被用于实现图1中所示的分配设备102。如图所示,设备800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的计算机程序指令或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序指令,来执行各种适当的动作和处理。在RAM 803中,还可存储设备800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理单元801执行上文所描述的各个方法和处理,例如过程300、400和600中的任一个。例如,在一些实施例中,过程300、400和600中的任一个可以被实现为计算机软件程序或计算机程序产品,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序加载到RAM 803并由CPU 801执行时,可以执行上文描述的过程300、400和600中的任一个的一个或多个步骤。备选地,在其他实施例中,CPU 801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行300、400和600中的任一个。
本公开可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施方式,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施方式。在不偏离所说明的各实施方式的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施方式的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文披露的各实施方式。
根据本公开的一些实施例,提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现根据本公开的方法。
本领域的技术人员应当理解,上述本公开的方法的各个步骤可以通过通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本公开不限制于任何特定的硬件和软件结合。
应当理解,尽管在上文的详细描述中提及了设备的若干装置或子装置,但是这种划分仅仅是示例性而非强制性的。实际上,根据本公开的实施例,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
以上所述仅为本公开的可选实施例,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等效替换、改进等,均应包含在本公开的保护范围之内。
Claims (21)
1.一种分配存储盘的方法,包括:
从待分配的多个存储盘中确定多组存储盘,每组存储盘包括与一个盘阵列相对应的存储盘;
从所述多组存储盘中,选择一组目标存储盘,所述一组目标存储盘具有的不可用容量低于第一阈值容量;以及
基于所述多个存储盘来构建存储盘集合,所述存储盘集合至少包括所述一组目标存储盘。
2.根据权利要求1所述的方法,其中构建所述存储盘集合包括:
确定允许被包括所述存储盘集合中的存储盘的第一数目;
基于所述第一数目,从所述多个存储盘中选择一组附加存储盘,所述一组附加存储盘与所述一组目标存储盘不同,并且所述一组附加存储盘中的每个存储盘的容量小于或等于所述一组目标存储盘中每个存储盘的容量;以及
基于所述一组目标存储盘和所述一组附加存储盘来构建所述存储盘集合。
3.根据权利要求2所述的方法,其中确定所述第一数目包括:
确定所述一组目标存储盘中存储盘的第二数目以及所述多个存储盘的总数目;以及
基于所述第二数目和所述总数目,确定允许被包括所述存储盘集合中的存储盘的所述第一数目,所述第一数目小于或等于第一阈值数目。
4.根据权利要求2中所述的方法,其中选择所述一组附加存储盘包括:
从除所述一组目标存储盘之外的所述多个存储盘中,确定低容量的存储盘池,所述低容量的存储盘池中的每个存储盘的容量小于或等于所述一组目标存储盘中每个存储盘的容量;以及
基于所述低容量的存储盘池,确定所述一组附加存储盘。
5.根据权利要求4所述的方法,其中基于所述低容量的存储盘池,确定所述一组附加存储盘包括:
根据确定第三数目小于或等于第二阈值数目,确定所述一组附加存储盘包括所述低容量的存储盘池中的所有存储盘,所述第二阈值数目基于第二数目和所述第一数目来确定,所述第二数目是所述一组目标存储盘中的存储盘的数目,所述第三数目是所述低容量的存储盘池中的存储盘的数目;以及
根据确定所述第三数目大于第二阈值数目,从所述低容量的存储盘池中选择所述一组附加存储盘,使得所述存储盘集合中的存储盘的数目满足所述第一数目。
6.根据权利要求1所述的方法,其中确定所述多组存储盘包括:
根据所述多个存储盘中的每个存储盘的容量,对所述多个存储盘排序;以及
从经排序的所述多个存储盘中确定所述多组存储盘。
7.根据权利要求1所述的方法,其中确定所述多组存储盘包括:
从所述多个存储盘中,确定第一存储盘池和第二存储盘池,所述第一存储盘池中的每个存储盘的容量小于或等于第二阈值容量,所述第二存储盘池中的每个存储盘的容量大于第二阈值容量;
从所述第一存储盘池中,确定所述多组存储盘中的一组存储盘;以及
从所述第二存储盘池中,确定所述多组存储盘中除所述一组存储盘之外的其余组存储盘。
8.根据权利要求7所述的方法,其中确定所述多组存储盘中的所述一组存储盘包括:
根据所述第一存储盘池中的存储盘的容量,选择第二数目个的存储盘来作为所述多组存储盘中的所述一组存储盘,所述第二数目是所述一组目标存储盘中的存储盘的数目。
9.根据权利要求8所述的方法,其中确定所述其余组存储盘包括:
根据所述第二存储盘池中的存储盘的容量,对所述第二存储盘池中的所述存储盘排序;以及
在经排序的所述第二存储盘池中,通过选择相邻的、所述第二数目个存储盘,来确定所述其余组存储盘。
10.根据权利要求1所述的方法,其中选择所述一组目标存储盘包括:
计算所述多组存储盘具有的相应的不可用容量;
基于计算的所述不可用容量,确定所述第一阈值容量;以及
从所述多组存储盘中,选择具有低于所述第一阈值容量的不可用容量的所述一组目标存储盘。
11.一种电子设备,包括:
处理器;以及
与所述处理器耦合的存储器,所述存储器具有存储于其中的指令,所述指令在被处理器执行时使所述电子设备执行动作,所述动作包括:
从待分配的多个存储盘中确定多组存储盘,每组存储盘包括与一个盘阵列相对应的存储盘;
从所述多组存储盘中,选择一组目标存储盘,所述一组目标存储盘具有的不可用容量低于第一阈值容量;以及
基于所述多个存储盘来构建存储盘集合,所述存储盘集合至少包括所述一组目标存储盘。
12.根据权利要求11所述的设备,其中构建所述存储盘集合包括:
确定允许被包括所述存储盘集合中的存储盘的第一数目;
基于所述第一数目,从所述多个存储盘中选择一组附加存储盘,所述一组附加存储盘与所述一组目标存储盘不同,并且所述一组附加存储盘中的每个存储盘的容量小于或等于所述一组目标存储盘中每个存储盘的容量;以及
基于所述一组目标存储盘和所述一组附加存储盘来构建所述存储盘集合。
13.根据权利要求12所述的设备,其中确定所述第一数目包括:
确定所述一组目标存储盘中存储盘的第二数目以及所述多个存储盘的总数目;以及
基于所述第二数目和所述总数目,确定允许被包括所述存储盘集合中的存储盘的所述第一数目,所述第一数目小于或等于第一阈值数目。
14.根据权利要求12中所述的设备,其中选择所述一组附加存储盘包括:
从除所述一组目标存储盘之外的所述多个存储盘中,确定低容量的存储盘池,所述低容量的存储盘池中的每个存储盘的容量小于或等于所述一组目标存储盘中每个存储盘的容量;以及
基于所述低容量的存储盘池,确定所述一组附加存储盘。
15.根据权利要求14所述的设备,其中基于所述低容量的存储盘池,确定所述一组附加存储盘包括:
根据确定第三数目小于或等于第二阈值数目,确定所述一组附加存储盘包括所述低容量的存储盘池中的所有存储盘,所述第二阈值数目基于第二数目和所述第一数目来确定,所述第二数目是所述一组目标存储盘中的存储盘的数目,所述第三数目是所述低容量的存储盘池中的存储盘的数目,以及
根据确定所述第三数目大于第二阈值数目,从所述低容量的存储盘池中选择所述一组附加存储盘,使得所述存储盘集合中的存储盘的数目满足所述第一数目。
16.根据权利要求11所述的设备,其中确定所述多组存储盘包括:
根据所述多个存储盘中的每个存储盘的容量,对所述多个存储盘排序;以及
从经排序的所述多个存储盘中确定所述多组存储盘。
17.根据权利要求11所述的设备,其中确定多组存储盘包括:
从所述多个存储盘中,确定第一存储盘池和第二存储盘池,所述第一存储盘池中的每个存储盘的容量小于或等于第二阈值容量,所述第二存储盘池中的每个存储盘的容量大于第二阈值容量;
从所述第一存储盘池中,确定所述多组存储盘中的一组存储盘;以及
从所述第二存储盘池中,确定所述多组存储盘中除所述一组存储盘之外的其余组存储盘。
18.根据权利要求17所述的设备,其中确定所述多组存储盘中的所述一组存储盘包括:
根据所述第一存储盘池中的存储盘的容量,选择第二数目个的存储盘来作为所述多组存储盘中的所述一组存储盘,所述第二数目是所述一组目标存储盘中的存储盘的数目。
19.根据权利要求18所述的设备,其中确定所述其余组存储盘包括:
根据所述第二存储盘池中的存储盘的容量,对所述第二存储盘池中的所述存储盘排序;以及
在经排序的所述第二存储盘池中,通过选择相邻的、所述第二数目个存储盘,来确定所述其余组存储盘。
20.根据权利要求11所述的设备,其中选择所述一组目标存储盘包括:
计算所述多组存储盘具有的相应的不可用容量;
基于计算的所述不可用容量,确定所述第一阈值容量;以及
从所述多组存储盘中,选择具有低于所述第一阈值容量的不可用容量的所述一组目标存储盘。
21.一种存储机器可执行指令的非暂时性计算机存储介质,其中所述机器可执行指令在由设备执行时,使所述设备执行根据权利要求1至10中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911052954.6A CN112748864B (zh) | 2019-10-31 | 2019-10-31 | 分配存储盘的方法、电子设备和计算机程序产品 |
US16/885,976 US11194487B2 (en) | 2019-10-31 | 2020-05-28 | Method, electronic device and computer program product of allocating storage disks |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911052954.6A CN112748864B (zh) | 2019-10-31 | 2019-10-31 | 分配存储盘的方法、电子设备和计算机程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112748864A CN112748864A (zh) | 2021-05-04 |
CN112748864B true CN112748864B (zh) | 2024-04-19 |
Family
ID=75644608
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911052954.6A Active CN112748864B (zh) | 2019-10-31 | 2019-10-31 | 分配存储盘的方法、电子设备和计算机程序产品 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11194487B2 (zh) |
CN (1) | CN112748864B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115237332A (zh) * | 2021-04-23 | 2022-10-25 | 伊姆西Ip控股有限责任公司 | 管理盘方法、电子设备和计算机程序产品 |
CN115442216B (zh) * | 2021-06-04 | 2023-09-05 | 中国移动通信集团浙江有限公司 | 网络切片故障自愈方法、装置、设备及计算机存储介质 |
US11733899B2 (en) * | 2021-10-08 | 2023-08-22 | Dell Products L.P. | Information handling system storage application volume placement tool |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101135955A (zh) * | 2007-10-19 | 2008-03-05 | 杭州华三通信技术有限公司 | 实现磁盘冗余阵列重建的方法和磁盘冗余阵列 |
CN101387975A (zh) * | 2008-10-20 | 2009-03-18 | 中科院成都信息技术有限公司 | 一种磁盘阵列系统 |
WO2013165966A2 (en) * | 2012-05-01 | 2013-11-07 | Enmotus Inc. | Storage system with load balancing mechanism and method of operation thereof |
CN109213618A (zh) * | 2017-06-30 | 2019-01-15 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法、设备和计算机程序产品 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6317808B1 (en) * | 1999-03-26 | 2001-11-13 | Adc Telecommunications, Inc. | Data storage system and method of routing or assigning disk write requests among a set of disks using weighted available disk space values |
US6954824B2 (en) * | 2001-10-15 | 2005-10-11 | International Business Machines Corporation | Method, system, and program for determining a configuration of a logical array including a plurality of storage devices |
US7404036B2 (en) * | 2005-11-23 | 2008-07-22 | International Business Machines Corporation | Rebalancing of striped disk data |
US20080140930A1 (en) * | 2006-12-08 | 2008-06-12 | Emulex Design & Manufacturing Corporation | Virtual drive mapping |
US8533103B1 (en) * | 2010-09-14 | 2013-09-10 | Amazon Technologies, Inc. | Maintaining latency guarantees for shared resources |
CN103365781B (zh) * | 2012-03-29 | 2016-05-04 | 国际商业机器公司 | 用于动态地重新配置存储系统的方法和设备 |
JP6055544B2 (ja) * | 2013-06-03 | 2016-12-27 | 株式会社日立製作所 | ストレージ装置およびストレージ装置制御方法 |
US9454434B2 (en) * | 2014-01-17 | 2016-09-27 | Netapp, Inc. | File system driven raid rebuild technique |
WO2016181528A1 (ja) * | 2015-05-13 | 2016-11-17 | 株式会社日立製作所 | ストレージ装置 |
US20160342609A1 (en) * | 2015-05-21 | 2016-11-24 | Netapp, Inc. | Systems, methods, and computer program products providing an elastic snapshot repository |
US10565101B2 (en) * | 2016-01-29 | 2020-02-18 | Hewlett Packard Enterprise Development Lp | Storing data in a storage device |
US11093146B2 (en) * | 2017-01-12 | 2021-08-17 | Pure Storage, Inc. | Automatic load rebalancing of a write group |
CN109725823B (zh) * | 2017-10-27 | 2021-11-16 | 伊姆西Ip控股有限责任公司 | 用于管理混合存储盘阵列的方法和设备 |
US20190317682A1 (en) * | 2018-04-11 | 2019-10-17 | EMC IP Holding Company LLC | Metrics driven expansion of capacity in solid state storage systems |
US10776039B2 (en) * | 2019-01-29 | 2020-09-15 | Rubrik, Inc. | Staggered full partitioned snapshots |
US10860259B1 (en) * | 2019-07-17 | 2020-12-08 | Tyson York Winarski | Multi-tiered storage system for blockchain |
CN112748862A (zh) * | 2019-10-31 | 2021-05-04 | 伊姆西Ip控股有限责任公司 | 用于管理盘的方法、电子设备和计算机程序产品 |
CN112748867B (zh) * | 2019-10-31 | 2024-04-19 | 伊姆西Ip控股有限责任公司 | 用于存储管理的方法、电子设备以及计算机程序产品 |
-
2019
- 2019-10-31 CN CN201911052954.6A patent/CN112748864B/zh active Active
-
2020
- 2020-05-28 US US16/885,976 patent/US11194487B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101135955A (zh) * | 2007-10-19 | 2008-03-05 | 杭州华三通信技术有限公司 | 实现磁盘冗余阵列重建的方法和磁盘冗余阵列 |
CN101387975A (zh) * | 2008-10-20 | 2009-03-18 | 中科院成都信息技术有限公司 | 一种磁盘阵列系统 |
WO2013165966A2 (en) * | 2012-05-01 | 2013-11-07 | Enmotus Inc. | Storage system with load balancing mechanism and method of operation thereof |
CN109213618A (zh) * | 2017-06-30 | 2019-01-15 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法、设备和计算机程序产品 |
Also Published As
Publication number | Publication date |
---|---|
CN112748864A (zh) | 2021-05-04 |
US11194487B2 (en) | 2021-12-07 |
US20210132831A1 (en) | 2021-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112748864B (zh) | 分配存储盘的方法、电子设备和计算机程序产品 | |
CN110413201B (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
CN111104055B (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
CN110737390B (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
CN110737391B (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
US10860476B2 (en) | Method, apparatus and computer program product for managing storage system | |
CN110413203B (zh) | 用于管理存储系统的方法、设备和计算机可读介质 | |
CN110737401B (zh) | 用于管理独立冗余磁盘阵列的方法、设备和计算机程序产品 | |
US10761761B2 (en) | Method and device for managing storage system | |
CN112748867B (zh) | 用于存储管理的方法、电子设备以及计算机程序产品 | |
CN112948279A (zh) | 管理存储系统中的访问请求的方法、设备和程序产品 | |
CN112732168B (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
CN111858188A (zh) | 存储管理的方法、设备和计算机程序产品 | |
CN112748858B (zh) | 用于管理盘阵列的方法、电子设备和计算机程序产品 | |
CN112748862A (zh) | 用于管理盘的方法、电子设备和计算机程序产品 | |
CN112764665B (zh) | 存储管理的方法、设备和计算机程序产品 | |
CN113590378A (zh) | 存储管理的方法、设备和计算机程序产品 | |
US11593011B2 (en) | Method, device, and program product for managing spare block based on dynamic window | |
US20190339898A1 (en) | Method, system and computer program product for managing data storage in data storage systems | |
CN112748860B (zh) | 用于存储管理的方法、电子设备和计算机程序产品 | |
CN113126891B (zh) | 存储管理的方法、设备和计算机程序产品 | |
US11709755B2 (en) | Method, device, and program product for managing storage pool of storage system | |
US11513711B2 (en) | Method, device, and program product for creating stripe based on dynamic window | |
CN112732167B (zh) | 用于管理存储系统的方法、设备 | |
CN113391758B (zh) | 在存储系统中管理条带的方法、设备和计算机程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |