CN116719484A - 一种磁盘阵列的写数据处理方法、装置、设备和介质 - Google Patents

一种磁盘阵列的写数据处理方法、装置、设备和介质 Download PDF

Info

Publication number
CN116719484A
CN116719484A CN202310995030.XA CN202310995030A CN116719484A CN 116719484 A CN116719484 A CN 116719484A CN 202310995030 A CN202310995030 A CN 202310995030A CN 116719484 A CN116719484 A CN 116719484A
Authority
CN
China
Prior art keywords
data
write data
disk
stripe
target
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.)
Pending
Application number
CN202310995030.XA
Other languages
English (en)
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 CN202310995030.XA priority Critical patent/CN116719484A/zh
Publication of CN116719484A publication Critical patent/CN116719484A/zh
Pending legal-status Critical Current

Links

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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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/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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

本发明涉及数据存储技术领域,公开了一种磁盘阵列的写数据处理方法、装置、设备和介质,在磁盘启动重构任务时,根据主机下发的写数据的逻辑地址以及设定的条带宽度,确定出写数据对应的目标条带;在目标条带具有写入标识时,判断写数据及其校验数据的落盘位置是否命中故障盘。在写数据或者其校验数据的落盘位置命中故障盘时对目标条带进行重构后再将写数据写入目标条带。通过对写数据的写前重构添加算法筛选,对条带标记写入标识,记录哪些条带已经被写入过数据。对于标记有写入标识的目标条带,只有写数据落盘位置在故障盘上或者对应的校验数据在故障盘上,才执行写前重构,减少写前重构的数量的目的,提升存储写数据的处理速度。

Description

