CN117193672B - 存储设备的数据处理方法及装置、存储介质及电子设备 - Google Patents
存储设备的数据处理方法及装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN117193672B CN117193672B CN202311473037.1A CN202311473037A CN117193672B CN 117193672 B CN117193672 B CN 117193672B CN 202311473037 A CN202311473037 A CN 202311473037A CN 117193672 B CN117193672 B CN 117193672B
- Authority
- CN
- China
- Prior art keywords
- data
- written
- disk
- check
- blocks
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 20
- 238000012795 verification Methods 0.000 claims abstract description 98
- 238000005192 partition Methods 0.000 claims abstract description 88
- 238000000034 method Methods 0.000 claims abstract description 71
- 238000012545 processing Methods 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 24
- 230000004044 response Effects 0.000 claims description 22
- 230000009466 transformation Effects 0.000 claims description 16
- 238000013507 mapping Methods 0.000 claims description 7
- 239000000758 substrate Substances 0.000 claims 3
- 238000003491 array Methods 0.000 description 19
- 238000005516 engineering process Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 8
- 238000011084 recovery Methods 0.000 description 8
- 239000007787 solid Substances 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000013500 data storage Methods 0.000 description 4
- 239000002245 particle Substances 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Landscapes
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本申请实施例提供了一种存储设备的数据处理方法及装置、存储介质及电子设备,其中,该方法包括:响应于接收到的数据写入命令,将待写入数据写入到指定磁盘阵列中的第一磁盘组的磁盘分块,得到与待写入数据对应的多个数据分块;对待写入数据执行第一校验操作,得到与待写入数据对应的第一校验数据,并将第一校验数据写入到第一磁盘组的磁盘分块中,得到待写入数据对应的第一检验分块;在待写入数据的预设属性的属性值为目标属性值的情况下,对待写入数据执行第二校验操作,得到与待写入数据对应的第二校验数据,并将第二校验数据写入到指定磁盘阵列的第二磁盘的磁盘分块中,得到与待写入数据对应的第二检验分块。
Description
技术领域
本申请实施例涉及数据存储领域,具体而言,涉及一种存储设备的数据处理方法及装置、存储介质及电子设备。
背景技术
磁盘阵列(Redundant Arrays of Independent Disks,简称为RAID)是由很多块独立的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能;通过磁盘阵列技术可以将数据切割成许多区段,分别存放在各个硬盘上。
相关技术中,RAID5阵列和RAID6阵列确保了各种RAID技术中的高可靠性,这些RAID技术利用奇偶校验进行故障恢复;只要存储数据更新,奇偶校验就会更新,其中,RAID6需要两个物理磁盘进行冗余数据校验,而RAID5阵列只需要一个物理磁盘来进行冗余数据校验,RAID5阵列利用率较高但安全性较低,RAID6阵列的安全性较高但磁盘利用率较低。
由此可见,相关技术中存储设备的数据处理方法,无法兼顾磁盘阵列利用率与磁盘阵列安全性的技术问题。
发明内容
本申请实施例提供了一种存储设备的数据处理方法及装置、存储介质及电子设备,以至少解决相关技术中存储设备的数据处理方法无法兼顾磁盘阵列利用率与磁盘阵列安全性的技术问题。
根据本申请的一个实施例,提供了一种存储设备的数据处理方法,包括:响应于接收到的数据写入命令,将待写入数据写入到指定磁盘阵列中的第一磁盘组的磁盘分块,得到与所述待写入数据对应的多个数据分块;对所述待写入数据执行第一校验操作,得到与所述待写入数据对应的第一校验数据,并将所述第一校验数据写入到所述第一磁盘组的磁盘分块中,得到所述待写入数据对应的第一检验分块;在所述待写入数据的预设属性的属性值为目标属性值的情况下,对所述待写入数据执行第二校验操作,得到与所述待写入数据对应的第二校验数据,并将所述第二校验数据写入到所述指定磁盘阵列的第二磁盘的磁盘分块中,得到与所述待写入数据对应的第二检验分块;其中,所述第二磁盘不属于所述第一磁盘组。
根据本申请的又一个实施例,提供了一种存储设备的数据处理装置,其特征在于,包括:写入单元,用于响应于接收到的数据写入命令,将待写入数据写入到指定磁盘阵列中的第一磁盘组的磁盘分块,得到与所述待写入数据对应的多个数据分块;第一校验单元,用于对所述待写入数据执行第一校验操作,得到与所述待写入数据对应的第一校验数据,并将所述第一校验数据写入到所述第一磁盘组的磁盘分块中,得到所述待写入数据对应的第一检验分块;第二校验单元,用于在所述待写入数据的预设属性的属性值为目标属性值的情况下,对所述待写入数据执行第二校验操作,得到与所述待写入数据对应的第二校验数据,并将所述第二校验数据写入到所述指定磁盘阵列的第二磁盘的磁盘分块中,得到与所述待写入数据对应的第二检验分块;其中,所述第二磁盘不属于所述第一磁盘组。
根据本申请实施例的又一个方面,提供了一种计算机可读的存储介质,计算机可读的存储介质包括存储的程序,其中,程序运行时执行上述任一项方法实施例中的步骤。
根据本申请实施例的又一个方面,提供了一种电子设备,包括存储器和处理器,存储器中存储有计算机程序,处理器被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
通过本申请实施例能够响应于接收到的数据写入命令,将待写入数据写入至指定磁盘阵列的第一磁盘组的磁盘分块中,得到多个数据分块;对待写入数据执行第一校验操作,得到对应的第一校验数据并写入第一磁盘组的磁盘分块中以得到第一校验分块,由此,能够得到多个数据分块后,对待写入数据进行第一校验操作,仅一次校验能够保证磁盘利用率与数据安全性;在待写入数据的预设属性为目标属性值的情况下,对待写入数据执行第二校验操作,得到对应的第二校验数据,并将第二校验数据写入指定磁盘阵列的第二磁盘的磁盘分块中,得到第二校验分块,由此,对目标属性值的待写入数据再次进行第二校验操作,二次校验能够保证目标属性值的待写入数据的安全性与完整性;按照待写入数据的预设属性对待写入数据进行一次校验或二次校验,通过灵活设定预设属性的属性值,仅针对部分数据进行二次校验,可以在满足部分数据对于安全性要求的同时,提高磁盘阵列的利用率,兼顾了兼顾磁盘阵列的利用率和安全性,也提高磁盘阵列利用的合理性,进而解决了相关技术中存储设备的数据处理方法无法兼顾磁盘阵列利用率与磁盘阵列安全性的技术问题。
附图说明
图1是本申请实施例的一种存储设备的数据处理的计算机终端的硬件结构框图;
图2是根据本申请实施例的一种存储设备的数据处理方法的流程示意图;
图3是根据本申请实施例的另一种存储设备的数据处理方法的流程示意图;
图4是根据本申请实施例的一种存储设备的数据处理方法的结构示意图;
图5是根据本申请实施例的另一种存储设备的数据处理方法的结构示意图;
图6是根据本申请实施例的又一种存储设备的数据处理方法的结构示意图;
图7是本申请实施例提供的一种可选的存储设备的数据处理装置的结构框图;
图8是本申请实施例提供的一种可选的电子设备的计算机系统的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请的实施例。
需要说明的是,本申请实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1、磁盘阵列(Redundant Array of Independent Disks,简称为RAID),磁盘阵列是由很多块独立的磁盘组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个磁盘上。
2、条带(Stripe),把连续的数据分割成相同大小的数据块,把每段数据分别写入到阵列中的不同磁盘上的方法,在本申请实施例中,条带是阵列的不同分区上的位置相关的数据块(分块)的集合,是组织不同分区上的分块的单位。
3、数据分块,用于存储主机端输入或输出请求的分块。
4、P校验分块,条带中第一个校验分块,由数据分块异或运算得出。
5、Q校验分块,RAID6阵列相比RAID5阵列在条带中增加的第二个校验分块(即Q校验分块),和P校验分块(第一个校验分块)配合运用,可以恢复RAID6阵列中的两个故障盘数据。
6、固态硬盘(Solid State Disk,简称为SSD),又称固态驱动器,是用固态电子存储芯片阵列制成的硬盘。
7、MLC颗粒(Multi-Level Cell),MLC代表“多层细胞”,固态硬盘闪存颗粒的其中一种型号,多应用于消费级或企业级固态硬盘中。
8、TLC颗粒(Triple Level Cell),TLC代表“ 细胞”,固态硬盘闪存颗粒的其中一种型号,多应用于消费级固态硬盘中,TLC每个存储单元可以存储多达3个比特。
9、硬盘驱动器(Hard Disk Drive,简称为HDD),最基本的电脑存储器,例如,电脑硬盘C盘、D盘为磁盘分区都属于硬盘驱动器。
10、随机存取存储器(Random Access Memory,简称为RAM),是与处理器直接交换数据的内部存储器。它可以随时读写(刷新时除外),而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储介质。
11、输入/输出(Input/Output,简称为I/O),通常指数据在内部存储器和外部存储器或其他周边设备之间的输入和输出。
12、命令行界面(Command-Line Interface,简称为CLI),是在图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令后,予以执行。
13、图形用户接口(Graphical User Interface,简称为GUI),是指采用图形方式显示的计算机操作用户界面。
本申请实施例中所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图1是本申请实施例的一种存储设备的数据处理的计算机终端的硬件结构框图。如图1所示,计算机终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器或可编程逻辑器件等的处理装置)和用于存储数据的存储器104,其中,上述计算机终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机终端的结构造成限定。例如,计算机终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本申请实施例中的消息的传输方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在数据存储领域,普遍采用RAID存储技术来提高数据可靠性、数据安全性和I/O性能。RAID阵列由很多独立的磁盘组合成一个容量巨大的磁盘组,能够并行处理主机I/O请求以提高I/O性能,同时利用个别磁盘提供的校验冗余数据来提高整个磁盘系统的数据可靠性和数据安全性。利用这项存储技术,将数据切割成许多区段,分别存放在各个磁盘上,这样各个磁盘可以并行处理主机I/O请求,不仅提升了存储系统的存储容量而且大大提高了存储系统的I/O性能。
相关技术中,MLC/TLC闪存的使用增加了数据存储误码率,降低了可靠性,为了弥补这一损失,廉价磁盘冗余阵列被广泛用于增强硬盘驱动器和固态驱动器的可靠性。RAID5阵列和RAID6阵列确保了各种RAID技术中的高可靠性。这类RAID技术利用奇偶校验来恢复故障,只要数据更新,奇偶校验就会更新。例如,RAID5阵列在不同条带中仅包含单独的P校验分块;在RAID6阵列中,在不同条带中同时包含P校验分块和Q校验分块,故RAID6保证了更高的可靠性。这些RAID技术增强了固态硬盘的可靠性、稳定性和数据恢复能力。
但是,RAID6技术需要两个物理磁盘来提供校验冗余数据,而RAID5阵列仅需要一个物理磁盘来提供校验冗余数据,故数据从缓存转移到RAID5阵列比转移到RAID6阵列效率更高,例如,转移到RAID5阵列需要2个操作(即转移有效数据分块、转移P校验分块),而转移到RAID6阵列需要3个操作(即转移有效数据分块、转移P校验分块、转移Q校验分块) ,显而易见,RAID5阵列的存储性能较高,且RAID5阵列的冗余比要低于RAID6阵列。而RAID6阵列的安全性更高,即当阵列中出现两块故障盘时,根据P校验分块与Q校验分块,仍能恢复故障盘数据的完整性,因此,冗余比更低的RAID5阵列与安全性较强的RAID6阵列均被广泛应用于当代存储服务器中,诸如人工智能、工业互联网等等。
综上所述,如何降低RAID6阵列的冗余比以及如何提升RAID5的数据安全性已成为本技术领域专业技术人员亟待解决的问题。本申请实施例针对该问题,提出了混合RAID技术,即根据数据重要性以特定的方式使用RAID5阵列和RAID6阵列。数据的重要性分为较高和较低,数据重要性由主机用户决定。混合RAID技术根据数据重要性来判断使用RAID5阵列还是RAID6阵列对主机用户下发的数据进行I/O读写。当数据重要性为高重要性的数据时,主机用户下发的I/O数据读写由RAID6阵列管理;而当数据重要性为低重要性的数据时,主机用户下发的I/O数据读写由RAID5阵列管理。同时本发明新增校验写缓存区和校验数据生成器,目的是当数据分块落盘成功后即刻反馈主机用户写成功,而同时在后台计算校验分块,并将计算出来的数据暂存在校验写缓存区,并后台异步对校验分块落盘,以此提高混合RAID阵列的写性能。
根据本申请实施例的一个方面,提供了一种存储设备的数据处理方法,能够在提高磁盘利用率的同时保证了数据的安全性,以由计算机终端来执行本实施例中的存储设备的数据处理方法为例,图2是根据本申请实施例的一种存储设备的数据处理方法的流程示意图,如图2所示,该流程包括如下步骤:
在步骤S202中,响应于接收到的数据写入命令,将待写入数据写入到指定磁盘阵列中的第一磁盘组的磁盘分块,得到与待写入数据对应的多个数据分块。
在一些实施例中,数据写入命令是由主机用户下发至存储设备的,存储设备响应于接收到的数据写入命令,将待写入数据写入到指定磁盘阵列中的第一磁盘组的磁盘分块,得到与待写入数据对应的多个数据分块。
在这里,磁盘阵列是由很多块独立的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能;利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上,其中,数据分块即为分布存储在指定磁盘阵列中同一磁盘组上不同磁盘的数据区段。
当磁盘组中任意一个磁盘发生故障时,磁盘阵列能利用同位检查(Parity Check)仍可读出数据。在数据重构时,可将数据经计算后重新置入新硬盘中。
通过本申请提供的实施例,将待写入数据存储至指定磁盘阵列第一磁盘组的磁盘分块上,得到对应的多个磁盘分块,能够提高数据传输速度与存储系统的稳定冗余性。
在步骤S204中,对待写入数据执行第一校验操作,得到与待写入数据对应的第一校验数据,并将第一校验数据写入到第一磁盘组的磁盘分块中,得到待写入数据对应的第一检验分块。
在一些实施例中,为了保证数据的完整性,在部分数据丢失时仍能对丢失数据进行恢复,对待写入数据执行第一校验操作,得到第一校验数据并写入第一磁盘组的磁盘分块中,得到对应的第一校验分块。
在一些实施例中,对待写入数据执行异或操作,得到与待写入数据对应的第一校验数据,其中,第一校验操作为异或操作,在这里,第一校验操作还可以是奇偶校验操作。
需要说明的是,待写入数据对应的多个数据分块与第一校验分块均存储在指定磁盘阵列的第一磁盘组中,多个数据分块与第一校验分块在第一磁盘组中的存储顺序可以是随机的也可以是预先设置的,本申请再次不做限定。
通过本申请提供的实施例,根据待写入数据进行第一校验操作,得到第一校验分块,对待写入数据的一次校验能够在保证存储设备数据写入性能的同时,保证数据写入的安全性与完整性。
在步骤S206中,在待写入数据的预设属性的属性值为目标属性值的情况下,对待写入数据执行第二校验操作,得到与待写入数据对应的第二校验数据,并将第二校验数据写入到指定磁盘阵列的第二磁盘的磁盘分块中,得到与待写入数据对应的第二检验分块。
其中,第二磁盘不属于第一磁盘组。
在一些实施例中,第一磁盘组与第二磁盘为指定磁盘阵列中的两个部分,第一磁盘组包括多个第一磁盘,用于存储数据分块与第一校验分块,第二磁盘的数量通常为一个用于存储第二校验分块。
在本申请实施例中,根据待写入数据的预设属性的属性值,对待写入数据执行第一校验操作,或是同时执行第一校验操作与第二校验操作。
在一些实施例中,在待写入数据的预设属性的属性值为目标属性值的情况下,对待写入数据执行域变换操作,得到与待写入数据对应的变换域数据;对与待写入数据对应的变换域数据执行异或操作,得到与待写入数据对应的第二校验数据,其中,第二校验操作包括域变换操作和异或操作,在这里,第二校验操作还可以是双重奇偶校验操作。
例如,预设属性为重要性等级,预设属性的属性值包括第一重要性等级和第二重要性等级,第一重要性等级高于第二重要性等级;在待写入数据的重要性等级的等级值为第一重要性等级的情况下,对待写入数据继续执行第二校验操作,得到与待写入数据对应的第二校验数据。
通过本申请提供的实施例,根据待写入数据的数据重要性,以特定的方式整合RAID5阵列与RAID6阵列,得到混合RAID阵列(即指定磁盘阵列),且预先设置了两种待写入数据的预设属性的属性值,当待写入数据的预设属性为第一属性值时,仅执行第一校验操作,以保证数据的写入速度与磁盘的利用率;当待写入数据的预设属性为第二属性值时,还需执行第二校验操作,以保证数据的高安全性与完整性。
通过本申请提供的实施例的上述步骤,根据待写入数据的预设属性的属性值对待写入数据仅执行第一校验操作或执行第一校验操作与第二校验操作,能够在不增加硬盘成本的前提下,提高磁盘阵列的写入性能与数据可靠性。通过本申请实施例的上述步骤,响应于接收到的数据写入命令,将待写入数据写入到指定磁盘阵列中的第一磁盘组的磁盘分块,得到与待写入数据对应的多个数据分块;对待写入数据执行第一校验操作,得到与待写入数据对应的第一校验数据,并将第一校验数据写入到第一磁盘组的磁盘分块中,得到待写入数据对应的第一检验分块;在待写入数据的预设属性的属性值为目标属性值的情况下,对待写入数据执行第二校验操作,得到与待写入数据对应的第二校验数据,并将第二校验数据写入到指定磁盘阵列的第二磁盘的磁盘分块中,得到与待写入数据对应的第二检验分块;其中,第二磁盘不属于第一磁盘组;在提高磁盘利用率的同时保证了数据的安全性,进而解决了相关技术中存储设备的数据处理方法无法兼顾磁盘阵列利用率与磁盘阵列安全性的技术问题。
在一个示例性实施例中,在对待写入数据执行第一校验操作,得到与待写入数据对应的第一校验数据之后,上述方法还包括:
S11,将第一校验数据暂存到第一写缓存区中,其中,第一写缓存区是指定磁盘阵列的控制器中,用于暂存校验数据的缓存区。
为了能够在待写入数据的数据分块落盘成功后,即刻反馈至目标对象落盘成功信息,本申请实施例在指定磁盘阵列的控制器中新增用于暂存校验数据的缓存区(包括第一写缓存区),将第一校验数据暂存到第一写缓存区。
在一些实施例中,通过对待写入数据执行第一校验操作,得到与待写入数据对应的第一校验数据,例如,第一校验操作可以是基于待写入数据的多个数据块(数据位)的奇偶校验操作,以得到第一校验数据(P校验位)。
在一些实施例中,待写入数据的数据分块落盘成功后,在指定磁盘阵列的控制器中的校验数据生成器中计算第一校验数据(P校验位),并将得到的第一校验数据暂存在第一写缓存区中,然后异步对第一校验数据进行校验分块落盘,得到第一校验分块。
通过本申请提供的实施例,在磁盘阵列控制器中新增用于暂存校验数据的缓存区,使得第一校验数据暂存到第一写缓存区中,以便于待写入数据的数据分块落盘成功后即刻反馈,并后续异步对第一校验数据进行落盘,能够提高磁盘阵列的写性能。
在一个示例性实施例中,在将待写入数据写入到指定磁盘阵列中的第一磁盘组的磁盘分块之后,上述方法还包括:
S21,在多个数据分块落盘成功的情况下,向发送数据写入命令的目标对象发送落盘成功指示消息,其中,落盘成功指示消息用于指示待写入数据的数据分块落盘成功。
在这里,目标对象可以是预先设置的存储设备的设备主机,也可以是预先与存储设备建立关联的其他终端设备等,本申请在此不做限定。
与相关技术不同的是,本申请实施例无需等待待写入数据的校验数据落盘,而是在待写入数据的多个数据分块落盘成功的情况下,立即向发送数据写入命令的目标对象发送落盘成功指示消息。
在这里,由于本申请实施例在指定磁盘阵列的控制器中新增校验数据生成器与缓存区,故能够在待写入数据的多个数据分块落盘成功的情况下,即刻返回落盘成功消息,并在指定磁盘阵列的控制器中进行校验数据生成,并将生成的校验数据暂存在缓存区中,后续异步进行校验分块落盘。
通过本申请提供的实施例,能够在多个数据分块落盘成功的情况下,先行返回用于指示待写入数据的数据分块落盘成功的落盘成功指示消息,能够降低目标对象的等待时间。
在一个示例性实施例中,将第一校验数据写入到第一磁盘组的磁盘分块中,得到待写入数据对应的第一检验分块,包括:
S31,对第一写缓存区中所暂存的校验数据进行异步落盘处理,以将第一写缓存区中所暂存的校验数据写入到第一磁盘组中对应的第一磁盘的磁盘分块中,得到对应的校验分块。
其中,第一写缓存区中所暂存的校验数据包括第一校验数据。
为了先行返回待写入数据的数据分块的落盘成功指示消息,首先,将待写入数据写入到指定磁盘阵列中的第一磁盘组的磁盘分块,得到与待写入数据对应的多个数据分块,其次,对第一写缓存区中所暂存的校验数据进行异步落盘处理,将第一写缓存区中所暂存的校验数据写入到第一磁盘组中对应的第一磁盘的磁盘分块中,得到对应的校验分块(即第一校验分块)。
需要说明的是,第一校验分块与多个数据分块均存储与指定磁盘阵列的第一磁盘组中,存储顺序可以是顺序存储也可以是随机存储等,本申请在此不做限定。
在一些实施例中,数据落盘是指将数据从内存中写入磁盘以确保数据的安全性与可靠性;落盘机制主要有同步落盘和异步落盘,同步落盘方式是指在写入数据时,磁盘阵列系统会等待数据被写入磁盘后才返回成功的响应,这种方式可以确保数据的一致性和可靠性,但是会降低系统的性能。异步落盘方式是指在写入数据时,磁盘阵列系统不会等待数据被写入磁盘,而是将数据缓存在内存中,然后立即返回成功的响应,这种方式可以提高系统的性能,但是会降低数据的可靠性。
在一些实施例中,待写入数据的数据写入使用同步落盘的方式以保证数据的一致性与可靠性;而待写入数据的第一校验数据写入使用异步落盘的方式,以保证数据的写入效率。
通过本申请提供的实施例,对第一写缓存区中所暂存的校验数据进行异步落盘处理,得到对应的校验分块,能够提高待写入数据的写入效率。
在一个示例性实施例中,在对待写入数据执行第二校验操作,得到与待写入数据对应的第二校验数据之后,上述方法还包括:
S41,将第二校验数据暂存到第二写缓存区中,其中,第二写缓存区是指定磁盘阵列的控制器中,用于暂存校验数据的缓存区。
为了能够在待写入数据的数据分块落盘成功后,即刻反馈至目标对象落盘成功信息,本申请实施例在指定磁盘阵列的控制器中新增用于暂存校验数据的缓存区(包括第一写缓存区与第二缓存区),其中,将第二校验数据暂存到第二写缓存区中。
在一些实施例中,通过对待写入数据执行第二校验操作,得到与待写入数据对应的第二校验数据,第二校验操作增加了第二校验分块,数据可靠性更高,但需要分配更大的磁盘空间(即第二写缓存区)用于存储第二校验分块。
需要说明的是,第一校验数据与第二校验数据是相互独立的,可以同时分别暂存至第一写缓存区与第二写缓存区中。
通过本申请提供的实施例,能够将第二校验数据暂存在第二缓存区,以便于后续进行异步落盘,保证数据写入效率。
在一个示例性实施例中,将第二校验数据写入到指定磁盘阵列的第二磁盘的磁盘分块中,得到与待写入数据对应的第二检验分块,包括:
S51,对第二写缓存区中所暂存的校验数据进行异步落盘处理,以将第二写缓存区中所暂存的校验数据写入到第二磁盘中的磁盘分块中,得到对应的校验分块。
其中,第二写缓存区中所暂存的校验数据包括第二校验数据。
在待写入数据的预设属性的属性值为目标属性值的情况下,为了先行返回待写入数据的数据分块的落盘成功指示消息,首先,将待写入数据写入到指定磁盘阵列中的第一磁盘组的磁盘分块,得到与待写入数据对应的多个数据分块,其次,对第一写缓存区与第二写缓存区中所暂存的校验数据分别进行异步落盘处理,将第一写缓存区中所暂存的校验数据写入到第一磁盘组中对应的第一磁盘的磁盘分块中,得到对应的校验分块(即第一校验分块),将第二写缓存区中所暂存的校验数据写入到第二磁盘中对应的磁盘分块中,得到对应的校验分块(即第二校验分块)。
需要说明的是,第一写缓存区与第二写缓存区的所暂存的校验数据是相互独立的,可以同时进行异步落盘处理。
通过本申请提供的实施例,对第二写缓存区中所暂存的校验数据进行异步落盘处理,得到对应的校验分块,能够提高待写入数据的写入效率。
在一个示例性实施例中,响应于接收到的数据写入命令,将待写入数据写入到指定磁盘阵列中的第一磁盘组的磁盘分块,得到与待写入数据对应的多个数据分块,包括:
S61,响应于接收到的数据写入命令,将待写入数据写入到第一磁盘组的M个磁盘分块,得到与待写入数据对应的M个数据分块。
其中,M为大于或者等于2的正整数,M个磁盘分块中的每个磁盘分块位于第一磁盘组不同的第一磁盘中。
在一些实施例中,指定磁盘阵列的几何架构(分布)是预先确定的,其中,指定磁盘阵列包括第一磁盘组包括M个磁盘,响应于接收到的数据写入命令,将待写入数据写入到第一磁盘组的M个磁盘分块,得到与待写入数据对应的M个数据分块。
在一些实施例中,每个磁盘分块的大小是预先设定的,待写入数据的写入顺序也是预先设定的(例如,顺序写入)。
例如,指定磁盘阵列为独立硬盘冗余阵列,指定磁盘阵列包含的磁盘的数量为五个,第一磁盘组中包含的第一磁盘的数量为四个,待写入数据被写入到第一磁盘组中的三个第一磁盘的磁盘分块中,第一校验数据被写入到第一磁盘组中,除了三个第一磁盘以外的第一磁盘的磁盘分块中,第二磁盘为指定磁盘阵列中除了第一磁盘组以外的磁盘。
通过本申请提供的实施例,能够通过分布存储的方式,将待写入数据写入到指定磁盘阵列中第一磁盘组的M个磁盘分块中,得到对应的M个数据分块,以实现待写入数据的分布存储。
在一个示例性实施例中,第一磁盘组中包含的第一磁盘的数量为M+1,指定磁盘阵列中包含的磁盘的数量为M+2。
在本申请实施例中,第一磁盘组用于存储待写入数据的数据分块(M个)与第一校验分块(通常为1个),因此,第一磁盘组中包含的第一磁盘的数量为M+1;指定磁盘阵列包括第一磁盘组与第二磁盘,其中,第二磁盘用于存储待写入数据对应的第二校验分块(通常为1个),因此,指定磁盘阵列中包含的磁盘的数量为M+2。
在一个示例性实施例中,响应于接收到的数据写入命令,将待写入数据写入到指定磁盘阵列中的第一磁盘组的磁盘分块,得到与待写入数据对应的多个数据分块,包括:
S71,响应于接收到的数据写入命令,确定与待写入数据对应的第一条带,其中,指定磁盘阵列被划分为N个条带,N个条带中的每个条带包含指定磁盘阵列中的每个磁盘的一个磁盘分块,每个条带包含的磁盘分块在对应的磁盘中的位置是相同的;
S72,将待写入数据写入到第一磁盘组中属于第一条带的磁盘分块,得到与待写入数据对应的多个数据分块。
在一些实施例中,对待写入数据进行条带化,确定与待写入数据对应的第一条带;以将连续的数据分割成相同大小的数据块,把每段数据分别写入指定磁盘阵列中的第一磁盘组中属于第一条带的不同磁盘(磁盘分块)上,得到与待写入数据对应的多个数据分块。
在一些实施例中,条带化能够自动的将I/O的负载均衡到多个物理磁盘上,条带化就是将一块连续的数据分成很多小部分并把他们分别存储到不同磁盘上去。以能使多个进程同时访问数据的多个不同部分而不会造成磁盘冲突,而且在需要对这种数据进行顺序访问的时候可以获得最大程度上的I/O并行能力,从而获得较好的性能。
在一些实施例中,指定磁盘阵列被划分为N个条带,在这里N的数量是预先根据具体应用场景设定的,N个条带中的每个条带包含指定磁盘阵列中的每个磁盘的一个磁盘分块,每个条带包含的磁盘分块在对应的磁盘中的位置是相同的。
通过本申请提供的实施例,能够将待写入数据与磁盘阵列进行相对应的条带化,以使得自动的将I/O的负载均衡到多个物理磁盘上。
在一个示例性实施例中,将第一校验数据写入到第一磁盘组的磁盘分块中,得到待写入数据对应的第一检验分块,包括:
S81,将第一校验数据写入到第一磁盘组中属于第一条带、且未写入有数据分块的磁盘分块,得到与待写入数据对应的第一检验分块。
在一些实施例中,指定磁盘阵列中第一磁盘组的第一条带中已写入待写入数据,得到与待写入数据对应的多个数据分块,将第一校验数据写入与待写入数据对于的第一磁盘组中属于第一条带、且未写入有数据分块的磁盘分块,得到与待写入数据对应的第一检验分块。
需要说明的是,数据写入的顺序可以是随机的,也可以是固定顺序的,因此,多个数据分块与相对应的第一校验分块在同一条带中的第一磁盘组的存储位置可以是随机的,例如,当第一磁盘组的第一条带中具有4个磁盘分块时,第一校验分块与三个数据分块均可位于这4个磁盘分块的任意排序位置。
通过本申请实施例,能够将第一校验数据写入到与待写入数据对应的第一条带的第一磁盘的未写入数据分块的磁盘分块中。
在一个示例性实施例中,将第二校验数据写入到指定磁盘阵列的第二磁盘的磁盘分块中,得到与待写入数据对应的第二检验分块,包括:
S91,将第二校验数据写入到第二磁盘中属于第一条带的磁盘分块,得到与待写入数据对应的第二检验分块。
在本申请实施例中,指点磁盘阵列包括第一磁盘组与第二磁盘,其中,第一磁盘阵列用于存储待写入数据的数据分块与第一校验分块,第二磁盘用于存储待写入数据的第二数据分块,将第二校验数据写入到第二磁盘中属于第一条带的磁盘分块,得到与待写入数据对应的第二检验分块。
在一些实施例中,指定磁盘阵列的第一条带中的第一磁盘组的磁盘分块用于存储待写入数据的多个数据分块与第一校验分块,指定磁盘阵列的第一条带中的第二磁盘的磁盘分块用于存储待写入数据的第二校验分块。
通过本申请实施例,能够将第二校验数据写入到与待写入数据对应的第一条带的第二磁盘的磁盘分块中。
在一个示例性实施例中,响应于接收到的数据写入命令,确定与待写入数据对应的第一条带,包括:
S101,响应于接收到的数据写入命令,根据待写入数据待写入到的逻辑地址,确定为与待写入数据对应的第一条带号。
其中,第一条带号用于标识N个条带中的第一条带。
在一些实施例中,数据写入命令携带有待写入数据与待写入数据的目标逻辑地址,存储设备响应于接收到的数据写入命令,据待写入数据待写入到的逻辑地址,确定为与待写入数据对应的第一条带号。
在这里,数据写入命令携带有待写入数据的使用地址,其中,使用地址可以是逻辑地址、物理地址、虚拟地址等。
在一些实施例中,通过指定磁盘阵列的控制器通过待写入到的逻辑地址确定与待写入数据对应的第一条带号,由指定磁盘阵列的磁盘控制器将数据分块的数据和校验分块的数据写入各自磁盘的对应分区中。
在一些实施例中,条带是一种将多个磁盘驱动器合并为一个卷的方法。磁盘条带化是指也就是将一块连续的数据分成很多小部分,并把它们分别存储到不同磁盘上。(这里不同磁盘一般是指磁盘阵列)这样进程在访问数据的时候,可以同时向多个不同部分同时发出I/O请求,由于这些数据存放在不同的磁盘上,因而不会造成磁盘冲突,而且在需要对这种数据进行顺序访问的时候可以获得最大程度上的I/O并行能力,从而获得非常好的性能。很多操作系统、磁盘设备供应商、各种第三方软件都能做到条带化。
在一些实施例中,指定磁盘阵列进条带化之后的条带深度用于表示写在每块磁盘上的条带数据块的大小,指定磁盘阵列进条带化之后的条带宽度用于表示同时可以并发读或写的条带数量,在这里,条带号可以是条带数量的编号,这个数量等于RAID中的物理硬盘数量,例如一个经过条带化的,具有4块物理硬盘的阵列的条带宽度就是4,与待写入数据对应的第一条带号则可以是0-3。
在一个示例性实施例中,在响应于接收到的数据写入命令,确定与待写入数据对应的第一条带号之后,上述方法还包括:
S111,将第一条带的条带信息写入到目标条带映射表中。
其中,目标条带映射表按照指定地址被放置在存储服务器的存储器中。
在一些实施例中,条带的信息被放置在具有特定地址的条带映射表中,目标条带映射表按照指定地址被放置在存储服务器的存储器中。
由于指定磁盘阵列提供至设备主机的是虚拟磁盘,而一个虚拟磁盘可以分布在多个物理磁盘上,将虚拟磁盘地址转换至实际物理磁盘对应地址的过程需要基于条带映射表进行。即,条带映射表用于将待写入数据存储在指定磁盘阵列中条带上的连续地址映射到实际的物理硬盘地址。
在一个示例性实施例中,对待写入数据执行第一校验操作,得到与待写入数据对应的第一校验数据,包括:
S121,对待写入数据执行异或操作,得到与待写入数据对应的第一校验数据,其中,第一校验操作为异或操作。
在一些实施例中,第一校验操作可以是奇偶校验操作,例如,当指定磁盘阵列中的第一磁盘组存在4块硬盘时,使用3块硬盘存放待写入数据的数据分块(假设为D1、D2、D3),使用1块硬盘存放待写入数据的第一校验分块(假设为P)。
例如,根据条带化的3个数据分块(数据位)生成1位校验数据(P校验位)并存放在第一磁盘组的另一块磁盘分块中,得到第一校验分块;生成第一校验位数据的公式如公式1所示:
(1)
其中,为第一校验数据(校验位),为多个数据块中的第一数据块的数据(数据
位),为多个数据块中的第二数据块的数据,为多个数据块中的第三数据块的数据,在
这里,数据块中的数据位条带化的数据,表示异或操作。
当D1、D2、D3中的某一个数据分块丢失时,可以通过剩余的数据分块与第一校验分块进行恢复,例如,当D1数据分块丢失时,具体的恢复公式可参考公式2:
(2)
其中,为多个数据块中的第一数据块的数据(丢失数据块),为第一校验数据,为多个数据块中的第二数据块的数据,为多个数据块中的第三数据块的数据,表示
异或操作。
通过本申请提供的实施例,对待写入数据进行异或操作,得到第一校验数据,能够在部分数据丢失时,根据第一校验数据与其他存储数据进行恢复。
在一个示例性实施例中,在待写入数据的预设属性的属性值为目标属性值的情况下,对待写入数据执行第二校验操作,得到与待写入数据对应的第二校验数据,包括:
S131,在待写入数据的预设属性的属性值为目标属性值的情况下,对待写入数据执行域变换操作,得到与待写入数据对应的变换域数据。
S132,对与待写入数据对应的变换域数据执行异或操作,得到与待写入数据对应的第二校验数据,其中,第二校验操作包括域变换操作和异或操作。
例如,在待写入数据的预设属性的属性值为目标属性值的情况下,执行第一校验操作与第二校验操作(即执行双重奇偶校验操作),即在第一校验数据的基础上还加入了第二校验数据。
在这里,第二校验操作包括域变换操作和异或操作,域变换操作可以是伽罗华域(Galois Fields,简写为GF)变换。
以5块磁盘构成的指定磁盘阵列为例,其中,3块硬盘用于存放待写入数据的多个数据分块(假设为D1、D2、D3),1块硬盘用于存放待写入数据的第一校验分块(假设为P),1块硬盘用于存放待写入数据的第二校验分块(假设为Q)。
需要说明的是,在本申请实施例中多个数据分块与第一校验分块均位于在指定磁盘阵列的第一磁盘组中(存储顺序随机)的磁盘分块中,第二校验分块位于指定磁盘阵列的第二磁盘的磁盘分块中。
第一校验数据与第二校验数据的生成可以参考公式(3)与公式(4):
(3)
(4)
其中,为第一校验数据(校验位),为多个数据块中的第一数据块的数据(数据
位),为多个数据块中的第二数据块的数据,为多个数据块中的第三数据块的数据,在
这里,数据块中的数据位条带化的数据,表示异或操作。为第二校验数据,表示对
第一数据块的数据进行伽罗华域变换,表示对第二数据块的数据进行伽罗华域变
换,表示对第二数据块的数据进行伽罗华域变换。
在这里,当一块磁盘出现数据错误或者丢失的时候,恢复方法同上述第一校验分块进行恢复,无须使用第二校验分块。当两块磁盘上的数据出现错误或者丢失的时候,恢复方法为:利用第一校验分块与第二校验分块的生成公式,联立方程组,无论受损的数据是否包括第一校验分块或第二校验分块,总是能够解出损失的两个数据块的数据。
通过本申请提供的实施例,能够对重要等级高的待写入数据继续进行第二校验操作,以保证数据的高安全性与完整性,且可以根据校验分块进行异常数据恢复。
在一个示例性实施例中,对待写入数据执行第一校验操作,得到与待写入数据对应的第一校验数据,包括:
S141,通过校验数据生成器对待写入数据执行第一校验操作,得到与待写入数据对应的第一校验数据。
对待写入数据执行第二校验操作,得到与待写入数据对应的第二校验数据,包括:
S142,通过校验数据生成器对待写入数据执行第二校验操作,得到与待写入数据对应的第二校验数据。
其中,校验数据生成器是指定磁盘阵列的控制器中,用于进行校验数据生成的生成器。
在一些实施例中,通过指定磁盘阵列的控制器中的校验数据生成器,对待写入数据执行第一校验操作与第二校验操作,得到与待写入数据对应的第一校验数据与第二校验数据。
需要说明的是,第一校验操作与第二校验操作均是由校验数据生成器分别独立执行的,即第一校验操作与第二校验操作可以同时执行,也可以分别执行。
在本申请实施例中,校验数据生成器预先设置了第一校验操作(即奇偶校验,具体可参见公式1-2)的操作逻辑与第二校验操作(即双重奇偶校验,具体可参考公式3-4)的操作逻辑。
在一些实施例中,通过校验数据生成器对待写入数据进行第一校验操作或第二校验操作,也可以同时进行第一校验操作或第二校验操作,在这里,通过第一校验操作得到的第一校验数据包括第一校验位,通过第二校验操作得到的第二校验数据包括第一校验位(与第一校验操作得到的第一校验位相同)与第二校验位,其中,第一校验位写入至指定磁盘阵列的第一磁盘组的磁盘分块中得到第一校验分块,第二校验位写入至指定磁盘阵列的第二磁盘的磁盘分块中得到第二校验分块。
通过本申请提供的实施例,在磁盘阵列的控制器中新增校验数据生成器,能够使得生成数据分块与生成校验分块异步进行,提高了数据的写入效率。
在一个示例性实施例中,在待写入数据的预设属性的属性值为目标属性值的情况下,对待写入数据执行第二校验操作,得到与待写入数据对应的第二校验数据,包括:
S151,在待写入数据的重要性等级的等级值为第一重要性等级的情况下,对待写入数据执行第二校验操作,得到与待写入数据对应的第二校验数据。
其中,预设属性为重要性等级,预设属性的属性值包括第一重要性等级和第二重要性等级,第一重要性等级高于第二重要性等级。
在本申请实施例中,根据数据重要性等级以特定的方式利用RAID5阵列和RAID6阵列,预设属性的属性值包括第一重要性等级和第二重要性等级,并且预设属性的属性值(重要性等级)是由主机用户来确定,其中,在待写入数据的重要性等级的等级值为第二重要性等级的情况下,对待写入数据执行第一校验操作,得到与待写入数据对应的第一校验数据;在待写入数据的重要性等级的等级值为第一重要性等级的情况下,对待写入数据继续执行第二校验操作,得到与待写入数据对应的第二校验数据(第一重要性等级高于第二重要性等级)。
通过本申请提供的实施例,根据待写入数据的预设属性的属性值,选择执行第二校验操作,能够提高磁盘阵列中的数据恢复能力和I/O性能。
在一个示例性实施例中,上述方法还包括:
S161,响应于接收到的数据读取操作,确定与数据读取操作对应的第二条带。
其中,指定磁盘阵列被划分为N个条带,N个条带中的每个条带包含指定磁盘阵列中的每个磁盘的一个磁盘分块,每个条带包含的磁盘分块在对应的磁盘中的位置是相同的,第二条带为与数据读取操作对应的待读取数据的数据分块所属的条带。
S162,从按照预设顺序读取第二条带中的数据分块中的数据,得到待读取数据。
在一些实施例中,数据读取操作携带有待读取数据的使用地址,基于待读取数据的使用地址,确定与数据读取操作对应的第二条带,从按照预设顺序读取第二条带中的数据分块中的数据,得到待读取数据。
在这里,使用地址可以是逻辑地址、物理地址、虚拟地址等,本申请在此不做限定。
参考图3,本申请实施例提供的存储设备的数据处理方法流程图如图3所示,包括以下步骤:
在步骤1中,根据主机用户通过CLI或GUI输入的命令创建对应的混合RAID阵列(相当于上文的指定磁盘阵列)。
在步骤2中,由混合RAID阵列接收用户下发I/O读写任务。
在步骤3中,通过混合RAID阵列中的RAID控制器解析主机用户下发的I/O读写命令。
在步骤4中,判断主机用户下发的I/O读写命令是读命令还是写命令。
当主机用户下发的I/O读写命令为读命令时,执行步骤5;当主机用户下发的I/O读写命令为写命令时,执行步骤6。
在步骤5中,直接以混合RAID阵列的读取数据。
在执行完步骤5之后,读命令流程结束。
在步骤6中,判断主机用户要求写入的数据是高重要性数据还是低重要性数据。
当主机用户要求写入的数据是高重要性数据时,执行步骤7;当主机用户要求写入的数据是低重要性数据时,执行步骤9。
在步骤7中,将低重要性数据的数据分块按顺序写入特定磁盘。
在步骤8中,P校验分块(相当于上文的第一校验分块)由相应条带的数据分块计算得出,并在后台异步落盘,同时不用计算Q校验分块(相当于上文的第二校验分块)。
在步骤8之后,执行步骤11。
在步骤9中,将高重要性数据的数据分块按顺序写入特定磁盘。
在步骤10中,由校验数据生成器计算Q校验分块,将计算得出的Q校验分块暂存在写缓存区中的Q校验缓存区,同时,以同样的方法处理P校验分块。
在步骤11中,在主机用户要求写入数据的数据分块落盘成功后,即可反馈主机用户I/O成功。
在步骤12中,将主机用户要求写入数据的校验分块后台异步落盘。
通过本申请提供的实施例,响应于接收到的数据读取操作,能够基于指定磁盘阵列中数据读取操作对应的第二条带进行数据读取,提高了数据读取效率。
在一个示例性实施例中,指定磁盘阵列为独立硬盘冗余阵列,指定磁盘阵列包含的磁盘的数量为五个,第一磁盘组中包含的第一磁盘的数量为四个,待写入数据被写入到第一磁盘组中的三个第一磁盘的磁盘分块中,第一校验数据被写入到第一磁盘组中,除了三个第一磁盘以外的第一磁盘的磁盘分块中,第二磁盘为指定磁盘阵列中除了第一磁盘组以外的磁盘。
相关技术中,RAID5阵列实现了单个磁盘的冗余纠错功能,同时大大提高了磁盘的有效利用率。参考图4,以图4中RAID5阵列为例,RAID5阵列的几何分布为使用4块磁盘(磁盘1至磁盘4)存放数据分块,使用1块磁盘(磁盘5)存放校验分块。RAID5阵列的基本原理为根据存储在四块磁盘中条带化(例如条带0、条带1)的四块数据分块,生成一块校验分块(P校验分块)并将校验分块存放在第五块磁盘(可以是磁盘1-5中的任意一个)中。
需要说明的是,在RAID5阵列的一个条带中,分别将数据分块存储在4个磁盘中,将校验分块存储在1个磁盘中,其中,数据分块与校验分块的存储顺序可以是随机的也可以是预设的(即数据分块与校验分块均可存储在磁盘1-5中,无特定顺序)。
在一些实施例中,与RAID5阵列相比,RAID6阵列增加了第二个独立校验码信息块(Q校验分块),两个独立的奇偶校验系统使用不同的算法,数据的可靠性非常高,即使两块硬盘同时失效也不会影响数据的使用,主要是用于要求数据绝对安全的场合。RAID6阵列的P校验分块和RAID5的校验分块是一样的,都是采用的“异或”运算。RAID6阵列在RAID5阵列的基础上添加了Q校验分块,因此RAID6阵列支持同时掉两块盘。
在一些实施例中,参考图5,RAID6阵列的几何分布为5块硬盘(即磁盘1-磁盘5,阵列包括多个条带,例如,条带0与条带1,条带中包括多个磁盘分块),使用3块硬盘存放数据分块,使用1块硬盘存放P校验分块,使用1块硬盘存放Q校验分块,在这里,并非某个具体的独立的盘全部用于存放P校验分块、另外独立的盘用于存放Q校验分块;而是对于某个条带(位组)来说,3块磁盘上存放数据分块,1块磁盘存放P校验分块,1块盘用来存放Q校验分块。
RAID5阵列和RAID6阵列各有优缺点,RAID6阵列由于双重奇偶校验,数据的可靠性高于RAID5阵列,但是使用双奇偶校验更新的代价较高,此外,频繁的I/O操作导致在RAID6阵列上的I/O性能不够。RAID5阵列实现了单个磁盘的冗余纠错功能,磁盘阵列的有效利用率高于RAID6阵列,但数据可靠性较低。
本申请实施例提出了混合RAID阵列技术,它以一种特殊的方式同时使用RAID5阵列和RAID6阵列,将数据分为相对高重要性和相对低重要性,采用RAID6阵列处理高重要性数据,以保证高可靠性;采用RAID5阵列处理低重要性数据,以保持良好的性能。
参考图6,本申请实施例的混合RAID阵列(即指定磁盘阵列)的几何分布为5块硬盘,使用3块硬盘存放数据分块,使用1块硬盘存放P校验分块(第一校验分块),使用1块硬盘存放Q校验分块(第二校验分块),其中,磁盘5在混合RAID阵列中被独立释放出来,单独作为存放Q校验分块的磁盘。每个磁盘都连接到磁盘控制器,并连接到磁盘阵列的控制器。在磁盘阵列的控制器中,放置了缓存区和校验生成器。磁盘阵列的控制器通过数据的使用地址来确定数据的条带标识,磁盘控制器将数据分块的数据和校验分块的数据写入各自磁盘的对应分区中,在混合RAID阵列中,条带映射表被放置在存储服务器的RAM中。
在本申请实施例中,在磁盘阵列的控制器中新增缓存区和校验数据生成器,目的是当数据分块落盘成功后即刻反馈主机用户写成功,而同时在后台计算P校验分块,并将计算出来的数据暂存在P校验写缓存区,然后后台异步对P校验分块落盘,以此提高混合RAID阵列的写性能。
本申请实施例提出了混合RAID技术,根据数据重要性以特定的方式使用RAID5阵列和RAID6阵列。数据的重要性分为较高和较低,数据重要性由主机用户决定。混合RAID技术根据数据重要性来判断使用RAID5技术还是RAID6技术对主机用户下发的数据进行I/O读写。当数据重要性为高重要性的数据时,主机用户下发的I/O数据读写由RAID6技术管理;而当数据重要性为低重要性的数据时,主机用户下发的I/O数据读写由RAID5技术管理。同时本发明新增P校验写缓存区和校验数据生成器,目的是当数据分块落盘成功后即刻反馈主机用户写成功,而同时在后台计算P校验分块,并将计算出来的数据暂存在P校验写缓存区,然后后台异步对P校验分块落盘,以此提高混合RAID阵列的写性能。
本申请实施例提出的存储设备的数据处理方法,不仅可以应用于硬件RAID存储技术(RAID卡),同时也适用于软件RAID存储技术。描述的方法和系统不仅可以应用在存储领域,在云计算和人工智能等领域同样可以作为参考借鉴。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
根据本申请实施例的另一方面,还提供了一种存储设备的数据处理装置,该装置用于实现上述实施例中所提供的存储设备的数据处理方法,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图7是本申请实施例提供的一种可选的存储设备的数据处理装置的结构框图,如图7所示,该装置包括:
写入单元702,用于响应于接收到的数据写入命令,将待写入数据写入到指定磁盘阵列中的第一磁盘组的磁盘分块,得到与待写入数据对应的多个数据分块。
第一校验单元704,用于对待写入数据执行第一校验操作,得到与待写入数据对应的第一校验数据,并将第一校验数据写入到第一磁盘组的磁盘分块中,得到待写入数据对应的第一检验分块。
第二校验单元706,用于在待写入数据的预设属性的属性值为目标属性值的情况下,对待写入数据执行第二校验操作,得到与待写入数据对应的第二校验数据,并将第二校验数据写入到指定磁盘阵列的第二磁盘的磁盘分块中,得到与待写入数据对应的第二检验分块;其中,第二磁盘不属于第一磁盘组。
需要说明的是,该实施例中的写入单元702可以用于执行上述步骤S202,该实施例中的第一校验单元704可以用于执行上述步骤S204,该实施例中的第二校验单元706可以用于执行上述步骤S206。
通过本申请实施例能够响应于接收到的数据写入命令,将待写入数据写入至指定磁盘阵列的第一磁盘组的磁盘分块中,得到多个数据分块;对待写入数据执行第一校验操作,得到对应的第一校验数据并写入第一磁盘组的磁盘分块中以得到第一校验分块,由此,能够得到多个数据分块后,对待写入数据进行第一校验操作,仅一次校验能够保证磁盘利用率与数据安全性;在待写入数据的预设属性为目标属性值的情况下,对待写入数据执行第二校验操作,得到对应的第二校验数据,并将第二校验数据写入指定磁盘阵列的第二磁盘的磁盘分块中,得到第二校验分块,由此,对目标属性值的待写入数据再次进行第二校验操作,二次校验能够保证目标属性值的待写入数据的安全性与完整性;按照待写入数据的预设属性对待写入数据进行一次校验或二次校验,在提高磁盘利用率的同时保证了数据的安全性,进而解决了相关技术中存储设备的数据处理方法无法兼顾磁盘阵列利用率与磁盘阵列安全性的技术问题。
在一个示例性实施例中,第一校验单元包括:
第一暂存模块,用于将第一校验数据暂存到第一写缓存区中,其中,第一写缓存区是指定磁盘阵列的控制器 中,用于暂存校验数据的缓存区。
在一个示例性实施例中,上述装置还包括:
发送单元,用于在多个数据分块落盘成功的情况下,向发送数据写入命令的目标对象发送落盘成功指示消息,其中,落盘成功指示消息用于指示待写入数据的数据分块落盘成功。
在一个示例性实施例中,第一校验单元还包括:
第一落盘模块,用于对第一写缓存区中所暂存的校验数据进行异步落盘处理,以将第一写缓存区中所暂存的校验数据写入到第一磁盘组中对应的第一磁盘的磁盘分块中,得到对应的校验分块,其中,第一写缓存区中所暂存的校验数据包括第一校验数据。
在一个示例性实施例中,上述装置还包括:
暂存单元,用于在对待写入数据执行第二校验操作,得到与待写入数据对应的第二校验数据之后,将第二校验数据暂存到第二写缓存区中,其中,第二写缓存区是指定磁盘阵列的控制器 中,用于暂存校验数据的缓存区。
在一个示例性实施例中,第二校验单元包括:
第二落盘模块,用于对第二写缓存区中所暂存的校验数据进行异步落盘处理,以将第二写缓存区中所暂存的校验数据写入到第二磁盘中的磁盘分块中,得到对应的校验分块,其中,第二写缓存区中所暂存的校验数据包括第二校验数据。
在一个示例性实施例中,写入单元包括:
第一写入模块,用于响应于接收到的数据写入命令,将待写入数据写入到第一磁盘组的M个磁盘分块,得到与待写入数据对应的M个数据分块,其中,M为大于或者等于2的正整数,M个磁盘分块中的每个磁盘分块位于第一磁盘组不同的第一磁盘中。
在一个示例性实施例中,第一磁盘组中包含的第一磁盘的数量为M+1,指定磁盘阵列中包含的磁盘的数量为M+2。
在一个示例性实施例中,写入单元包括:
确定模块,用于响应于接收到的数据写入命令,确定与待写入数据对应的第一条带,其中,指定磁盘阵列被划分为N个条带,N个条带中的每个条带包含指定磁盘阵列中的每个磁盘的一个磁盘分块,每个条带包含的磁盘分块在对应的磁盘中的位置是相同的;
第二写入模块,用于将待写入数据写入到第一磁盘组中属于第一条带的磁盘分块,得到与待写入数据对应的多个数据分块。
在一个示例性实施例中,第一校验单元包括:
第三写入模块,用于将第一校验数据写入到第一磁盘组中属于第一条带、且未写入有数据分块的磁盘分块,得到与待写入数据对应的第一检验分块。
在一个示例性实施例中,第二校验单元包括:
第四写入模块,用于将第二校验数据写入到第二磁盘中属于第一条带的磁盘分块,得到与待写入数据对应的第二检验分块。
在一个示例性实施例中,确定模块包括:
第一确定子模块,用于响应于接收到的数据写入命令,根据待写入数据待写入到的逻辑地址,确定为与待写入数据对应的第一条带号,其中,第一条带号用于标识N个条带中的第一条带。
在一个示例性实施例中,上述装置还包括:
映射单元,用于将第一条带的条带信息写入到 目标条带映射表中,其中,目标条带映射表按照指定地址被放置在存储服务器的存储器中。
在一个示例性实施例中,第一校验单元包括:
异或模块,用于对待写入数据执行异或操作,得到与待写入数据对应的第一校验数据,其中,第一校验操作为异或操作。
在一个示例性实施例中,第二校验单元包括:
第五写入模块,用于在待写入数据的预设属性的属性值为目标属性值的情况下,对待写入数据执行域变换操作,得到与待写入数据对应的变换域数据;
第六写入模块,用于对与待写入数据对应的变换域数据执行异或操作,得到与待写入数据对应的第二校验数据,其中,第二校验操作包括域变换操作和异或操作。
在一个示例性实施例中,第一校验单元包括:
第一调用模块,用于通过校验数据生成器对待写入数据执行第一校验操作,得到与待写入数据对应的第一校验数据;
在一个示例性实施例中,第二校验单元包括:
第二调用模块,用于通过校验数据生成器对待写入数据执行第二校验操作,得到与待写入数据对应的第二校验数据;其中,校验数据生成器是指定磁盘阵列的控制器中,用于进行校验数据生成的生成器。
在一个示例性实施例中,预设属性为重要性等级,预设属性的属性值包括第一重要性等级和第二重要性等级,第一重要性等级高于第二重要性等级;第二校验单元包括:
操作模块,用于在待写入数据的重要性等级的等级值为第一重要性等级的情况下,对待写入数据执行第二校验操作,得到与待写入数据对应的第二校验数据。
在一个示例性实施例中,上述装置还包括:
接收单元,用于响应于接收到的数据读取操作,确定与数据读取操作对应的第二条带,其中,指定磁盘阵列被划分为N个条带,N个条带中的每个条带包含指定磁盘阵列中的每个磁盘的一个磁盘分块,每个条带包含的磁盘分块在对应的磁盘中的位置是相同的,第二条带为与数据读取操作对应的待读取数据的数据分块所属的条带;
读取单元,用于从按照预设顺序读取第二条带中的数据分块中的数据,得到待读取数据。
在一个示例性实施例中,指定磁盘阵列为独立硬盘冗余阵列,指定磁盘阵列包含的磁盘的数量为五个,第一磁盘组中包含的第一磁盘的数量为四个,待写入数据被写入到第一磁盘组中的三个第一磁盘的磁盘分块中,第一校验数据被写入到第一磁盘组中,除了三个第一磁盘以外的第一磁盘的磁盘分块中,第二磁盘为指定磁盘阵列中除了第一磁盘组以外的磁盘。
根据本申请实施例的又一方面,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
根据本申请的一个方面,提供了一种计算机程序产品,该计算机程序产品包括计算机程序/指令,该计算机程序/指令包含用于执行流程图所示的方法的程序代码。在这样的实施例中,参考图8,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理器801执行时,执行本申请实施例提供的各种功能。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
参考图8,图8是本申请实施例提供的一种可选的电子设备的计算机系统的结构框图。
图8示意性地示出了用于实现本申请实施例的电子设备的计算机系统结构框图。如图8所示,计算机系统800包括中央处理器801(Central Processing Unit,简称为CPU),其可以根据存储在只读存储器802(Read-Only Memory,ROM)中的程序或者从存储部分808加载到随机访问存储器803(Random Access Memory,简称为RAM)中的程序而执行各种适当的动作和处理。在随机访问存储器803中,还存储有系统操作所需的各种程序和数据。中央处理器801、在只读存储器802以及随机访问存储器803通过总线804彼此相连。输入/输出接口805(Input /Output接口,简称为I/O接口)也连接至总线804。
以下部件连接至输入/输出接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(Cathode Ray Tube,简称为CRT)、液晶显示器(Liquid Crystal Display,简称为LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如局域网卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至输入/输出接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本申请的实施例,各个方法流程图中所描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理器801执行时,执行本申请的系统中限定的各种功能。
需要说明的是,图8示出的电子设备的计算机系统800仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
根据本申请实施例的又一方面,还提供了一种电子设备,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述电子设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。
以上仅为本申请的优选实施例而已,并不用于限制本申请实施例,对于本领域的技术人员来说,本申请实施例可以有各种更改和变化。凡在本申请实施例的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请实施例的保护范围之内。
Claims (22)
1.一种存储设备的数据处理方法,其特征在于,
包括:
响应于接收到的数据写入命令,将待写入数据写入到指定磁盘阵列中的第一磁盘组的磁盘分块,得到与所述待写入数据对应的多个数据分块;
对所述待写入数据执行第一校验操作,得到与所述待写入数据对应的第一校验数据,并将所述第一校验数据写入到所述第一磁盘组的磁盘分块中,得到所述待写入数据对应的第一检验分块;
在所述待写入数据的预设属性的属性值为目标属性值的情况下,对所述待写入数据执行第二校验操作,得到与所述待写入数据对应的第二校验数据,并将所述第二校验数据写入到所述指定磁盘阵列的第二磁盘的磁盘分块中,得到与所述待写入数据对应的第二检验分块;
其中,所述第二磁盘不属于所述第一磁盘组。
2.根据权利要求1所述的方法,其特征在于,在所述对所述待写入数据执行第一校验操作,得到与所述待写入数据对应的第一校验数据之后,所述方法还包括:
将所述第一校验数据暂存到第一写缓存区中,其中,所述第一写缓存区是所述指定磁盘阵列的控制器中,用于暂存校验数据的缓存区。
3.根据权利要求2所述的方法,其特征在于,在所述将待写入数据写入到指定磁盘阵列中的第一磁盘组的磁盘分块之后,所述方法还包括:
在所述多个数据分块落盘成功的情况下,向发送所述数据写入命令的目标对象发送落盘成功指示消息,其中,所述落盘成功指示消息用于指示所述待写入数据的数据分块落盘成功。
4.根据权利要求2所述的方法,其特征在于,所述将所述第一校验数据写入到所述第一磁盘组的磁盘分块中,得到所述待写入数据对应的第一检验分块,包括:
对所述第一写缓存区中所暂存的校验数据进行异步落盘处理,以将所述第一写缓存区中所暂存的校验数据写入到所述第一磁盘组中对应的第一磁盘的磁盘分块中,得到对应的校验分块,其中,所述第一写缓存区中所暂存的校验数据包括所述第一校验数据。
5.根据权利要求1所述的方法,其特征在于,在所述对所述待写入数据执行第二校验操作,得到与所述待写入数据对应的第二校验数据之后,所述方法还包括:
将所述第二校验数据暂存到第二写缓存区中,其中,所述第二写缓存区是所述指定磁盘阵列的控制器中,用于暂存校验数据的缓存区。
6.根据权利要求5所述的方法,其特征在于,所述将所述第二校验数据写入到所述指定磁盘阵列的第二磁盘的磁盘分块中,得到与所述待写入数据对应的第二检验分块,包括:
对所述第二写缓存区中所暂存的校验数据进行异步落盘处理,以将所述第二写缓存区中所暂存的校验数据写入到所述第二磁盘中的磁盘分块中,得到对应的校验分块,其中,所述第二写缓存区中所暂存的校验数据包括所述第二校验数据。
7.根据权利要求1所述的方法,其特征在于,所述响应于接收到的数据写入命令,将待写入数据写入到指定磁盘阵列中的第一磁盘组的磁盘分块,得到与所述待写入数据对应的多个数据分块,包括:
响应于接收到的所述数据写入命令,将所述待写入数据写入到所述第一磁盘组的M个磁盘分块,得到与所述待写入数据对应的M个数据分块,其中,M为大于或者等于2的正整数,所述M个磁盘分块中的每个磁盘分块位于所述第一磁盘组不同的第一磁盘中。
8.根据权利要求7所述的方法,其特征在于,所述第一磁盘组中包含的第一磁盘的数量为M+1,所述指定磁盘阵列中包含的磁盘的数量为M+2。
9.根据权利要求1所述的方法,其特征在于,所述响应于接收到的数据写入命令,将待写入数据写入到指定磁盘阵列中的第一磁盘组的磁盘分块,得到与所述待写入数据对应的多个数据分块,包括:
响应于接收到的所述数据写入命令,确定与所述待写入数据对应的第一条带,其中,所述指定磁盘阵列被划分为N个条带,所述N个条带中的每个条带包含所述指定磁盘阵列中的每个磁盘的一个磁盘分块,所述每个条带包含的磁盘分块在对应的磁盘中的位置是相同的;
将所述待写入数据写入到所述第一磁盘组中属于所述第一条带的磁盘分块,得到与所述待写入数据对应的所述多个数据分块。
10.根据权利要求9所述的方法,其特征在于,所述将所述第一校验数据写入到所述第一磁盘组的磁盘分块中,得到所述待写入数据对应的第一检验分块,包括:
将所述第一校验数据写入到所述第一磁盘组中属于所述第一条带、且未写入有数据分块的磁盘分块,得到与所述待写入数据对应的所述第一检验分块。
11.根据权利要求9所述的方法,其特征在于,所述将所述第二校验数据写入到所述指定磁盘阵列的第二磁盘的磁盘分块中,得到与所述待写入数据对应的第二检验分块,包括:
将所述第二校验数据写入到所述第二磁盘中属于所述第一条带的磁盘分块,得到与所述待写入数据对应的所述第二检验分块。
12.根据权利要求9所述的方法,其特征在于,所述响应于接收到的所述数据写入命令,确定与所述待写入数据对应的第一条带,包括:
响应于接收到的所述数据写入命令,根据所述待写入数据待写入到的逻辑地址,确定为与所述待写入数据对应的第一条带号,其中,所述第一条带号用于标识所述N个条带中的所述第一条带。
13.根据权利要求9所述的方法,其特征在于,在所述响应于接收到的所述数据写入命令,确定与所述待写入数据对应的第一条带号之后,所述方法还包括:
将所述第一条带的条带信息写入到目标条带映射表中,其中,所述目标条带映射表按照指定地址被放置在存储服务器的存储器中。
14.根据权利要求1所述的方法,其特征在于,所述对所述待写入数据执行第一校验操作,得到与所述待写入数据对应的第一校验数据,包括:
对所述待写入数据执行异或操作,得到与所述待写入数据对应的所述第一校验数据,其中,所述第一校验操作为所述异或操作。
15.根据权利要求1所述的方法,其特征在于,所述在所述待写入数据的预设属性的属性值为目标属性值的情况下,对所述待写入数据执行第二校验操作,得到与所述待写入数据对应的第二校验数据,包括:
在所述待写入数据的预设属性的属性值为所述目标属性值的情况下,对所述待写入数据执行域变换操作,得到与所述待写入数据对应的变换域数据;
对与所述待写入数据对应的变换域数据执行异或操作,得到与所述待写入数据对应的所述第二校验数据,其中,所述第二校验操作包括所述域变换操作和所述异或操作。
16.根据权利要求1所述的方法,其特征在于,
所述对所述待写入数据执行第一校验操作,得到与所述待写入数据对应的第一校验数据,包括:
通过校验数据生成器对所述待写入数据执行所述第一校验操作,得到与所述待写入数据对应的第一校验数据;
所述对所述待写入数据执行第二校验操作,得到与所述待写入数据对应的第二校验数据,包括:
通过校验数据生成器对所述待写入数据执行所述第二校验操作,得到与所述待写入数据对应的所述第二校验数据;
其中,所述校验数据生成器是所述指定磁盘阵列的控制器中,用于进行校验数据生成的生成器。
17.根据权利要求1所述的方法,其特征在于,
所述预设属性为重要性等级,所述预设属性的属性值包括第一重要性等级和第二重要性等级,所述第一重要性等级高于所述第二重要性等级;
所述在所述待写入数据的预设属性的属性值为目标属性值的情况下,对所述待写入数据执行第二校验操作,得到与所述待写入数据对应的第二校验数据,包括:
在所述待写入数据的所述重要性等级的等级值为所述第一重要性等级的情况下,对所述待写入数据执行所述第二校验操作,得到与所述待写入数据对应的所述第二校验数据。
18.根据权利要求1所述的方法,其特征在于,
所述方法还包括:
响应于接收到的数据读取操作,确定与所述数据读取操作对应的第二条带,其中,所述指定磁盘阵列被划分为N个条带,所述N个条带中的每个条带包含所述指定磁盘阵列中的每个磁盘的一个磁盘分块,所述每个条带包含的磁盘分块在对应的磁盘中的位置是相同的,所述第二条带为与所述数据读取操作对应的待读取数据的数据分块所属的条带;
从按照预设顺序读取所述第二条带中的数据分块中的数据,得到所述待读取数据。
19.根据权利要求1至18中任一项所述的方法,其特征在于,
所述指定磁盘阵列为独立硬盘冗余阵列,所述指定磁盘阵列包含的磁盘的数量为五个,所述第一磁盘组中包含的第一磁盘的数量为四个,所述待写入数据被写入到所述第一磁盘组中的三个第一磁盘的磁盘分块中,所述第一校验数据被写入到所述第一磁盘组中,除了所述三个第一磁盘以外的第一磁盘的磁盘分块中,所述第二磁盘为所述指定磁盘阵列中除了所述第一磁盘组以外的磁盘。
20.一种存储设备的数据处理装置,其特征在于,
包括:
写入单元,用于响应于接收到的数据写入命令,将待写入数据写入到指定磁盘阵列中的第一磁盘组的磁盘分块,得到与所述待写入数据对应的多个数据分块;
第一校验单元,用于对所述待写入数据执行第一校验操作,得到与所述待写入数据对应的第一校验数据,并将所述第一校验数据写入到所述第一磁盘组的磁盘分块中,得到所述待写入数据对应的第一检验分块;
第二校验单元,用于在所述待写入数据的预设属性的属性值为目标属性值的情况下,对所述待写入数据执行第二校验操作,得到与所述待写入数据对应的第二校验数据,并将所述第二校验数据写入到所述指定磁盘阵列的第二磁盘的磁盘分块中,得到与所述待写入数据对应的第二检验分块;
其中,所述第二磁盘不属于所述第一磁盘组。
21.一种计算机可读存储介质,其特征在于,
所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现权利要求1至19任一项中所述的方法的步骤。
22.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,
所述处理器执行所述计算机程序时实现权利要求1至19任一项中所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311473037.1A CN117193672B (zh) | 2023-11-07 | 2023-11-07 | 存储设备的数据处理方法及装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311473037.1A CN117193672B (zh) | 2023-11-07 | 2023-11-07 | 存储设备的数据处理方法及装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117193672A CN117193672A (zh) | 2023-12-08 |
CN117193672B true CN117193672B (zh) | 2024-02-09 |
Family
ID=88996497
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311473037.1A Active CN117193672B (zh) | 2023-11-07 | 2023-11-07 | 存储设备的数据处理方法及装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117193672B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117806568B (zh) * | 2024-02-29 | 2024-06-07 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据更新方法、装置、设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101976175A (zh) * | 2010-08-19 | 2011-02-16 | 北京同有飞骥科技有限公司 | 一种水平型分组并行集中校验的磁盘阵列的构建方法 |
CN108572882A (zh) * | 2017-03-10 | 2018-09-25 | 华为技术有限公司 | 一种数据存储的方法及存储设备 |
CN116450048A (zh) * | 2023-04-21 | 2023-07-18 | 山东云海国创云计算装备产业创新中心有限公司 | Raid6磁盘阵列降级为raid5磁盘阵列的方法 |
CN116501537A (zh) * | 2023-06-26 | 2023-07-28 | 苏州浪潮智能科技有限公司 | 磁盘阵列切换方法、系统、电子设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230273865A1 (en) * | 2022-01-28 | 2023-08-31 | Pure Storage, Inc. | Restoring Lost Data |
-
2023
- 2023-11-07 CN CN202311473037.1A patent/CN117193672B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101976175A (zh) * | 2010-08-19 | 2011-02-16 | 北京同有飞骥科技有限公司 | 一种水平型分组并行集中校验的磁盘阵列的构建方法 |
CN108572882A (zh) * | 2017-03-10 | 2018-09-25 | 华为技术有限公司 | 一种数据存储的方法及存储设备 |
CN116450048A (zh) * | 2023-04-21 | 2023-07-18 | 山东云海国创云计算装备产业创新中心有限公司 | Raid6磁盘阵列降级为raid5磁盘阵列的方法 |
CN116501537A (zh) * | 2023-06-26 | 2023-07-28 | 苏州浪潮智能科技有限公司 | 磁盘阵列切换方法、系统、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117193672A (zh) | 2023-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8677063B2 (en) | Parity declustered storage device array with partition groups | |
US11055188B2 (en) | Offloading error processing to raid array storage enclosure | |
EP3230870B1 (en) | Elastic metadata and multiple tray allocation | |
CN110737541B (zh) | 分布式存储系统中分发数据的方法和系统 | |
CN103534688B (zh) | 数据恢复方法、存储设备和存储系统 | |
CN103064765B (zh) | 数据恢复方法、装置及集群存储系统 | |
US9405625B2 (en) | Optimizing and enhancing performance for parity based storage | |
US10353787B2 (en) | Data stripping, allocation and reconstruction | |
US20210133026A1 (en) | Erasure Coded Data Shards Containing Multiple Data Objects | |
CN108628541B (zh) | 一种文件存储的方法、装置及存储系统 | |
US7093069B2 (en) | Integration of a RAID controller with a disk drive module | |
CN117193672B (zh) | 存储设备的数据处理方法及装置、存储介质及电子设备 | |
CN102799533B (zh) | 一种磁盘损坏扇区屏蔽方法及装置 | |
US20190196911A1 (en) | Computer system | |
US20110202723A1 (en) | Method of allocating raid group members in a mass storage system | |
US9298555B1 (en) | Managing recovery of file systems | |
US10521145B1 (en) | Method, apparatus and computer program product for managing data storage | |
CN108228085A (zh) | 用于管理存储系统的方法和设备 | |
CN113687977A (zh) | 基于raid控制器以实现计算性能提升的数据处理装置 | |
US20190227872A1 (en) | Method, apparatus and computer program product for managing data storage in data storage systems | |
US11314608B1 (en) | Creating and distributing spare capacity of a disk array | |
US11561859B2 (en) | Method, device and computer program product for managing data | |
US11327666B2 (en) | RAID member distribution for granular disk array growth | |
CN111831230A (zh) | 一种面向高性能计算及大数据的智能存储系统 | |
US11640337B2 (en) | Data recovery of distributed data using redundant codes |
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 |