CN113420341B - 一种数据保护方法、数据保护设备及计算机*** - Google Patents

一种数据保护方法、数据保护设备及计算机*** Download PDF

Info

Publication number
CN113420341B
CN113420341B CN202110655578.0A CN202110655578A CN113420341B CN 113420341 B CN113420341 B CN 113420341B CN 202110655578 A CN202110655578 A CN 202110655578A CN 113420341 B CN113420341 B CN 113420341B
Authority
CN
China
Prior art keywords
data
protected
raid
cache
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.)
Active
Application number
CN202110655578.0A
Other languages
English (en)
Other versions
CN113420341A (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.)
Lianyun Technology Hangzhou Co ltd
Original Assignee
Lianyun Technology Hangzhou 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 Lianyun Technology Hangzhou Co ltd filed Critical Lianyun Technology Hangzhou Co ltd
Priority to CN202110655578.0A priority Critical patent/CN113420341B/zh
Publication of CN113420341A publication Critical patent/CN113420341A/zh
Application granted granted Critical
Publication of CN113420341B publication Critical patent/CN113420341B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/80Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in storage media based on magnetic or optical technology, e.g. disks with sectors
    • 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)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种数据保护方法、数据保护设备及计算机***。根据本发明实施例的数据保护方法包括响应数据保护任务,获取待保护数据;采用第一RAID方式保护所述待保护数据;将所述第一RAID方式保护的所述待保护数据写入缓存区,存为缓存数据;采用第二RAID方式保护所述缓存数据;将所述第二RAID方式保护的所述缓存数据写入存储区,存为存储数据。根据本发明实施例的数据保护方法、数据保护设备及计算机***,在提升数据保护能力的同时,节省了数据保护所需要的额外存储空间。

Description

