CN112463067A - 一种NVMe-oF场景下的数据保护方法及设备 - Google Patents
一种NVMe-oF场景下的数据保护方法及设备 Download PDFInfo
- Publication number
- CN112463067A CN112463067A CN202011441481.1A CN202011441481A CN112463067A CN 112463067 A CN112463067 A CN 112463067A CN 202011441481 A CN202011441481 A CN 202011441481A CN 112463067 A CN112463067 A CN 112463067A
- Authority
- CN
- China
- Prior art keywords
- data
- information
- access instruction
- check code
- integrity verification
- 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 57
- 238000013496 data integrity verification Methods 0.000 claims abstract description 228
- 238000013524 data verification Methods 0.000 claims abstract description 105
- 230000004044 response Effects 0.000 claims description 98
- 238000012545 processing Methods 0.000 claims description 31
- 238000012795 verification Methods 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 10
- 239000000126 substance Substances 0.000 claims description 3
- 238000004891 communication Methods 0.000 description 13
- 230000005540 biological transmission Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 230000005236 sound signal Effects 0.000 description 4
- 239000007787 solid Substances 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 238000013403 standard screening design Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000035939 shock Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种NVMe‑oF场景下的数据保护方法及设备,涉及存储领域,所述方法包括:接收主机侧发送的访问指令,所述访问指令中携带有数据完整性验证信息;根据所述访问指令确定是否进行数据完整性校验;若确定进行数据完整性校验,则获取所述访问指令对应的数据信息;其中,所述数据信息中携带有数据完整性验证信息及校验码;根据所述数据信息重新获取校验码,并根据重新获取的校验码、所述数据信息中携带的数据完整性验证信息及校验码、所述访问指令中携带的数据完整性验证信息,对所述数据信息进行数据校验,并在数据校验通过后,将所述访问指令发送至存储装置。本发明用于提高数据的可靠性。
Description
技术领域
本发明涉及存储技术领域,具体涉及一种NVMe-oF场景下的数据保护方法及设备。
背景技术
随着存储技术的发展,固态硬盘(Solid State Disk,SSD)因其性能高、功耗低、抗震性好等诸多优点获得广泛的应用。
网上高速非易失性存储器(Non-Volatile Memory express over Fabrics,NVME-oF)是一种允许几百个或者几千个NVMe-oF装置(例如,NVMe(Non-Volatile Memoryexpres,高速非易失性存储器标准)SSD)通过注入以太网的网络结构连接的新兴技术。NVMe-oF协议允许实现远程直接附加存储,这样,允许大量SSD连接至远程主机。NVMe-oF协议使用远程直接存储器存取(RDMA)协议来提供NVMe命令、数据和响应的可靠通信。新的存储网络协议即为NVMe-oF协议带来了更高的性能及灵活性。
在存储数据时保证数据的可靠性是非常重要的一环。因此,在NVMe-oF协议通信的场景的数据可靠性/一致性显得尤为重要。但是,目前尚未有完善的NVMe-oF场景下的端到端数据保护方案,存储系统内数据的可靠性较差。
发明内容
本发明提供一种NVMe-oF场景下的数据保护方法及设备,用以提高数据的可靠性。
为实现上述目的,本发明的技术方案如下:
本发明提供了一种NVMe-oF场景下的数据保护方法,包括:
接收主机侧发送的访问指令,所述访问指令中携带有数据完整性验证信息;
根据所述访问指令确定是否进行数据完整性校验;
若确定进行数据完整性校验,则获取所述访问指令对应的数据信息;其中,所述数据信息中携带有数据完整性验证信息及校验码;
根据所述数据信息重新获取校验码,并根据重新获取的校验码、所述数据信息中携带的数据完整性验证信息及校验码、所述访问指令中携带的数据完整性验证信息,对所述数据信息进行数据校验,并在数据校验通过后,将所述访问指令发送至存储装置。
可选地,还包括:
若确定不进行数据完整性校验,则将所述访问指令发送至所述存储装置。
可选地,所述根据所述访问指令确定是否进行数据完整性校验包括:
在所述访问指令为写指令时,确定进行数据完整性校验;
在所述访问指令为读指令时,确定不进行数据完整性校验。
可选地,还包括:
接收所述存储装置发送的响应数据信息;所述响应数据信息中携带有数据完整性验证信息及校验码;
根据所述响应数据信息重新获取校验码,并根据重新获取的校验码、所述响应数据信息中携带的数据完整性验证信息及校验码、所述访问指令中携带的数据完整性验证信息,对所述响应数据信息进行数据校验,并在数据校验通过后,将所述响应数据信息发送至所述主机侧。
可选地,还包括:
在数据校验没有通过时,向所述主机侧返回校验错误信息。
进一步地,本发明还提供了一种NVMe-oF场景下的数据保护方法,包括:接收用户端发送的访问指令;
根据所述访问指令生成数据完整性验证信息,并将所述数据完整性验证信息添加至访问指令中;
将所述访问指令发送至存储阵列。
可选地,还包括:
所述访问指令为写指令时,根据所述访问指令获取数据信息,并根据所述数据信息生成校验码,将所述访问指令中的数据完整性验证信息及所述校验码添加至所述数据信息中;
将所述数据信息发送至存储阵列。
可选地,还包括:
在所述访问指令为读指令时,接收所述存储阵列发送的响应数据信息,其中,所述响应数据信息中携带有数据完整性验证信息;
根据所述响应数据信息重新获取校验码,并根据重新获取的校验码、所述响应数据信息中携带的数据完整性验证信息及校验码、所述访问指令中携带的数据完整性验证信息,对所述响应数据信息进行数据校验,并在数据校验通过后,获取所述响应数据信息中的数据并发送至用户端。
进一步地,本发明还提供了一种NVMe-oF场景下的数据保护方法,包括:
接收访问指令,所述访问指令中携带有数据完整性验证信息;
根据所述访问指令,获取待处理数据及所述待处理数据对应的数据完整性验证信息及校验码;
根据所述待处理数据重新获取校验码,并根据重新获取的校验码、所述待处理数据中携带的数据完整性验证信息及校验码、所述访问指令中携带的数据完整性验证信息,对所述待处理数据进行数据校验,并在数据校验通过后,根据所述访问指令,处理所述待处理数据。
可选地,在所述访问指令为写指令时,所述根据所述访问指令,获取待处理数据及所述待处理数据对应的数据完整性验证信息及校验码包括:
根据所述访问指令,获取所述访问指令对应的数据信息;数据信息中携带有数据完整性验证信息及校验码;
所述在数据校验通过后,根据所述访问指令,处理所述待处理数据包括:
在数据校验通过后,根据所述访问指令,存储所述数据信息及所述数据信息中携带的数据完整性验证信息及校验码。
可选地,在所述访问指令为读指令时,所述根据所述访问指令,获取待处理数据及所述待处理数据对应的数据完整性验证信息及校验码包括:
根据所述访问指令,从存储的数据中获取待处理数据及所述待处理数据对应的数据完整性验证信息及校验码;
所述数据校验通过后,根据所述访问指令,处理所述待处理数据包括:
在数据校验通过后,将所述待处理数据及所述待处理数据对应的数据完整性验证信息及校验码作为响应数据信息,发送至存储阵列。
进一步地,本发明提供了一种存储阵列,包括:
接收单元,用于接收主机侧发送的访问指令,所述访问指令中携带有数据完整性验证信息;
确定单元,用于根据所述访问指令确定是否进行数据完整性校验;
获取单元,用于若确定进行数据完整性校验,则获取所述访问指令对应的数据信息;其中,所述数据信息中携带有数据完整性验证信息及校验码;
处理单元,用于根据所述数据信息重新获取校验码,并根据重新获取的校验码、所述数据信息中携带的数据完整性验证信息及校验码、所述访问指令中携带的数据完整性验证信息,对所述数据信息进行数据校验,并在数据校验通过后,将所述访问指令发送至存储装置。
可选地,所述存储阵列由现场可编程逻辑门阵列FPGA硬件实现。
可选地,所述处理单元,还用于若确定不进行数据完整性校验,则将所述访问指令发送至所述存储装置。
可选地,所述确定单元,具体用于在所述访问指令为写指令时,确定进行数据完整性校验;
在所述访问指令为读指令时,确定不进行数据完整性校验。
可选地,所述接收单元,还用于接收所述存储装置发送的响应数据信息;所述响应数据信息中携带有数据完整性验证信息及校验码;
所述处理单元,还用于根据所述响应数据信息重新获取校验码,并根据重新获取的校验码、所述响应数据信息中携带的数据完整性验证信息及校验码、所述访问指令中携带的数据完整性验证信息,对所述响应数据信息进行数据校验,并在数据校验通过后,将所述响应数据信息发送至所述主机侧。
可选地,所述处理单元,还用于在数据校验没有通过时,向所述主机侧返回校验错误信息。
进一步地,本发明提供了一种主机,包括:处理器及主机总线适配器HBA;其中,
所述处理器,用于接收用户端发送的访问指令;
所述HBA,用于根据所述访问指令生成数据完整性验证信息,并将所述数据完整性验证信息添加至访问指令中;
所述HBA,还用于将所述访问指令发送至存储阵列。
可选地,所述HBA,还用于所述访问指令为写指令时,根据所述访问指令获取数据信息,并根据所述数据信息生成校验码,将所述访问指令中的数据完整性验证信息及所述校验码添加至所述数据信息中;将所述数据信息发送至存储阵列。
可选地,所述HBA,还用于在所述访问指令为读指令时,接收所述存储阵列发送的响应数据信息,其中,所述响应数据信息中携带有数据完整性验证信息;
根据所述响应数据信息重新获取校验码,并根据重新获取的校验码、所述响应数据信息中携带的数据完整性验证信息及校验码、所述访问指令中携带的数据完整性验证信息,对所述响应数据信息进行数据校验。
所述处理器,还用于在数据校验通过后,获取所述响应数据信息中的数据并发送至用户端。
进一步地,本发明提供了一种存储装置,包括:
接收单元,用于接收访问指令,所述访问指令中携带有数据完整性验证信息;
获取单元,用于根据所述访问指令,获取待处理数据及所述待处理数据对应的数据完整性验证信息及校验码;
处理单元,用于根据所述待处理数据重新获取校验码,并根据重新获取的校验码、所述待处理数据中携带的数据完整性验证信息及校验码、所述访问指令中携带的数据完整性验证信息,对所述待处理数据进行数据校验,并在数据校验通过后,根据所述访问指令,处理所述待处理数据。
可选地,所述获取单元,具体用于在所述访问指令为写指令时,根据所述访问指令,获取所述访问指令对应的数据信息;数据信息中携带有数据完整性验证信息及校验码;在所述访问指令为读指令时,根据所述访问指令,从存储的数据中获取待处理数据及所述待处理数据对应的数据完整性验证信息及校验码。
可选地,所述处理单元,具体用于在所述访问指令为写指令时,在数据校验通过后,根据所述访问指令,存储所述数据信息及所述数据信息中携带的数据完整性验证信息及校验码;在所述访问指令为读指令时,在数据校验通过后,将所述待处理数据及所述待处理数据对应的数据完整性验证信息及校验码作为响应数据信息,发送至存储阵列。
进一步地,本发明提供了一种电子设备,包括:存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现上述实施例所述的一种NVMe-oF场景下的数据保护方法的步骤。
通过上述技术方案,本申请公开了一种NVMe-oF场景下的数据保护方法及设备,包括:接收主机侧发送的访问指令,所述访问指令中携带有数据完整性验证信息;根据所述访问指令确定是否进行数据完整性校验;若确定进行数据完整性校验,则获取所述访问指令对应的数据信息;其中,所述数据信息中携带有数据完整性验证信息及校验码;根据所述数据信息重新获取校验码,并根据重新获取的校验码、所述数据信息中携带的数据完整性验证信息及校验码、所述访问指令中携带的数据完整性验证信息,对所述数据信息进行数据校验,并在数据校验通过后,将所述访问指令发送至存储装置。这样一来,在本申请中,主机侧将携带有数据完整性验证信息的访问指令发送至存储阵列,此时存储阵列接收访问指令,根据此访问指令确定是否进行数据完整性校验,在确定进行数据完整性校验后,获取此访问指令对应的数据信息,此数据信息中携带有数据完整性验证信息及校验码,根据数据信息重新获取校验码,并根据重新获取的校验码、数据信息中携带的数据信息中携带有数据完整性验证信息及校验码、访问指令中携带的数据完整性验证信息,对数据信息进行数据校验,以便确定数据信息是否在传输过程发生错误,在数据校验通过后,说明数据信息没有错误,数据是完整的,此时可以将此访问指令继续传输至存储装置,以便存储装置在接收到访问指令后,也需要可以根据访问指令对数据信息进行数据校验,并在数据校验通过后,在根据访问指令对数据信息进行相应的处理。即为,在本申请中,在主机侧向存储装置发送访问指令及数据信息时,存储阵列及存储装置分别需要对数据信息进行相应的数据校验,保证数据传输过程中没有发生错误,以确保数据的完整性,从而提高了存储系统的数据可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
图1为本发明实施例提供的一种NVMe-oF场景下的数据保护方法流程示意图;
图2为本发明实施例提供的另一种NVMe-oF场景下的数据保护方法流程示意图;
图3为本发明实施例提供的一种NVMe-oF场景下的数据保护方法流程示意图;
图4为本发明实施例提供的一种NVMe-oF场景下的数据保护方法流程示意图;
图5为本发明实施例提供的一种NVMe-oF场景下的数据保护方法流程示意图;
图6为本发明实施例提供的一种存储阵列的结构示意图;
图7为本发明实施例提供的一种主机的结构示意图;
图8为本发明实施例提供的一种存储装置的结构示意图;
图9为本发明实施例提供的一种电子设备的结构示意图;
图10为本发明实施例提供的另一种电子设备的结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
另外,本发明各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
如图1所示,本发明提出一种NVMe-oF场景下的数据保护方法,该方法应用于存储阵列,此存储阵列通过NVMe-oF(Non-Volatile Memory express over Fabrics,网络上的非易失性存储器标准)协议与主机侧通信。存储阵列与存储装置间通过NVMe(Non-VolatileMemory express,非易失性存储器标准)协议通信。如图1所示,所述方法包括:
步骤S101、接收主机侧发送的访问指令。
其中,访问指令中携带有数据完整性验证信息。
具体的,在主机侧需要将数据存储至存储装置,或者需要从存储装置读取数据时,会生成相应的访问指令,例如写指令或者读指令。在生成访问指令后,可以将用于检测数据完整性的数据完整性验证信息添加至访问指令中。并且在需将数据存储至存储装置中时,可以根据需存储的数据生成校验码,并将生成的校验码及数据完整性验证信息添加至待存储数据中,形成数据信息。将访问指令发送至存储阵列。
此时,存储阵列可以接收到主机侧发送的访问指令,且此访问指令中携带有数据完整性验证信息。
进一步地,数据完整性验证信息包括:reference tag(参考标签)或者,referencetag及application tag(应用程序标签)。其中,application tag是不透明的数据域,不能被存储阵列理解,可以用于禁止保护信息的检查。reference tag把数据与一个地址关联起来,防止被误用或乱序数据传输。类似于applicationtag,reference tag也可以用于禁止保护信息的检查。
步骤S102、根据访问指令确定是否进行数据完整性校验。
具体的,存储阵列接收到访问指令后,可以解析此访问指令获知访问指令的类型,进而可以根据访问指令的类型确定是否进行数据完整性校验。
进一步地,根据访问指令确定是否进行数据完整性校验包括:在访问指令为写指令时,确定进行数据完整性校验;在访问指令为读指令时,确定不进行数据完整性校验。
即为,在访问指令为写指令时,确定进行数据完整性校验。在访问指令为读指令时,确定不进行数据完整性校验。其中,在访问指令为写指令时,说明主机侧需要将数据存储至存储装置中,此时,需要对待存储的数据进行数据完整性校验,进而保证传输至存储装置的数据是完整的,因此在访问指令为写指令时,存储阵列确定进行数据完整性校验。在访问指令为读指令时,说明主机侧需要从存储装置中读取数据,不向存储装置发送数据,因此在访问指令为读指令时,存储阵列确定不进行数据完整性校验。
步骤S103、若确定进行数据完整性校验,则获取访问指令对应的数据信息。
其中,数据信息中携带有数据完整性验证信息及校验码。
具体的,在确定进行数据完整性校验时,说明访问指令为写指令,此时需要对主机侧需要存储的数据进行数据完整性校验。主机侧在向存储阵列发送访问指令时,可以与对应的数据信息一起通过NVMe-oF协议发送至存储阵列。存储阵列在接收访问指令,可以同时接收数据信息。
当然,主机侧也可以不直接将需要存储的数据,即为数据信息与访问指令一起发送至存储阵列,可以单独发送数据信息,或者存储阵列通过RDMA(Remote DirectMemoryAccess,远程直接数据存取)获取数据信息,本申请对此不做限制。
步骤S104、根据数据信息重新获取校验码,并根据重新获取的校验码、数据信息中携带的数据完整性验证信息及校验码、访问指令中携带的数据完整性验证信息,对数据信息进行数据校验,并在数据校验通过后,将访问指令发送至存储装置。
具体的,存储阵列解析访问指令时,可以获取访问指令中携带的数据完整性验证信息。在获取了数据信息后,存储阵列可以对数据信息进行解析,得到数据信息中的待存储数据,数据完整性验证信息及校验码。存储阵列还需要根据数据信息中的待存储数据重新计算校验码,并将重新获取的校验码、访问指令中携带的数据完整性验证信息与数据信息中携带的数据完整性验证信息及校验码进行比较,以对数据信息进行数据校验。在重新获取的校验码、访问指令中携带的数据完整性验证信息与数据信息中携带的数据完整性验证信息及校验码均相同时,则可以确定数据校验通过。否则,确定没有通过数据校验。在数据校验通过后,将访问指令发送至存储装置。
进一步地,在数据完整性验证信息包括reference tag及application tag时,访问指令中携带有reference tag及application tag,数据信息中携带有reference tag、application tag及校验码。此时,存储阵列根据数据信息中的待存储数据重新计算校验码,并将重新获取的校验码、访问指令中的reference tag及application tag与数据信息中携带的reference tag、application tag及校验码进行比较,从而确定数据信息能否通过数据校验。
进一步地,上述校验码为CRC(Cyclic Redundancy Check,循环冗余校验)校验码,此时,存储阵列可以根据数据信息中的待存储数据进行计算,得到CRC校验码。
需要说明的是,上述校验码还可以是其他形式的校验码,例如,IP checksum,本申请对此不做限制。
需要说明的是,在数据信息中,可以将数据完整性验证信息及校验码,例如application tag、reference tag及CRC校验码,填充至元数据的PI信息的相关字段中,并将PI信息及待存储数据作为数据信息,进行传输。
这样,在本申请中,在主机侧向存储装置发送访问指令及数据信息时,存储阵列需要对数据信息进行相应的数据校验,保证数据传输过程中没有发生错误,以确保数据的完整性,从而提高了存储系统的数据可靠性。
如图2所示,本发明实施例提供了一种NVMe-oF场景下的数据保护方法,该方法应用于主机侧,此主机侧通过NVMe-oF协议与存储阵列通信。存储阵列与存储装置间通过NVMe协议通信。如图2所示,所述方法包括:
步骤S201、接收用户端发送的访问指令。
具体的,用户端在需要存储数据或者读取数据时,可以向主机侧发送访问指令。用户端可以将用于校验数据完整性的信息添加至访问指令中,发送至主机侧。
进一步地,用户端在将application tag添加至访问指令内,发送至访问指令内。
步骤S202、根据访问指令生成数据完整性验证信息,并将数据完整性验证信息添加至访问指令中。
具体的,主机侧接收到访问指令后,由于存储数据或者读取数据均需数据完整性验证信息,以便进行数据校验。数据完整性验证信息可以由主机侧生成,即为主机侧在接收到访问指令后,访问指令中携带了用于数据完整性校验的信息,此信息为数据完整性验证信息的部分内容,主机侧还需要根据访问指令生成数据完整性验证信息的其他内容,从而完成生成完整的数据完整性验证信息,将数据完整性验证信息添加至访问指令中。
进一步地,在数据完整性验证信息包括application tag及reference tag时,applicationtag可以由用户端生成,并将application tag添加至访问指令的相关字段,发送至主机侧。主机侧接收到访问指令后,可以根据预设的端到端数据保护规则的保护类型计算出reference tag,将reference tag添加至访问指令中。
步骤S203、将访问指令发送至存储阵列。
具体的,在将数据完整性验证信息添加至访问指令后,可以将访问指令通过NVMe-oF协议发送至存储阵列,以便存储阵列根据此访问指令进行相应的数据校验,以对数据信息进行完整性校验。
这样一来,在主机侧获取用户端发送的访问指令,根据访问指令生成数据完整性验证信息,并将数据完整性验证信息添加至访问指令中,将访问指令发送至存储阵列,以便存储阵列可以根据此访问指令进行相应的数据校验,实现对相应数据的数据完整性校验,进而可以提高数据的可靠性。
如图3所示,本发明实施例提供了一种NVMe-oF场景下的数据保护方法,该方法应用于存储装置,此存储装置通过NVMe协议与存储阵列通信,存储阵列通过NVMe-oF协议与主机侧通信。如图3所示,所述方法包括:
步骤301、接收访问指令,访问指令中携带有数据完整性验证信息。
具体的,存储装置接收存储阵列通过NVMe协议传输的访问指令。
步骤302、根据访问指令,获取待处理数据及待处理数据对应的数据完整性验证信息及校验码。
具体的,由于不同的访问指令,其获取待处理数据及待处理数据对应的数据完整性验证信息及校验码的位置不同。因此,存储装置在接收到访问指令后,解析访问指令,从而可以确定访问指令具体是什么指令,例如是写指令还是读指令,从而可以在相应的位置获取到待处理数据及待处理数据对应的数据完整性验证信息和校验码。
进一步地,在访问指令为写指令时,根据所述访问指令,获取待处理数据及待处理数据对应的数据完整性验证信息及校验码包括:
根据访问指令,获取访问指令对应的数据信息。
其中,数据信息中携带有数据完整性验证信息及校验码。
即为,存储装置在接收到访问指令为写指令时,写指令是主机侧需要将数据存储至存储装置中,因此存储装置需要从存储阵列侧获取数据信息。此时可以解析写指令,获取写指令内的源数据地址,根据此源数据地址获取到相应的数据信息。此数据信息内包含有待存储的数据、数据完整性验证信息及校验码。因此,在获取了数据信息时,就获取了待处理数据、待处理数据对应的数据完整性验证信息及校验码。
在访问指令为读指令时,根据所述访问指令,获取待处理数据及待处理数据对应的数据完整性验证信息及校验码包括:
根据访问指令,从存储的数据中获取待处理数据及待处理数据对应的数据完整性验证信息及校验码。
即为,存储装置在接收到访问指令为读指令时,读指令是主机侧需要从存储装置中读取数据,因此存储装置需要从其存储介质内读取数据。此时,可以解析读指令,获取读指令中的目标数据地址,进而可以根据此目标数据地址获取到相应的数据信息。其中,存储介质中存储的数据信息包含有数据及该数据的数据完整性验证信息及校验码。因此,在获取了数据信息时,就获取了待处理数据、待处理数据对应的数据完整性验证信息及校验码。
步骤S303、根据待处理数据重新获取校验码,并根据重新获取的校验码、待处理数据中携带的数据完整性验证信息及校验码、访问指令中携带的数据完整性验证信息,对待处理数据进行数据校验,并在数据校验通过后,根据访问指令,处理待处理数据。
具体的,存储装置在获取了待处理数据及待处理数据的数据完整性验证信息及校验码之后,可以根据获取的待处理数据重新获取校验码,访问指令中携带有数据完整性验证信息,可以在解析访问指令时,获取到其内携带的数据验证性验证信息,将重新获取的校验码、访问指令中携带的数据验证性验证信息与待处理数据的数据完整性验证信息及校验码进行比较,从而对待处理数据进行数据校验,如果重新获取的校验码、访问指令中携带的数据验证性验证信息均与处理数据的数据完整性验证信息及校验码相同,则可以确定待处理数据通过数据校验,并在数据校验通过后,根据访问指令,进行相应的数据处理。如果重新获取的校验码、访问指令中携带的数据验证性验证信息与处理数据的数据完整性验证信息及校验码不完全相同,则可以确定待处理数据没有通过数据校验。此时,存储装置通过存储阵列向主机侧返回校验错误信息。
示例性的,如果数据完整性验证信息包括application tag及reference tag,校验码为CRC校验码时,存储装置在获取了待处理数据及待处理数据的application tag、reference tag及CRC校验码后,可以在解析访问指令时,获取到访问指令内携带的application tag、reference tag。存储装置根据待处理数据进行计算重新获取CRC校验码,将重新获取的CRC校验码、访问指令内携带的的applicationtag、reference tag,与待处理数据的application tag、reference tag及CRC校验码进行比较,如果重新获取的CRC校验码、访问指令内携带的的application tag、reference tag与待处理数据的application tag、reference tag及CRC校验码均相同,则说明待处理数据未发生错误,确定待处理数据通过数据校验。如果重新获取的CRC校验码、访问指令内携带的的application tag、reference tag与待处理数据的applicationtag、reference tag及CRC校验码不完成相同,则说明待处理数据发生错误,确定待处理数据没有通过数据校验。
进一步地,在访问指令为写指令时,在数据校验通过后,根据访问指令,处理待处理数据包括:
在数据校验通过后,根据访问指令,存储数据信息及数据信息中携带的数据完整性验证信息及校验码。
即为,在访问指令为写指令时,在待处理数据通过数据校验后,存储装置可以将数据信息存储至存储介质中。也就是说,将数据信息中的数据、数据完整性验证信息及校验码存储至存储介质中。
在访问指令为读指令时,数据校验通过后,根据访问指令,处理待处理数据包括:
在数据校验通过后,将待处理数据及所述待处理数据对应的数据完整性验证信息及校验码作为响应数据信息,发送至存储阵列。
即为,在访问指令为读指令时,存储装置需要向主机侧返回其读取的数据。因此,在待处理数据通过数据校验后,存储装置可以将待处理数据及其对应的数据完整性验证信息及校验码形成响应数据信息,并将此响应数据信息返回至存储阵列,以便存储阵列将此响应数据信息返回至主机侧。
可选地,上述存储介质为NVMe固态硬盘,当然还可以是其他NVMe存储介质,例如SCM(Storage Class Memory,存储级内存)或ZNS SSD(Zoned Storage Solid State Disk,分区存储固态硬盘)等,本申请对此不做限制。
这样一来,在本申请中,存储装置在接收到访问指令后,可以根据访问指令获取到待处理数据及待处理数据的数据完整性验证信息和校验码。根据待处理数据重新获取校验码,根据重新获取的校验码、访问指令中携带的数据完整性验证信息和校验码,待处理数据的数据完整性验证信息和校验码对待处理数据进行数据校验,并在数据校验通过后根据访问指令进行相应的处理。即为,在存储装置侧实现对数据完整性的校验,从而可以在存储数据前对待存储的数据进行完整性校验,或者,在存储介质中读取数据后,对读取的数据进行完整性校验,保证存储的数据或者从存储介质中读取的数据没有发生错误,提高了数据的可靠性。
如图4所示,本发明实施例提供了一种NVMe-oF场景下的数据保护方法,包括:
步骤S401、主机侧接收用户端发送的访问指令。
需要说明的是,在本实施例中,访问指令为写指令。
具体的,用户端在需要将数据存储中存储系统时,向主机侧发送写指令。且,用户端可以依据需求将applicationtag添加至写指令的相关字段内。
步骤S402、主机侧根据访问指令生成数据完整性验证信息,并将数据完整性验证信息添加至访问指令中。
具体的,可参考步骤S202,在此不再赘述。
步骤S403、访问指令为写指令时,主机侧根据访问指令获取数据信息,并根据数据信息生成校验码,将访问指令中的数据完整性验证信息及校验码添加至数据信息中。
具体的,在访问指令为写指令时,主机侧需要将数据存储至存储装置中,为了保证数据的完整性,可以进一步针对此数据进行相应的校验码的生成,以便根据校验码对数据进行是否发生错误的检测。此时,主机侧可以解析写指令,根据写指令内的源数据地址获取到待存储数据,根据待存储数据计算出校验码,主机侧在计算出校验码后,将校验码及数据完整性验证信息添加至待存储数据的对应字段内,形成数据信息。
示例性的,校验码为CRC校验码,此时主机侧将根据待存储数据计算出CRC校验码,主机侧可以将生成的CRC校验码及数据完整性验证信息添加至待存储数据的元数据内的PI信息的对应字段中,此时待存储数据及元数据的PI信息形成数据信息。
进一步地,数据完整性验证信息包括application tag及reference tag。
需要说明的是,在数据信息中,可以将数据完整性验证信息及校验码,例如,application tag、reference tag及CRC校验码填充至元数据的PI信息的相关字段中,并将PI信息及待存储数据作为数据信息,进行传输。
步骤S404、主机侧将访问指令发送至存储阵列,将数据信息发送至存储阵列。
具体的,主机侧在完成将数据完整性验证信息添加至写指令后,可以将写指令通过NVMe-oF协议发送至存储阵列。主机侧在完成数据信息的形成后,可以将数据信息通过NVMe-oF协议发送至存储阵列。主机侧在通过NVMe-oF协议发送数据信息时,可以与访问指令一起通过NVMe-oF协议发送至存储阵列,当然,主机侧也可以将数据信息单独通过NVMe-oF协议发送至存储阵列,本申请对此不做限制。
步骤S405、存储阵列接收主机侧发送的访问指令及数据信息。
其中,访问指令中携带有数据完整性验证信息。数据信息中携带有数据完整性验证信息及校验码。
具体的,存储阵列可以通过NVMe-oF协议接收主机侧发送的访问指令及数据信息,具体可参考步骤S101,在此不再赘述。
步骤S406、存储阵列根据访问指令确定是否进行数据完整性校验。
具体的,可参考步骤S102在此不再赘述。
步骤S407、存储阵列确定进行数据完整性校验,获取访问指令对应的数据信息。
其中,数据信息中携带有数据完整性验证信息及校验码。
具体的,存储阵列需从主机侧获取访问指令对应的数据信息。如果在接收访问指令时若同时接收了对应的数据信息,则此时可以获取接收的数据信息。若没有同时接收到对应的数据信息,则可以等待主机侧发送访问指令对应的数据信息,或者向主机侧发送请求消息,以便获取访问指令对应的数据信息。
步骤S408、存储阵列根据数据信息重新获取校验码,并根据重新获取的校验码、数据信息中携带的数据完整性验证信息及校验码、访问指令中携带的数据完整性验证信息,对数据信息进行数据校验,并在数据校验通过后,将访问指令发送至存储装置。
具体的,可参考步骤S104,在此不再赘述。
需要说明的是,存储阵列在对数据进行数据校验时,如果数据校验通过后,则将访问指令直接发送至存储装置,并继续执行下述步骤S410。如果数据校验没有通过,则需向主机侧返回校验错误信息,此时需执行步骤S409。
步骤S409、在数据校验没有通过时,存储阵列向主机侧返回校验错误信息。
具体的,存储阵列在对数据信息进行数据校验时,如果数据信息没有通过校验信息,则说明数据信息在传输过程中发生错误,此时存储阵列向主机侧返回校验错误信息,以便主机侧根据校验错误信息进行相应的处理。
步骤S410、存储装置接收访问指令。
其中,访问指令中携带有数据完整性验证信息。
具体的,可参照步骤S301,在此不再赘述。
步骤S411、存储装置根据访问指令,获取访问指令对应的数据信息。
其中,数据信息中携带有数据完整性验证信息及校验码。
具体的,可参照步骤S302,在此不再赘述。
进一步地,存储装置在获取待处理数据时,可以采用RDMA(Remote DirectMemoryAccess,远程直接数据存取)从存储阵列的缓存中获取数据信息,即为获取待处理数据、待处理数据的数据完整性验证信息及校验码。
步骤S412、存储装置根据数据信息重新获取校验码,并根据重新获取的校验码、数据信息中携带的数据完整性验证信息及校验码、访问指令中携带的数据完整性验证信息,对数据信息进行数据校验,并在数据校验通过后,根据访问指令,存储数据信息及数据信息中携带的数据完整性验证信息及校验码。
具体的,可参考步骤S303,在此不再赘述。
需要说明的是,存储装置在对数据进行数据校验时,如果数据校验通过后,则将数据信息存储至存储介质中。如果数据校验没有通过,则需通过存储阵列向主机侧返回校验错误信息,此时需执行步骤S413。
步骤S413、在没有通过数据校验时,存储装置通过存储阵列向主机侧返回校验错误信息。
具体的,在存储装置检测出重新计算的校验码、访问指令中携带的数据完整性验证信息与数据信息中携带的数据完整性验证信息及校验码不完全相同时,则确定数据信息中的待存储数据发生错误,此时向存储阵列返回校验错误信息,存储阵列将此校验错误信息返回至主机侧。
这样,在本申请中,基于NVMe-oF场景下,在主机侧通过存储阵列向存储装置发送数据进行存储时,存储阵列及存储装置均需对接收的数据进行数据校验,以检测接收的数据是否存在错误,实现存储数据时的端到端的数据保护,提高了存储装置存储数据的准确性,进而提高了存储系统的数据可靠性。
如图5所示,本发明实施例提供了一种NVMe-oF场景下的数据保护方法,包括:
步骤S501、主机侧接收用户端发送的访问指令。
需要说明的是,在本实施例中,访问指令为读指令。
具体的,用户端在需要从存储系统中读取数据时,向主机侧发送读指令。且,用户端可以依据需求将applicationtag添加至读指令的相关字段内。
步骤S502、主机侧根据访问指令生成数据完整性验证信息,并将数据完整性验证信息添加至访问指令中。
具体的,可参考步骤S202,在此不再赘述。
步骤S503、主机侧将访问指令发送至存储阵列。存储阵列接收主机侧发送的访问指令。
其中,访问指令中携带有数据完整性验证信息。
具体的,可参考步骤S203及步骤S101,在此不再赘述。
步骤S504、存储阵列根据访问指令确定是否进行数据完整性校验。
具体的,可参考步骤S102,在此不再赘述。
步骤S505、存储阵列确定不进行数据完整性校验,则将访问指令发送至存储装置。存储装置接收访问指令。
其中,访问指令中携带有数据完整性验证信息。
具体的,存储阵列在解析出访问指令为读指令时,则可以确定此时无需进行数据完整性校验,直接将读指令发送至存储装置。存储装置接收访问指令。
步骤S506、存储装置根据访问指令,从存储的数据中获取待处理数据及待处理数据对应的数据完整性验证信息及校验码。
具体的,可参考步骤S302,在此不再赘述。
进一步地,数据完整性验证信息包括application tag及reference tag。校验码为CRC校验码。
步骤S507、存储装置根据待处理数据重新获取校验码,并根据重新获取的校验码、待处理数据中携带的数据完整性验证信息及校验码、访问指令中携带的数据完整性验证信息,对待处理数据进行数据校验,并在数据校验通过后,将待处理数据及待处理数据对应的数据完整性验证信息及校验码作为响应数据信息,发送至存储阵列。
其中,响应数据信息中携带有数据完整性验证信息及校验码
具体的,可参考步骤S303,在此不再赘述。存储装置在向存储阵列发送响应数据信息时,存储阵列可以接收此响应数据信息。
进一步地,存储装置可以将响应数据信息直接通过RDMA存储至存储阵列的缓存中。
需要说明的是,存储装置在对数据进行数据校验时,如果数据校验通过后,则将响应数据信息传输至存储阵列,并继续执行下述步骤S509。如果数据校验没有通过,则需向主机侧返回校验错误信息,此时需执行步骤S508。
步骤S508、存储装置通过存储阵列向主机侧返回校验错误信息。
具体的,在存储装置检测出重新计算的校验码、访问指令中携带的数据完整性验证信息与从存储介质中读取的数据的数据完整性验证信息及校验码不完全相同时,则确定存储介质中存储的数据发生错误,此时向存储阵列返回校验错误信息,存储阵列将此校验错误信息返回至主机侧。
步骤S509、存储阵列接收存储装置发送的响应数据信息,并根据响应数据信息重新获取校验码,并根据重新获取的校验码、响应数据信息中携带的数据完整性验证信息及校验码、访问指令中携带的数据完整性验证信息,对响应数据信息进行数据校验,并在数据校验通过后,将响应数据信息发送至所述主机侧。
具体的,存储阵列在接收到响应数据信息后,可以根据此响应数据信息进行相应的计算,重新得到校验码,解析响应数据信息可以解析出其内携带的数据完整性验证信息及校验码。存储阵列还可以通过解析上述步骤S503接收的访问指令,即为读指令,从该读指令中解析出数据完整性验证信息,将读指令中解析出的数据完整性验证信息、重新计算出的校验码,与响应数据信息解析出的数据完整性验证信息及校验码进行比较,实现对响应数据信息进行数据校验,如果读指令中解析出的数据完整性验证信息、重新计算出的校验码,与响应数据信息解析出的数据完整性验证信息及校验码相同,则确定响应数据信息通过数据校验,则说明响应数据信息未发生错误,可以将响应数据信息发送至主机侧。
需要说明的是,存储阵列在对数据进行数据校验时,如果数据校验通过后,则将响应数据信息传输至主机侧,并继续执行下述步骤S511。如果数据校验没有通过,则需向主机侧返回校验错误信息,此时需执行步骤S510。
步骤S510、存储阵列向主机侧返回校验错误信息。
具体的,在存储阵列检测出重新计算的校验码、访问指令中携带的数据完整性验证信息与从存储介质中读取的数据的数据完整性验证信息及校验码不完全相同时,则确定响应数据信息中的数据发生错误,此时存储阵列将此校验错误信息返回至主机侧。
步骤S511、主机侧接收存储阵列发送的响应数据信息。
其中,响应数据信息中携带有数据完整性验证信息。
步骤S512、主机侧根据响应数据信息重新获取校验码,并根据重新获取的校验码、响应数据信息中携带的数据完整性验证信息及校验码、访问指令中携带的数据完整性验证信息,对响应数据信息进行数据校验,并在数据校验通过后,获取响应数据信息中的数据并发送至用户端。
具体的,主机侧接收到响应数据信息后,需要对接收的响应数据信息内的数据进行校验,检测其是否发生错误。此时,主机侧可以根据此响应数据信息内的数据进行相应的计算,重新得到校验码,解析响应数据信息可以解析出其内携带的数据完整性验证信息及校验码。主机侧还可以从读指令中解析出数据完整性验证信息,将读指令中解析出的数据完整性验证信息、重新计算出的校验码,与响应数据信息解析出的数据完整性验证信息及校验码进行比较,实现对响应数据信息进行数据校验,如果读指令中解析出的数据完整性验证信息、重新计算出的校验码,与响应数据信息解析出的数据完整性验证信息及校验码相同,则确定响应数据信息通过数据校验,则说明响应数据信息未发生错误,可以将响应数据信息中携带的数据完整性验证信息及校验码删除,将响应数据信息中的数据返回至用户端。
这样,在本申请中,基于NVMe-oF场景下,在主机侧需要读取数据时,将访问指令通过存储阵列发送至存储装置。存储装置接收到访问指令后,从存储介质中获取数据,并对获取的数据进行数据校验,在数据校验通过后,根据获取的数据生成响应数据信息,并将此响应数据信息通过存储阵列发送至主机侧,存储阵列及主机侧在接收到响应数据信息时,均需对接收的响应数据信息进行数据校验,以检测接收的数据是否存在错误,实现读取数据时的端到端保护,提高了主机侧读取数据的准确性,进而提高了存储系统的数据可靠性。
综上,通过本申请可以实现在NVMe-oF场景下的,存储数据及读取数据的端到端的数据保护,进而可以降低获取错误数据的概率,大大提高了存储系统的数据可靠性。
如图6所示,本发明实施例提供了一种存储阵列,包括:
接收单元601,用于接收主机侧发送的访问指令。
其中,访问指令中携带有数据完整性验证信息。
确定单元602,用于根据访问指令确定是否进行数据完整性校验。
具体的,确定单元602,具体用于在访问指令为写指令时,确定进行数据完整性校验;在访问指令为读指令时,确定不进行数据完整性校验。
获取单元603,用于若确定进行数据完整性校验,则获取访问指令对应的数据信息。
其中,数据信息中携带有数据完整性验证信息及校验码。
处理单元604,用于根据数据信息重新获取校验码,并根据重新获取的校验码、数据信息中携带的数据完整性验证信息及校验码、访问指令中携带的数据完整性验证信息,对数据信息进行数据校验,并在数据校验通过后,将访问指令发送至存储装置。
进一步地,本发明实施例中的存储阵列由FPGA(Field Programmable GateArray,现场可编程逻辑门阵列)硬件实现。这样可以通过硬件逻辑实现上述计算和校验工作,提高了数据校验的速度,进而提高了数据传输的效率。
需要说明的是,本申请中存储阵列还可以由ASIC(Application SpecificIntegrated Circuit,专用集成电路)、固化SOC(System on Chip,片上系统)等其他硬件逻辑器件实现,本发明对此不做限制。
进一步地,处理单元604,还用于在确定不进行数据完整性校验时,将所述访问指令发送至所述存储装置。
进一步地,上述接收单元601,还用于接收存储装置发送的响应数据信息。
其中,响应数据信息中携带有数据完整性验证信息及校验码。
处理单元604,还用于根据响应数据信息重新获取校验码,并根据重新获取的校验码、响应数据信息中携带的数据完整性验证信息及校验码、访问指令中携带的数据完整性验证信息,对响应数据信息进行数据校验,并在数据校验通过后,将响应数据信息发送至主机侧。
进一步地,上述处理单元604,还用于在数据校验没有通过时,向主机侧返回校验错误信息。
这样,在本申请中,在主机侧向存储装置发送访问指令及数据信息时,存储阵列需要对数据信息进行相应的数据校验,保证数据传输过程中没有发生错误,以确保数据的完整性,从而提高了存储系统的数据可靠性。并且上述存储阵列可以由FPGA硬件等实现,提高了校验的速度,从而可以提高数据传输的效率。
如图7所示,本发明实施例提供了一种主机,包括:处理器701及HBA(Host busadapter,主机总线适配器)702。其中,
处理器701,用于接收用户端发送的访问指令。
HBA702,用于根据访问指令生成数据完整性验证信息,并将数据完整性验证信息添加至访问指令中。
HBA702,还用于将访问指令发送至存储阵列。
HBA702,还用于在访问指令为写指令时,根据访问指令获取数据信息,并根据所述数据信息生成校验码,将访问指令中的数据完整性验证信息及校验码添加至所述数据信息中。
HBA702,还用于将数据信息发送至存储阵列。
HBA702,还用于在访问指令为读指令时,接收存储阵列发送的响应数据信息。
其中,响应数据信息中携带有数据完整性验证信息。
HBA702,还用于根据所述响应数据信息重新获取校验码,并根据重新获取的校验码、所述响应数据信息中携带的数据完整性验证信息及校验码、所述访问指令中携带的数据完整性验证信息,对所述响应数据信息进行数据校验。
处理器701,还用于在数据校验通过后,获取响应数据信息中的数据并发送至用户端。
这样一来,在主机侧获取用户端发送的访问指令,根据访问指令生成数据完整性验证信息,并将数据完整性验证信息添加至访问指令中,将访问指令发送至存储阵列,以便存储阵列可以根据此访问指令进行相应的数据校验,实现对相应数据的数据完整性校验,进而可以提高数据的可靠性。并且,上述数据完整性验证信息及校验码均有HBA计算获取,并且,响应数据信息的数据校验过程均由HBA实现,从而减少了处理器的参与,提高了数据计算及校验的效率,进而提高了主机的数据处理效率。
如图8所示,本发明实施例提供了一种存储装置,包括:
接收单元801,用于接收访问指令。
其中,访问指令中携带有数据完整性验证信息。
获取单元802,用于根据访问指令,获取待处理数据及待处理数据对应的数据完整性验证信息及校验码。
具体的,获取单元802,具体用于在访问指令为写指令时,根据访问指令,获取访问指令对应的数据信息。
其中,数据信息中携带有数据完整性验证信息及校验码。
在访问指令为读指令时,根据访问指令,从存储的数据中获取待处理数据及待处理数据对应的数据完整性验证信息及校验码。
处理单元803,用于根据待处理数据重新获取校验码,并根据重新获取的校验码、待处理数据中携带的数据完整性验证信息及校验码、访问指令中携带的数据完整性验证信息,对待处理数据进行数据校验,并在数据校验通过后,根据访问指令,处理待处理数据。
具体的,处理单元803,具体用于在访问指令为写指令时,在数据校验通过后,根据访问指令,存储数据信息及数据信息中携带的数据完整性验证信息及校验码。
在访问指令为读指令时,在数据校验通过后,将待处理数据及所述待处理数据对应的数据完整性验证信息及校验码作为响应数据信息,发送至存储阵列。
这样一来,在本申请中,存储装置在接收到访问指令后,可以根据访问指令获取到待处理数据及待处理数据的数据完整性验证信息和校验码。根据待处理数据重新获取校验码,根据重新获取的校验码、访问指令中携带的数据完整性验证信息和校验码,待处理数据的数据完整性验证信息和校验码对待处理数据进行数据校验,并在数据校验通过后根据访问指令进行相应的处理。即为,在存储装置侧实现对数据完整性的校验,从而可以在存储数据前对待存储的数据进行完整性校验,或者,在存储介质中读取数据后,对读取的数据进行完整性校验,保证存储的数据或者从存储介质中读取的数据没有发生错误,提高了数据的可靠性。
图9是根据一示例性实施例示出的一种电子设备900的框图。如图9所示,该电子设备900可以包括:处理器901,存储器902。该电子设备900还可以包括多媒体组件903,输入/输出(I/O)接口904,以及通信组件905中的一者或多者。
其中,处理器901用于控制该电子设备900的整体操作,以完成上述的NVMe-oF场景下的数据保护方法中的全部或部分步骤。存储器902用于存储各种类型的数据以支持在该电子设备900的操作,这些数据例如可以包括用于在该电子设备900上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器902可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static RandomAccess Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件903可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器902或通过通信组件905发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口904为处理器901和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件905用于该电子设备900与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G、4G、NB-IOT、eMTC、或其他5G等等,或它们中的一种或几种的组合,在此不做限定。因此相应的该通信组件905可以包括:Wi-Fi模块,蓝牙模块,NFC模块等等。
在一示例性实施例中,电子设备900可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable GateArray,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的NVMe-oF场景下的数据保护方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的NVMe-oF场景下的数据保护方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器902,上述程序指令可由电子设备900的处理器901执行以完成上述的NVMe-oF场景下的数据保护方法。
图10是根据一示例性实施例示出的一种电子设备100的框图。例如,电子设备100可以被提供为一服务器。参照图10,电子设备100包括处理器1010,其数量可以为一个或多个,以及存储器1020,用于存储可由处理器1010执行的计算机程序。存储器1020中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器1010可以被配置为执行该计算机程序,以执行上述的NVMe-oF场景下的数据保护方法。
另外,电子设备100还可以包括电源组件1030和通信组件1040,该电源组件1030可以被配置为执行电子设备100的电源管理,该通信组件1040可以被配置为实现电子设备100的通信,例如,有线或无线通信。此外,该电子设备100还可以包括输入/输出(I/O)接口1050。电子设备100可以操作基于存储在存储器1020的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM等等。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的NVMe-oF场景下的数据保护方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器1020,上述程序指令可由电子设备100的处理器1010执行以完成上述的NVMe-oF场景下的数据保护方法。
在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的NVMe-oF场景下的数据保护方法的代码部分。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。
Claims (16)
1.一种NVMe-oF场景下的数据保护方法,其特征在于,包括:
接收主机侧发送的访问指令,所述访问指令中携带有数据完整性验证信息;
根据所述访问指令确定是否进行数据完整性校验;
若确定进行数据完整性校验,则获取所述访问指令对应的数据信息;其中,所述数据信息中携带有数据完整性验证信息及校验码;
根据所述数据信息重新获取校验码,并根据重新获取的校验码、所述数据信息中携带的数据完整性验证信息及校验码、所述访问指令中携带的数据完整性验证信息,对所述数据信息进行数据校验,并在数据校验通过后,将所述访问指令发送至存储装置。
2.根据权利要求1所述的方法,其特征在于,还包括:
若确定不进行数据完整性校验,则将所述访问指令发送至所述存储装置。
3.根据权利要求2所述的方法,其特征在于,所述根据所述访问指令确定是否进行数据完整性校验包括:
在所述访问指令为写指令时,确定进行数据完整性校验;
在所述访问指令为读指令时,确定不进行数据完整性校验。
4.根据权利要求2所述的方法,其特征在于,还包括:
接收所述存储装置发送的响应数据信息;所述响应数据信息中携带有数据完整性验证信息及校验码;
根据所述响应数据信息重新获取校验码,并根据重新获取的校验码、所述响应数据信息中携带的数据完整性验证信息及校验码、所述访问指令中携带的数据完整性验证信息,对所述响应数据信息进行数据校验,并在数据校验通过后,将所述响应数据信息发送至所述主机侧。
5.根据权利要求1-4任一项所述的方法,其特征在于,还包括:
在数据校验没有通过时,向所述主机侧返回校验错误信息。
6.一种NVMe-oF场景下的数据保护方法,其特征在于,包括:
接收用户端发送的访问指令;
根据所述访问指令生成数据完整性验证信息,并将所述数据完整性验证信息添加至访问指令中;
将所述访问指令发送至存储阵列。
7.根据权利要求6所述的方法,其特征在于,还包括:
所述访问指令为写指令时,根据所述访问指令获取数据信息,并根据所述数据信息生成校验码,将所述访问指令中的数据完整性验证信息及所述校验码添加至所述数据信息中;
将所述数据信息发送至存储阵列。
8.根据权利要求6所述的方法,其特征在于,还包括:
在所述访问指令为读指令时,接收所述存储阵列发送的响应数据信息,其中,所述响应数据信息中携带有数据完整性验证信息;
根据所述响应数据信息重新获取校验码,并根据重新获取的校验码、所述响应数据信息中携带的数据完整性验证信息及校验码、所述访问指令中携带的数据完整性验证信息,对所述响应数据信息进行数据校验,并在数据校验通过后,获取所述响应数据信息中的数据并发送至用户端。
9.一种NVMe-oF场景下的数据保护方法,其特征在于,包括:
接收访问指令,所述访问指令中携带有数据完整性验证信息;
根据所述访问指令,获取待处理数据及所述待处理数据对应的数据完整性验证信息及校验码;
根据所述待处理数据重新获取校验码,并根据重新获取的校验码、所述待处理数据中携带的数据完整性验证信息及校验码、所述访问指令中携带的数据完整性验证信息,对所述待处理数据进行数据校验,并在数据校验通过后,根据所述访问指令,处理所述待处理数据。
10.根据权利要求9所述的方法,其特征在于,
在所述访问指令为写指令时,所述根据所述访问指令,获取待处理数据及所述待处理数据对应的数据完整性验证信息及校验码包括:
根据所述访问指令,获取所述访问指令对应的数据信息;数据信息中携带有数据完整性验证信息及校验码;
所述在数据校验通过后,根据所述访问指令,处理所述待处理数据包括:
在数据校验通过后,根据所述访问指令,存储所述数据信息及所述数据信息中携带的数据完整性验证信息及校验码。
11.根据权利要求9所述的方法,其特征在于,
在所述访问指令为读指令时,所述根据所述访问指令,获取待处理数据及所述待处理数据对应的数据完整性验证信息及校验码包括:
根据所述访问指令,从存储的数据中获取待处理数据及所述待处理数据对应的数据完整性验证信息及校验码;
所述数据校验通过后,根据所述访问指令,处理所述待处理数据包括:
在数据校验通过后,将所述待处理数据及所述待处理数据对应的数据完整性验证信息及校验码作为响应数据信息,发送至存储阵列。
12.一种存储阵列,其特征在于,包括:
接收单元,用于接收主机侧发送的访问指令,所述访问指令中携带有数据完整性验证信息;
确定单元,用于根据所述访问指令确定是否进行数据完整性校验;
获取单元,用于若确定进行数据完整性校验,则获取所述访问指令对应的数据信息;其中,所述数据信息中携带有数据完整性验证信息及校验码;
处理单元,用于根据所述数据信息重新获取校验码,并根据重新获取的校验码、所述数据信息中携带的数据完整性验证信息及校验码、所述访问指令中携带的数据完整性验证信息,对所述数据信息进行数据校验,并在数据校验通过后,将所述访问指令发送至存储装置。
13.根据权利要求12所述的存储阵列,其特征在于,
所述存储阵列由现场可编程逻辑门阵列FPGA硬件实现。
14.一种主机,其特征在于,包括:处理器及主机总线适配器HBA;其中,
所述处理器,用于接收用户端发送的访问指令;
所述HBA,用于根据所述访问指令生成数据完整性验证信息,并将所述数据完整性验证信息添加至访问指令中;
所述HBA,还用于将所述访问指令发送至存储阵列。
15.一种存储装置,其特征在于,包括:
接收单元,用于接收访问指令,所述访问指令中携带有数据完整性验证信息;
获取单元,用于根据所述访问指令,获取待处理数据及所述待处理数据对应的数据完整性验证信息及校验码;
处理单元,用于根据所述待处理数据重新获取校验码,并根据重新获取的校验码、所述待处理数据中携带的数据完整性验证信息及校验码、所述访问指令中携带的数据完整性验证信息,对所述待处理数据进行数据校验,并在数据校验通过后,根据所述访问指令,处理所述待处理数据。
16.一种电子设备,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1-5或权利要求6-8或权利要求9-11中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011441481.1A CN112463067A (zh) | 2020-12-08 | 2020-12-08 | 一种NVMe-oF场景下的数据保护方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011441481.1A CN112463067A (zh) | 2020-12-08 | 2020-12-08 | 一种NVMe-oF场景下的数据保护方法及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112463067A true CN112463067A (zh) | 2021-03-09 |
Family
ID=74801530
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011441481.1A Pending CN112463067A (zh) | 2020-12-08 | 2020-12-08 | 一种NVMe-oF场景下的数据保护方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112463067A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112866302A (zh) * | 2021-04-25 | 2021-05-28 | 上海有孚智数云创数字科技有限公司 | 对集群数据完整性检查的方法、设备、介质及程序产品 |
CN114003182A (zh) * | 2022-01-04 | 2022-02-01 | 苏州浪潮智能科技有限公司 | 指令交互方法、装置、存储设备以及介质 |
-
2020
- 2020-12-08 CN CN202011441481.1A patent/CN112463067A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112866302A (zh) * | 2021-04-25 | 2021-05-28 | 上海有孚智数云创数字科技有限公司 | 对集群数据完整性检查的方法、设备、介质及程序产品 |
CN112866302B (zh) * | 2021-04-25 | 2021-07-13 | 上海有孚智数云创数字科技有限公司 | 对集群数据完整性检查的方法、设备、介质及程序产品 |
CN114003182A (zh) * | 2022-01-04 | 2022-02-01 | 苏州浪潮智能科技有限公司 | 指令交互方法、装置、存储设备以及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8996828B2 (en) | Systems and methods for migrating data | |
CN107707628B (zh) | 用于传输数据处理请求的方法和装置 | |
JP6325001B2 (ja) | 階層データ構造のノードにおいて再帰的イベントリスナを用いる方法およびシステム | |
WO2017032264A1 (zh) | 一种内容推送方法、装置及终端 | |
CN108650287B (zh) | 物联网中的终端设备的升级方法、设备及计算机可读介质 | |
US20190087310A1 (en) | Mobile application program testing method, server, terminal, and storage medium | |
US20230014098A1 (en) | Method and system for accelerating reading of information of field replace unit, device, and medium | |
JP2018521411A (ja) | ネットワークにおけるノードの設定管理 | |
US20140282436A1 (en) | Testing a software interface for a streaming hardware device | |
CN112463067A (zh) | 一种NVMe-oF场景下的数据保护方法及设备 | |
CN114024884B (zh) | 一种测试方法、装置、电子设备及存储介质 | |
CN112380046B (zh) | 计算结果校验方法、系统、装置、设备及存储介质 | |
US9641616B2 (en) | Self-steering point-to-point storage protocol | |
JP7132999B2 (ja) | アプリケーションの動作状態を検証する方法および装置 | |
CN110989934B (zh) | 区块链节点数据存储方法、区块链系统及区块链节点 | |
CN110870286B (zh) | 容错处理的方法、装置和服务器 | |
CN111147586B (zh) | 设备端控制方法、装置和会议系统 | |
CN111694703A (zh) | 缓存区管理方法、装置和计算机设备 | |
CN112235422B (zh) | 数据处理方法、装置、计算机可读存储介质及电子装置 | |
US9398041B2 (en) | Identifying stored vulnerabilities in a web service | |
CN104536884A (zh) | 代码测试方法和装置 | |
US20160077743A1 (en) | Shared-bandwidth multiple target remote copy | |
WO2022100576A1 (zh) | 校验方法、系统、装置、计算芯片、计算机设备及介质 | |
CN110413800B (zh) | 一种提供小说信息的方法与设备 | |
CN112445790B (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 |