CN111124260B - 管理独立盘冗余阵列的方法、电子设备和计算机程序产品 - Google Patents
管理独立盘冗余阵列的方法、电子设备和计算机程序产品 Download PDFInfo
- Publication number
- CN111124260B CN111124260B CN201811288170.9A CN201811288170A CN111124260B CN 111124260 B CN111124260 B CN 111124260B CN 201811288170 A CN201811288170 A CN 201811288170A CN 111124260 B CN111124260 B CN 111124260B
- Authority
- CN
- China
- Prior art keywords
- plbs
- raid
- wear level
- discs
- 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
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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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
- 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/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
- G06F11/1092—Rebuilding, e.g. when physically replacing a failing disk
-
- 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/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开的实施例涉及管理独立盘冗余阵列的方法、电子设备和计算机程序产品。该方法包括:获取与多个盘的每个盘相关联的磨损水平的信息;基于磨损水平的信息,从多个盘中选择一组盘,所述一组盘中的任意两个盘之间的磨损水平的差低于预定阈值;以及使用所选择的所述一组盘中的区段来创建独立盘冗余阵列。本公开的实施例能够充分利用该磨损水平来平衡各个独立盘冗余阵列之间的数据存储分布,从而实现独立盘冗余阵列的高效管理。
Description
技术领域
本公开的实施例总体上涉及数据存储领域,具体地涉及用于管理独立盘冗余阵列的方法、电子设备和计算机程序产品。
背景技术
存储系统中通常具有多个盘,并且多个盘可以被组织在盘阵列中。这些盘可以用于用户写入数据。例如,独立磁盘冗余阵列(Redundant Arrays of Independent Disks,RAID)是一种数据存储虚拟化技术,其出于数据冗余备份和/或性能改进的目的将多个盘组织成单个逻辑单元。随着写入的数据越来越多,部分盘可能发生过载。如何在各个RAID之间实现数据存储的平衡以避免类似过载是一项重大的挑战。
发明内容
本公开的实施例提供了用于管理独立盘冗余阵列(RAID)的方法、电子设备和计算机程序产品,旨在至少部分地解决数据存储领域中存在的上述和/或其他潜在问题。
在第一方面,本公开的实施例提供了一种管理RAID的方法。该方法包括:获取与多个盘的每个盘相关联的磨损水平的信息;基于所述磨损水平的信息,从所述多个盘中选择一组盘,所述一组盘中的任意两个盘之间的所述磨损水平的差低于预定阈值;以及使用所选择的所述一组盘中的区段来创建RAID。
在一些实施例中,所述RAID包括多个物理块(Physical Large Block,PLB),每个PLB包括所述一组盘中的每个盘的区段中的一个块,所述方法还包括:响应于接收到将目标数据写入所述RAID的请求,确定所述RAID中已存储有数据的已使用PLB的第一数目;基于所述一组盘的所述磨损水平的平均值,确定所述RAID的所述多个PLB中期望用于存储数据的PLB的第二数目;以及响应于所述第一数目低于所述第二数目,确定可用于存储所述目标数据的空闲PLB的第三数目。
在一些实施例中,所述方法还包括:从所述多个PLB中确定所述第三数目的空闲PLB;以及将所述目标数据存储到所述空闲PLB中。
在一些实施例中,确定所述RAID的所述多个PLB中期望用于存储数据的PLB的第二数目包括:基于所述一组盘的所述磨损水平的平均值,确定所述RAID的磨损水平;基于所述RAID的磨损水平,从所述RAID的所述多个PLB中确定非预留PLB的数目;基于与所述RAID相关联的另一RAID的磨损水平,确定所述另一RAID的已使用PLB的数目和非预留PLB的数目;以及基于所述RAID的已使用PLB的数目和非预留PLB的数目与所述另一RAID的已使用PLB的数目和非预留PLB的数目,确定所述RAID的多个PLB中期望用于存储数据的PLB的所述第二数目。
在一些实施例中,该方法还包括:响应于所述第一数目不低于所述第二数目,确定是否存在可用于存储所述目标数据的另一RAID;以及响应于不存在所述另一RAID,向所述多个盘中增加新的盘,以更新所述RAID。
在一些实施例中,其中获取与多个盘的每个盘相关联的磨损水平的信息包括:获取每个盘的已使用时间,所述已使用时间指示所述盘已用于存储数据的时间;获取每个盘的额定使用时间,所述额定使用时间指示所述盘可用于存储数据的最长时间;以及基于所述已使用时间和额定使用时间,获取相关联的磨损水平的信息。
在第二方面,本公开的实施例提供了一种电子设备。该电子设备包括:至少一个处理单元;至少一个存储器,至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令,指令当由至少一个处理单元执行时,使得设备执行动作,该动作包括:获取与多个盘的每个盘相关联的磨损水平的信息;基于所述磨损水平的信息,从所述多个盘中选择一组盘,所述一组盘中的任意两个盘之间的所述磨损水平的差低于预定阈值;以及使用所选择的所述一组盘中的区段来创建RAID。
在第三方面,本公开的实施例提供了一种计算机程序产品。该计算机程序产品被有形地存储在非瞬态计算机存储介质中并且包括机器可执行指令。该机器可执行指令在由设备执行时使该设备执行根据本公开的第一方面所描述的方法的任意步骤。
提供发明内容部分是为了以简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或必要特征,也无意限制本公开的范围。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。
图1示出了利用根据本公开的实施例的方法创建RAID的示意性方法;
图2示出了根据本公开的实施例的包括多个PLB的RAID的示意图;
图3示出了根据本公开的实施例的用于管理RAID的方法的流程图;以及
图4示出了可以用来实施本公开内容的实施例的示例设备的示意性框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的优选实施例,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
在传统的数据存储方式中,RAID被划分成更小粒度的部分,即物理块(PhysicalLarge Block,PLB)。当用户写入数据时,处理器从RAID中选择闲置的PLB并且将用户数据写入该PLB中。传统的数据存储方式按顺序选择PLB。当RAID中的所有PLB都被用完时,处理器选择下一个RAID并且从这个RAID中同样选择闲置的PLB用于用户写入数据。这种方法并没有考虑盘的磨损水平。另外,这种方法也没有在RAID中平衡用户数据。因此可能使得一些盘发生过载,甚至可能被损坏。
针对上述问题和潜在的其他问题,本公开的实施例提出了一种管理RAID的方法。根据本公开的实施例的方法在写入数据时考虑盘的磨损水平,由此可以避免某些盘磨损程度太大而率先发生过载或者被损坏,从而实现独立盘冗余阵列的高效管理。下面结合图1和图2更详细地描述可以实施根据本公开的实施例的方法的使用环境。
图1示出了利用根据本公开的实施例的方法创建RAID 200的示意性方法。参照图1,示出了多个盘100-0、100-1、100-2、……、100-N(统称为“盘100”或“存储盘100”,其中N为正整数)。在此所述的“盘”可以指代任何目前已知或者将来开发的非易失性存储介质,例如磁盘、光盘或固态盘(SSD)等等。在本文的描述中,将以磁盘作为盘的示例。然而,应当理解,这仅仅是出于便于描述的目的,而不暗示对本公开的范围的任何限制。
每个盘100可以被划分为多个区段110。例如,盘100-0可以包括多个区段110-0-0、区段110-0-1、……、区段110-0-M,其中M为正整数。类似地,盘100-1可以包括多个区段110-1-0、区段110-1-1、……、区段110-1-M,以此类推。这些区段被统称为区段110。在区段的编号中,数字“110”后的第一个数字表示该区段属于哪个盘,而数字“110”后的第二个数字表示该区段是该盘上的第几个区段。这些区段可以具有相同的大小。如图1所示,盘100-0还可以包括预留区段110-0-R,该预留区段110-0-R可以起保留数据的作用。
可以将多个区段中的至少部分区段组成RAID,其通常出于数据冗余备份和/或性能改进的目的而将多个物理存储单元组合成逻辑存储单元。根据所要求的冗余度和性能的级别,其可以具有不同的类型,诸如RAID0、RAID1、……、RAID5等。
RAID可以包括用于存储用户数据的数据区段和用于存储校验信息的校验区段。以具有4D+1P布局的RAID5为例,其中每个RAID可以包括4个数据区段(即“4D”)和1个校验区段(即“1P”)。在以下的描述中,将以4D+1P的RAID5作为RAID 200的示例。然而,应当理解,这仅仅是出于说明的目的,而不暗示对本公开的范围的任何限制。本公开的实施例可以被应用于具有其他布局的其他类型的RAID。
根据RAID的类型,可以从不同的盘100中选取出一个区段110,来组成RAID。以RAID5为例,需要从5个盘100(例如盘100-0、盘100-1、盘100-2、盘100-3、盘100-4)中分别选择一个区段以组成RAID 200-1。例如在图1所示的实施例中,选取盘100-0的区段110-0-0、盘100-1的区段110-1-0、盘100-2的区段110-2-0、盘100-3的区段110-3-0、和盘100-4的区段110-4-0来组成RAID 200-1。当然,这仅仅是示例性的,可以从盘100中的其他五个盘中选取区段,来组成RAID 200。
每个盘100都具有一定的磨损水平(wear level),磨损水平表示该盘在使用过程中的磨损程度,它在存储盘的数据存储中具有重要的作用。可以定义多个磨损水平的级别。针对不同的磨损水平,在RAID中可以预留一些空间。出于磨损水平的考虑,这些空间不用于存储用户数据,而该RAID中剩余的空间可以用于存储用户数据。
下面具体结合图3来描述根据本公开的实施例。
在框310中,获取与多个盘100的每个盘100-0、100-1、……、100-N相关联的磨损水平的信息。这些磨损水平的信息可以被存储在各盘100-0、100-1、……、100-N的固件上,来反映各个盘100-0、100-1、……、100-N的磨损情况。
在框320中,参考图1,基于磨损水平的信息,从多个盘100中选择一组盘100-0、100-1、100-2、100-3、100-4,所述一组盘100-0、100-1、100-2、100-3、100-4中的任意两个盘之间的磨损水平的差低于预定阈值。该预定阈值可以是百分数,并且可以根据不同的使用环境以及不同的用户需求而进行调整。
在备选实施例中,例如可将预定阈值设置为5%,则可以选择磨损水平例如分别为11%、11%、13%、14%和15%的几个盘为一组盘。同样,例如也可以选择磨损水平分别为33%、34%、34%、36%和37%的几个盘为一组盘。当然,这是数字仅仅是示例性的。为方便表示,图1中基于磨损水平被选择出的一组盘100-0、100-1、100-2、100-3、100-4被表示为标号相邻的一组盘。当然,这一组盘可以是标号不相邻的一组盘,只要这些盘中任意两个盘之间的磨损水平的差低于预定阈值即可。如图1所示,以相同的方式,可以选择出磨损水平类似的另一组盘100-5、100-6、100-7、100-8、100-9。通过框320,所选择的一组盘的磨损水平的百分比在一定范围内。也就是说,这一组盘的磨损程度是类似的。
在框330中,使用所选择的一组盘100-0、100-1、100-2、100-3和100-4中的区段来创建RAID 200-1。参照图1,选择盘100-0中的区段110-0-0、盘100-1中的区段110-1-0、盘100-2中的区段110-2-0、盘100-3中的区段110-3-0以及盘100-4中的区段110-4-0来创建RAID200-1。类似地,选择盘100-5中的区段110-5-0、盘100-6中的区段110-6-0、盘100-7中的区段110-7-0、盘100-8中的区段110-8-0以及盘100-9中的区段110-9-0来创建RAID 200-2。以这样的方式可以创建多个RAID 200-1、RAID 200-2……、RAID 200-P(统称为“RAID200”,其中P为正整数)。
根据本公开的实施例,选择磨损水平接近的盘来创建RAID。这可以避免由磨损程度差异很大的盘来创建RAID。以此方式,可以在RAID创建过程中考虑盘阵列中的盘的整体磨损程度,防止一部分盘在使用过程中由于磨损程度过大而率先被损坏的危险。
在一些实施例中,如图2所示,每个区段110-0-0、110-1-0、110-2-0、110-3-0、110-4-0都可以包括多个块210。从每个区段110-0-0、110-1-0、110-2-0、110-3-0、110-4-0中分别选取一个块210,来构成PLB 201-1。在写入用户数据时,PLB 201-1可以被视为存储用户数据的最小单元。PLB 201-1可以具有2M的大小。可以按类似的方式构成多个其他PLB 201-2、PLB 201-3、……、PLB 201-S。如图2所示,RAID 200-1可以包括多个PLB 201-1、PLB 201-2,等等。下文中将以PLB 201-1作为PLB的示例。
在需要写入用户提供的数据时,可以响应于接收到将目标数据写入RAID 200-1的请求,确定RAID 200-1中已存储有数据的已使用PLB的数目。可以基于区段110-0-0、110-1-0、110-2-0、110-3-0、110-4-0所对应的一组盘100-0、100-1、100-2、100-3和100-4的磨损水平,来确定所述多个PLB中期望用于存储数据的PLB的数目。在一些实施例中,可以选择这一组盘100-0、100-1、100-2、100-3和100-4中的每个盘的磨损水平的平均值作为这组盘的磨损水平的量度。如上文所述,由于这一组盘100-0、100-1、100-2、100-3和100-4的选择是基于磨损水平相对接近这一标准来进行的,因此,根据每个盘的磨损水平的平均值所得到的这组盘100-0、100-1、100-2、100-3和100-4的磨损水平的量度也接近每个盘的实际磨损水平,因此可以较好地反映每个盘的磨损程度。
在一些实施例中,可以在每个RAID 200中维持四个字段:预留PLB的数目、已使用PLB的数目、空闲PLB的数目以及期望用于存储数据的PLB的数目。在这四个字段中,预留PLB的数目表示如上文所述的用来提供预留数据的PLB的数目;已使用PLB的数目表示如上文所述的已经在其上存储有用户数据的PLB的数目;空闲PLB的数目表示可用来分配为存储用户数据的PLB的数目;并且期望用于存储数据的PLB的数目表示根据磨损水平来确定的多个PLB中预计用于存储数据的PLB的数目。
如果判断已存储有数据的已使用PLB的数目低于多个PLB中期望用于存储数据的PLB的数目,则表示在RAID 200中还有期望的空间来存储用户写入的数据。在这种情况下,将该RAID 200放入分配链表(Allocating Ring)中,分配链表用来存储满足上述判断条件的RAID。也就是说,在分配链表中的RAID都有空闲的PLB来存储数据。此外,利用多个PLB中期望用于存储数据的PLB的数目与已存储有数据的已使用PLB的数目之间的差来确定可用于存储所述目标数据的空闲PLB的数目。容易理解的是,在已存储有数据的已使用PLB的数目低于多个PLB中期望用于存储数据的PLB的数目的情况下,可用于存储所述目标数据的可用PLB的数目为正整数。在需要存储用户写入的数据时,从分配链表中选择PLB来写入数据。在数据写入完成之后,可以更新可用PLB的数目和已使用PLB的数目。
如果判断已存储有数据的已使用PLB的数目不低于多个PLB中期望用于存储数据的PLB的数目,则表示在RAID 200中已经没有空间来存储用户写入的数据。在这种情况下,将该RAID放入超限链表(Overrun Ring)中,超限链表用来存储满足这一判断条件的RAID。也就是说,在超限链表中的RAID都没有空闲的PLB来存储待写入的数据。
以此方式,可以根据不同RAID 200-1的磨损水平以及该RAID200-1中的已存储数据的数目,来将其归入分配链表或超限链表,从而能够在数据写入时判断是否对RAID 200-1写入数据。如果与该RAID 200-1关联的多个盘100-0、100-1、100-2、100-3和100-4的磨损水平较大,则不对该RAID 200-1写入数据。如果与该RAID 200-1关联的多个盘100-0、100-1、100-2、100-3和100-4的磨损水平较小,则可以该RAID 200-1写入数据。随着PLB的分配以及释放,RAID200-1可以在分配链表与超限链表之间转换。如此,可以避免磨损程度已经很大的盘被继续写入数据,这样有效地防止盘阵列中的部分盘过载。
在一些实施例中,根据所算得的可用于存储所述目标数据的空闲PLB的数目从多个PLB 201-1、201-2、……、201-S中确定期望用于存储数据的PLB,并且将目标数据存储到所确定的这些PLB中。
在一些实施例中,可以用表1来建立磨损水平以及预留PLB的数目占RAID中的PLB总数目的比例之间的对应关系。如表1所示,可以定义六个磨损水平的等级。当然,这仅仅是示例性的,可以根据不同的精度要求来定义更多或者更少的磨损水平的等级,也就是说,可以根据实际需要进行更加精细或者粗略的等级划分。表1中的磨损水平Wi与预留PLB的数目占RAID的PLB总数目的比例Oi之间的对应关系也仅是示例性的。
表1
磨损水平可以用百分数来表示。盘的磨损水平的百分数越大,表示该盘的磨损程度越大,即代表该盘越趋于使用寿命的终点。反之,盘的磨损水平的百分数越小,表示该盘的磨损程度越小,即代表该盘越“新”。如表1所示,磨损水平Wi越高,对应的预留PLB的数目占RAID的PLB总数目的比例Oi越高。磨损水平Wi可以是盘中的一个字段。
在一些实施例中,可以通过以下公式(1)来计算多个PLB中期望用于存储数据的PLB的数目Pi:
其中Oi表示第i个RAID中预留PLB占PLB总数目的比例,该比例Oi可以由上文列出的表1根据磨损水平Wi来确定;Ci表示第i个RAID的PLB的总数目;(1-Oi)*i表示盘阵列中的第i个RAID的非预留PLB的数目。T表示盘阵列中的多个RAID中已存储有数据的PLB的数目的总和。
在一些实施例中,基于一组盘100-0、100-1、100-2、100-3和100-4的磨损水平的平均值,确定与RAID 200-1相关的磨损水平Wi。根据表1,确定该磨损水平对应的Oi,并根据RAID的PLB的总数目Ci计算得到RAID 200-1的多个PLB 201-1、201-2、……、201-S中确定非预留PLB的数目,即(1-Oi)*i。
随后,类似地算出盘阵列中其他RAID的非预留PLB的数目,并求和得到确定盘阵列中每个RAID的已使用PLB的数目,求和得到T。基于上述公式(1)算出RAID 200-1中的多个PLB201-1、201-2、……、201-S中期望用于存储数据的PLB的数目。
以此方式,在确定单个RAID 200-1中的多个PLB中期望用于存储数据的PLB的数目时,经由Oi考虑了盘阵列中其他RAID 200的磨损水平。通过单个RAID 200-1中非预留PLB与整个盘阵列中的非预留PLB的比例,有效地平衡存储数据的PLB在整个盘阵列中的数据分布。
在一些实施例中,管理映射关系的部件(mapper)将动态地利用上述公式(1)计算每个RAID中期望用于存储数据的PLB的数目。在备选的实施例中,可以设置定时器以恒定的时间间隔来完成该计算,这样的时间间隔可以被例如设定为1分钟。在另一些实施例中,可以响应于用户插入新的盘来进行上述计算,从而更新RAID。这是因为,用户往往是在已有盘的磨损水平较大时插入新的盘,这样新的盘与已有的盘的磨损水平差异较大,在这种情况下进行RAID的更新是很有必要的。
在一些实施例中,盘100的磨损水平可以基于该盘100的已使用时间与该盘100的额定使用时间的比值来确定。已使用时间指示该盘100已用于存储数据的时间,额定使用时间指示该盘100可用于存储数据的最长时间。随着盘的使用,磨损水平将逐渐变大。这样会使得期望用于存储数据的PLB的数目发生变化。以此方式,一些先前被归入超限链表中的RAID将可能被归入分配链表中。这样,当接收到用户写入数据的指令时,这些RAID可以再次被写入数据,从而完成盘阵列中的数据的动态写入。
在一些实施例中,如果RAID 200-1中已存储有数据的已使用PLB的数目不低于期望用于存储数据的PLB的数目,则不对该RAID写入数据。同时管理映射关系的部件将判断其他RAID中的已存储有数据的已使用PLB的数目是否低于期望用于存储数据的PLB的数目。也就是说,管理映射关系的部件将寻找是否存在可用于存储所述目标数据的另一RAID。如果盘阵列中的全部RAID的期望用于存储数据的PLB的数目都低于已存储有数据的已使用PLB的数目,即如果不存在可用于存储所述目标数据的另一RAID,则这表示在RAID上的PLB都被占用。在这种情况下,管理映射关系的部件将通知用户向盘阵列中增加新的盘来扩大容量,以便更新RAID。当用户插入新的磁盘之前,RAID上起保留作用的预留PLB可以用于暂时性地写入用户的数据。在一些实施例中,如果盘110-0-0具有很高的磨损水平,即接近使用期限(End-of-Life,EOL)时,可以通过插入同种类型的盘、将其划分为各区段、并通知管理映射关系的部件实施重建来完成该盘110-0-0的重建。
在一些实施例中,可以采用轮询调度(round-robin)的方式来选取预留PLB。在这些预留PLB也被占据的情况下,则管理映射关系的部件将发出容量短缺的消息并且用户的写入将被拒绝。此时,由于数据读取对磁盘的磨损水平的影响较小,管理映射关系的部件将不会主动地将用户数据从已经过载的RAID移动到新插入的RAID中。在这种情况下,如果用户在写入数据时选中了过载的RAID,则其上的所有PLB都将被移动到新的RAID上。
基于以上描述能够看出,根据本公开的实施例的方法,可以根据盘阵列中的盘的磨损水平来创建RAID,并且利用该磨损水平得到RAID中的期望用于存储数据的PLB的数目,并且根据该数目来优化存储数据的分配。
图4示出了可以用来实施本公开的实施例的示例设备400的示意性框图。设备400可以用于实现图3的方法300。
如图所示,设备400包括中央处理单元(CPU)401,其可以根据存储在只读存储器(ROM)402中的计算机程序指令或者从存储单元408加载到随机访问存储器(RAM)403中的计算机程序指令,来执行各种适当的动作和处理。在RAM 403中,还可存储设备400操作所需的各种程序和数据。CPU 401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。
设备400中的多个部件连接至I/O接口405,包括:输入单元406,例如键盘、鼠标等;输出单元407,例如各种类型的显示器、扬声器等;存储单元408,例如磁盘、光盘等;以及通信单元409,例如网卡、调制解调器、无线通信收发机等。通信单元409允许设备400通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理单元401执行上文所描述的各个方法和处理,例如过程300。例如,在一些实施例中,过程300可被实现为计算机软件程序或计算机程序产品,其被有形地包含于机器可读介质,诸如非瞬态计算机可读介质,诸如存储单元408。在一些实施例中,计算机程序的部分或者全部可以经由ROM 402和/或通信单元409而被载入和/或安装到设备400上。当计算机程序加载到RAM 403并由CPU 401执行时,可以执行上文描述的过程300的一个或多个步骤。备选地,在其他实施例中,CPU 401可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行过程300。
本领域的技术人员应当理解,上述本公开的方法的各个步骤可以通过通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本公开不限制于任何特定的硬件和软件结合。
应当理解,尽管在上文的详细描述中提及了设备的若干装置或子装置,但是这种划分仅仅是示例性而非强制性的。实际上,根据本公开的实施例,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
以上所述仅为本公开的可选实施例,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等效替换、改进等,均应包含在本公开的保护范围之内。
Claims (11)
1.一种管理独立盘冗余阵列RAID的方法,包括:
获取与多个盘的每个盘相关联的磨损水平的信息;
基于所述磨损水平的信息,从所述多个盘中选择一组盘,所述一组盘中的任意两个盘之间的所述磨损水平的差低于预定阈值;以及
使用所选择的所述一组盘中的区段来创建RAID,
其中所述RAID包括多个物理大块PLB,每个PLB包括所述一组盘中的每个盘的区段中的一个块,所述方法还包括:
响应于接收到将目标数据写入所述RAID的请求,确定所述RAID中已存储有数据的已使用PLB的第一数目;
基于所述一组盘的所述磨损水平的平均值,确定所述RAID的所述多个PLB中期望用于存储数据的PLB的第二数目;以及
响应于所述第一数目低于所述第二数目,确定可用于存储所述目标数据的空闲PLB的第三数目。
2.根据权利要求1所述的方法,还包括:
从所述多个PLB中确定所述第三数目的空闲PLB;以及
将所述目标数据存储到所述空闲PLB中。
3.根据权利要求1所述的方法,其中确定所述RAID的所述多个PLB中期望用于存储数据的PLB的第二数目包括:
基于所述一组盘的所述磨损水平的平均值,确定所述RAID的磨损水平;
基于所述RAID的磨损水平,从所述RAID的所述多个PLB中确定非预留PLB的数目;
基于与所述RAID相关联的另一RAID的磨损水平,确定所述另一RAID的已使用PLB的数目和非预留PLB的数目;以及
基于所述RAID的已使用PLB的数目和非预留PLB的数目与所述另一RAID的已使用PLB的数目和非预留PLB的数目,确定所述RAID的所述多个PLB中期望用于存储数据的PLB的所述第二数目。
4.根据权利要求1所述的方法,还包括:
响应于所述第一数目不低于所述第二数目,确定是否存在可用于存储所述目标数据的另一RAID;以及
响应于不存在所述另一RAID,向所述多个盘中增加新的盘,以更新所述RAID。
5.根据权利要求1所述的方法,其中获取与多个盘的每个盘相关联的磨损水平的信息包括:
获取每个盘的已使用时间,所述已使用时间指示所述盘已用于存储数据的时间;
获取每个盘的额定使用时间,所述额定使用时间指示所述盘可用于存储数据的最长时间;以及
基于所述已使用时间和额定使用时间,获取相关联的磨损水平的信息。
6.一种电子设备,包括:
至少一个处理单元;
至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令当由所述至少一个处理单元执行时,使得所述设备执行动作,所述动作包括:
获取与多个盘的每个盘相关联的磨损水平的信息;
基于所述磨损水平的信息,从所述多个盘中选择一组盘,所述一组盘中的任意两个盘之间的所述磨损水平的差低于预定阈值;以及
使用所选择的所述一组盘中的区段来创建RAID,
其中所述RAID包括多个PLB,每个PLB包括所述一组盘中的每个盘的区段中的一个块,所述动作还包括:
响应于接收到将目标数据写入所述RAID的请求,确定所述RAID中已存储有数据的已使用PLB的第一数目;
基于所述一组盘的所述磨损水平的平均值,确定所述RAID的所述多个PLB中期望用于存储数据的PLB的第二数目;以及
响应于所述第一数目低于所述第二数目,确定可用于存储所述目标数据的空闲PLB的第三数目。
7.根据权利要求6所述的设备,所述动作还包括:
从所述多个PLB中确定所述第三数目的空闲PLB;以及
将所述目标数据存储到所述空闲PLB中。
8.根据权利要求6所述的设备,其中确定所述RAID的所述多个PLB中期望用于存储数据的PLB的第二数目包括:
基于所述一组盘的所述磨损水平的平均值,确定所述RAID的磨损水平;
基于所述RAID的磨损水平,从所述RAID的所述多个PLB中确定非预留PLB的数目;
基于与所述RAID相关联的另一RAID的磨损水平,确定所述另一RAID的已使用PLB的数目和非预留PLB的数目;以及
基于所述RAID的已使用PLB的数目和非预留PLB的数目与所述另一RAID的已使用PLB的数目和非预留PLB的数目,确定所述RAID的所述多个PLB中期望用于存储数据的PLB的所述第二数目。
9.根据权利要求6所述的设备,所述动作还包括:
响应于所述第一数目不低于所述第二数目,确定是否存在可用于存储所述目标数据的另一RAID;以及
响应于不存在所述另一RAID,向所述多个盘中增加新的盘,以更新所述RAID。
10.根据权利要求6所述的设备,其中获取与多个盘的每个盘相关联的磨损水平的信息包括:
获取每个盘的已使用时间,所述已使用时间指示所述盘已用于存储数据的时间;
获取每个盘的额定使用时间,所述额定使用时间指示所述盘可用于存储数据的最长时间;以及
基于所述已使用时间和额定使用时间,获取相关联的磨损水平的信息。
11.一种非瞬态计算机存储介质,包括机器可执行指令,所述机器可执行指令在由设备执行时使所述设备执行根据权利要求1-5中的任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811288170.9A CN111124260B (zh) | 2018-10-31 | 2018-10-31 | 管理独立盘冗余阵列的方法、电子设备和计算机程序产品 |
US16/654,702 US11163470B2 (en) | 2018-10-31 | 2019-10-16 | Method, electronic device and computer program product for managing redundant arrays of independent disks |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811288170.9A CN111124260B (zh) | 2018-10-31 | 2018-10-31 | 管理独立盘冗余阵列的方法、电子设备和计算机程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111124260A CN111124260A (zh) | 2020-05-08 |
CN111124260B true CN111124260B (zh) | 2023-09-08 |
Family
ID=70326239
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811288170.9A Active CN111124260B (zh) | 2018-10-31 | 2018-10-31 | 管理独立盘冗余阵列的方法、电子设备和计算机程序产品 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11163470B2 (zh) |
CN (1) | CN111124260B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111104047B (zh) * | 2018-10-25 | 2023-08-25 | 伊姆西Ip控股有限责任公司 | 管理冗余磁盘阵列的方法、设备和计算机可读存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107122269A (zh) * | 2016-02-25 | 2017-09-01 | 伊姆西公司 | 用于保证映射独立磁盘冗余阵列的可靠性的方法和装置 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4651913B2 (ja) * | 2003-02-17 | 2011-03-16 | 株式会社日立製作所 | 記憶装置システム |
US10209904B2 (en) | 2013-04-09 | 2019-02-19 | EMC IP Holding Company LLC | Multiprocessor system with independent direct access to bulk solid state memory resources |
US9710317B2 (en) * | 2015-03-30 | 2017-07-18 | Netapp, Inc. | Methods to identify, handle and recover from suspect SSDS in a clustered flash array |
US9946471B1 (en) * | 2015-03-31 | 2018-04-17 | EMC IP Holding Company LLC | RAID groups based on endurance sets |
US9703664B1 (en) | 2015-06-24 | 2017-07-11 | EMC IP Holding Company LLC | Self adaptive workload classification and forecasting in multi-tiered storage system using ARIMA time series modeling |
US10261717B1 (en) | 2015-06-24 | 2019-04-16 | EMC IP Holding Company LLC | Optimizing performance of snapshots based on service level objectives |
US9965218B1 (en) | 2015-09-30 | 2018-05-08 | EMC IP Holding Company LLC | Techniques using multiple service level objectives in connection with a storage group |
US20170131947A1 (en) * | 2015-11-06 | 2017-05-11 | Pho Hoang | Data and collection methods to analyze life acceleration of SSD with real usages |
US9940033B1 (en) | 2015-12-30 | 2018-04-10 | EMC IP Holding Company LLC | Method, system and computer readable medium for controlling performance of storage pools |
US10282107B1 (en) | 2015-12-31 | 2019-05-07 | EMC IP Holding Company LLC | Controlling I/O response time to meet service levels |
US10254970B1 (en) | 2016-06-30 | 2019-04-09 | EMC IP Holding Company LLC | System, method and computer readable medium for obtaining consistent read performance for a plurality of flash drives or raid groups using workload and capacity limits |
US11513692B2 (en) * | 2016-06-30 | 2022-11-29 | EMC IP Holding Company LLC | Arranging SSD resources based on estimated endurance |
CN108733314B (zh) * | 2017-04-17 | 2021-06-29 | 伊姆西Ip控股有限责任公司 | 用于独立冗余阵列(raid)重建的方法、设备和计算机可读存储介质 |
CN110058788B (zh) * | 2018-01-18 | 2022-06-14 | 伊姆西Ip控股有限责任公司 | 分配存储的方法、电子设备、存储系统和计算机程序产品 |
-
2018
- 2018-10-31 CN CN201811288170.9A patent/CN111124260B/zh active Active
-
2019
- 2019-10-16 US US16/654,702 patent/US11163470B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107122269A (zh) * | 2016-02-25 | 2017-09-01 | 伊姆西公司 | 用于保证映射独立磁盘冗余阵列的可靠性的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
US20200133494A1 (en) | 2020-04-30 |
US11163470B2 (en) | 2021-11-02 |
CN111124260A (zh) | 2020-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112015583B (zh) | 一种数据存储的方法、装置和系统 | |
CN108052655B (zh) | 数据写入及读取方法 | |
US10558383B2 (en) | Storage system | |
CN110413201B (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
US11095715B2 (en) | Assigning storage responsibility in a distributed data storage system with replication | |
US10628088B2 (en) | Computer system | |
CN109725830B (zh) | 管理独立磁盘冗余阵列的方法、设备和存储介质 | |
US8812779B2 (en) | Storage system comprising RAID group | |
CN111104055B (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
US11474919B2 (en) | Method for managing multiple disks, electronic device and computer program product | |
CN109725838B (zh) | 用于管理多个盘的方法、装置以及计算机可读介质 | |
CN110058960B (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
JP6211631B2 (ja) | ボリューム複製を目的としたワークロードの特定およびバッファのサイズ設定 | |
CN112748867B (zh) | 用于存储管理的方法、电子设备以及计算机程序产品 | |
JP2020154587A (ja) | 計算機システム及びデータ管理方法 | |
CN112241320A (zh) | 资源分配方法、存储设备和存储系统 | |
CN111124250A (zh) | 用于管理存储空间的方法、设备和计算机程序产品 | |
US8631201B2 (en) | Dynamic allocation of virtualization function types to RAID levels | |
US11809720B2 (en) | Techniques for storage management | |
CN109725835A (zh) | 用于管理盘阵列的方法、设备和计算机程序产品 | |
US20160253119A1 (en) | Storage system, storage method, and recording medium | |
CN104050200A (zh) | 用于数据拷贝的方法和装置 | |
JP5183363B2 (ja) | 論理ボリュームのデータ移動方法とストレージシステムおよび管理計算機 | |
CN111124260B (zh) | 管理独立盘冗余阵列的方法、电子设备和计算机程序产品 | |
CN112748849A (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 |