一种磁盘阵列的写数据处理方法、装置、设备和介质
技术领域
本发明涉及数据存储技术领域,特别是涉及一种磁盘阵列的写数据处理方法、装置、设备和介质。
背景技术
独立磁盘冗余阵列(Redundant Array of Independent Disks,RAID)是由很多磁盘组合成一个容量巨大的磁盘组。在独立磁盘冗余阵列中没有磁盘故障时,RAID会先把主机写IO(Input/Output,输入/输出)时进行数据条带化,即把IO数据按每个盘256K的大小分割成一个或多个分块,然后利用IO数据和磁盘上保存的数据通过异或计算出校验数据P、Q,最后再把主机IO数据和计算出的校验数据P、Q同时写入磁盘。当RAID的一个磁盘数据损坏后,可以利用剩下的数据分块上记录的IO数据以及校验块上记录的校验数据恢复被损坏的数据。
在RAID重构过程中,处理主机写IO时,如果检测IO所在条带没有重构过,则先对条带进行重构,然后再处理主机写IO,该操作被称为写前重构。
因为有写前重构的存在,会导致RAID处理主机写IO前,需要先重构条带,然后再处理主机写IO。通常处理一个主机写IO耗时1毫秒左右,重构一个条带耗时3毫秒左右。但因为有写前重构,导致原本1毫秒左右处理完的主机写IO,需要耗时4毫秒左右。这会导致写IO的处理速度比原先降低75%左右,大大降低了存储设备的IOPS(Input/Output OperationsPer Second,每秒处理IO的个数)性能,严重影响用户的使用体验。
可见,如何提升写IO的处理速度,是本领域技术人员需要解决的问题。
发明内容
本发明实施例的目的是提供一种磁盘阵列的写数据处理方法、装置、设备和计算机可读存储介质,可以解决写IO处理速度低的问题。
为解决上述技术问题,本发明实施例提供一种磁盘阵列的写数据处理方法,包括:
在磁盘启动重构任务的情况下,根据主机下发的写数据的逻辑地址以及设定的条带宽度,确定出写数据对应的目标条带;
在所述目标条带具有写入标识的情况下,判断所述写数据及其校验数据的落盘位置是否命中故障盘;其中,所述写入标识用于表征所述目标条带已经写入数据;
在所述写数据或者其校验数据的落盘位置命中故障盘的情况下,对所述目标条带进行重构后将所述写数据写入所述目标条带。
一方面,还包括:
在未启动重构任务的情况下,在接收到主机传输的待写入数据后,对所述待写入数据执行条带化处理,并将条带化处理后的待写入数据写入磁盘;
判断所述待写入数据所在的条带是否具有写入标识;
在所述待写入数据所在的条带不具有写入标识的情况下,对所述待写入数据所在的条带设置写入标识。
一方面,还包括:
在创建磁盘阵列时申请元数据,并将所述元数据的所有比特位设置为初始值;其中,一个比特位对应一个条带;
相应的,所述对所述待写入数据所在的条带设置写入标识包括:
将所述元数据中所述待写入数据所在的条带对应的比特位调整为写入值。
一方面,所述根据主机下发的写数据的逻辑地址以及设定的条带宽度,确定出写数据对应的目标条带包括:
接收主机下发的写数据的逻辑地址;
将所述逻辑地址与设定的条带宽度进行除法运算,基于得到的商确定出所述写数据对应的目标条带;其中,不同商用于表征不同的条带。
一方面,在所述根据主机下发的写数据的逻辑地址以及设定的条带宽度,确定出写数据对应的目标条带之后,还包括:
在所述目标条带不具有写入标识的情况下,根据写数据的逻辑地址,将条带化处理后的写数据写入磁盘。
一方面,所述判断所述写数据及其校验数据的落盘位置是否命中故障盘包括:
根据主机下发的写数据的逻辑地址以及设定的条带宽度和数据块个数,确定出写数据对应的目标数据块;
判断所述目标数据块所属的磁盘是否为故障盘;
在所述目标数据块所属的磁盘不为故障盘的情况下,判断所述写数据的校验数据所在的磁盘是否为故障盘。
一方面,所述根据主机下发的写数据的逻辑地址以及设定的条带宽度和数据块个数,确定出写数据对应的目标数据块包括:
基于条带宽度和数据块个数,确定出每个数据块的数据块宽度;
将所述逻辑地址与所述数据块宽度进行除法运算,基于得到的商确定出所述写数据对应的目标数据块。
一方面,所述在所述写数据或者其校验数据的落盘位置命中故障盘的情况下,对所述目标条带进行重构后将所述写数据写入所述目标条带包括:
在所述目标数据块所属的磁盘为故障盘或者所述写数据的校验数据所在的磁盘为故障盘的情况下,对所述目标条带进行重构后将所述写数据写入所述目标条带。
一方面,所述对所述目标条带进行重构后将所述写数据写入所述目标条带包括:
基于所述目标条带上的非故障数据,重构出故障盘的数据;其中,所述非故障数据包括目标条带上除故障盘的数据外剩余的数据;
根据写数据的逻辑地址以及重构出的故障盘的数据,将条带化处理后的写数据写入磁盘。
一方面,还包括:
在所述目标数据块所属的磁盘不为故障盘并且所述写数据的校验数据所在的磁盘不为故障盘的情况下,根据写数据的逻辑地址,将条带化处理后的写数据写入磁盘。
一方面,所述根据写数据的逻辑地址,将条带化处理后的写数据写入磁盘包括:
读取所述目标数据块上的原数据以及所述目标条带上的原校验数据;
基于所述原数据、所述原校验数据以及所述写数据,确定出新校验数据;
将所述写数据以及所述新校验数据写入所述目标条带的对应位置。
一方面,所述将所述写数据以及所述新校验数据写入所述目标条带的对应位置包括:
将所述写数据写入所述目标数据块,将所述新校验数据写入所述目标条带的校验块。
一方面,在所述根据主机下发的写数据的逻辑地址以及设定的条带宽度,确定出写数据对应的目标条带之后,还包括:
在所述写数据在所述目标条带上的数据量占比满足设定占比条件的情况下,根据写数据的逻辑地址,将条带化处理后的写数据写入磁盘;
在所述写数据在所述目标条带上的数据量占比不满足设定占比条件的情况下,执行所述在所述目标条带具有写入标识的情况下,判断所述写数据及其校验数据的落盘位置是否命中故障盘的步骤。
一方面,所述在所述写数据在所述目标条带上的数据量占比满足设定占比条件的情况下,根据写数据的逻辑地址,将条带化处理后的写数据写入磁盘包括:
判断所述写数据是否覆盖整个目标条带;
在所述写数据覆盖整个目标条带的情况下,根据写数据的逻辑地址,将条带化处理后的写数据写入磁盘。
一方面,还包括:
在所述写数据未覆盖整个目标条带的情况下,判断所述写数据的数据量是否大于设定阈值;其中,所述阈值基于所述目标条带的条带宽度设置;
在所述写数据的数据量大于或等于设定阈值的情况下,将所述写数据以及所述目标条带中的原数据拼凑后写入磁盘。
一方面,所述在所述写数据在所述目标条带上的数据量占比不满足设定占比条件的情况下,执行所述在所述目标条带具有写入标识的情况下,判断所述写数据及其校验数据的落盘位置是否命中故障盘的步骤包括:
在所述写数据的数据量小于设定阈值的情况下,执行所述在所述目标条带具有写入标识的情况下,判断所述写数据及其校验数据的落盘位置是否命中故障盘的步骤。
一方面,所述在所述写数据的数据量大于或等于设定阈值的情况下,将所述写数据以及所述目标条带中的原数据拼凑后写入磁盘包括:
在所述写数据的数据量大于或等于所述目标条带的二分之一条带宽度的情况下,将所述写数据以及所述目标条带中的原数据拼凑后写入磁盘。
一方面,所述将所述写数据以及所述目标条带中的原数据拼凑后写入磁盘包括:
读取所述目标条带中的原数据;
对所述原数据以及所述写数据进行异或运算,以得到新校验数据;
将所述写数据以及所述新校验数据写入所述目标条带的对应位置。
一方面,所述读取所述目标条带中的原数据包括:
在磁盘中保留所述目标条带中的原数据,并将所述目标条带中的原数据读取到内存空间。
本发明实施例还提供了一种磁盘阵列的写数据处理装置,包括条带确定单元、故障盘判断单元和重构写单元;
所述条带确定单元,用于在磁盘启动重构任务的情况下,根据主机下发的写数据的逻辑地址以及设定的条带宽度,确定出写数据对应的目标条带;
所述故障盘判断单元,用于在所述目标条带具有写入标识的情况下,判断所述写数据及其校验数据的落盘位置是否命中故障盘;其中,所述写入标识用于表征所述目标条带已经写入数据;
所述重构写单元,用于在所述写数据或者其校验数据的落盘位置命中故障盘的情况下,对所述目标条带进行重构后将所述写数据写入所述目标条带。
一方面,还包括条带化处理单元、第一写入单元、标识判断单元和设置单元;
所述条带化处理单元,用于在未启动重构任务的情况下,在接收到主机传输的待写入数据后,对所述待写入数据执行条带化处理;
所述第一写入单元,用于将条带化处理后的待写入数据写入磁盘;
所述标识判断单元,用于判断所述待写入数据所在的条带是否具有写入标识;
所述设置单元,用于在所述待写入数据所在的条带不具有写入标识的情况下,对所述待写入数据所在的条带设置写入标识。
一方面,还包括申请单元和初始化单元;
所述申请单元,用于在创建磁盘阵列时申请元数据;
所述初始化单元,用于将所述元数据的所有比特位设置为初始值;其中,一个比特位对应一个条带;
相应的,所述设置单元用于将所述元数据中所述待写入数据所在的条带对应的比特位调整为写入值。
一方面,所述条带确定单元包括接收子单元和运算子单元;
所述接收子单元,用于接收主机下发的写数据的逻辑地址;
所述运算子单元,用于将所述逻辑地址与设定的条带宽度进行除法运算,基于得到的商确定出所述写数据对应的目标条带;其中,不同商用于表征不同的条带。
一方面,还包括第二写入单元;
所述第二写入单元,用于在所述目标条带不具有写入标识的情况下,根据写数据的逻辑地址,将条带化处理后的写数据写入磁盘。
一方面,所述判断单元包括数据块确定子单元、第一判断子单元和第二判断子单元;
所述数据块确定子单元,用于根据主机下发的写数据的逻辑地址以及设定的条带宽度和数据块个数,确定出写数据对应的目标数据块;
所述第一判断子单元,用于判断所述目标数据块所属的磁盘是否为故障盘;
所述第二判断子单元,用于在所述目标数据块所属的磁盘不为故障盘的情况下,判断所述写数据的校验数据所在的磁盘是否为故障盘。
一方面,所述数据块确定子单元用于基于条带宽度和数据块个数,确定出每个数据块的数据块宽度;
将所述逻辑地址与所述数据块宽度进行除法运算,基于得到的商确定出所述写数据对应的目标数据块。
一方面,所述重构写单元用于在所述目标数据块所属的磁盘为故障盘或者所述写数据的校验数据所在的磁盘为故障盘的情况下,对所述目标条带进行重构后将所述写数据写入所述目标条带。
一方面,所述重构写单元包括重构子单元和写入子单元;
所述重构子单元,用于基于所述目标条带上的非故障数据,重构出故障盘的数据;其中,所述非故障数据包括目标条带上除故障盘的数据外剩余的数据;
所述写入子单元,用于根据写数据的逻辑地址以及重构出的故障盘的数据,将条带化处理后的写数据写入磁盘。
一方面,还包括第三写入单元;
所述第三写入单元,用于在所述目标数据块所属的磁盘不为故障盘并且所述写数据的校验数据所在的磁盘不为故障盘的情况下,根据写数据的逻辑地址,将条带化处理后的写数据写入磁盘。
一方面,所述第三写入单元包括读取子单元、校验数据确定子单元和条带写入子单元;
所述读取子单元,用于读取所述目标数据块上的原数据以及所述目标条带上的原校验数据;
所述校验数据确定子单元,用于基于所述原数据、所述原校验数据以及所述写数据,确定出新校验数据;
所述条带写入子单元,用于将所述写数据以及所述新校验数据写入所述目标条带的对应位置。
一方面,所述条带写入子单元用于将所述写数据写入所述目标数据块,将所述新校验数据写入所述目标条带的校验块。
一方面,还包括第四写入单元;
所述第四写入单元,用于在所述写数据在所述目标条带上的数据量占比满足设定占比条件的情况下,根据写数据的逻辑地址,将条带化处理后的写数据写入磁盘;在所述写数据在所述目标条带上的数据量占比不满足设定占比条件的情况下,触发所述故障盘判断单元执行所述在所述目标条带具有写入标识的情况下,判断所述写数据及其校验数据的落盘位置是否命中故障盘的步骤。
一方面,所述第四写入单元用于判断所述写数据是否覆盖整个目标条带;
在所述写数据覆盖整个目标条带的情况下,根据写数据的逻辑地址,将条带化处理后的写数据写入磁盘。
一方面,还包括数据量判断单元和拼凑单元;
所述数据量判断单元,用于在所述写数据未覆盖整个目标条带的情况下,判断所述写数据的数据量是否大于设定阈值;其中,所述阈值基于所述目标条带的条带宽度设置;
所述拼凑单元,用于在所述写数据的数据量大于或等于设定阈值的情况下,将所述写数据以及所述目标条带中的原数据拼凑后写入磁盘。
一方面,所述第四写入单元用于在所述写数据的数据量小于设定阈值的情况下,触发所述故障盘判断单元执行所述在所述目标条带具有写入标识的情况下,判断所述写数据及其校验数据的落盘位置是否命中故障盘的步骤。
一方面,所述拼凑单元用于在所述写数据的数据量大于或等于所述目标条带的二分之一条带宽度的情况下,将所述写数据以及所述目标条带中的原数据拼凑后写入磁盘。
一方面,所述拼凑单元包括读取子单元、异或运算子单元和数据写入子单元;
所述读取子单元,用于读取所述目标条带中的原数据;
所述异或运算子单元,用于对所述原数据以及所述写数据进行异或运算,以得到新校验数据;
所述数据写入子单元,用于将所述写数据以及所述新校验数据写入所述目标条带的对应位置。
一方面,所述读取子单元用于在磁盘中保留所述目标条带中的原数据,并将所述目标条带中的原数据读取到内存空间。
本发明实施例还提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如上述磁盘阵列的写数据处理方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述磁盘阵列的写数据处理方法的步骤。
由上述技术方案可以看出,在磁盘启动重构任务的情况下,根据主机下发的写数据的逻辑地址以及设定的条带宽度,确定出写数据对应的目标条带;在目标条带具有写入标识的情况下,说明目标条带之前已经写入过数据,此时可以进一步判断写数据及其校验数据的落盘位置是否命中故障盘。在写数据或者其校验数据的落盘位置命中故障盘的情况下,为了保持条带数据的一致性,需要先对目标条带进行重构,在完成重构后再将写数据写入目标条带。本发明的有益效果在于,在磁盘重构过程中,通过对写数据的写前重构添加算法筛选,对条带标记写入标识,记录哪些条带已经被写入过数据。对于标记有写入标识的目标条带,继续执行落盘位置筛选。只有写数据落盘位置在故障盘上或者对应的校验数据在故障盘上,才执行写前重构。通过双重检测的方式,可达成减少写前重构的数量的目的,降低重构对主机写性能的影响,有效的提升存储写数据的处理速度。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种磁盘阵列的写数据处理方法的流程图;
图2为本发明实施例提供的一种磁盘阵列和元数据比特位的对应关系示意图;
图3为本发明实施例提供的一种基于落盘位置对写数据进行处理的方法的流程图;
图4为本发明实施例提供的一种基于写数据占比将写数据写入磁盘的方法的流程图;
图5为本发明实施例提供的一种磁盘阵列的写数据处理装置的结构示意图;
图6为本发明实施例提供的一种电子设备的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
本发明的说明书和权利要求书及上述附图中的术语“包括”和“具有”,以及与“包括”和“具有”相关的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
接下来,详细介绍本发明实施例所提供的一种磁盘阵列的写数据处理方法。图1为本发明实施例提供的一种磁盘阵列的写数据处理方法的流程图,该方法包括:
S101:在磁盘启动重构任务的情况下,根据主机下发的写数据的逻辑地址以及设定的条带宽度,确定出写数据对应的目标条带。
在磁盘启动重构任务后,如果有数据需要写入磁盘,可以先确定出数据写入的位置,数据需要写入哪个或哪些条带。为了便于区分,可以将当前写入的数据称作写数据,写数据所需写入的条带称作目标条带。
在实际应用中,RAID在接收到主机下发的写数据以及写数据的逻辑地址后,可以将逻辑地址与设定的条带宽度进行除法运算,基于得到的商确定出写数据对应的目标条带;其中,不同商用于表征不同的条带。
举例说明,假设每个条带宽度均为768K,第一个条带对应的逻辑地址为0至767K,第二个条带对应的逻辑地址为768K至1535K,第三个条带对应的逻辑地址为1536K至2303K。如果写数据的逻辑地址为700K,700除以768的商为0,表示写数据需要写入第一个条带。如果写数据的逻辑地址为1500K,1500除以768的商为1,表示写数据需要写入第二个条带。
S102:在目标条带具有写入标识的情况下,判断写数据及其校验数据的落盘位置是否命中故障盘。
其中,写入标识用于表征目标条带已经写入数据。
RAID在未启动重构任务时,在接收到主机传输的待写入数据后,可以对待写入数据执行条带化处理,并将条带化处理后的待写入数据写入磁盘。判断待写入数据所在的条带是否具有写入标识。
在将条带化处理后的待写入数据写入磁盘后,由于待写入数据所在的条带此时已经写入了数据,因此可以对该条带设置写入标识。在该条带已经具有写入标识的情况下,保留该条带的写入标识即可,无需进行重新标记。
在本发明实施例中,可以采用元数据记录各条带写入数据的情况。
在创建磁盘阵列时申请元数据,并将元数据的所有比特位设置为初始值;其中,一个比特位对应一个条带。初始值可以设置为0。
相应的,在将条带化处理后的待写入数据写入磁盘后,可以判断元数据中待写入数据所在的条带是否具有写入值。若元数据中待写入数据所在的条带仍为初始值,则可以将元数据中待写入数据所在的条带对应的比特位调整为写入值。写入值可以设置为1。若元数据中待写入数据所在的条带已经为写入值,则无需对元数据进行标记。
在实际应用中,可以将标识“1”作为写入标识。条带的标识为“0”表示该条带未写入数据,标识为“1”表示该条带已经写入了数据。
图2为本发明实施例提供的一种磁盘阵列和元数据比特位的对应关系示意图,图2中是以5个磁盘组成的磁盘阵列为例,分别为磁盘1至磁盘5,图2中包含5个条带,分别为条带1至条带5,每个条带包含三个数据块和两个校验块,三个数据块可以表示为D1、D2和D3,两个校验块可以表示为P和Q。元数据中一个比特位对应一个条带,按照顺序第一个比特位可以对应条带1、第二个比特位可以对应条带2、第三个比特位可以对应条带3、第四个比特位可以对应条带4、第五个比特位可以对应条带5。图2中是以元数据为“11001”为例,“1”表示其对应的条带已经写入了数据,“0”表示其对应的条带未写入数据。“11001”表示条带1、条带2和条带5写入了数据,条带3和条带4未写入数据。
在目标条带不具有写入标识的情况下,说明该目标条带未写入数据,对于未写入数据的条带并不需要执行写前重构,此时可以直接根据写数据的逻辑地址,将条带化处理后的写数据写入磁盘。
在目标条带具有写入标识的情况下,说明该目标条带已经写入了数据,为了降低执行写前重构的数量,可以进一步判断写数据及其校验数据的落盘位置是否命中故障盘。
在写数据及其校验数据的落盘位置均未命中故障盘的情况下,说明故障盘上的数据并不会对写数据及其校验数据的正确性造成影响,因此无需执行写前重构,直接对写数据进行条带化处理,然后写入磁盘即可。
在写数据或者其校验数据的落盘位置命中故障盘的情况下,说明故障盘上的数据会对写数据及其校验数据的正确性造成影响,因此在将写数据写入目标条带之前,需要先执行写前重构,即执行S103。
S103:对目标条带进行重构后将写数据写入目标条带。
为了便于区分不同磁盘上的数据,在本发明实施例中,可以将故障盘上存储的数据称作故障数据,其它磁盘上存储的数据称作非故障数据。
在实际应用中,可以基于目标条带上的非故障数据,重构出故障盘的数据;其中,非故障数据可以包括目标条带上除故障盘的数据外剩余的数据。根据写数据的逻辑地址以及重构出的故障盘的数据,将条带化处理后的写数据写入磁盘。
由上述技术方案可以看出,在磁盘启动重构任务的情况下,根据主机下发的写数据的逻辑地址以及设定的条带宽度,确定出写数据对应的目标条带;在目标条带具有写入标识的情况下,说明目标条带之前已经写入过数据,此时可以进一步判断写数据及其校验数据的落盘位置是否命中故障盘。在写数据或者其校验数据的落盘位置命中故障盘的情况下,为了保持条带数据的一致性,需要先对目标条带进行重构,在完成重构后再将写数据写入目标条带。本发明的有益效果在于,在磁盘重构过程中,通过对写数据的写前重构添加算法筛选,对条带标记写入标识,记录哪些条带已经被写入过数据。对于标记有写入标识的目标条带,继续执行落盘位置筛选。只有写数据落盘位置在故障盘上或者对应的校验数据在故障盘上,才执行写前重构。通过双重检测的方式,可达成减少写前重构的数量的目的,降低重构对主机写性能的影响,有效的提升存储写数据的处理速度。
图3为本发明实施例提供的一种基于落盘位置对写数据进行处理的方法的流程图,该方法包括:
S301:根据主机下发的写数据的逻辑地址以及设定的条带宽度和数据块个数,确定出写数据对应的目标数据块。
条带宽度可以是条带上用于存储用户数据的数据量大小。
一个条带包括有数据块和校验块,数据块个数指的是一个条带上包含的数据块的总数。
在实际应用中,可以基于条带宽度和数据块个数,确定出每个数据块的数据块宽度。将逻辑地址与数据块宽度进行除法运算,基于得到的商确定出写数据对应的数据块。为了便于区分,可以将写数据对应的数据块称作目标数据块。
写数据的逻辑地址用于表示数据写入位置的起始地址。
逻辑地址与数据块宽度进行除法运算得到的商取值为N,则表示需要从第N+1个数据块写入数据。
假设每个条带的条带宽度为768K,数据块个数为3,则数据块宽度为768/3=256K。如果写数据的逻辑地址为700K,700除以256的商为2,表示写数据开始写入的位置为第一个条带的第3个数据块。如果写数据的逻辑地址为1500K,1500除以256的商为5,表示写数据开始写入的位置为写入第二个条带的第6个数据块。
在确定出写数据开始写入的位置后,基于写数据的总数据量大小可以确定出写数据需要占用哪几个数据块。
S302:判断目标数据块所属的磁盘是否为故障盘。
由于需要在条带中增加写数据,因此写数据所在条带的校验数据也会发生变化。为了保证写数据及其校验数据的正确性,在目标数据块所属的磁盘不为故障盘的情况下,还需要对校验数据所在的磁盘进行判断,即执行S303。
在目标数据块所属的磁盘为故障盘的情况下,在将写数据写入目标条带前需要对目标条带进行写前重构,因此可以执行S304。
S303:判断写数据的校验数据所在的磁盘是否为故障盘。
在写数据的校验数据所在的磁盘为故障盘的情况下,在将写数据写入目标条带前需要对目标条带进行写前重构,因此可以执行S304。
在目标数据块所属的磁盘不为故障盘并且写数据的校验数据所在的磁盘不为故障盘的情况下,说明故障盘上的数据并不会对写数据及其校验数据造成影响,此时无需进行写前重构,可以直接执行S305。
S304:对目标条带进行重构后将写数据写入目标条带。
对目标条带进行重构后将写数据写入目标条带的具体操作方式可以参见S103的介绍,在此不再赘述。
S305:根据写数据的逻辑地址,将条带化处理后的写数据写入磁盘。
在实际应用中,在获取到主机下发的写数据,在确定无需执行写前重构时,可以读取目标数据块上的原数据以及目标条带上的原校验数据;基于原数据、原校验数据以及写数据,确定出新校验数据;将写数据以及新校验数据写入目标条带的对应位置。
根据主机下发的写数据的逻辑地址以及设定的条带宽度和数据块个数,可以确定出写数据对应的目标数据块,因此可以将写数据写入目标数据块,将新校验数据写入目标条带的校验块。
结合图2所示的磁盘阵列的示意图,假设磁盘4为故障盘,如果写数据落在条带3的D1位置上,条带3的D1即为目标数据块,此时满足目标数据块所属的磁盘为故障盘,需要写前重构。如果写数据对应的校验数据落在条带1的P位置上,或者写数据对应的校验数据落在条带2的Q位置上,此时满足写数据的校验数据所在的磁盘为故障盘,这些情况下均需要写前重构。如图2所示,只要写数据及其校验数据不落在故障盘盘4上,就不需要执行写前重构。
重构对主机写IOPS的影响可以高达40%以上。在本发明实施例中,通过对写数据的落盘位置及其校验数据的落盘位置进行判断,可以有效的筛选出不需要执行写前重构操作的写任务,减少了写前重构的数量,降低了重构对主机写IOPS的影响,有效的提升了存储写IO的处理性能。
考虑到实际应用中,当写数据占据条带的大部分容量时,为了提升写数据的处理效率,可以采用覆盖写的方式将写数据写入磁盘,无需执行写前重构。
因此写数据在目标条带上的数据量占比满足设定占比条件的情况下,根据写数据的逻辑地址,将条带化处理后的写数据写入磁盘。在写数据在目标条带上的数据量占比不满足设定占比条件的情况下,执行在目标条带具有写入标识的情况下,判断写数据及其校验数据的落盘位置是否命中故障盘的步骤。
在实际应用中,可以基于设定阈值设置占比条件,比如判断写数据的数据量是否大于或等于设定阈值。
在写数据的数据量大于或等于设定阈值时,说明满足占比条件;在写数据的数据量小于设定阈值时,说明不满足占比条件。因此在写数据的数据量小于设定阈值的情况下,可以执行在目标条带具有写入标识的情况下,判断写数据及其校验数据的落盘位置是否命中故障盘的步骤。
图4为本发明实施例提供的一种基于写数据占比将写数据写入磁盘的方法的流程图,该方法包括:
S401:判断写数据是否覆盖整个目标条带。
在写数据覆盖整个目标条带的情况下,说明写数据及其校验数据不会受目标条带中原数据以及原校验数据的影响,此时无需再执行写前重构,可以直接将写数据覆盖写入到目标条带中,即执行S402。
在写数据未覆盖整个目标条带的情况下,可以对写数据的占比情况进一步的判断,即执行S403。
S402:根据写数据的逻辑地址,将条带化处理后的写数据写入磁盘。
以一个数据块为256K为例,在实际应用中RAID会把主机下发的写数据进行条带化处理:把写数据按每个盘256K的大小分割成一个或多个分块,然后利用分块后的写数据通过异或计算出校验块P、Q,最后再把主机下发的写数据和计算出的P、Q校验数据同时写入磁盘。
S403:判断写数据的数据量是否大于设定阈值。
其中,阈值基于目标条带的条带宽度设置。
在本发明实施例中,可以依据条带宽度的1/2确定设定阈值的取值。例如,条带宽度为768K,则设定阈值可以为768*1/2=384。
在写数据的数据量大于或等于设定阈值的情况下,执行说明写数据占比较高,此时可以执行S404。
在写数据的数据量小于设定阈值的情况下,可以按照上述S102和S103的操作对写数据进行处理。
S404:将写数据以及目标条带中的原数据拼凑后写入磁盘。
以设定阈值为条带宽度的1/2为例,在写数据的数据量大于或等于目标条带的二分之一条带宽度的情况下,可以将写数据以及目标条带中的原数据拼凑后写入磁盘。
数据拼凑包括读取目标条带中的原数据;对原数据以及写数据进行异或运算,以得到新校验数据。
在得到新校验数据后,可以将写数据以及新校验数据写入目标条带的对应位置。读取目标条带中的原数据指的是在磁盘中保留目标条带中的原数据,并将目标条带中的原数据读取到内存空间。
在本发明实施例中,通过评估写数据在条带上的占比,在完全覆盖整个条带的情况下,可以直接将写数据覆盖写入条带,无需执行写前重构。在占比较高的情况下,可以通过写数据与条带上的原数据拼凑的方式,将写数据写入条带,也无需执行写前重构,极大的提升了写数据的处理效率。
图5为本发明实施例提供的一种磁盘阵列的写数据处理装置的结构示意图,包括条带确定单元51、故障盘判断单元52和重构写单元53;
条带确定单元51,用于在磁盘启动重构任务的情况下,根据主机下发的写数据的逻辑地址以及设定的条带宽度,确定出写数据对应的目标条带;
故障盘判断单元52,用于在目标条带具有写入标识的情况下,判断写数据及其校验数据的落盘位置是否命中故障盘;其中,写入标识用于表征目标条带已经写入数据;
重构写单元53,用于在写数据或者其校验数据的落盘位置命中故障盘的情况下,对目标条带进行重构后将写数据写入目标条带。
在一些实施例中,还包括条带化处理单元、第一写入单元、标识判断单元和设置单元;
条带化处理单元,用于在未启动重构任务的情况下,在接收到主机传输的待写入数据后,对待写入数据执行条带化处理;
第一写入单元,用于将条带化处理后的待写入数据写入磁盘;
标识判断单元,用于判断待写入数据所在的条带是否具有写入标识;
设置单元,用于在待写入数据所在的条带不具有写入标识的情况下,对待写入数据所在的条带设置写入标识。
在一些实施例中,还包括申请单元和初始化单元;
申请单元,用于在创建磁盘阵列时申请元数据;
初始化单元,用于将元数据的所有比特位设置为初始值;其中,一个比特位对应一个条带;
相应的,设置单元用于将元数据中待写入数据所在的条带对应的比特位调整为写入值。
在一些实施例中,条带确定单元包括接收子单元和运算子单元;
接收子单元,用于接收主机下发的写数据的逻辑地址;
运算子单元,用于将逻辑地址与设定的条带宽度进行除法运算,基于得到的商确定出写数据对应的目标条带;其中,不同商用于表征不同的条带。
在一些实施例中,还包括第二写入单元;
第二写入单元,用于在目标条带不具有写入标识的情况下,根据写数据的逻辑地址,将条带化处理后的写数据写入磁盘。
在一些实施例中,判断单元包括数据块确定子单元、第一判断子单元和第二判断子单元;
数据块确定子单元,用于根据主机下发的写数据的逻辑地址以及设定的条带宽度和数据块个数,确定出写数据对应的目标数据块;
第一判断子单元,用于判断目标数据块所属的磁盘是否为故障盘;
第二判断子单元,用于在目标数据块所属的磁盘不为故障盘的情况下,判断写数据的校验数据所在的磁盘是否为故障盘。
在一些实施例中,数据块确定子单元用于基于条带宽度和数据块个数,确定出每个数据块的数据块宽度;
将逻辑地址与数据块宽度进行除法运算,基于得到的商确定出写数据对应的目标数据块。
在一些实施例中,重构写单元用于在目标数据块所属的磁盘为故障盘或者写数据的校验数据所在的磁盘为故障盘的情况下,对目标条带进行重构后将写数据写入目标条带。
在一些实施例中,重构写单元包括重构子单元和写入子单元;
重构子单元,用于基于目标条带上的非故障数据,重构出故障盘的数据;其中,非故障数据包括目标条带上除故障盘的数据外剩余的数据;
写入子单元,用于根据写数据的逻辑地址以及重构出的故障盘的数据,将条带化处理后的写数据写入磁盘。
在一些实施例中,还包括第三写入单元;
第三写入单元,用于在目标数据块所属的磁盘不为故障盘并且写数据的校验数据所在的磁盘不为故障盘的情况下,根据写数据的逻辑地址,将条带化处理后的写数据写入磁盘。
在一些实施例中,第三写入单元包括读取子单元、校验数据确定子单元和条带写入子单元;
读取子单元,用于读取目标数据块上的原数据以及目标条带上的原校验数据;
校验数据确定子单元,用于基于原数据、原校验数据以及写数据,确定出新校验数据;
条带写入子单元,用于将写数据以及新校验数据写入目标条带的对应位置。
在一些实施例中,条带写入子单元用于将写数据写入目标数据块,将新校验数据写入目标条带的校验块。
在一些实施例中,还包括第四写入单元;
第四写入单元,用于在写数据在目标条带上的数据量占比满足设定占比条件的情况下,根据写数据的逻辑地址,将条带化处理后的写数据写入磁盘;在写数据在目标条带上的数据量占比不满足设定占比条件的情况下,触发故障盘判断单元执行在目标条带具有写入标识的情况下,判断写数据及其校验数据的落盘位置是否命中故障盘的步骤。
在一些实施例中,第四写入单元用于判断写数据是否覆盖整个目标条带;
在写数据覆盖整个目标条带的情况下,根据写数据的逻辑地址,将条带化处理后的写数据写入磁盘。
在一些实施例中,还包括数据量判断单元和拼凑单元;
数据量判断单元,用于在写数据未覆盖整个目标条带的情况下,判断写数据的数据量是否大于设定阈值;其中,阈值基于目标条带的条带宽度设置;
拼凑单元,用于在写数据的数据量大于或等于设定阈值的情况下,将写数据以及目标条带中的原数据拼凑后写入磁盘。
在一些实施例中,第四写入单元用于在写数据的数据量小于设定阈值的情况下,触发故障盘判断单元执行在目标条带具有写入标识的情况下,判断写数据及其校验数据的落盘位置是否命中故障盘的步骤。
在一些实施例中,拼凑单元用于在写数据的数据量大于或等于目标条带的二分之一条带宽度的情况下,将写数据以及目标条带中的原数据拼凑后写入磁盘。
在一些实施例中,拼凑单元包括读取子单元、异或运算子单元和数据写入子单元;
读取子单元,用于读取目标条带中的原数据;
异或运算子单元,用于对原数据以及写数据进行异或运算,以得到新校验数据;
数据写入子单元,用于将写数据以及新校验数据写入目标条带的对应位置。
在一些实施例中,读取子单元用于在磁盘中保留目标条带中的原数据,并将目标条带中的原数据读取到内存空间。
图5所对应实施例中特征的说明可以参见图1至图4所对应实施例的相关说明,这里不再一一赘述。
由上述技术方案可以看出,在磁盘启动重构任务的情况下,根据主机下发的写数据的逻辑地址以及设定的条带宽度,确定出写数据对应的目标条带;在目标条带具有写入标识的情况下,说明目标条带之前已经写入过数据,此时可以进一步判断写数据及其校验数据的落盘位置是否命中故障盘。在写数据或者其校验数据的落盘位置命中故障盘的情况下,为了保持条带数据的一致性,需要先对目标条带进行重构,在完成重构后再将写数据写入目标条带。本发明的有益效果在于,在磁盘重构过程中,通过对写数据的写前重构添加算法筛选,对条带标记写入标识,记录哪些条带已经被写入过数据。对于标记有写入标识的目标条带,继续执行落盘位置筛选。只有写数据落盘位置在故障盘上或者对应的校验数据在故障盘上,才执行写前重构。通过双重检测的方式,可达成减少写前重构的数量的目的,降低重构对主机写性能的影响,有效的提升存储写数据的处理速度。
图6为本发明实施例提供的一种电子设备的结构图,如图6所示,电子设备包括:存储器60,用于存储计算机程序;
处理器61,用于执行计算机程序时实现如上述实施例磁盘阵列的写数据处理方法的步骤。
本实施例提供的电子设备可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
其中,处理器61可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器61可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器61也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器61可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器61还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器60可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器60还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器60至少用于存储以下计算机程序601,其中,该计算机程序被处理器61加载并执行之后,能够实现前述任一实施例公开的磁盘阵列的写数据处理方法的相关步骤。另外,存储器60所存储的资源还可以包括操作***602和数据603等,存储方式可以是短暂存储或者永久存储。其中,操作***602可以包括Windows、Unix、Linux等。数据603可以包括但不限于条带宽度、写入标识等。
在一些实施例中,电子设备还可包括有显示屏62、输入输出接口63、通信接口64、电源65以及通信总线66。
本领域技术人员可以理解,图6中示出的结构并不构成对电子设备的限定,可以包括比图示更多或更少的组件。
可以理解的是,如果上述实施例中的磁盘阵列的写数据处理方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对目前技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、磁碟或者光盘等各种可以存储程序代码的介质。
基于此,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述磁盘阵列的写数据处理方法的步骤。
以上对本发明实施例所提供的一种磁盘阵列的写数据处理方法、装置、设备和介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
以上对本发明所提供的一种磁盘阵列的写数据处理方法、装置、设备和介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

