CN112130768B - 磁盘阵列在线扩容方法、装置及计算机可读存储介质 - Google Patents
磁盘阵列在线扩容方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN112130768B CN112130768B CN202010986816.1A CN202010986816A CN112130768B CN 112130768 B CN112130768 B CN 112130768B CN 202010986816 A CN202010986816 A CN 202010986816A CN 112130768 B CN112130768 B CN 112130768B
- Authority
- CN
- China
- Prior art keywords
- disk array
- stripe
- new
- data
- address space
- 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 72
- 230000005012 migration Effects 0.000 claims abstract description 57
- 238000013508 migration Methods 0.000 claims abstract description 57
- 230000008569 process Effects 0.000 claims abstract description 23
- 238000005516 engineering process Methods 0.000 claims abstract description 20
- 230000003993 interaction Effects 0.000 claims abstract description 9
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims description 29
- 238000004590 computer program Methods 0.000 claims description 6
- 239000003550 marker Substances 0.000 claims 1
- 238000012545 processing Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
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/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/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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
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)
Abstract
本申请公开了一种磁盘阵列在线扩容方法、装置及计算机可读存储介质。其中,方法包括通过在线扩容技术为初始磁盘阵列增加新磁盘生成新磁盘阵列,初始磁盘阵列和新磁盘阵列采用相同的分布式空间分布,以使新地址空间分布与旧地址空间分布的条带宽度、条带分块容量值和备份空间相同。将从初始磁盘阵列对应的旧地址空间读取的数据按照条带形式迁移至新磁盘阵列对应的新地址空间,并将新地址空间在初始磁盘阵列所有数据迁移完成后的预留空间作为扩容空间。在数据迁移过程中,根据接收的IO操作请求的地址与当前迁移条带的地址之间的数值关系确定待访问数据的存储位置,完成与业务IO的交互。本申请在保证RAID原有配置的基础上实现了灵活扩容RAID。
Description
技术领域
本申请涉及磁盘阵列扩容技术领域,特别是涉及一种磁盘阵列在线扩容方法、装置及计算机可读存储介质。
背景技术
随着互联网技术在各行各业的广泛应用,数据呈现爆炸式增长,用户对存储系统的存储能力要求也越来越高。RAID(Redundant Arrays of Independent Disks,磁盘阵列)代替传统单个磁盘作为新的存储装置而诞生,磁盘阵列技术通过数据分条技术来提高存储系统的吞吐率,通过数据冗余技术来提高存储系统的可靠性。
可以理解的是,当一个磁盘阵列建立好之后,随着用户使用时间越来越长,磁盘阵列的可用空间将会越来越小,这时候就需要进行磁盘阵列的扩容。一种扩容方法是重新建立一个更大的磁盘阵列,将数据整体迁移,但是新建更大磁盘阵列导致成本太高,且迁移完成后原磁盘阵列可能会出现使用率低等问题。另外一种扩容方法是重新创建新的RAID增加容量,这种方式的问题是新建RAID对磁盘数目有要求,需要尽可能与之前RAID保持相同的条带宽度,无法满足即插即用的轻量级扩容需求。为了解决上述扩容方法的弊端,相关技术通常采用实时在线扩容技术对RAID进行扩容,这种扩容方法不影响用户正常功能使用的扩容方式,且对扩容的磁盘数目没有限制。只要扩容后的容量不大于系统支持总容量,扩容后的总磁盘数目不大于RAID对磁盘数目的限制,可以对任意数目的磁盘进行过扩容。但是由于RAID地址空间完全固定,无法满足在保证原RAID配置下的灵活扩容要求。
鉴于此,如何在保证RAID原有配置下,灵活对RAID进行扩容,是所属领域技术人员需要解决的技术问题。
发明内容
本申请提供了一种磁盘阵列在线扩容方法、装置及计算机可读存储介质,在保证RAID原有配置的基础上实现了灵活扩容RAID。
为解决上述技术问题,本发明实施例提供以下技术方案:
本发明实施例一方面提供了一种磁盘阵列在线扩容方法,包括:
通过在线扩容技术为初始磁盘阵列增加新磁盘生成新磁盘阵列,所述初始磁盘阵列和新磁盘阵列采用相同的分布式空间分布,以使新地址空间分布与旧地址空间分布的条带宽度、条带分块容量值和备份空间相同;
将从所述初始磁盘阵列对应的旧地址空间读取的数据按照条带形式迁移至所述新磁盘阵列对应的新地址空间,并将所述新地址空间在所述初始磁盘阵列所有数据迁移完成后的预留空间作为扩容空间;
根据接收的IO操作请求的地址与当前迁移条带的地址之间的数值关系确定待访问数据的存储位置,以完成与业务IO的交互。
可选的,所述根据接收的IO操作请求的地址与当前迁移条带的地址之间的数值关系确定待访问数据的存储位置包括:
在数据迁移过程中,采用水位线标记当前迁移位置;
若所述IO操作请求访问的目标条带在所述水位线标记线之前,在所述新地址空间中访问所述目标条带;
若所述IO操作请求访问的目标条带在所述水位线标记线之后,在所述旧地址空间中访问所述目标条带;
若所述IO操作请求访问的目标条带为所述水位线标记线,等待当前条带迁移完成后再在所述新地址空间中访问所述目标条带。
可选的,所述初始磁盘阵列的N块磁盘中存储的数据平均分布在所述新磁盘阵列的M块磁盘中。
可选的,所述新地址空间与所述旧地址空间均包括多个数据包;
每个数据包均包括多个条带,各数据包内的空间分布均相同。
可选的,所述新地址空间的数据包的空间容量值根据所述条带分块容量值、所述新磁盘阵列的磁盘总数和所述条带宽度确定;所述旧地址空间的数据包的空间容量值根据所述条带分块容量值、所述初始磁盘阵列的磁盘总数和所述条带宽度确定。
本发明实施例另一方面提供了一种磁盘阵列在线扩容装置,包括:
磁盘扩容模块,用于通过在线扩容技术为初始磁盘阵列增加新磁盘生成新磁盘阵列,所述初始磁盘阵列和新磁盘阵列采用相同的分布式空间分布,以使新地址空间分布与旧地址空间分布的条带宽度、条带分块容量值和备份空间相同;
数据迁移模块,用于将从所述初始磁盘阵列对应的旧地址空间读取的数据按照条带形式迁移至所述新磁盘阵列对应的新地址空间,并将所述新地址空间在所述初始磁盘阵列所有数据迁移完成后的预留空间作为扩容空间;
数据访问模块,用于根据接收的IO操作请求的地址与当前迁移条带的地址之间的数值关系确定待访问数据的存储位置,以完成与业务IO的交互。
可选的,所述数据访问模块包括:
标记子模块,用于在数据迁移过程中,采用水位线标记当前迁移位置;
新空间访问子模块,用于若所述IO操作请求访问的目标条带在所述水位线标记线之前,在所述新地址空间中访问所述目标条带;
旧空间访问子模块,用于若所述IO操作请求访问的目标条带在所述水位线标记线之后,在所述旧地址空间中访问所述目标条带;
等待迁移后再访问子模块,用于若所述IO操作请求访问的目标条带为所述水位线标记线,等待当前条带迁移完成后再在所述新地址空间中访问所述目标条带。
可选的,所述新地址空间与所述旧地址空间均包括多个数据包;
每个数据包均包括多个条带,各数据包内的空间分布均相同。
本发明实施例还提供了一种磁盘阵列在线扩容装置,包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如前任一项所述磁盘阵列在线扩容方法的步骤。
本发明实施例最后还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有磁盘阵列在线扩容程序,所述磁盘阵列在线扩容程序被处理器执行时实现如前任一项所述磁盘阵列在线扩容方法的步骤。
本申请提供的技术方案的优点在于,磁盘阵列扩容前后的地址空间分布均采用分布式空间分布,重新分布后RAID的条带宽度不变,条带分块大小不变,备份空间不变,但是磁盘数目增大,所以条带对应的实际磁盘位置发生变化,RAID的实际空间增加,其地址空间分布发生变化,从而可从地址空间转化的角度实现了RAID的在线扩容技术,将复杂的扩容技术转化为数据动一个地址空间迁移至另外一个地址空间,也即将RAID在线扩容转化为将旧地址空间转化成新地址空间的过程,扩容之后打破了原来磁盘阵列数据空间分布,形成一种新的数据空间分布,通过条带的迁移完成地址空间的实际切换。在数据迁移过程中,根据IO操作的地址与当前迁移的条带的地址大小关系决定访问新空间数据还是旧空间数据,以及是否进行写前迁移操作等,有效解决条带迁移时与业务IO交互的数据一致性问题,保证迁移过程中与IO交互的数据正确性。在不重新创建RAID的情况下进行迁移,满足产品级灵活可靠的扩容需求,且仅仅涉及数据的读取和写入,扩容效率较高。
此外,本发明实施例还针对磁盘阵列在线扩容方法提供了相应的实现装置及计算机可读存储介质,进一步使得所述方法更具有实用性,所述装置及计算机可读存储介质具有相应的优点。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
为了更清楚的说明本发明实施例或相关技术的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种磁盘阵列在线扩容方法的流程示意图;
图2为本发明实施例提供的一个示例性应用场景的磁盘阵列分布示意图;
图3为本发明实施例提供的磁盘阵列在线扩容装置的一种具体实施方式结构图;
图4为本发明实施例提供的磁盘阵列在线扩容装置的另一种具体实施方式结构图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等是用于区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。
在介绍了本发明实施例的技术方案后,下面详细的说明本申请的各种非限制性实施方式。
首先参见图1,图1为本发明实施例提供的一种磁盘阵列在线扩容方法的流程示意图,本发明实施例可包括以下内容:
S101:通过在线扩容技术为初始磁盘阵列增加新磁盘生成新磁盘阵列。
在本步骤中,初始磁盘阵列为当前使用的磁盘阵列,在用户有扩容需求时,也即在初始磁盘阵列上增加新磁盘作为新磁盘阵列,可采用在线扩容技术在初始磁盘阵列基础上增加所需个数的新磁盘生成新磁盘阵列,增加新磁盘的个数根据用户扩容需求和单个磁盘的容量来确定。由于在线扩容技术自身优势,本申请的初始磁盘阵列采用在线扩容技术新增磁盘。由于分布式空间算法相比传统RAID拥有灵活的空间分布,其支持多于条带宽度的磁盘创建一个RAID,本申请的磁盘阵列的空间分布基于分布式空间分布算法实现分布式空间分布,也即初始磁盘阵列和新磁盘阵列的空间分布均为分布式空间分布,为了提高磁盘阵列的存储性能,磁盘阵列基于条带形式进行数据存储,也即把连续的数据按照预设条带分块大小分割成相同大小的数据块,然后每段数据分别写入到磁盘阵列中的不同磁盘上。所有磁盘按照条带宽度依次分布,专用热备盘由每个磁盘预留的备份空间来代替。
可以理解的是,磁盘阵列的磁盘数目,条带宽度,条带分块大小以及备份空间大小确认后,磁盘阵列的分布式空间分布也是固定且唯一。在S101通过在线扩容增加新磁盘后,初始磁盘阵列和新磁盘阵列的条带宽度、条带分块容量值和备份空间都没有发生变化,只是磁盘数目发生变化,新磁盘阵列的空间分布也就发生了变化。尽管地址空间重新分布,但是重新分布后RAID的条带宽度不变,条带分块大小不变,备份空间不变,新地址空间仍旧固定且唯一。
其中,条带宽度是指同时可以并发读或写的条带数量,这个数量等于RAID中的物理硬盘数量。例如一个经过条带化的、具有6块物理硬盘的阵列的条带宽度就是6。增加条带宽度也就增加了可以同时并发读或写的条带数量,也即通过增加条带宽度可以提高磁盘阵列的读写性能。在其他条件一样的前提下,一个由8块18G硬盘组成的阵列相比一个由4块36G硬盘组成的阵列具有更高的传输性能。
S102:将从初始磁盘阵列对应的旧地址空间读取的数据按照条带形式迁移至新磁盘阵列对应的新地址空间,并将新地址空间在初始磁盘阵列所有数据迁移完成后的预留空间作为扩容空间。
在线扩容由于新增磁盘,导致该RAID的磁盘数目增大,而确定地址空间分布的其他因素并没有发生变化,磁盘数目增大后,RAID的实际空间增加,新磁盘阵列的新地址空间分布便发生变化,相应的条带对应的实际磁盘位置也就发生变化。由于新增磁盘数目的不确定性,无法在原RAID配置基础上将新增磁盘的大小转化成原地址空间直接线性增加,所以新的地址空间并不是在原来的线性空间末尾增加的。为了保证分条一致性,所以需要将数据进行重新整理,将在线扩容的空间分布到线性地址空间的末尾。假设初始磁盘阵列的磁盘数目是N,新增磁盘数目m,N+m=M,则在线扩容实际上是将数据从旧地址空间迁移到新地址空间,可将初始磁盘阵列的N块磁盘的数据重新平均分布到新磁盘阵列的M块磁盘上去。由于磁盘阵列基于条带形式存储数据,本申请通过条带的迁移完成数据在两种地址空间的重新分布。将旧地址空间的所有数据均迁移至新地址空间,新地址空间迁移之后预留出的空间为扩容后的空间;也即将旧地址空间迁移到新地址空间后,新地址空间最后剩余的空间部分即为扩容后的空间。
S103:根据接收的IO操作请求的地址与当前迁移条带的地址之间的数值关系确定待访问数据的存储位置,以完成与业务IO的交互。
可以理解的是,在通过条带的迁移完成数据从旧地址空间到新地址空间的转化的过程中,运行业务不间断,不可避免的会有用户下发IO操作请求,为了保证数据访问的可靠性和一致性,可根据IO操作的地址与当前迁移的条带的地址大小关系决定访问新地址空间数据还是旧地址空间数据,以及是否进行写前迁移操作等。
在本发明实施例提供的技术方案中,磁盘阵列扩容前后的地址空间分布均采用分布式空间分布,重新分布后RAID的条带宽度不变,条带分块大小不变,备份空间不变,但是磁盘数目增大,所以条带对应的实际磁盘位置发生变化,RAID的实际空间增加,其地址空间分布发生变化,从而可从地址空间转化的角度实现了RAID的在线扩容技术,将复杂的扩容技术转化为数据动一个地址空间迁移至另外一个地址空间,也即将RAID在线扩容转化为将旧地址空间转化成新地址空间的过程,扩容之后打破了原来磁盘阵列数据空间分布,形成一种新的数据空间分布,通过条带的迁移完成地址空间的实际切换。在数据迁移过程中,根据IO操作的地址与当前迁移的条带的地址大小关系决定访问新空间数据还是旧空间数据,以及是否进行写前迁移操作等,有效解决条带迁移时与业务IO交互的数据一致性问题,保证迁移过程中与IO交互的数据正确性。在不重新创建RAID的情况下进行迁移,满足产品级灵活可靠的扩容需求,且仅仅涉及数据的读取和写入,扩容效率较高。
需要说明的是,本申请中各步骤之间没有严格的先后执行顺序,只要符合逻辑上的顺序,则这些步骤可以同时执行,也可按照某种预设顺序执行,图1只是一种示意方式,并不代表只能是这样的执行顺序。
在上述实施例中,对于如何执行步骤S103并不做限定,本实施例中给出一种在数据迁移过程中完成与业务IO交互的实现方式,可包括如下步骤:
在数据迁移过程中,可采用水位线标记当前迁移位置;
若IO操作请求访问的目标条带在水位线标记线之前,在新地址空间中访问目标条带;
若IO操作请求访问的目标条带在水位线标记线之后,在旧地址空间中访问目标条带;
若IO操作请求访问的目标条带为水位线标记线,等待当前条带迁移完成后再在新地址空间中访问目标条带。
在本实施例中,条带迁移过程中使用水位线标记当前迁移位置,完成与业务IO的交互。当业务IO访问的条带在水位标记线之前,表示数据已经移动完成,使用新的空间分布使访问条带;当业务IO访问的条带在水位标记线之后,则表示数据还没有移动完成,使用旧的空间分布使访问条带;当业务IO访问的条带刚好是水位线时,表示该条带正在做迁移,则等待迁移完成后再做访问,届时访问的是新空间分布的条带。
本实施例采用水位线标记迁移位置保证迁移过程中与IO交互的数据正确性,使得在线扩容方法实施更加简单、便捷。
为了便于空间分布的进一步管理,可将条带进一步组织成为数据包packet,也即新地址空间与旧地址空间均包括多个数据包,整个RAID的空间可由多个packet组成。每个数据包均包括多个条带,各数据包内的空间分布均相同。
新地址空间的数据包的空间容量值根据条带分块容量值、新磁盘阵列的磁盘总数和条带宽度确定。旧地址空间的数据包的空间容量值根据条带分块容量值、初始磁盘阵列的磁盘总数和条带宽度确定。
作为一种可选的实施方式,数据包的大小为条带分块大小*磁盘数目*条带宽度。图2为以RAID6为例的空间分布示意图,RAID6根据条带化的数据生成校验信息,条带化数据和校验数据一起分散存储到RAID组的各个磁盘上。图2中D1,D2,D3,D4是条带化的数据,P代表校验数据,Q是第二份校验数据,有阴影的数据包为备份空间。
本发明实施例还针对磁盘阵列在线扩容方法提供了相应的装置,进一步使得所述方法更具有实用性。其中,装置可从功能模块的角度和硬件的角度分别说明。下面对本发明实施例提供的磁盘阵列在线扩容装置进行介绍,下文描述的磁盘阵列在线扩容装置与上文描述的磁盘阵列在线扩容方法可相互对应参照。
基于功能模块的角度,参见图3,图3为本发明实施例提供的磁盘阵列在线扩容装置在一种具体实施方式下的结构图,该装置可包括:
磁盘扩容模块301,用于通过在线扩容技术为初始磁盘阵列增加新磁盘生成新磁盘阵列,所述初始磁盘阵列和新磁盘阵列采用相同的分布式空间分布,以使新地址空间分布与旧地址空间分布的条带宽度、条带分块容量值和备份空间相同。
数据迁移模块302,用于将从所述初始磁盘阵列对应的旧地址空间读取的数据按照条带形式迁移至所述新磁盘阵列对应的新地址空间,并将所述新地址空间在所述初始磁盘阵列所有数据迁移完成后的预留空间作为扩容空间。
数据访问模块303,用于根据接收的IO操作请求的地址与当前迁移条带的地址之间的数值关系确定待访问数据的存储位置,以完成与业务IO的交互。
可选的,在本实施例的一些实施方式中,所述数据访问模块303例如还可以包括:
标记子模块,用于在数据迁移过程中,采用水位线标记当前迁移位置;
新空间访问子模块,用于若所述IO操作请求访问的目标条带在所述水位线标记线之前,在所述新地址空间中访问所述目标条带;
旧空间访问子模块,用于若所述IO操作请求访问的目标条带在所述水位线标记线之后,在所述旧地址空间中访问所述目标条带;
等待迁移后再访问子模块,用于若所述IO操作请求访问的目标条带为所述水位线标记线,等待当前条带迁移完成后再在所述新地址空间中访问所述目标条带。
可选的,在本实施例的另一些实施方式中,新地址空间与旧地址空间均包括多个数据包;每个数据包均包括多个条带,各数据包内的空间分布均相同。
本发明实施例所述磁盘阵列在线扩容装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本发明实施例在保证RAID原有配置的基础上实现了灵活扩容RAID。
上文中提到的磁盘阵列在线扩容装置是从功能模块的角度描述,进一步的,本申请还提供一种磁盘阵列在线扩容装置,是从硬件角度描述。图4为本申请实施例提供的另一种磁盘阵列在线扩容装置的结构图。如图4所示,该装置包括存储器40,用于存储计算机程序;
处理器41,用于执行计算机程序时实现如上述实施例提到的磁盘阵列在线扩容方法的步骤。
其中,处理器41可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器41可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器41也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器41可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器41还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器40可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器40还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器40至少用于存储以下计算机程序401,其中,该计算机程序被处理器41加载并执行之后,能够实现前述任一实施例公开的磁盘阵列在线扩容方法的相关步骤。另外,存储器40所存储的资源还可以包括操作系统404和数据403等,存储方式可以是短暂存储或者永久存储。其中,操作系统404可以包括Windows、Unix、Linux等。数据403可以包括但不限于磁盘阵列在线扩容结果对应的数据等。
在一些实施例中,磁盘阵列在线扩容装置还可包括有显示屏42、输入输出接口43、通信接口44、电源45以及通信总线46。
本领域技术人员可以理解,图4中示出的结构并不构成对磁盘阵列在线扩容装置的限定,可以包括比图示更多或更少的组件,例如还可包括传感器47。
本发明实施例所述磁盘阵列在线扩容装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本发明实施例在保证RAID原有配置的基础上实现了灵活扩容RAID。
可以理解的是,如果上述实施例中的磁盘阵列在线扩容方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、磁碟或者光盘等各种可以存储程序代码的介质。
基于此,本发明实施例还提供了一种计算机可读存储介质,存储有磁盘阵列在线扩容程序,所述磁盘阵列在线扩容程序被处理器执行时如上任意一实施例所述磁盘阵列在线扩容方法的步骤。
本发明实施例所述计算机可读存储介质的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本发明实施例在保证RAID原有配置的基础上实现了灵活扩容RAID。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
以上对本申请所提供的一种磁盘阵列在线扩容方法、装置及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
Claims (8)
1.一种磁盘阵列在线扩容方法,其特征在于,包括:
通过在线扩容技术为初始磁盘阵列增加新磁盘生成新磁盘阵列,所述初始磁盘阵列和新磁盘阵列采用相同的分布式空间分布,以使新地址空间分布与旧地址空间分布的条带宽度、条带分块容量值和备份空间相同;
将从所述初始磁盘阵列对应的旧地址空间读取的数据按照条带形式迁移至所述新磁盘阵列对应的新地址空间,并将所述新地址空间在所述初始磁盘阵列所有数据迁移完成后的预留空间作为扩容空间;
根据接收的IO操作请求的地址与当前迁移条带的地址之间的数值关系确定待访问数据的存储位置,以完成与业务IO的交互;
其中,所述根据接收的IO操作请求的地址与当前迁移条带的地址之间的数值关系确定待访问数据的存储位置包括:
在数据迁移过程中,采用水位线标记当前迁移位置;
若所述IO操作请求访问的目标条带在水位线标记线之前,在所述新地址空间中访问所述目标条带;
若所述IO操作请求访问的目标条带在所述水位线标记线之后,在所述旧地址空间中访问所述目标条带;
若所述IO操作请求访问的目标条带为所述水位线标记线,等待当前条带迁移完成后再在所述新地址空间中访问所述目标条带。
2.根据权利要求1所述的磁盘阵列在线扩容方法,其特征在于,所述初始磁盘阵列的N块磁盘中存储的数据平均分布在所述新磁盘阵列的M块磁盘中。
3.根据权利要求1或2所述的磁盘阵列在线扩容方法,其特征在于,所述新地址空间与所述旧地址空间均包括多个数据包;
每个数据包均包括多个条带,各数据包内的空间分布均相同。
4.根据权利要求3所述的磁盘阵列在线扩容方法,其特征在于,所述新地址空间的数据包的空间容量值根据所述条带分块容量值、所述新磁盘阵列的磁盘总数和所述条带宽度确定;所述旧地址空间的数据包的空间容量值根据所述条带分块容量值、所述初始磁盘阵列的磁盘总数和所述条带宽度确定。
5.一种磁盘阵列在线扩容装置,其特征在于,包括:
磁盘扩容模块,用于通过在线扩容技术为初始磁盘阵列增加新磁盘生成新磁盘阵列,所述初始磁盘阵列和新磁盘阵列采用相同的分布式空间分布,以使新地址空间分布与旧地址空间分布的条带宽度、条带分块容量值和备份空间相同;
数据迁移模块,用于将从所述初始磁盘阵列对应的旧地址空间读取的数据按照条带形式迁移至所述新磁盘阵列对应的新地址空间,并将所述新地址空间在所述初始磁盘阵列所有数据迁移完成后的预留空间作为扩容空间;
数据访问模块,用于根据接收的IO操作请求的地址与当前迁移条带的地址之间的数值关系确定待访问数据的存储位置,以完成与业务IO的交互;
其中,所述数据访问模块包括:
标记子模块,用于在数据迁移过程中,采用水位线标记当前迁移位置;
新空间访问子模块,用于若所述IO操作请求访问的目标条带在水位线标记线之前,在所述新地址空间中访问所述目标条带;
旧空间访问子模块,用于若所述IO操作请求访问的目标条带在所述水位线标记线之后,在所述旧地址空间中访问所述目标条带;
等待迁移后再访问子模块,用于若所述IO操作请求访问的目标条带为所述水位线标记线,等待当前条带迁移完成后再在所述新地址空间中访问所述目标条带。
6.根据权利要求5所述的磁盘阵列在线扩容装置,其特征在于,所述新地址空间与所述旧地址空间均包括多个数据包;
每个数据包均包括多个条带,各数据包内的空间分布均相同。
7.一种磁盘阵列在线扩容装置,其特征在于,包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1至4任一项所述磁盘阵列在线扩容方法的步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有磁盘阵列在线扩容程序,所述磁盘阵列在线扩容程序被处理器执行时实现如权利要求1至4任一项所述磁盘阵列在线扩容方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010986816.1A CN112130768B (zh) | 2020-09-18 | 2020-09-18 | 磁盘阵列在线扩容方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010986816.1A CN112130768B (zh) | 2020-09-18 | 2020-09-18 | 磁盘阵列在线扩容方法、装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112130768A CN112130768A (zh) | 2020-12-25 |
CN112130768B true CN112130768B (zh) | 2023-01-10 |
Family
ID=73841404
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010986816.1A Active CN112130768B (zh) | 2020-09-18 | 2020-09-18 | 磁盘阵列在线扩容方法、装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112130768B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112799604B (zh) * | 2021-03-18 | 2022-06-17 | 河北工业大学 | 一种基于N-Code的RAID6磁盘阵列扩容方法及数据填充方法 |
CN113296702B (zh) * | 2021-05-20 | 2023-01-10 | 山东云海国创云计算装备产业创新中心有限公司 | 一种磁盘阵列扩容方法、装置、设备及存储介质 |
CN113407114B (zh) * | 2021-05-26 | 2022-03-04 | 青海师范大学 | 一种基于热数据和删除重复操作的在线扩容io调度方法 |
CN113849124B (zh) * | 2021-08-27 | 2023-08-04 | 苏州浪潮智能科技有限公司 | 一种磁盘阵列扩容方法及装置 |
WO2023125507A1 (zh) * | 2021-12-29 | 2023-07-06 | 华为技术有限公司 | 生成块组的方法、装置和设备 |
CN115437578B (zh) * | 2022-11-04 | 2023-03-24 | 苏州浪潮智能科技有限公司 | 一种磁盘阵列的数据迁移方法、装置、设备和介质 |
CN115840540B (zh) * | 2023-02-23 | 2023-05-02 | 苏州浪潮智能科技有限公司 | Raid阵列扩容方法、装置、设备、raid卡及介质 |
CN116027990B (zh) * | 2023-03-29 | 2023-07-14 | 苏州浪潮智能科技有限公司 | 一种raid卡及其数据访问方法、系统及存储介质 |
CN116185311B (zh) * | 2023-04-27 | 2023-08-08 | 苏州浪潮智能科技有限公司 | 独立磁盘冗余阵列的升级迁移方法、降级迁移方法及装置 |
CN117234433B (zh) * | 2023-11-14 | 2024-02-20 | 苏州元脑智能科技有限公司 | 数据迁移方法和装置、raid存储设备、存储介质及电子装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101546249A (zh) * | 2008-03-26 | 2009-09-30 | 中兴通讯股份有限公司 | 磁盘阵列在线容量扩展方法 |
CN102184080A (zh) * | 2011-04-29 | 2011-09-14 | 华中科技大学 | 一种基于固化条带的raid系统扩容后的数据读写方法 |
CN102200892A (zh) * | 2011-04-29 | 2011-09-28 | 华中科技大学 | 一种基于动态raid系统的扩容方法 |
-
2020
- 2020-09-18 CN CN202010986816.1A patent/CN112130768B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101546249A (zh) * | 2008-03-26 | 2009-09-30 | 中兴通讯股份有限公司 | 磁盘阵列在线容量扩展方法 |
CN102184080A (zh) * | 2011-04-29 | 2011-09-14 | 华中科技大学 | 一种基于固化条带的raid系统扩容后的数据读写方法 |
CN102200892A (zh) * | 2011-04-29 | 2011-09-28 | 华中科技大学 | 一种基于动态raid系统的扩容方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112130768A (zh) | 2020-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112130768B (zh) | 磁盘阵列在线扩容方法、装置及计算机可读存储介质 | |
CN102467408B (zh) | 一种虚拟机数据的访问方法和设备 | |
US7979648B2 (en) | Dynamic interleaving | |
CN105718217B (zh) | 一种精简配置存储池数据一致性维护的方法及装置 | |
CN110673789B (zh) | 固态硬盘的元数据存储管理方法、装置、设备及存储介质 | |
CN103608784B (zh) | 网络卷创建方法、数据存储方法、存储设备和存储系统 | |
CN103229136B (zh) | 磁盘阵列刷盘方法及磁盘阵列刷盘装置 | |
CN102682012A (zh) | 一种文件系统内读写数据的方法及装置 | |
CN104050097A (zh) | 在具有不同的最小可寻址数据单元大小的非易失性存储器单元之间进行选择 | |
CN104407933A (zh) | 一种数据的备份方法及装置 | |
US11379326B2 (en) | Data access method, apparatus and computer program product | |
US11010301B2 (en) | Method, apparatus, and computer program product for providing cache service | |
CN110007870A (zh) | 一种存储设备写请求处理方法及相关装置 | |
WO2024098698A1 (zh) | 一种磁盘阵列初始化方法、装置、设备及可读存储介质 | |
CN103365926A (zh) | 在文件系统中用于保存快照的方法和装置 | |
CN113836116A (zh) | 数据迁移方法、装置、电子设备及可读存储介质 | |
CN116755625A (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
CN104216664A (zh) | 网络卷创建方法、数据存储方法、存储设备和存储系统 | |
CN110688067A (zh) | 一种存储系统的分层方法、装置、设备及介质 | |
CN102609224B (zh) | 一种独立冗余磁盘阵列系统及其初始化方法 | |
CN116069685B (zh) | 一种存储系统写控制方法、装置、设备及可读存储介质 | |
CN112269535A (zh) | 存储系统的空间资源分配方法、装置及可读存储介质 | |
CN111782153A (zh) | 一种基于读取数据的方法、系统、设备以及介质 | |
CN112162696A (zh) | 自精简卷头部容量分配方法、装置及计算机可读存储介质 | |
CN115359834B (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 |