一种数据保护方法、数据保护设备及计算机***
技术领域
本发明涉及计算机存储技术领域,特别涉及一种数据保护方法、数据保护设备及计算机***。
背景技术
固态硬盘(Solid State Disk/Drive,SSD)已经广泛地被使用在各种场合。随着制作工艺的提升,NAND flash(固态硬盘)的存储容量也在不断上升。但是随着存储容量的提升,NAND flash的品质却在下降,导致数据丢失的可能性升高。
在现有技术中,为了解决数据错误、丢失等问题,通常是使用指令纠错技术(ErrorChecking and Correcting,ECC)纠错;或是采取(独立冗余)磁盘阵列(Redundant Arraysof Independent Disks,RAID)的方式存储数据。但是指令纠错技术在数据的原始错误位(error bit)太高或是编程失败(program fail)等情况下,无法恢复数据。RAID的适用性差,且会在固态硬盘利用率、读取速度等方面带来不利影响。
因此,希望能有一种新的数据保护方法、数据保护设备及计算机***,能够克服上述问题。
发明内容
鉴于上述问题,本发明的目的在于提供一种数据保护方法、数据保护设备及计算机***,从而在提升数据保护能力的同时,节省校验数据的存储空间。
根据本发明的一方面,提供一种数据保护方法,包括:获取待保护数据;采用第一RAID方式保护所述待保护数据;将所述第一RAID方式保护的所述待保护数据写入缓存区,存为缓存数据;采用第二RAID方式保护所述缓存数据;将所述第二RAID方式保护的所述缓存数据写入存储区,存为存储数据。
优选地,所述第一RAID方式对所述待保护数据出错的容错率大于所述第二RAID方式对所述待保护数据出错的容错率;所述缓存数据包括所述待保护数据和第一校验数据,所述存储数据包括所述待保护数据和第二校验数据;其中,所述第一校验数据是采用所述第一RAID方式保护所述待保护数据时产生的校验数据,所述第二校验数据是采用所述第二RAID方式保护所述待保护数据时产生的校验数据,所述第一校验数据的数据量大于所述第二校验数据的数据量。
优选地,所述第一RAID方式采用RAID5的Block RAID;所述第二RAID方式采用RAID6的Page RAID。
优选地,所述缓存区包括若干个缓存组,每个所述缓存组包括一个第一校验数据区块和多个第一保护数据区块;
所述采用第一RAID方式保护所述待保护数据,将所述第一RAID方式保护的所述待保护数据写入缓存区包括:
将所述待保护数据存在各所述第一保护数据区块;根据RAID5的Block RAID,由每个所述缓存组中的待保护数据得到每个所述缓存组的第一检验数据,并将每个所述缓存组的第一校验数据存在所述缓存组中的第一校验数据区块,其中,所述第一校验数据用于RAID5的校验。
优选地,所述存储区包括若干个存储组,每个所述存储组包括两个第二校验数据页面和多个第二保护数据页面;
所述采用第二RAID方式保护所述缓存数据,将所述第二RAID方式保护的所述缓存数据写入存储区包括:
将所述缓存区中的所述待保护数据,写入各所述第二保护数据页面;根据RAID6的Page RAID,由每个所述存储组中的待保护数据得到每个所述存储组的第二校验数据,并将每个所述存储组的第二校验数据存在每个所述存储组中的第二校验数据页面,其中,所述第二校验数据用于RAID6的校验。
优选地,在所述将所述第一RAID方式保护的所述待保护数据写入缓存区,存为缓存数据之后,所述数据保护方法还包括:
获取所述缓存区中缓存数据的数据量;以及在所述缓存区中缓存数据的数据量达到设定阈值后,将所述缓存区中的所述待保护数据写入所述存储区,并采用所述第二RAID方式保护所述待保护数据。
优选地,所述缓存区包括SLC存储单元,所述存储区包括MLC存储单元或TLC存储单元或QLC存储单元。
优选地,在同一个固态盘内存储所述缓存数据和所述存储数据。
优选地,在将所述待保护数据写入缓存区时出现编程失败的情况下,所述数据保护方法还包括:根据RAID 5的Block RAID,将编程失败的待保护数据进行恢复,并将恢复后的待保护数据再次写入所述缓存区。
根据本发明的另一方面,提供一种数据保护设备,包括:缓存区,用于存储待保护数据,并采用第一RAID方式保护所述待保护数据;以及存储区,用于存储所述待保护数据,并采用第二RAID方式保护所述待保护数据。
优选地,所述缓存区包括若干个缓存组,每个所述缓存组包括一个第一校验数据区块和多个第一保护数据区块;所述第一保护数据区块用于存储所述待保护数据;所述第一校验数据区块用于存储根据RAID5的Block RAID由所述待保护数据得到的第一检验数据,其中,所述第一校验数据用于RAID5的校验;
所述存储区包括若干个存储组,每个所述存储组包括两个第二校验数据页面和多个第二保护数据页面;所述第二保护数据页面用于存储所述待保护数据;所述第二校验数据页面用于存储根据RAID6的Page RAID由所述待保护数据得到的第二校验数据,其中,所述第二校验数据用于RAID6的校验。
优选地,所述数据保护设备还包括:阈值单元,用于获取所述缓存区中缓存数据的数据量,并在所述缓存区中缓存数据的数据量达到设定阈值后,发送存储指令;所述存储指令用于控制将所述缓存区中的缓存数据写入所述存储区;以及恢复单元,用于在将所述待保护数据写入缓存区时出现编程失败的情况下,根据RAID 5的Block RAID,将编程失败的待保护数据进行恢复,并将恢复后的待保护数据再次写入所述缓存区。
根据本发明的再一方面,提供一种计算机***,包括主机;以及如前所述的数据保护设备,与所述主机相连接以获取所述待保护数据,用于存储所述待保护数据。
根据本发明实施例的数据保护方法、数据保护设备及计算机***,对缓存部分和存储部分使用不同的RAID策略,在提升数据保护能力的同时,降低了对存储空间的占用。
根据本发明实施例的数据保护方法、数据保护设备及计算机***,采用BlockRAID方式保护缓存区中的待保护数据;采用Page RAID方式保护存储区中的待保护数据,采用不同级别的保护方式能够确保数据的顺利写入、擦除、编程等。
根据本发明实施例的数据保护方法、数据保护设备及计算机***,先采用RAID5方式保护缓存区中的数据;再采用RAID6方式保护存储区中的数据,在提高数据安全性的同时,降低了对存储空间的占用。
附图说明
通过以下参照附图对本发明实施例的描述,本发明的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示出了存储器的存储结构示意图;
图2示出了RAID5的存储结构示意图;
图3示出了RAID6的存储结构示意图;
图4示出了根据本发明实施例的数据保护方法的方法流程图;
图5示出了根据本发明实施例的数据保护方法的方法流程图;
图6示出了根据本发明实施例的RAID5的存储结构示意图;
图7示出了根据本发明实施例的RAID6的存储结构示意图;
图8示出了根据本发明实施例的数据保护设备的结构示意图;
图9示出了根据本发明实施例的数据保护设备的装置示意图;
图10示出了根据本发明实施例的数据保护设备的结构示意图;
图11示出了根据本发明实施例的计算机***的装置示意图。
具体实施方式
以下将参照附图更详细地描述本发明的各种实施例。在各个附图中,相同的元件采用相同或类似的附图标记来表示。为了清楚起见,附图中的各个部分没有按比例绘制。此外,在图中可能未示出某些公知的部分。
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。在下文中描述了本发明的许多特定的细节,例如部件的结构、材料、尺寸、处理工艺和技术,以便更清楚地理解本发明。但正如本领域的技术人员能够理解的那样,可以不按照这些特定的细节来实现本发明。
应当理解,在描述部件的结构时,当将一层、一个区域称为位于另一层、另一个区域“上面”或“上方”时,可以指直接位于另一层、另一个区域上面,或者在其与另一层、另一个区域之间还包含其它的层或区域。并且,如果将部件翻转,该一层、一个区域将位于另一层、另一个区域“下面”或“下方”。
图1示出了存储器的存储结构示意图。如图1所示,以NAND flash(NAND型快闪存储器)为例,一块NAND flash由一个或多个Package组成(比如2);一个package由一个或多个target组成(比如4);一个target由一个或多个LUN组成(比如2);一个LUN由多个Plane组成(比如2);一个Plane由多个Block组成(比如256);一个Block由多个Page组成(比如512)。一个Page一般为16KB。NAND flash erase(擦除)的基本单位是Block;编程(program)和读(read)的基本单位是Page。图1示出的是一个2Targets、2LUN、2Plane的NAND flash,其中标注出来每一个Plane的Block X中的Page Y。
RAID(Redundant array of inexpensive disk)通过给磁盘阵列增加冗余磁盘提高了磁盘阵列的可靠性。所谓冗余磁盘,即该磁盘不用于存放实际数据,而用来存放一些冗余信息,而这些冗余信息可用来在必要的时候进行有效数据恢复,从而实现对存储数据的保护,增加磁盘阵列的可靠性。存在许多不同级别的RAID,包括RAID1、RAID3、RAID4、RAID5、RAID6、RAID10等。
图2示出了RAID5的存储结构示意图。RAID5(奇偶校验)实现了单个磁盘的冗余纠错功能,在具有数据保护功能的同时,具有较高的磁盘有效利用率。如图2所示,以RAID5(4D+P)为例子来讲,使用4块磁盘(disk1至disk4),使用1块磁盘(disk1至disk4中的一个)存放校验位(非数据位)。其基本原理是这样的:根据条带化的数据4D(使用四位数据)生成一位的校验信息,存放在第五块磁盘中。
生成P校验位的公式一般是这样的:
其中,P为校验位,D1~D3分别代表三个数据位,表示异或操作。
可以看到,当D1,D2,D3中其余的一个数据丢失的时候,可以利用其余的三个数据位和校验位P进行恢复,具体的恢复公式如下:
例如,当D1丢失的时候,
图3示出了RAID6的存储结构示意图。RAID6同RAID5最大的区别就是在RAID5的基础上除了具有P校验位以外,还加入了第2个校验位Q位。以RAID6(6D+1P+1Q)为例子,这个***需要8块硬盘,其中6块用于存放数据,1块用于存放P校验位,1块用于存放Q校验位。并非某个具体的独立的盘全部用来存放P校验信息,另外一个Q校验信息。而是对于某个位组(6个数据位+P位+Q位)来说,采用某种原则,6块盘上存放数据位,1块盘存放P位,1块盘用来存放Q位。
其数学原理如下:
校验位的生成:
其中,D1~D3:条带化的数据;P为校验位;Q为校验位;为异或操作;GF(D1)为对D1位进行Galois Field变换。
当一块磁盘出现数据错误或者丢失的时候,恢复方法同RAID5,无须使用Q校验位。当两块磁盘上的数据出现错误或者丢失的时候,恢复方法为:利用上边给出的P,Q的生成公式,联立方程组,无论受损的数据是否包括P或者Q,总是能够解出损失的两位的数据,从而实现对数据的保护。
在本发明的可选实施例中,将第一RAID方式保护的待保护数据写入缓存区,存为缓存数据包括根据RAID5由data(待保护数据)得到第一检验数据P1,将data和P1作为缓存数据,存在缓存区。将第二RAID方式保护的缓存数据写入存储区,存为存储数据包括将缓存区中的data写入存储区,根据RAID6由data得到第二检验数据P2+Q,将data+P2+Q作为存储数据,存在存储区。在存储区中的待保护数据出错时,缓存区里还有待保护数据,原始数据不会丢失,可以得到保护。
图4示出了根据本发明实施例的数据保护方法的方法流程图。如图4所示,根据本发明实施例的数据保护方法包括以下步骤:
步骤S101:获取待保护数据;
响应数据存储任务,获取待保护数据。例如固件对获取的待保护数据主动做保护,并对(保护后的)待保护数据进行存储。可选地,从host获取待保护数据。可选地,数据存储设备例如响应中央处理器(central processing unit,CPU)的数据存储任务(指令),从外部输入设备、其他存储设备等中的至少一个设备中获取待保护数据,并对获取的待保护数据进行存储和保护。
步骤S102:采用第一RAID方式保护待保护数据;
采用第一RAID方式保护待保护数据。例如采用RAID5的Block RAID方式对待保护数据进行保护。
步骤S103:将第一RAID方式保护的待保护数据写入缓存区,存为缓存数据;
将第一RAID方式保护的待保护数据写入缓存区,存为缓存数据。例如将第一RAID方式保护的待保护数据写入缓存区,作为存储在缓存区中的缓存数据。
步骤S104:采用第二RAID方式保护缓存数据;
采用第二RAID方式保护待保护数据。例如采用RAID6的Page RAID方式对待保护数据进行保护。
步骤S105:将第二RAID方式保护的缓存数据写入存储区,存为存储数据。
将第二RAID方式保护的缓存数据写入存储区,存为存储数据。例如将第二RAID方式保护的缓存数据写入存储区,作为存储在存储区中的存储数据。
在本发明的上述实施例中,对缓存区和存储区中的待保护数据使用不同的RAID策略,在提升数据保护能力的同时,降低了对存储空间的占用。
在本发明的上述实施例中,当存储区中的待保护数据出错(如编程失败)时,缓存区里还有待保护数据,原始数据不会丢失,得到了保护,从而保证了数据的安全性。
在本发明的可选实施例中,第一RAID方式对待保护数据出错的容错率大于第二RAID方式对待保护数据出错的容错率;缓存数据包括待保护数据和第一校验数据,存储数据包括待保护数据和第二校验数据。第一校验数据是采用第一RAID方式保护待保护数据时产生的校验数据,第二校验数据是采用第二RAID方式保护待保护数据时产生的校验数据,第一校验数据的数据量大于第二校验数据的数据量。
对缓存区和存储区中的待保护数据使用不同的RAID策略,在提升数据保护能力的同时,降低了对存储空间的占用,这种组合方式可以平衡不同RAID的数据保护能力与所占存储空间。
在本发明的可选实施例中,缓存区包括SLC存储单元;存储区包括MLC存储单元或TLC存储单元或QLC存储单元。
在本发明的可选实施例中,在同一个固态盘内存储缓存数据和存储数据。
在本发明的可选实施例中,所述数据保护方法还包括,将待保护数据条带化。条带/条带化(stripe)是把连续的数据分割成相同大小的数据块,把每段数据分别写入到阵列中的不同磁盘上的方法。简单的说,条带是一种将多个磁盘驱动器合并为一个卷的方法。许多情况下,这是通过硬件控制器来完成的。具体地讲,在响应数据保护任务,获取待保护数据后,将待保护数据条带化,得到条带化待保护数据,以满足RAID存储方式的存储要求。
在本发明的可选实施例中,所述数据保护方法还包括,获取缓存区中缓存数据的数据量;以及在缓存区中缓存数据的数据量达到设定阈值后,将缓存区中的待保护数据写入存储区。即待保护数据首先存入缓存区,在缓存区中的待保护数据到达一定量(阈值)时,将缓存区中的数据转存至存储区。可选地,在将缓存区中的数据转存至存储区之后,删除缓存区中已经存入存储区的数据以接收后续的待保护数据。
在本发明的可选实施例中,所述数据保护方法还包括,根据测试数据得到设定阈值。具体地讲,设定阈值例如为固定阈值,可以是个经验值。例如根据不同的测试需求,比如一般的CD Mark(CD标记)测试写入的数据量(测试数据),得到设定阈值。可选地,根据CDMark测试写入的数据量,转换为SLC block的数量。
在本发明的可选实施例中,所述数据保护方法还包括,从缓存区中读取缓存数据;对读取的缓存数据进行恢复,得到恢复待保护数据;将恢复待保护数据写入存储区,得到存储数据,并采用第二RAID方式保护恢复待保护数据。在本发明的上述实施例中,在缓存区中的缓存数据(待保护数据)出现错误时,能够通过恢复数据对待保护数据进行纠错,从而提高数据存储的准确性。
在本发明的可选实施例中,在将待保护数据写入缓存区时出现编程失败的情况下,所述数据保护方法还包括:根据RAID 5的Block RAID,将编程失败的待保护数据进行恢复,并将恢复后的待保护数据再次写入所述缓存区。通过保护级别更高的Block RAID,可以解决写入缓存区(如SLC存储单元)编程失败的问题。
在本发明的上述实施例中,对不同的Block使用不同的RAID策略,在既提升数据保护能力的同时又降低RAID产生的校验数据对NAND flash空间的占用。
图5示出了根据本发明实施例的数据保护方法的方法流程图。如图5所示,根据本发明实施例的数据保护方法包括以下步骤:
步骤S201:响应数据保护任务,获取待保护数据;
响应数据保护任务,获取待保护数据。例如固件对获取的待保护数据主动做保护,并对(保护后的)待保护数据进行存储。
步骤S202:采用RAID5的Block RAID方式保护待保护数据,并将待保护数据写入缓存区,存为缓存数据;
采用RAID5的Block RAID方式保护待保护数据,并将待保护数据写入缓存区,存为缓存数据。例如将(用户输入的)待保护数据写入SLC(Single-Level Cell,单层单元)Block。
步骤S203:判断缓存区中数据量是否到达设定阈值;
判断缓存区中数据量是否到达设定阈值。例如判断SLC Block中数据量(待保护数据/缓存数据)是否达到设定阈值。
在判断缓存区中数据量达到设定阈值时,执行步骤S204:采用RAID6的Page RAID方式保护待保护数据,并将待保护数据写入缓存区,存为存储数据。
采用RAID6的Page RAID方式保护待保护数据,并将待保护数据写入缓存区,存为存储数据。例如将SLC Block中的存储数据/缓存数据采用RAID6方式写入QLC(四层存储单元)Block。
在判断缓存区中数据量未达到设定阈值时,执行步骤S201。即响应数据保护任务,获取待保护数据。
在本发明的一个可选实施例中,采用第一RAID方式(并不限于RAID5或RAID6等)保护待保护数据时,采用Block RAID方式保护待保护数据;采用第二RAID方式(并不限于RAID5或RAID6等)保护待保护数据时,采用Page RAID方式保护待保护数据。
在本发明的另一个可选实施例中,第一RAID方式为RAID5方式;第二RAID方式为RAID6方式。具体地讲,该数据保护方法还包括,根据待保护数据得到第一校验码;根据待保护数据和/或缓存数据得到第二校验码。其中,缓存数据包括待保护数据和第一校验码;存储数据包括待保护数据和第二校验码(即第一校验数据包括第一校验码;第二校验数据包括第二校验码)。第一校验码用于RAID5的校验;第二校验码用于RAID6的校验。
在本发明的可选实施例中,待保护数据(用户数据)在写入的NAND flash的时候,先写入SLC Block,这个时候可以使用采用RAID 5的Block RAID来保护数据;在SLC Block所存储的数据量达到一定量(即上述的固定阈值,一般是个经验值,根据不同的测试需求,比如一般的CDMark测试写入的数据量,转换为SLC block的数量)的时候,将SLC Block中的数据写入到QLC Block,这个时候可以使用采用RAID 6的Page RAID来保护数据。在本发明的上述实施例中,使用RAID5和RAID6组合的方式保护数据,在实现数据保护的同时,降低了校验数据所占用的存储空间。用户数据写入SLC Block的时候,如果出现program fail,可以通过RAID 5的Block RAID恢复回来(原始数据已经无法追溯)。SLC Block的数据写入QLCBlock的时候,如果出现program fail,但是原始的数据还在SLC Black里面,不会导致用户数据出错。QLC的数据如果出现问题,可以通过RAID 6的Page RAID恢复回来。
图6示出了根据本发明实施例的RAID5的存储结构示意图。图6中的(a)示出了RAID5的Block RAID的存储结构;图6中的(b)示出了RAID5的Page RAID的存储结构。
如图6(a)所示,采用RAID5的Block RAID时,图6(a)中阴影部分对应的区域为校验区块;图6(a)中非阴影部分对应的区域为数据区块。如图6(b)所示,采用RAID5的Page RAID时,图6(b)中阴影部分对应的区域为校验页面;图6(b)中非阴影部分对应的区域为数据页面。
图7示出了根据本发明实施例的RAID6的存储结构示意图。图7中的(a)示出了RAID6的Block RAID的存储结构;图7中的(b)示出了RAID6的Page RAID的存储结构。
如图7(a)所示,采用RAID6的Block RAID时,图7(a)中阴影部分对应的区域为校验区块;图7(a)中非阴影部分对应的区域为数据区块。如图7(b)所示,采用RAID6的Page RAID时,图7(b)中阴影部分对应的区域为校验页面;图7(b)中非阴影部分对应的区域为数据页面。
在本发明的可选实施例中,第一RAID方式采用RAID5的Block RAID,第二RAID方式采用RAID6的Page RAID。缓存区包括若干个缓存组,每个缓存组包括一个第一校验数据区块和多个第一保护数据区块,如图6(a)所示,阴影部分对应的区域为第一校验数据区块,非阴影部分对应的区域为第一保护数据区块。存储区包括若干个存储组,每个存储组包括两个第二校验数据页面和多个第二保护数据页面,如图7(b)所示,阴影部分对应的区域为第二校验数据页面,非阴影部分对应的区域为第二保护数据页面。
具体地讲,以一个2LUN、2Plane的RAID5的Block RAID为例,Block X包含3Pages(Page 0,Page 1和Page 2)。因为program(编程)的基本单位是Page,所以Plane0/LUN0,Plane1/LUN0和Plane0/LUN1的RAID操作得到的校验数据,最后写入Plane1/LUN1的对应Page。如果读的时候发现有某个Plane的某个Page出现了异常,数据无法正常读取,那么将其他Plane上相同Block的相同Page的数据读出来,按照RAID操作的要求即可获取异常Page的原始数据。在上述的存储方式(存储结构)中,Block RAID可以保护每一个Page,即Page0,Page 1和Page 2在RAID 5策略下,可以同时出现一个错误;在RAID 6策略下,可以同时存在2个错误。
在本发明的可选实施例中,第一RAID方式采用Block RAID,即根据待保护数据得到校验数据,例如按照RAID5的方式由待保护数据得到校验数据。待保护数据和校验数据分别存储在不同的区域。以一个2LUN、2Plane的RAID5的Page RAID为例,Block X包含3Pages(Page 0,Page 1和Page 2)。因为program(编程)的基本单位是Page,所以所有的Page0和Page1以及前三个Plane的Page2的数据在program的过程中得出的RAID数据最后写入Plane1/LUN1的Page2,如果其中某个Plane的某个Page出现异常后,需要将其他所有的Page读出来,按照RAID解码的流程即可得到错误位置的原始数据。
Page RAID可以保护多个Page中的某个Page,即Page 0,Page 1和Page 2在RAID 5策略下,只能出现一个错误;在RAID 6策略下,只能出现2个错误。
在本发明的可选实施例中,第二RAID方式采用RAID6的Page RAID,即待保护数据在编程(program)过程中,得到校验数据。例如按照RAID6的方式在编程过程中根据待保护数据得到校验数据,待保护数据和校验数据分别存储在不同的区域。
通过以上的描述,我们可以看到,Block RAID可以保护一个Block的数据:
RAID5:Plane0/LUN0中block X的page i、Plane1/LUN0中block X的page i、Plane0/LUN1中block X的page i和Plane1/LUN1中block X的page i(i=0,1,2…)有一个出现错误,可以由Plane1/LUN1中block X对应的page i来保护/恢复,容错率为1/4;
RAID6:Plane0/LUN0中block X的page i、Plane1/LUN0中block X的page i、Plane0/LUN1中block X的page i、Plane1/LUN1中block X的page i(i=0,1,2…)有2个出现错误,可以由Plane0/LUN1中block X对应的page i和Plane1/LUN1中block X对应的pagei来保护/恢复,容错率为2/4。
Page RAID只能保护某几个Page:
RAID5:Plane0/LUN0中block X的page0-2、Plane1/LUN0中block X的page 0-2、Plane0/LUN1中block X的page 0-2和Plane1/LUN1中block X的page 0-2有一个出现错误,可以由Plane1/LUN1中block X的page 2来保护/恢复,容错率为1/12,小于RAID5的blockRAID的容错率1/4;
RAID6:Plane0/LUN0中block X的page 0-2、Plane1/LUN0中block X的page 0-2、Plane0/LUN1中block X的page 0-2和Plane1/LUN1中block X的page 0-2有2个出现错误,可以由Plane0/LUN1中block X的page 2和Plane1/LUN1中block X的page 2来保护/恢复,容错率为2/12,小于RAID6的block RAID的容错率2/4。所以在保护级别上,Block RAID的能力更强。
在本发明的优选实施例中,将待保护数据以page为基本单元并按照RAID5方式写入缓存区,存为缓存数据;将缓存数据以page为基本单元并按照RAID6方式写入存储区,存为存储数据。
在本发明的上述实施例中,不同block使用不同的RAID,这种组合的方式既对数据做了保护,又节省了RAID校验数据所占的存储空间。RAID 6可以恢复两个单元的错误数据,RAID 5可以恢复一个单元的错误数据;Page RAID可以做到Page级别的数据保护,BlockRAID可以做到Block级别的数据保护。用户数据在写入SLC Block的时候,有保护级别更高的Block RAID,可以解决Program fail的问题(因为NAND flash的特性,Program操作的最小单位是Page);当数据从SLC Block写入到QLC的时候,因为数据已经在NAND flash中了,所以即使出现Program fail,也不用担心原始数据丢失的问题,且当数据在QLC中的时候,出现问题,可能会导致相邻的也会出现问题,所以需要可以解决多个错误的RAID 6来保护。
根据本发明的另一方面,提供一种数据保护设备。根据本发明实施例的数据保护设备例如用于实现如上所述的数据保护方法。
图8示出了根据本发明实施例的数据保护设备的结构示意图。如图8所示,根据本发明实施例的数据保护设备10包括缓存区11和存储区12。需要说明的是,缓存区11和存储区12的划分是功能上的划分,可以不是物理上的划分。
具体地讲,缓存区11用于存储待保护数据,并采用第一RAID方式保护待保护数据。
存储区12用于存储待保护数据,并采用第二RAID方式保护待保护数据。
图9示出了根据本发明实施例的数据保护设备的装置示意图。如图9所示,根据本发明实施例的数据保护设备10包括缓存区11和存储区12。其中,缓存区11包括若干个缓存组,每个缓存组包括一个第一校验数据区块和多个第一保护数据区块;存储区12包括若干个存储组,每个存储组包括两个第二校验数据页面和多个第二保护数据页面。
具体地讲,缓存区11包括若干个缓存组,每个缓存组包括一个第一校验数据区块和多个第一保护数据区块。第一保护数据区块用于存储待保护数据;第一校验数据区块用于存储根据RAID5的Block RAID由待保护数据得到的第一检验数据,其中,第一校验数据用于RAID5的校验。
存储区12包括若干个存储组,每个存储组包括两个第二校验数据页面和多个第二保护数据页面。第二保护数据页面用于存储待保护数据;第二校验数据页面用于存储根据RAID6的Page RAID由待保护数据得到的第二校验数据,其中,第二校验数据用于RAID6的校验。
在本发明的可选实施例中,缓存区11和存储区12位于同一个固态盘上。
在本发明的可选实施例中,数据保护设备还包括校验码单元(图中未示出)。所述校验码单元用于根据存储数据的数据位得到第一校验码,根据缓存数据得到第一校验码和/或第二校验码。
在本发明的可选实施例中,缓存区11可以是固态硬盘的一部分,也可以是独立于固态硬盘的高速缓冲存储器。
图10示出了根据本发明实施例的数据保护设备的结构示意图。如图10所示,根据本发明实施例的数据保护设备10包括缓存区11、存储区12、阈值单元14和恢复单元15。
具体地讲,阈值单元14,用于获取缓存区中缓存数据的数据量,并在缓存区中缓存数据的数据量达到设定阈值后,发送存储指令;存储指令用于控制将缓存区中的缓存数据写入存储区。可选地,阈值单元14还用于根据测试数据得到设定阈值。恢复单元15,用于从缓存区中读取缓存数据,并对读取的缓存数据进行恢复,得到恢复待保护数据。可选地,恢复单元用于在将待保护数据写入缓存区时出现编程失败的情况下,根据RAID 5的BlockRAID,将编程失败的待保护数据进行恢复,并将恢复后的待保护数据再次写入缓存区。
根据本发明的再一方面,提供一种计算机***。根据本发明实施例的计算机***例如包括如前所述的数据保护设备,用于实现上述的数据保护方法。
图11示出了根据本发明实施例的计算机***的装置示意图。如图11所示,根据本发明实施例的计算机***包括数据保护设备10和主机20。
具体地讲,数据保护设备10与主机20相连接以获取待保护数据,用于存储待保护数据。
在本发明的可选实施例中,数据保护设备10包括缓存器和存储器。缓存器与主机20相连接以获取待保护数据,并将待保护数据存储为缓存数据。固态盘与缓存器相连接以获取缓存数据/待保护数据,并将缓存数据/待保护数据存储为存储数据。可选地,缓存器为独立于固态硬盘的设备。可选地,缓存器为固态硬盘的一部分。
应当说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
依照本发明的实施例如上文所述,这些实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施例。显然,根据以上描述,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地利用本发明以及在本发明基础上的修改使用。本发明仅受权利要求书及其全部范围和等效物的限制。

