CN112148218A - 磁盘阵列的校验数据存储方法、装置、设备及存储介质 - Google Patents

磁盘阵列的校验数据存储方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN112148218A
CN112148218A CN202010956025.4A CN202010956025A CN112148218A CN 112148218 A CN112148218 A CN 112148218A CN 202010956025 A CN202010956025 A CN 202010956025A CN 112148218 A CN112148218 A CN 112148218A
Authority
CN
China
Prior art keywords
data
disk
check
cache
old
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.)
Granted
Application number
CN202010956025.4A
Other languages
English (en)
Other versions
CN112148218B (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.)
Beijing Inspur Data Technology Co Ltd
Original Assignee
Beijing Inspur Data 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 Beijing Inspur Data Technology Co Ltd filed Critical Beijing Inspur Data Technology Co Ltd
Priority to CN202010956025.4A priority Critical patent/CN112148218B/zh
Publication of CN112148218A publication Critical patent/CN112148218A/zh
Application granted granted Critical
Publication of CN112148218B publication Critical patent/CN112148218B/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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)
  • Memory System Of A Hierarchy Structure (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

本发明公开了一种磁盘阵列的校验数据存储方法、装置、设备及计算机可读存储介质,该方法包括:获取磁盘写入数据对应的校验数据;将校验数据写入到校验缓存中的目标分块;其中,校验缓存包括多个分块,目标分块为校验数据对应的分块;根据目标分块对应的磁盘的带宽情况,将目标分块中的校验数据写入到磁盘中;本发明通利用校验缓存的设置,将校验数据与用户数据的磁盘下刷分离,使得二者不具有串行关系,实现用户数据与校验数据的伪并行下发;并且通过根据目标分块对应的磁盘的带宽情况,将目标分块中的校验数据写入到磁盘中,进一步降低校验数据写入对磁盘阵列的数据写入的带宽占用和时延占用,从而提升磁盘阵列的数据写入速度。

Description

磁盘阵列的校验数据存储方法、装置、设备及存储介质
技术领域
本发明涉及数据存储技术领域,特别涉及一种磁盘阵列的校验数据存储方法、装置、设备及计算机可读存储介质。
背景技术
磁盘阵列(Redundant Arrays of Independent Disks,RAID)是一种独立磁盘构成的具有冗余能力的阵列。在存储设备中,磁盘阵列作为磁盘组合被使用以实现独立的磁盘不能实现的高级特性。磁盘阵列作为用户与磁盘之间的中间层,其向上为用户提供存储空间,向下管理磁盘组合,使用户数据经过阵列算法进行调度以写入到磁盘中。
现有技术中,磁盘阵列的传统阵列设计如图1所示,会将用户数据进行处理,将长数据(client date)切分为分块数据写入到各自对应的单个磁盘(如RAID member1)中,写入完成需完成所有的分块写入到磁盘,这包含将生成的校验数据写入到对应磁盘的操作。然而,如图1所示的磁盘阵列的数据存储中分块数据和校验数据以串行方式写入到对应的磁盘,使得校验数据写入对磁盘阵列的数据写入的带宽占用和时延占用较高,影响磁盘阵列的数据写入速度。
因此,如何能够降低校验数据写入对磁盘阵列的数据写入的带宽占用和时延占用,从而优化磁盘阵列的数据写入速度,是现今急需解决的问题。
发明内容
本发明的目的是提供一种磁盘阵列的校验数据存储方法、装置、设备及计算机可读存储介质,以降低校验数据写入对磁盘阵列的数据写入的带宽占用和时延占用,优化磁盘阵列的数据写入速度。
为解决上述技术问题,本发明提供一种磁盘阵列的校验数据存储方法,包括:
获取磁盘写入数据对应的校验数据;其中,所述磁盘写入数据为用户数据对应的分块数据;
将所述校验数据写入到校验缓存中的目标分块;其中,所述校验缓存包括多个分块,所述目标分块为所述校验数据对应的分块;
根据所述目标分块对应的磁盘的带宽情况,将所述目标分块中的所述校验数据写入到所述磁盘中。
可选的,所述获取磁盘写入数据对应的校验数据,包括:
根据获取的所述磁盘写入数据、磁盘旧数据和校验旧数据,确定所述磁盘写入数据对应的校验数据;其中,所述磁盘旧数据为所述磁盘写入数据的磁盘存储位置对应的数据,所述校验旧数据为所述磁盘旧数据对应的校验数据。
可选的,所述根据所述磁盘写入数据、磁盘旧数据和校验旧数据,确定所述磁盘写入数据对应的校验数据,包括:
对所述磁盘写入数据和所述磁盘旧数据进行异或运算,得到异或校验中间值;
根据所述磁盘存储位置,从所述校验缓存或目标磁盘中读取所述校验旧数据;其中,所述目标磁盘为存储所述校验旧数据的磁盘;
根据所述异或校验中间值和所述校验旧数据,计算得到所述磁盘写入数据对应的校验数据。
可选的,所述校验缓存具体为缓存链表时,所述根据所述目标分块对应的磁盘的带宽情况,将所述目标分块中的所述校验数据写入到所述磁盘中,包括:
检测所述校验缓存的已用容量是否达到缓存阈值;
若是,则从所述校验缓存的尾部开始选择下刷数据,并将所述下刷数据写入到下刷分块对应的磁盘中;其中,所述下刷分块为所述下刷数据对应的所述校验缓存中的分块,所述下刷分块对应的磁盘的带宽情况为空闲状态;
对应的,所述目标分块为所述校验缓存的头部对应的分块。
可选的,所述从所述校验缓存的尾部开始选择下刷数据,并将所述下刷数据写入到下刷分块对应的磁盘中,包括:
从所述校验缓存的尾部开始选择预设数量的所述下刷分块,并将所述下刷分块中的校验数据写入到所述下刷分块对应的磁盘中。
本发明还提供了一种磁盘阵列的校验数据存储装置,包括:
获取模块,用于获取磁盘写入数据对应的校验数据;其中,所述磁盘写入数据为用户数据对应的分块数据;
缓存模块,用于将所述校验数据写入到校验缓存中的目标分块;其中,所述校验缓存包括多个分块,所述目标分块为所述校验数据对应的分块;
下刷模块,用于根据所述目标分块对应的磁盘的带宽情况,将所述目标分块中的所述校验数据写入到所述磁盘中。
可选的,所述获取模块具体用于根据获取的所述磁盘写入数据、磁盘旧数据和校验旧数据,确定所述磁盘写入数据对应的校验数据;其中,所述磁盘旧数据为所述磁盘写入数据的磁盘存储位置对应的数据,所述校验旧数据为所述磁盘旧数据对应的校验数据。
可选的,所述校验缓存具体为缓存链表时,所述下刷模块,包括:
检测子模块,用于检测所述校验缓存的已用容量是否达到缓存阈值;
下刷子模块,用于若达到所述缓存阈值,则从所述校验缓存的尾部开始选择下刷数据,并将所述下刷数据写入到下刷分块对应的磁盘中;其中,所述下刷分块为所述下刷数据对应的所述校验缓存中的分块,所述下刷分块对应的磁盘的带宽情况为空闲状态;对应的,所述目标分块为所述校验缓存的头部对应的分块。
本发明还提供了一种磁盘阵列的校验数据存储设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述所述的磁盘阵列的校验数据存储方法的步骤。
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的磁盘阵列的校验数据存储方法的步骤。
本发明所提供的一种磁盘阵列的校验数据存储方法,包括:获取磁盘写入数据对应的校验数据;其中,磁盘写入数据为用户数据对应的分块数据;将校验数据写入到校验缓存中的目标分块;其中,校验缓存包括多个分块,目标分块为校验数据对应的分块;根据目标分块对应的磁盘的带宽情况,将目标分块中的校验数据写入到磁盘中;
可见,本发明通过将校验数据写入到校验缓存中的目标分块,利用校验缓存的设置,将校验数据与用户数据的磁盘下刷分离,使得二者不具有串行关系,实现用户数据与校验数据的伪并行下发;并且通过根据目标分块对应的磁盘的带宽情况,将目标分块中的校验数据写入到磁盘中,进一步降低校验数据写入对磁盘阵列的数据写入的带宽占用和时延占用,从而提升磁盘阵列的数据写入速度。此外,本发明还提供了一种磁盘阵列的校验数据存储装置、设备及计算机可读存储介质,同样具有上述有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为现有技术中的磁盘阵列的数据存储方法的示意图;
图2为本发明实施例所提供的一种磁盘阵列的校验数据存储方法的流程图;
图3为本发明实施例所提供的一种磁盘阵列的数据存储方法的示意图;
图4为本发明实施例所提供的一种磁盘阵列的校验数据存储装置的结构框图;
图5为本发明实施例所提供的一种磁盘阵列的校验数据存储设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图2,图2为本发明实施例所提供的一种磁盘阵列的校验数据存储方法的流程图。该方法可以包括:
步骤101:获取磁盘写入数据对应的校验数据;其中,磁盘写入数据为用户数据对应的分块数据。
具体的,本步骤中的磁盘写入数据可以为现有技术中需要写入到磁盘阵列的磁盘中的切分后的用户数据(即分块数据)。本步骤中的校验数据可以为用于校验写入到磁盘中的磁盘写入数据的数据。
对应的,本实施例还可以包括获取磁盘写入数据的步骤,以及将磁盘写入数据写入到对应磁盘的磁盘存储位置的步骤,以实现磁盘阵列的用户数据写入。如图3所示,可运行冗余磁盘阵列逻辑的设备(如服务器)中的处理器可以采用与现有技术中的用户数据存储方法相同或相似的方式,将用户数据(client date 1)切分为相应的分块数据(如strip1至strip 3),并存储到对应磁盘(如RAID member 1至RAID member 3)的磁盘存储位置。
需要说明的是,对于本步骤中处理器获取磁盘写入数据对应的校验数据的具体方式,可以由设计人员根据实用场景和用户需求自行设置,如处理器可以根据获取的磁盘写入数据、磁盘旧数据和校验旧数据,确定磁盘写入数据对应的校验数据;其中,磁盘旧数据为磁盘写入数据的磁盘存储位置对应的数据,校验旧数据为磁盘旧数据对应的校验数据;也就是说,处理器可以利用磁盘写入数据和磁盘旧数据之间的差异,确定校验旧数据与磁盘写入数据对应的校验数据之间的差异,从而利用校验旧数据确定磁盘写入数据对应的校验数据。只要处理器可以利用磁盘写入数据,获取磁盘写入数据对应的校验数据,本实施例对此不作任何限制。
具体的,上述磁盘旧数据可以为磁盘写入数据所写入的磁盘存储位置中之前存储的数据;上述校验旧数据可以为磁盘存储位置上存储的磁盘旧数据对应的校验数据。如磁盘阵列采用异或运算生成校验数据时,上述根据获取的磁盘写入数据、磁盘旧数据和校验旧数据,确定磁盘写入数据对应的校验数据的过程,可以包括处理器对磁盘写入数据和磁盘旧数据进行异或运算,得到异或校验中间值;根据磁盘存储位置,从校验缓存和/或目标磁盘中读取校验旧数据;根据异或校验中间值和校验旧数据,计算得到磁盘写入数据对应的校验数据;其中,目标磁盘为存储校验旧数据的磁盘。例如处理器可以在用户数据写入流程中使用新数据(即磁盘写入数据)与旧数据(即磁盘旧数据)计算二者的异或校验中间值;在用户数据写入流程完成后进行触发校验数据写入,对于校验缓存中存在的旧数据对应的校验数据(即校验旧数据),可以直接从校验缓存获取,对于校验缓存中不存在的校验旧数据,可以从磁盘上读取校验旧数据(如读取到校验缓存);使用异或校验中间值与校验旧数据计算新的校验数据。
对应的,获取磁盘写入数据对应的校验数据过程中或之后,可以将校验旧数据删除,避免校验旧数据对之后的校验数据生成的影响,减少校验数据的重复存储。
可以理解的是,本实施例是以用户数据的一个分块数据(即磁盘写入数据)对应的校验数据的存储为例进行的展示,对于其他分块数据对应的校验数据的存储,可以采用与本实施例所提供的方法相同或相似的方式实现,本实施例对此不作任何限制。
步骤102:将校验数据写入到校验缓存中的目标分块;其中,校验缓存包括多个分块,目标分块为校验数据对应的分块。
可以理解的是,本实施例中的校验缓存可以为用于缓存校验数据的内存区域,如图3中的stripe parity cache,即条带奇偶校验缓存。本步骤中的校验缓存可以包括多个分块(如图3中的parity 1和parity 2),每个分块可以为一块连续存储区域,同一阵列中的分块长度可以相等;校验缓存的最小长度单位可以为磁盘允许最小读取单位,最大缓存长度可以为预先设置的分块大小;条带(stripe)可以为连续的预指定个数的分块,分块之间具有的联系构成阵列冗余的基本单位,同一阵列中的条带长度可以相等。
具体的,本步骤中的目标分块可以为校验缓存中用于缓存磁盘写入数据对应的校验数据的分块。本步骤的目的可以为通过将缓存磁盘写入数据对应的校验数据写入到校验缓存,使校验数据不需要如现有技术一般立即存储到磁盘阵列中对应的磁盘中。
需要说明的是,对于本步骤中将校验数据写入到校验缓存中的目标分块的具体方式,即目标分块的具体选择,可以由设计人员根据实用场景和用户需求自行设置,如校验缓存具体为缓存链表时,本步骤可以为处理器将磁盘写入数据对应的校验数据写入到缓存链表(即校验缓存)的头部;也就是说,本步骤中的目标分块可以为校验缓存的头部对应的分块。
步骤103:根据目标分块对应的磁盘的带宽情况,将目标分块中的校验数据写入到磁盘中。
其中,本步骤的目的可以为处理器根据磁盘阵列中目标分块对应的磁盘的带宽情况,将目标分块中的校验数据写入到磁盘中,以实现校验数据的磁盘存储。
具体的,本实施例中校验缓存中的所有分块可以各自对应磁盘阵列中的磁盘。本实施例并不限定校验缓存的分块与磁盘阵列中的磁盘之间的具体对应关系,如分块与磁盘之间可以多对一对应,即每个分块可以对应一个磁盘,多个分块对应的磁盘可以相同;分块与磁盘之间也可以一对一对应,或一对多对应;只要处理器可以确定目标分块对应的用于存储磁盘写入数据对应的校验数据的磁盘,本实施例对此不作任何限制。
需要说明的是,本实施例中磁盘的带宽情况可以包括空闲状态和非空闲状态,即目标分块对应的磁盘的带宽情况为空闲状态时,处理器可以将目标分块中的校验数据写入到目标分块对应的磁盘中;目标分块对应的磁盘的带宽情况为非空闲状态时,处理器可以继续在目标分块中存储校验数据,等待该磁盘的带宽情况变为空闲状态。
具体的,对于本步骤中处理器根据目标分块对应的磁盘的带宽情况,将目标分块中的校验数据写入到磁盘中的具体方式,即处理器校验缓存中的校验数据的具体下刷方式,可以由设计人员根据实用场景和用户需求自行设置,如处理器可以仅根据磁盘的带宽情况,将目标分块中的校验数据写入到磁盘中;即处理器可以直接将空闲状态的磁盘对应的分块中的校验数据写入到该磁盘。处理器也可以根据磁盘的带宽情况和缓存阈值,将目标分块中的校验数据写入到磁盘中;即处理器可以根据校验缓存的已用容量与缓存阈值的比较,确定是否需要向磁盘下刷校验缓存中的校验数据;在已用容量达到缓存阈值时,根据需要下刷的校验数据(即选择数据)所在的分块(即选择分块)对应的磁盘的带宽情况,从选择数据中选择所在的分块对应的磁盘为空闲状态的校验数据(即下刷数据)下刷到所在的分块(即下刷分块)对应的磁盘。
对应的,对于上述选择数据的具体选择,可以由设计人员自行设置,如选择数据可以为校验缓存中长时间未使用的校验数据,例如校验缓存具体为缓存链表时,处理器可以检测校验缓存的已用容量是否达到缓存阈值;若是,则从校验缓存的尾部开始选择下刷数据,并将下刷数据写入到下刷分块对应的磁盘中;其中,下刷分块为下刷数据对应的校验缓存中的分块,下刷分块对应的磁盘的带宽情况为空闲状态。
具体的,校验缓存的已用容量达到缓存阈值时,从校验缓存下刷的校验数据的具体情况,可以由设计人员自行设置,如处理器可以从校验缓存的尾部开始选择预设数量的下刷分块,并将下刷分块中的校验数据写入到下刷分块对应的磁盘中;即从校验缓存下刷校验数据时可以以分块为单位,将从校验缓存的尾部开始的对应空闲状态的磁盘的预设数量的分块(即下刷分块)中的校验数据(即下刷数据)下刷到各分块对应的磁盘中;处理器也可以校验缓存的尾部开始选择预设数量的选择分块,从选择分块中确定下刷分块并将下刷分块中的校验数据写入到下刷分块对应的磁盘中。
相应的,本实施例中处理器可以按预设时间间隔检测校验缓存的已用容量是否达到缓存阈值,例如处理器对校验数据的写盘可以由定时器触发,按预设时间间隔检测校验数据的缓存是否达到缓存阈值(如70%最大阈值)。对于本实施例中校验缓存的已用容量未达到缓存阈值的情况,可以返回步骤101等待下次获取新的校验数据,或者直接结束本流程等待定时器触发再次进入本步骤。
需要说明的是,本实施例所提供的磁盘阵列的校验数据存储方法,可以通过编程语言进行描述,采用编译器程序进行编译,生成可在可运行冗余磁盘阵列逻辑的设备(如存储服务器)上执行的可执行程序文件,通过替换源程序或作为程序部分内容的方式完成程序的部署,从而使处理器能够在用户数据写入时触发实现校验数据写入磁盘的功能。
本实施例中,本发明实施例通过将校验数据写入到校验缓存中的目标分块,利用校验缓存的设置,将校验数据与用户数据的磁盘下刷分离,使得二者不具有串行关系,实现用户数据与校验数据的伪并行下发;并且通过根据目标分块对应的磁盘的带宽情况,将目标分块中的校验数据写入到磁盘中,进一步降低校验数据写入对磁盘阵列的数据写入的带宽占用和时延占用,从而提升磁盘阵列的数据写入速度。
请参考图4,图4为本发明实施例所提供的一种磁盘阵列的校验数据存储装置的结构框图。该装置可以包括:
获取模块10,用于获取磁盘写入数据对应的校验数据;其中,磁盘写入数据为用户数据对应的分块数据;
缓存模块20,用于将校验数据写入到校验缓存中的目标分块;其中,校验缓存包括多个分块,目标分块为校验数据对应的分块;
下刷模块30,用于根据目标分块对应的磁盘的带宽情况,将目标分块中的校验数据写入到磁盘中。
可选的,获取模块10可以具体用于根据获取的磁盘写入数据、磁盘旧数据和校验旧数据,确定磁盘写入数据对应的校验数据;其中,磁盘旧数据为磁盘写入数据的磁盘存储位置对应的数据,校验旧数据为磁盘旧数据对应的校验数据。
可选的,获取模块10,可以包括:
异或子模块,用于对磁盘写入数据和磁盘旧数据进行异或运算,得到异或校验中间值;
读取子模块,用于根据磁盘存储位置,从校验缓存或目标磁盘中读取校验旧数据;其中,目标磁盘为存储校验旧数据的磁盘;
写入子模块,用于根据异或校验中间值和校验旧数据,计算得到磁盘写入数据对应的校验数据。
可选的,校验缓存具体为缓存链表时,下刷模块30,可以包括:
检测子模块,用于检测校验缓存的已用容量是否达到缓存阈值;
下刷子模块,用于若达到缓存阈值,则从校验缓存的尾部开始选择下刷数据,并将下刷数据写入到下刷分块对应的磁盘中;其中,下刷分块为下刷数据对应的校验缓存中的分块,下刷分块对应的磁盘的带宽情况为空闲状态;对应的,目标分块为校验缓存的头部对应的分块。
可选的,下刷子模块可以具体用于从校验缓存的尾部开始选择预设数量的下刷分块,并将下刷分块中的校验数据写入到下刷分块对应的磁盘中。
本实施例中,本发明实施例通过缓存模块20将校验数据写入到校验缓存中的目标分块,利用校验缓存的设置,将校验数据与用户数据的磁盘下刷分离,使得二者不具有串行关系,实现用户数据与校验数据的伪并行下发;并且通过下刷模块30根据目标分块对应的磁盘的带宽情况,将目标分块中的校验数据写入到磁盘中,进一步降低校验数据写入对磁盘阵列的数据写入的带宽占用和时延占用,从而提升磁盘阵列的数据写入速度。
请参考图5,图5为本发明实施例所提供的一种磁盘阵列的校验数据存储设备的结构示意图。该设备1可以包括:
存储器11,用于存储计算机程序;处理器12,用于执行该计算机程序时实现如上述实施例所提供的磁盘阵列的校验数据存储方法的步骤。
设备1可以为可运行冗余磁盘阵列逻辑的设备(如服务器),设备1可以包括存储器11、处理器12和总线13。
其中,存储器11至少包括一种类型的可读存储介质,该可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是设备1的内部存储单元。存储器11在另一些实施例中也可以是设备1的外部存储设备,例如服务器上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器11还可以既包括设备1的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装于设备1的应用软件及各类数据,例如:执行磁盘阵列的校验数据存储方法的程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器12在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行磁盘阵列的校验数据存储方法的程序的代码等。
该总线13可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
进一步地,设备还可以包括网络接口14,网络接口14可选的可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该设备1与其他电子设备之间建立通信连接。
可选地,该设备1还可以包括用户接口15,用户接口15可以包括显示器(Display)、输入单元比如按键,可选的用户接口15还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在设备1中处理的信息以及用于显示可视化的用户界面。
图5仅示出了具有组件11-15的设备1,本领域技术人员可以理解的是,图5示出的结构并不构成对设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
此外,本申请实施例还公开了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现如上述实施例所提供的磁盘阵列的校验数据存储方法的步骤。
其中,该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、设备及计算机可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
以上对本发明所提供的一种磁盘阵列的校验数据存储方法、装置、设备及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

Claims (10)

1.一种磁盘阵列的校验数据存储方法,其特征在于,包括:
获取磁盘写入数据对应的校验数据;其中,所述磁盘写入数据为用户数据对应的分块数据;
将所述校验数据写入到校验缓存中的目标分块;其中,所述校验缓存包括多个分块,所述目标分块为所述校验数据对应的分块;
根据所述目标分块对应的磁盘的带宽情况,将所述目标分块中的所述校验数据写入到所述磁盘中。
2.根据权利要求1所述的磁盘阵列的校验数据存储方法,其特征在于,所述获取磁盘写入数据对应的校验数据,包括:
根据获取的所述磁盘写入数据、磁盘旧数据和校验旧数据,确定所述磁盘写入数据对应的校验数据;其中,所述磁盘旧数据为所述磁盘写入数据的磁盘存储位置对应的数据,所述校验旧数据为所述磁盘旧数据对应的校验数据。
3.根据权利要求2所述的磁盘阵列的校验数据存储方法,其特征在于,所述根据所述磁盘写入数据、磁盘旧数据和校验旧数据,确定所述磁盘写入数据对应的校验数据,包括:
对所述磁盘写入数据和所述磁盘旧数据进行异或运算,得到异或校验中间值;
根据所述磁盘存储位置,从所述校验缓存或目标磁盘中读取所述校验旧数据;其中,所述目标磁盘为存储所述校验旧数据的磁盘;
根据所述异或校验中间值和所述校验旧数据,计算得到所述磁盘写入数据对应的校验数据。
4.根据权利要求1至3任一项所述的磁盘阵列的校验数据存储方法,其特征在于,所述校验缓存具体为缓存链表时,所述根据所述目标分块对应的磁盘的带宽情况,将所述目标分块中的所述校验数据写入到所述磁盘中,包括:
检测所述校验缓存的已用容量是否达到缓存阈值;
若是,则从所述校验缓存的尾部开始选择下刷数据,并将所述下刷数据写入到下刷分块对应的磁盘中;其中,所述下刷分块为所述下刷数据对应的所述校验缓存中的分块,所述下刷分块对应的磁盘的带宽情况为空闲状态;
对应的,所述目标分块为所述校验缓存的头部对应的分块。
5.根据权利要求4所述的磁盘阵列的校验数据存储方法,其特征在于,所述从所述校验缓存的尾部开始选择下刷数据,并将所述下刷数据写入到下刷分块对应的磁盘中,包括:
从所述校验缓存的尾部开始选择预设数量的所述下刷分块,并将所述下刷分块中的校验数据写入到所述下刷分块对应的磁盘中。
6.一种磁盘阵列的校验数据存储装置,其特征在于,包括:
获取模块,用于获取磁盘写入数据对应的校验数据;其中,所述磁盘写入数据为用户数据对应的分块数据;
缓存模块,用于将所述校验数据写入到校验缓存中的目标分块;其中,所述校验缓存包括多个分块,所述目标分块为所述校验数据对应的分块;
下刷模块,用于根据所述目标分块对应的磁盘的带宽情况,将所述目标分块中的所述校验数据写入到所述磁盘中。
7.根据权利要求6所述的磁盘阵列的校验数据存储装置,其特征在于,所述获取模块具体用于根据获取的所述磁盘写入数据、磁盘旧数据和校验旧数据,确定所述磁盘写入数据对应的校验数据;其中,所述磁盘旧数据为所述磁盘写入数据的磁盘存储位置对应的数据,所述校验旧数据为所述磁盘旧数据对应的校验数据。
8.根据权利要求6或7所述的磁盘阵列的校验数据存储装置,其特征在于,所述校验缓存具体为缓存链表时,所述下刷模块,包括:
检测子模块,用于检测所述校验缓存的已用容量是否达到缓存阈值;
下刷子模块,用于若达到所述缓存阈值,则从所述校验缓存的尾部开始选择下刷数据,并将所述下刷数据写入到下刷分块对应的磁盘中;其中,所述下刷分块为所述下刷数据对应的所述校验缓存中的分块,所述下刷分块对应的磁盘的带宽情况为空闲状态;对应的,所述目标分块为所述校验缓存的头部对应的分块。
9.一种磁盘阵列的校验数据存储设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述的磁盘阵列的校验数据存储方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的磁盘阵列的校验数据存储方法的步骤。
CN202010956025.4A 2020-09-11 2020-09-11 磁盘阵列的校验数据存储方法、装置、设备及存储介质 Active CN112148218B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010956025.4A CN112148218B (zh) 2020-09-11 2020-09-11 磁盘阵列的校验数据存储方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010956025.4A CN112148218B (zh) 2020-09-11 2020-09-11 磁盘阵列的校验数据存储方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN112148218A true CN112148218A (zh) 2020-12-29
CN112148218B CN112148218B (zh) 2023-12-22

Family

ID=73889641

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010956025.4A Active CN112148218B (zh) 2020-09-11 2020-09-11 磁盘阵列的校验数据存储方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN112148218B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113468008A (zh) * 2021-07-13 2021-10-01 深圳市越疆科技有限公司 安全控制器的检测方法、装置、设备及存储介质
CN113849123A (zh) * 2021-08-14 2021-12-28 苏州浪潮智能科技有限公司 一种慢盘的数据处理方法、系统、设备以及介质
CN115129265A (zh) * 2022-09-01 2022-09-30 苏州浪潮智能科技有限公司 独立冗余磁盘阵列分块缓存方法、装置、设备及可读介质
CN116501262A (zh) * 2023-06-19 2023-07-28 新华三信息技术有限公司 一种数据存储方法、装置、电子设备及存储介质
CN117806568A (zh) * 2024-02-29 2024-04-02 山东云海国创云计算装备产业创新中心有限公司 一种数据更新方法、装置、设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130173955A1 (en) * 2012-01-04 2013-07-04 Xtremlo Ltd Data protection in a random access disk array
CN105630423A (zh) * 2015-12-25 2016-06-01 华中科技大学 一种基于数据缓存的纠删码集群存储扩容方法
CN106325773A (zh) * 2016-08-23 2017-01-11 浪潮(北京)电子信息产业有限公司 一种存储系统数据的一致性保障方法、系统及缓存装置
CN107885613A (zh) * 2017-11-09 2018-04-06 郑州云海信息技术有限公司 一种基于raid5的数据写入方法、装置及介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130173955A1 (en) * 2012-01-04 2013-07-04 Xtremlo Ltd Data protection in a random access disk array
CN105630423A (zh) * 2015-12-25 2016-06-01 华中科技大学 一种基于数据缓存的纠删码集群存储扩容方法
CN106325773A (zh) * 2016-08-23 2017-01-11 浪潮(北京)电子信息产业有限公司 一种存储系统数据的一致性保障方法、系统及缓存装置
CN107885613A (zh) * 2017-11-09 2018-04-06 郑州云海信息技术有限公司 一种基于raid5的数据写入方法、装置及介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李元章;孙志卓;马忠梅;郑军;谭毓安;: "S-RAID5:一种适用于顺序数据访问的节能磁盘阵列", 计算机学报, no. 06 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113468008A (zh) * 2021-07-13 2021-10-01 深圳市越疆科技有限公司 安全控制器的检测方法、装置、设备及存储介质
CN113849123A (zh) * 2021-08-14 2021-12-28 苏州浪潮智能科技有限公司 一种慢盘的数据处理方法、系统、设备以及介质
CN113849123B (zh) * 2021-08-14 2023-08-25 苏州浪潮智能科技有限公司 一种慢盘的数据处理方法、系统、设备以及介质
CN115129265A (zh) * 2022-09-01 2022-09-30 苏州浪潮智能科技有限公司 独立冗余磁盘阵列分块缓存方法、装置、设备及可读介质
CN116501262A (zh) * 2023-06-19 2023-07-28 新华三信息技术有限公司 一种数据存储方法、装置、电子设备及存储介质
CN116501262B (zh) * 2023-06-19 2023-09-19 新华三信息技术有限公司 一种数据存储方法、装置、电子设备及存储介质
CN117806568A (zh) * 2024-02-29 2024-04-02 山东云海国创云计算装备产业创新中心有限公司 一种数据更新方法、装置、设备和存储介质
CN117806568B (zh) * 2024-02-29 2024-06-07 山东云海国创云计算装备产业创新中心有限公司 一种数据更新方法、装置、设备和存储介质

Also Published As

Publication number Publication date
CN112148218B (zh) 2023-12-22

Similar Documents

Publication Publication Date Title
CN112148218B (zh) 磁盘阵列的校验数据存储方法、装置、设备及存储介质
US10114578B2 (en) Solid state disk and data moving method
JP2004227560A (ja) 外部格納サブシステムにおけるパリティー格納方法及びエラーブロック復旧方法
CN110399247B (zh) 一种数据恢复方法、装置、设备及计算机可读存储介质
US10504492B2 (en) Apparatus and methods for generating dynamic trace data on a GPU
CN111881135A (zh) 一种数据聚合方法、装置、设备及计算机可读存储介质
US10789170B2 (en) Storage management method, electronic device and computer readable medium
CN106033320B (zh) 高性能廉价磁盘冗余阵列raid机制的处理方法及装置
US20160335008A1 (en) Systems And Methods For RAID Storage Configuration Using Hetereogenous Physical Disk (PD) Set Up
CN112148221A (zh) 一种磁盘冗余阵列的巡检方法、装置、设备及存储介质
CN112835528A (zh) 脏页刷新方法和装置、电子设备和存储介质
CN114155906A (zh) 一种数据块修复方法、装置、设备及存储介质
US10664412B2 (en) Performance booster with resolution of picket-fence I/O flushing in a storage system with heterogeneous I/O workloads
CN104360953A (zh) 数据拷贝方法及装置
CN108170571B (zh) 一种芯片追踪调试装置及方法
CN112463059B (zh) 一种写数据处理方法、装置、电子设备及存储介质
KR20200100203A (ko) 메모리 모듈 데이터 객체 처리 시스템 및 방법
CN110941605B (zh) 重复数据的在线删除方法、装置及可读存储介质
CN108334457B (zh) 一种io处理方法及装置
CN109542671A (zh) 校验数据生成方法及固态硬盘
CN115599589A (zh) 一种数据恢复方法及相关装置
CN114217736A (zh) 减少预读的数据写入方法、装置和存储介质
CN106919340B (zh) 提高raid读取性能的系统及方法
CN109189340B (zh) 用于存取独立硬盘冗余阵列的系统与方法
CN112948281A (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