CN115061624A - 分配存储的方法、电子设备、存储***和计算机程序产品 - Google Patents
分配存储的方法、电子设备、存储***和计算机程序产品 Download PDFInfo
- Publication number
- CN115061624A CN115061624A CN202210638491.7A CN202210638491A CN115061624A CN 115061624 A CN115061624 A CN 115061624A CN 202210638491 A CN202210638491 A CN 202210638491A CN 115061624 A CN115061624 A CN 115061624A
- Authority
- CN
- China
- Prior art keywords
- hard disk
- wear
- storage hard
- blocks
- hard disks
- 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.)
- Pending
Links
Images
Classifications
-
- 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
- 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/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
- 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/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- 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
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
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)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开的实施例涉及一种分配存储的方法、电子设备、存储***以及计算机程序产品。该分配存储的方法包括:获取与独立硬盘冗余阵列(RAID)相关的多个硬盘各自的磨损程度。该方法还包括:基于所获取的磨损程度,在多个硬盘的硬盘块中确定各自的备用块,使得一个硬盘中的备用块的数目与该硬盘的磨损程度正向相关。该方法还包括:从除备用块以外的硬盘块,选择预定数目的硬盘块以用于创建用于RAID的RAID块,预定数目的硬盘块来自多个硬盘中的不同硬盘。通过本公开的实施例,延长了硬盘的生命周期,避免了频繁换入新硬盘来代替磨损硬盘,并减少了数据丢失情况的发生。
Description
相关专利申请
本申请是申请号为201810049315.3、申请日为2018年1月18日的中国发明专利申请的分案申请。
技术领域
本公开的实施例涉及数据存储领域,并且更具体地,涉及一种分配存储的方法、电子设备、存储***以及计算机程序产品。
背景技术
独立磁盘冗余阵列(RAID)通过在多个硬盘上同时存储和读取数据来大幅度提高存储***的数据吞吐量。使用RAID可以达到单个硬盘驱动器几倍、几十倍甚至上百倍的速率。映射(Mapped)RAID是一种新的RAID技术。与常规RAID的不同之处在于,映射RAID是在硬盘池的顶部建立的,而不是在若干特定硬盘上建立的。硬盘池中的硬盘被划分成一系列固定大小的非重叠的段,这些段可以被称为硬盘块。映射RAID的逻辑空间被划分成一组连续的非重叠的段,这些段被称为RAID块。每个RAID块由根据RAID策略从不同硬盘选择的多个磁盘块组成。与常规RAID相比,映射RAID具有若干优点,例如能够更快速地被重建、支持单个驱动扩展以及在一个硬盘池中支持混合大小的驱动。
目前,在硬盘池上创建映射RAID通常使用邻域矩阵算法,以使创建的RAID中的RAID块在硬盘池上尽可能均匀分布。但是通过该邻域矩阵算法创建的RAID,在为输入输出(IO)服务一段时间之后,可能会导致硬盘池中的某些硬盘的生命周期结束,从而导致数据丢失的现象。
发明内容
本公开的实施例提供一种用于映射RAID的分配存储的方法、电子设备、存储***和计算机程序产品。
在本公开的第一方面,提供了一种分配存储的方法。该方法包括获取与独立硬盘冗余阵列(RAID)相关的多个硬盘各自的磨损程度。该方法还包括基于磨损程度,在多个硬盘的硬盘块中确定各自的备用块,使得一个硬盘中的备用块的数目与该硬盘的磨损程度正向相关。该方法还包括从硬盘块中除备用块以外的硬盘块,选择预定数目的硬盘块以用于创建用于RAID的RAID块,预定数目的硬盘块来自多个硬盘中的不同硬盘。
在本公开的第二方面,提供了一种电子设备。该电子设备包括:至少一个处理器;以及包括计算机程序指令的至少一个存储器。至少一个存储器和计算机程序指令被配置为,与至少一个处理器一起,使得电子设备:获取与独立硬盘冗余阵列(RAID)相关的多个硬盘各自的磨损程度;基于磨损程度,在多个硬盘的硬盘块中确定各自的备用块,使得一个硬盘中的备用块的数目与该硬盘的所述磨损程度正向相关;以及从硬盘块中除备用块以外的硬盘块,选择预定数目的硬盘块以用于创建用于RAID的RAID块,预定数目的硬盘块来自多个硬盘中的不同硬盘。
在本公开的第三方面,提供了一种计算机程序产品。该计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令。机器可执行指令在被执行时使得机器执行根据本公开的第一方面所描述的方法的任意步骤。
在本公开的第四方面,提供了一种存储***。该存储***包括与独立硬盘冗余阵列(RAID)相关的多个硬盘以及根据本公开第二方面所述的电子设备。
提供发明内容部分是为了以简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或主要特征,也无意限制本公开的范围。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。
图1示出了常规映射RAID***的示意图;
图2a以二维的形式可视化地示出了均匀分布的RAID所对应的领域矩阵的示意图;
图2b以三维的形式可视化地示出了均匀分布的RAID所对应的领域矩阵的示意图;
图3示出了根据本公开实施例的映射RAID***的示意图;
图4示出了根据本公开实施例的分配存储的方法的流程图;
图5示出了根据本公开实施例的确定给定硬盘的备用块数目的流程图;
图6示出了根据本公开实施例的给定硬盘的备用块数目随着磨损程度而变化的曲线;
图7示出了可以用来实施本公开的实施例的示例设备的框图。
具体实施方式
下面将参考附图中示出的若干示例实施例来描述本公开的原理。虽然附图中显示了本公开的优选实施例,但应当理解,描述这些实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。
如上面所描述的,映射RAID是一种新的RAID技术。与常规RAID有所不同,映射RAID是在硬盘池的顶部建立的,而不是在若干特定硬盘上建立的。与常规RAID相比,其具有若干优点,例如能够更快速地被重建、支持单个驱动扩展以及在一个硬盘池中支持混合大小的驱动。
图1示出了常规映射RAID***100的示意图。***100包括硬盘池120以及在硬盘池120上建立的RAID 110。在图1所示的***100中,硬盘池120包含N个硬盘1201、1202、1203、1204…120N,其中N取决于所采用的RAID策略。例如,在采用4D+1P的R5策略时,N为大于或等于5的整数,在采用4D+2P的R6策略时,N为大于或等于6的整数。硬盘1201、1202、1203、1204…120N中的每一个硬盘被划分成一系列固定大小的非重叠的块,这些块可以被称为硬盘块。在实际实现中,取决于存储限制,硬盘块可以被设置不同的大小。
RAID 110的逻辑空间被划分成一组连续的非重叠的块,这些块被称为RAID块。每个RAID块116由从N个硬盘1201、1202、1203、1204…120N中的不同硬盘选择的预定数目的硬盘块组成。预定数目取决于所选择的RAID策略。例如,在采用4D+1P的R5策略时,预定数目为5,如图1中所示的。本领域技术人员将理解的是,数值5仅仅是一个示例,根据不同的RAID策略,预定数目可以选取不同的值。在图1所示的***100中,所示的RAID块116由硬盘1204的硬盘块116-1、硬盘1203的硬盘块116-2、硬盘1202的硬盘块116-3、硬盘1201的硬盘块116-4和硬盘120N的硬盘块116-5组成。多个RAID块116形成RAID块组112。RAID 110还包括一个映射表114,用于记录RAID 110中的RAID块组112中的每个RAID块116由来自哪些硬盘的哪些硬盘块组成。
目前,在创建RAID块组112时,为了使RAID块组112中的各RAID块所包含的硬盘块在N个硬盘1201、1202、1203、1204…120N中尽可能均匀分布,使用所谓的邻域矩阵算法。邻域矩阵M是一个N*N的方阵,N是硬盘池中的硬盘数目,如上所述,N取决于所采取的RAID策略。矩阵中的每一个元素M(i,j)表示在RAID 110中硬盘i与硬盘j相邻的次数。如果硬盘i的一个硬盘块与硬盘j的一个硬盘块同时出现在同一个RAID块中,则硬盘i与硬盘j就被定义为相邻一次。例如,在图1所示的***100中,所示的RAID块116由来自硬盘1204、硬盘1203、硬盘1202、硬盘1201和硬盘120N的硬盘块组成。相应地,硬盘1204分别与硬盘1203、硬盘1202、硬盘1201和硬盘120N相邻,硬盘1203分别与硬盘1204、硬盘1202、硬盘1201和硬盘120N相邻,以此类推。由邻域矩阵的定义可知,邻域矩阵是一个对称矩阵。
如果RAID 110中的RAID块组112所包含的硬盘块在硬盘池120上均匀分布,则邻域矩阵M中的各个元素应当彼此接近。因此,邻域矩阵算法的目标就是在完成RAID块分配之后,使得邻域矩阵M中的各个元素基本相同。图2a和图2b分别以二维和三维的形式可视化地示出了各元素基本相同的邻域矩阵。在图2a和图2b的例子中,池120中的硬盘的数目N为20。如图2a和图2b所示,经过邻域矩阵算法之后,矩阵中各个元素的值基本上相同,即与图2a和图2b中所示的邻域矩阵相对应的RAID在硬盘池上均匀分布。通过邻域矩阵算法得到的、在各硬盘上均匀分布的RAID在被使用时,每个硬盘上的IO压力大致相同。存在的问题是,如果利用不具有相同磨损程度的硬盘(例如固态盘)来创建映射RAID,则该算法将会导致一些硬盘的生命周期比另外一些硬盘更快速地终止,从而可能出现数据丢失的情况。下面,将以表1为例,来说明这一问题。
表1
在表1中分别示出了用于建立RAID的20个硬盘各自的磨损程度,例如硬盘6的磨损程度为80%,硬盘9和硬盘13的磨损程度为60%。应当注意的是,表1中所示的硬盘个数以及相应磨损程度的数值表示仅仅是示例性的,在实际使用过程中,各硬盘可以出现各种磨损程度。在表1中,当一个硬盘的磨损程度达到100%时,该硬盘的生命周期将会终止。利用目前的邻域矩阵算法来在由表1所示的这20个硬盘组成的硬盘池上建立RAID,RAID块组在硬盘池上均匀分布时的邻域矩阵与图2a和图2b所示的相同。这样建立的RAID在后续被使用时,每个硬盘所承受的IO压力基本相同,从而磨损速度也基本相同。在该硬盘池为数据读取和数据写入服务一段时间之后,硬盘6的生命周期将最先终止,然后新的硬盘被换入。在经历了一段时间之后,硬盘9和硬盘13的生命周期可能在很短的时间内相继终止。在此情况下,如果映射RAID尚未完成将数据复制到新换入的硬盘中,则会导致数据丢失。
另外,现有方案通过选择最高的硬盘磨损程度来通知用户是否需要换入新硬盘。如在表1所示的例子中,在硬盘池中,硬盘6的磨损程度为80%,同时还存在许多磨损程度为10%、20%的硬盘,这些磨损程度较低的硬盘还能使用许多年。而用户看到的是RAID的磨损程度已达到80%,生命周期将要终止并且需要备份数据。这将误导用户进行错误的决策。
为了解决上述问题,本公开的实施例提供了一种基于硬盘磨损程度的邻域矩阵算法,用以建立RAID块,以降低数据丢失的风险。在本公开的实施例中,在建立RAID时,基于硬盘池中各硬盘的磨损程度来在多个硬盘的硬盘块中分配各自的备用块,使得一个硬盘中的备用块的数目与该硬盘的磨损程度正向相关,然后基于硬盘池中除备用块以外的硬盘块来建立RAID。这样,在各硬盘的硬盘块数目相同的情况下,磨损程度较高的硬盘中参与建立RAID的硬盘块的数目较少,从而使得该硬盘在后续使用中被磨损得较慢,由此延长了该硬盘的生命周期,并进而避免了频繁地用新硬盘来替代生命周期终止的硬盘,减少了数据丢失情况的发生。
下面结合图3来描述本公开的实施例。图3示出了根据本公开实施例的映射RAID***300的示意图。应当理解,图3中所示的某些部件是可以省略的,而且在其他实施例中***300还可以包括没有在此示出的其他部件。也即,图3所述的示意图仅仅是为了在一个示例环境中描述本公开的实施例,以便帮助本领域技术人员理解在此描述的机制和原理,而无意以任何方式限制本公开的范围。
***300包括硬盘池320、在硬盘池320的顶部建立的RAID 310和控制器330。硬盘池320包含N个硬盘3201、3202、3203、3204…320N,其中N取决于所采用的RAID策略。例如,在采用4D+1P的R5策略时,N为大于或等于5的整数,在采用4D+2P的R6策略时,N为大于或等于6的整数。硬盘3201、3202、3203、3204…320N中的每一个被划分成一系列固定大小的非重叠的硬盘块。在本公开的实施例中,硬盘3201、3202、3203、3204…320N的容量相同,每个硬盘所具有的硬盘块的数目相同。在本公开的实施例中,每个硬盘块的大小为10GB~50GB,但这仅仅是示例性的,任何替他数值也是可行的。本领域技术人员将理解的是,本公开的实施例同样也适用于容量不同的多个硬盘。
RAID 310的逻辑空间被划分成一组连续的非重叠的RAID块。每个RAID块316由从N个硬盘3201、3202、3203、3204…320N中的不同硬盘选择的预定数目的硬盘块组成。预定数目取决于所采用的RAID策略。例如,在采用4D+1P的R5策略时,预定数目为5。本领域技术人员将理解的是,数值5仅仅是一个示例,根据不同的RAID策略,预定数目可以选取不同的值。在图3所示的例子中,所示的RAID块316由硬盘3204的硬盘块316-1、硬盘3203的硬盘块316-2、硬盘3202的硬盘块316-3、硬盘3201的硬盘块316-4以及硬盘320N的硬盘块316-5组成。多个RAID块316形成一个RAID块组312。RAID 310还包括一个映射表314,用于记录RAID块组312中的每个RAID块由来自哪些硬盘的哪些硬盘块组成。
与图1中所示的传统存储***100不同的是,响应于接收到在硬盘池320上创建RAID块组312的请求,控制器330基于硬盘3201、3202、3203、3204…320N中各硬盘的磨损程度,来确定各硬盘中的备用块SP的数目,使得磨损程度较高的硬盘具有较多的备用块SP。例如,在图3所示的例子中,硬盘3203由于其较高的磨损程度而具有较多的备用块SP。在本公开的实施例中,对于N个硬盘3201、3202、3203、3204…320N中的给定硬盘,控制器330基于给定硬盘的磨损程度、这N个硬盘3201、3202、3203、3204…320N的平均磨损程度以及平均备用块数目,来确定该给定硬盘的备用块SP的数目。
控制器310基于硬盘池310中除备用块SP以外的硬盘块,来利用常规的邻域矩阵算法建立RAID 310。通过基于磨损程度确定备用块SP的数目,使得磨损程度不同的硬盘3201、3202、3203、3204…320N参与创建RAID块组312的硬盘块的数目有所不同。由此,磨损程度较高的硬盘参与创建RAID块组312的硬盘块的数目较少,从而使得该硬盘在所创建的RAID组312被使用的过程中被磨损得相对较慢,由此延长了磨损程度较高的硬盘的生命周期。
图4示出了根据本公开实施例的分配存储的方法400的流程图。方法400可以由图3中的控制器330来实现。控制器330可以响应于接收到在硬盘池320上建立RAID块组312的请求,而执行方法400。在402,控制器330获取与RAID 310相关的多个硬盘3201、3202、3203、3204…320N各自的磨损程度W1、W2……WN,其中N为硬盘池320中硬盘的数目,如上所述,N的大小取决于所采用的RAID策略。
在404,控制器310基于所获取的磨损程度W1、W2……WN,在多个硬盘3201、3202、3203、3204…320N的硬盘块中确定各自的备用块SP,使得一个硬盘中的备用块的数目与该硬盘的磨损程度正向相关。在本公开的实施例中,磨损程度较高的硬盘具有较多的备用块SP,备用块SP不参与建立RAID。稍后将结合图5更详细地描述基于磨损程度确定给定硬盘的备用块的过程。
在406,控制器330从多个硬盘3201、3202、3203、3204…320N的硬盘块中除备用块SP以外的硬盘块,选择预定数目的硬盘块以用于创建RAID 310的RAID块316,预定数目的硬盘块来自不同的硬盘。如上所述,预定数目取决于所采用的RAID策略。例如,在采用4D+1P的R5策略时,预定数目为5。本领域技术人员将理解的是,R5策略仅仅是一个示例,在实际中,可以采用不同的RAID策略,由此预定数目也会有所不同。由于磨损程度较高的硬盘中具有较多的备用块,导致其用于创建RAID 310的硬盘块数目较少,从而在RAID 310的后续使用中该硬盘被磨损得较慢,由此延长了该硬盘的生命周期,进而避免了频繁利用新硬盘置换生命周期终止的硬盘,减少了数据丢失情况的发生
在本公开的一个实施例中,对于多个硬盘3201、3202、3203、3204…320N中的给定硬盘,控制器330可以将其磨损程度与预定阈值进行比较。预定阈值可以根据实际需要而被设置。响应于给定硬盘的磨损程度大于预定阈值,控制器330从硬盘池320中移除给定硬盘,并向硬盘池320添加磨损程度小于预定阈值的新硬盘,以用于创建RAID 310。由于磨损程度超过预定阈值的硬盘被从硬盘池320中移除,使得它们不参与创建RAID 320,从而避免了给这些硬盘分配过多的备用块而导致低效的存储分配。
在本公开的一个实施例中,在所创建的RAID 310的使用过程中,可以实时监测多个硬盘3201、3202、3203、3204…320N的平均磨损程度,并向用户报告所监测的平均磨损程度,以提示用户是否需要换入新的硬盘,以便于用户采取适当的措施。
图5示出了根据本公开实施例的确定给定硬盘的备用块的数目的方法500的流程图。方法500是图4中所示的404的一种具体实现方式。本领域技术人员将理解的是,方法500仅仅是确定给定硬盘的备用块的数目的一种示例性方法,本公开的实施例并不限于此。
在502,控制器330确定多个硬盘3201、3202、3203、3204…320N的平均磨损程度。在本公开的一个实施例中,控制器330基于下式来确定多个硬盘3201、3202、3203、3204…320N的平均磨损程度:
其中,W1、W2……WN分别表示所获取的多个硬盘3201、3202、3203、3204…320N的磨损程度,N表示硬盘数目,Wa表示多个硬盘3201、3202、3203、3204…320N的平均磨损程度。
在504,控制器330确定多个硬盘3201、3202、3203、3204…320N的平均备用块数目。在本公开的一个实施例中,控制器330基于多个硬盘3201、3202、3203、3204…320N的总容量和所要建立的RAID 310的所需容量,来确定硬盘池320中的备用容量。控制器330基于所确定的备用容量来确定各硬盘的平均备用块数目。在本公开的示例性实施例中,控制器330可以基于下式来确定多个硬盘3201、3202、3203、3204…320N的平均备用块数目:
其中,Pavg表示多个硬盘3201、3202、3203、3204…320N的平均备用块数目,Sreq表示RAID 310的所需容量,Sd表示硬盘池320中每个硬盘的容量,N表示硬盘池320中硬盘的数目,SDE表示每个硬盘块的容量。公式(2)仅仅是一个示例,本领域技术人员将理解的是,还可以以不同的方式来确定平均备用块数目。在506,对于给定硬盘,控制器330基于平均磨损程度、平均备用块数目和给定硬盘的磨损程度,来确定该给定硬盘的备用块的数目。在本公开的一个实施例中,响应于给定硬盘的磨损程度等于平均磨损程度,控制器330将给定硬盘的备用块的数目确定为等于平均备用块数目。响应于给定硬盘的磨损程度大于平均磨损程度,控制器330将给定硬盘的备用块的数目确定为大于平均备用块数目。响应于给定硬盘的磨损程度小于平均磨损程度,控制器330将给定硬盘的备用块的数目确定为小于平均备用块数目。在本公开的实施例中,可以存在各种基于平均磨损程度、平均备用块数目和给定硬盘的磨损程度来确定该硬盘的备用块数目的方法。控制器330可以基于下式来确定给定硬盘i的备用块的数目Pi:
Pi=f(Pavg,Wa,Wi) (3)
其中函数f是给定硬盘i的磨损程度Wi的增函数,并且在Wi等于Wa时,函数值为平均备用块数目Pavg。本领域技术人员将理解的是,有多种满足这种要求的函数f。举例而言,而非限制地,下式(4)即为满足所述要求的函数:
公式(4)仅仅是一个示例函数,实际上存在多种满足上述要求的函数。例如,图6示出了满足所述要求的另一函数的曲线。在不脱离本公开实施例的总体构思的情况下,本领域技术人员能够想到基于给定硬盘的磨损程度、平均磨损程度和平均备用块数目来确定给定硬盘的备用块数目的多种函数,只要所述函数是给定硬盘的磨损程度的增函数并且在平均磨损程度处取值为平均备用块数目即可,而不仅仅限于公式(4)。
在本公开的实施例中,在两个给定硬盘具有相同磨损程度的情况下,对于其中一个给定硬盘,可以对根据公式(3)确定的值进行上取整操作,而对另一个给定硬盘,可以对根据公式(3)确定的值进行下取整操作,由此可以使相同磨损程度的两个给定硬盘的备用块稍有不同,从而确保各硬盘的总备用块数目满足***要求。
根据方法500,在确定给定硬盘的备用块数目的过程中,考虑了各硬盘的平均磨损程度和各硬盘的平均备用块数目,由此在较高磨损程度的硬盘具有较多的备用块的同时,确保了参与建立RAID的硬盘块的数目能够满足RAID所需容量。
图7示出了可以用来实施本公开的实施例的示例设备700的示意性框图。设备700可以用于实现图3的控制器330。如图所示,设备700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的计算机程序指令或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序指令,来执行各种适当的动作和处理。在RAM 703中,还可存储设备700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理单元701执行上文所描述的各个方法和处理,例如方法400和/或方法500。例如,在一些实施例中,方法400和/或方法500可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序加载到RAM703并由CPU 701执行时,可以执行上文描述的方法400和/或方法500的一个或多个步骤。备选地,在其他实施例中,CPU 701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法400和/或方法500。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上***的***(SOC)、负载可编程逻辑设备(CPLD)等等。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
Claims (20)
1.一种方法,包括:
根据映射独立硬盘冗余阵列(RAID)布置来定义用于存储数据的存储硬盘的池;
确定所述池中的所述存储硬盘中相应存储硬盘的磨损程度;以及
至少部分地基于其相应的磨损程度,将不同数目的备用块分配给所述池中的所述存储硬盘中的不同的存储硬盘;
其中所述方法由包括耦合到存储器的处理器的至少一个处理设备执行。
2.根据权利要求1所述的方法,还包括:从所述存储硬盘中的特定存储硬盘中选择除所分配的备用块之外的特定块,以用于所述映射RAID布置。
3.根据权利要求1所述的方法,其中与所述存储硬盘中具有相对低磨损程度的第二存储硬盘相比,所述存储硬盘中具有相对高磨损程度的第一存储硬盘被分配更多数目的备用块。
4.根据权利要求1所述的方法,其中被分配给所述存储硬盘中的相应存储硬盘的备用块的数目与那些存储硬盘的相应磨损水平正相关。
5.根据权利要求1所述的方法,其中所述池中的所述存储硬盘中的每个存储硬盘包括多个硬盘块,其中每个这样的硬盘块包括所述存储硬盘的存储空间的固定大小的非重叠的段,并且其中所述多个硬盘块中的给定存储硬盘的多个硬盘块包括被分配给那个存储硬盘的备用块以及为在所述映射RAID布置中使用而选择的所述硬盘块中的其他硬盘块。
6.根据权利要求5所述的方法,其中所述映射RAID布置包括多个RAID块,其中每个这样的RAID块包括所述映射RAID布置的固定大小的非重叠的段,并且其中所述RAID块中的给定RAID块包括从所述存储硬盘中的不同存储硬盘中选择的指定数目的硬盘块。
7.根据权利要求1所述的方法,其中至少部分地基于其相应的磨损程度,将不同数目的备用块分配给所述池中的所述存储硬盘中的不同的存储硬盘包括:
确定所述池中存储硬盘的平均磨损程度;
确定所述池中所述存储硬盘的平均备用块数目;以及
至少部分地基于所述平均磨损程度、所述平均备用块数目以及所述池中的所述存储硬盘中的给定存储硬盘的磨损程度,将特定数目的备用块分配给所述给定存储硬盘。
8.根据权利要求7所述的方法,其中将特定数目的备用块分配给所述给定存储硬盘包括:
响应于所述给定存储硬盘的所述磨损程度等于所述平均磨损程度,确定所述数目等于所述平均备用块数目;
响应于所述给定存储硬盘的所述磨损程度大于所述平均磨损程度,确定所述数目大于所述平均备用块数目;以及
响应于所述给定存储硬盘的所述磨损程度小于所述平均磨损程度,确定所述数目小于所述平均备用块数目。
9.根据权利要求7所述的方法,其中确定所述池中所述存储硬盘的所述平均备用块数目包括:
基于所述存储硬盘的总容量与所述映射RAID布置所需的容量之差,确定备用块的总容量;
基于所述备用块的所述总容量与单个块的容量之比,确定所述备用块的总数目;以及
基于所述备用块的所述总数与所述存储硬盘的总数之比,确定所述平均备用块数目。
10.一种装置,包括:
至少一个处理设备,包括耦合到存储器的处理器;
所述至少一个处理设备被配置为:
根据映射独立硬盘冗余阵列(RAID)布置来定义用于存储数据的存储硬盘的池;
确定所述池中的所述存储硬盘中相应存储硬盘的磨损程度;以及
至少部分地基于其相应的磨损程度,将不同数目的备用块分配给所述池中的所述存储硬盘中的不同的存储硬盘。
11.根据权利要求10所述的装置,还包括:从所述存储硬盘中的特定存储硬盘中选择除所分配的备用块之外的特定块,以用于所述映射RAID布置。
12.根据权利要求10所述的装置,其中与所述存储硬盘中具有相对低磨损程度的第二存储硬盘相比,所述存储硬盘中具有相对高磨损程度的第一存储硬盘被分配更多数目的备用块。
13.根据权利要求10所述的装置,其中被分配给所述存储硬盘中的相应存储硬盘的备用块的数目与那些存储硬盘的相应磨损水平正相关。
14.根据权利要求10所述的装置,其中至少部分地基于其相应的磨损程度,将不同数目的备用块分配给所述池中的所述存储硬盘中的不同的存储硬盘包括:
确定所述池中存储硬盘的平均磨损程度;
确定所述池中所述存储硬盘的平均备用块数目;以及
至少部分地基于所述平均磨损程度、所述平均备用块数目以及所述池中的所述存储硬盘中的给定存储硬盘的磨损程度,将特定数目的备用块分配给所述给定存储硬盘。
15.一种计算机程序产品,包括在其上存储有一个或多个软件程序的程序代码的非瞬态处理器可读存储介质,其中所述程序代码在由包括耦合到存储器的处理器的至少一个处理设备执行时,使得所述至少一个处理设备:
根据映射独立硬盘冗余阵列(RAID)布置来定义用于存储数据的存储硬盘的池;
确定所述池中的所述存储硬盘中相应存储硬盘的磨损程度;以及
至少部分地基于其相应的磨损程度,将不同数目的备用块分配给所述池中的所述存储硬盘中的不同的存储硬盘。
16.根据权利要求15所述的计算机程序产品,其中所述程序代码在由所述至少一个处理设备执行时还使所述至少一个处理设备:从所述存储硬盘中的特定存储硬盘中选择除所分配的备用块之外的特定块,以用于所述映射RAID布置。
17.根据权利要求15所述的计算机程序产品,其中与所述存储硬盘中具有相对低磨损程度的第二存储硬盘相比,所述存储硬盘中具有相对高磨损程度的第一存储硬盘被分配更多数目的备用块。
18.根据权利要求15所述的计算机程序产品,其中被分配给所述存储硬盘中的相应存储硬盘的备用块的数目与那些存储硬盘的相应磨损水平正相关。
19.根据权利要求15所述的计算机程序产品,其中至少部分地基于其相应的磨损程度,将不同数目的备用块分配给所述池中的所述存储硬盘中的不同的存储硬盘包括:
确定所述池中存储硬盘的平均磨损程度;
确定所述池中所述存储硬盘的平均备用块数目;以及
至少部分地基于所述平均磨损程度、所述平均备用块数目以及所述池中的所述存储硬盘中的给定存储硬盘的磨损程度,将特定数目的备用块分配给所述给定存储硬盘。
20.根据权利要求19所述的计算机程序产品,其中将特定数目的备用块分配给所述给定存储硬盘包括:
响应于所述给定存储硬盘的所述磨损程度等于所述平均磨损程度,确定所述数目等于所述平均备用块数目;
响应于所述给定存储硬盘的所述磨损程度大于所述平均磨损程度,确定所述数目大于所述平均备用块数目;以及
响应于所述给定存储硬盘的所述磨损程度小于所述平均磨损程度,确定所述数目小于所述平均备用块数目。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210638491.7A CN115061624A (zh) | 2018-01-18 | 2018-01-18 | 分配存储的方法、电子设备、存储***和计算机程序产品 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810049315.3A CN110058788B (zh) | 2018-01-18 | 2018-01-18 | 分配存储的方法、电子设备、存储***和计算机程序产品 |
CN202210638491.7A CN115061624A (zh) | 2018-01-18 | 2018-01-18 | 分配存储的方法、电子设备、存储***和计算机程序产品 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810049315.3A Division CN110058788B (zh) | 2018-01-18 | 2018-01-18 | 分配存储的方法、电子设备、存储***和计算机程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115061624A true CN115061624A (zh) | 2022-09-16 |
Family
ID=67213948
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210638491.7A Pending CN115061624A (zh) | 2018-01-18 | 2018-01-18 | 分配存储的方法、电子设备、存储***和计算机程序产品 |
CN201810049315.3A Active CN110058788B (zh) | 2018-01-18 | 2018-01-18 | 分配存储的方法、电子设备、存储***和计算机程序产品 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810049315.3A Active CN110058788B (zh) | 2018-01-18 | 2018-01-18 | 分配存储的方法、电子设备、存储***和计算机程序产品 |
Country Status (2)
Country | Link |
---|---|
US (2) | US10628071B2 (zh) |
CN (2) | CN115061624A (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111124260B (zh) * | 2018-10-31 | 2023-09-08 | 伊姆西Ip控股有限责任公司 | 管理独立盘冗余阵列的方法、电子设备和计算机程序产品 |
CN111124271B (zh) * | 2018-10-31 | 2023-09-08 | 伊姆西Ip控股有限责任公司 | 用于针对磁盘***执行资源重新分配的方法、装置和介质 |
JP2021135760A (ja) * | 2020-02-27 | 2021-09-13 | キオクシア株式会社 | メモリシステムおよびメモリ制御方法 |
CN113391758B (zh) * | 2020-03-13 | 2024-06-07 | 伊姆西Ip控股有限责任公司 | 在存储***中管理条带的方法、设备和计算机程序产品 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9183133B2 (en) * | 2007-11-28 | 2015-11-10 | Seagate Technology Llc | System, method, and computer program product for increasing spare space in memory to extend a lifetime of the memory |
US8473779B2 (en) * | 2008-02-29 | 2013-06-25 | Assurance Software And Hardware Solutions, Llc | Systems and methods for error correction and detection, isolation, and recovery of faults in a fail-in-place storage array |
US20100235605A1 (en) * | 2009-02-13 | 2010-09-16 | Nir Perry | Enhancement of storage life expectancy by bad block management |
US8639877B2 (en) * | 2009-06-30 | 2014-01-28 | International Business Machines Corporation | Wear leveling of solid state disks distributed in a plurality of redundant array of independent disk ranks |
US8370659B2 (en) * | 2009-09-21 | 2013-02-05 | Dell Products L.P. | Systems and methods for time-based management of backup battery life in memory controller systems |
WO2013145024A1 (en) * | 2012-03-30 | 2013-10-03 | Hitachi, Ltd. | Storage system with flash memory, and storage control method |
TWI492051B (zh) * | 2012-09-05 | 2015-07-11 | Silicon Motion Inc | 資料儲存裝置與快閃記憶體控制方法 |
JP6331773B2 (ja) * | 2014-06-30 | 2018-05-30 | 富士通株式会社 | ストレージ制御装置、およびストレージ制御プログラム |
US10082965B1 (en) * | 2016-06-30 | 2018-09-25 | EMC IP Holding Company LLC | Intelligent sparing of flash drives in data storage systems |
US11269562B2 (en) * | 2019-01-29 | 2022-03-08 | EMC IP Holding Company, LLC | System and method for content aware disk extent movement in raid |
RU2019102665A (ru) * | 2019-01-31 | 2020-07-31 | ИЭмСи АйПи ХОЛДИНГ КОМПАНИ, ЛЛС | Система и способ для ускоренного восстановления raid посредством знания о выделении |
-
2018
- 2018-01-18 CN CN202210638491.7A patent/CN115061624A/zh active Pending
- 2018-01-18 CN CN201810049315.3A patent/CN110058788B/zh active Active
- 2018-11-01 US US16/177,736 patent/US10628071B2/en active Active
-
2020
- 2020-03-06 US US16/811,530 patent/US11106376B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN110058788B (zh) | 2022-06-14 |
US20200210089A1 (en) | 2020-07-02 |
CN110058788A (zh) | 2019-07-26 |
US20190220212A1 (en) | 2019-07-18 |
US11106376B2 (en) | 2021-08-31 |
US10628071B2 (en) | 2020-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110058788B (zh) | 分配存储的方法、电子设备、存储***和计算机程序产品 | |
CN110058789B (zh) | 用于管理存储***的方法、存储***以及计算机程序产品 | |
US10922201B2 (en) | Method and device of data rebuilding in storage system | |
CN110737401B (zh) | 用于管理独立冗余磁盘阵列的方法、设备和计算机程序产品 | |
WO2020000817A1 (zh) | 一种归置组所属硬盘分配方法、***、装置及存储介质 | |
US20200349004A1 (en) | Adaptive change of redundancy level of raid | |
CN110058960B (zh) | 用于管理存储***的方法、设备和计算机程序产品 | |
CN115576505B (zh) | 一种数据存储方法、装置、设备及可读存储介质 | |
US11150990B2 (en) | Method, apparatus and computer readable medium for managing a plurality of disks | |
CN108170366A (zh) | 存储设备中的存储介质管理方法、装置和存储设备 | |
JP2020127182A (ja) | 制御装置、制御方法及びプログラム | |
CN111124263B (zh) | 用于管理多个盘的方法、电子设备以及计算机程序产品 | |
CN110737398A (zh) | 协调访问操作的方法、设备和计算机程序产品 | |
CN109725835B (zh) | 用于管理盘阵列的方法、设备和计算机程序产品 | |
US10394463B2 (en) | Managing storage devices having a lifetime of a finite number of operations | |
WO2020094134A1 (zh) | 磁盘分配方法、装置和可读存储介质 | |
US20170003890A1 (en) | Device, program, recording medium, and method for extending service life of memory | |
CN108646987A (zh) | 一种文件卷的管理方法、装置、存储介质及终端 | |
CN115202589B (zh) | 放置组成员选择方法、装置、设备及可读存储介质 | |
CN110286848A (zh) | 数据处理方法及装置 | |
CN108228079B (zh) | 存储管理方法和设备 | |
CN111124260B (zh) | 管理独立盘冗余阵列的方法、电子设备和计算机程序产品 | |
CN107077420B9 (zh) | 覆盖擦除块映射 | |
CN112764665B (zh) | 存储管理的方法、设备和计算机程序产品 | |
WO2020000480A1 (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 |