Claims (9)

1.一种数据保护方法,其特征在于,应用于NAND型快闪存储器,包括:
获取待保护数据;
采用第一RAID方式保护所述待保护数据;
将所述第一RAID方式保护的所述待保护数据写入所述NAND型快闪存储器的缓存区,存为缓存数据;
采用第二RAID方式保护所述缓存数据;
将所述第二RAID方式保护的所述缓存数据写入所述NAND型快闪存储器的存储区,存为存储数据,
其中,所述第一RAID方式是Block RAID5或Block RAID6;所述第二RAID方式为PageRAID5或Page RAID6,
所述缓存区包括若干个缓存组,当采用Block RAID5写入数据时,各所述缓存组包括一个第一校验数据区块和多个第一保护数据区块,针对每个所述缓存组:由所述多个第一保护数据区块中的待保护数据经RAID操作得到第一检验数据,所述第一校验数据占用所述一个第一校验数据区块;当采用Block RAID6写入数据时,各所述缓存组包括两个第一校验数据区块和多个第一保护数据区块,针对每个所述缓存组:由所述多个第一保护数据区块中的待保护数据经RAID操作得到两个第一检验数据,所述两个第一检验数据占用所述两个第一校验数据区块;
所述存储区包括若干个存储组,当采用Page RAID5写入数据时,每个所述存储组包括一个第二校验数据页面和多个第二保护数据页面,针对每个所述存储组:由所述多个第二保护数据页面中的待保护数据经RAID操作得到第二校验数据,所述第二校验数据占用所述一个第二校验数据页面;当采用Page RAID6写入数据时,每个所述存储组包括两个第二校验数据页面和多个第二保护数据页面,针对每个所述存储组:由所述多个第二保护数据页面中的待保护数据经RAID操作得到两个第二校验数据,所述两个第二校验数据占用所述两个第二校验数据页面。
2.根据权利要求1所述的数据保护方法,其特征在于,所述第一RAID方式对所述待保护数据出错的容错率大于所述第二RAID方式对所述待保护数据出错的容错率;所述第一校验数据的数据量大于所述第二校验数据的数据量。
3.根据权利要求1所述的数据保护方法,其特征在于,所述第一RAID方式采用RAID5的Block RAID;
所述第二RAID方式采用RAID6的Page RAID。
4.根据权利要求1所述的数据保护方法,其特征在于,在所述将所述第一RAID方式保护的所述待保护数据写入缓存区,存为缓存数据之后,所述将所述第二RAID方式保护的所述缓存数据写入所述NAND型快闪存储器的存储区,存为存储数据包括:
获取所述缓存区中缓存数据的数据量;以及
在所述缓存区中缓存数据的数据量达到设定阈值后,将所述缓存区中的所述待保护数据写入所述存储区,并采用所述第二RAID方式保护所述待保护数据。
5.根据权利要求1至4中任一项所述的数据保护方法,其特征在于,所述缓存区包括SLC存储单元,所述存储区包括MLC存储单元或TLC存储单元或QLC存储单元。
6.根据权利要求1所述的数据保护方法,其特征在于,在将所述待保护数据写入缓存区时出现编程失败的情况下,所述数据保护方法还包括:
根据RAID 5或RAID 6的Block RAID,将编程失败的待保护数据进行恢复,并将恢复后的待保护数据再次写入所述缓存区。
7.一种数据保护设备,其特征在于,包括:
缓存区,用于存储待保护数据,并采用第一RAID方式保护所述待保护数据;以及
存储区,用于存储所述待保护数据,并采用第二RAID方式保护所述待保护数据,
所述第一RAID方式是Block RAID5或Block RAID6;所述第二RAID方式为Page RAID5或Page RAID6,
所述缓存区包括若干个缓存组,当采用Block RAID5写入数据时,所述缓存组包括一个第一校验数据区块和多个第一保护数据区块,由每个所述缓存组中的待保护数据得到每个所述缓存组的第一检验数据,并将每个所述缓存组的第一校验数据存在所述缓存组中的第一校验数据区块;当采用Block RAID6写入数据时,所述缓存组包括两个第一校验数据区块和多个第一保护数据区块,由每个所述缓存组中的待保护数据得到每个所述缓存组的两个第一检验数据,并将每个所述缓存组的两个第一检验数据存在所述缓存组中的两个第一校验数据区块中;
所述存储区包括若干个存储组,当采用Page RAID5写入数据时,每个所述存储组包括一个第二校验数据页面和多个第二保护数据页面,由每个所述存储组中的待保护数据得到每个所述存储组的第二校验数据,并将每个所述存储组的第二校验数据存在每个所述存储组中的第二校验数据页面;当采用Page RAID6写入数据时,每个所述存储组包括两个第二校验数据页面和多个第二保护数据页面,由每个所述存储组中的待保护数据得到每个所述存储组的两个第二校验数据,并将每个所述存储组的两个第二校验数据存在每个所述存储组中的两个第二校验数据页面。
8.根据权利要求7所述的数据保护设备,其特征在于,所述数据保护设备还包括:
阈值单元,用于获取所述缓存区中缓存数据的数据量,并在所述缓存区中缓存数据的数据量达到设定阈值后,发送存储指令;所述存储指令用于控制将所述缓存区中的缓存数据写入所述存储区;以及
恢复单元,用于在将所述待保护数据写入缓存区时出现编程失败的情况下,根据RAID5的Block RAID,将编程失败的待保护数据进行恢复,并将恢复后的待保护数据再次写入所述缓存区。
9.一种计算机***,其特征在于,包括:
主机;以及
如权利要求7-8中任一项所述的数据保护设备,与所述主机相连接以获取所述待保护数据,用于存储所述待保护数据。
CN202110655578.0A 2021-06-11 2021-06-11 一种数据保护方法、数据保护设备及计算机*** Active CN113420341B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110655578.0A CN113420341B (zh) 2021-06-11 2021-06-11 一种数据保护方法、数据保护设备及计算机***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110655578.0A CN113420341B (zh) 2021-06-11 2021-06-11 一种数据保护方法、数据保护设备及计算机***

