CN111666046A - 一种数据存储方法、装置及设备 - Google Patents
一种数据存储方法、装置及设备 Download PDFInfo
- Publication number
- CN111666046A CN111666046A CN202010428683.6A CN202010428683A CN111666046A CN 111666046 A CN111666046 A CN 111666046A CN 202010428683 A CN202010428683 A CN 202010428683A CN 111666046 A CN111666046 A CN 111666046A
- Authority
- CN
- China
- Prior art keywords
- data
- storage
- stored
- data packet
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or 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/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种数据存储方法、装置及设备,将待存储数据信息打包生成数据包,并存储至NVDIMM上的第一存储区;将第一存储区中存储的数据包写入至后端磁盘;在存储系统重启后,提取数据包中的待存储数据信息及其在后端磁盘中的存储地址;根据待存储信息及其在后端磁盘中的存储地址生成第二校验码;当第二校验码与该数据包中的第一校验码相同时,再次将数据包写入至后端磁盘;通过将待存储数据信息存储至NVDIMM上的第一存储区,可以防止数据在写入过程中丢失,在断电后通过将第二校验码与第一校验码进行比较,来判断在存储系统掉电时,数据包信息是否丢失,若丢失时,可以通过在第一存储区存储的数据包进行数据恢复。
Description
技术领域
本发明属于数据存储技术领域,尤其涉及一种数据存储方法、装置及设备。
背景技术
随着大数据时代的来临,各行业产生的数据以爆炸性的方式增长,对存储系统的需求也越来越广泛。在一些关键领域,比如银行,通信行业中,对数据的安全性、完整性要求极高,任何形式的丢失数据都是不可接受的。存储系统需要保证数据在任何时刻都是安全完整的。由于RAM的存在,当发生某些不可控制的错误(比如系统掉电)时,RAM中的数据来不及写入后端磁盘,会导致系统数据的丢失。为此,设计出了日志系统和非易失性双列直插式内存模块(NVDIMM)配合使用来解决问题。
虽然NVDIMM可以保证内存数据的完整性,但是,如果系统掉电发生在从NVDIMM向后端磁盘写入数据的过程中,由于IO系统限制写入对齐、输入输出效率、变化的数据松散分布等因素,丢失的数据不仅局限于发生变化的数据,还会包含写入数据前已经存在于磁盘上的数据,这类丢失的数据,难以通过日志文件完全恢复。
目前,为防止系统掉电造成的数据丢失,常见的做法是给存储系统加装一个不间断电源系统(UPS),当发生断电的时候,由这个备用电源提供电力。但是它的缺点是显而易见的,UPS花费高,增加了存储系统额外的费用,且该方案不通用,而且,在存储服务器的机房一般空间小,难以提供额外的物理空间来放置UPS设备。
发明内容
本发明的目的是提供一种数据存储方法、装置及设备,以解决存储系统掉电发生在从NVDIMM向后端磁盘写入数据的过程中导致数据丢失的问题。
本发明采用以下技术方案:一种数据存储方法,包括以下步骤:
将待存储数据信息打包生成数据包,并存储至NVDIMM上的第一存储区;
将第一存储区中存储的数据包写入至后端磁盘;
在存储系统重启后,提取数据包中的待存储数据信息及其在后端磁盘中的存储地址;
根据待存储信息及其在后端磁盘中的存储地址生成第二校验码;
当第二校验码与该数据包中的第一校验码相同时,再次将数据包写入至后端磁盘;其中,第一校验码和第二校验码的生成方法相同。
进一步地,将待存储数据信息打包生成数据包包括:
获取待存储数据信息及其在后端磁盘上的存储地址;
根据待存储数据信息及其在后端磁盘上的存储地址生成第一校验码;
根据待存储数据信息及其在后端磁盘上的存储地址、和第一校验码生成数据包。
进一步地,当第二校验码与该数据包中的第一校验码不同时,清除数据包对应的存储块中的数据。
进一步地,将待存储数据信息打包生成数据包之前还包括:
将NVDIMM分割为第一存储区和第二存储区;其中,第一存储区由至少一个存储块构成,每个存储块的空间大小均与数据包的空间大小相等,且有a=m*b,a为第一存储区的空间大小,m为正整数,b为存储块的空间大小。
进一步地,并存储至NVDIMM上的第一存储区包括:
获取第一存储区中每个存储块的可用空间;
选择一个空间大小为b的存储块,并将数据包存储至该存储块中。
进一步地,并存储至NVDIMM上的第一存储区之后,且将第一存储区中存储数据包写入至后端磁盘之前,还包括:
清除日志系统中数据包的存储记录。
进一步地,将第一存储区中存储数据包写入至后端磁盘后,还包括:
清除数据包对应的存储块中的数据。
本发明的另一种技术方案:一种数据存储装置,包括:
打包存储模块,用于将待存储数据信息打包生成数据包,并存储至NVDIMM上的第一存储区;
第一写入模块,用于将第一存储区中存储的数据包写入至后端磁盘;
提取模块,用于在存储系统重启后,提取数据包中的待存储数据信息及其在后端磁盘中的存储地址;
第一生成模块,根据待存储信息及其在后端磁盘中的存储地址生成第二校验码;
第二写入模块,用于当第二校验码与该数据包中的第一校验码相同时,将数据包写入至后端磁盘。
进一步地,打包存储模块包括:
获取模块,用于获取待存储数据信息及其在后端磁盘上的存储地址;
第二生成模块,用于根据待存储数据信息及其在后端磁盘上的存储地址生成第一校验码;
第三生成模块,用于根据待存储数据信息及其在后端磁盘上的存储地址、和第一校验码生成数据包。
本发明的另一种技术方案:一种数据存储设备,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如上述的数据存储方法。
本发明的有益效果是:本发明通过将待存储数据信息存储至NVDIMM上的第一存储区,可以防止数据在写入过程中丢失,在断电后通过将第二校验码与第一校验码进行比较,来判断在存储系统掉电时,数据包信息是否丢失,若丢失,则第二校验码与第一校验码相同,进而可以通过在第一存储区存储的数据包进行数据恢复。
附图说明
图1为现有技术中数据从NVDIMM写入到后端磁盘中的数据包的示例图;
图2为本发明实施例中数据存储方法的流程图;
图3为本发明实施例中数据存储装置的模块示意图;
图4为本发明实施例中数据存储设备的模块示意图。
具体实施方式
下面结合附图和具体实施方式对本发明进行详细说明。
申请概述:
非易失性双列直插式内存模块(NVDIMM)已基本成为存储服务器的标配。NVDIMM主要由三部分构成:1.动态随机存取存储器(DRAM);2.NAND Flash;3.超级电容组。
NVDIMM可以保证其上的数据在断电时不丢失。它主要的运行方式是将动态随机存取存储器(DRAM)和NAND Flash集成在一起。由于动态随机存取存储器(DRAM)的读写速度是NAND FLASH的1000倍,正常状态下,以动态随机存取存储器(DRAM)做数据的主要储存地点,NAND Flash闲置备用或以某种方式配合动态随机存取存储器(DRAM)使用以实现资源的最大化利用。当系统突发断电时,由超级电容组供应电能,将所有动态随机存取存储器(DRAM)上的数据写至NAND Flash永久保存,保证不受断电的影响。
日志系统是为了加快写操作反应速度,通常,日志记录所在的磁盘设备具有更高的性能,如写速度快等特点。当有IO请求时,会在日志系统中增加一条记录,包括要写的数据本身和必要的元数据。只要日志系统中添加了IO记录并且已成功地写到日志磁盘上,存储系统就可以向上层应用确认该操作已完成,如在用户的显示界面中显示数据文件的图标。
由于NVDIMM本身制作工艺的复杂,导致其价格昂贵,不可能大规模地使用。所以,对于使用率极高的一部分数据,比如存储元数据(MetaData)可以放在NVDIMM上,而其它大部分的数据还是加载到动态随机存取存储器(DRAM)上,然后异步地写入到后端磁盘上永久保存。
但是,在数据从NVDIMM写入磁盘的过程中无法保证该过程的原子性,当意外断电时,会丢失数据,恢复数据时只能通过日志文件找回丢失的磁盘数据,而日志文件中仅仅记载了磁盘上发生变化的数据,但是在刷新过程中,由于IO系统限制写入对齐、输入输出效率、变化的数据松散分布等因素,丢失的数据不仅局限于发生变化的数据,还会包含写入数据前已经存在于磁盘上的数据,这类丢失的数据,将无法确切地知道此时在磁盘上的数据是什么状态,就难以通过日志文件完全恢复。
如图1所示,展示了一种可能的方式,在图中整个4KB的数据对象中虽然只有3条128字节长的记录发生改变,但是写入磁盘时,是以整个4KB为单位的,如果写入数据的过程中断电,之前已经确认了的未变化数据也有可能会被损坏,并且没有办法找回。
现有技术中,为防止系统掉电造成的数据丢失,常见的做法是采用物理方法,给存储系统加装一个不间断电源系统(UPS),当发生断电的时候,由这个备用电源提供电力。但是它的缺点是显而易见的,UPS花费高,增加了存储系统额外的费用,且该方案不通用,而且,在存储服务器的机房一般空间小,难以提供额外的物理空间来放置UPS设备。
因此,在本发明中,提供了一种通过软件的方式来解决数据从NVDIMM写入磁盘的过程中无法保证该过程的原子性的问题。
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
另外,在本发明说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本发明实施例提供的数据存储方法可以应用于手机、平板电脑、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本等终端设备上,本发明实施例对终端设备的具体类型不作任何限制。
具体的,分析断电可能发生的时机,有助于定位可能出现数据丢失的情况。以下是掉电发生时机的几种情况:
1.如果掉电发生在数据写入磁盘之前。
a)如果存储系统向上层应用确认,说明该数据已经以某种形式安全的保存在了系统中,比如以记录日志的形式。所以,即使此时发生掉电,磁盘上的原有数据是完好的;还未刷新到磁盘的数据可以在重启的时候被恢复。比如:重做日志系统中的记录。因此,完整的数据=日志中记载的记录+磁盘上的数据。
b)如果存储系统还未向上层应用确认,上层应用明白本次IO发生错误,数据一致性得到保证。
2.如果掉电发生在数据写入磁盘的过程中。由于该过程不是原子性的,无法预测此时磁盘上对应区域的数据是怎样的。磁盘上的原有数据被污染,无法保证其完整性和一致性,导致数据的丢失,并且这部分数据是无法找回的。
3.如果掉电发生在数据刷新完成后。类似于第一种情况。已通知上层应用完成的IO,即使还有未写回磁盘的数据,在系统重启后,也可以被恢复出来。
通过上述分析,可以看出如何解决由掉电发生在刷新过程中导致的数据丢失是关键。
基于上述问题,本发明实施例提供了一种数据存储方法,在该方法中,具体包括两部分,前一部分是在NVDIMM中划分出一个存储区,用来作为缓存区,即第一存储区,在将NVDIMM上的数据写入后端磁盘时,先将要写入的数据打包成预先设计好的数据结构后,存储到第一存储区中,再从第一存储区中向后端磁盘中写入数据。当系统掉电后,由于不知道第一存储区中哪些数据是已经写入过的,哪些数据是未写入的,所以需要遍历该第一存储区中的每个数据结构,当有数据结构存在时,根据该数据结构内的数据信息和其在后端磁盘中的存储地址生成一个第二校验码,将该第二校验码与该数据结构中的第一校验码进行比对,当第一校验码和第二校验码相同时,则说明该数据结构中的数据是完整的,进而说明该数据结构未被写入后端磁盘中,此时,再次执行向后端磁盘写入操作即可。
具体的,如图2所示,包括以下步骤:
S100,将待存储数据信息打包生成数据包,并存储至NVDIMM上的第一存储区。
S200,将第一存储区中存储的数据包写入至后端磁盘。
S300,在存储系统重启后,提取数据包中的待存储数据信息及其在后端磁盘中的存储地址。
S400,根据待存储信息及其在后端磁盘中的存储地址生成第二校验码。
S500,当第二校验码与该数据包中的第一校验码相同时,再次将数据包写入至后端磁盘;其中,第一校验码和第二校验码的生成方法相同。
本发明通过将待存储数据信息存储至NVDIMM上的第一存储区,可以防止数据在写入过程中丢失,在断电后通过将第二校验码与第一校验码进行比较,来判断在存储系统掉电时,数据包信息是否丢失,若丢失,则第二校验码与第一校验码相同,进而可以通过在第一存储区存储的数据包进行数据恢复。
在一种可能的实现方式中,将待存储数据信息打包生成数据包具体包括:
获取待存储数据信息及其在后端磁盘上的存储地址;根据待存储数据信息及其在后端磁盘上的存储地址生成第一校验码;根据待存储数据信息及其在后端磁盘上的存储地址、和第一校验码生成数据包。
在该过程中,数据包中可以包括多项内容,如待存储的数据类型、存储用户、存储时间等等,可以根据不同的应用需求设计不同的数据结构。例如:我们需要记录数据本身,数据要写入的位置(PBN),因为当发生错误时,我们需要该地址来做恢复性操作。特别的,我们需附加一个校验码,用于在系统重启后的恢复过程中识别有效数据。
在该数据包中,待存储数据信息、该信息在后端磁盘上的存储地址、以及根据待存储数据信息和其在后端磁盘上的存储地址生成的第一校验码是必须存在的。待存储的数据信息作为用户保存的数据,其的必要性不言而喻,若数据包中不包含该信息,则当用户需要读取该信息时,存储系统将难以提供该信息,就相当于丢失了该数据信息。由于当系统断电后,需要对待存储的数据信息进行恢复,并保存到后端磁盘中,因此,需要知道其的存储地址,以便再恢复数据时具有恢复路径。第一校验码是用来表示数据信息完整性的标识信息,也可以称作签名(Signature),具体的,可以采用常用的算法来生成该第一校验码,如hash算法中的CityHash,SHA-1等。
可选的,在本申请实施例中提供了一种数据包的结构形式,也可以称为一种数据结构的形式,例如:
该结构形式是在软件中的表达方式,char表示字符串,data为数据,这里的DataLength针对不同的应用可能会有不一样的要求。例如,4KB、8KB等等。对于PBNaddress,其表示数据在后端磁盘中的地址,在不同的应用场景中,会以不同的形式表示物理写入地址。在一种场景下,以磁盘号,磁盘内偏移地址,和数据长度作为写入地址记录,如:
在另一种场景下,后端磁盘被分为多个extent(范围块),写入地址包括范围块编号、块内偏移地址和数据长度,如:
可选的,将待存储数据信息打包生成数据包之前还包括:将NVDIMM进行分割为第一存储区和第二存储区;其中,第一存储区由至少一个存储块构成,每个存储块的空间大小均与数据包的空间大小相等,且有a=m*b,a为第一存储区的空间大小,m为正整数,b为存储块的空间大小。
该部分作用主要是在NVDIMM上划分出一块专用区域,即第一存储区。该区域的大小,根据不同的应用,可以不同,但是一定是数据包长度的整数倍,进而形成一个资源池。当有数据写入磁盘需求的时候,每个请求都先在这个资源池中申请一块可用空间,称为写回缓存(WriteBackCache)。
需要说明的是,将数据包存储至NVDIMM上的第一存储区时,需要预先读取第一存储区中每个存储块(即写入缓存)的可用空间,当该可用空间中没有被保存数据时,其可用空间大小即为b,此时,选择该空间大小为b的存储块,并将数据包存储至该存储块中。
将第一存储区中存储数据包写入至后端磁盘之前,还包括:清除日志系统中数据包的存储记录。此时,待存储的数据已经完整地保存在NVDIMM里了,即使存储系统掉电,也不会发生数据丢失。因此,可以将日志系统中的该条日志删除,以增加日志系统的可用空间。
应理解,在本发明实施例中,将待存储的数据写入到后端磁盘上前,由于数据是保存在NVDIMM中的,所以,不会发生数据丢失的情况发生。将待存储的数据写入到后端磁盘上后,由于第一存储区的空间有限,所以需要及时清除该数据,以便后续该写入缓存供其他用户使用。通过清零,使得第一校验码和数据内容不一致,相当于设置了写回缓存(WriteBackCache)的无效位,此时,将该写入缓存放回资源池中等待重用。
在本发明实施例中,将第一存储区中存储的数据包写入至后端磁盘过程有两次,在第一次写入过程中系统未断电时,则在第一次写入过程后,将存储块中的数据进行清除。当第一次写入过程中系统断电时,则需要在存储系统断电重启系统后,通过遍历第一存储区中的每个写入缓存,当写入缓存中有数据时,根据该数据信息以及其在后端磁盘上的存储地址生成一个新的校验码,即第二校验码,之后,将第二校验码和第一校验码进行比对,如果二者完全相同,则说明该写入缓存中的数据是完整的,这时就包含了两种情况,一种是还未开始写入过程,另一种是写入过程在进行中,写入了一部分数据,但是由于系统掉电,未完成写入数据过程,但是,由于该数据包是存在NVDIMM中的,所以,该情况下,NVDIMM中会保存完整的数据包,此时,再次将数据包写入到后端磁盘中。
如果第二校验码和第一校验码不一致,则说明,写入缓存中的数据发生了变化。这种情况下,有一种可能,是数据包已经写入了后端磁盘中,系统掉电发生在写入数据后的写入缓存清除过程中,此时,直接清除该写入缓存即可。即当第二校验码与该数据包中的第一校验码不同时,清除数据包对应的存储块中的数据。还有一种可能,是掉电发生在将待存储数据写入到NVDIMM上第一存储区的过程中。此时,如果发生掉电,两个校验码也是不一致的。这种情况,也可是直接清除该写入缓存。因为,日志系统里还有新数据的记录,后端磁盘数据也没有被破坏。
通过以上过程,可以保证NVDIMM上的数据写入到后端磁盘是一个原子性的操作,即使在期间发生了掉电,也不会导致数据丢失,从而保证数据在系统突发掉电情况下的完整性和一致性。
使用NVDIMM,以两阶段的操作配合实现动态随机访问内存(DRAM)上数据回写磁盘过程的原子性。共享写回缓存(WriteBackCache)资源池,实现多线程并行写,提高了写效率。使用校验码识别写回缓存(WriteBackCache)是否包含有效的数据,以确定在系统重启后的恢复阶段是否需要重写这部分数据。
进而,本发明实施例通过软件的方式实现数据刷新的原子性,保证数据安全性。简单,性价比高。通过设置共享的写回缓存(WriteBackCache)资源池,可以实现多写回线程的并行操作,提高了写效率。使用独立的校验码识别写回缓存(WriteBackCache)是否包含有效的数据,提高准确性。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本发明的另一实施例还公开了一种数据存储装置,如图3所示,包括:
打包存储模块100,用于将待存储数据信息打包生成数据包,并存储至NVDIMM上的第一存储区。
第一写入模块200,用于将第一存储区中存储的数据包写入至后端磁盘。
提取模块300,用于在存储系统重启后,提取数据包中的待存储数据信息及其在后端磁盘中的存储地址。
第一生成模块400,根据待存储信息及其在后端磁盘中的存储地址生成第二校验码。
第二写入模块500,用于当第二校验码与该数据包中的第一校验码相同时,将数据包写入至后端磁盘。
作为实例而非限定,打包存储模块包括:
获取模块,用于获取待存储数据信息及其在后端磁盘上的存储地址。
第二生成模块,用于根据待存储数据信息及其在后端磁盘上的存储地址生成第一校验码。
第三生成模块,用于根据待存储数据信息及其在后端磁盘上的存储地址、和第一校验码生成数据包。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本发明的再一种实施例中还公开了一种数据存储设备6,包括存储器61、处理器63以及存储在存储器中并可在处理器上运行的计算机程序62,如图4所示,处理器执行计算机程序时实现上述的数据存储方法。
本发明再一种实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
本发明再一种实施例提供了一种计算机程序产品,当计算机程序产品在数据存储设备上运行时,使得数据存储设备执行时可实现上述各个方法实施例中的步骤。
所述集成的单元模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到存储设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种数据存储方法,其特征在于,包括以下步骤:
将待存储数据信息打包生成数据包,并存储至NVDIMM上的第一存储区;
将所述第一存储区中存储的所述数据包写入至后端磁盘;
在存储系统重启后,提取所述数据包中的待存储数据信息及其在后端磁盘中的存储地址;
根据所述待存储信息及其在后端磁盘中的存储地址生成第二校验码;
当所述第二校验码与该数据包中的第一校验码相同时,再次将所述数据包写入至后端磁盘;其中,所述第一校验码和所述第二校验码的生成方法相同。
2.如权利要求1所述的一种数据存储方法,其特征在于,将待存储数据信息打包生成数据包包括:
获取待存储数据信息及其在后端磁盘上的存储地址;
根据所述待存储数据信息及其在后端磁盘上的存储地址生成所述第一校验码;
根据所述待存储数据信息及其在后端磁盘上的存储地址、和所述第一校验码生成所述数据包。
3.如权利要求1所述的一种数据存储方法,其特征在于,当所述第二校验码与该数据包中的第一校验码不同时,清除所述数据包对应的存储块中的数据。
4.如权利要求2或3所述的一种数据存储方法,其特征在于,将待存储数据信息打包生成数据包之前还包括:
将所述NVDIMM分割为第一存储区和第二存储区;其中,所述第一存储区由至少一个存储块构成,每个所述存储块的空间大小均与所述数据包的空间大小相等,且有a=m*b,a为所述第一存储区的空间大小,m为正整数,b为存储块的空间大小。
5.如权利要求4所述的一种数据存储方法,其特征在于,并存储至NVDIMM上的第一存储区包括:
获取所述第一存储区中每个存储块的可用空间;
选择一个空间大小为b的存储块,并将所述数据包存储至该存储块中。
6.如权利要求2所述的一种数据存储方法,其特征在于,并存储至NVDIMM上的第一存储区之后,且将所述第一存储区中存储所述数据包写入至后端磁盘之前,还包括:
清除日志系统中所述数据包的存储记录。
7.如权利要求3所述的一种数据存储方法,其特征在于,将所述第一存储区中存储所述数据包写入至后端磁盘后,还包括:
清除所述数据包对应的存储块中的数据。
8.一种数据存储装置,其特征在于,包括:
打包存储模块,用于将待存储数据信息打包生成数据包,并存储至NVDIMM上的第一存储区;
第一写入模块,用于将所述第一存储区中存储的所述数据包写入至后端磁盘;
提取模块,用于在存储系统重启后,提取所述数据包中的待存储数据信息及其在后端磁盘中的存储地址;
第一生成模块,根据所述待存储信息及其在后端磁盘中的存储地址生成第二校验码;
第二写入模块,用于当所述第二校验码与该数据包中的第一校验码相同时,将所述数据包写入至后端磁盘。
9.如权利要求8所述的一种数据存储装置,其特征在于,打包存储模块包括:
获取模块,用于获取待存储数据信息及其在后端磁盘上的存储地址;
第二生成模块,用于根据所述待存储数据信息及其在后端磁盘上的存储地址生成所述第一校验码;
第三生成模块,用于根据所述待存储数据信息及其在后端磁盘上的存储地址、和所述第一校验码生成所述数据包。
10.一种数据存储设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的数据存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010428683.6A CN111666046B (zh) | 2020-05-20 | 2020-05-20 | 一种数据存储方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010428683.6A CN111666046B (zh) | 2020-05-20 | 2020-05-20 | 一种数据存储方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111666046A true CN111666046A (zh) | 2020-09-15 |
CN111666046B CN111666046B (zh) | 2023-07-25 |
Family
ID=72384061
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010428683.6A Active CN111666046B (zh) | 2020-05-20 | 2020-05-20 | 一种数据存储方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111666046B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112379840A (zh) * | 2020-11-17 | 2021-02-19 | 海光信息技术股份有限公司 | 终端的数据保护方法、装置和终端 |
CN113010114A (zh) * | 2021-03-19 | 2021-06-22 | 昆山迈致治具科技有限公司 | 一种数据处理方法、装置、计算机设备及存储介质 |
CN114371815A (zh) * | 2021-12-13 | 2022-04-19 | 浙江大华技术股份有限公司 | 一种数据存储方法、装置及系统 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6516426B1 (en) * | 1999-01-11 | 2003-02-04 | Seagate Technology Llc | Disc storage system having non-volatile write cache |
US20100174870A1 (en) * | 2009-01-02 | 2010-07-08 | Arindam Banerjee | System and method to preserve and recover unwritten data present in data cache of a disk subsystem across power outages |
US20140173171A1 (en) * | 2012-12-19 | 2014-06-19 | Dell Products, Lp | System and Method to Create a Non-Volatile Bootable RAM Disk |
CN104881242A (zh) * | 2014-02-28 | 2015-09-02 | 中兴通讯股份有限公司 | 数据写入方法及装置 |
CN105511802A (zh) * | 2015-11-24 | 2016-04-20 | 北京达沃时代科技有限公司 | 写缓存的方法和装置以及磁盘缓存区的同步方法和装置 |
CN106407050A (zh) * | 2016-10-20 | 2017-02-15 | 厦门科华恒盛股份有限公司 | 一种数据存储方法 |
WO2017025039A1 (zh) * | 2015-08-13 | 2017-02-16 | 北京忆恒创源科技有限公司 | 一种面向闪存存储的数据访问方法及其装置 |
CN106775684A (zh) * | 2016-12-02 | 2017-05-31 | 北京航空航天大学 | 一种基于新型非易失性存储器的磁盘缓存掉电恢复方法 |
CN110348245A (zh) * | 2018-04-02 | 2019-10-18 | 深信服科技股份有限公司 | 基于nvm的数据完整性保护方法、系统、装置及存储介质 |
CN110928890A (zh) * | 2019-11-08 | 2020-03-27 | 广州华多网络科技有限公司 | 数据存储方法、装置、电子设备及计算机可读介质 |
CN111158599A (zh) * | 2019-12-29 | 2020-05-15 | 北京浪潮数据技术有限公司 | 一种写数据的方法、装置、设备及存储介质 |
-
2020
- 2020-05-20 CN CN202010428683.6A patent/CN111666046B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6516426B1 (en) * | 1999-01-11 | 2003-02-04 | Seagate Technology Llc | Disc storage system having non-volatile write cache |
US20100174870A1 (en) * | 2009-01-02 | 2010-07-08 | Arindam Banerjee | System and method to preserve and recover unwritten data present in data cache of a disk subsystem across power outages |
US20140173171A1 (en) * | 2012-12-19 | 2014-06-19 | Dell Products, Lp | System and Method to Create a Non-Volatile Bootable RAM Disk |
CN104881242A (zh) * | 2014-02-28 | 2015-09-02 | 中兴通讯股份有限公司 | 数据写入方法及装置 |
WO2017025039A1 (zh) * | 2015-08-13 | 2017-02-16 | 北京忆恒创源科技有限公司 | 一种面向闪存存储的数据访问方法及其装置 |
CN105511802A (zh) * | 2015-11-24 | 2016-04-20 | 北京达沃时代科技有限公司 | 写缓存的方法和装置以及磁盘缓存区的同步方法和装置 |
CN106407050A (zh) * | 2016-10-20 | 2017-02-15 | 厦门科华恒盛股份有限公司 | 一种数据存储方法 |
CN106775684A (zh) * | 2016-12-02 | 2017-05-31 | 北京航空航天大学 | 一种基于新型非易失性存储器的磁盘缓存掉电恢复方法 |
CN110348245A (zh) * | 2018-04-02 | 2019-10-18 | 深信服科技股份有限公司 | 基于nvm的数据完整性保护方法、系统、装置及存储介质 |
CN110928890A (zh) * | 2019-11-08 | 2020-03-27 | 广州华多网络科技有限公司 | 数据存储方法、装置、电子设备及计算机可读介质 |
CN111158599A (zh) * | 2019-12-29 | 2020-05-15 | 北京浪潮数据技术有限公司 | 一种写数据的方法、装置、设备及存储介质 |
Non-Patent Citations (3)
Title |
---|
HENRY F. 等: "Design and implementation of flash based NVDIMM", IEEE * |
尹洋;刘振军;许鲁;: "一种基于磁盘介质的网络存储系统缓存", 软件学报, no. 10 * |
游理通;王振杰;黄林鹏;: "一个基于日志结构的非易失性内存键值存储系统", 计算机研究与发展, no. 09 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112379840A (zh) * | 2020-11-17 | 2021-02-19 | 海光信息技术股份有限公司 | 终端的数据保护方法、装置和终端 |
CN112379840B (zh) * | 2020-11-17 | 2023-02-24 | 海光信息技术股份有限公司 | 终端的数据保护方法、装置和终端 |
CN113010114A (zh) * | 2021-03-19 | 2021-06-22 | 昆山迈致治具科技有限公司 | 一种数据处理方法、装置、计算机设备及存储介质 |
CN114371815A (zh) * | 2021-12-13 | 2022-04-19 | 浙江大华技术股份有限公司 | 一种数据存储方法、装置及系统 |
CN114371815B (zh) * | 2021-12-13 | 2024-05-28 | 浙江大华技术股份有限公司 | 一种数据存储方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111666046B (zh) | 2023-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8135914B2 (en) | Managing cache data and metadata | |
CA2910175C (en) | Selective backup of program data to non-volatile memory | |
EP2329360B1 (en) | Managing cache data and metadata | |
CN111666046A (zh) | 一种数据存储方法、装置及设备 | |
CN107728937B (zh) | 一种使用非易失性内存介质的键值对持久存储方法及系统 | |
KR20160124794A (ko) | Dram 결함들의 커널 마스킹 | |
WO2013135145A1 (en) | Application program startup method and apparatus | |
Jung et al. | nvramdisk: A transactional block device driver for non-volatile ram | |
WO2015160835A1 (en) | Systems and methods for recovering from uncorrected dram bit errors | |
US10176049B2 (en) | Logging process in a data storage system | |
CN105573859A (zh) | 一种数据库的数据恢复方法和设备 | |
CN103198122A (zh) | 重启内存数据库的方法和装置 | |
CN111177143A (zh) | 键值数据存储方法、装置、存储介质与电子设备 | |
CN110019063B (zh) | 计算节点数据容灾回放的方法、终端设备及存储介质 | |
CN104050014A (zh) | 基于虚拟化平台的高效存储管理方法 | |
CN117112522A (zh) | 并发进程日志管理方法、装置、设备和存储介质 | |
CN114924911B (zh) | Windows操作系统有效数据备份方法、装置、设备和存储介质 | |
CN107766196B (zh) | 对计算设备进行启动检查的方法与设备 | |
CN111435331A (zh) | 存储卷写数据方法、装置、电子设备及机器可读存储介质 | |
CN117215839B (zh) | 基于Web的系统还原方法、装置、设备、介质和程序产品 | |
AU2021265928B2 (en) | Transactional memory based memory page de-duplication | |
CN111367836B (zh) | 一种针对数据库的处理方法及装置 | |
CN117724657A (zh) | 一种基于rocksdb与spdk的用户态磁盘分区方案 | |
CN116821143A (zh) | 一种数据更新方法及装置 | |
CN116975072A (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: 710000 Room 1202, 12th Floor, Cultural Creation Building, Yaodian Street Office, Qinhan New Town, Xixian New District, Xi'an, Shaanxi Applicant after: Xi'an Okayun Data Technology Co.,Ltd. Address before: No.6-2, Changxin Industrial Park, east section of Tiangong 1st Road, banxinzhuang village, ZhouLing street, Qinhan new town, Xixian New District, Xi'an City, Shaanxi Province, 710000 Applicant before: Xi'an Okayun Data Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |