CN113296702B - 一种磁盘阵列扩容方法、装置、设备及存储介质 - Google Patents

一种磁盘阵列扩容方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN113296702B
CN113296702B CN202110552138.2A CN202110552138A CN113296702B CN 113296702 B CN113296702 B CN 113296702B CN 202110552138 A CN202110552138 A CN 202110552138A CN 113296702 B CN113296702 B CN 113296702B
Authority
CN
China
Prior art keywords
disk
stripe
data blocks
capacity expansion
positions
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
Application number
CN202110552138.2A
Other languages
English (en)
Other versions
CN113296702A (zh
Inventor
吴睿振
王凛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Computer Technology Co Ltd
Original Assignee
Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd filed Critical Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
Priority to CN202110552138.2A priority Critical patent/CN113296702B/zh
Publication of CN113296702A publication Critical patent/CN113296702A/zh
Application granted granted Critical
Publication of CN113296702B publication Critical patent/CN113296702B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration 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)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

本发明公开了一种磁盘阵列扩容方法、装置、设备及存储介质,该方法包括:将扩容添加的每个磁盘中各盘位分别划分至每个条带;确定磁盘阵列中由扩容前存在的磁盘向扩容添加的磁盘的方向为正向方向;保持磁盘阵列中任意一个条带不变,依次确定磁盘阵列中除该任意一个条带之外的其他每个条带分别为当前条带,由当前条带中与上一个条带所包含的第一个空的盘位属于同一磁盘的盘位起,沿正向方向依次排列多个盘位均为有效盘位,将当前条带中的数据块分别存储至每个有效盘位中;每个盘位能够存储一个数据块,当前条带中有效盘位的数量等于当前条带中数据块的数量。从而实现数据的均匀分布,降低算法控制的复杂性。

Description

一种磁盘阵列扩容方法、装置、设备及存储介质
技术领域
本发明涉及数据存储技术领域,更具体地说,涉及一种磁盘阵列扩容方法、装置、设备及存储介质。
背景技术
RAID(Redundant Arrays of Independent Disks)即具有冗余能力的磁盘阵列,磁盘阵列通过将多个独立磁盘组合一起得到一个容量巨大的磁盘组;RAID可以被分为不同的等级:RAID0,1,5,6,10。
在实际的工作环境中,当用户组好了RAID,无论是RAID0,1,5,6,10中任何一种都会成为一种固定的RAID。可随着实际的应用发展,会有现有RAID空间不够的情况发生,此时需要向其中添加新的磁盘,即是RAID扩容。新的磁盘数据为空,并且会影响到原有RAID的校验条带关系。因此需要对扩容后的新RAID所表现出来的问题进行相应的处理,常见的RAID扩容方法为RR算法,即是顺序将存储的数据依次填入新增空磁盘,对于一个4块磁盘新增两块磁盘的情况如图1所示。可知RR算法的算法控制较为复杂;以图1为例,除了D0,1-D3,1这4个条带的数据,其他8个条带数据都需要迁移,且涉及跨条带之间的数据迁移,如D1,2和D2,2本在条带2,现在全部需要迁移到条带1的位置,而条带3的数据全部需要迁移到条带2,这就需要记录下不同条带所需要进行的不同操作,以保证数据迁移的正确性。
发明内容
本发明的目的是提供一种磁盘阵列扩容方法、装置、设备及存储介质,能够实现数据的均匀分布的同时,大大降低算法控制的复杂性。
为了实现上述目的,本发明提供如下技术方案:
一种磁盘阵列扩容方法,包括:
将扩容添加的每个磁盘中各盘位分别划分至每个条带,得到扩容后的磁盘阵列;其中,所述磁盘阵列中每一行包含同一条带的全部盘位,每一列包含同一磁盘的全部盘位,且每个盘位能够存储一个数据块;
确定所述磁盘阵列中由扩容前存在的磁盘向扩容添加的磁盘的方向为正向方向;其中,扩容添加的磁盘均位于扩容前存在的全部磁盘的一侧;
保持所述磁盘阵列中任意一个条带不变,依次确定所述磁盘阵列中除该任意一个条带之外的其他每个条带分别为当前条带,由当前条带中与上一个条带所包含的第一个空的盘位属于同一磁盘的盘位起,沿正向方向依次排列多个盘位均为有效盘位,并将当前条带中的数据块分别存储至每个所述有效盘位中;其中,当前条带中有效盘位的数量等于当前条带中数据块的数量,当前条带的上一个条带为在当前条带前确定的最后一个当前条带。
优选的,沿正向方向依次排列多个盘位均为有效盘位,包括:
沿正向方向依次排列多个盘位的过程中,如果排列的盘位数量少于当前条带中数据块的数量、但已排列到最后一个盘位,则由当前条带中该最后一个盘位对应的第一个盘位开始继续排列,直至排列得到全部有效盘位为止。
优选的,将当前条带中的数据块分别存储至每个所述有效盘位中,包括:
确定当前条带中除有效盘位之外的盘位为非有效盘位,将存储有数据块的非有效盘位中存储的数据块分别搬移至未存储有数据块的有效盘位中。
优选的,将存储有数据块的非有效盘位中存储的数据块分别搬移至未存储有数据块的有效盘位中,包括:
确定存储有数据块的非有效盘位中存储的数据块均为待搬移数据块,按照每个所述待搬移数据块搬移前后所在盘位之间距离均相同的原则,将每个所述待搬移数据块分别搬移至未存储有数据块的有效盘位中。
一种磁盘阵列扩容装置,包括:
划分模块,用于:将扩容添加的每个磁盘中各盘位分别划分至每个条带,得到扩容后的磁盘阵列;其中,所述磁盘阵列中每一行包含同一条带的全部盘位,每一列包含同一磁盘的全部盘位,且每个盘位能够存储一个数据块;
确定模块,用于:确定所述磁盘阵列中由扩容前存在的磁盘向扩容添加的磁盘的方向为正向方向;其中,扩容添加的磁盘均位于扩容前存在的全部磁盘的一侧;
搬移模块,用于:保持所述磁盘阵列中任意一个条带不变,依次确定所述磁盘阵列中除该任意一个条带之外的其他每个条带分别为当前条带,由当前条带中与上一个条带所包含的第一个空的盘位属于同一磁盘的盘位起,沿正向方向依次排列多个盘位均为有效盘位,并将当前条带中的数据块分别存储至每个所述有效盘位中;其中,当前条带中有效盘位的数量等于当前条带中数据块的数量,当前条带的上一个条带为在当前条带前确定的最后一个当前条带。
优选的,搬移模块包括:
排列单元,用于:沿正向方向依次排列多个盘位的过程中,如果排列的盘位数量少于当前条带中数据块的数量、但已排列到最后一个盘位,则由当前条带中该最后一个盘位对应的第一个盘位开始继续排列,直至排列得到全部有效盘位为止。
优选的,搬移模块包括:
搬移单元,用于:确定当前条带中除有效盘位之外的盘位为非有效盘位,将存储有数据块的非有效盘位中存储的数据块分别搬移至未存储有数据块的有效盘位中。
优选的,搬移单元包括:
搬移子单元,用于:确定存储有数据块的非有效盘位中存储的数据块均为待搬移数据块,按照每个所述待搬移数据块搬移前后所在盘位之间距离均相同的原则,将每个所述待搬移数据块分别搬移至未存储有数据块的有效盘位中。
一种磁盘阵列扩容设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上任一项所述磁盘阵列扩容方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述磁盘阵列扩容方法的步骤。
本发明提供了一种磁盘阵列扩容方法、装置、设备及存储介质,该方法包括:将扩容添加的每个磁盘中各盘位分别划分至每个条带,得到扩容后的磁盘阵列;确定所述磁盘阵列中由扩容前存在的磁盘向扩容添加的磁盘的方向为正向方向;保持所述磁盘阵列中任意一个条带不变,依次确定所述磁盘阵列中除该任意一个条带之外的其他每个条带分别为当前条带,由当前条带中与上一个条带所包含的第一个空的盘位属于同一磁盘的盘位起,沿正向方向依次排列多个盘位均为有效盘位,并将当前条带中的数据块分别存储至每个所述有效盘位中;其中,所述磁盘阵列中每一行包含同一条带的全部盘位,每一列包含同一磁盘的全部盘位,每个盘位能够存储一个数据块,扩容添加的磁盘均位于扩容前存在的全部磁盘的一侧,当前条带中有效盘位的数量等于当前条带中数据块的数量,当前条带的上一个条带为在当前条带前确定的最后一个当前条带。本申请在磁盘阵列的一侧添加空的磁盘后,将各空的磁盘划分至磁盘阵列的各条带,从而得到新的磁盘阵列,且新的磁盘阵列中存满数据的磁盘及空的磁盘分别作为相应的列存在,而每个条带则作为相应的行存在;然后保持磁盘阵列中任意一个条带的数据块位置保持不变,而其他条带中数据块均分配至所属条带的有效盘位中,且每个条带的有效盘位均与上一条带的有效盘位的位置存在规律的区别,从而实现数据的均匀分布,同时无需跨条带之间实现数据迁移,大大降低了算法控制的复杂性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为RR算法的数据搬移示例图;
图2为本发明实施例提供的一种磁盘阵列扩容方法的流程图;
图3为本发明实施例提供的一种磁盘阵列扩容方法中已完成落盘的磁盘阵列的示意图;
图4为本发明实施例提供的一种磁盘阵列扩容方法中扩容磁盘量为2时的落盘情况示意图;
图5为本发明实施例提供的一种磁盘阵列扩容方法中扩容磁盘量为4时的落盘情况示意图;
图6为本发明实施例提供的一种磁盘阵列扩容方法中扩容磁盘量为5时的落盘情况示意图;
图7为本发明实施例提供的一种磁盘阵列扩容装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图2,其示出了本发明实施例提供的一种磁盘阵列扩容方法的流程图,可以包括:
S11:将扩容添加的每个磁盘中各盘位分别划分至每个条带,得到扩容后的磁盘阵列;其中,磁盘阵列中每一行包含同一条带的全部盘位,每一列包含同一磁盘的全部盘位,且每个盘位能够存储一个数据块。
本发明实施例提供的一种磁盘阵列扩容方法的执行主体可以为对应的磁盘阵列扩容装置。其中,磁盘阵列(如RAID)中存储有数据,数据为用于存储真实用户信息的一块字符串,本实施例中数据可以以数据块为单位进行存储,磁盘阵列中任意磁盘包含的单个盘位能够存储单个数据块。当磁盘阵列中全部磁盘均写满数据时则需要对磁盘阵列进行扩容,也即在磁盘阵列中添加新的未存储有任何数据的磁盘(或者说空的磁盘),本申请实施例中在添加空的磁盘时可以是将空的磁盘均添加至磁盘阵列中的一侧,例如图1中的Disk5及Disk6则为扩容添加的磁盘,从而使得扩容前磁盘阵列包含的磁盘在一侧,扩容添加的磁盘在另一侧,由扩容前磁盘阵列包含的磁盘及扩容添加的磁盘组成新的磁盘阵列,也即扩容后的磁盘阵列。
通常磁盘阵列可以表示为相应的矩阵,矩阵中行数为条带数,单个行即为单个条带,列数为磁盘数,单个列为单个磁盘。在扩容时将至少一个空的磁盘添加至磁盘阵列的一侧后,使得磁盘阵列的一侧多出与空的磁盘相对应的至少一列;将每个空的磁盘均划分为多个盘位,单个磁盘包含的盘位数量与磁盘阵列包含的条带数量相同,因此可以将单个空的磁盘中每个盘位分别分给每个条带,从而使得每个空的磁盘均具有与每个条带相对应的盘位。其中,条带(Stripe)与现有技术中对应概念的含义相同,其可以只含有数据块或校验块,也可以同时含有数据块和校验块。在实现空的磁盘的添加及至相应条带的划分后,得到的新的磁盘阵列包含的行不变,也即条带的数量不变,但是列的数量增加,增加的列即为添加的磁盘的数量,且仍然是单个行包含单个条带中全部盘位,单个列包含单个磁盘中全部盘位。例如图1中的Disk5及Disk6为扩容添加的磁盘,则在将其划分至相应的条带后,则呈现如图1中右侧所示的盘位排列方式,进而基于此实现相应的数据块搬移。
S12:确定磁盘阵列中由扩容前存在的磁盘向扩容添加的磁盘的方向为正向方向;其中,扩容添加的磁盘均位于扩容前存在的全部磁盘的一侧。
为了便于实现有效盘位的确定,本申请中定义正向方式为磁盘阵列中扩容前存在磁盘向扩容添加磁盘的方向,进而基于该方向排列相应的数据块;例如图1中正向方向则为Disk1向Disk6的方向。当然只要能够达到本申请所需的目的,根据实际需要进行的其他设置也均在本发明的保护范围之内。
S13:保持磁盘阵列中任意一个条带不变,依次确定磁盘阵列中除该任意一个条带之外的其他每个条带分别为当前条带,由当前条带中与上一个条带所包含的第一个空的盘位属于同一磁盘的盘位起,沿正向方向依次排列多个盘位均为有效盘位,并将当前条带中的数据块分别存储至每个有效盘位中;其中,当前条带中有效盘位的数量等于当前条带中数据块的数量,当前条带的上一个条带为在当前条带前确定的最后一个当前条带,当前条带的上一个条带为在当前条带前确定的最后一个当前条带。
在实现数据块的搬移时,可以先确定磁盘阵列中任意一个条带为基准条带,该基准条带的数据块的位置保持不变,然后依次对除该基准条带之外的每个条带进行数据块的搬移处理。具体来说,确定除基准条带之外任意的条带为当前条带,确定当前条带中与上一个当前条带第一个空的盘位属于同一磁盘的盘位为起始盘位,然后从起始盘位起沿着正向方向数出当前条带中的多个盘位作为有效盘位,进而将当前条带中存储的数据块均搬移至有效盘位中进行存储,从而能够使得每个条带的数据块的位置与上一条带的数据块的位置均按照一定的规律发生变化,最终使得数据在磁盘实现均匀分布,且数据仅需在所属条带内实现搬移,无需跨条带搬移。其中,有效盘位的数量等于当前条带中数据块的数量,以使得具有足够的有效盘位实现所属条带中各数据块的存储。另外,对于基准条带及条带的处理顺序可以根据实际需要进行设定,如基准条带可以为位于磁盘阵列第一行的条带,然后将位于磁盘阵列第二行的条带作为当前条带实现数据搬移,再然后将位于磁盘阵列第三行的条带作为当前条带实现数据搬移,以此类推,直至完成位于磁盘阵列最后一行的条带作为当前条带实现数据搬移,从而按照这个顺序实现磁盘阵列中全部所需实现的数据搬移。
本申请在磁盘阵列的一侧添加空的磁盘后,将各空的磁盘划分至磁盘阵列的各条带,从而得到新的磁盘阵列,且新的磁盘阵列中存满数据的磁盘及空的磁盘分别作为相应的列存在,而每个条带则作为相应的行存在;然后保持磁盘阵列中任意一个条带的数据块位置保持不变,而其他条带中数据块均分配至所属条带的有效盘位中,且每个条带的有效盘位均与上一条带的有效盘位的位置存在规律的区别,从而实现数据的均匀分布,同时无需跨条带之间实现数据迁移,大大降低了算法控制的复杂性。
本发明实施例提供的一种磁盘阵列扩容方法,沿正向方向依次排列多个盘位均为有效盘位,可以包括:
沿正向方向依次排列多个盘位的过程中,如果排列的盘位数量少于当前条带中数据块的数量、但已排列到最后一个盘位,则由当前条带中该最后一个盘位对应的第一个盘位开始继续排列,直至排列得到全部有效盘位为止。
需要说明的是,在沿正向方向依次数出多个盘位作为有效盘位的过程中,如果在数到位于磁盘阵列沿正向方向数最后一列的盘位时,仍然无法达到所需数出的有效盘位的数量,则由位于磁盘阵列沿正向方向数数第一列的盘位起继续数盘位,直至数出的盘位的数量达到所需数出的有效盘位的数量为止,从而通过这种方式能够实现有效盘位的有效确定。
本发明实施例提供的一种磁盘阵列扩容方法,将当前条带中的数据块分别存储至每个有效盘位中,可以包括:
确定当前条带中除有效盘位之外的盘位为非有效盘位,将存储有数据块的非有效盘位中存储的数据块分别搬移至未存储有数据块的有效盘位中。
为了减少数据搬移量,本申请在实现同一条带内的数据搬移时,如果有效盘位中存储有数据块或者非有效盘位中未存储有数据块,则将存储有数据块的有效盘位及未存储有数据块的非有效盘位保持不变,并且将存储有数据块的非有效盘位中存储的数据块分别迁移至未存储有数据块的非有效盘位,从而仅需实现必要的部分数据块的迁移即可。
本发明实施例提供的一种磁盘阵列扩容方法,将存储有数据块的非有效盘位中存储的数据块分别搬移至未存储有数据块的有效盘位中,可以包括:
确定存储有数据块的非有效盘位中存储的数据块均为待搬移数据块,按照每个待搬移数据块搬移前后所在盘位之间距离均相同的原则,将每个待搬移数据块分别搬移至未存储有数据块的有效盘位中。
为了在实现数据搬移时每个需搬移的数据块所经过的搬移距离相同,从而便于实现这些数据块的统一搬移,本申请实施例中可以按照每个需要搬移的数据块搬移前后所经过的距离相同的原则,实现每个待搬移数据块的搬移;而待搬移数据块搬移前后所在盘位之间的距离即为两个盘位之间相隔的盘位数量。例如图1中如果需要将D3,2及D0,2搬移至所属条带的Disk5及Disk6中,则将D3,2搬移至所属条带的Disk5中,将D0,2搬移至所属条带的Disk6中,由此使得D3,2及D0,2搬移的距离相同。
在一种具体实现方式中,本发明实施例提供的一种磁盘阵列扩容方法具体可以包括以下步骤:
1.针对第一行的stripe情况,将空磁盘紧贴现存磁盘排列,亦即是第一行原本存储stripe情况不变,后面为扩容数量的磁盘的空stripe。
2.第二行有效stripe位置(有效stripe位置即有效盘位)为从第一行空stripe对应的盘位开始依次排列,排至边界(边界即最后一列)则从第一块Disk折叠继续排列(从第一块Disk折叠继续排列即从第一列磁盘的盘位开始继续排列),根据排列位置将非有效stripe位置的数据块进行移位,移位目标位置为扩容磁盘的有效stripe位置。
3.从第二行的空白stripe对应的盘位开始重复第2步的方法,依次类推,直到完成所有条带相应数据块的位移。
举例已经完成落盘的磁盘阵列如图3所示,磁盘阵列内共有4个磁盘,分别是Disk1-4,每个磁盘按照条带需求分为了3个条带,即是图3中的stripe1-3,落盘数据按照4个磁盘对应为D1-4,为了负载均衡,每个数据分为4个stripe大小的数据块,依次落盘,例如数据1的stripe3就是D0,3。图3中磁盘阵列为了负载均衡在数据排布是对同数据的不同stripe尽量分别落在不同磁盘上,基于这样的落盘方式当需要取数据D0时,即是对磁盘1,3,4分别取一块数据,所有数据对磁盘的读写压力都相同,IO访问均衡,压力相同。
本申请提出的磁盘阵列扩容方需要针对不同扩容情况进行调度控制,按照扩容的场景而言一般可以分为三类,下面分别进行说明:
1.扩容添加的磁盘数小于扩容前磁盘阵列中的磁盘数。
在这种情况下,以上述图3为例,即是扩容数为1,2,3个磁盘任一种时;本实施例以扩容磁盘量为2举例。基于本发明的扩容最终落盘方案即为图4所示,当4块磁盘3stripe的磁盘阵列情况下,2块磁盘的扩容基于本发明所得到的落盘结果。可知通过本算法的扩容,每块磁盘的有效数据都为2块,实现数据均匀分布。
Firmware调度方面,需要调度的stripe在图里通过圆圈标出,虚线表示的是未经过调度的数据所在位置,实线圆圈表示的调度后的数据位置,在图4示例中,通过本发明只需要有4块数据发生调度,相比同情况下使用RR扩容算法的数据调度减少了一半,具有最小数据迁移和调度简单的优势。
对于数据读写方面,通过本申请的扩容方案D0-3的读写都会分布在3块磁盘上,实现IO访问均衡,压力相同。
2.扩容添加的磁盘数等于扩容前磁盘阵列中的磁盘数。
在这种情况下,以上述图3为例,即是扩容数为4个磁盘。基于本发明的扩容最终落盘方案即为图5所示,当4块磁盘3stripe的磁盘阵列情况下4块磁盘的扩容,基于本发明所得到的落盘结果。可知通过本算法的扩容,每块磁盘的有效数据分别为2,2,2,2,1,1,1,1块,实现数据均匀分布。
Firmware调度方面,需要调度的stripe在图里通过圆圈标出,虚线表示的是未经过调度的数据所在位置,实线圆圈表示的调度后的数据位置。在图5示例中,通过本发明只需要有4块数据发生调度,相比同情况下使用RR扩容算法的数据调度减少了一半,具有最小数据迁移和调度简单的优势。
对于数据读写方面,通过本算法的扩容方案,D0-3的读写都会分布在3块磁盘上,实现IO访问均衡,压力相同。
3.扩容添加的磁盘数大于扩容前磁盘阵列中的磁盘数。
在这种情况下,以上述图3为例,即是扩容数为大于4个磁盘,以扩容5块磁盘为例举例说明,基于本发明的扩容最终落盘方案即为图6所示,当4块磁盘3stripe的磁盘阵列情况下4块磁盘的扩容,基于本发明所得到的落盘结果。可知通过本算法的扩容,每块磁盘的有效数据分别为1,2,2,2,1,1,1,1,1块,实现数据均匀分布。
Firmware调度方面,需要调度的stripe在图里通过圆圈标出,虚线表示的是未经过调度的数据所在位置,实线圆圈表示的调度后的数据位置。在图6示例中,通过本发明只需要有5块数据发生调度,相比同情况下使用RR扩容算法的数据调度减少了将近一半,具有最小数据迁移和调度简单的优势。
对于数据读写方面,通过本算法的扩容方案,D0-3的读写都会分布在3块磁盘上,实现IO访问均衡,压力相同。
通过以上分析可知,对于任何情况本发明的扩容方案均可实现,以n个Disk组成磁盘阵列,当扩容容量为m(扩容添加的磁盘数量为m)时,相比RR扩容算法其数据搬移改进情况为:
1.当m<n时,则本发明所提出的扩容方案需要搬移的数据量相比于RR扩容算法所需要搬移的数据量能够减少超过
Figure BDA0003075887880000101
2.当m=n时,则本发明所提出的扩容方案需要搬移的数据量相比于RR扩容算法所需要搬移的数据量能够减少超过
Figure BDA0003075887880000102
3.当m>n时,则本发明所提出的扩容方案需要搬移的数据量相比于RR扩容算法所需要搬移的数据量能够减少超过
Figure BDA0003075887880000103
因此本申请可达到均匀数据分布、最小数据迁移和Firmware调度简单有效的优势。
另外,本申请以数据均匀分布为首要目标,在不同的磁盘添加情况下设计同一套数据迁移模式,且数据迁移可以由Firmware进行调度,通过XOR硬件加速器运算实现数据迁移,以得到不同环境下不同磁盘添加,都可通过相同的单向方式,实现均匀数据分布的RAID扩容操作。也即本申请能够在不同环境下保证数据均匀分布的前提下,数据调度量小,Firmware调度简单,保证不同情况的磁盘阵列下不同扩容的实现,相比传统的RR扩容算法,在具有数据均匀表现的前提下,可以实现相比RR扩容算法更少的数据迁移即可达成均匀调度。
本发明实施例还提供了一种磁盘阵列扩容装置,如图7所示,可以包括:
划分模块11,用于:将扩容添加的每个磁盘中各盘位分别划分至每个条带,得到扩容后的磁盘阵列;其中,磁盘阵列中每一行包含同一条带的全部盘位,每一列包含同一磁盘的全部盘位,且每个盘位能够存储一个数据块;
确定模块12,用于:确定磁盘阵列中由扩容前存在的磁盘向扩容添加的磁盘的方向为正向方向;其中,扩容添加的磁盘均位于扩容前存在的全部磁盘的一侧;
搬移模块13,用于:保持磁盘阵列中任意一个条带不变,依次确定磁盘阵列中除该任意一个条带之外的其他每个条带分别为当前条带,由当前条带中与上一个条带所包含的第一个空的盘位属于同一磁盘的盘位起,沿正向方向依次排列多个盘位均为有效盘位,并将当前条带中的数据块分别存储至每个有效盘位中;其中,当前条带中有效盘位的数量等于当前条带中数据块的数量,当前条带的上一个条带为在当前条带前确定的最后一个当前条带。
本发明实施例提供的一种磁盘阵列扩容装置,搬移模块可以包括:
排列单元,用于:沿正向方向依次排列多个盘位的过程中,如果排列的盘位数量少于当前条带中数据块的数量、但已排列到最后一个盘位,则由当前条带中该最后一个盘位对应的第一个盘位开始继续排列,直至排列得到全部有效盘位为止。
本发明实施例提供的一种磁盘阵列扩容装置,搬移模块可以包括:
搬移单元,用于:确定当前条带中除有效盘位之外的盘位为非有效盘位,将存储有数据块的非有效盘位中存储的数据块分别搬移至未存储有数据块的有效盘位中。
本发明实施例提供的一种磁盘阵列扩容装置,搬移单元可以包括:
搬移子单元,用于:确定存储有数据块的非有效盘位中存储的数据块均为待搬移数据块,按照每个待搬移数据块搬移前后所在盘位之间距离均相同的原则,将每个待搬移数据块分别搬移至未存储有数据块的有效盘位中。
本发明实施例还提供了一种磁盘阵列扩容设备,可以包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如上任一项磁盘阵列扩容方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可以实现如上任一项磁盘阵列扩容方法的步骤。
需要说明的是,本发明实施例提供的一种磁盘阵列扩容装置、设备及存储介质中相关部分的说明请参见本发明实施例提供的一种磁盘阵列扩容方法中对应部分的详细说明,在此不再赘述。另外,本发明实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (8)

