CN109634771A - 一种数据保护方法、装置及系统 - Google Patents
一种数据保护方法、装置及系统 Download PDFInfo
- Publication number
- CN109634771A CN109634771A CN201811285338.0A CN201811285338A CN109634771A CN 109634771 A CN109634771 A CN 109634771A CN 201811285338 A CN201811285338 A CN 201811285338A CN 109634771 A CN109634771 A CN 109634771A
- Authority
- CN
- China
- Prior art keywords
- data
- storage device
- controller
- instruction
- association identification
- 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
Classifications
-
- 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/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Storage Device Security (AREA)
Abstract
一种数据保护方法,装置和系统。该系统包括主机,第一存储装置,第二存储装置和至少一个其他存储装置。其中,第一存储装置中存储有第一数据,第二存储装置中存储有第二数据,第二数据为第一数据与至少一个第三数据的奇偶校验结果。主机用于触发第一指令和第二指令,第一指令携带关联标识,关联标识用于指示第二指令。第一存储装置用于获取第一指令和第四数据,在获取第一指令后对第一数据和第四数据进行异或操作得到第五数据,并向第二控制器发送数据报文,该数据报文包含第五数据和关联标识。第二存储装置用于获取第二指令和数据报文,并根据第二指令对第五数据和第二数据进行异或操作得到第六数据。
Description
技术领域
本申请涉及存储领域,尤其涉及一种数据保护的方法、装置和系统。
背景技术
随着存储技术的发展,尤其是在使用闪存(Flash)作为存储介质的固态硬盘(solid state drive,SSD)中,传统的机械硬盘设计的串行高级技术附件(serialadvanced technology attachment,SATA)接口与串行ATA高级主控接口/高级主机控制器接口(Serial ATA Advanced Host Controller Interface,AHCI)标准已经无法满足存储设备的要求,成为限制存储设备处理能力的一大瓶颈。非易失性高速传输总线(non-volatile memory express,NVMe)应运而生,NVMe是一种允许主机(Host)和非易失性存储(non-volatile memory,NVM)子系统通信的接口,NVM子系统(包括控制器和存储介质)通信的该接口以寄存器接口的方式附加到高速外围部件互连总线(Peripheral ComponentInterconnect express,PCIe)接口之上,为企业级和消费级固态存储做了优化具有性能高、访问时延低的优势。
现有技术中,一种数据保护的方式是将多个存储装置组整一个独立硬盘冗余阵列(Redundant Array of Independent Disks,RAID)。对于一个RAID分条,该多个存储装置中的一个存储装置存储其他存储装置中存储的属于该RAID分条的数据的奇偶校验结果。当其中一个存储装置中存储的属于该RAID分条的数据需要更新时,主机在更新奇偶校验结果时,需要从存储需要更新数据的存储装置中读取需要更新的旧数据,并从存储奇偶校验结果的存储装置中读取出旧的奇偶校验结果,对旧数据,新数据和该旧的奇偶校验结果进行异或操作得到新的奇偶校验结果,并将该新的奇偶校验结果存储于用于存储该RAID分条的奇偶校验结果的存储装置。
发明内容
本申请公开了一种数据保护方法、装置和系统。当需要对数据进行更新时,第一存储装置从主机侧获取到新数据后,会将新数据和旧数据进行异或操作,并主动向存储奇偶校验的第二存储装置推送旧数据和新数据的异或结果,第二存储装置在获取到该旧数据和新数据的异或结果后,直接对旧数据和新数据的异或结果与旧的奇偶校验结果进行异或操作,从而得到对奇偶校验结果进行更新。
第一方面,本申请公开了一种数据保护系统,该系统包括主机,第一存储装置,第二存储装置和至少一个其他存储装置。第一存储装置,第二存储装置和至少一个其他存储装置组成一个独立硬盘冗余阵列RAID。其中,第一存储装置中存储有第一数据,第二存储装置中存储有第二数据,该至少一个其他存储装置中存储有至少一个第三数据,第一数据与至少一个第三数据属于同一个RAID分条,第二数据为第一数据与至少一个第三数据的奇偶校验结果。第一存储装置包含第一控制器和存储介质,第二存储装置包含第二控制器和存储介质。主机用于向第一控制器触发第一指令和向第二控制器触发第二指令,第一指令携带关联标识,关联标识用于指示第二指令。第一控制器用于获取第一指令和第四数据,在获取第一指令后对第一数据和第四数据进行异或操作得到第五数据,并向第二控制器发送数据报文,该数据报文包含第五数据和关联标识,其中第四数据为第一数据的更新数据。第二控制器用于获取第二指令和数据报文,并根据第二指令对第五数据和第二数据进行异或操作得到第六数据。
其中,第一指令和/或第二指令可以为基于NVMe的提交队列条目(submissionqueue entry,SQE)。主机触发第一指令可以为将第一指令写入与第一控制器关联的提交队列(submission queue,SQ),并通过门铃机制通知第一控制器。同理,主机触发第二指令可以为主机将第二指令写入与第二控制器关联的SQ,并通过门铃机制通知第二控制器。主机也可以直接将第一指令发送至第一控制器,并将第二指令发送至第二控制器。第一控制器获取到第四数据后,对第一数据和第四数据进行异或操作得到第五数据,并主动向第二控制器发送该第五数据,并在数据报文中携带关联第五数据和第二指令的关联标识。第二指令接收到数据报文后,根据关联标识关联第二指令和第五数据,并根据第二指令对第五数据和第二数据进行异或操作得到新的奇偶校验结果第六数据。在有数据需要更新时,主机不再需要对存储装置进行多次读写操作,主机与第一存储装置和第二存储装置互联的交换网络的上行端口的数据流量大大较少。
根据第一方面,在第一方面的第一种可能的实现方式中,该数据报文为PCIe报文,关联标识包含第二控制器的PCIe地址字段。第一控制器可以通过PCIe报文的形式向第二控制器写入第五数据,关联标识指示的PCIe地址是写入第五数据的入口。第二控制器可以根据PCIe报文的地址确定与该第五数据关联的第二指令。
根据第一方面或第一方面第一种可能的实现方式,在第一方面第二种可能的实现方式中,第二控制器包含内部存储器,第二控制器对第五数据和第二数据进行异或操作之前,还用于将第五数据存入内部存储器的存储空间,并记录存储空间与关联标识之间的映射关系。本发明不限定第二控制器获取第二指令和第五数据的顺序,第二控制器可以首先接收到数据报文后,并将第五数据缓存在自己的内部存储器中,并记录第五数据的存储空间与关联标识的映射关系。
根据第一方面或第一方面以上任意种可能的实现方式,在第一方面第三种可能的实现方式中,第二控制器还用于根据关联标识确定第二指令的存储位置,第二控制器用于根据第二指令的存储位置获取第二指令。主机和第二控制器维护有关联标识与发送队列的槽位之间的对应关系,主机在触发第一指令和第二指令的时候,将第二指令存入关联标识对应的SQ槽位中,第二控制器获取到关联标识后,可以根据关联标识确定第二指令存储的SQ槽位,并从该SQ槽位中获取第二指令。
根据第一方面或第一方面以上任一种可能的实现方式,在第一方面第四种可能的实现方式中,关联标识包含第二指令的部分字段,第二控制器用于根据第二指令的部分字段获取第二指令。关联标识可以为第二指令的指示信息,第二控制器获取到关联标识后,可以根据该关联标识查询第二指令。
根据第一方面或第一方面以上任一种可能的实现方式,在第一方面第五种可能的实现方式中,第二控制器还用于触发完成消息,完成消息用于指示第二控制器完成对第五数据和第二数据的异或操作。主机还用于获取完成消息。
完成消息可以为触发完成队列条目(completion queue entry,CQE),CQE用于指示第二控制器完成第二指令指示的写操作。第二控制器触发完成消息可以具体为第二控制器完成写操作后,将CQE写入完成队列(completion queue,CQ),并通过中断通知主机。
第二方面,本发明提供了一种数据保护方法。数据保护系统包括主机,第一存储装置,第二存储装置和至少一个其他存储装置,第一存储装置,第二存储装置和至少一个其他存储装置组成一个独立硬盘冗余阵列RAID,第一存储装置中存储有第一数据,第二存储装置中存储有第二数据,至少一个其他存储装置中存储有至少一个第三数据,第一数据与至少一个第三数据属于同一个RAID分条,第二数据为第一数据与至少一个第三数据的奇偶校验结果,第一存储装置包含第一控制器和存储介质,第二存储装置包含第二控制器和存储介质。该方法包括:主机触发第一指令,第一指令携带关联标识,关联标识用于指示第二指令;第一指令用于指示第一控制器对第一数据和第四数据进行异或操作得到第五数据,并指示第一控制器向第二控制器发送数据报文,数据报文包含第五数据和关联标识,其中第四数据为第一数据的更新数据;主机触发第二指令,第二指令用于指示第二控制器对第五数据和第二数据进行异或操作得到第六数据。
根据第二方面,在第二方面的第一种可能的实现方式中,该方法还包括:主机获取第二控制器触发的完成消息,完成消息用于指示第二控制器完成对第五数据和第二数据的异或操作。
根据第二方面或第二方面第一种可能的实现方式,在第二方面第二种可能的实现方式中,数据报文为PCIe报文,关联标识包含第二控制器的PCIe地址字段。
根据第二方面或第二方面第一种可能的实现方式,在第二方面第三种可能的实现方式中,关联标识包含第二指令的部分字段。
根据第二方面或第二方面以上任一种可能的实现方式,在第二方面第四种可能的实现方式中,该第一指令和/或第二指令为基于非易失性高速传输总线NVMe的提交队列条目SQE。
第三方面,本申请提供了一种可读介质,包括执行指令,当计算设备的处理器执行该执行指令时,该计算设备执行以上第二方面或以上第二方面的任一种可能的实现方式中的方法。
第四方面,本申请提供了一种计算设备,包括:处理器、存储器和总线;存储器用于存储执行指令,处理器与存储器通过总线连接,当计算设备运行时,处理器执行存储器存储的执行指令,以使计算设备执行以上第二方面或以上第二方面的任一种可能的实现方式中的方法。
第五方面,本申请公开了一种数据保护方法。数据保护系统包括主机,第一存储装置,第二存储装置和至少一个其他存储装置,第一存储装置,第二存储装置和至少一个其他存储装置组成一个独立硬盘冗余阵列RAID,第一存储装置中存储有第一数据,第二存储装置中存储有第二数据,至少一个其他存储装置中存储有至少一个第三数据,第一数据与至少一个第三数据属于同一个RAID分条,第二数据为第一数据与至少一个第三数据的奇偶校验结果,第一存储装置包含第一控制器和存储介质,第二存储装置包含第二控制器和存储介质;该方法包括:第一控制器获取主机触发的第一指令和第四数据,第一指令携带关联标识,关联标识用于指示第二指令,第四数据为第一数据的更新数据;第一控制器在获取第一指令后对第一数据和第四数据进行异或操作得到第五数据;第一控制器并向第二控制器发送数据报文,数据报文包含第五数据和关联标识。
根据第五方面,在第五方面的第一种可能的实现方式中,该数据报文为PCIe报文,关联标识包含第二控制器的PCIe地址字段。
根据第五方面,在第五方面第二种可能的实现方式中,关联标识包含第二指令的部分字段。
第六方面,本申请提供了一种可读介质,包括执行指令,当计算设备的处理器执行该执行指令时,该计算设备执行以上第五方面或以上第五方面的任一种可能的实现方式中的方法。
第七方面,本申请提供了一种计算设备,包括:处理器、存储器和总线;存储器用于存储执行指令,处理器与存储器通过总线连接,当计算设备运行时,处理器执行存储器存储的执行指令,以使计算设备执行以上第五方面或以上第五方面的任一种可能的实现方式中的方法。
第八方面,本申请公开了一种数据保护方法。数据保护系统包括主机,第一存储装置,第二存储装置和至少一个其他存储装置,第一存储装置,第二存储装置和至少一个其他存储装置组成一个独立硬盘冗余阵列RAID,第一存储装置中存储有第一数据,第二存储装置中存储有第二数据,至少一个其他存储装置中存储有至少一个第三数据,第一数据与至少一个第三数据属于同一个RAID分条,第二数据为第一数据与至少一个第三数据的奇偶校验结果,第一存储装置包含第一控制器和存储介质,第二存储装置包含第二控制器和存储介质;该方法包括:第二控制器获取主机触发的操作指令;第二控制器接收第一控制器发送的数据报文,数据报文包含第五数据和关联标识,第五数据为第一数据和第四数据的异或结果,第四数据为第一数据的更新数据,关联标识用于指示操作指令;第二控制器根据第二指令对第五数据和第二数据进行异或操作得到第六数据。
根据第八方面,在第八方面的第一种可能的实现方式中,数据报文为PCIe报文,关联标识包含第二控制器的PCIe地址字段。
根据第八方面或第八方面第一种可能的实现方式,在第八方面第二种可能的实现方式中,第二控制器包含内部存储器,第二控制器对第五数据和第二数据进行异或操作之前,该方法还包括:第二控制器将第五数据存入内部存储器的存储空间,并记录存储空间与关联标识之间的映射关系。
根据第八方面或第八方面以上任意种可能的实现方式,在第八方面第三种可能的实现方式中,该方法还包括:第二控制器根据关联标识确定操作指令的存储位置;第二控制器获取操作指令包括:第二控制器根据操作指令的存储位置获取操作指令。
根据第八方面或第八方面以上任一种可能的实现方式,在第八方面第四种可能的实现方式中,关联标识包含操作指令的部分字段;第二控制器获取操作指令包括:第二控制器根据操作指令的部分字段获取操作指令。
根据第八方面或第八方面以上任一种可能的实现方式,在第八方面第五种可能的实现方式中,该方法还包括:第二控制器触发完成消息,完成消息用于指示第二控制器完成对第五数据和第二数据的异或操作。
根据第八方面或第八方面以上任一种可能的实现方式,在第八方面第六种可能的实现方式中,该第一指令和/或第二指令为基于非易失性高速传输总线NVMe的提交队列条目SQE。
第八方面为第一方面系统对应的第二控制器侧的方法实现方式,第一方面或第一方面任一种可能的实现方式中的描述对应适用于第八方面或第八方面任一种可能的实现方式,在此不再赘述。
第九方面,本申请提供了一种可读介质,包括执行指令,当计算设备的处理器执行该执行指令时,该计算设备执行以上第八方面或以上第八方面的任一种可能的实现方式中的方法。
第十方面,本申请提供了一种计算设备,包括:处理器、存储器和总线;存储器用于存储执行指令,处理器与存储器通过总线连接,当计算设备运行时,处理器执行存储器存储的执行指令,以使计算设备执行以上第八方面或以上第八方面的任一种可能的实现方式中的方法。
第十一方面,本申请公开了一种数据保护装置。数据保护系统包括数据保护装置,第一存储装置,第二存储装置和至少一个其他存储装置,第一存储装置,第二存储装置和至少一个其他存储装置组成一个独立硬盘冗余阵列RAID,第一存储装置中存储有第一数据,第二存储装置中存储有第二数据,至少一个其他存储装置中存储有至少一个第三数据,第一数据与至少一个第三数据属于同一个RAID分条,第二数据为第一数据与至少一个第三数据的奇偶校验结果,第一存储装置包含第一控制器和存储介质,第二存储装置包含第二控制器和存储介质;该数据保护装置包括:处理单元,用于触发第一指令,第一指令携带关联标识,关联标识用于指示第二指令;第一指令用于指示第一控制器对第一数据和第四数据进行异或操作得到第五数据,并指示第一控制器向第二控制器发送数据报文,数据报文包含第五数据和关联标识,其中第四数据为第一数据的更新数据;处理单元还用于触发第二指令,第二指令用于指示第二控制器对第五数据和第二数据进行异或操作得到第六数据。
根据第十一方面,在第十一方面的第一种可能的实现方式中,该备份装置还包括获取单元,获取单元,用于获取第二控制器触发的完成消息,完成消息用于指示第二控制器完成对第五数据和第二数据的异或操作。
根据第十一方面或第十一方面第一种可能的实现方式,在第十一方面第二种可能的实现方式中,数据报文为PCIe报文,关联标识包含第二控制器的PCIe地址字段。
根据第十一方面或第十一方面第一种可能的实现方式,在第十一方面第三种可能的实现方式中,关联标识包含第二指令的部分字段。
根据第十一方面或第十一方面以上任一种可能的实现方式,在第十一方面第四种可能的实现方式中,该第一指令和/或第二指令为基于非易失性高速传输总线NVMe的提交队列条目SQE。
第十一方面为第一方面系统对应的主机侧的装置实现方式,第一方面或第一方面任一种可能的实现方式中的描述对应适用于第十一方面或第十一方面任一种可能的实现方式,在此不再赘述。
第十二方面,本申请公开了一种数据保护装置。数据保护系统包括主机,第一存储装置,第二存储装置和至少一个其他存储装置,第一存储装置,第二存储装置和至少一个其他存储装置组成一个独立硬盘冗余阵列RAID,第一存储装置中存储有第一数据,第二存储装置中存储有第二数据,至少一个其他存储装置中存储有至少一个第三数据,第一数据与至少一个第三数据属于同一个RAID分条,第二数据为第一数据与至少一个第三数据的奇偶校验结果,第一存储装置包含数据保护装置和存储介质,第二存储装置包含控制器和存储介质;该数据保护装置包括:处理单元,用于获取主机触发的第一指令和第四数据,第一指令携带关联标识,关联标识用于指示第二指令,并在获取第一指令后对第一数据和第四数据进行异或操作得到第五数据,其中第四数据为第一数据的更新数据;发送单元,用于向控制器发送数据报文,数据报文包含第五数据和关联标识。
根据第十二方面,在第十二方面的第一种可能的实现方式中,数据报文为PCIe报文,关联标识包含控制器的PCIe地址字段。
根据第十二方面,在第十二方面第二种可能的实现方式中,关联标识包含第二指令的部分字段。
第十二方面为第一方面系统对应的第一控制器侧的装置实现方式,第一方面或第一方面任一种可能的实现方式中的描述对应适用于第十二方面或第十二方面任一种可能的实现方式,在此不再赘述。
第十三方面,本申请公开了一种数据保护装置。数据保护系统包括主机,第一存储装置,第二存储装置和至少一个其他存储装置,第一存储装置,第二存储装置和至少一个其他存储装置组成一个独立硬盘冗余阵列RAID,第一存储装置中存储有第一数据,第二存储装置中存储有第二数据,至少一个其他存储装置中存储有至少一个第三数据,第一数据与至少一个第三数据属于同一个RAID分条,第二数据为第一数据与至少一个第三数据的奇偶校验结果,第一存储装置包含控制器和存储介质,第二存储装置包含数据保护装置和存储介质;该数据保护装置包括:获取单元,用于获取主机触发的操作指令,并接收控制器发送的数据报文,数据报文包含第五数据和关联标识,第五数据为第一数据和第四数据的异或结果,第四数据为第一数据的更新数据,关联标识用于指示操作指令;处理单元,用于根据第二指令对第五数据和第二数据进行异或操作得到第六数据。
根据第十三方面,在第十三方面的第一种可能的实现方式中,数据报文为PCIe报文,关联标识包含数据保护装置的PCIe地址字段。
根据第十三方面或第十三方面第一种可能的实现方式,在第十三方面第二种可能的实现方式中,该数据保护装置还包含内部存储器,处理单元对第五数据和第二数据进行异或操作之前,还用于将第五数据存入内部存储器的存储空间,并记录存储空间与关联标识之间的映射关系。
根据第十三方面或第十三方面以上任意种可能的实现方式,在第十三方面第三种可能的实现方式中,获取单元还用于根据关联标识确定操作指令的存储位置,并根据操作指令的存储位置获取操作指令。
根据第十三方面或第十三方面以上任一种可能的实现方式,在第十三方面第四种可能的实现方式中,关联标识包含操作指令的部分字段;获取单元用于根据操作指令的部分字段获取操作指令。
根据第十三方面或第十三方面以上任一种可能的实现方式,在第十三方面第五种可能的实现方式中,处理单元还用于触发完成消息,完成消息用于指示数据保护装置完成对第五数据和第二数据的异或操作。
根据第十三方面或第十三方面以上任一种可能的实现方式,在第十三方面第六种可能的实现方式中,该第一指令和/或第二指令为基于非易失性高速传输总线NVMe的提交队列条目SQE。
第十三方面为第一方面系统对应的第二控制器侧的装置实现方式,第一方面或第一方面任一种可能的实现方式中的描述对应适用于第十三方面或第十三方面任一种可能的实现方式,在此不再赘述。
根据本发明实施例公开的技术方案,主机向第一控制器触发第一指令,并向第二控制器触发第二指令。其中,主机向第一控制器触发的第一指令中携带有指示第二指令的关联标识。第一控制器获取到新数据第四数据后,对新数据第四数据和旧数据第一数据进行异或操作得到第五数据,主动向第二控制器发送数据报文,数据报文中携带第五数据和该关联标识。第二控制器获取到数据报文后,根据关联标识关联第二指令和第五数据,并根据第二指令对第五数据和旧的奇偶校验结果第二数据进行异或操作得到新的奇偶校验结果第六数据。从而避免了数据更新过程中主机多次对存储装置进行读写操作。主机与第一存储装置和第二存储装置互联的交换网络的上行端口的数据流量大大减少,从而提升了系统的总体性能。
附图说明
图1为依据本申请一实施例的NVMe系统的逻辑结构示意图;
图2为一种基于NVMe的数据保护方法的流程示意图;
图3为依据本申请一实施例的数据保护方法的流程示意图;
图4为依据本申请一实施例的主机的硬件结构示意图;
图5为依据本申请一实施例的控制器的硬件结构示意图;
图6为依据本申请一实施例的控制器的硬件结构示意图;
图7为依据本申请一实施例的数据保护方法的流程示意图;
图8为依据本发明一实施例的入口组织结构示意图;
图9为依据本发明一实施例的PCIe地址结构示意图;
图10为依据本发明一实施例的数据存储结构示意图;
图11为依据本申请一实施例的数据保护装置的逻辑结构示意图;
图12为依据本申请一实施例的数据保护装置的逻辑结构示意图;
图13为依据本申请一实施例的数据保护装置的逻辑结构示意图。
具体实施方式
下面将结合附图,对本发明实施例进行描述。
本发明实施例采用术语第一和第二等来区分各个对象,例如第一指令和第二指令等,但各个“第一”和“第二”之间不具有逻辑或时序上的依赖关系。
在本发明实施例中,“数据报文”是指第一存储装置向第二存储装置发送的携带载荷数据和关联标识的数据报文。
在本发明实施例中,推送一词是指第一存储装置向第二存储装置主动发送数据报文。
在本发明实施例中,入口为第二存储装置向第一存储装置开放的地址空间,入口地址可以具体为PCIe地址,数据报文可以为PCIe写报文。更具体的,入口可以为第二存储装置的控制器向第一存储装置的控制器开放的地址空间,第一存储装置的控制器可以根据该地址空间向第二存储装置的控制器推送数据。
在本发明实施例中,第一存储装置可以通过入口向第二存储装置推送数据报文,数据报文中可以携带该入口地址。第二存储装置接收到数据报文后,识别入口地址,可以在本地的内部存储器中为该入口分配对应的存储空间,并将数据报文携带的载荷数据缓存至该存储空间,而不是将载荷数据存入入口地址指示的存储空间。内部存储器可以具体为控制器的私有内存空间。
在本发明实施例中,数据报文中携带的关联标识用于指示操作指令。关联标识可以包含入口地址或者入口地址的部分字段。
在本发明实施例中,存储装置包含控制器和存储介质,存储控制器以下简称控制器。存储装置的执行主体一般是控制器。例如,第一存储装置包含第一控制器和存储介质,第二存储装置包含第二控制器和存储介质。第一存储装置与外界交互的主体是第一控制器,第二存储装置与外界的交互主体是第二控制器。在以下描述中,在于外界交互时,本发明实施例不对存储装置和控制器进行区分。
在本发明实施例中,主机触发的指令的具体实现方式可以为SQE。
在本发明实施例中,主机通过交换网络与第一存储装置和第二存储装置互联。交换网络的上行端口是指交换网络与主机互联的端口。交换网络的上行流量是指与主机之间交互的数据流量。
在本发明实施例中,主机一词是指可以存储装置进行交互,并向存储装置存储数据的主体。主机可以是一个实体计算机,虚拟机或者网卡等。本发明实施例不限定主机的具体实现形式。
图1为依据本发明一实施例的基于NVMe的数据保护系统100的架构图,如图1所示,系统100包含主机101,交换网络102,第一存储装置103,第二存储装置105和至少一个其他存储装置107。第一存储装置103,第二存储装置105和至少一个其他存储装置107组成一个独立硬盘冗余阵列RAID。其中,第一存储装置103中存储有第一数据,第二存储装置105中存储有第二数据,至少一个其他存储装置107中存储有至少一个第三数据,第一数据与至少一个第三数据属于同一个RAID分条,第二数据为第一数据与至少一个第三数据的奇偶校验结果。如图1所示,第一存储装置103包含第一控制器104和存储介质,第二存储装置105包含第二控制器106和存储介质。第二存储装置105为第一存储装置103的备份。
本发明实施例中,一组具有RAID校验关系的数据分散存储在多个存储装置中,这多个存储装置即属于一个RAID组。
在本发明实施例中,存储介质一般为非易失存储介质,用于永久存储数据。存储介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如光盘)、或者半导体介质(例如闪存(Flash)等,本发明实施例不限定存储介质的具体实现形式。在一些实施例中,存储介质还可能进一步包括与控制器分离的远程存储器,例如通过网络与控制器互联的存储介质。
在本发明实施例中,交换网络102可以用于指代主机101,第一存储装置103以及第二存储装置105互联的任意方式或互联协议等。例如,交换网络102可以为PCIe总线,其中PCIe总线可以包含PCIe交换机,该PCIe交换机与主机101互联。交换网络102还可以为计算机设备内部互联总线,因特网,内联网(intranet),局域网(local area network,LAN),广域网络(wide area network,WAN),存储区域网络(storage area network,SAN)等,或者以上网络的任意组合。本发明实施例不限定交换网络102的具体实现形式。
如图2所示,在传统保护方法中,当第一存储装置103中存储的第一数据需要更新时,主机101也需要更新第二存储装置105中存储的奇偶校验结果第二数据。数据更新的流程为主机101首先从第一存储装置103中读取出第一数据dold,然后与新数据第四数据dnew进行异或得到第五数据,然后从第二存储装置105中读取第二数据Pold,并将Pold与dold和dnew的异或结果第五数据再次进行异或从而得到新的奇偶校验结果第六数据Pnew。随后主机101将新数据dnew存入第一存储装置103,并将新的奇偶校验结果Pnew存入第二存储装置105。在进行数据存储时,需要向第一存储装置103和第二存储装置105分别触发相同的写指令。由以上流程可知,在需要数据更新时,主机101至少需要两次读操作和两次写操作。
在本发明实施例中,如图3所示,当第一存储装置103中存储的第一数据dold需要更新时,主机101通过写操作将新数据第四数据dnew写入第一存储装置103。第一存储装置103对第一数据dold和第四数据dold进行异或得到第五数据,然后第一存储装置103主动将第五数据发送至第二存储装置105,第二存储装置105将第五数据与旧的奇偶校验结果第二数据Pold进行异或操作,得到新的奇偶校验结果Pnew。由以上流程可知,在本发明实施例中,当有数据需要更新时,主机101主需要进行一次写操作。本发明实施例通过第一存储装置103完成新旧数据的异或操作,并主动向第二存储装置105推送新旧数据的异或结果第五数据,从而避免了主机101对存储装置的读写操作,减少了第一存储装置103,第二存储装置105与主机101互联的交换网络102的上行端口的流量,提升了系统的总体性能。
图4为依据本申请一实施例的主机400的结构示意图。在本发明实施例中,数据保护系统包括主机400,第一存储装置,第二存储装置和至少一个其他存储装置。第一存储装置,第二存储装置和至少一个其他存储装置组成一个独立硬盘冗余阵列RAID。第一存储装置中存储有第一数据,第二存储装置中存储有第二数据,该至少一个其他存储装置中存储有至少一个第三数据。第一数据与至少一个第三数据属于同一个RAID分条(stripe),第一数据、第二数据和第三数据均是分条中的一个分条(strip)。第二数据为第一数据与至少一个第三数据的奇偶校验结果。第一存储装置包含第一控制器和存储介质,第二存储装置包含第二控制器和存储介质。
如图4所示,主机400包括处理器401,处理器401与系统内存402连接。处理器301可以为中央处理器(CPU),图像处理器(graphics processing unit,GPU),现场可编程门阵列(Field Programmable Gate Array,FPGA),专用集成电路(Application SpecificIntegrated Circuit,ASIC)或数字信号处理器(digital signal processor,DSP)等计算逻辑或以上任意计算逻辑的组合。处理器301可以为单核处理器或多核处理器。
在本申请的一个实施例中,处理器401还可以包括保护逻辑410,保护逻辑410可以为具体的硬件电路或集成在处理器401中的固件模块。如果保护逻辑410为具体的硬件电路,则保护逻辑410执行本申请实施例的方法,如果保护逻辑410为固件模块,则处理器410执行保护逻辑410中的固件代码来实现本申请实施例的技术方案。保护逻辑410包括:(1)用于触发第一指令的逻辑(电路/固件代码),第一指令携带关联标识,该关联标识用于指示第二指令,该第一指令用于指示第一控制器对第一数据和第四数据进行异或操作得到第五数据,并指示第一控制器向第二控制器发送数据报文,数据报文包含第五数据和关联标识,其中第四数据为第一数据的更新数据;(2)用于触发第二指令的代码的逻辑(电路/固件代码),第二指令用于指示第二控制器对第五数据和第二数据进行异或操作得到第六数据。
总线409用于在主机400的各部件之间传递信息,总线409可以使用有线的连接方式或采用无线的连接方式,本申请并不对此进行限定。总线409还连接有输入/输出接口405和通信接口403。
输入/输出接口405连接有输入/输出设备,用于接收输入的信息,输出操作结果。输入/输出设备可以为鼠标、键盘、显示器、或者光驱等。
通信接口403用来实现与其他设备或网络之间的通信,通信接口403可以通过有线或者无线的形式与其他设备或网络互联。例如,主机400可以通过通信接口403与交换网络互联,并通过交换网络连接控制器。
本申请实施例的一些特征可以由处理器401执行系统内存402中的软件代码来完成/支持。系统内存402可以包括一些软件,例如,操作系统408(例如Darwin、RTXC、LINUX、UNIX、OS X、WINDOWS或嵌入式操作系统(例如Vxworks)),应用程序407,和保护模块406等。
在本申请的一个实施例中,处理器401执行保护模块406来实现本申请实施例的技术方案。保护模块406包括:(1)用于触发第一指令的代码,第一指令携带关联标识,该关联标识用于指示第二指令,该第一指令用于指示第一控制器对第一数据和第四数据进行异或操作得到第五数据,并指示第一控制器向第二控制器发送数据报文,数据报文包含第五数据和关联标识,其中第四数据为第一数据的更新数据;(2)用于触发第二指令的代码,第二指令用于指示第二控制器对第五数据和第二数据进行异或操作得到第六数据。
此外,图4仅仅是一个主机400的例子,主机400可能包含相比于图4展示的更多或者更少的组件,或者有不同的组件配置方式。同时,图4中展示的各种组件可以用硬件、软件或者硬件与软件的结合方式实施。
图5为依据本申请一实施例的控制器500的结构示意图。在本发明实施例中,数据保护系统包括主机,第一存储装置,第二存储装置和至少一个其他存储装置,第一存储装置,第二存储装置和至少一个其他存储装置组成一个独立硬盘冗余阵列RAID,第一存储装置中存储有第一数据,第二存储装置中存储有第二数据,至少一个其他存储装置中存储有至少一个第三数据,第一数据与至少一个第三数据属于同一个RAID分条,第二数据为第一数据与至少一个第三数据的奇偶校验结果,第一存储装置包含第一控制器和存储介质,第二存储装置包含第二控制器和存储介质。
如图5所示,控制器500包括处理器501,处理器501与系统内存502连接。处理器401可以CPU,GPU,FPGA,ASIC或DSP等计算逻辑或以上任意计算逻辑的组合。处理器401可以为单核处理器或多核处理器。
在本申请的一个实施例中,处理器501还可以包括保护逻辑505,保护逻辑505可以为具体的硬件电路或集成在处理器501中的固件模块。如果保护逻辑505为具体的硬件电路,则保护逻辑505执行本申请实施例的方法,如果保护逻辑505为固件模块,则处理器501执行保护逻辑505中的固件代码来实现本申请实施例的技术方案。保护逻辑505包括:(1)用于获取主机触发的第一指令和第四数据的逻辑(电路/固件代码),第一指令携带关联标识,关联标识用于指示第二指令,第四数据为第一数据的更新数据;(2)用于在获取第一指令后对第一数据和第四数据进行异或操作得到第五数据的逻辑(电路/固件代码);(3)用于向第二存储装置发送数据报文的逻辑(电路/固件代码),数据报文包含第五数据和关联标识。
总线507用于在控制器500的各部件之间传递信息,总线507可以使用有线的连接方式或采用无线的连接方式,本申请并不对此进行限定。总线507还可以连接有通信接口503。
通信接口503用来实现与其他设备或网络之间的通信,通信接口503可以通过有线或者无线的形式与其他设备或网络互联。例如,控制器500通过通信接口503与交换网络和存储介质互联。
本申请实施例的一些特征可以由处理器501执行系统内存502中的软件代码来完成/支持。系统内存502可以包括一些软件,例如,操作系统504(例如Darwin、RTXC、LINUX、UNIX、OS X、WINDOWS、macOS或嵌入式操作系统(例如Vxworks))和保护模块506等。
在本申请的一个实施例中,处理器501执行保护模块506来实现本申请实施例的技术方案。保护模块506包括:(1)用于获取主机触发的第一指令和第四数据的代码,该第一指令携带关联标识,关联标识用于指示第二指令,第四数据为第一数据的更新数据;(2)用于在获取第一指令后对第一数据和第四数据进行异或操作得到第五数据的代码;(3)用于向第二存储装置发送数据报文的代码,该数据报文包含第五数据和关联标识。
此外,图5仅仅是一个控制器500的例子,控制器500可能包含相比于图5展示的更多或者更少的组件,或者有不同的组件配置方式。同时,图5中展示的各种组件可以用硬件、软件或者硬件与软件的结合方式实施。
图6为依据本申请一实施例的控制器600的结构示意图。在本发明实施例中,数据保护系统包括主机,第一存储装置,第二存储装置和至少一个其他存储装置,第一存储装置,第二存储装置和至少一个其他存储装置组成一个独立硬盘冗余阵列RAID,第一存储装置中存储有第一数据,第二存储装置中存储有第二数据,至少一个其他存储装置中存储有至少一个第三数据,第一数据与该至少一个第三数据属于同一个RAID分条,第二数据为第一数据与该至少一个第三数据的奇偶校验结果,第二数据与第一数据属于同一个RAID分条,第一存储装置包含第一控制器和存储介质,第二存储装置包含第二控制器和存储介质。
如图6所示,控制器600包括处理器601,处理器601与系统内存602连接。处理器401可以CPU,GPU,FPGA,ASIC或DSP等计算逻辑或以上任意计算逻辑的组合。处理器401可以为单核处理器或多核处理器。
在本发明实施例中,处理器601内部还可以包含寄存器,该寄存器可以开放给其他存储装置的控制器访问。更具体的,该寄存器可以作为PCIe地址空间开放给其他存储装置的控制器,供其他存储装置的控制器通过PCIe地址进行访问。
在本申请的一个实施例中,处理器601还可以包括保护逻辑605,保护逻辑605可以为具体的硬件电路或集成在处理器601中的固件模块。如果保护逻辑605为具体的硬件电路,则保护逻辑605执行本申请实施例的方法,如果保护逻辑605为固件模块,则处理器601执行保护逻辑605中的固件代码来实现本申请实施例的技术方案。保护逻辑605包括:(1)用于获取主机触发的操作指令的逻辑(电路/固件代码);(2)用于接收第一存储装置发送的数据报文的逻辑(电路/固件代码),数据报文包含第五数据和关联标识,第五数据为第一数据和第四数据的异或结果,第四数据为第一数据的更新数据,关联标识用于指示操作指令;(3)用于根据第二指令对第五数据和第二数据进行异或操作得到第六数据的逻辑(电路/固件代码)。
总线607用于在控制器600的各部件之间传递信息,总线607可以使用有线的连接方式或采用无线的连接方式,本申请并不对此进行限定。总线607还可以连接有通信接口603。
通信接口603用来实现与其他设备或网络之间的通信,通信接口603可以通过有线或者无线的形式与其他设备或网络互联。例如,控制器600通过通信接口603与主机和存储介质互联,控制器600也可以通过通信接口603连接网络,并通过网络与主机或存储介质互联。
本申请实施例的一些特征可以由处理器601执行系统内存602中的软件代码来完成/支持。系统内存602可以包括一些软件,例如,操作系统604(例如Darwin、RTXC、LINUX、UNIX、OS X、WINDOWS、macOS或嵌入式操作系统(例如Vxworks))和保护模块606等。
在本申请的一个实施例中,处理器601执行保护模块606来实现本申请实施例的技术方案。保护模块606包括:(1)用于获取主机触发的操作指令的代码;(2)用于接收第一存储装置发送的数据报文的代码,数据报文包含第五数据和关联标识,第五数据为第一数据和第四数据的异或结果,第四数据为第一数据的更新数据,关联标识用于指示操作指令;(3)用于根据第二指令对第五数据和第二数据进行异或操作得到第六数据的代码。
此外,图6仅仅是一个控制器600的例子,控制器600可能包含相比于图6展示的更多或者更少的组件,或者有不同的组件配置方式。同时,图6中展示的各种组件可以用硬件、软件或者硬件与软件的结合方式实施。
为了减少数据更新过程中主机对存储设备的读写操作,从而减少数据更新过程中对交换网络的上行端口的带宽的占用,本发明实施例提供了一种数据保护方法。该方法可以具体为基于NVMe的数据保护方法。数据保护系统包括主机,第一存储装置,第二存储装置和至少一个其他存储装置,第一存储装置,第二存储装置和至少一个其他存储装置组成一个独立硬盘冗余阵列RAID,第一存储装置中存储有第一数据,第二存储装置中存储有第二数据,至少一个其他存储装置中存储有至少一个第三数据,第一数据与至少一个第三数据属于同一个RAID分条,第二数据为第一数据与至少一个第三数据的奇偶校验结果,第一存储装置包含第一控制器和存储介质,第二存储装置包含第二控制器和存储介质。如图7所示,方法700包括:
步骤701:主机触发第一指令。例如:所述第一指令由主机生成,主机发送第一指令给第一控制器;或者所述第一指令由主机生成,主机把第一指令加入队列,供第一控制器读取,本实施例用后一种情况为例进行介绍。
其中,第一指令携带关联标识,该关联标识用于指示第二指令。
在本发明实施例中,第一指令可以具体为基于NVMe的SQE。在以下描述中,以第一指令为SQE为例进行解释说明。但应理解,本发明实施例并不限定第一指令的具体实现形式。
在本发明实施例中,主机向触发第一指令的流程可以参照NMVe标准。主机将SQE写入与第一控制器关联的发送队列,并通过门铃通知第一控制器有新的SQE。
在本发明实施例中,主机触发第一指令也可以为其他实现形式。例如,主机可以将第一指令直接发送至第一控制器。本发明不限定主机触发第一指令的具体实现形式。
步骤702:主机触发第二指令。例如:所述第二指令由主机生成,主机发送第二指令给第二控制器;或者所述第二指令由主机生成,主机把第二指令加入队列,供第二控制器读取,本实施例用后一种情况为例进行介绍。
同理,第二指令可以为基于NVMe的SQE。在以下描述中,以第二指令为SQE为例进行解释说明。但应理解,本发明实施例不限定第二指令的具体实现形式。
在本发明实施例中,主机触发第二指令可以为主机将第二指令写入与第二控制器关联的发送队列,并通过门铃通知第二控制器有新的SQE。主机触发第二指令也可以为其他实现形式。例如,主机可以将第二指令直接发送至第二控制器。本发明不限定主机触发第二指令的具体实现形式。
步骤703:第一控制器获取第一指令。
在本发明实施例中,第一控制器可以从与主机关联的发送队列里获取第一指令。具体的,第一控制器接收到主机的门铃通知,该门铃用于指示有新的SQE到达发送队列,第一控制器去发送队列中获取该SQE。第一控制器也可以直接接收主机发送的第一指令。本发明实施例不限定第一控制器获取第一指令的具体实现形式。
步骤704:第一控制器获取第四数据。
其中,第四数据为第一数据的更新数据。即第四数据将替换第一数据存储于第一存储装置。本发明实施例中,第一指令的格式可以参照NVMe标准,主机可以在第一指令中通过SQE的PRP或SGL字段指示第四数据的地址信息。第一控制器根据该地址信息从主机侧读取第四数据。
在本发明实施例中,主机也可以直接向第一控制器发送第四数据,第一控制器从主机直接接收第四数据。本发明实施例不限定第一控制器获取第四数据的具体实现形式。
第一控制器获取到第四数据后,将第四数据存入第一存储装置的存储介质。
步骤705:第一控制器在获取第一指令后对第一数据和第四数据进行异或操作,得到第五数据。
在本发明实施例中,第一数据为存储于第一存储装置中的旧数据dold,第四数据为第一数据的更新数据dnew,第二数据为存储于第二存储装置中的旧的奇偶校验结果Pold。在新的奇偶校验结果Pnew的计算方式如下所示:
第一控制器首先计算第一数据与第四数据的异或结果。
步骤706:第一控制器向第二控制器发送数据报文。
其中,该数据报文中包含第五数据和该关联标识。在具体实现过程中,因为数据报文携带的载荷数据的大小受限,第一控制器可以将第五数据分为多个数据报文发送至第二控制器。
在本发明实施例中,第一控制器可以主动向第二控制器推送该数据报文。其中,数据报文携带的关联标识用于关联第五数据和第二指令。本发明实施例不限定关联标识的具体实现方式,关联标识可以直接或间接的指示数据报文中携带的第五数据对应的第二指令。
在本发明实施例中,数据报文可以为PCIe写操作报文,更具体的,数据报文可以是事务层包(TLP),载荷数据可以为TLP中携带的负荷(payload),该关联标识可以为TLP的PCIe地址或者PCIe地址的部分字段。
在本发明实施例中,第二控制器将其一部分地址空间开放给第一控制器。更具体的,第二控制器给第一控制器开放的地址空间可以作为第二控制器的PCIe地址空间。第一控制器可以访问该PCIe地址访问。例如,第二控制器可以将基地址寄存器的一部分PCIe地址开放给第一控制器访问。
在以下描述中,以基地址寄存器举例说明,但应理解本发明实施例不限定第二控制器开放给第一控制器访问的地址空间的种类和形式。
在本发明实施例中,第二控制器可以讲一部分基地址寄存器的PCIe地址组织成入口(portal)的形式,每一个入口占据该基地址寄存器的一部分PCIe地址空间。第一控制器可以通过入口向第二控制器写入数据报文。入口即第一控制器向第二控制器进行PCIe写操作的数据入口,在下面的描述中,会对入口的功能进行更详细的描述。
在本发明实施例中,第一控制器向第二控制器推送的数据报文可以为PCIe报文,第一控制器通过将与第二指令关联的第五数据通过入口写入到第二控制器,PCIe报文的地址段指示该写操作对应的入口,即入口地址为数据报文中PCIe地址或者PCIe地址的部分字段。
在本发明实施例中,关联标识可以为入口地址或者入口地址的部分字段。第二控制器接收到数据报文后,还用于根据关联标识确定第二指令的存储地址,并根据第二指令的存储地址获取第二指令。存储第二指令的地址可以为提交队列中存储第二指令的槽位地址。
在本发明实施例中,主机和第二控制器维护有入口与发送队列中槽位的对应关系。主机在触发第一指令和第二指令的时候,将第二指令存入关联标识指示的入口对应的发送队列的槽位,并在第一指令中携带该关联标识。第一控制器根据该关联标识向第二控制器发送数据报文,数据报文中携带该关联标识。第二控制器获取到数据报文后,根据关联标识确定与主机关联的发送队列中存储第二地址的槽位,并从该槽位中获取第五数据关联的第二指令。
本发明不限定PCIe地址空间里的入口的组织方式,只需要保证在数据保护操作的过程中,每个入口和具体的第二指令唯一对应,每个入口唯一地关联到具体的第二指令。例如,可以将第二控制器的基地址寄存器的一部分PCIe地址组织成通孔(aperture)的形式,每一个通孔中包含多个入口,即入口可以组织成数组的形式,通过数组基地址加入口偏移量寻址到入口,这个数组称为通孔。每一个入口关联发送队列的一个槽位。图8为基地址寄存器的结构示意图,如图8所示,每个通孔由一组入口PO~PN组成。
图9为依据本发明一实施例的PCIe数据报文中的PCIe地址结构。如图9所示,PCIe地址结构中包含BAR的基地址、通孔偏移量以及入口偏移量。其中,BAR和通孔偏移量用于唯一的确定通孔,入口偏移量用于指示该通孔中具体的入口。在本发明实施例中,第五数据由第一控制器通过PCIe BAR空间的通孔“推送”到第二控制器。“推送”指的是第一控制器发起的PCIe写事务。
在本发明实施例中,入口还可以任意分布在PCIe地址空间,在PCIe空间中任意分布的入口称为任意的“数据入口”。
在本发明实施例中,关联标识为入口地址或者入口地址的部分字段。主机和第二控制器维护有入口与SQ中槽位的对应关系,SQ槽位与入口一一对应。主机通过入口与SQ槽位的对应关系触发第一指令和第二指令。第二控制器根据SQ槽位与入口的对应关系,可以根据数据报文中的关联标识获取到对应的第二指令。本发明实施例使用存储第二指令的SQ槽位将入口与第二指令关联起来,通过SQ槽位确定入口对应的第二指令。
在本发明实施例的其他实现方式中,关联标识还可以为第二指令的指示信息。例如,关联标识还可以包含第二指令的部分字段,第二控制器根据关联标识获取第二指令。具体的,第二指令可以为SQE,关联标识为SQE的指示信息,用于唯一的确定一个SQE。
在本发明实施例中,通过在数据报文中携带SQE的指示信息,从而直接实现SQE与第五数据的关联,而不是通过SQ槽位实现间接的关联。例如,如果一个SQ中的每个SQE有各自独特的命令标识CID,则关联标识可以由“队列ID+CID”组成。如果每个SQE的CID都是唯一的,则关联标识可以为对应SQE携带的CID。在其他实现方式中,关联标识还可以为CID的一部分。在本发明实施例中,关联标识还可以使用特别定义的SGL类型或者SGL子类型或者SQE中其他字段指定,只要第二控制器可以根据关联标识唯一的确定第二指令,本发明实施例不限定关联标识的具体实现方式。
在本发明实施例中,第一指令用于指示第一控制器对第一数据和第四数据进行异或操作,并指示第一控制器将第一数据和第四数据的异或操作结果第五数据和该关联标识发送至第二控制器。
步骤707:第二控制器获取第二指令。
本发明实施例中,第二控制器可以从与主机关联的发送队列里获取该第二指令。更具体的,第二控制器接收到主机的门铃通知,该门铃用于指示有新的SQE到达发送队列,控制器在接收到主机的门铃后,去发送队列获取该第二指令。第二控制器也可以直接接收主机发送的第二指令。本发明实施例不限定第二控制器获取第二指令的具体实现形式。
本发明实施例中,第二指令的格式可以参照NVMe标准,但本发明实施例通过关联标识关联第二指令,且第五数据由第一控制器主动推送至第二控制器。第二指令不再需要第二控制器主动通过PCIe读操作去主机获取数据,所以第二指令中不需要再通过SGL域或者PRP域携带数据的地址信息。在具体实现中,第二指令的SGL域或者PRP域中可以不携带其他信息,第二控制器对SGL域或者PRP域的处理方法可以为“忽略”,即本发明实施例可以省略SGL或者PRP。
在本发明实施例中,关联标识可以为入口地址或者入口地址的部分字段。第二控制器维护有入口与发送队列中槽位的对应关系。第二控制器接收到数据报文后,还用于根据关联标识确定第二指令的存储地址,并根据第二指令的存储地址获取第二指令。
在本发明实施例中,关联标识还可以为第二指令的指示信息。例如,关联标识还可以包含第二指令的部分字段。第二控制器还可以根据该关联标识在发送队列中查找该关联标识指示的第二指令。
步骤708:第二控制器获取待第五数据。
在本发明实施例中,数据报文中携带第五数据。数据报文中携带的地址信息指示第二控制器的一个入口,第二控制器的入口用于接收数据报文,是第一控制器向第二控制器发送数据报文的入口。第二控制器接收到数据报文后,用于第五数据的存储空间可以是第二控制器的内部存储器,而不是将第五数据存入入口地址指示的存储空间。
具体的,第二控制器可以为每个入口在自己的内部存储器中分配具体的存储块,用于存储该入口接收到的第五数据。为了便于数据管理和查询,第二控制器可以建立存储块与入口的映射关系。第二控制器用于存储数据的内部存储器可以不再通过PCIe寻址的方式供外界访问,不是也不作为命令内存缓冲区,本发明实施例不限定用于存储第五数据的存储块的具体实现方式。
可选的,第一控制器可以使用多个数据报文对第五数据进行发送。第二控制器可以使用根数据结构对从入口接收的数据进行组织。如图10所示,数据报文可以具体为PCIe写报文,第一控制器通过PCIe写操作将第五数据写入第二控制器。第二控制器接收到数据报文后,可以将数据组织成根数据结构,以方便数据的管理。
在本发明实施例中,第二控制器接收到数据报文后,解码数据报文的地址并识别关联标识,根据关联标识识别入口和根数据结构,从内存存储器中为数据分配空闲的内存块,并将数据保存至分配的内存块,将内存块附到根数据结构。第二控制器首先将数据存储在自己的内部存储器中,在满足一定的条件时,将内部存储器存储的数据与第二数据或第二数据的部分字段进行异或操作。此处的满足条件可以为第二控制器获取到第二指令,或者内部存储器中存储的数据量积累到第二NMVe控制器可以对其进行一次异或操作的程度。其中,第二控制器的内部存储器可以为控制器的私有内存。
本发明实施例不限定第二控制器获取数据报文和第二指令的顺序,第二控制器可以先接收到第一控制器推送的数据报文,并根据关联标识确定第二指令。第二控制器也可以先获取第二指令,再根据第二指令获取对应的第五数据。例如,第二控制器可以根据第二指令确定该关联标识,然后根据关联标识确定对应的入口,并根据关联标识从为该入口分配的存储空间中获取存储的载荷数据。
本发明实施例不限定与第二指令对应的第五数据和第二指令本身的到达第二控制器的顺序。
第二控制器可以维护有SQ槽位与入口的一一对应关系,当从一个槽位中获取到第二指令后,可以根据维护的对应关系确定该第二指令对应的入口。如果第二控制器检测到对应的入口还没有数据到达,则第二控制器挂起第二指令,等待数据到来。直至第二控制器检测到对应的入口有数据到达,便可以执行对第五数据与第二数据的异或操作。
如果一部分数据先于第二指令到达第二控制器,第二控制器根据数据报文中携带的关联标识检测到数据对应的第二指令还没有到达第二控制器或者对应的SQ槽位。则第二控制器可以将数据附到根数据结构,等待相关的第二指令到来,直至对应的第二指令到达第二控制器或者第二控制器可寻址的SQ槽位,第二控制器获取该第二指令,并根据第二指令对第五数据和第二数据进行异或操作,从而得到第六数据。
在本发明实施例中,第二指令用于指示第二控制器对第二数据和第五数据进行异或操作,得到该分条最新的奇偶校验结果。
步骤709:第二控制器根据第二指令对第五数据和第二数据进行异或操作,得到第六数据。
在本发明实施例中,第二指令用于指示第二控制器对第二数据和第五数据进行异或操作,得到该分条最新的奇偶校验结果。
因为第五数据是第一数据与第四数据的异或结果,则只需在对第五数据和第二数据进行异或操作就可以得到最新的奇偶校验结果第六数据,即该第六数据是第四数据和该至少一个第三数据的奇偶校验数据。
第二控制器对第二数据和第二数据进行异或操作得到第六数据后,将第六数据存入第二存储装置的存储介质。
在本发明实施例中,第一控制器可以通过多个数据报文发送第五数据,第二控制器通过入口接收第一控制器推送的数据和第二控制器将接收到的数据与第二数据的部分字段进行异或操作可以并行执行。如果当前通过入口接收的数据处理完成,即当前通过入口接收到的数据已经与第二数据的对应字段完成异或操作,但系统需要更多的数据来完成数据保护,第二控制器则挂起第二指令等待数据到来。
步骤710:第二控制器触发完成消息。
第二控制器完成对第五数据和第二数据的异或操作后,会触发完成消息。该完成消息用于指示第二控制器完成对第五数据和第二数据的异或操作。
在本发明实施例中,完成消息可以为触发完成队列条目(completion queueentry,CQE)。第二控制器触发完成消息可以具体为第二控制器完成写操作后,将CQE写入完成队列(completion queue,CQ),并通过中断通知主机。
根据本发明实施例公开的技术方案,主机向第一控制器触发第一指令,并向第二控制器触发第二指令。其中,主机向第一控制器触发的第一指令中携带有指示第二指令的关联标识。第一控制器获取到新数据第四数据后,对新数据第四数据和旧数据第一数据进行异或操作得到第五数据,主动向第二控制器发送数据报文,数据报文中携带第五数据和该关联标识。第二控制器获取到数据报文后,根据关联标识关联第二指令和第五数据,并根据第二指令对第五数据和旧的奇偶校验结果第二数据进行异或操作得到新的奇偶校验结果第六数据。从而避免了数据更新过程中主机多次对存储装置进行读写操作。主机与第一存储装置和第二存储装置互联的交换网络的上行端口的数据流量大大减少,从而提升了系统的总体性能。
图11为依据本发明一实施例的一种数据保护装置1100的逻辑结构示意图。数据保护系统包括数据保护装置1100,第一存储装置,第二存储装置和至少一个其他存储装置,第一存储装置,第二存储装置和至少一个其他存储装置组成一个独立硬盘冗余阵列RAID,第一存储装置中存储有第一数据,第二存储装置中存储有第二数据,至少一个其他存储装置中存储有至少一个第三数据,第一数据与至少一个第三数据属于同一个RAID分条,第二数据为第一数据与至少一个第三数据的奇偶校验结果,第一存储装置包含第一控制器和存储介质,第二存储装置包含第二控制器和存储介质。如图11所示,数据保护装置1100包括处理单元1101和获取单元1102,其中,
处理单元1101用于触发第一指令,第一指令携带关联标识,关联标识用于指示第二指令;第一指令用于指示第一控制器对第一数据和第四数据进行异或操作得到第五数据,并指示第一控制器向第二控制器发送数据报文,数据报文包含第五数据和关联标识,其中第四数据为第一数据的更新数据。处理单元1101还用于触发第二指令,第二指令用于指示第二控制器对第五数据和第二数据进行异或操作得到第六数据。
可选的,备份装置1100还包括获取单元1102,用于获取第二控制器触发的完成消息,完成消息用于指示第二控制器完成对第五数据和第二数据的异或操作。
可选的,数据报文为PCIe报文,关联标识包含第二控制器的PCIe地址字段。
可选的,关联标识包含第二指令的部分字段。
在本申请实施例中,处理单元1101和获取单元1102可以由图4中的处理器401中的保护逻辑410来实现,或者由图4中的处理器401和系统内存402中的保护模块406来实现。
本申请实施例为以上实施例对应的主机的装置实施例,以上实施例部分的特征描述适用于本申请实施例,在此不再赘述。
图12为依据本发明一实施例的一种备份装置1200的逻辑结构示意图。数据保护系统包括主机,第一存储装置,第二存储装置和至少一个其他存储装置,第一存储装置,第二存储装置和至少一个其他存储装置组成一个独立硬盘冗余阵列RAID,第一存储装置中存储有第一数据,第二存储装置中存储有第二数据,至少一个其他存储装置中存储有至少一个第三数据,第一数据与至少一个第三数据属于同一个RAID分条,第二数据为第一数据与至少一个第三数据的奇偶校验结果,第一存储装置包含数据保护装置1200和存储介质,第二存储装置包含控制器和存储介质。如图12所示,备份装置1200包括处理单元1201和发送单元1202,其中,
处理单元1201用于获取主机触发的第一指令和第四数据,第一指令携带关联标识,关联标识用于指示第二指令,并在获取第一指令后对第一数据和第四数据进行异或操作得到第五数据,其中第四数据为第一数据的更新数据。
发送单元1202用于向控制器发送数据报文,数据报文包含第五数据和关联标识。
可选的,数据报文为PCIe报文,关联标识包含该控制器的PCIe地址字段。
可选的,关联标识包含第二指令的部分字段。
在本申请实施例中,处理单元1201和发送单元1202可以由图5中的处理器501中的保护逻辑505来实现,或者由图5中的处理器501和系统内存502中的保护模块506来实现。
本申请实施例为以上实施例对应的第一控制器的装置实施例,以上实施例部分的特征描述适用于本申请实施例,在此不再赘述。
图13为依据本发明一实施例的一种备份装置1300的逻辑结构示意图。数据保护系统包括主机,第一存储装置,第二存储装置和至少一个其他存储装置,第一存储装置,第二存储装置和至少一个其他存储装置组成一个独立硬盘冗余阵列RAID,第一存储装置中存储有第一数据,第二存储装置中存储有第二数据,至少一个其他存储装置中存储有至少一个第三数据,第一数据与至少一个第三数据属于同一个RAID分条,第二数据为第一数据与至少一个第三数据的奇偶校验结果,第一存储装置包含控制器和存储介质,第二存储装置包含数据保护装置1300和存储介质。如图13所示,备份装置1300包括获取单元1301和处理单元1302,其中,
获取单元1301用于获取主机触发的操作指令,并接收控制器发送的数据报文,数据报文包含第五数据和关联标识,第五数据为第一数据和第四数据的异或结果,第四数据为第一数据的更新数据,关联标识用于指示操作指令。
处理单元1302用于根据第二指令对第五数据和第二数据进行异或操作得到第六数据。
可选的,数据报文为PCIe报文,关联标识包含数据保护装置1301的PCIe地址字段。
可选的,数据保护装置1300还包含内部存储器,处理单元1302对第五数据和第二数据进行异或操作之前,还用于将第五数据存入内部存储器的存储空间,并记录存储空间与关联标识之间的映射关系。
可选的,获取单元1301还用于根据关联标识确定操作指令的存储位置,并根据操作指令的存储位置获取操作指令。
可选的,关关联标识包含操作指令的部分字段,获取单元1301还用于根据操作指令的部分字段获取第二指令。
可选的,处理单元1302还用于触发完成消息,完成消息用于指示数据保护装置1300完成对第五数据和第二数据的异或操作。
在本申请实施例中,获取单元1301和处理单元1302可以具体由图6中的处理器601中的保护逻辑605来实现,或者由图6中的处理器601和系统内存602中的保护模块606来实现。
本申请实施例为以上实施例对应的第二控制器的装置实施例,以上实施例部分的特征描述适用于本申请实施例,在此不再赘述。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者替换其中部分技术特征;而这些修改或者替换,并不使相应技术方案脱离权利要求的保护范围。
Claims (32)
1.一种数据保护系统,其特征在于,所述系统包括主机,第一存储装置,第二存储装置和至少一个其他存储装置,所述第一存储装置,所述第二存储装置和所述至少一个其他存储装置组成一个独立硬盘冗余阵列RAI D,所述第一存储装置中存储有第一数据,所述第二存储装置中存储有第二数据,所述至少一个其他存储装置中存储有至少一个第三数据,所述第一数据与所述至少一个第三数据属于同一个RAI D分条,所述第二数据为所述第一数据与所述至少一个第三数据的奇偶校验结果,所述第一存储装置包含第一控制器和存储介质,所述第二存储装置包含第二控制器和存储介质;
所述主机用于触发第一指令和第二指令,所述第一指令携带关联标识,所述关联标识用于指示所述第二指令;
所述第一控制器用于获取所述第一指令和第四数据,在获取所述第一指令后对所述第一数据和所述第四数据进行异或操作得到第五数据,并向所述第二控制器发送数据报文,所述数据报文包含所述第五数据和所述关联标识,其中所述第四数据为所述第一数据的更新数据;
所述第二控制器用于获取所述第二指令和所述数据报文,并根据所述第二指令对所述第五数据和所述第二数据进行异或操作得到第六数据。
2.根据权利要求1所述的系统,其特征在于,所述数据报文为PCIe报文,所述关联标识包含所述第二控制器的PCIe地址字段。
3.根据权利要求1或2所述的系统,其特征在于,所述第二控制器包含内部存储器,所述第二控制器还用于:对所述第五数据和所述第二数据进行异或操作之前,将所述第五数据存入所述内部存储器的存储空间,并记录所述存储空间与所述关联标识之间的映射关系。
4.根据权利要求1-3任一项所述的系统,其特征在于,所述第二控制器还用于根据所述关联标识确定所述第二指令的存储位置,所述第二控制器用于根据所述第二指令的存储位置获取所述第二指令。
5.根据权利要求1-3任一项所述的系统,其特征在于,所述关联标识包含所述第二指令的部分字段,所述第二控制器用于根据所述第二指令的部分字段获取所述第二指令。
6.根据权利要求1-5任一项所述的系统,其特征在于,所述第一指令和/或所述第二指令为基于非易失性高速传输总线NVMe的提交队列条目SQE。
7.一种数据保护方法,其特征在于,数据保护系统包括主机,第一存储装置,第二存储装置和至少一个其他存储装置,所述第一存储装置,所述第二存储装置和所述至少一个其他存储装置组成一个独立硬盘冗余阵列RAI D,所述第一存储装置中存储有第一数据,所述第二存储装置中存储有第二数据,所述至少一个其他存储装置中存储有至少一个第三数据,所述第一数据与所述至少一个第三数据属于同一个RAI D分条,所述第二数据为所述第一数据与所述至少一个第三数据的奇偶校验结果,所述第一存储装置包含第一控制器和存储介质,所述第二存储装置包含第二控制器和存储介质;所述方法包括:
所述主机触发第一指令,所述第一指令携带关联标识,所述关联标识用于指示第二指令;所述第一指令用于指示所述第一控制器对所述第一数据和第四数据进行异或操作得到第五数据,并指示所述第一控制器向所述第二控制器发送数据报文,所述数据报文包含所述第五数据和所述关联标识,其中所述第四数据为所述第一数据的更新数据;
所述主机触发第二指令,所述第二指令用于指示所述第二控制器对所述第五数据和所述第二数据进行异或操作得到第六数据。
8.根据权利要求7所述的方法,其特征在于,所述第一指令和/或所述第二指令为基于非易失性高速传输总线NVMe的提交队列条目SQE。
9.根据权利要求7或8所述的方法,其特征在于,所述数据报文为PCIe报文,所述关联标识包含所述第二控制器的PCIe地址字段。
10.根据权利要求7或8所述的方法,其特征在于,所述关联标识包含所述第二指令的部分字段。
11.一种数据保护方法,其特征在于,数据保护系统包括主机,第一存储装置,第二存储装置和至少一个其他存储装置,所述第一存储装置,所述第二存储装置和所述至少一个其他存储装置组成一个独立硬盘冗余阵列RAI D,所述第一存储装置中存储有第一数据,所述第二存储装置中存储有第二数据,所述至少一个其他存储装置中存储有至少一个第三数据,所述第一数据与所述至少一个第三数据属于同一个RAI D分条,所述第二数据为所述第一数据与所述至少一个第三数据的奇偶校验结果,所述第一存储装置包含第一控制器和存储介质,所述第二存储装置包含第二控制器和存储介质;所述方法包括:
所述第一控制器获取所述主机触发的第一指令和第四数据,所述第一指令携带关联标识,所述关联标识用于指示第二指令,所述第四数据为所述第一数据的更新数据;
所述第一控制器在获取所述第一指令后对所述第一数据和所述第四数据进行异或操作得到第五数据;
所述第一控制器并向所述第二控制器发送数据报文,所述数据报文包含所述第五数据和所述关联标识。
12.根据权利要求11所述的方法,其特征在于,所述数据报文为PCIe报文,所述关联标识包含所述第二控制器的PCIe地址字段。
13.根据权利要求11所述的方法,其特征在于,所述关联标识包含所述第二指令的部分字段。
14.一种数据保护方法,其特征在于,数据保护系统包括主机,第一存储装置,第二存储装置和至少一个其他存储装置,所述第一存储装置,所述第二存储装置和所述至少一个其他存储装置组成一个独立硬盘冗余阵列RAI D,所述第一存储装置中存储有第一数据,所述第二存储装置中存储有第二数据,所述至少一个其他存储装置中存储有至少一个第三数据,所述第一数据与所述至少一个第三数据属于同一个RAI D分条,所述第二数据为所述第一数据与所述至少一个第三数据的奇偶校验结果,所述第一存储装置包含第一控制器和存储介质,所述第二存储装置包含第二控制器和存储介质;所述方法包括:
所述第二控制器获取所述主机触发的操作指令;
所述第二控制器接收所述第一控制器发送的数据报文,所述数据报文包含所述第五数据和关联标识,所述第五数据为第一数据和第四数据的异或结果,所述第四数据为所述第一数据的更新数据,所述关联标识用于指示所述操作指令;
所述第二控制器根据所述第二指令对所述第五数据和所述第二数据进行异或操作得到第六数据。
15.根据权利要求14所述的方法,其特征在于,所述数据报文为PCIe报文,所述关联标识包含所述第二控制器的PCIe地址字段。
16.根据权利要求14或15所述的方法,其特征在于,所述第二控制器包含内部存储器,所述第二控制器对所述第五数据和所述第二数据进行异或操作之前,所述方法还包括:
所述第二控制器将所述第五数据存入所述内部存储器的存储空间,并记录所述存储空间与所述关联标识之间的映射关系。
17.根据权利要求14-16任一项所述的方法,其特征在于,所述方法还包括:
所述第二控制器根据所述关联标识确定所述操作指令的存储位置;
所述第二控制器获取所述操作指令包括:所述第二控制器根据所述操作指令的存储位置获取所述操作指令。
18.根据权利要求14-16任一项所述的方法,其特征在于,所述关联标识包含所述操作指令的部分字段;
所述第二控制器获取所述操作指令包括:所述第二控制器根据所述操作指令的部分字段获取所述操作指令。
19.根据权利要求14-18任一项所述的方法,其特征在于,所述操作指令为基于非易失性高速传输总线NVMe的提交队列条目SQE。
20.一种数据保护装置,其特征在于,数据保护系统包括所述数据保护装置,第一存储装置,第二存储装置和至少一个其他存储装置,所述第一存储装置,所述第二存储装置和所述至少一个其他存储装置组成一个独立硬盘冗余阵列RAI D,所述第一存储装置中存储有第一数据,所述第二存储装置中存储有第二数据,所述至少一个其他存储装置中存储有至少一个第三数据,所述第一数据与所述至少一个第三数据属于同一个RAI D分条,所述第二数据为所述第一数据与所述至少一个第三数据的奇偶校验结果,所述第一存储装置包含第一控制器和存储介质,所述第二存储装置包含第二控制器和存储介质;所述数据保护装置包括:
处理单元,用于触发第一指令,所述第一指令携带关联标识,所述关联标识用于指示第二指令;所述第一指令用于指示所述第一控制器对所述第一数据和第四数据进行异或操作得到第五数据,并指示所述第一控制器向所述第二控制器发送数据报文,所述数据报文包含所述第五数据和所述关联标识,其中所述第四数据为所述第一数据的更新数据;
所述处理单元还用于触发第二指令,所述第二指令用于指示所述第二控制器对所述第五数据和所述第二数据进行异或操作得到第六数据。
21.根据权利要求20所述的数据保护装置,其特征在于,所述第一指令和/或所述第二指令为基于非易失性高速传输总线NVMe的提交队列条目SQE。
22.根据权利要求20或21所述的数据保护装置,其特征在于,所述数据报文为PCIe报文,所述关联标识包含所述第二控制器的PCIe地址字段。
23.根据权利要求20或21所述的数据保护装置,其特征在于,所述关联标识包含所述第二指令的部分字段。
24.一种数据保护装置,其特征在于,数据保护系统包括主机,第一存储装置,第二存储装置和至少一个其他存储装置,所述第一存储装置,所述第二存储装置和所述至少一个其他存储装置组成一个独立硬盘冗余阵列RAI D,所述第一存储装置中存储有第一数据,所述第二存储装置中存储有第二数据,所述至少一个其他存储装置中存储有至少一个第三数据,所述第一数据与所述至少一个第三数据属于同一个RAI D分条,所述第二数据为所述第一数据与所述至少一个第三数据的奇偶校验结果,所述第一存储装置包含所述数据保护装置和存储介质,所述第二存储装置包含控制器和存储介质;所述数据保护装置包括:
处理单元,用于获取所述主机触发的第一指令和第四数据,所述第一指令携带关联标识,所述关联标识用于指示第二指令,并在获取所述第一指令后对所述第一数据和所述第四数据进行异或操作得到第五数据,其中所述第四数据为所述第一数据的更新数据;
发送单元,用于向所述控制器发送数据报文,所述数据报文包含所述第五数据和所述关联标识。
25.根据权利要求25所述的数据保护装置,其特征在于,所述数据报文为PCIe报文,所述关联标识包含所述控制器的PCIe地址字段。
26.根据权利要求25所述的数据保护装置,其特征在于,所述关联标识包含所述第二指令的部分字段。
27.一种数据保护装置,其特征在于,数据保护系统包括主机,第一存储装置,第二存储装置和至少一个其他存储装置,所述第一存储装置,所述第二存储装置和所述至少一个其他存储装置组成一个独立硬盘冗余阵列RAI D,所述第一存储装置中存储有第一数据,所述第二存储装置中存储有第二数据,所述至少一个其他存储装置中存储有至少一个第三数据,所述第一数据与所述至少一个第三数据属于同一个RAI D分条,所述第二数据为所述第一数据与所述至少一个第三数据的奇偶校验结果,所述第一存储装置包含控制器和存储介质,所述第二存储装置包含所述数据保护装置和存储介质;所述数据保护装置包括:
获取单元,用于获取所述主机触发的操作指令,并接收所述控制器发送的数据报文,所述数据报文包含所述第五数据和关联标识,所述第五数据为第一数据和第四数据的异或结果,所述第四数据为所述第一数据的更新数据,所述关联标识用于指示所述操作指令;
处理单元,用于根据所述第二指令对所述第五数据和所述第二数据进行异或操作得到第六数据。
28.根据权利要求27所述的数据保护装置,其特征在于,所述数据报文为PCIe报文,所述关联标识包含所述数据保护装置的PCIe地址字段。
29.根据权利要求27或28所述的数据保护装置,其特征在于,所述数据保护装置还包含内部存储器,所述处理单元对所述第五数据和所述第二数据进行异或操作之前,还用于将所述第五数据存入所述内部存储器的存储空间,并记录所述存储空间与所述关联标识之间的映射关系。
30.根据权利要求27-29任一项所述的数据保护装置,其特征在于,所述获取单元还用于根据所述关联标识确定所述操作指令的存储位置,并根据所述操作指令的存储位置获取所述操作指令。
31.根据权利要求27-29任一项所述的数据保护装置,其特征在于,所述关联标识包含所述操作指令的部分字段;
所述获取单元用于根据所述操作指令的部分字段获取所述操作指令。
32.根据权利要求27-31任一项所述的数据保护装置,其特征在于,所述第一指令和/或所述第二指令为基于非易失性高速传输总线NVMe的提交队列条目SQE。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811285338.0A CN109634771A (zh) | 2018-10-31 | 2018-10-31 | 一种数据保护方法、装置及系统 |
PCT/CN2019/090715 WO2020087930A1 (zh) | 2018-10-31 | 2019-06-11 | 一种数据保护方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811285338.0A CN109634771A (zh) | 2018-10-31 | 2018-10-31 | 一种数据保护方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109634771A true CN109634771A (zh) | 2019-04-16 |
Family
ID=66067014
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811285338.0A Pending CN109634771A (zh) | 2018-10-31 | 2018-10-31 | 一种数据保护方法、装置及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109634771A (zh) |
WO (1) | WO2020087930A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020087930A1 (zh) * | 2018-10-31 | 2020-05-07 | 华为技术有限公司 | 一种数据保护方法、装置及系统 |
CN115657961A (zh) * | 2022-11-11 | 2023-01-31 | 苏州浪潮智能科技有限公司 | Raid磁盘阵列管理方法、系统、电子设备及存储介质 |
US11977785B2 (en) | 2022-02-08 | 2024-05-07 | Microsoft Technology Licensing, Llc | Non-volatile memory device-assisted live migration of virtual machine data |
WO2024123439A1 (en) * | 2022-12-05 | 2024-06-13 | Microsoft Technology Licensing, Llc | Virtual machine live migration with direct-attached non-volatile memory express device |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1776637A (zh) * | 2004-11-19 | 2006-05-24 | 国际商业机器公司 | 磁盘阵列从奇偶校验更新操作中断中恢复的方法和系统 |
CN101452409A (zh) * | 2007-12-04 | 2009-06-10 | 无锡江南计算技术研究所 | 数据校验冗余方法及装置 |
CN101482802A (zh) * | 2009-02-18 | 2009-07-15 | 杭州华三通信技术有限公司 | 独立磁盘冗余阵列5扩展方法及装置 |
CN101615105B (zh) * | 2009-08-06 | 2010-12-08 | 杭州华三通信技术有限公司 | Raid存储系统和可进行raid计算的存储器及控制方法 |
CN102411518A (zh) * | 2010-09-17 | 2012-04-11 | 株式会社东芝 | 控制器、存储装置以及计算机程序产品 |
CN102696017A (zh) * | 2010-02-22 | 2012-09-26 | 国际商业机器公司 | 用于在回写分布式冗余数据存储系统中维持奇偶校验一致性的读取其他项的协议 |
US20130290613A1 (en) * | 2012-04-27 | 2013-10-31 | Hitachi, Ltd. | Storage system and storage apparatus |
CN104272261A (zh) * | 2012-03-23 | 2015-01-07 | Dssd股份有限公司 | 用于多维独立磁盘冗余阵列的方法和系统 |
CN104598162A (zh) * | 2013-10-31 | 2015-05-06 | 国际商业机器公司 | 用于跨存储设备写入数据的方法和系统 |
CN105045525A (zh) * | 2014-04-21 | 2015-11-11 | 三星电子株式会社 | 存储控制器、存储系统及操作存储控制器的方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4435705B2 (ja) * | 2005-03-14 | 2010-03-24 | 富士通株式会社 | 記憶装置、その制御方法及びプログラム |
CN103336727B (zh) * | 2013-06-20 | 2016-06-22 | 酷丰实业(上海)有限公司 | 对nand闪存存储设备进行数据操作的方法 |
CN109634771A (zh) * | 2018-10-31 | 2019-04-16 | 华为技术有限公司 | 一种数据保护方法、装置及系统 |
-
2018
- 2018-10-31 CN CN201811285338.0A patent/CN109634771A/zh active Pending
-
2019
- 2019-06-11 WO PCT/CN2019/090715 patent/WO2020087930A1/zh active Application Filing
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1776637A (zh) * | 2004-11-19 | 2006-05-24 | 国际商业机器公司 | 磁盘阵列从奇偶校验更新操作中断中恢复的方法和系统 |
CN101452409A (zh) * | 2007-12-04 | 2009-06-10 | 无锡江南计算技术研究所 | 数据校验冗余方法及装置 |
CN101482802A (zh) * | 2009-02-18 | 2009-07-15 | 杭州华三通信技术有限公司 | 独立磁盘冗余阵列5扩展方法及装置 |
CN101615105B (zh) * | 2009-08-06 | 2010-12-08 | 杭州华三通信技术有限公司 | Raid存储系统和可进行raid计算的存储器及控制方法 |
CN102696017A (zh) * | 2010-02-22 | 2012-09-26 | 国际商业机器公司 | 用于在回写分布式冗余数据存储系统中维持奇偶校验一致性的读取其他项的协议 |
CN102411518A (zh) * | 2010-09-17 | 2012-04-11 | 株式会社东芝 | 控制器、存储装置以及计算机程序产品 |
CN104272261A (zh) * | 2012-03-23 | 2015-01-07 | Dssd股份有限公司 | 用于多维独立磁盘冗余阵列的方法和系统 |
US20130290613A1 (en) * | 2012-04-27 | 2013-10-31 | Hitachi, Ltd. | Storage system and storage apparatus |
CN104598162A (zh) * | 2013-10-31 | 2015-05-06 | 国际商业机器公司 | 用于跨存储设备写入数据的方法和系统 |
CN105045525A (zh) * | 2014-04-21 | 2015-11-11 | 三星电子株式会社 | 存储控制器、存储系统及操作存储控制器的方法 |
Non-Patent Citations (1)
Title |
---|
谭毓安等: "基于磁盘异或引擎的RAID-5小写性能优化", 《计算机工程》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020087930A1 (zh) * | 2018-10-31 | 2020-05-07 | 华为技术有限公司 | 一种数据保护方法、装置及系统 |
US11977785B2 (en) | 2022-02-08 | 2024-05-07 | Microsoft Technology Licensing, Llc | Non-volatile memory device-assisted live migration of virtual machine data |
CN115657961A (zh) * | 2022-11-11 | 2023-01-31 | 苏州浪潮智能科技有限公司 | Raid磁盘阵列管理方法、系统、电子设备及存储介质 |
CN115657961B (zh) * | 2022-11-11 | 2023-03-17 | 苏州浪潮智能科技有限公司 | Raid磁盘阵列管理方法、系统、电子设备及存储介质 |
WO2024123439A1 (en) * | 2022-12-05 | 2024-06-13 | Microsoft Technology Licensing, Llc | Virtual machine live migration with direct-attached non-volatile memory express device |
Also Published As
Publication number | Publication date |
---|---|
WO2020087930A1 (zh) | 2020-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109634771A (zh) | 一种数据保护方法、装置及系统 | |
US10725865B2 (en) | Storage unit and storage device | |
CN104040515B (zh) | 在逻辑驱动器模型下呈现直接存取的存储设备 | |
US8121977B2 (en) | Ensuring data persistence and consistency in enterprise storage backup systems | |
CN106021147B (zh) | 在逻辑驱动器模型下呈现直接存取的存储设备 | |
US6611903B2 (en) | Storage subsystem and its controlling method | |
CN103650054B (zh) | 包含存储器系统控制器的设备和相关方法 | |
US7769960B2 (en) | Computer program product and a system for a priority scheme for transmitting blocks of data | |
CN102012793B (zh) | 镜像实现方法和装置 | |
TW201939294A (zh) | 主機系統及其方法和加速模組 | |
US8250283B1 (en) | Write-distribute command for RAID mirroring | |
TW200809608A (en) | Method and apparatus for tracking command order dependencies | |
CN103218176B (zh) | 数据处理方法及装置 | |
US9189396B2 (en) | Snapshot coordination | |
US20200379668A1 (en) | Storage system and data transfer method | |
US8438332B2 (en) | Apparatus and method to maintain write operation atomicity where a data transfer operation crosses a data storage medium track boundary | |
KR20130095799A (ko) | 고가용성 솔리드 스테이트 드라이브를 제공하는 방법 및 장치 | |
CN103678045A (zh) | 虚拟机的数据备份方法 | |
CN109871182A (zh) | 存储装置及其操作方法及发出命令的方法 | |
US9262329B2 (en) | Snapshot access | |
US10452557B2 (en) | Storage apparatus, computer system, and method for improved read operation handling | |
CN109614264A (zh) | 一种数据备份方法、装置及系统 | |
US11748180B2 (en) | Seamless access to a common physical disk in an AMP system without an external hypervisor | |
US9329788B2 (en) | Computer system and method for allocating and recovering virtual volumes | |
CN110413212A (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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190416 |
|
WD01 | Invention patent application deemed withdrawn after publication |