Claims (22)

1.一种磁盘阵列的写数据处理方法,其特征在于,包括:
在磁盘启动重构任务的情况下,根据主机下发的写数据的逻辑地址以及设定的条带宽度,确定出写数据对应的目标条带;
在所述目标条带具有写入标识的情况下,判断所述写数据及其校验数据的落盘位置是否命中故障盘;其中,所述写入标识用于表征所述目标条带已经写入数据;
在所述写数据或者其校验数据的落盘位置命中故障盘的情况下,对所述目标条带进行重构后将所述写数据写入所述目标条带。
2.根据权利要求1所述的磁盘阵列的写数据处理方法,其特征在于,还包括:
在未启动重构任务的情况下,在接收到主机传输的待写入数据后,对所述待写入数据执行条带化处理,并将条带化处理后的待写入数据写入磁盘;
判断所述待写入数据所在的条带是否具有写入标识;
在所述待写入数据所在的条带不具有写入标识的情况下,对所述待写入数据所在的条带设置写入标识。
3.根据权利要求2所述的磁盘阵列的写数据处理方法,其特征在于,还包括:
在创建磁盘阵列时申请元数据,并将所述元数据的所有比特位设置为初始值;其中,一个比特位对应一个条带;
相应的,所述对所述待写入数据所在的条带设置写入标识包括:
将所述元数据中所述待写入数据所在的条带对应的比特位调整为写入值。
4.根据权利要求1所述的磁盘阵列的写数据处理方法,其特征在于,所述根据主机下发的写数据的逻辑地址以及设定的条带宽度,确定出写数据对应的目标条带包括:
接收主机下发的写数据的逻辑地址;
将所述逻辑地址与设定的条带宽度进行除法运算,基于得到的商确定出所述写数据对应的目标条带;其中,不同商用于表征不同的条带。
5.根据权利要求1所述的磁盘阵列的写数据处理方法,其特征在于,在所述根据主机下发的写数据的逻辑地址以及设定的条带宽度,确定出写数据对应的目标条带之后,还包括:
在所述目标条带不具有写入标识的情况下,根据写数据的逻辑地址,将条带化处理后的写数据写入磁盘。
6.根据权利要求1所述的磁盘阵列的写数据处理方法,其特征在于,所述判断所述写数据及其校验数据的落盘位置是否命中故障盘包括:
根据主机下发的写数据的逻辑地址以及设定的条带宽度和数据块个数,确定出写数据对应的目标数据块;
判断所述目标数据块所属的磁盘是否为故障盘;
在所述目标数据块所属的磁盘不为故障盘的情况下,判断所述写数据的校验数据所在的磁盘是否为故障盘。
7.根据权利要求6所述的磁盘阵列的写数据处理方法,其特征在于,所述根据主机下发的写数据的逻辑地址以及设定的条带宽度和数据块个数,确定出写数据对应的目标数据块包括:
基于条带宽度和数据块个数,确定出每个数据块的数据块宽度;
将所述逻辑地址与所述数据块宽度进行除法运算,基于得到的商确定出所述写数据对应的目标数据块。
8.根据权利要求6所述的磁盘阵列的写数据处理方法,其特征在于,所述在所述写数据或者其校验数据的落盘位置命中故障盘的情况下,对所述目标条带进行重构后将所述写数据写入所述目标条带包括:
在所述目标数据块所属的磁盘为故障盘或者所述写数据的校验数据所在的磁盘为故障盘的情况下,对所述目标条带进行重构后将所述写数据写入所述目标条带。
9.根据权利要求8所述的磁盘阵列的写数据处理方法,其特征在于,所述对所述目标条带进行重构后将所述写数据写入所述目标条带包括:
基于所述目标条带上的非故障数据,重构出故障盘的数据;其中,所述非故障数据包括目标条带上除故障盘的数据外剩余的数据;
根据写数据的逻辑地址以及重构出的故障盘的数据,将条带化处理后的写数据写入磁盘。
10.根据权利要求9所述的磁盘阵列的写数据处理方法,其特征在于,还包括:
在所述目标数据块所属的磁盘不为故障盘并且所述写数据的校验数据所在的磁盘不为故障盘的情况下,根据写数据的逻辑地址,将条带化处理后的写数据写入磁盘。
11.根据权利要求10所述的磁盘阵列的写数据处理方法,其特征在于,所述根据写数据的逻辑地址,将条带化处理后的写数据写入磁盘包括:
读取所述目标数据块上的原数据以及所述目标条带上的原校验数据;
基于所述原数据、所述原校验数据以及所述写数据,确定出新校验数据;
将所述写数据以及所述新校验数据写入所述目标条带的对应位置。
12.根据权利要求11所述的磁盘阵列的写数据处理方法,其特征在于,所述将所述写数据以及所述新校验数据写入所述目标条带的对应位置包括:
将所述写数据写入所述目标数据块,将所述新校验数据写入所述目标条带的校验块。
13.根据权利要求1所述的磁盘阵列的写数据处理方法,其特征在于,在所述根据主机下发的写数据的逻辑地址以及设定的条带宽度,确定出写数据对应的目标条带之后,还包括:
在所述写数据在所述目标条带上的数据量占比满足设定占比条件的情况下,根据写数据的逻辑地址,将条带化处理后的写数据写入磁盘;
在所述写数据在所述目标条带上的数据量占比不满足设定占比条件的情况下,执行所述在所述目标条带具有写入标识的情况下,判断所述写数据及其校验数据的落盘位置是否命中故障盘的步骤。
14.根据权利要求13所述的磁盘阵列的写数据处理方法,其特征在于,所述在所述写数据在所述目标条带上的数据量占比满足设定占比条件的情况下,根据写数据的逻辑地址,将条带化处理后的写数据写入磁盘包括:
判断所述写数据是否覆盖整个目标条带;
在所述写数据覆盖整个目标条带的情况下,根据写数据的逻辑地址,将条带化处理后的写数据写入磁盘。
15.根据权利要求14所述的磁盘阵列的写数据处理方法,其特征在于,还包括:
在所述写数据未覆盖整个目标条带的情况下,判断所述写数据的数据量是否大于设定阈值;其中,所述阈值基于所述目标条带的条带宽度设置;
在所述写数据的数据量大于或等于设定阈值的情况下,将所述写数据以及所述目标条带中的原数据拼凑后写入磁盘。
16.根据权利要求15所述的磁盘阵列的写数据处理方法,其特征在于,所述在所述写数据在所述目标条带上的数据量占比不满足设定占比条件的情况下,执行所述在所述目标条带具有写入标识的情况下,判断所述写数据及其校验数据的落盘位置是否命中故障盘的步骤包括:
在所述写数据的数据量小于设定阈值的情况下,执行所述在所述目标条带具有写入标识的情况下,判断所述写数据及其校验数据的落盘位置是否命中故障盘的步骤。
17.根据权利要求15所述的磁盘阵列的写数据处理方法,其特征在于,所述在所述写数据的数据量大于或等于设定阈值的情况下,将所述写数据以及所述目标条带中的原数据拼凑后写入磁盘包括:
在所述写数据的数据量大于或等于所述目标条带的二分之一条带宽度的情况下,将所述写数据以及所述目标条带中的原数据拼凑后写入磁盘。
18.根据权利要求15所述的磁盘阵列的写数据处理方法,其特征在于,所述将所述写数据以及所述目标条带中的原数据拼凑后写入磁盘包括:
读取所述目标条带中的原数据;
对所述原数据以及所述写数据进行异或运算,以得到新校验数据;
将所述写数据以及所述新校验数据写入所述目标条带的对应位置。
19.根据权利要求18所述的磁盘阵列的写数据处理方法,其特征在于,所述读取所述目标条带中的原数据包括:
在磁盘中保留所述目标条带中的原数据,并将所述目标条带中的原数据读取到内存空间。
20.一种磁盘阵列的写数据处理装置,其特征在于,包括条带确定单元、故障盘判断单元和重构写单元;
所述条带确定单元,用于在磁盘启动重构任务的情况下,根据主机下发的写数据的逻辑地址以及设定的条带宽度,确定出写数据对应的目标条带;
所述故障盘判断单元,用于在所述目标条带具有写入标识的情况下,判断所述写数据及其校验数据的落盘位置是否命中故障盘;其中,所述写入标识用于表征所述目标条带已经写入数据;
所述重构写单元,用于在所述写数据或者其校验数据的落盘位置命中故障盘的情况下,对所述目标条带进行重构后将所述写数据写入所述目标条带。
21.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如权利要求1至19任意一项所述磁盘阵列的写数据处理方法的步骤。
22.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至19任意一项所述磁盘阵列的写数据处理方法的步骤。
CN202310995030.XA 2023-08-09 2023-08-09 一种磁盘阵列的写数据处理方法、装置、设备和介质 Pending CN116719484A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310995030.XA CN116719484A (zh) 2023-08-09 2023-08-09 一种磁盘阵列的写数据处理方法、装置、设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310995030.XA CN116719484A (zh) 2023-08-09 2023-08-09 一种磁盘阵列的写数据处理方法、装置、设备和介质