1.一种磁盘阵列扩容方法,其特征在于,包括:
将扩容添加的每个磁盘中各盘位分别划分至每个条带,得到扩容后的磁盘阵列;其中,所述磁盘阵列中每一行包含同一条带的全部盘位,每一列包含同一磁盘的全部盘位,且每个盘位能够存储一个数据块;
确定所述磁盘阵列中由扩容前存在的磁盘向扩容添加的磁盘的方向为正向方向;其中,扩容添加的磁盘均位于扩容前存在的全部磁盘的一侧;
保持所述磁盘阵列中任意一个条带不变,依次确定所述磁盘阵列中除该任意一个条带之外的其他每个条带分别为当前条带,由当前条带中与上一个条带所包含的第一个空的盘位属于同一磁盘的盘位起,沿正向方向依次排列多个盘位均为有效盘位,并将当前条带中的数据块分别存储至每个所述有效盘位中;其中,当前条带中有效盘位的数量等于当前条带中数据块的数量,当前条带的上一个条带为在当前条带前确定的最后一个当前条带;
所述沿正向方向依次排列多个盘位均为有效盘位,包括:
沿正向方向依次排列多个盘位的过程中,如果排列的盘位数量少于当前条带中数据块的数量、但已排列到最后一个盘位,则由当前条带中该最后一个盘位对应的第一个盘位开始继续排列,直至排列得到全部有效盘位为止。
2.根据权利要求1所述的方法,其特征在于,将当前条带中的数据块分别存储至每个所述有效盘位中,包括:
确定当前条带中除有效盘位之外的盘位为非有效盘位,将存储有数据块的非有效盘位中存储的数据块分别搬移至未存储有数据块的有效盘位中。
3.根据权利要求2所述的方法,其特征在于,将存储有数据块的非有效盘位中存储的数据块分别搬移至未存储有数据块的有效盘位中,包括:
确定存储有数据块的非有效盘位中存储的数据块均为待搬移数据块,按照每个所述待搬移数据块搬移前后所在盘位之间距离均相同的原则,将每个所述待搬移数据块分别搬移至未存储有数据块的有效盘位中。
4.一种磁盘阵列扩容装置,其特征在于,包括:
划分模块,用于:将扩容添加的每个磁盘中各盘位分别划分至每个条带,得到扩容后的磁盘阵列;其中,所述磁盘阵列中每一行包含同一条带的全部盘位,每一列包含同一磁盘的全部盘位,且每个盘位能够存储一个数据块;
确定模块,用于:确定所述磁盘阵列中由扩容前存在的磁盘向扩容添加的磁盘的方向为正向方向;其中,扩容添加的磁盘均位于扩容前存在的全部磁盘的一侧;
搬移模块,用于:保持所述磁盘阵列中任意一个条带不变,依次确定所述磁盘阵列中除该任意一个条带之外的其他每个条带分别为当前条带,由当前条带中与上一个条带所包含的第一个空的盘位属于同一磁盘的盘位起,沿正向方向依次排列多个盘位均为有效盘位,并将当前条带中的数据块分别存储至每个所述有效盘位中;其中,当前条带中有效盘位的数量等于当前条带中数据块的数量,当前条带的上一个条带为在当前条带前确定的最后一个当前条带;
所述搬移模块包括:
排列单元,用于:沿正向方向依次排列多个盘位的过程中,如果排列的盘位数量少于当前条带中数据块的数量、但已排列到最后一个盘位,则由当前条带中该最后一个盘位对应的第一个盘位开始继续排列,直至排列得到全部有效盘位为止。
5.根据权利要求4所述的装置,其特征在于,搬移模块包括:
搬移单元,用于:确定当前条带中除有效盘位之外的盘位为非有效盘位,将存储有数据块的非有效盘位中存储的数据块分别搬移至未存储有数据块的有效盘位中。
6.根据权利要求5所述的装置,其特征在于,搬移单元包括:
搬移子单元,用于:确定存储有数据块的非有效盘位中存储的数据块均为待搬移数据块,按照每个所述待搬移数据块搬移前后所在盘位之间距离均相同的原则,将每个所述待搬移数据块分别搬移至未存储有数据块的有效盘位中。
7.一种磁盘阵列扩容设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至3任一项所述磁盘阵列扩容方法的步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至3任一项所述磁盘阵列扩容方法的步骤。
CN202110552138.2A 2021-05-20 2021-05-20 一种磁盘阵列扩容方法、装置、设备及存储介质 Active CN113296702B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110552138.2A CN113296702B (zh) 2021-05-20 2021-05-20 一种磁盘阵列扩容方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110552138.2A CN113296702B (zh) 2021-05-20 2021-05-20 一种磁盘阵列扩容方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN113296702A CN113296702A (zh) 2021-08-24
CN113296702B true CN113296702B (zh) 2023-01-10

