CN117591009A - 一种数据管理方法、存储装置及服务器 - Google Patents
一种数据管理方法、存储装置及服务器 Download PDFInfo
- Publication number
- CN117591009A CN117591009A CN202311394601.0A CN202311394601A CN117591009A CN 117591009 A CN117591009 A CN 117591009A CN 202311394601 A CN202311394601 A CN 202311394601A CN 117591009 A CN117591009 A CN 117591009A
- Authority
- CN
- China
- Prior art keywords
- data
- target data
- write
- ssd
- check
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 88
- 238000013523 data management Methods 0.000 title claims abstract description 36
- 238000012795 verification Methods 0.000 claims abstract description 121
- 238000004364 calculation method Methods 0.000 claims abstract description 60
- 238000013403 standard screening design Methods 0.000 claims description 105
- 230000004044 response Effects 0.000 claims description 29
- 239000007787 solid Substances 0.000 claims description 13
- 230000005540 biological transmission Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 9
- 238000004590 computer program Methods 0.000 description 7
- 230000001133 acceleration Effects 0.000 description 6
- 238000007726 management method Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000003491 array Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000010304 firing Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种数据管理方法、存储装置及服务器,其中数据管理方法包括:RAI D控制卡响应于第一目标数据的写操作命令,从RAI D组的第一SSD获取第二目标数据,在RAI D组支持写校验操作,且第一目标数据的数据量小于RAI D组的条带单元的存储空间的情况下,向第二SSD发送写校验命令、第一目标数据以及第二目标数据,使得第二SSD对第一目标数据、第二目标数据以及第一校验数据进行校验计算,得到第二校验数据,存储第二校验数据。RAI D控制卡向第一SSD发送第一目标数据的写操作命令,使得第一SSD存储第一目标数据,可以减少对RAI D控制卡的内存的访问频率,有效提升RAI D组的写性能。
Description
技术领域
本申请涉及服务器技术领域,尤其涉及一种数据管理方法、存储装置及服务器。
背景技术
服务器通常配置有冗余磁盘阵列(Redundant Arrays of Independent Disks,RAID)控制卡,RAID控制卡可以对服务器的硬盘进行管理,例如,利用RAID控制卡可以将服务器的多个硬盘配置成所需级别的RAID组,RAID组的级别可以包括RAID 0、RAID 1、RAID5、RAID 6等,其中,例如通过RAID 5或者RAID 6的条带化校验对硬盘数据进行冗余保护是RAID控制卡的一个重要功能。在对RAID 5或者RAID 6的RAID组进行写操作时,由RAID控制卡根据新数据和对应的旧数据计算新的校验值,这其中涉及对RAID控制卡的内存(例如双倍数据率同步动态随机存取存储器(Double Data Rate Synchronous Dynamic RandomAccess Memory,DDR))的频繁读写,导致RAID控制卡的内存带宽成为RAID组写性能的瓶颈。
因此,如何有效提升RAID组的写性能已成为亟待解决的问题。
发明内容
本申请实施例提供一种数据管理方法、存储装置及服务器,可以减少写流程中对RAID控制卡的DDR的访问频率,充分发挥SSD的性能,从而有效提升RAID组的写性能。
第一方面,本申请实施例提供了一种数据管理方法,应用于服务器,所述服务器包括冗余磁盘阵列RAID控制卡以及多个固态硬盘SSD,所述多个SSD通过所述RAID控制卡组成支持条带校验的RAID组,所述方法包括:
所述RAID控制卡响应于第一目标数据的写操作命令,从所述多个SSD中的第一SSD获取所述第一目标数据对应的第二目标数据;其中,所述第一目标数据用于替代所述第二目标数据。
所述RAID控制卡在所述RAID组支持写校验操作,且所述第一目标数据的数据量小于所述RAID组的条带单元的存储空间的情况下,向所述多个SSD中的第二SSD发送写校验命令、所述第一目标数据以及所述第二目标数据;其中,所述写校验命令用于指示所述第二SSD对所述第一目标数据、所述第二目标数据以及第一校验数据进行校验计算,得到第二校验数据,并存储所述第二校验数据。
所述RAID控制卡向所述第一SSD发送所述第一目标数据的写操作命令,所述写操作命令用于指示所述第一SSD存储所述第一目标数据。通过将校验数据的计算工作从RAID控制卡分配到RAID组的各个SSD中,有效减少了写流程中对RAID控制卡的内存的访问频率,同时也可以充分发挥SSD的性能,从而有效提升了RAID组的写性能。
在一种可实现方式中,所述RAID控制卡向所述第二SSD发送写校验命令、所述第一目标数据以及所述第二目标数据的具体实现方式包括:
所述RAID控制卡调用写校验接口向所述第二SSD发送写校验命令,所述写校验命令包括命令字、第一校验数据的存储位置以及待传输数据的长度,所述待传输数据的长度为所述第一目标数据的长度的两倍。
所述RAID控制卡在收到所述第二SSD对所述写校验命令的响应消息时,调用所述写校验接口向所述第二SSD发送所述待传输数据,所述待传输数据包括所述第一目标数据以及所述第二目标数据。
在一种可实现方式中,所述命令字为扩展的写命令字。
在一种可实现方式中,所述命令字为已有的写命令字,所述写校验命令还包括校验计算标志位。
第二方面,本申请实施例提供了一种数据管理方法,应用于服务器,所述服务器包括冗余磁盘阵列RAID控制卡以及多个固态硬盘SSD,所述多个SSD通过所述RAID控制卡组成支持条带校验的RAID组,所述方法包括:
第二SSD接收写校验命令、第一目标数据以及第二目标数据,所述写校验命令、所述第一目标数据以及所述第二目标数据是由所述RAID控制卡在所述RAID组支持写校验操作,且第一目标数据的数据量小于所述RAID组的条带单元的存储空间的情况下,向所述第二SSD发送的,所述第二目标数据为所述多个SSD中第一SSD存储的所述第一目标数据对应的数据;其中,所述第一目标数据用于替代所述第二目标数据。
所述第二SSD响应所述写校验命令获取存储的第一校验数据。
所述第二SSD对所述第一目标数据、所述第二目标数据以及所述第一校验数据进行校验计算,得到第二校验数据,并存储所述第二校验数据。通过将RAID控制卡的校验数据计算工作分散到RAID组的各个SSD中,既可以充分发挥SSD的性能,也有效降低了RAID控制卡的内存带宽对RAID组写性能的瓶颈限制,从而有效提升了RAID组的写性能。
第三方面,本申请实施例提供了一种RAID控制电路,包括RAID芯片以及存储设备,所述RAID芯片通过运行RAID固件代码,执行如第一方面所述的数据管理方法。
第四方面,本申请实施例提供了一种存储装置,包括主控芯片以及存储阵列,所述主控芯片通过运行硬盘固件代码,执行如第二方面所述的数据管理方法。
第五方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行,用以执行如第一方面或第二方面所述的数据管理方法。
第六方面,本申请实施例提供了一种计算机程序产品,包括计算机程序,所述计算机程序被计算机处理器执行时实现如第一方面或第二方面所述的数据管理方法。
第七方面,本申请实施例提供了一种服务器,包括第三方面所述的RAID控制电路以及第四方面所述的存储装置。
本申请实施例中,RAID控制卡响应于第一目标数据的写操作命令,从多个SSD中的第一SSD获取第一目标数据对应的第二目标数据,第一目标数据用于替代第二目标数据。第一SSD为写入第一目标数据的目标盘。RAID控制卡在RAID组支持写校验操作,且第一目标数据的数据量小于RAID组的条带单元的存储空间的情况下,基于条带化校验确定出第二目标数据所在条带对应的校验盘为第二SSD,并向第二SSD发送写校验命令、第一目标数据以及第二目标数据,第二SSD响应写校验命令获取第一校验数据,然后第二SSD对第一目标数据、第二目标数据以及第一校验数据进行校验计算,得到第二校验数据,并存储第二校验数据,以更新当前存储的第一校验数据。另外,RAID控制卡向第一SSD发送第一目标数据的写操作命令,第一SSD响应该写操作命令存储第一目标数据,以更新当前存储的第二目标数据,通过将校验数据的计算工作从RAID控制卡均匀地分配到RAID组的各个SSD中,有效减少了写流程中对RAID控制卡的内存的访问频率,降低了RAID控制卡的内存带宽对RAID组写性能的瓶颈限制,同时也可以充分发挥SSD的性能,从而有效提升了RAID组的写性能。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本申请实施例提供的一种RAID组的数据条带化管理示意图;
图1b是本申请实施例提供的一种服务器的结构示意图;
图2是本申请实施例提供的一种数据管理方法的流程示意图;
图3是本申请实施例提供的另一种数据管理方法的流程示意图;
图4是本申请实施例提供的又一种数据管理方法的流程示意图;
图5是本申请实施例提供的又一种数据管理方法的流程示意图;
图6a是本申请实施例提供的一种磁盘管理方法的流程示意图;
图6b是本申请实施例提供的又一种数据管理方法的流程示意图;
图7是本申请实施例提供的一种RAID 5写数据的流程示意图;
图8是本申请实施例提供的一种RAID 5小写的流程示意图;
图9是本申请实施例提供的一种数据管理装置的结构示意图;
图10是本申请实施例提供的另一种数据管理装置的结构示意图;
图11是本申请实施例提供的一种RAID控制电路的结构示意图;
图12是本申请实施例提供的一种存储装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请实施例中所涉及到的“第一”、“第二”等描述仅用于描述目的,而不能理解为指示或者暗示其相对重要性或者隐含指明所指示的技术特征的数量。因此,限定有“第一”、“第二”的技术特征可以明示或者隐含的包括至少一个该特征。
为了更好地理解本申请实施例的方案,下面先对本申请实施例可能涉及的相关术语和概念进行介绍。
RAID:冗余磁盘阵列(Redundant Arrays of Independent Disks),RAID是将多块物理磁盘通过RAID控制卡组合成虚拟的单块大容量磁盘使用,提供比单个磁盘更高的存储性能、更高的输入/输出(Input/Output,I/O)性能及可靠性。
请参见图1a,是本申请实施例提供的一种RAID组的数据条带化管理示意图。图1a中,通过RAID控制卡将4个磁盘(磁盘0、磁盘1、磁盘2、磁盘3)组成RAID 5级别的RAID组,每个条带包括3个数据盘以及1个校验盘。其中,磁盘具体可以采用固态硬盘(solid-statedrive,SSD)。
其中,图1a示出了数据在RAID组中各磁盘的分布情况,具体的,P1是数据D0、D1、D2的校验数据,磁盘0、磁盘1、磁盘2作为该条带的数据盘,磁盘3作为该条带的校验盘。P2是D3、D4、D5的校验数据,磁盘0、磁盘1、磁盘3作为该条带的数据盘,磁盘2作为该条带的校验盘。依此类推,各条带中的校验数据在各个磁盘中均匀分布。
在一些相关技术中,对支持条带校验的RAID组进行写数据操作时,如果数据量较小,通常是由RAID控制卡的加速引擎(如异或(exclusive-OR,XOR)引擎)与内存(如DDR)配合对数据执行小写流程。以RAID 5级别为例,一次常规的RAID 5小写完整流程可以包括以下步骤:
(1)处理器向RAID控制卡发送一个新数据D0n,写入的目标盘为SSD 0,校验盘为SSD 3,RAID控制卡收到数据D0n后存入内存DDR。
(2)RAID控制卡从SSD 0获取新数据D0n对应的当前数据D0,并存入DDR。
(3)RAID控制卡从校验盘SSD 3读取当前校验数据P,并存入DDR。
(4)RAID控制卡从DDR中读取D0n、D0、P,并将D0n、D0、P送入加速引擎XOR,加速引擎XOR通过异或运算来计算新校验值Pn,计算公式:D0n⊕D0⊕P=Pn。
(5)RAID控制卡将Pn存入DDR。
(6)RAID控制卡从DDR中读取新数据D0n,并将新数据D0n写入目标盘SSD 0。
(7)RAID控制卡从DDR中读取新校验值Pn,并将新校验值Pn写入校验盘SSD 3。
可以看出,在一次RAID 5小写流程中,会对RAID控制卡的DDR进行频繁访问(访问次数多达7次),使得RAID控制卡的DDR通道的带宽很容易成为RAID 5写性能的瓶颈,难以充分发挥SSD的性能。
另外,RAID 6级别的RAID组是在每个条带上有两个校验数据,对应分配两个校验盘存储这两个校验数据,因此RAID 6的小写流程需要计算两次校验值,并写入对应的校验盘,相比于RAID 5的小写流程,RAID 6的小写流程对RAID控制卡的DDR的访问次数会更多。另外,RAID 50级别的RAID组是将多个RAID 5级别的RAID组以RAID 0的方式组合起来,其中每个RAID组都会涉及上述的RAID 5小写流程。RAID 60级别的RAID组是将多个RAID 6级别的RAID组以RAID 0的方式组合起来,其中每个RAID组都会涉及上述的RAID 6小写流程。
综合来看,相关技术对支持条带校验的RAID组的写流程中,都会对RAID控制卡的DDR进行频繁访问,使得RAID控制卡的DDR通道的带宽很容易成为RAID组写性能的瓶颈,难以充分发挥SSD的性能。
基于此,本申请实施例提出一种数据管理方法,可以对支持条带校验的RAID组的写流程进行优化,通过RAID控制卡与RAID组中各个SSD的配合,将校验数据的计算工作从RAID控制卡均匀地分配到RAID组的各个SSD中,有效减少了写流程中对RAID控制卡的DDR的访问频率,降低了RAID控制卡的DDR通道性能对RAID组写性能的瓶颈限制,同时也可以充分发挥SSD的性能,从而有效提升了RAID组的写性能。
为了更好地理解本申请实施例提供的技术方案,下面对本申请的相关实施例进行描述。
请参见图1b,是本申请实施例提供的一种服务器的结构示意图,该服务器包括处理器101、RAID控制卡102以及多个固态硬盘SSD 103,图1b中是以4个SSD 103(包括SSD 0、SSD 1、SSD 2、SSD 3)为例,其中:
处理器101,用于通过RAID控制卡102对各个SSD 103进行数据读写操作。
RAID控制卡102,用于根据处理器101的指令,将服务器的多个SSD 103组成RAID组,并对RAID组包括的各个SSD 103进行数据读写操作。
固态硬盘SSD 103,用于受RAID控制卡102的控制,与其他SSD组成RAID组,并可以持久化存储数据。对于支持条带校验的RAID组,RAID组包括的各个SSD 103存储的数据具体包括用户数据以及校验数据。
其中,RAID控制卡102具体可以包括RAID芯片以及内存DDR。
RAID芯片:用于运行RAID控制卡的固件代码,同时RAID芯片中集成了加速引擎,例如异或XOR加速引擎。
RAID控制卡的DDR:用于与RAID芯片配合运行RAID控制卡的固件代码,同时提供RAID 5、RAID 6、RAID 50、RAID 60等RAID组的校验计算过程中的数据暂存,用户数据缓存等功能。
其中,图1b以SSD 3为例示出了SSD的具体结构,SSD具体可以包括SSD主控芯片、内存RAM以及flash阵列。
SSD主控芯片:用于运行SSD的固件代码,进行闪存转换层(Flash TranslationLayer,FTL)FTL处理等,同时集成了SSD中的异或XOR加速引擎,以及用于与flash阵列交互的NAND接口等。
SSD的RAM:用于与SSD主控芯片配合运行SSD的固件代码,同时提供用户数据缓存功能。
SSD的flash阵列:用于存储用户数据以及校验数据。
在一实施例中,当需要向RAID组写入新数据(如第一目标数据)时,处理器101可以向RAID控制卡102发送第一目标数据的写操作命令。RAID控制卡102响应于第一目标数据的写操作命令,从多个SSD 103中的第一SSD获取第一目标数据对应的第二目标数据,第一目标数据在第一SSD上的存储位置与第二目标数据在第一SSD上的存储位置相同,第一目标数据用于替代第二目标数据,第二目标数据可以理解为旧数据或者SSD初始化产生的数据,第一SSD为写入新数据的目标盘。例如,用户A的用户数据保存在第一SSD的目标存储位置,当前该目标存储位置保存的用户数据具体为第二目标数据(旧数据),当用户数据发生变化(由第二目标数据变为第一目标数据)时,会将第一目标数据(新数据)保存在该目标存储位置,以替代第二目标数据。RAID控制卡102在RAID组支持写校验操作,且第一目标数据的数据量小于RAID组的条带单元的存储空间的情况下,执行第一目标数据的小写流程,具体可以包括:RAID控制卡102基于条带化校验确定出第二目标数据所在条带对应的校验数据存储在多个SSD 103中的第二SSD,并向第二SSD发送写校验命令、第一目标数据以及第二目标数据,第二SSD响应写校验命令获取第一校验数据,第一校验数据是对RAID组中第二目标数据所在的条带包括的数据进行校验计算得到的,然后第二SSD对第一目标数据、第二目标数据以及第一校验数据进行校验计算,得到第二校验数据,并存储第二校验数据,以更新当前存储的第一校验数据。另外,RAID控制卡102向第一SSD发送第一目标数据的写操作命令,第一SSD响应该写操作命令存储第一目标数据,以更新当前存储的第二目标数据。
其中,条带单元是指对RAID组中的SSD划分的指定大小(例如256KB)的存储空间,1个SSD可以被划分为多个条带单元。RAID组包括的各个SSD的条带单元组成对应的条带,以图1a为例,数据D0所在的条带单元、数据D1所在的条带单元、数据D2所在的条带单元以及校验数据P1所在的条带单元组成一个条带。
在一实施例中,处理器101与RAID控制卡102之间可以通过高速串行计算机扩展总线标准(Peripheral Component Interconnect Express,PCIe)接口进行通信,RAID控制卡102与SSD 103之间可以通过串行小型计算机系统接口(Serial Attached Small ComputerSystem Interface,SAS)/串行高级技术附件(Serial Advanced Technology Attachment,SATA)/PCIe接口进行通信。
本申请实施例可以应用于服务器搭配有RAID控制卡和SSD的场景,具体适用于支持条带校验的RAID组的小写流程,以提升RAID组的写性能,支持条带校验的RAID组可以包括但不限于RAID 5、RAID 6、RAID 50、RAID 60等。
可以看出,本申请实施例通过RAID控制卡与RAID组中各个SSD的配合,对支持条带校验的RAID组的小写流程进行了优化,将校验数据的计算工作从RAID控制卡均匀地分配到RAID组的各个SSD中,有效减少了写流程中对RAID控制卡的DDR的访问频率,降低了RAID控制卡的DDR通道性能对RAID组写性能的瓶颈限制,同时也可以充分发挥SSD的性能,从而有效提升了RAID组的写性能。
需要说明的是,图1b中所示的SSD的数目仅仅是示意性的,根据实际需要,可以灵活调整服务器配置的SSD的数目。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络以及大数据等基础云计算服务的云服务器,本申请实施例不做限定。
以下对本申请实施例的技术方案的实现细节进行详细阐述:
请参见图2,是本申请实施例基于图1b所示的服务器提供的一种数据管理方法的流程示意图,该数据管理方法可以应用于图1b中的RAID控制卡102,具体可以包括如下步骤:
201、RAID控制卡响应于第一目标数据的写操作命令,从多个SSD中的第一SSD获取所述第一目标数据对应的第二目标数据。
具体的,当需要向RAID控制卡创建的RAID组写入第一目标数据时,服务器的处理器可以向RAID控制卡发送第一目标数据的写操作命令。RAID控制卡收到第一目标数据的写操作命令后,获取写操作命令携带的第一目标数据,根据条带校验规则从RAID组包括的多个SSD中确定写入的目标盘为第一SSD,然后从第一SSD中读取第一目标数据对应的第二目标数据,第二目标数据可以视为第一目标数据的旧数据,第一目标数据用于替代第二目标数据。
另外,RAID控制卡还可以根据条带校验规则从RAID组包括的多个SSD中确定第二目标数据所在条带对应的校验盘为第二SSD,第二SSD存储有第一校验数据,第一校验数据是对RAID组中第二目标数据所在的条带包括的数据进行校验计算得到的。
202、所述RAID控制卡在RAID组支持写校验操作,且所述第一目标数据的数据量小于所述RAID组的条带单元的存储空间的情况下,向所述多个SSD中的第二SSD发送写校验命令、所述第一目标数据以及所述第二目标数据;其中,所述写校验命令用于指示所述第二SSD对所述第一目标数据、所述第二目标数据以及第一校验数据进行校验计算,得到第二校验数据,并存储所述第二校验数据。
具体的,RAID控制卡可以对第一目标数据的数据量以及RAID组写校验操作的能力进行判定,在RAID组支持写校验操作,且第一目标数据的数据量小于RAID组的条带单元的存储空间的情况下,向第二SSD发送写校验命令以及校验计算所需的第一目标数据以及第二目标数据,第二SSD收到写校验命令后,对第一目标数据、第二目标数据以及第一校验数据进行校验计算,得到第二校验数据,并存储第二校验数据,以更新第一校验数据,也即是完成了校验数据的更新,RAID控制卡通过构建写校验命令控制RAID组中的SSD执行校验数据的计算,从而可以有效地将校验数据的计算工作分散到RAID组的各个SSD中。
在一些实施例中,在判定RAID组写校验操作的能力时,RAID控制卡可以从RAID组的配置数据中获取RAID组中每个SSD的写校验支持信息,写校验支持信息指示了对应的SSD是否支持写校验操作,如果RAID组中每个SSD的写校验支持信息均指示支持写校验操作,则RAID控制卡可以确定RAID组支持写校验操作。本申请实施例中,由于各条带中的校验数据在各个SSD中是均匀分布的,因此在RAID组中的每个SSD都支持写校验操作时,可以确定RAID组支持写校验操作,以保证整个写操作流程的正常进行。
在一些实施例中,RAID控制卡可以在创建RAID组时,与SSD进行交互,以收集SSD是否支持写校验操作的信息。具体的,RAID控制卡可以向多个SSD发送硬盘能力获取指令,SSD响应硬盘能力获取指令将自身的写校验支持信息发送给RAID控制卡,RAID控制卡接收多个SSD发送的写校验支持信息,在创建包括该多个SSD的RAID组之后,将该多个SSD的写校验支持信息添加到RAID组的配置数据中,从而通过RAID组的配置数据可以判定RAID组写校验操作的能力。
203、所述RAID控制卡向所述第一SSD发送所述第一目标数据的写操作命令,所述写操作命令用于指示所述第一SSD存储所述第一目标数据。
具体的,RAID控制卡可以向目标盘第一SSD发送第一目标数据的写操作命令,第一SSD响应第一目标数据的写操作命令,存储第一目标数据,例如可以将第一目标数据写入存储空间(如flash阵列)中第二目标数据所在的位置,以更新第二目标数据,也即是完成了目标数据的更新。
需要说明的是,步骤203也可以在步骤202之前执行,对于步骤202、203的执行顺序,本申请实施例不做限定。
本申请实施例中,RAID控制卡响应于第一目标数据的写操作命令,从多个SSD中的第一SSD获取第一目标数据对应的第二目标数据,第一SSD为写入第一目标数据的目标盘。RAID控制卡在RAID组支持写校验操作,且第一目标数据的数据量小于RAID组的条带单元的存储空间的情况下,执行第一目标数据的小写流程,也即是:RAID控制卡基于条带化校验确定出第二目标数据所在条带对应的校验盘为第二SSD,并向第二SSD发送写校验命令、第一目标数据以及第二目标数据,第二SSD响应写校验命令获取第一校验数据,然后第二SSD对第一目标数据、第二目标数据以及第一校验数据进行校验计算,得到第二校验数据,并存储第二校验数据,以更新当前存储的第一校验数据。另外,RAID控制卡向第一SSD发送第一目标数据的写操作命令,第一SSD响应该写操作命令存储第一目标数据,以更新当前存储的第二目标数据,从而完成一次RAID 5的小写流程,通过将校验数据的计算工作从RAID控制卡均匀地分配到RAID组的各个SSD中,有效减少了写流程中对RAID控制卡的内存的访问频率,降低了RAID控制卡的内存带宽对RAID组写性能的瓶颈限制,同时也可以充分发挥SSD的性能,从而有效提升了RAID组的写性能。
请参见图3,是本申请实施例基于图1b所示的服务器提供的另一种数据管理方法的流程示意图,该数据管理方法可以应用于图1b中的RAID控制卡102,具体可以包括如下步骤:
301、RAID控制卡响应于第一目标数据的写操作命令,从多个SSD中的第一SSD获取所述第一目标数据对应的第二目标数据。
其中,步骤303的具体实现可以参见前述实施例中步骤201的具体描述,此处不再赘述。
302、所述RAID控制卡在RAID组支持写校验操作,且所述第一目标数据的数据量小于所述RAID组的条带单元的存储空间的情况下,调用写校验接口向所述多个SSD中的第二SSD发送写校验命令。
其中,写校验接口可以是新增的自定义接口,写校验接口具体可以包括以下字段:命令字、校验数据的存储位置以及待传输数据的长度。命令字用于指示命令的类型为写校验命令,校验数据的存储位置用于指示校验数据在校验盘中的存储位置,待传输数据的长度用于指示校验计算所需的数据的长度。
具体的,RAID控制卡在确定校验盘为第二SSD以及第二目标数据所在条带的第一校验数据在第二SSD中的存储位置之后,在RAID组支持写校验操作,且第一目标数据的数据量小于RAID组的条带单元的存储空间的情况下,RAID控制卡构建针对第一目标数据的写校验命令,具体可以将“命令字”字段设置为扩展的写命令字,例如可以是十六进制值,该扩展的写命令字区分于协议中的其他命令字,且符合协议规定的命令字范围,将“校验数据的存储位置”字段的值设置为第一校验数据在第二SSD中的存储位置,将“待传输数据的长度”字段的值设置为第一目标数据的长度的两倍,从而构建出针对第一目标数据的写校验命令,该写校验命令包括命令字、第一校验数据的存储位置以及待传输数据的长度,待传输数据的长度为第一目标数据的长度的两倍,然后RAID控制卡调用写校验接口向第二SSD发送写校验命令。
其中,第一校验数据是对RAID组中第二目标数据所在的条带包括的数据进行校验计算得到的。
在一些实施例中,RAID控制卡也可以将“命令字”字段设置为已有的写命令字,也即是复用已有的写命令字,此时,写校验接口还需要包括以下字段:校验计算标志位,利用命令字与校验计算标志位的组合来指示命令的类型为写校验命令,在构建写校验命令时,可以将校验计算标志位置位,例如可以将“校验计算标志位”字段置为1,也即是写校验命令还包括校验计算标志位。
303、所述RAID控制卡在收到所述第二SSD对所述写校验命令的响应消息时,调用所述写校验接口向所述第二SSD发送所述待传输数据,所述待传输数据包括所述第一目标数据以及所述第二目标数据,所述写校验命令用于指示所述第二SSD对所述第一目标数据、所述第二目标数据以及第一校验数据进行校验计算,得到第二校验数据,并存储所述第二校验数据。
具体的,第二SSD在收到写校验命令后,可以向RAID控制卡发送该写校验命令的响应消息,RAID控制卡收到第二SSD的响应消息时,调用写校验接口向第二SSD发送待传输数据,待传输数据包括第一目标数据以及第二目标数据,第二SSD响应写校验命令,对第一目标数据、第二目标数据以及第一校验数据进行校验计算,得到第二校验数据,并存储第二校验数据,以更新第一校验数据,也即是完成了校验数据的更新,RAID控制卡通过新增写校验接口,可以向SSD准确地发送写校验命令,并传输校验计算所需的数据,从而有效地控制RAID组中的SSD执行校验数据的计算,实现将校验数据的计算工作分散到RAID组的各个SSD中。
304、所述RAID控制卡向所述第一SSD发送所述第一目标数据的写操作命令,所述写操作命令用于指示所述第一SSD存储所述第一目标数据。
其中,步骤304的具体实现可以参见前述实施例中步骤203的具体描述,此处不再赘述。
本申请实施例中,RAID控制卡收到第一目标数据的写操作命令之后,从多个SSD中的第一SSD获取第一目标数据对应的第二目标数据,在RAID组支持写校验操作,且第一目标数据的数据量小于RAID组的条带单元的存储空间的情况下,调用写校验接口向多个SSD中的第二SSD发送写校验命令,该写校验命令包括命令字、第一校验数据的存储位置以及待传输数据的长度,待传输数据的长度为第一目标数据的长度的两倍。RAID控制卡在收到第二SSD对写校验命令的响应消息时,调用写校验接口向第二SSD发送第一目标数据以及第二目标数据,第二SSD响应写校验命令对第一目标数据、第二目标数据以及第一校验数据进行校验计算,得到第二校验数据,并存储第二校验数。另外,RAID控制卡向第一SSD发送第一目标数据的写操作命令,第一SSD响应该写操作命令存储第一目标数据,以更新当前存储的第二目标数据,从而完成一次RAID 5的小写流程,通过写校验接口,RAID控制卡可以向SSD准确地发送写校验命令,并传输校验计算所需的数据,从而有效地控制RAID组中的SSD执行校验数据的计算,实现将校验数据的计算工作分散到RAID组的各个SSD中,有效减少了写流程中对RAID控制卡的内存的访问频率,降低了RAID控制卡的内存带宽对RAID组写性能的瓶颈限制,同时也可以充分发挥SSD的性能,从而有效提升了RAID组的写性能。
请参见图4,是本申请实施例基于图1b所示的服务器提供的又一种数据管理方法的流程示意图,该数据管理方法可以应用于图1b中的固态硬盘SSD 103(以下记为第二SSD),具体可以包括如下步骤:
401、第二SSD接收写校验命令、第一目标数据以及第二目标数据,所述写校验命令、所述第一目标数据以及所述第二目标数据是由RAID控制卡在RAID组支持写校验操作,且所述第一目标数据的数据量小于所述RAID组的条带单元的存储空间的情况下,向所述第二SSD发送的。
其中,第二SSD为RAID组包括的多个SSD中存储第一校验数据的SSD,第一校验数据是对RAID组中第二目标数据所在的条带包括的数据进行校验计算得到的。第一目标数据可以是待写入的新数据,具体可以是由处理器向RAID控制卡发送的,第一目标数据用于更新写入目标盘第一SSD中存储的第二目标数据。
具体的,RAID控制卡在RAID组支持写校验操作,且第一目标数据的数据量小于RAID组的条带单元的存储空间的情况下,向第二SSD发送写校验命令、第一目标数据以及第二目标数据,相应的,第二SSD接收写校验命令、第一目标数据以及第二目标数据,第一目标数据以及第二目标数据为校验计算所需的数据。
402、所述第二SSD响应所述写校验命令获取存储的第一校验数据。
具体的,第二SSD响应写校验命令先从自身的存储空间(如flash阵列)中读取第一校验数据,第一校验数据也是校验计算所需的数据。
403、所述第二SSD对所述第一目标数据、所述第二目标数据以及所述第一校验数据进行校验计算,得到第二校验数据,并存储所述第二校验数据。
具体的,第二SSD在获取到校验计算所需的数据(包括第一目标数据、第二目标数据以及第一校验数据)之后,对第一目标数据、第二目标数据以及第一校验数据进行校验计算,校验计算具体可以是异或逻辑运算,校验计算可以得到第二校验数据,第二SSD存储第二校验数据,例如可以将第二校验数据写入存储空间(如flash阵列)中第一校验数据所在的位置,以更新第一校验数据。
在一些实施例中,各个SSD(包括第二SSD)可以向RAID控制卡上报自身是否支持写校验操作的信息。例如,在创建RAID组时,各个SSD可以与RAID控制卡进行交互,并上报自身是否支持写校验操作的信息。具体可以是:各个SSD接收RAID控制卡发送的硬盘能力获取指令。SSD响应硬盘能力获取指令,向RAID控制卡发送自身的写校验支持信息,使得RAID控制卡在创建包括多个SSD的RAID组之后,将该多个SSD的写校验支持信息添加到RAID组的配置数据中,通过RAID组的配置数据可以判定RAID组写校验操作的能力。
在一些实施例中,对于不同类型的SSD,向RAID控制卡上报自身是否支持写校验操作的信息的方式可以包括但不限于:
对于SATA类型的SSD:可以在SSD的IDENTIFY DEVICE information中声明SSD的能力,IDENTIFY DEVICE information有很多保留字段,例如在Serial ATA Additionalcapabilities中,bit 15:9为保留字段,可选择其中一位作为SSD是否支持写校验命令的声明。
对于SAS类型的SSD:如果SSD支持写校验命令,可以在对REPORT SUPPORTEDOPERATION CODES的响应中增加支持写校验命令的声明。
对于NVME类型的SSD:可以在SSD的标识控制器数据结构(Identify ControllerDate Structure)中,使用其中的保留字段,声明对写校验命令的支持。
本申请实施例中,作为校验盘的第二SSD可以接收RAID控制卡在RAID组支持写校验操作,且第一目标数据的数据量小于RAID组的条带单元的存储空间的情况下,发送的写校验命令、第一目标数据以及第二目标数据,并响应写校验命令获取存储的第一校验数据,然后对第一目标数据、第二目标数据以及第一校验数据进行校验计算,得到第二校验数据,并存储第二校验数据,以完成校验数据的更新,从而校验盘可以完成校验数据的计算工作,通过将RAID控制卡的校验数据计算工作分散到RAID组的各个SSD中,既可以充分发挥SSD的性能,也有效降低了RAID控制卡的内存带宽对RAID组写性能的瓶颈限制,从而有效提升了RAID组的写性能。
请参见图5,是本申请实施例基于图1b所示的服务器提供的又一种数据管理方法的流程示意图,该数据管理方法可以应用于图1b中的固态硬盘SSD 103(以下记为第二SSD),具体可以包括如下步骤:
501、第二SSD接收RAID控制卡调用写校验接口发送的写校验命令,所述写校验命令是由所述RAID控制卡在RAID组支持写校验操作,且第一目标数据的数据量小于所述RAID组的条带单元的存储空间的情况下发送的。
502、所述第二SSD向所述RAID控制卡发送所述写校验命令的响应消息。
其中,写校验接口可以是新增的自定义接口,写校验接口具体可以包括以下字段:命令字、校验数据的存储位置以及待传输数据的长度。命令字用于指示命令的类型为写校验命令,校验数据的存储位置用于指示校验数据在校验盘中的存储位置,待传输数据的长度用于指示校验计算所需的数据的长度。该写校验命令是由RAID控制卡根据写校验接口包括的字段,针对第一目标数据构建的,该写校验命令包括命令字、第一校验数据的存储位置以及待传输数据的长度,待传输数据的长度为第一目标数据的长度的两倍。命令字具体可以为扩展的写命令字,例如可以是十六进制值,该扩展的写命令字区分于协议中的其他命令字,且符合协议规定的命令字范围。
具体的,第二SSD收到RAID控制卡发送的写校验命令后,从该写校验命令中获取命令字,确定命令字是否为上述扩展的写命令字,如果是,则确定收到的是写校验命令,并可以根据待传输数据的长度确定缓存空间是否足够,例如可用的内存空间是否大于待传输数据的数据量,如果确定收到的是写校验命令,且缓存空间足够,则第二SSD可以向RAID控制卡发送写校验命令的响应消息,以指示第二SSD可以接收校验计算所需的数据。
在一些实施例中,命令字具体也可以为已有的写命令字,也即是复用已有的写命令字,此时,写校验接口还需要包括以下字段:校验计算标志位,利用命令字与校验计算标志位的组合来指示命令的类型为写校验命令,在构建写校验命令时,可以将校验计算标志位置位,例如可以将“校验计算标志位”字段置为1,也即是写校验命令还包括校验计算标志位,这种情况下,第二SSD收到RAID控制卡发送的写校验命令后,从该写校验命令中获取命令字以及校验计算标志位,确定命令字是否为上述已有的写命令字,并且校验计算标志位是否为1,如果命令字是上述已有的写命令字,并且校验计算标志位为1,则第二SSD确定收到的是写校验命令。
503、所述第二SSD接收所述RAID控制卡调用所述写校验接口发送的待传输数据,所述待传输数据包括所述第一目标数据以及第二目标数据。
具体的,RAID控制卡收到第二SSD的响应消息后,可以调用写校验接口向第二SSD发送校验计算所需的待传输数据,相应的,第二SSD接收待传输数据。
504、所述第二SSD基于所述待传输数据的长度以及预设数据发送顺序从所述待传输数据中确定所述第一目标数据以及所述第二目标数据。
具体的,第二SSD收到待传输数据之后,可以根据待传输数据的长度以及预设数据发送顺序对待传输数据进行拆分,得到第一目标数据以及第二目标数据。例如,RAID控制卡按照预设数据发送顺序,将第一目标数据以及第二目标数据组合成数据帧,该数据帧也即是待传输数据,第一目标数据的长度与第二目标数据的长度相同,第二SSD将待传输数据平均拆分为两段数据,然后按照该预设数据发送顺序从拆分得到的两段数据中确定出第一目标数据以及第二目标数据。
505、所述第二SSD响应所述写校验命令获取存储的第一校验数据。
具体的,第二SSD根据写校验命令中包括的第一校验数据的存储位置,从自身的存储空间(如flash阵列)中读取第一校验数据,第一校验数据也是校验计算所需的数据。
506、所述第二SSD利用逻辑运算引擎对所述第一目标数据、所述第二目标数据以及所述第一校验数据进行异或计算,得到第二校验数据,并存储所述第二校验数据。
具体的,第二SSD可以利用逻辑运算引擎(如异或XOR运算引擎)对第一目标数据、第二目标数据以及第一校验数据进行异或计算,得到第二校验数据,并存储第二校验数据,例如可以将第二校验数据写入存储空间(如flash阵列)中第一校验数据所在的位置,以更新第一校验数据。
本申请实施例中,作为校验盘的第二SSD可以接收RAID控制卡在RAID组支持写校验操作,且第一目标数据的数据量小于RAID组的条带单元的存储空间的情况下,调用写校验接口发送的写校验命令,在确定收到的是写校验命令,且做好数据接收准备后,向RAID控制卡发送写校验命令的响应消息。第二SSD接收RAID控制卡调用写校验接口发送的待传输数据,待传输数据包括第一目标数据以及第二目标数据,基于待传输数据的长度以及预设数据发送顺序对收到的待传输数据进行拆分,得到第一目标数据以及第二目标数据。第二SSD获取存储的第一校验数据,然后利用逻辑运算引擎对第一目标数据、第二目标数据以及第一校验数据进行异或计算,得到第二校验数据,并存储第二校验数据,以完成校验数据的更新,通过写校验接口,SSD可以准确地接收并识别RAID控制卡发送的写校验命令,还可以接收校验计算所需的数据,从而校验盘可以完成校验数据的计算工作,实现将校验数据的计算工作分散到RAID组的各个SSD中,有效减少了写流程中对RAID控制卡的内存的访问频率,降低了RAID控制卡的内存带宽对RAID组写性能的瓶颈限制,同时也可以充分发挥SSD的性能,从而有效提升了RAID组的写性能。
请参见图6a,是本申请实施例基于图1b所示的服务器提供的一种磁盘管理方法的流程示意图,该磁盘管理方法可以应用于图1b中的RAID控制卡102以及固态硬盘SSD 103,具体可以包括如下步骤:
601、RAID控制卡获取RAID组创建指令。
其中,RAID组创建指令包括多个SSD的标识信息以及RAID级别。
602、所述RAID控制卡响应所述RAID组创建指令创建包括所述多个SSD的RAID组。
具体的,RAID控制卡可以根据所述多个SSD的标识信息以及RAID级别,创建包括所述多个SSD的RAID组。
603、所述RAID控制卡向所述多个SSD发送硬盘能力获取指令。
604、所述多个SSD响应所述硬盘能力获取指令向所述RAID控制卡发送写校验支持信息。
605、所述RAID控制卡将所述多个SSD的写校验支持信息添加到所述RAID组的配置数据中。
需要说明的是,步骤601-605的具体实现可以参见前述实施例中相关步骤的具体描述,此处不再赘述。
请参见图6b,是本申请实施例基于图1b所示的服务器提供的又一种数据管理方法的流程示意图,该数据管理方法可以应用于图1b中的RAID控制卡102以及固态硬盘SSD103,具体可以包括如下步骤:
611、所述RAID控制卡响应于第一目标数据的写操作命令,从所述RAID组的配置数据中获取所述RAID组中每个SSD的写校验支持信息。
612、若所述RAID组中每个SSD的写校验支持信息均指示支持写校验操作,则所述RAID控制卡确定所述RAID组支持写校验操作。
613、所述RAID控制卡从所述多个SSD中的第一SSD获取所述第一目标数据对应的第二目标数据。
614、所述RAID控制卡在所述RAID组支持写校验操作,且所述第一目标数据的数据量小于所述RAID组的条带单元的存储空间的情况下,向所述多个SSD中的第二SSD发送写校验命令、所述第一目标数据以及所述第二目标数据。
615、所述第二SSD响应所述写校验命令获取存储的第一校验数据。
其中,第一校验数据是对RAID组中第二目标数据所在的条带单元包括的数据进行校验计算得到的。
616、所述第二SSD对所述第一目标数据、所述第二目标数据以及所述第一校验数据进行校验计算,得到第二校验数据,并存储所述第二校验数据。
617、所述RAID控制卡向所述第一SSD发送所述第一目标数据的写操作命令。
618、所述第一SSD响应所述写操作命令存储所述第一目标数据。
需要说明的是,步骤617、618也可以在步骤616之前执行,对于步骤616与617、618之间的执行顺序,本申请实施例不做限定。另外,步骤611-618的具体实现可以参见前述实施例中相关步骤的具体描述,此处不再赘述。
请参见图7,是本申请实施例基于图1b所示的服务器提供的一种RAID 5写数据的流程示意图,具体可以包括如下步骤:
701、收到RAID 5写命令。
具体的,RAID控制卡接收处理器发送的RAID 5写命令。
702、判断待写的数据块是否小于条带深度,若是,则执行步骤703;若否,则执行步骤705。
具体的,RAID控制卡判断待写的数据块是否小于条带深度,条带深度可以对应于上述的条带单元的存储空间。
703、判断RAID组成员盘是否支持写校验命令,若是,则执行步骤704;若否,则执行步骤706。
具体的,如果待写的数据块小于条带深度,则可以执行RAID 5小写流程。具体是执行前文所述的常规的RAID 5小写流程,还是执行本申请实施例提供的RAID 5小写流程,可以由RAID控制卡根据RAID组成员盘是否支持写校验命令进行判定。RAID控制卡判断RAID组各个成员盘是否支持写校验命令,如果RAID组各个成员盘均支持写校验命令,则执行步骤704,即执行本申请实施例提供的RAID 5小写流程;如果RAID组中存在成员盘不支持写校验命令,则执行步骤706,即执行常规的RAID 5小写流程。
704、采用本申请实施例提供的RAID 5小写流程。
705、采用RAID 5大写或者满分条写流程。
具体的,如果待写的数据块大于或等于条带深度,则可以执行RAID 5大写或者满分条写流程。
706、采用常规的RAID 5小写流程。
本申请实施例中,在对RAID 5级别的RAID组进行写操作时,可以根据待写的数据块大小以及RAID组成员盘是否支持写校验命令,适应性选择相应的写流程,从而满足多种写数据需求,当采用本申请实施例提供的RAID 5小写流程时,可以将校验数据的计算工作均匀地分散到RAID组的各个成员盘中,有效减少了写流程中对RAID控制卡的内存的访问频率,降低了RAID控制卡的内存带宽对RAID组写性能的瓶颈限制,同时也可以充分发挥各个成员盘的性能,从而有效提升了RAID组的写性能。
请参见图8,是本申请实施例基于图1b所示的服务器提供的一种RAID 5小写的流程示意图,具体可以包括如下步骤:
801、处理器101向RAID控制卡102发送新数据D0n,写入的目标盘为SSD 0,校验盘为SSD 3,RAID控制卡102收到D0n后存入内存DDR。
802、RAID控制卡102从SSD 0读取新数据D0n对应的当前数据D0,并存入DDR。
803、RAID控制卡102从DDR中读取D0n、D0,并通过写校验接口向SSD 3发送写校验命令、D0n以及D0,SSD 3收到D0n、D0后存入内存RAM。
804、SSD 3从flash阵列中读取当前校验数据P,并存入RAM。
805、SSD 3从RAM中读取D0n、D0以及P,并将D0n、D0以及P送入XOR引擎,XOR引擎对D0n、D0以及P进行校验计算,得到新校验数据Pn。
806、SSD 3将Pn写入RAM。
807、SSD 3从RAM中读取Pn,并将Pn写入flash阵列。
808、RAID控制卡102从DDR中读取D0n,并将D0n写入SSD 0。
本申请实施例提供的RAID 5小写流程中,通过将校验计算分配到SSD中,有效减少了整个写流程中对RAID控制卡的DDR的访问次数,提升RAID控制卡的DDR通道支持RAID 5小写的能力。另外,由于RAID 5通过对各个SSD的数据做条带化管理,校验数据在各个SSD中均匀分布,校验计算的工作可以均匀地分配到RAID组的所有SSD中,不会使个别SSD成为RAID5小写的性能瓶颈,也充分利用了SSD的性能。
请参见图9,是本申请实施例的一种数据管理装置的结构示意图,所述装置包括:
获取模块901,用于响应于第一目标数据的写操作命令,从多个SSD中的第一SSD获取所述第一目标数据对应的第二目标数据。其中,所述第一目标数据用于替代所述第二目标数据。
发送模块902,用于在RAID组支持写校验操作,且所述第一目标数据的数据量小于所述RAID组的条带单元的存储空间的情况下,向所述多个SSD中的第二SSD发送写校验命令、所述第一目标数据以及所述第二目标数据;其中,所述写校验命令用于指示所述第二SSD对所述第一目标数据、所述第二目标数据以及第一校验数据进行校验计算,得到第二校验数据,并存储所述第二校验数据。
所述发送模块902,还用于向所述第一SSD发送所述第一目标数据的写操作命令,所述写操作命令用于指示所述第一SSD存储所述第一目标数据。
可选的,所述装置还包括确定模块903,其中:
所述获取模块901,还用于从所述RAID组的配置数据中获取所述RAID组中每个SSD的写校验支持信息。
所述确定模块903,用于若所述RAID组中每个SSD的写校验支持信息均指示支持写校验操作,则确定所述RAID组支持写校验操作。
可选的,所述装置还包括接收模块904,其中:
所述发送模块902,还用于向所述多个SSD发送硬盘能力获取指令。
所述接收模块904,用于接收所述多个SSD响应所述硬盘能力获取指令发送的写校验支持信息。
所述接收模块904,还用于将所述多个SSD的写校验支持信息添加到所述RAID组的配置数据中。
可选的,所述发送模块902,具体用于:
调用写校验接口向所述第二SSD发送写校验命令,所述写校验命令包括命令字、第一校验数据的存储位置以及待传输数据的长度,所述待传输数据的长度为所述第一目标数据的长度的两倍。
在所述接收模块904收到所述第二SSD对所述写校验命令的响应消息时,调用所述写校验接口向所述第二SSD发送所述待传输数据,所述待传输数据包括所述第一目标数据以及所述第二目标数据。
可选的,所述命令字为扩展的写命令字。
可选的,所述命令字为已有的写命令字,所述写校验命令还包括校验计算标志位。
需要说明的是,本申请实施例的数据管理装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
请参见图10,是本申请实施例的另一种数据管理装置的结构示意图,所述装置包括:
接收模块1001,用于接收写校验命令、第一目标数据以及第二目标数据,所述写校验命令、所述第一目标数据以及所述第二目标数据是由RAID控制卡在RAID组支持写校验操作,且所述第一目标数据的数据量小于所述RAID组的条带单元的存储空间的情况下,向第二SSD发送的,所述第二目标数据为多个SSD中第一SSD存储的所述第一目标数据对应的数据。其中,所述第一目标数据用于替代所述第二目标数据。
获取模块1002,用于响应所述写校验命令获取存储的第一校验数据。
处理模块1003,用于对所述第一目标数据、所述第二目标数据以及所述第一校验数据进行校验计算,得到第二校验数据,并存储所述第二校验数据。
可选的,所述装置还包括发送模块1004,其中:
所述接收模块1001,还用于接收所述RAID控制卡向所述多个SSD发送的硬盘能力获取指令。
所述发送模块1004,用于响应所述硬盘能力获取指令,向所述RAID控制卡发送所述第二SSD的写校验支持信息,以使得所述RAID控制卡将所述多个SSD的写校验支持信息添加到所述RAID组的配置数据中,所述多个SSD的写校验支持信息用于确定所述RAID组是否支持写校验操作。
可选的,所述接收模块1001,具体用于:
接收所述RAID控制卡调用写校验接口发送的写校验命令,所述写校验命令包括命令字、第一校验数据的存储位置以及待传输数据的长度,所述待传输数据的长度为所述第一目标数据的长度的两倍。
调用所述发送模块1004向所述RAID控制卡发送所述写校验命令的响应消息。
接收所述RAID控制卡调用所述写校验接口发送的待传输数据,所述待传输数据包括所述第一目标数据以及所述第二目标数据。
基于所述待传输数据的长度以及预设数据发送顺序从所述待传输数据中确定所述第一目标数据以及所述第二目标数据。
可选的,所述处理模块1003,具体用于:
利用逻辑运算引擎对所述第一目标数据、所述第二目标数据以及所述第一校验数据进行异或计算,得到第二校验数据。
需要说明的是,本申请实施例的数据管理装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
请参见图11,是本申请实施例的一种RAID控制电路的结构示意图,本申请实施例的所述RAID控制电路可以对应于前文所述的RAID控制卡,该RAID控制电路包括RAID芯片1101、内存1102以及存储设备1103。所述RAID芯片1101以及所述内存1102之间可以交互数据。
其中,所述内存1102可以包括易失性存储器(volatile memory),例如双倍数据率同步动态随机存取存储器(Double Data Rate Synchronous Dynamic Random AccessMemory,DDR),所述内存1102用于与所述RAID芯片1101配合运行RAID固件代码,同时提供数据读写过程中的缓存空间。所述存储设备1103可以包括非易失性存储器(non-volatilememory),例如快闪存储器(flash memory),固态硬盘(solid-state drive,SSD)等,所述存储设备1103可以存储RAID组的相关配置数据,例如RAID级别,RAID组包括的各个磁盘(如SSD)的写校验支持信息等。所述RAID芯片1101通过运行所述RAID固件代码,可以执行如下操作:
响应于第一目标数据的写操作命令,从多个SSD中的第一SSD获取所述第一目标数据对应的第二目标数据。其中,所述第一目标数据用于替代所述第二目标数据。
在RAID组支持写校验操作,且所述第一目标数据的数据量小于所述RAID组的条带单元的存储空间的情况下,向所述多个SSD中的第二SSD发送写校验命令、所述第一目标数据以及所述第二目标数据;其中,所述写校验命令用于指示所述第二SSD对所述第一目标数据、所述第二目标数据以及第一校验数据进行校验计算,得到第二校验数据,并存储所述第二校验数据。
向所述第一SSD发送所述第一目标数据的写操作命令,所述写操作命令用于指示所述第一SSD存储所述第一目标数据。
可选的,所述RAID芯片1101,还用于:
从所述RAID组的配置数据中获取所述RAID组中每个SSD的写校验支持信息。
若所述RAID组中每个SSD的写校验支持信息均指示支持写校验操作,则确定所述RAID组支持写校验操作。
可选的,所述RAID芯片1101,还用于:
向所述多个SSD发送硬盘能力获取指令。
接收所述多个SSD响应所述硬盘能力获取指令发送的写校验支持信息。
将所述多个SSD的写校验支持信息添加到所述RAID组的配置数据中。
可选的,所述RAID芯片1101,具体用于:
调用写校验接口向所述第二SSD发送写校验命令,所述写校验命令包括命令字、第一校验数据的存储位置以及待传输数据的长度,所述待传输数据的长度为所述第一目标数据的长度的两倍。
在收到所述第二SSD对所述写校验命令的响应消息时,调用所述写校验接口向所述第二SSD发送所述待传输数据,所述待传输数据包括所述第一目标数据以及所述第二目标数据。
可选的,所述命令字为扩展的写命令字。
可选的,所述命令字为已有的写命令字,所述写校验命令还包括校验计算标志位。
具体实现中,本申请实施例中所描述的RAID芯片1101、内存1102以及存储设备1103可执行本申请实施例图2、图3、图6a、图6b、图7和图8提供的方法的相关实施例中所描述的实现方式,也可执行本申请实施例图9提供的装置的相关实施例中所描述的实现方式,在此不再赘述。
请参见图12,是本申请实施例的一种存储装置的结构示意图,本申请实施例的所述存储装置可以对应于前文所述的固态硬盘SSD,该存储装置包括主控芯片1201、内存1202以及存储阵列1203。所述主控芯片1201、所述内存1202以及所述存储阵列1203之间可以交互数据。
其中,所述内存1202可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);所述存储阵列1203可以包括非易失性存储器(non-volatile memory),例如快闪存储器(flash memory)阵列,所述存储阵列1203用于持久性地存储数据。所述内存1202用于与所述主控芯片1201配合运行硬盘固件代码(如SSD固件代码),同时提供数据读写过程中的缓存空间。所述主控芯片1201通过运行所述硬盘固件代码,可以执行如下操作:
接收写校验命令、第一目标数据以及第二目标数据,所述写校验命令、所述第一目标数据以及所述第二目标数据是由RAID控制卡在RAID组支持写校验操作,且所述第一目标数据的数据量小于所述RAID组的条带单元的存储空间的情况下,向第二SSD发送的,所述第二目标数据为多个SSD中第一SSD存储的所述第一目标数据对应的数据。其中,所述第一目标数据用于替代所述第二目标数据。
响应所述写校验命令获取存储的第一校验数据。
对所述第一目标数据、所述第二目标数据以及所述第一校验数据进行校验计算,得到第二校验数据,并存储所述第二校验数据。
可选的,所述主控芯片1201,还用于:
接收所述RAID控制卡向所述多个SSD发送的硬盘能力获取指令。
响应所述硬盘能力获取指令,向所述RAID控制卡发送所述第二SSD的写校验支持信息,以使得所述RAID控制卡将所述多个SSD的写校验支持信息添加到所述RAID组的配置数据中,所述多个SSD的写校验支持信息用于确定所述RAID组是否支持写校验操作。
可选的,所述主控芯片1201,具体用于:
接收所述RAID控制卡调用写校验接口发送的写校验命令,所述写校验命令包括命令字、第一校验数据的存储位置以及待传输数据的长度,所述待传输数据的长度为所述第一目标数据的长度的两倍。
向所述RAID控制卡发送所述写校验命令的响应消息。
接收所述RAID控制卡调用所述写校验接口发送的待传输数据,所述待传输数据包括所述第一目标数据以及所述第二目标数据。
基于所述待传输数据的长度以及预设数据发送顺序从所述待传输数据中确定所述第一目标数据以及所述第二目标数据。
可选的,所述主控芯片1201,具体用于:
利用逻辑运算引擎对所述第一目标数据、所述第二目标数据以及所述第一校验数据进行异或计算,得到第二校验数据。
具体实现中,本申请实施例中所描述的所述主控芯片1201、所述内存1202以及所述存储阵列1203可执行本申请实施例图4、图5、图6a、图6b和图8提供的方法的相关实施例中所描述的实现方式,也可执行本申请实施例图10提供的装置的相关实施例中所描述的实现方式,在此不再赘述。
本领域技术人员还可以了解到本申请实施例列出的各种说明性逻辑块(illustrative logical block)和步骤(step)可以通过电子硬件、电脑软件,或两者的结合进行实现。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本申请实施例保护的范围。
本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序包括程序指令,该程序指令被计算机执行时实现上述任一方法实施例的功能。
上述计算机可读存储介质包括但不限于快闪存储器、硬盘、固态硬盘。
本申请还提供了一种计算机程序产品,该计算机程序产品被计算机执行时实现上述任一方法实施例的功能。
本申请还提供了一种服务器,包括图11所示的RAID控制电路以及图12所示的存储装置。
本领域技术人员还可以理解到本申请实施例列出的各种说明性逻辑块(illustrative logical block)和步骤(step)可以通过电子硬件、电脑软件,或两者的结合进行实现。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员对于相应的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本申请实施例保护的范围。
本申请所描述的方案可通过各种方式来实现。例如,这些技术可以用硬件、软件或者硬件结合的方式来实现。对于硬件实现,用于在通信装置(例如,接入网设备,能力降低终端设备、核心网设备或芯片)处执行这些技术的处理单元,可以实现在一个或多个通用处理器、数字信号处理器(digital signal processor,DSP)、数字信号处理器件、专用集成电路(application specific integrated circuit,ASIC)、可编程逻辑器件、现场可编程门阵列(field programmable gate array,FPGA)、或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合中。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是实现上述任一实施例中的能力降低终端设备、第二小区对应的接入网设备、第一小区对应的接入网设备、服务于能力降低终端设备的核心网设备的功能的装置。示例性的,该装置可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输。
本申请中对于使用单数表示的元素旨在用于表示“一个或多个”,而并非表示“一个且仅一个”,除非有特别说明。本申请中,在没有特别说明的情况下,“至少一个”旨在用于表示“一个或者多个”,“多个”旨在用于表示“两个或两个以上”。
另外,本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A可以是单数或者复数,B可以是单数或者复数。
本申请中的预设(如预设序列)可以理解为定义、预先定义、存储、预存储、预协商、预配置、固化、或预烧制。
本领域普通技术人员可以理解,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请中各个实施例之间相同或相似的部分可以互相参考。在本申请中各个实施例、以及各实施例中的各个实施方式/实施方法/实现方法中,如果没有特殊说明以及逻辑冲突,不同的实施例之间、以及各实施例中的各个实施方式/实施方法/实现方法之间的术语和/或描述具有一致性、且可以相互引用,不同的实施例、以及各实施例中的各个实施方式/实施方法/实现方法中的技术特征根据其内在的逻辑关系可以组合形成新的实施例、实施方式、实施方法、或实现方法。以上所述的本申请实施方式并不构成对本申请保护范围的限定。
Claims (10)
1.一种数据管理方法,其特征在于,应用于服务器,所述服务器包括冗余磁盘阵列RAID控制卡以及多个固态硬盘SSD,所述多个SSD通过所述RAID控制卡组成支持条带校验的RAID组,所述方法包括:
所述RAID控制卡响应于第一目标数据的写操作命令,从所述多个SSD中的第一SSD获取所述第一目标数据对应的第二目标数据;其中,所述第一目标数据用于替代所述第二目标数据;
所述RAID控制卡在所述RAID组支持写校验操作,且所述第一目标数据的数据量小于所述RAID组的条带单元的存储空间的情况下,向所述多个SSD中的第二SSD发送写校验命令、所述第一目标数据以及所述第二目标数据;其中,所述写校验命令用于指示所述第二SSD对所述第一目标数据、所述第二目标数据以及第一校验数据进行校验计算,得到第二校验数据,并存储所述第二校验数据;
所述RAID控制卡向所述第一SSD发送所述第一目标数据的写操作命令,所述写操作命令用于指示所述第一SSD存储所述第一目标数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述RAID控制卡从所述RAID组的配置数据中获取所述RAID组中每个SSD的写校验支持信息;
若所述RAID组中每个SSD的写校验支持信息均指示支持写校验操作,则所述RAID控制卡确定所述RAID组支持写校验操作。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述RAID控制卡向所述多个SSD发送硬盘能力获取指令;
所述RAID控制卡接收所述多个SSD响应所述硬盘能力获取指令发送的写校验支持信息;
所述RAID控制卡将所述多个SSD的写校验支持信息添加到所述RAID组的配置数据中。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述RAID控制卡向所述第二SSD发送写校验命令、所述第一目标数据以及所述第二目标数据,包括:
所述RAID控制卡调用写校验接口向所述第二SSD发送写校验命令,所述写校验命令包括命令字、第一校验数据的存储位置以及待传输数据的长度,所述待传输数据的长度为所述第一目标数据的长度的两倍;
所述RAID控制卡在收到所述第二SSD对所述写校验命令的响应消息时,调用所述写校验接口向所述第二SSD发送所述待传输数据,所述待传输数据包括所述第一目标数据以及所述第二目标数据。
5.一种数据管理方法,其特征在于,应用于服务器,所述服务器包括冗余磁盘阵列RAID控制卡以及多个固态硬盘SSD,所述多个SSD通过所述RAID控制卡组成支持条带校验的RAID组,所述方法包括:
第二SSD接收写校验命令、第一目标数据以及第二目标数据,所述写校验命令、所述第一目标数据以及所述第二目标数据是由所述RAID控制卡在所述RAID组支持写校验操作,且所述第一目标数据的数据量小于所述RAID组的条带单元的存储空间的情况下,向所述第二SSD发送的,所述第二目标数据为所述多个SSD中第一SSD存储的所述第一目标数据对应的数据,所述第一目标数据用于替代所述第二目标数据;
所述第二SSD响应所述写校验命令获取存储的第一校验数据;
所述第二SSD对所述第一目标数据、所述第二目标数据以及所述第一校验数据进行校验计算,得到第二校验数据,并存储所述第二校验数据。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
所述第二SSD接收所述RAID控制卡向所述多个SSD发送的硬盘能力获取指令;
所述第二SSD响应所述硬盘能力获取指令,向所述RAID控制卡发送所述第二SSD的写校验支持信息,以使得所述RAID控制卡将所述多个SSD的写校验支持信息添加到所述RAID组的配置数据中,所述多个SSD的写校验支持信息用于确定所述RAID组是否支持写校验操作。
7.根据权利要求5或6所述的方法,其特征在于,所述第二SSD接收写校验命令、第一目标数据以及第二目标数据,包括:
所述第二SSD接收所述RAID控制卡调用写校验接口发送的写校验命令,所述写校验命令包括命令字、第一校验数据的存储位置以及待传输数据的长度,所述待传输数据的长度为第一目标数据的长度的两倍;
所述第二SSD向所述RAID控制卡发送所述写校验命令的响应消息;
所述第二SSD接收所述RAID控制卡调用所述写校验接口发送的待传输数据,所述待传输数据包括所述第一目标数据以及所述第二目标数据;
所述第二SSD基于所述待传输数据的长度以及预设数据发送顺序从所述待传输数据中确定所述第一目标数据以及所述第二目标数据。
8.根据权利要求5或6所述的方法,其特征在于,所述第二SSD对所述第一目标数据、所述第二目标数据以及所述第一校验数据进行校验计算,得到第二校验数据,包括:
所述第二SSD利用逻辑运算引擎对所述第一目标数据、所述第二目标数据以及所述第一校验数据进行异或计算,得到第二校验数据。
9.一种存储装置,其特征在于,包括主控芯片以及存储阵列,所述主控芯片通过运行硬盘固件代码,执行如权利要求5至8任一项所述的数据管理方法。
10.一种服务器,其特征在于,包括RAID控制电路以及如权利要求9所述的存储装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311394601.0A CN117591009A (zh) | 2023-10-25 | 2023-10-25 | 一种数据管理方法、存储装置及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311394601.0A CN117591009A (zh) | 2023-10-25 | 2023-10-25 | 一种数据管理方法、存储装置及服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117591009A true CN117591009A (zh) | 2024-02-23 |
Family
ID=89915698
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311394601.0A Pending CN117591009A (zh) | 2023-10-25 | 2023-10-25 | 一种数据管理方法、存储装置及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117591009A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117806568A (zh) * | 2024-02-29 | 2024-04-02 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据更新方法、装置、设备和存储介质 |
-
2023
- 2023-10-25 CN CN202311394601.0A patent/CN117591009A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117806568A (zh) * | 2024-02-29 | 2024-04-02 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据更新方法、装置、设备和存储介质 |
CN117806568B (zh) * | 2024-02-29 | 2024-06-07 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据更新方法、装置、设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109213696B (zh) | 用于缓存管理的方法和设备 | |
US10223009B2 (en) | Method and system for efficient cache buffering supporting variable stripe sizes to enable hardware acceleration | |
CN109791522B (zh) | 数据迁移的方法、系统及智能网卡 | |
CN112513804B (zh) | 一种数据处理方法及装置 | |
CN108733311B (zh) | 用于管理存储系统的方法和设备 | |
US11385823B2 (en) | Method, electronic device and computer program product for rebuilding disk array | |
US11899533B2 (en) | Stripe reassembling method in storage system and stripe server | |
CN117591009A (zh) | 一种数据管理方法、存储装置及服务器 | |
US20190114076A1 (en) | Method and Apparatus for Storing Data in Distributed Block Storage System, and Computer Readable Storage Medium | |
CN107526533B (zh) | 存储管理方法及设备 | |
US11775194B2 (en) | Data storage method and apparatus in distributed storage system, and computer program product | |
US20190042365A1 (en) | Read-optimized lazy erasure coding | |
CN112783698A (zh) | 一种存储系统中的元数据的管理方法及装置 | |
CN105068896A (zh) | 基于raid备份的数据处理方法及装置 | |
US8935488B2 (en) | Storage system and storage control method | |
CN111124253A (zh) | 管理存储设备的方法、装置和计算机程序产品 | |
WO2018055686A1 (ja) | 情報処理システム | |
CN112445413A (zh) | 一种数据存储的方法、装置及相关设备 | |
US9501290B1 (en) | Techniques for generating unique identifiers | |
US20190339875A9 (en) | Method, electronic device and computer program product for data processing | |
CN112714910B (zh) | 分布式存储系统及计算机程序产品 | |
CN112988034B (zh) | 一种分布式系统数据写入方法及装置 | |
US12032849B2 (en) | Distributed storage system and computer program product | |
US9778850B1 (en) | Techniques for zeroing non-user data areas on allocation | |
CN117311646A (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 |