Publications (1)

Publication Number Publication Date
CN116719484A true CN116719484A (zh) 2023-09-08

Family

ID=87864680

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310995030.XA Pending CN116719484A (zh) 2023-08-09 2023-08-09 一种磁盘阵列的写数据处理方法、装置、设备和介质

Country Status (1)

Country Link
CN (1) CN116719484A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117008845A (zh) * 2023-09-27 2023-11-07 苏州元脑智能科技有限公司 读写指令的划分方法、装置、存储介质及电子装置
CN117472292A (zh) * 2023-12-27 2024-01-30 苏州元脑智能科技有限公司 独立磁盘冗余阵列的数据重构方法及存储***、控制器

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5208813A (en) * 1990-10-23 1993-05-04 Array Technology Corporation On-line reconstruction of a failed redundant array system
GB9823460D0 (en) * 1998-10-28 1998-12-23 Ibm Data storage array rebuild
US6105103A (en) * 1997-12-19 2000-08-15 Lsi Logic Corporation Method for mapping in dynamically addressed storage subsystems
US20060156059A1 (en) * 2005-01-13 2006-07-13 Manabu Kitamura Method and apparatus for reconstructing data in object-based storage arrays
CN110413205A (zh) * 2018-04-28 2019-11-05 伊姆西Ip控股有限责任公司 用于向磁盘阵列进行写入的方法、设备和计算机可读存储介质
CN113342279A (zh) * 2021-06-24 2021-09-03 苏州浪潮智能科技有限公司 一种磁盘阵列访问方法、装置、设备及存储介质
CN115168249A (zh) * 2022-06-21 2022-10-11 阿里巴巴(中国)有限公司 地址转换方法、存储器***、电子设备及存储介质
CN115202575A (zh) * 2022-06-22 2022-10-18 联想(北京)有限公司 一种数据处理方法及电子设备

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5208813A (en) * 1990-10-23 1993-05-04 Array Technology Corporation On-line reconstruction of a failed redundant array system
US6105103A (en) * 1997-12-19 2000-08-15 Lsi Logic Corporation Method for mapping in dynamically addressed storage subsystems
GB9823460D0 (en) * 1998-10-28 1998-12-23 Ibm Data storage array rebuild
US20060156059A1 (en) * 2005-01-13 2006-07-13 Manabu Kitamura Method and apparatus for reconstructing data in object-based storage arrays
CN110413205A (zh) * 2018-04-28 2019-11-05 伊姆西Ip控股有限责任公司 用于向磁盘阵列进行写入的方法、设备和计算机可读存储介质
CN113342279A (zh) * 2021-06-24 2021-09-03 苏州浪潮智能科技有限公司 一种磁盘阵列访问方法、装置、设备及存储介质
CN115168249A (zh) * 2022-06-21 2022-10-11 阿里巴巴(中国)有限公司 地址转换方法、存储器***、电子设备及存储介质
CN115202575A (zh) * 2022-06-22 2022-10-18 联想(北京)有限公司 一种数据处理方法及电子设备

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117008845A (zh) * 2023-09-27 2023-11-07 苏州元脑智能科技有限公司 读写指令的划分方法、装置、存储介质及电子装置
CN117008845B (zh) * 2023-09-27 2024-01-26 苏州元脑智能科技有限公司 读写指令的划分方法、装置、存储介质及电子装置
CN117472292A (zh) * 2023-12-27 2024-01-30 苏州元脑智能科技有限公司 独立磁盘冗余阵列的数据重构方法及存储***、控制器
CN117472292B (zh) * 2023-12-27 2024-03-12 苏州元脑智能科技有限公司 独立磁盘冗余阵列的数据重构方法及存储***、控制器