Family

ID=77323140

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110552138.2A Active CN113296702B (zh) 2021-05-20 2021-05-20 一种磁盘阵列扩容方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN113296702B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113849124B (zh) * 2021-08-27 2023-08-04 苏州浪潮智能科技有限公司 一种磁盘阵列扩容方法及装置
CN115599313B (zh) * 2022-12-05 2023-03-17 苏州浪潮智能科技有限公司 一种磁盘阵列扩容方法、系统、存储介质及设备
CN115576500B (zh) * 2022-12-06 2023-02-28 苏州浪潮智能科技有限公司 一种raid阵列的扩容方法及相关装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102184080A (zh) * 2011-04-29 2011-09-14 华中科技大学 一种基于固化条带的raid系统扩容后的数据读写方法
CN102200892A (zh) * 2011-04-29 2011-09-28 华中科技大学 一种基于动态raid系统的扩容方法
CN108255413A (zh) * 2016-12-29 2018-07-06 华为技术有限公司 一种存储系统扩容后数据迁移的方法、存储系统
CN112130768A (zh) * 2020-09-18 2020-12-25 苏州浪潮智能科技有限公司 磁盘阵列在线扩容方法、装置及计算机可读存储介质
CN112817540A (zh) * 2021-02-23 2021-05-18 上海交通大学 一种基于磁盘阵列扩展的数据块重分布方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3702231B2 (ja) * 2002-01-31 2005-10-05 株式会社東芝 ディスクアレイ装置及び同装置における動的記憶容量拡張方法
CN101122890A (zh) * 2006-08-08 2008-02-13 英业达股份有限公司 独立磁盘的冗余阵列的在线扩容过程的中断与恢复方法
CN105353991A (zh) * 2015-12-04 2016-02-24 浪潮(北京)电子信息产业有限公司 一种磁盘阵列重建优化方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102184080A (zh) * 2011-04-29 2011-09-14 华中科技大学 一种基于固化条带的raid系统扩容后的数据读写方法
CN102200892A (zh) * 2011-04-29 2011-09-28 华中科技大学 一种基于动态raid系统的扩容方法
CN108255413A (zh) * 2016-12-29 2018-07-06 华为技术有限公司 一种存储系统扩容后数据迁移的方法、存储系统
CN112130768A (zh) * 2020-09-18 2020-12-25 苏州浪潮智能科技有限公司 磁盘阵列在线扩容方法、装置及计算机可读存储介质
CN112817540A (zh) * 2021-02-23 2021-05-18 上海交通大学 一种基于磁盘阵列扩展的数据块重分布方法及装置

