CN114564144B - 在存储系统中创建区块阵列的方法、设备和程序产品 - Google Patents
在存储系统中创建区块阵列的方法、设备和程序产品 Download PDFInfo
- Publication number
- CN114564144B CN114564144B CN202011354956.3A CN202011354956A CN114564144B CN 114564144 B CN114564144 B CN 114564144B CN 202011354956 A CN202011354956 A CN 202011354956A CN 114564144 B CN114564144 B CN 114564144B
- Authority
- CN
- China
- Prior art keywords
- blocks
- storage devices
- block
- array
- tile
- 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
- 238000000034 method Methods 0.000 title claims abstract description 73
- 230000004044 response Effects 0.000 claims abstract description 21
- 230000002159 abnormal effect Effects 0.000 claims description 17
- 238000013507 mapping Methods 0.000 claims description 16
- 230000005012 migration Effects 0.000 claims description 8
- 238000013508 migration Methods 0.000 claims description 8
- 230000005856 abnormality Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 26
- 230000008569 process Effects 0.000 description 16
- 238000012545 processing Methods 0.000 description 15
- 238000004590 computer program Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 7
- 238000013500 data storage Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 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
- 238000013459 approach 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
- 230000003111 delayed effect Effects 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 238000011161 development 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
- 238000009420 retrofitting Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 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/0638—Organizing or formatting or addressing of data
-
- 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/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and 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/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/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/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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
公开了在存储系统中创建区块阵列的方法、设备和程序产品。在一种方法中,响应于接收到利用存储系统中的多个存储设备中的空闲区块生成区块阵列的请求,确定区块阵列中的区块条带的宽度,区块阵列的大小由存储系统指定。基于宽度,分别从多个存储设备选择第一组区块和第二组区块以形成第一区块条带和第二区块条带,第一组区块中的给定位置处的第一区块和第二组区块中的给定位置处的第二区块分别位于多个存储设备中的不同存储设备。基于第一区块条带和第二区块条带生成表示区块阵列的地址映射,地址映射包括区块阵列中的区块的区块标识和区块在区块阵列中的区块索引之间的关联关系。可以提高存储系统中的多个存储设备中的存储空间的利用率。
Description
技术领域
本公开的各实现方式涉及存储系统管理,更具体地,涉及用于在存储系统中创建区块阵列的方法、设备和计算机程序产品。
背景技术
随着数据存储技术的发展,各种数据存储设备已经能够向用户提供越来越高的数据存储能力,并且数据访问速度也有了很大程度的提高。在提高数据存储能力的同时,用户对于数据可靠性和存储系统的可扩展性也提供了越来越高的需求。目前,已经开发出了基于独立磁盘冗余阵列(Redundant Array of Independent Disks,RAID)的多种数据存储系统来提高数据的可靠性。当存储系统中的一个或者多个磁盘出现故障时,可以从其他正常操作的磁盘上的数据来重建故障磁盘中的数据。
目前已经开发出了映射独立磁盘冗余阵列(Mapped RAID)。在该映射RAID中,磁盘是一个逻辑概念并且可以包括多个区块(extent)。一个逻辑磁盘中包括的多个区块可以分布在资源池中的不同物理存储设备上。对于映射RAID的一个条带中的多个区块而言,该多个区块应当分布在不同的物理存储设备上,以便当该多个区块中的一个区块所在的物理存储设备出现故障时,可以执行重建操作以便从其他区块所在的物理存储设备中恢复数据。
为了便于管理,可以基于映射RAID技术,按照预先指定的大小(例如,64G)来在存储系统中创建区块阵列。在已有的技术方案中,一个区块阵列包括多个条带,并且各个条带中的给定位置处的区块必须位于相同的存储设备中。这将导致不能充分利用存储设备中的空闲存储空间。此时,如何尽可能有效地利用存储设备中的存储空间,成为一个技术难题。
发明内容
因而,期望能够开发并实现一种以更为有效的方式来创建区块阵列的技术方案。期望该技术方案能够与现有的存储系统相兼容,并且通过改造现有存储系统的各种配置,来以更为有效的方式管理存储设备。
根据本公开的第一方面,提供了一种在存储系统中生成区块阵列的方法,该存储系统包括多个存储设备。在该方法中,响应于接收到利用多个存储设备中的空闲区块生成区块阵列的请求,确定区块阵列中的区块条带的宽度,区块阵列的大小由存储系统指定。基于宽度,分别从多个存储设备选择第一组区块和第二组区块以形成第一区块条带和第二区块条带,第一组区块中的给定位置处的第一区块和第二组区块中的给定位置处的第二区块分别位于多个存储设备中的不同存储设备。基于第一区块条带和第二区块条带生成表示区块阵列的地址映射,地址映射包括区块阵列中的区块的区块标识和区块在区块阵列中的区块索引之间的关联关系。
根据本公开的第二方面,提供了一种电子设备。该电子设备包括:至少一个处理器;以及与至少一个处理器耦合的存储器,存储器具有存储于其中的指令,指令在被至少一个处理器执行时使得设备执行根据本公开的第一方面的方法。
根据本公开的第三方面,提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,机器可执行指令用于执行根据本公开的第一方面的方法。
附图说明
结合附图并参考以下详细说明,本公开各实现方式的特征、优点及其他方面将变得更加明显,在此以示例性而非限制性的方式示出了本公开的若干实现方式。在附图中:
图1示意性示出了其中可以实现本公开的实现方式的存储系统的框图;
图2A和图2B分别示意性示出了根据一个技术方案的在存储系统中生成区块阵列的过程的框图;
图3示意性示出了根据本公开的一个实现方式的用于在存储系统中生成区块阵列的过程的框图;
图4示意性示出了根据本公开的一个实现方式的用于在存储系统中生成区块阵列的方法的流程图;
图5示意性示出了根据本公开的一个实现方式的用于在存储系统中生成区块阵列的过程的框图;
图6示意性示出了根据本公开的一个实现方式的用于重建离线存储设备中的数据的过程的框图;
图7示意性示出了根据本公开的一个实现方式的用于重建离线存储设备中的数据的过程的框图;以及
图8示意性示出了根据本公开的示例性实现的用于在存储系统中生成区块阵列的设备的框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实现。虽然附图中显示了本公开的优选实现,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实现所限制。相反,提供这些实现是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实现”和“一个实现”表示“至少一个示例实现”。术语“另一实现”表示“至少一个另外的实现”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
在本公开的上下文中,存储系统可以是基于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可以包括多个存储设备(例如,存储设备D0、D1、D2、D3、D4、D5和D6)。每个存储设备可以包括多个区块并且每个区块可以具有物理地址。在此的物理地址可以基于区块所在的存储设备和区块在存储设备中的位置来确定。区块可以具有预定的大小(例如4G或者其他数值)。
为了便于管理,在存储系统的下层,可以从多个存储设备中选择多个区块并且生成区块阵列。可以将区块阵列进一步划分为更小的切片,以便向用户提供更精细粒度的存储单元。在已有的技术方案中,区块阵列包括基于RAID的多个条带。例如,在一个存储系统中,区块阵列的大小可以是64G,并且RAID条带可以是4D+1P的条带(有效存储空间为4G*4=16G)。此时,64G的区块阵列将包括64/16=4个条带,并且每个条带将包括5个区块(其中4个区块用于存储数据,并且1个区块用于存储校验)。
如图1所示,可以从存储设备D0、D1、D2、D3和D5中分别选择区块,并且来自上述存储设备的区块可以形成4个区块条带(简称为条带)110、120、130和140。每个条带可以包括5个区块,可以基于区块所在的条带和区块在条带中的位置来标识区块。例如,区块标识可以定义为“Eij”,其中第一个数字“i”表示条带的标识,而第二个数字“j”表示区块在条带中的位置。具体地,区块“E00”表示第0个条带中的第0个区块,区块“E01”表示第0个条带中的第1个区块,以及区块“E12”表示第1个条带中的第2个区块。
根据已有的技术方案,按照如图1所示的方式来生成区块阵列,各个条带中的给定位置处的区块均位于相同的存储设备。例如,各个条带中的第0个区块均位于存储设备D0、各个条带中的第1个区块均位于存储设备D1,以此类推。图1中的阴影区域示出了已经分配的用于生成区块阵列的区块,而空白部分示出了空闲区块。按照如图1所示的方式来生成区块阵列,可能会导致不能有效地利用各个存储设备中的空闲区块。在下文中,将分别参见图2A和图2B描述在存储系统中可能出现的浪费。
图2A示意性示出了根据一个技术方案的在存储系统中生成区块阵列的过程200A的框图。如图2A所示,假设希望从多个存储设备D0至D6中分配20个空闲区块,尽管此时多个存储设备包括21个空闲区块,然而并不能满足如图1所示的位置要求。这将导致大量空闲区块不可使用的问题。为了便于管理,可以将多个存储设备划分至多个域。图2B示意性示出了根据一个技术方案的在包括多个域的存储系统中生成区块阵列的过程200B的框图。存储系统中的多个存储设备D0至D11被划分至域0和域1,此时存储设备D0至D5位于域0,并且存储设备D6至D11位于域1。假设期望从多个存储设备中分配20个空闲区块,尽管此时多个存储设备D0至D11包括24个空闲区块,然而这些空闲区块并不符合上述位置要求。因而,期望可以开发出一种可以以更为方便并且有效的方式来分配空闲区块以便建立区块阵列的技术方案。
为了至少部分地解决上述技术方案中的不足,根据本公开的示例性实现方式,提供了一种在存储系统中生成区块阵列的技术方案。在下文中,将参见图3概括描述根据本公开的示例性实现方式的过程。图3示意性示出了根据本公开的一个实现方式的用于在存储系统中生成区块阵列的过程300的框图。根据本公开的示例性实现方式,并不要求各个条带中的给定位置处的区块位于相同的存储设备中,而是允许各个条带中的给定位置处的区块位于不同的存储设备中。以此方式,不必一次性地分配多个条带,而是每次可以仅分配一个条带,并且在多个轮次中完成全部条带分配。
如图3所示,可以从存储设备D0至D4中选择条带0中的区块,可以从存储设备D5、D6以及D0至D2中选择条带1中的区块,可以从存储设备D3至D6以及D0中选择条带2中的区块,以及可以从存储设备D1至D5中选择条带3中的区块。以此方式,可以以更为有效的方式利用各个存储设备中的空闲区块,进而充分地使用每个存储设备。
根据本公开的示例性实现方式,存储系统的上层组件并不需要关心区块阵列中的具体结构,而是可以通过区块索引来访问区块阵列中的数据。根据本公开的示例性实现方式,可以基于创建地址映射310,来表示区块阵列包括哪些区块。在此,地址映射310包括区块阵列中的区块的区块标识和区块在区块阵列中的区块索引之间的关联关系。以此方式。由于地址映射310存储了上述关联关系,即使多个条带中的给定位置处的区块位于不同的存储设备,也可以基于地址映射310来确定区块标识和区块索引之间的对应。
如图3所示,可以基于区块在区块阵列中的位置来建立索引,例如,区块阵列中的第0个区块E00的索引为0,第1个区块E01的索引为1,第12个区块E22的索引为12,等等。以此方式,通过根据本公开的示例性实现方式的地址映射310,可以消除已有技术方案中建立区块时的位置要求,进而充分利用每个存储设备中的存储空间。将会理解,图3仅示意性示出了存储系统包括存储设备D0至D6的情况,根据本公开的示例性实现方式,存储系统可以包括更多或者更少的存储设备。进一步,可以指定创建条带的方式,例如可以基于8D+1P的方式、4D+1P+1Q和/或其他方式来创建条带。
在下文中,将参见图4详细描述有关生成区块阵列的更多细节。图4示意性示出了根据本公开的一个实现方式的用于在存储系统中生成区块阵列的方法400的流程图。在框410处,响应于接收到利用多个存储设备中的空闲区块生成区块阵列的请求,确定区块阵列中的区块条带的宽度。在此,区块阵列的大小是由存储系统所指定的,通常而言,该大小被指定为64G。可以从接收到的请求中确定条带的宽度。继续图3的示例,在此的条带可以是基于4D+1P的条带,因而条带的宽度为4+1=5。又例如,该请求可以指定基于8D+1P+1Q的方式来生成条带,此时条带的宽度为8+1+1=10。
在框420处,基于宽度,分别从多个存储设备选择第一组区块和第二组区块以形成第一区块条带和第二区块条带。在此,第一组区块中的给定位置处的第一区块和第二组区块中的给定位置处的第二区块分别位于多个存储设备中的不同存储设备。根据本公开的示例性实现方式,并不要求各个条带中的给定位置处的区块位于相同的存储设备,而是这些区块可以位于不同的位置。
返回图3,可以分别从设备D0至D4中选择第一组区块E00、E01、E02、E03和E04。进一步,可以从存储设备D3至D6以及D0中选择第二组区块E10、E11、E12、E13和E14。如图3所示,此时两个条带中的第0个区块(即,区块E00和E10)分别位于不同的存储设备D0和D5,两个条带中的第1个区块(即,区块E01和E11)位于不同的存储设备D1和D6,以此类推。
根据本公开的示例性实现方式,可以每次从5个存储设备中选择一组区块以形成一个条带。具体地,可以基于宽度,从多个存储设备中的第一部分存储设备选择第一组区块。由于多个存储设备的数量总是大于条带宽度,因而可以分别从第一部分存储设备中的每个存储设备中选择一个空闲区块。进一步,可以确定多个存储设备中的第一部分存储设备以外的第二部分存储设备的数量。如果第二部分存储设备的数量不低于宽度,这表示第二部分存储设备足够提供第二组区块,因而可以继续从第二部分的存储设备中继续选择第二组区块。
如果确定第二部分存储设备的数量低于宽度,则表示第二部分存储设备不够提供第二组区块,此时可以分别从第二部分存储设备中的每个存储设备选择一个空闲区块,并且从第一部分存储设备中选择其余的区块。具体地,假设宽度为W并且第二部分存储设备仅包括m(m<W)个存储设备,可以从第二部分存储设备中选择m个空闲区块,并且基于宽度和第二部分存储设备的数量之间的差异(W-m),从第一部分存储设备中选择第二组区块的另一部分(即W-m个区块)。此时,第二组区块中的前m个区块来自第二部分存储设备,而后W-m个区块来自第一部分存储设备。
根据本公开的示例性实现方式,可以将多个存储设备排序。例如,可以按照如图3所示的D0至D6的顺序来排序多个存储设备。进一步,在排序的多个存储设备中,可以基于宽度来确定第一部分存储设备和第二部分存储设备。换言之,可以按照环形顺序分别从存储设备D0至D6中选择第一组区块和第二组区块。当已经分别从存储设备D0至D6中选择一个空闲区块之后,重新回到存储设备D0并且继续从存储设备D0至D6中选择空闲区块。
利用本公开的示例性实现方式,可以按照顺序以环形方式不断地从下一存储设备中选择空闲区块,以便形成区块条带。此时,各个条带中的给定位置处的区块可以分别位于不同的存储设备中。以此方式,消除了生成区块阵列时的位置要求,一方面可以以更为方便并且有效的方式来生成区块阵列,另一方面可以尽量利用各个存储设备中的空闲区块,以便提高存储设备的使用率。
返回图4,在框430处,基于第一区块条带和第二区块条带生成区块阵列。根据本公开的示例性实现方式,可以为区块阵列创建地址映射。在此的地址映射包括区块阵列中的区块的区块标识和该区块在区块阵列中的区块索引之间的关联关系。具体地,可以基于第一组区块和第二组区块中的区块的区块标识,创建区块阵列的地址映射中的与该区块相关联的部分。
如上文所述,区块标识“Eij”可以包括区块所在的条带的标识(例如,第i个条带)以及区块在条带中的位置(第i个条带中的第j个区块)。此时,可以基于条带的标识“i”、位置“j”和宽度,确定区块在区块阵列中的区块索引。返回图3描述有关区块索引的更多细节。在图3中,地址映射310中的第一行表示区块在区块阵列中的索引,以及第二行表示区块的区块标识。具体地,区块阵列中的索引为“0”的区块的区块标识为E00,区块阵列中的索引为“10”的区块的区块标识为E20,等等。根据本公开的示例性实现方式,可以基于如下公式1来确定地址映射310。
Index=j+W*i 公式1
其中index表示区块在区块阵列中的索引,i表示区块所在的条带的标识(即,区块所在的条带的序号),j表示区块在条带中的位置,W表示条带的宽度。通过上述公式1,可以以方便并且有效的方式来确定区块索引和区块标识之间的关联关系。
将会理解,上文仅示意性描述了区块阵列中包括两个条带的情况。在实际应用环境中,区块阵列可以包括更多的条带。具体地,可以根据区块阵列的大小和宽度确定区块阵列中应当包括的条带的数量。例如,在存储系统中可以指定区块阵列的大小为64G,并且基于4D+1P的条带来生成区块阵列。此时,区块阵列将包括64/16=4个条带。如果区块阵列中的当前条带的数量低于条带的数量,可以按照上文描述的方法400来继续从多个存储设备中生成后续的条带。
具体地,可以基于宽度从多个存储设备选择第三组区块以形成第三组条带并且选择第四组区块以形成第四组条带。继续参见图3,可以从存储设备D3至D6以及D0中选择条带2中的区块(E20、E21、E22、E23、E24),以及可以从存储设备D1至D5中选择条带3中的区块(E30、E31、E32、E33、E34)。继而,可以将形成的条带添加至区块阵列。具体地,可以利用上文公式1所示的方法来分别为条带中的每个区块创建相应的地址映射。
将会理解,上文仅示意性示出了多个存储设备被划分至一个域的情况。根据本公开的示例性实现方式,多个存储设备可以被划分至多个域。假设多个存储设备被划分至第一域和第二域,可以从位于第一域中的多个存储设备选择第一组区块,并且从位于第二域中的多个存储设备选择第二组区块。
在下文中,将参见图5描述存储系统包括两个域的情况。图5示意性示出了根据本公开的一个实现方式的用于在存储系统中生成区块阵列的过程500的框图。如图5所示,存储设备D0至D5被划分至域0,存储设备D6至D11被划分至域1。此时,可以从域0中的存储设备D0至D4中选择条带0中的区块(E00、E01、E02、E03、E04)。可以从域1中的存储设备D6至D11中选择条带1中的区块(E10、E11、E12、E13、E14)。
根据本公开的示例性实现方式,在条带阵列包括4个条带的情况下,可以进一步从域0中的存储设备D5、以及D0至D3中选择条带2中的区块(E20、E21、E22、E23、E24)。可以从域1中的存储设备D11以及D6至D9中选择条带3中的区块(E30、E31、E32、E33、E34)。进一步,可以基于上文公式1描述的方法来创建地址映射510。利用本公开的示例性实现方式,可以跨越多个域来生成区块阵列。以此方式,可以更为充分地利用存储系统中的存储空间。
上文已经描述了如何生成区块阵列,在下文中,将进一步描述如何利用区块阵列的地址映射来管理区块阵列的运行。将会理解,随着存储系统的运行,出于连接故障和/或存储设备故障等原因,多个存储设备中可能会出现离线存储设备。由于离线存储设备不能被访问,这将会导致区块阵列的降级和可靠性的下降。此时,需要执行重建操作,以便确保区块阵列中包括冗余数据。
根据本公开的示例性实现方式,如果确定多个存储设备中出现离线存储设备,可以基于地址映射确定区块阵列中的位于离线存储设备中的至少一个离线区块的索引。也即,找到区块阵列中的位于离线存储设备中的全部区块。继而,可以基于找到的索引来确定涉及重建的一组区块的地址范围。进一步,可以基于地址范围来重建区块阵列中的数据。
在下文中,将参见图6描述有关重建操作的更多细节。图6示意性示出了根据本公开的一个实现方式的用于重建离线存储设备中的数据的过程600的框图。将会理解,图6示意性示出了多个存储设备位于一个域的情况,根据本公开的示例性实现方式,多个存储设备可以位于不同的域。如图6所示,假设存储设备D3出现故障并且离线,基于地址映射310可以发现:区块阵列中存在3个离线区块(即,索引分别为3、10和17)位于离线存储设备。可以分别针对上述3个离线区块中的每个离线区块进行处理。
首先描述有关索引为3的离线区块的操作。离线区块E03的区块索引为3,因而该区块所在条带的地址范围为0至16G。此时,可以针对地址范围0至16G执行重建操作。具体地,存储系统中的映射器可以查询涉及重建操作的地址范围(返回查询结果0至16G)。进一步,映射器可以设置重建位图,并且基于该地址范围0至16G中的在线存储设备中的区块(即,区块索引分别为0、1、2和4的区块E00、E01、E02和E04)中的数据,来重建离线区块E03中的数据。在已经完成重建之后,映射器可以发送重建成功信号,以表示地址范围0至16G已经被重建。此时,可以清除重建位图。
根据本公开的示例性实现方式,可以将离线区块中的数据重建至多个存储设备中的在线存储设备中的空闲区块。备选地和/或附加地,可以向存储系统中添加备用存储设备,以替换离线存储设备。将会理解,上文仅示意性示出了针对一个离线区块E03相关的重建操作。根据本公开的示例性实现方式,可以以类似方式来分别处理索引为10和17的离线区块,将不再赘述。以此方式,可以逐一处理多个离线区块,并且分别将多个离线区块中的数据重建至多个在线存储设备中的空闲区块。
在下文中,将参见图7描述存储系统包括多个域的情况。图7示意性示出了根据本公开的一个实现方式的用于重建离线存储设备中的数据的过程700的框图。如图7所示,假设存储设备D3出现故障并且离线,此时基于地址映射510可以发现:区块阵列中存在2个离线区块(即,索引为3和14)位于离线存储设备。可以分别针对上述2个离线区块中的每个离线区块进行处理。离线区块的区块索引为3,因而该区块所在条带的地址范围为0至16G。此时,可以采用上文描述的方法,针对地址范围0至16G执行重建操作。类似地,另一离线区块的区块索引为14,因而该区块所在条带的地址范围为32至47G。根据本公开的示例性实现方式,利用地址映射可以方便地找到涉及重建操作的地址范围,进而启动后续的重建操作。
将会理解,随着存储系统的运行,某个存储设备可能会出现异常。尽管此时仍然可以访问异常存储设备,然而访问可能会存在较长时间延迟和/或其他异常情况。此时,可以主动地将异常存储设备中的数据迁移至正常存储设备中,以避免该异常存储设备的状况进一步恶化而导致存储系统的降级。
根据本公开的示例性实现方式,可以基于地址映射确定区块阵列中的位于异常存储设备中的至少一个异常区块的索引。在存储系统包括单一域的情况下,返回图6描述存储设备D3出现异常的情况。此时基于地址映射310可以发现:区块阵列中存在3个异常区块(即,索引分别为3、10和17)位于异常存储设备。可以分别针对上述3个异常区块中的每个异常区块进行处理。根据本公开的示例性实现方式,可以基于索引确定区块阵列中的涉及迁移的一组区块的地址范围,进一步可以基于地址范围来迁移区块阵列中的数据。具体地,可以按照与上文描述的重建操作类似的方式来执行迁移操作。不同之处在于,由于异常区块中的数据仍然可以被访问,此时可以直接从异常区块中拷贝数据。
将会理解,当存储系统中包括多个域时,也可以按照类似的方式来执行迁移操作。返回图7描述存储设备D3出现异常的情况,此时基于地址映射510可以发现:区块阵列中存在2个异常区块(即,索引为3和14)位于异常存储设备。可以分别针对上述2个异常区块中的每个异常区块进行处理。根据本公开的示例性实现方式,利用地址映射可以方便地找到涉及迁移操作的地址范围,进而启动后续的迁移操作。以此方式,可以避免存储系统出现异常存储设备的状态进一步恶化进而丢失数据的情况。
在上文中已经参见图2至图7详细描述了根据本公开的方法的示例,在下文中将描述相应的装置的实现。根据本公开的示例性实现,提供了一种在存储系统中生成区块阵列的装置,该存储系统包括多个存储设备。具体地,该装置包括:确定模块,配置用于响应于接收到利用多个存储设备中的空闲区块生成区块阵列的请求,确定区块阵列中的区块条带的宽度,区块阵列的大小由存储系统指定;选择模块,配置用于基于宽度,分别从多个存储设备选择第一组区块和第二组区块以形成第一区块条带和第二区块条带,第一组区块中的给定位置处的第一区块和第二组区块中的给定位置处的第二区块分别位于多个存储设备中的不同存储设备;以及生成模块,配置用于基于第一区块条带和第二区块条带生成表示区块阵列的地址映射,地址映射包括区块阵列中的区块的区块标识和区块在区块阵列中的区块索引之间的关联关系。根据本公开的示例性实现方式,该装置还包括用于执行上文描述的方法中的其他步骤的模块。
图8示意性示出了根据本公开的示例性实现的用于在存储系统中生成区块阵列的设备800的框图。。如图所示,设备800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的计算机程序指令或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序指令,来执行各种适当的动作和处理。在RAM 803中,还可存储设备800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法400,可由处理单元801执行。例如,在一些实现中,方法400可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实现中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序被加载到RAM 803并由CPU 801执行时,可以执行上文描述的方法400的一个或多个步骤。备选地,在其他实现中,CPU 801也可以以其他任何适当的方式被配置以实现上述过程/方法。
根据本公开的示例性实现方式,提供了一种电子设备,该设备包括:至少一个处理器;以及与至少一个处理器耦合的存储器,存储器具有存储于其中的指令,指令在被至少一个处理器执行时使得设备执行一种在包括多个存储设备的存储系统中生成区块阵列的方法。该方法包括:响应于接收到利用多个存储设备中的空闲区块生成区块阵列的请求,确定区块阵列中的区块条带的宽度,区块阵列的大小由存储系统指定;基于宽度,分别从多个存储设备选择第一组区块和第二组区块以形成第一区块条带和第二区块条带,第一组区块中的给定位置处的第一区块和第二组区块中的给定位置处的第二区块分别位于多个存储设备中的不同存储设备;以及基于第一区块条带和第二区块条带生成表示区块阵列的地址映射,地址映射包括区块阵列中的区块的区块标识和区块在区块阵列中的区块索引之间的关联关系。
根据本公开的示例性实现方式,选择第一组区块和第二组区块包括:基于宽度,从多个存储设备中的第一部分存储设备选择第一组区块;确定多个存储设备中的第一部分存储设备以外的第二部分存储设备的数量;以及响应于确定第二部分存储设备的数量不低于宽度,从第二部分存储设备中选择第二组区块。
根据本公开的示例性实现方式,该方法进一步包括:响应于确定第二部分存储设备的数量低于宽度,基于第二部分存储设备的数量,从第二部分存储设备中选择第二组区块的一部分;以及基于宽度和第二部分存储设备的数量之间的差异,从第一部分存储设备中选择第二组区块的另一部分。
根据本公开的示例性实现方式,该方法进一步包括:将多个存储设备排序;以及在排序的多个存储设备中,基于宽度来确定第一部分存储设备和第二部分存储设备。
根据本公开的示例性实现方式,生成地址映射包括:基于第一组区块和第二组区块中的区块的区块标识,创建区块阵列的地址映射。
根据本公开的示例性实现方式,区块标识包括区块所在的条带的标识以及区块在条带中的位置,以及创建地址映射包括:基于条带的标识、位置和宽度,确定区块在区块阵列中的区块索引。
根据本公开的示例性实现方式,多个存储设备被划分至第一域和第二域,以及其中分别选择第一组区块和第二组区块包括:从位于第一域中的多个存储设备选择第一组区块;以及从位于第二域中的多个存储设备选择第二组区块。
根据本公开的示例性实现方式,方法进一步包括:响应于确定多个存储设备中出现离线存储设备,基于地址映射确定区块阵列中的位于离线存储设备中的至少一个离线区块的索引;基于索引确定区块阵列中的涉及重建的一组区块的地址范围;以及基于地址范围来重建区块阵列中的数据。
根据本公开的示例性实现方式,方法进一步包括:响应于确定多个存储设备中出现异常存储设备,异常存储设备可访问并且存在访问异常,基于地址映射确定区块阵列中的位于异常存储设备中的至少一个异常区块的索引;基于索引确定区块阵列中的涉及迁移的一组区块的地址范围;以及基于地址范围来迁移区块阵列中的数据。
根据本公开的示例性实现方式,方法进一步包括:根据区块阵列的大小和宽度确定区块阵列中应当包括的条带的数量;响应于区块阵列中的当前条带的数量低于条带的数量,基于宽度,从多个存储设备选择第三组区块以形成第三组条带;以及将第三组条带添加至区块阵列。
根据本公开的示例性实现,提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,机器可执行指令用于执行根据本公开的方法。
根据本公开的示例性实现,提供了一种计算机可读介质。计算机可读介质上存储有机器可执行指令,当机器可执行指令在被至少一个处理器执行时,使得至少一个处理器实现根据本公开方法。
本公开可以是方法、设备、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实现中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实现的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其他可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其他可编程数据处理装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实现的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实现,上述说明是示例性的,并非穷尽性的,并且也不限于所公开的各实现。在不偏离所说明的各实现的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实现的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文公开的各实现。
Claims (22)
1.一种在存储系统中生成区块阵列的方法,所述存储系统包括多个存储设备,所述方法包括:
响应于接收到利用所述多个存储设备中的空闲区块生成区块阵列的请求,确定所述区块阵列中的区块条带的宽度,所述区块阵列的大小由所述存储系统指定;
基于所述宽度,分别从所述多个存储设备选择第一组区块和第二组区块以形成第一区块条带和第二区块条带,其中分别选择所述第一组区块和所述第二组区块包括:向所述多个存储设备中的区块分配区块标识,每个区块标识指示(i)对应的区块条带以及(ii)所述对应的区块条带中的位置,所述位置是形成所述对应的区块条带的有序区块列表中的相对位置,
其中所述第一区块条带中的给定位置处的第一区块和所述第二区块条带中的所述给定位置处的第二区块分别位于所述多个存储设备中的不同存储设备,所述第一区块条带中的所述给定位置等于所述第二区块条带中的所述给定位置;
其中所述方法还包括:
基于所述第一区块条带和所述第二区块条带生成表示所述区块阵列的地址映射,所述地址映射包括所述区块标识和所述区块在所述区块阵列中的区块索引之间的关联关系;
其中分配所述区块标识包括:向所述区块分配(i)区块条带号和(ii)位置号,所述区块条带号指示对应的区块条带,所述位置号指示所述对应的区块条带中的位置;并且
其中生成所述地址映射包括:使用所述区块条带号和所述位置号来计算所述区块索引的相应值。
2.根据权利要求1所述的方法,其中选择所述第一组区块和所述第二组区块包括:
基于所述宽度,从所述多个存储设备中的第一存储设备集合选择所述第一组区块;
确定所述多个存储设备中的所述第一存储设备集合以外的第二存储设备集合的数量;以及
响应于确定所述第二存储设备集合的所述数量不低于所述宽度,从所述第二存储设备集合中选择所述第二组区块。
3.根据权利要求1所述的方法,其中选择所述第一组区块和所述第二组区块包括:
基于所述宽度来从所述多个存储设备中的第一存储设备集合选择所述第一组区块;
确定所述多个存储设备中的所述第一存储设备集合以外的第二存储设备集合的数量;以及
响应于确定所述第二存储设备集合的所述数量低于所述宽度:
基于所述第二存储设备集合的数量,从所述第二存储设备集合中选择所述第二组区块的一部分;以及
基于所述宽度和所述第二存储设备集合的所述数量之间的差异,从所述第一存储设备集合中选择所述第二组区块的剩余部分。
4.根据权利要求2所述的方法,进一步包括:
将所述多个存储设备排序;以及
在排序的所述多个存储设备中,基于所述宽度来确定所述第一存储设备集合和所述第二存储设备集合。
5.根据权利要求1所述的方法,其中生成所述地址映射包括:
基于所述第一组区块和所述第二组区块中的区块的区块标识,创建所述区块阵列的地址映射。
6.根据权利要求5所述的方法,其中所述区块标识包括所述区块所在的条带的标识以及所述区块在所述条带中的位置,以及创建所述地址映射包括:
基于所述条带的标识、所述位置和所述宽度,确定所述区块在所述区块阵列中的所述区块索引。
7.根据权利要求1所述的方法,其中所述多个存储设备被划分至第一域和第二域,以及其中分别选择所述第一组区块和所述第二组区块包括:
从位于所述第一域中的多个存储设备选择所述第一组区块;以及
从位于所述第二域中的多个存储设备选择所述第二组区块。
8.根据权利要求1所述的方法,进一步包括:响应于确定所述多个存储设备中出现离线存储设备,
基于所述地址映射确定所述区块阵列中的位于所述离线存储设备中的至少一个离线区块的索引;
基于所述索引确定所述区块阵列中的涉及重建的一组区块的地址范围;以及
基于所述地址范围来重建所述区块阵列中的数据。
9.根据权利要求1所述的方法,进一步包括:响应于确定所述多个存储设备中出现异常存储设备,所述异常存储设备可访问并且存在访问异常,
基于所述地址映射确定所述区块阵列中的位于所述异常存储设备中的至少一个异常区块的索引;
基于所述索引确定所述区块阵列中的涉及迁移的一组区块的地址范围;以及
基于所述地址范围来迁移所述区块阵列中的数据。
10.根据权利要求1所述的方法,进一步包括:
根据所述区块阵列的所述大小和所述宽度确定所述区块阵列中应当包括的条带的数量;
响应于所述区块阵列中的当前条带的数量低于所述条带的数量,基于所述宽度,从所述多个存储设备选择第三组区块以形成第三组条带;以及
将所述第三组条带添加至所述区块阵列。
11.根据权利要求1所述的方法,还包括:
从所述区块索引中定位离线区块的区块索引;
从被映射到所定位的所述区块索引的区块标识中标识使用所述离线区块而被形成的区块条带;
定位具有指示所标识的所述区块条带的区块标识的在线区块集合;以及
使用所述在线区块集合的数据来重建所述离线区块的数据。
12.一种电子设备,所述设备包括:
至少一个处理器;以及
与所述至少一个处理器耦合的存储器,所述存储器具有存储于其中的指令,所述指令在被所述至少一个处理器执行时使得所述设备执行一种在包括多个存储设备的存储系统中生成区块阵列的方法,所述方法包括:
响应于接收到利用所述多个存储设备中的空闲区块生成区块阵列的请求,确定所述区块阵列中的区块条带的宽度,所述区块阵列的大小由所述存储系统指定;
基于所述宽度,分别从所述多个存储设备选择第一组区块和第二组区块以形成第一区块条带和第二区块条带,
其中分别选择所述第一组区块和所述第二组区块包括:向所述多个存储设备中的区块分配区块标识,每个区块标识指示(i)对应的区块条带以及(ii)所述对应的区块条带中的位置,所述位置是形成所述对应的区块条带的有序区块列表中的相对位置,
其中所述第一区块条带中的给定位置处的第一区块和所述第二区块条带中的所述给定位置处的第二区块分别位于所述多个存储设备中的不同存储设备,所述第一区块条带中的所述给定位置等于所述第二区块条带中的所述给定位置;
其中所述方法还包括:
基于所述第一区块条带和所述第二区块条带生成表示所述区块阵列的地址映射,所述地址映射包括所述区块标识和所述区块在所述区块阵列中的区块索引之间的关联关系;
其中分配所述区块标识包括:向所述区块分配(i)区块条带号和(ii)位置号,所述区块条带号指示对应的区块条带,所述位置号指示所述对应的区块条带中的位置;并且
其中生成所述地址映射包括:使用所述区块条带号和所述位置号来计算所述区块索引的相应值。
13.根据权利要求12所述的设备,其中选择所述第一组区块和所述第二组区块包括:
基于所述宽度,从所述多个存储设备中的第一存储设备集合选择所述第一组区块;
确定所述多个存储设备中的所述第一存储设备集合以外的第二存储设备集合的数量;以及
响应于确定所述第二存储设备集合的所述数量不低于所述宽度,从所述第二存储设备集合中选择所述第二组区块。
14.根据权利要求12所述的设备,其中选择所述第一组区块和所述第二组区块包括:
基于所述宽度来从所述多个存储设备中的第一存储设备集合选择所述第一组区块;
确定所述多个存储设备中的所述第一存储设备集合以外的第二存储设备集合的数量;以及
响应于确定所述第二存储设备集合的所述数量低于所述宽度:
基于所述第二存储设备集合的数量,从所述第二存储设备集合中选择所述第二组区块的一部分;以及
基于所述宽度和所述第二存储设备集合的所述数量之间的差异,从所述第一存储设备集合中选择所述第二组区块的剩余部分。
15.根据权利要求13所述的设备,其中所述方法进一步包括:
将所述多个存储设备排序;以及
在排序的所述多个存储设备中,基于所述宽度来确定所述第一存储设备集合和所述第二存储设备集合。
16.根据权利要求12所述的设备,其中生成所述地址映射包括:
基于所述第一组区块和所述第二组区块中的区块的区块标识,创建所述区块阵列的地址映射。
17.根据权利要求16所述的设备,其中所述区块标识包括所述区块所在的条带的标识以及所述区块在所述条带中的位置,以及创建所述地址映射包括:
基于所述条带的标识、所述位置和所述宽度,确定所述区块在所述区块阵列中的所述区块索引。
18.根据权利要求12所述的设备,其中所述多个存储设备被划分至第一域和第二域,以及其中分别选择所述第一组区块和所述第二组区块包括:
从位于所述第一域中的多个存储设备选择所述第一组区块;以及
从位于所述第二域中的多个存储设备选择所述第二组区块。
19.根据权利要求12所述的设备,其中所述方法进一步包括:响应于确定所述多个存储设备中出现离线存储设备,
基于所述地址映射确定所述区块阵列中的位于所述离线存储设备中的至少一个离线区块的索引;
基于所述索引确定所述区块阵列中的涉及重建的一组区块的地址范围;以及
基于所述地址范围来重建所述区块阵列中的数据。
20.根据权利要求12所述的设备,其中所述方法进一步包括:响应于确定所述多个存储设备中出现异常存储设备,所述异常存储设备可访问并且存在访问异常,
基于所述地址映射确定所述区块阵列中的位于所述异常存储设备中的至少一个异常区块的索引;
基于所述索引确定所述区块阵列中的涉及迁移的一组区块的地址范围;以及
基于所述地址范围来迁移所述区块阵列中的数据。
21.根据权利要求12所述的设备,其中所述方法进一步包括:
根据所述区块阵列的所述大小和所述宽度确定所述区块阵列中应当包括的条带的数量;
响应于所述区块阵列中的当前条带的数量低于所述条带的数量,基于所述宽度,从所述多个存储设备选择第三组区块以形成第三组条带;以及
将所述第三组条带添加至所述区块阵列。
22.一种非瞬态计算机可读介质,所述非瞬态计算机可读介质存储用以在包括多个存储设备的存储系统中生成区块阵列的指令集合,所述指令集合在由计算机化电路执行时,使所述计算机化电路执行根据权利要求1-11中的任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011354956.3A CN114564144B (zh) | 2020-11-27 | 2020-11-27 | 在存储系统中创建区块阵列的方法、设备和程序产品 |
US17/318,359 US11656776B2 (en) | 2020-11-27 | 2021-05-12 | Method, device, and program product for creating extent array in storage system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011354956.3A CN114564144B (zh) | 2020-11-27 | 2020-11-27 | 在存储系统中创建区块阵列的方法、设备和程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114564144A CN114564144A (zh) | 2022-05-31 |
CN114564144B true CN114564144B (zh) | 2024-04-19 |
Family
ID=81711575
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011354956.3A Active CN114564144B (zh) | 2020-11-27 | 2020-11-27 | 在存储系统中创建区块阵列的方法、设备和程序产品 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11656776B2 (zh) |
CN (1) | CN114564144B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107870730A (zh) * | 2016-09-23 | 2018-04-03 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法和系统 |
US10310752B1 (en) * | 2016-12-30 | 2019-06-04 | EMC IP Holding Company LLC | Extent selection with mapped raid |
CN110413201A (zh) * | 2018-04-28 | 2019-11-05 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法、设备和计算机程序产品 |
CN110737401A (zh) * | 2018-07-20 | 2020-01-31 | 伊姆西Ip控股有限责任公司 | 用于管理独立冗余磁盘阵列的方法、设备和计算机程序产品 |
CN111857541A (zh) * | 2019-04-25 | 2020-10-30 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法、设备和计算机程序产品 |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5928327A (en) * | 1996-08-08 | 1999-07-27 | Wang; Pong-Sheng | System and process for delivering digital data on demand |
US5974503A (en) * | 1997-04-25 | 1999-10-26 | Emc Corporation | Storage and access of continuous media files indexed as lists of raid stripe sets associated with file names |
US5892915A (en) * | 1997-04-25 | 1999-04-06 | Emc Corporation | System having client sending edit commands to server during transmission of continuous media from one clip in play list for editing the play list |
US6839827B1 (en) * | 2000-01-18 | 2005-01-04 | International Business Machines Corporation | Method, system, program, and data structures for mapping logical blocks to physical blocks |
US6834326B1 (en) * | 2000-02-04 | 2004-12-21 | 3Com Corporation | RAID method and device with network protocol between controller and storage devices |
US7200715B2 (en) * | 2002-03-21 | 2007-04-03 | Network Appliance, Inc. | Method for writing contiguous arrays of stripes in a RAID storage system using mapped block writes |
US7363532B2 (en) * | 2004-08-20 | 2008-04-22 | Dell Products L.P. | System and method for recovering from a drive failure in a storage array |
US7774575B2 (en) * | 2004-09-21 | 2010-08-10 | Intel Corporation | Integrated circuit capable of mapping logical block address data across multiple domains |
GB0613660D0 (en) * | 2006-07-08 | 2006-08-16 | Ibm | Reserve pool management in virtualized storage systems |
US9195412B2 (en) * | 2010-10-07 | 2015-11-24 | International Business Machines Corporation | System and method for transforming an in-use raid array including migrating data using reserved extents |
US9170746B2 (en) * | 2014-01-07 | 2015-10-27 | Netapp, Inc. | Clustered raid assimilation management |
US9529546B2 (en) * | 2014-01-08 | 2016-12-27 | Netapp, Inc. | Global in-line extent-based deduplication |
US9448924B2 (en) * | 2014-01-08 | 2016-09-20 | Netapp, Inc. | Flash optimized, log-structured layer of a file system |
US9454434B2 (en) * | 2014-01-17 | 2016-09-27 | Netapp, Inc. | File system driven raid rebuild technique |
US10235059B2 (en) * | 2015-12-01 | 2019-03-19 | Netapp, Inc. | Technique for maintaining consistent I/O processing throughput in a storage system |
US10073621B1 (en) * | 2016-03-31 | 2018-09-11 | EMC IP Holding Company LLC | Managing storage device mappings in storage systems |
US10496482B1 (en) * | 2016-09-30 | 2019-12-03 | EMC IP Holding Company LLC | Selective raid repair based on content mapping |
CN108228481A (zh) * | 2016-12-21 | 2018-06-29 | 伊姆西Ip控股有限责任公司 | 用于保证数据一致性的方法和设备 |
CN108733308B (zh) * | 2017-04-17 | 2021-06-22 | 伊姆西Ip控股有限责任公司 | 用于管理盘池的方法和设备 |
US11402998B2 (en) * | 2017-04-27 | 2022-08-02 | EMC IP Holding Company LLC | Re-placing data within a mapped-RAID environment comprising slices, storage stripes, RAID extents, device extents and storage devices |
US10229022B1 (en) * | 2017-04-27 | 2019-03-12 | EMC IP Holding Company LLC | Providing Raid-10 with a configurable Raid width using a mapped raid group |
CN109213429B (zh) * | 2017-06-30 | 2021-07-23 | 伊姆西Ip控股有限责任公司 | 存储管理方法和设备 |
US10318169B2 (en) * | 2017-10-27 | 2019-06-11 | EMC IP Holding Company LLC | Load balancing of I/O by moving logical unit (LUN) slices between non-volatile storage represented by different rotation groups of RAID (Redundant Array of Independent Disks) extent entries in a RAID extent table of a mapped RAID data storage system |
CN109725835B (zh) * | 2017-10-27 | 2022-04-29 | 伊姆西Ip控股有限责任公司 | 用于管理盘阵列的方法、设备和计算机程序产品 |
CN110389858B (zh) * | 2018-04-20 | 2023-06-09 | 伊姆西Ip控股有限责任公司 | 存储设备的故障恢复方法和设备 |
CN112764661A (zh) | 2019-10-21 | 2021-05-07 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法、设备和计算机程序产品 |
CN112732168B (zh) | 2019-10-28 | 2023-12-22 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法、设备和计算机程序产品 |
CN112748849B (zh) | 2019-10-29 | 2024-06-11 | 伊姆西Ip控股有限责任公司 | 用于存储数据的方法、设备和计算机程序产品 |
-
2020
- 2020-11-27 CN CN202011354956.3A patent/CN114564144B/zh active Active
-
2021
- 2021-05-12 US US17/318,359 patent/US11656776B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107870730A (zh) * | 2016-09-23 | 2018-04-03 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法和系统 |
US10310752B1 (en) * | 2016-12-30 | 2019-06-04 | EMC IP Holding Company LLC | Extent selection with mapped raid |
CN110413201A (zh) * | 2018-04-28 | 2019-11-05 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法、设备和计算机程序产品 |
CN110737401A (zh) * | 2018-07-20 | 2020-01-31 | 伊姆西Ip控股有限责任公司 | 用于管理独立冗余磁盘阵列的方法、设备和计算机程序产品 |
CN111857541A (zh) * | 2019-04-25 | 2020-10-30 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法、设备和计算机程序产品 |
Also Published As
Publication number | Publication date |
---|---|
US20220171552A1 (en) | 2022-06-02 |
US11656776B2 (en) | 2023-05-23 |
CN114564144A (zh) | 2022-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110413208B (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
US11232005B2 (en) | Method, device, and computer program product for managing storage system | |
CN111104055B (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
CN109725830B (zh) | 管理独立磁盘冗余阵列的方法、设备和存储介质 | |
US11829247B2 (en) | Method, device, and computer program product for rebuilding data of a failed storage device in a storage system | |
US10860476B2 (en) | Method, apparatus and computer program product for managing storage system | |
CN111104051B (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
US11422909B2 (en) | Method, device, and storage medium for managing stripe in storage system | |
CN111124250A (zh) | 用于管理存储空间的方法、设备和计算机程序产品 | |
US20210124520A1 (en) | Method, device, and computer program product for managing storage system | |
CN113126890A (zh) | 用于存储的方法、设备和计算机程序产品 | |
CN114564144B (zh) | 在存储系统中创建区块阵列的方法、设备和程序产品 | |
CN112925471A (zh) | 在存储系统中选择重建目的地的方法、设备和程序产品 | |
US11442639B2 (en) | Method, apparatus, and storage medium for managing stripe in storage system | |
US11995358B2 (en) | Method, device and computer program product for managing extent in storage system | |
CN114168064A (zh) | 用于重建存储系统的方法、设备和计算机程序产品 | |
US11593011B2 (en) | Method, device, and program product for managing spare block based on dynamic window | |
CN113535065B (zh) | 在存储系统中管理条带的方法、设备和计算机程序产品 | |
CN112732167B (zh) | 用于管理存储系统的方法、设备 | |
CN111857549A (zh) | 用于管理数据的方法、设备和计算机程序产品 | |
CN111857541B (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
CN113574509B (zh) | 减少计算存储环境中的重建时间 | |
CN111857560B (zh) | 用于管理数据的方法、设备和计算机程序产品 | |
CN114443350A (zh) | 基于纠删码的数据处理方法及相关装置 | |
CN111857560A (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 |