Publications (2)

Publication Number Publication Date
CN113420341A CN113420341A (zh) 2021-09-21
CN113420341B true CN113420341B (zh) 2023-08-25

Family

ID=77788363

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110655578.0A Active CN113420341B (zh) 2021-06-11 2021-06-11 一种数据保护方法、数据保护设备及计算机***

Country Status (1)

Country Link
CN (1) CN113420341B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101673191A (zh) * 2009-09-28 2010-03-17 成都市华为赛门铁克科技有限公司 数据写入方法、装置及数据存储***
CN103761058A (zh) * 2014-01-23 2014-04-30 天津中科蓝鲸信息技术有限公司 Raid1和raid4混合结构网络存储***及方法
CN105094696A (zh) * 2015-07-06 2015-11-25 中国科学院计算技术研究所 基于raid1和raid4混合结构转换过程数据可靠性保证方法及装置
CN105573681A (zh) * 2015-12-31 2016-05-11 湖南国科微电子股份有限公司 一种ssd盘片内部raid组建方法及***
CN111813609A (zh) * 2020-07-23 2020-10-23 深圳大普微电子科技有限公司 一种存储介质中数据恢复方法、数据恢复***及相关设备
CN112596673A (zh) * 2020-12-18 2021-04-02 南京道熵信息技术有限公司 具有双重raid数据保护的多活多控存储***

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008152708A1 (ja) * 2007-06-13 2008-12-18 Fujitsu Limited Raidグループ変換装置、raidグループ変換方法およびraidグループ変換プログラム
US9785575B2 (en) * 2014-12-30 2017-10-10 International Business Machines Corporation Optimizing thin provisioning in a data storage system through selective use of multiple grain sizes

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101673191A (zh) * 2009-09-28 2010-03-17 成都市华为赛门铁克科技有限公司 数据写入方法、装置及数据存储***
CN103761058A (zh) * 2014-01-23 2014-04-30 天津中科蓝鲸信息技术有限公司 Raid1和raid4混合结构网络存储***及方法
CN105094696A (zh) * 2015-07-06 2015-11-25 中国科学院计算技术研究所 基于raid1和raid4混合结构转换过程数据可靠性保证方法及装置
CN105573681A (zh) * 2015-12-31 2016-05-11 湖南国科微电子股份有限公司 一种ssd盘片内部raid组建方法及***
CN111813609A (zh) * 2020-07-23 2020-10-23 深圳大普微电子科技有限公司 一种存储介质中数据恢复方法、数据恢复***及相关设备
CN112596673A (zh) * 2020-12-18 2021-04-02 南京道熵信息技术有限公司 具有双重raid数据保护的多活多控存储***

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
卜海兵 等.磁盘阵列与数据安全.《数据存储、恢复与安全应用实践》.中国铁道出版社,2012,第363-365页. *

