CN115543696B - 一种磁盘阵列重构任务加速方法、系统、存储介质及设备 - Google Patents

一种磁盘阵列重构任务加速方法、系统、存储介质及设备 Download PDF

Info

Publication number
CN115543696B
CN115543696B CN202211513353.2A CN202211513353A CN115543696B CN 115543696 B CN115543696 B CN 115543696B CN 202211513353 A CN202211513353 A CN 202211513353A CN 115543696 B CN115543696 B CN 115543696B
Authority
CN
China
Prior art keywords
window
disk array
data
reconstructed
processed
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
CN202211513353.2A
Other languages
English (en)
Other versions
CN115543696A (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.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology 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 Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202211513353.2A priority Critical patent/CN115543696B/zh
Publication of CN115543696A publication Critical patent/CN115543696A/zh
Application granted granted Critical
Publication of CN115543696B publication Critical patent/CN115543696B/zh
Priority to PCT/CN2023/096621 priority patent/WO2024113726A1/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1489Generic software techniques for error detection or fault masking through recovery 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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种磁盘阵列重构任务加速方法、系统、存储介质及设备,涉及磁盘阵列技术领域,方法包括:响应于接收到由系统发送的磁盘阵列中待重构的多个条带的地址参数,基于地址参数从磁盘阵列划分出多个待处理部分,并分别分配至集群中多个节点;由每个节点从受保护内存中申请对应的窗口数据及指针数据,并将窗口数据作为预定大小的窗口,并根据地址参数确定窗口中的待重构条带,并对指针数据指向的待重构条带执行重构任务;响应于窗口的当前重构任务执行完成,移动窗口以继续执行下一重构任务,直到每个节点的待处理部分处理完毕,确定磁盘阵列重构完成。本发明大大提升了磁盘阵列的重构效率,并且有效节省了受保护内存资源。

Description

一种磁盘阵列重构任务加速方法、系统、存储介质及设备
技术领域
本发明涉及磁盘阵列技术领域,尤其涉及一种磁盘阵列重构任务加速方法、系统、存储介质及设备。
背景技术
在云计算数据中心,存储数据的存储性能和数据可靠性是用户关心的核心问题。数据需要安全可靠地存储在数据中心,因此单台服务器上存储的数据也日益增多,当单个物理磁盘在容量和安全性上不足以支撑存储系统业务时,就需要将多个磁盘以某种特定方式组合起来,对外作为一个可见的RAID(Redundant Array of Independent Disks,独立冗余磁盘阵列)阵列来使用,才可满足实际需要,由此诞生了RAID技术。RAID技术是存储领域中的重要技术,存储系统的RAID阵列会按照条带(stripe)进行划分,对条带再按照各磁盘分块(strip)划分。
目前业界为了提高存储系统的数据可靠性和存储性能,已利用多控节点组成集群,主控节点负责处理主机的I/O(Input/Output,数据输入/输出)请求,辅助节点负责存储系统的后台任务(例如,RAID阵列重构、巡检和重构任务等),以此来提高存储系统的存储性能。当存储系统RAID阵列中出现故障盘时,需要集群中的双控节点启动重构任务来将故障盘的数据恢复到热备盘,目前业界技术在重构任务中对条带的管理采用位图这种元数据组织方式,位图元数据需要存放在受保护内存中,具体的,常存放于BBU(Battery BackupUnit,电池备电单元)保护的harden内存(用于存放重要的数据,以防止意外掉电后数据丢失)中。这种元数据组织方式在大型大容量RAID阵列中存在不足,位图元数据组织方式会占用大量资源空间,而harden内存资源又非常有限,因此不仅会导致大容量RAID阵列的重构任务会消耗很长时间,而且会大量占用有限的harden内存资源。
图1示出了根据现有技术提供的RAID5阵列的结构示意图。如图1所示,以由3-16块盘组成的RAID5阵列为例,磁盘1-5是成员盘,磁盘0是热备盘,热备盘用来保护阵列的数据,重构任务将RAID阵列中故障盘的数据恢复到热备盘。阵列中涉及到的常见概念是条带和分块,条带由分块组成。每一行为一个条带,假如每个成员盘为170G容量则阵列有1TB容量。分块大小为256KB,则条带大小为1536KB,因此阵列中有1TB/1536KB的条带数即699051个条带,根据一个条带对应一位则需要699051位,换算为(699051/8)个87382个字节,由此得出需要87382个字节的内存空间来存放位图元数据,87382个字节占用大量内存资源空间,导致重构过程变慢,影响用户业务,致使用户体验下降。同时目前业界没有很好的利用集群中的双控节点同时处理重构任务,即使没有前台I/O任务主控节点也没有执行重构任务,而是只由辅助节点执行重构任务。
因此,位图元数据组织方式消耗大量的受保护内存(如harden内存)资源,只有辅助节点执行重构任务导致重构效率低下,不仅导致重构任务耗时,而且降低用户体验,同时在处理前台紧急I/O任务情况下存在条带不一致的风险。
发明内容
有鉴于此,本发明的目的在于提出一种磁盘阵列重构任务加速方法、系统、存储介质及设备,用以解决现有技术中磁盘阵列重构时采用位图元数据组织方式会消耗大量的受保护内存资源,并且只有辅助节点执行重构任务会导致重构效率低下的问题。
基于上述目的,本发明提供了一种磁盘阵列重构任务加速方法,包括以下步骤:
响应于接收到由系统发送的磁盘阵列中待重构的多个条带的地址参数,基于地址参数从磁盘阵列划分出多个待处理部分,并分别分配至集群中多个节点;
由每个节点从受保护内存中申请对应的窗口数据及指针数据,并将窗口数据作为预定大小的窗口,并根据地址参数确定窗口中的待重构条带,并对指针数据指向的待重构条带执行重构任务;
响应于窗口的当前重构任务执行完成,移动窗口以继续执行下一重构任务,直到每个节点的待处理部分处理完毕,确定磁盘阵列重构完成。
在一些实施例中,将窗口数据作为预定大小的窗口包括:
将窗口数据作为预定大小的窗口以处理对应数量的条带。
在一些实施例中,方法还包括:
窗口数据的每个比特位对应一个条带。
在一些实施例中,根据地址参数确定窗口中的待重构条带包括:
根据地址参数确定窗口中的待重构条带,并将对应于待重构条带的比特位置为第一二进制符号。
在一些实施例中,方法还包括:
通过指针数据依次指向窗口数据的每个比特位。
在一些实施例中,对指针数据指向的待重构条带执行重构任务包括:
响应于指针数据指向的比特位为第一二进制符号,对指向的比特位所对应的条带执行重构任务。
在一些实施例中,方法还包括:
将窗口数据中对应于其他条带的比特位置为第二二进制符号。
在一些实施例中,方法还包括:
响应于指针数据指向的比特位为第二二进制符号,跳过指向的比特位。
在一些实施例中,响应于窗口的当前重构任务执行完成,移动窗口以继续执行下一重构任务包括:
响应于窗口的当前重构任务执行完成,移动窗口并将窗口数据清零,以继续执行下一重构任务。
在一些实施例中,方法还包括:
响应于窗口的当前重构任务执行完成,将指针数据清零,以指向移动后的窗口。
在一些实施例中,基于地址参数从磁盘阵列划分出多个待处理部分,并分别分配至集群中多个节点包括:
基于地址参数从磁盘阵列划分出两个待处理部分,并分别分配至集群中主控节点和辅助节点。
在一些实施例中,基于地址参数从磁盘阵列划分出多个待处理部分,并分别分配至集群中多个节点还包括:
响应于基于地址参数确定磁盘阵列中部分条带待重构,基于部分条带将磁盘阵列划分出多个待处理部分,并分别分配至集群中多个节点。
在一些实施例中,基于地址参数从磁盘阵列划分出多个待处理部分,并分别分配至集群中多个节点还包括:
响应于基于地址参数确定磁盘阵列中所有条带均待重构,将磁盘阵列划分为多个待处理部分,并分别分配至集群中多个节点。
在一些实施例中,方法还包括:
响应于磁盘阵列中至少一个成员盘损坏,确定磁盘阵列中所有条带均待重构。
在一些实施例中,窗口数据与指针数据的比特位数存在以下关系:
2m≥ n
其中,m表示指针数据的比特位数,n表示窗口数据的比特位数。
在一些实施例中,窗口数据和指针数据均为无符号四字节数据。
在一些实施例中,方法还包括:
将地址参数保存至受保护内存中。
本发明的另一方面,还提供了一种磁盘阵列重构任务加速系统,包括:
待处理模块,配置用于响应于接收到由系统发送的磁盘阵列中待重构的多个条带的地址参数,基于地址参数从磁盘阵列划分出多个待处理部分,并分别分配至集群中多个节点;
重构任务执行模块,配置用于由每个节点从受保护内存中申请对应的窗口数据及指针数据,并将窗口数据作为预定大小的窗口,并根据地址参数确定窗口中的待重构条带,并对指针数据指向的待重构条带执行重构任务;以及
窗口移动模块,配置用于响应于窗口的当前重构任务执行完成,移动窗口以继续执行下一重构任务,直到每个节点的待处理部分处理完毕,确定磁盘阵列重构完成。
本发明的又一方面,还提供了一种计算机可读存储介质,存储有计算机程序指令,该计算机程序指令被处理器执行时实现上述方法。
本发明的再一方面,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该计算机程序被处理器执行时执行上述方法。
本发明至少具有以下有益技术效果:
本发明的磁盘阵列重构任务加速方法,通过将待处理部分分配到集群中多个节点,可以使多个节点同时执行重构任务,大大提升了磁盘阵列的重构效率;通过从受保护内存中申请窗口数据作为可移动的窗口,并结合受保护内存中申请的指针数据指向待重构条带来执行重构任务,从而解决了现有技术中对磁盘阵列直接采用位图元数据组织方式管理重构任务时占用受保护内存资源太大的问题,有效节省了受保护内存资源;并且在不增加硬件的条件下能够保证数据安全,有效减弱前台紧急I/O任务情况下存在的条带不一致的风险问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为根据现有技术提供的RAID5阵列的结构示意图;
图2为根据本发明实施例提供的磁盘阵列重构任务加速方法的示意图;
图3为根据本发明实施例提供的磁盘阵列重构任务加速系统的示意图;
图4为根据本发明实施例提供的实现磁盘阵列重构任务加速方法的计算机可读存储介质的示意图;
图5为根据本发明实施例提供的执行磁盘阵列重构任务加速方法的计算机设备的硬件结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称的非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备固有的其他步骤或单元。
基于上述目的,本发明实施例的第一个方面,提出了一种磁盘阵列重构任务加速方法的实施例。图2示出的是本发明提供的磁盘阵列重构任务加速方法的实施例的示意图。如图2所示,本发明实施例包括如下步骤:
步骤S10、响应于接收到由系统发送的磁盘阵列中待重构的多个条带的地址参数,基于地址参数从磁盘阵列划分出多个待处理部分,并分别分配至集群中多个节点;
步骤S20、由每个节点从受保护内存中申请对应的窗口数据及指针数据,并将窗口数据作为预定大小的窗口,并根据地址参数确定窗口中的待重构条带,并对指针数据指向的待重构条带执行重构任务;
步骤S30、响应于窗口的当前重构任务执行完成,移动窗口以继续执行下一重构任务,直到每个节点的待处理部分处理完毕,确定磁盘阵列重构完成。
本发明实施例的磁盘阵列重构任务加速方法,通过将待处理部分分配到集群中多个节点,可以使多个节点同时执行重构任务,大大提升了磁盘阵列的重构效率;通过从受保护内存中申请窗口数据作为可移动的窗口,并结合受保护内存中申请的指针数据指向待重构条带来执行重构任务,从而解决了现有技术中对磁盘阵列直接采用位图元数据组织方式管理重构任务时占用受保护内存资源太大的问题,有效节省了受保护内存资源;并且在不增加硬件的条件下能够保证数据安全,有效减弱前台紧急I/O任务情况下存在的条带不一致的风险问题。
在一些实施例中,将窗口数据作为预定大小的窗口包括:将窗口数据作为预定大小的窗口以处理对应数量的条带。
在一些实施例中,方法还包括:窗口数据的每个比特位对应一个条带。
在另一实施例中,一个条带也可以对应多个比特位,但为了最大程度节省受保护内存(指电池备电单元BBU保护的一块内存,用来存放重要数据,存储系统掉电后受保护内存中的数据会由BBU持续供电)资源,设置一个条带对应窗口数据的一个比特位。
在一些实施例中,根据地址参数确定窗口中的待重构条带包括:根据地址参数确定窗口中的待重构条带,并将对应于待重构条带的比特位置为第一二进制符号。
本实施例中,窗口每次框定待处理的条带后,都需根据地址参数将框定的条带中待重构条带置为0(即第一二进制符号)。若待处理的条带均为待重构条带,则将窗口数据的比特位全部置为0。
在一些实施例中,方法还包括:通过指针数据依次指向窗口数据的每个比特位。
在一些实施例中,窗口数据与指针数据的比特位数存在以下关系:
2m≥ n
其中,m表示指针数据的比特位数,n表示窗口数据的比特位数。
在一些实施例中,窗口数据和指针数据均为。
上述实施例中,若窗口数据为无符号四字节数据(即32位),则指针数据至少需要是5个比特位,才能通过每次移动一位来依次指向窗口数据的所有比特位。
在一些实施例中,对指针数据指向的待重构条带执行重构任务包括:响应于指针数据指向的比特位为第一二进制符号,对指向的比特位所对应的条带执行重构任务。
在一些实施例中,方法还包括:将窗口数据中对应于其他条带的比特位置为第二二进制符号。
本实施例中,将窗口数据中不需要重构的条带所对应的窗口数据的比特位置为1(即第二二进制符号)。
在一些实施例中,方法还包括:响应于指针数据指向的比特位为第二二进制符号,跳过指向的比特位。
在一些实施例中,响应于窗口的当前重构任务执行完成,移动窗口以继续执行下一重构任务包括:响应于窗口的当前重构任务执行完成,移动窗口并将窗口数据清零,以继续执行下一重构任务。
在一些实施例中,方法还包括:响应于窗口的当前重构任务执行完成,将指针数据清零,以指向移动后的窗口。
本实施例中,若2m = n,则在窗口的当前重构任务执行完成后,指针数据也需要清零。
在一些实施例中,基于地址参数从磁盘阵列划分出多个待处理部分,并分别分配至集群中多个节点包括:基于地址参数从磁盘阵列划分出两个待处理部分,并分别分配至集群中主控节点和辅助节点。
在一些实施例中,基于地址参数从磁盘阵列划分出多个待处理部分,并分别分配至集群中多个节点还包括:响应于基于地址参数确定磁盘阵列中部分条带待重构,基于部分条带将磁盘阵列划分出多个待处理部分,并分别分配至集群中多个节点。
在一些实施例中,基于地址参数从磁盘阵列划分出多个待处理部分,并分别分配至集群中多个节点还包括:响应于基于地址参数确定磁盘阵列中所有条带均待重构,将磁盘阵列划分为多个待处理部分,并分别分配至集群中多个节点。
在一些实施例中,方法还包括:响应于磁盘阵列中至少一个成员盘损坏,确定磁盘阵列中所有条带均待重构。
在一些实施例中,方法还包括:将地址参数保存至受保护内存中。
以下为本发明的磁盘阵列重构任务加速方法的具体实施例:
图1示出了根据现有技术提供的RAID5阵列的结构示意图。以图1示出的RAID5阵列的4个条带为例,将条带stripe 0-1的重构任务划分给主控节点,将条带stripe 2-3的重构任务划分给辅助节点。如果阵列中有一块成员盘坏掉了,那么需要重构RAID(RedundantArray of Independent Disks,独立冗余磁盘阵列)阵列的所有条带,直到达到该阵列的条带末尾。
本实施例中,对于每个节点,都从受保护内存(例如harden内存,指电池备电单元BBU保护的一块内存,用来存放重要数据,存储系统掉电后harden内存中的数据会由BBU持续供电,所以系统掉电后存放在harden内存中的数据不会丢失)中取两个无符号4字节数据来管理条带,其中一个无符号4字节数据的32个bit位(即窗口数据)形成窗口,用来记录执行重构任务的条带,另一个无符号4字节数据是Window_ptr窗口指针(即指针数据)。窗口数据是管理窗口内所有条带的位图,窗口指针指向需要执行重构任务的条带。RK_META_ITER_WINDOW是宏定义的窗口大小,默认为32,即一个窗口管理32个条带。
从RAID阵列中首个条带地址开始,一次重构宏定义窗口内的所有条带,当该窗口的所有条带都重构完毕后,移动该窗口,然后继续对移动后窗口内的所有条带执行重构任务,以此循环,直至RAID阵列重构任务执行完毕。
以RAID阵列中所有条带都需执行重构任务为例,具体步骤如下:
第一步:判断RAID阵列中是否出现故障盘;
第二步:如果出现故障盘,则将RAID阵列中的条带均匀划分到集群中的两个控制节点上,前一部分条带由主控节点执行重构任务,后一部分条带由辅助节点执行重构任务;
第三步:从BBU(Battery Backup Unit,电池备电单元)保护的harden内存中申请四个无符号4字节数据,其中两个无符号4字节数据由主控节点使用,另外两个无符号4字节数据由辅助节点使用。并将均匀划分后前一部分条带地址和后一部分条带地址一并保存在harden内存中。
第四步:主控节点从RAID阵列前一部分条带首地址开始处设置第一个窗口,同理辅助节点从RAID阵列后一部分条带首地址开始处设置第二个窗口。定义执行重构任务的两个窗口均为RK_META_ITER_WINDOW宏定义窗,其中RK_META_ITER_WINDOW为32。
第五步:输入RAID阵列的前一部分条带首地址和后一部分条带首地址,并根据RAID阵列容量求解RAID阵列的前一部分条带数和后一部分条带数。
第六步:主控节点设置其维护的两个无符号4字节数据中的Window_ptr窗口指针指向窗口第一位(即RAID阵列前一部分条带首地址),另一个无符号4字节数据形成窗口,并判断Window_ptr窗口指针指向的bit位是否为1(即第二二进制符号),为1则跳过该bit位然后将水位指针移动到下一个bit位,为0(即第一二进制符号)则执行该bit位标识的条带的重构任务。同理辅助节点和第六步中主控节点执行同样的流程,只是辅助节点设置其维护的两个无符号4字节数据中的Window_ptr窗口指针指向窗口第一位(即RAID阵列后一部分条带首地址);
第七步:主控节点的Window_ptr窗口指针每移动一位,都需判断Window_ptr窗口指针移动量是否等于滑动窗口RK_META_ITER_WINDOW值(即32),等于则对窗口进行一个32位的移动,同时将Window_ptr窗口指针移动到窗口头部,同理辅助节点维护的Window_ptr窗口指针和逻辑流程和主控节点一样。
第八步:根据第五步求得的前一部分条带数、后一部分条带数和窗口移动的次数以及两个节点各自维护的Window_ptr窗口指针的偏移,判断主控节点和辅助节点的重构任务是否都已执行完毕。
第九步:如果主控节点和辅助节点都已执行完毕重构任务,则结束。如果没有都执行完毕,则跳转到第六步继续执行。
由此,使用本实施例设计的算法和逻辑控制使双控节点只占用harden内存资源中四个无符号4字节数据,大大减小了内存占用情况,起到加速重构速率的作用。而且本实施例提出将重构任务中的条带均匀划分到集群中的两个节点上,这样两个节点可以同时执行重构任务,因此可以提升整个存储系统的存储性能。
以RAID阵列中前126个条带需要执行重构任务为例,具体步骤如下:
第一步:系统监控(system monitor)判断RAID阵列中需要重构恢复数据的条带数,假如是需要重构恢复126个条带(即stripe0到stripe125),则系统监控将该参数传输至本实施例模块。
第二步:将stripe0到stripe63这64个条带分配到主控节点,stripe64到stripe125这62个条带分配到辅助节点。
第三步:从电池备电单元保护的harden内存中申请四个无符号4字节数据,其中两个无符号4字节数据由主控节点使用,另外两个无符号4字节数据由辅助节点使用。
第四步:主控节点从RAID阵列stripe0到stripe63这64个条带首地址开始处设置第一个窗口,同理辅助节点从stripe64到stripe125这62个条带首地址开始处设置第二个窗口。定义执行重构任务的两个窗口均为RK_META_ITER_WINDOW宏定义窗,其中RK_META_ITER_WINDOW为32。
第五步:主控节点设置其维护的两个无符号4字节数据中的Window_ptr窗口指针指向窗口第一位(即RAID阵列前一部分条带首地址),另一个无符号4字节数据形成窗口,并判断Window_ptr窗口指针指向的bit位是否为1,为1则跳过该bit位然后将水位指针移动到下一个bit位,为0则执行该bit位标识的条带的重构任务。同理辅助节点和主控节点执行同样的流程,只是辅助节点设置其维护的两个无符号4字节数据中的Window_ptr窗口指针指向窗口第一位(即RAID阵列后一部分条带首地址);
第六步:主控节点的Window_ptr窗口指针每移动一位,都需判断Window_ptr窗口指针移动量是否等于滑动窗口RK_META_ITER_WINDOW值(即32),等于则对窗口进行一个32位的移动,同时将Window_ptr窗口指针移动到窗口头部,同理辅助节点维护的Window_ptr窗口指针和逻辑流程和主控节点一样。
第七步:根据系统监控给出的主控节点恢复重构stripe0到stripe63这64个条带,可得主控节点的窗口只需要移动一次并将移动后窗口内的所有条带重构完毕,辅助节点也只需移动一次并将移动后窗口内的前30个条带重构完毕,之后判断主控节点和辅助节点的重构任务是否都已执行完毕。
第九步:如果主控节点和辅助节点都已执行完毕重构任务,则结束。
本发明实施例的第二个方面,还提供了一种磁盘阵列重构任务加速系统。图3示出的是本发明提供的磁盘阵列重构任务加速系统的实施例的示意图。如图3所示,一种磁盘阵列重构任务加速系统包括:待处理模块10,配置用于响应于接收到由系统发送的磁盘阵列中待重构的多个条带的地址参数,基于地址参数从磁盘阵列划分出多个待处理部分,并分别分配至集群中多个节点;重构任务执行模块20,配置用于由每个节点从受保护内存中申请对应的窗口数据及指针数据,并将窗口数据作为预定大小的窗口,并根据地址参数确定窗口中的待重构条带,并对指针数据指向的待重构条带执行重构任务;以及窗口移动模块30,配置用于响应于窗口的当前重构任务执行完成,移动窗口以继续执行下一重构任务,直到每个节点的待处理部分处理完毕,确定磁盘阵列重构完成。
本发明实施例的第三个方面,还提供了一种计算机可读存储介质,图4示出了根据本发明实施例提供的实现磁盘阵列重构任务加速方法的计算机可读存储介质的示意图。如图4所示,计算机可读存储介质3存储有计算机程序指令31。该计算机程序指令31被处理器执行时实现上述任意一项实施例的方法。
应当理解,在相互不冲突的情况下,以上针对根据本发明的磁盘阵列重构任务加速方法阐述的所有实施方式、特征和优势同样地适用于根据本发明的磁盘阵列重构任务加速系统和存储介质。
本发明实施例的第四个方面,还提供了一种计算机设备,包括如图5所示的存储器402和处理器401,该存储器402中存储有计算机程序,该计算机程序被该处理器401执行时实现上述任意一项实施例的方法。
如图5所示,为本发明提供的执行磁盘阵列重构任务加速方法的计算机设备的一个实施例的硬件结构示意图。以如图5所示的计算机设备为例,在该计算机设备中包括一个处理器401以及一个存储器402,并还可以包括:输入装置403和输出装置404。处理器401、存储器402、输入装置403和输出装置404可以通过总线或者其他方式连接,图5中以通过总线连接为例。输入装置403可接收输入的数字或字符信息,以及产生与磁盘阵列重构任务加速系统的用户设置以及功能控制有关的键信号输入。输出装置404可包括显示屏等显示设备。
存储器402作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的磁盘阵列重构任务加速方法对应的程序指令/模块。存储器402可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储磁盘阵列重构任务加速方法的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器402可选包括相对于处理器401远程设置的存储器,这些远程存储器可以通过网络连接至本地模块。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器401通过运行存储在存储器402中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的磁盘阵列重构任务加速方法。
最后需要说明的是,本文的计算机可读存储介质(例如,存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。作为例子而非限制性的,非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦写可编程ROM(EEPROM)或快闪存储器。易失性存储器可以包括随机存取存储器(RAM),该RAM可以充当外部高速缓存存储器。作为例子而非限制性的,RAM 可以以多种形式获得,比如同步RAM(DRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据速率SDRAM(DDRSDRAM)、增强SDRAM(ESDRAM)、同步链路DRAM(SLDRAM)、以及直接Rambus RAM(DRRAM)。所公开的方面的存储设备意在包括但不限于这些和其它合适类型的存储器。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
结合这里的公开所描述的各种示例性逻辑块、模块和电路可以利用被设计成用于执行这里功能的下列部件来实现或执行:通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合。通用处理器可以是微处理器,但是可替换地,处理器可以是任何传统处理器、控制器、微控制器或状态机。处理器也可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器结合DSP和/或任何其它这种配置。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

Claims (19)

1.一种磁盘阵列重构任务加速方法,其特征在于,包括以下步骤:
响应于接收到由系统发送的磁盘阵列中待重构的多个条带的地址参数,基于所述地址参数从所述磁盘阵列划分出多个待处理部分,并分别分配至集群中多个节点,其进一步包括:
响应于基于所述地址参数确定所述磁盘阵列中所有条带均待重构,将所述磁盘阵列划分为多个待处理部分,并分别分配至集群中多个节点;
由每个节点从受保护内存中申请对应的窗口数据及指针数据,并将所述窗口数据作为预定大小的窗口,并根据所述地址参数确定所述窗口中的待重构条带,并对所述指针数据指向的所述待重构条带执行重构任务;
响应于所述窗口的当前重构任务执行完成,移动所述窗口以继续执行下一重构任务,直到所述每个节点的待处理部分处理完毕,确定所述磁盘阵列重构完成。
2.根据权利要求1所述的方法,其特征在于,将所述窗口数据作为预定大小的窗口包括:
将所述窗口数据作为预定大小的窗口以处理对应数量的条带。
3.根据权利要求2所述的方法,其特征在于,还包括:
所述窗口数据的每个比特位对应一个条带。
4.根据权利要求3所述的方法,其特征在于,根据所述地址参数确定所述窗口中的待重构条带包括:
根据所述地址参数确定所述窗口中的待重构条带,并将对应于所述待重构条带的比特位置为第一二进制符号。
5.根据权利要求4所述的方法,其特征在于,还包括:
通过所述指针数据依次指向所述窗口数据的每个比特位。
6.根据权利要求5所述的方法,其特征在于,对所述指针数据指向的所述待重构条带执行重构任务包括:
响应于所述指针数据指向的比特位为所述第一二进制符号,对所述指向的比特位所对应的条带执行重构任务。
7.根据权利要求5所述的方法,其特征在于,还包括:
将所述窗口数据中对应于其他条带的比特位置为第二二进制符号。
8.根据权利要求7所述的方法,其特征在于,还包括:
响应于所述指针数据指向的比特位为所述第二二进制符号,跳过所述指向的比特位。
9.根据权利要求1所述的方法,其特征在于,响应于所述窗口的当前重构任务执行完成,移动所述窗口以继续执行下一重构任务包括:
响应于所述窗口的当前重构任务执行完成,移动所述窗口并将所述窗口数据清零,以继续执行下一重构任务。
10.根据权利要求1所述的方法,其特征在于,还包括:
响应于所述窗口的当前重构任务执行完成,将所述指针数据清零,以指向移动后的窗口。
11.根据权利要求1所述的方法,其特征在于,基于所述地址参数从所述磁盘阵列划分出多个待处理部分,并分别分配至集群中多个节点包括:
基于所述地址参数从所述磁盘阵列划分出两个待处理部分,并分别分配至集群中主控节点和辅助节点。
12.根据权利要求1所述的方法,其特征在于,基于所述地址参数从所述磁盘阵列划分出多个待处理部分,并分别分配至集群中多个节点还包括:
响应于基于所述地址参数确定所述磁盘阵列中部分条带待重构,基于所述部分条带将所述磁盘阵列划分出多个待处理部分,并分别分配至集群中多个节点。
13.根据权利要求1所述的方法,其特征在于,还包括:
响应于所述磁盘阵列中至少一个成员盘损坏,确定所述磁盘阵列中所有条带均待重构。
14. 根据权利要求1所述的方法,其特征在于,所述窗口数据与所述指针数据的比特位数存在以下关系:
2m ≥ n
其中,m表示所述指针数据的比特位数,n表示所述窗口数据的比特位数。
15.根据权利要求1所述的方法,其特征在于,所述窗口数据和所述指针数据均为无符号四字节数据。
16.根据权利要求1所述的方法,其特征在于,还包括:
将所述地址参数保存至所述受保护内存中。
17.一种磁盘阵列重构任务加速系统,其特征在于,包括:
待处理模块,配置用于响应于接收到由系统发送的磁盘阵列中待重构的多个条带的地址参数,基于所述地址参数从所述磁盘阵列划分出多个待处理部分,并分别分配至集群中多个节点,其进一步包括:响应于基于所述地址参数确定所述磁盘阵列中所有条带均待重构,将所述磁盘阵列划分为多个待处理部分,并分别分配至集群中多个节点;
重构任务执行模块,配置用于由每个节点从受保护内存中申请对应的窗口数据及指针数据,并将所述窗口数据作为预定大小的窗口,并根据所述地址参数确定所述窗口中的待重构条带,并对所述指针数据指向的所述待重构条带执行重构任务;以及
窗口移动模块,配置用于响应于所述窗口的当前重构任务执行完成,移动所述窗口以继续执行下一重构任务,直到所述每个节点的待处理部分处理完毕,确定所述磁盘阵列重构完成。
18.一种计算机可读存储介质,其特征在于,存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如权利要求1-16任意一项所述的方法。
19.一种计算机设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时执行如权利要求1-16任意一项所述的方法。
CN202211513353.2A 2022-11-30 2022-11-30 一种磁盘阵列重构任务加速方法、系统、存储介质及设备 Active CN115543696B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202211513353.2A CN115543696B (zh) 2022-11-30 2022-11-30 一种磁盘阵列重构任务加速方法、系统、存储介质及设备
PCT/CN2023/096621 WO2024113726A1 (zh) 2022-11-30 2023-05-26 一种磁盘阵列重构任务加速方法、系统、存储介质及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211513353.2A CN115543696B (zh) 2022-11-30 2022-11-30 一种磁盘阵列重构任务加速方法、系统、存储介质及设备

Publications (2)

Publication Number Publication Date
CN115543696A CN115543696A (zh) 2022-12-30
CN115543696B true CN115543696B (zh) 2023-03-17

Family

ID=84722584

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211513353.2A Active CN115543696B (zh) 2022-11-30 2022-11-30 一种磁盘阵列重构任务加速方法、系统、存储介质及设备

Country Status (2)

Country Link
CN (1) CN115543696B (zh)
WO (1) WO2024113726A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115543696B (zh) * 2022-11-30 2023-03-17 苏州浪潮智能科技有限公司 一种磁盘阵列重构任务加速方法、系统、存储介质及设备
CN115878047B (zh) * 2023-01-19 2023-06-16 苏州浪潮智能科技有限公司 一种数据一致性校验方法、装置、设备及存储介质
CN115904260B (zh) * 2023-03-08 2023-05-23 苏州浪潮智能科技有限公司 磁盘阵列卡的启动方法、装置、存储介质及电子设备
CN116069266B (zh) * 2023-04-06 2023-06-20 苏州浪潮智能科技有限公司 磁盘漫游控制方法、装置、设备及计算机可读存储介质
CN117149096B (zh) * 2023-10-31 2024-02-06 苏州元脑智能科技有限公司 磁盘重构方法、装置、设备及存储介质
CN117251119B (zh) * 2023-11-16 2024-02-13 苏州元脑智能科技有限公司 位图处理方法、装置、计算机设备、控制系统及存储介质
CN118409718A (zh) * 2024-07-03 2024-07-30 山东云海国创云计算装备产业创新中心有限公司 一种数据处理方法、计算机程序产品、设备及计算机介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113741811A (zh) * 2021-07-29 2021-12-03 苏州浪潮智能科技有限公司 一种存储系统的磁盘阵列的重构方法、系统、设备及介质
CN114090345A (zh) * 2022-01-21 2022-02-25 苏州浪潮智能科技有限公司 一种磁盘阵列数据恢复方法、系统、存储介质及设备

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101923496A (zh) * 2010-07-30 2010-12-22 华中科技大学 一种raid的数据并行重构方法
CN102184129B (zh) * 2011-04-27 2014-03-12 杭州华三通信技术有限公司 磁盘阵列的容错方法和装置
WO2018078741A1 (ja) * 2016-10-26 2018-05-03 株式会社日立製作所 ストレージ装置
CN108874314A (zh) * 2018-05-31 2018-11-23 郑州云海信息技术有限公司 一种独立冗余磁盘阵列的重构方法及装置
CN110187830A (zh) * 2019-04-22 2019-08-30 中国科学院计算技术研究所 一种加速磁盘阵列重建的方法及系统
CN113126887B (zh) * 2020-01-15 2024-09-06 伊姆西Ip控股有限责任公司 用于重建盘阵列的方法、电子设备和计算机程序产品
CN115237330A (zh) * 2021-04-22 2022-10-25 伊姆西Ip控股有限责任公司 用于raid重建的方法、电子设备和程序产品
CN115291803A (zh) * 2022-08-09 2022-11-04 苏州浪潮智能科技有限公司 磁盘阵列重构方法、装置和计算机设备和存储介质
CN115129265B (zh) * 2022-09-01 2023-01-24 苏州浪潮智能科技有限公司 独立冗余磁盘阵列分块缓存方法、装置、设备及可读介质
CN115543696B (zh) * 2022-11-30 2023-03-17 苏州浪潮智能科技有限公司 一种磁盘阵列重构任务加速方法、系统、存储介质及设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113741811A (zh) * 2021-07-29 2021-12-03 苏州浪潮智能科技有限公司 一种存储系统的磁盘阵列的重构方法、系统、设备及介质
CN114090345A (zh) * 2022-01-21 2022-02-25 苏州浪潮智能科技有限公司 一种磁盘阵列数据恢复方法、系统、存储介质及设备

Also Published As

Publication number Publication date
CN115543696A (zh) 2022-12-30
WO2024113726A1 (zh) 2024-06-06

Similar Documents

Publication Publication Date Title
CN115543696B (zh) 一种磁盘阵列重构任务加速方法、系统、存储介质及设备
CN107943421B (zh) 一种基于分布式存储系统的分区划分方法及装置
CN107844268B (zh) 一种数据分发方法、数据存储方法、相关装置以及系统
US10209908B2 (en) Optimization of in-memory data grid placement
CN109582213B (zh) 数据重构方法及装置、数据存储系统
CN110018783B (zh) 一种数据存储方法、装置及系统
US9354826B2 (en) Capacity expansion method and device
CN109144406B (zh) 分布式存储系统中元数据存储方法、系统及存储介质
EP3352071B1 (en) Data check method and storage system
CN107169009B (zh) 一种分布式存储系统的数据分裂方法及装置
CN110704161B (zh) 虚拟机创建方法、装置及计算机设备
CN110213326B (zh) 元数据节点集群的扩容方法、系统、设备和存储介质
CN104991822A (zh) 一种管理内存的方法和装置
CN107133228A (zh) 一种数据重分布的方法及装置
CN110990415A (zh) 数据处理方法、装置、电子设备及存储介质
CN114443223B (zh) 一种裸机磁盘管理方法、装置及介质
CN113419672B (zh) 一种存储容量管理方法、系统及存储介质
CN112799832A (zh) 一种内存分配控制方法、装置、设备及存储介质
CN112541041A (zh) 一种数据处理方法、装置、服务器及存储介质
CN114610243A (zh) 一种精简卷转换方法、系统、存储介质及设备
CN110865901B (zh) 组建ec条带的方法和装置
CN114721814A (zh) 一种基于共享栈的任务分配方法、装置、计算机设备
CN115129459A (zh) 一种内存管理的方法及设备
CN110968258B (zh) 存储盘的控制方法及设备
CN107273188B (zh) 一种虚拟机中央处理单元cpu绑定方法及装置

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