Also Published As

Publication number Publication date
CN113296702A (zh) 2021-08-24

Similar Documents

Publication Publication Date Title
CN113296702B (zh) 一种磁盘阵列扩容方法、装置、设备及存储介质
CN102023809B (zh) 存储系统、从存储系统读取数据的方法及写入数据的方法
US20220107729A1 (en) Reorganizing disks and raid members to split a disk array during capacity expansion
US7831768B2 (en) Method and apparatus for writing data to a disk array
CN103049222B (zh) 一种raid5的写io优化处理方法
US6532548B1 (en) System and method for handling temporary errors on a redundant array of independent tapes (RAIT)
CN100561416C (zh) 再平衡条带盘数据的方法和系统
US9128846B2 (en) Disk array device, control device and data write method
CN102667738B (zh) 具有多个raid组分条的内存系统及其方法
CN107807794A (zh) 一种数据存储方法和装置
JP2006171957A (ja) ストレージ制御装置および方法
US20040024963A1 (en) Method and system for striping data to accommodate integrity metadata
CN102200892B (zh) 一种基于动态raid系统的扩容方法
US8201001B2 (en) Method for optimizing performance and power usage in an archival storage system by utilizing massive array of independent disks (MAID) techniques and controlled replication under scalable hashing (CRUSH)
JP2006120120A (ja) 複数のデータ・フォーマットを割り振るための一般記憶コンテナ
CN101587425A (zh) 一种增加独立磁盘冗余阵列冗余性的方法及装置
CN112799604B (zh) 一种基于N-Code的RAID6磁盘阵列扩容方法及数据填充方法
CN110297601B (zh) 固态硬盘阵列构建方法、电子设备及存储介质
CN111782439B (zh) 一种基于水平编码的双盘循环校验方法
CN104182176A (zh) 一种独立磁盘冗余阵列raid5的快速扩容方法
US7653829B2 (en) Method of data placement and control in block-divided distributed parity disk array
CN101997919B (zh) 一种存储资源的管理方法及管理装置
US20180314609A1 (en) Apparatus and method to suppress data accesses caused by change in distributed data layout of storages
US11287976B2 (en) Method, electronic device and computer readable storage medium for storage management
US20080104445A1 (en) Raid array

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240705

Address after: 2324, Building 1, Aosheng Building, No. 1166 Xinluo Street, High tech Zone, Jinan City, Shandong Province, 250000

Patentee after: Inspur Computer Technology Co.,Ltd.

Country or region after: China

Address before: 35th floor, S01 building, Inspur science and Technology Park, 1036 Inspur Road, Jinan area, Jinan pilot Free Trade Zone, Jinan City, Shandong Province

Patentee before: Shandong Yunhai guochuang cloud computing equipment industry innovation center Co.,Ltd.

Country or region before: China