Also Published As

Publication number Publication date
CN113420341A (zh) 2021-09-21

Similar Documents

Publication Publication Date Title
US10761766B2 (en) Memory management system and method
US11042441B2 (en) Stripe mapping in memory
EP3696676B1 (en) Memory system with multiple striping of raid groups and method for performing the same
US10353614B2 (en) Raid system and method based on solid-state storage medium
US8589761B2 (en) Apparatus and methods for providing data integrity
JP5522480B2 (ja) フォールトトレラント不揮発性集積回路メモリ
US20140068319A1 (en) Error Detection And Correction In A Memory System
US9292382B2 (en) Codewords that span pages of memory
CN107678695B (zh) 基于可用存储器空间选择冗余存储配置
US20090172335A1 (en) Flash devices with raid
US20100169743A1 (en) Error correction in a solid state disk
US10915394B1 (en) Schemes for protecting data in NVM device using small storage footprint
US20190303008A1 (en) Memory system with multiple striping of raid groups and method for performing the same
US9424131B2 (en) Spatially decoupled redundancy schemes for a solid state drive (SSD)
CN113420341B (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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 310051 room c1-604, building C, No. 459, Qianmo Road, Xixing street, Binjiang District, Hangzhou, Zhejiang Province

Applicant after: Lianyun Technology (Hangzhou) Co.,Ltd.

Address before: 6 / F, block C1, spotlight center, 459 Qianmo Road, Binjiang District, Hangzhou City, Zhejiang Province, 310051

Applicant before: MAXIO TECHNOLOGY (HANGZHOU) Ltd.

GR01 Patent grant
GR01 Patent grant