Similar Documents

Publication Publication Date Title
CN116719484A (zh) 一种磁盘阵列的写数据处理方法、装置、设备和介质
EP2983087A1 (en) Junk data recycling method and storage device
CN105843749B (zh) 一种基于FPGA的NAND Flash容错方法
CN109358809B (zh) 一种raid数据存储***及方法
CN107250975A (zh) 数据存储***和数据存储方法
CN110673789B (zh) 固态硬盘的元数据存储管理方法、装置、设备及存储介质
CN115437578B (zh) 一种磁盘阵列的数据迁移方法、装置、设备和介质
CN112835528B (zh) 脏页刷新方法和装置、电子设备和存储介质
JP6715334B2 (ja) Gpuリソース再構築方法、ユーザー・デバイス、システム及び記憶媒体
CN112463036B (zh) 一种磁盘计算分块条带的方法、***、终端及存储介质
CN114924923A (zh) 一种硬盘写入点正确性验证方法、***、设备及介质
CN105183583A (zh) 一种磁盘阵列的数据重建的方法及一种磁盘阵列***
CN101667458B (zh) 一种固态硬盘全盘擦除的方法和相应的设备
CN112269535A (zh) 存储***的空间资源分配方法、装置及可读存储介质
CN116339644B (zh) 一种独立磁盘冗余阵列创建方法、装置、设备及介质
CN104899158A (zh) 访存优化方法和装置
CN115599589B (zh) 一种数据恢复方法及相关装置
CN116795295A (zh) 磁盘阵列中的数据处理方法及装置、存储介质、电子设备
CN111597066A (zh) Ssd修复方法、装置、计算机设备及存储介质
CN111142787A (zh) 存储分层的数据交换测试方法、***、终端及存储介质
CN114756523A (zh) 一种分布式存储方法、装置以及介质
CN110688242A (zh) SSD异常掉电后恢复block信息的方法及相关组件
CN111399774B (zh) 分布式存储***下基于快照的数据处理方法和装置
CN113986599A (zh) 一种应用处理方法、终端、服务器、设备及存储介质
CN109584943B (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20230908