CN103645969B - 数据复制方法及数据存储系统 - Google Patents
数据复制方法及数据存储系统 Download PDFInfo
- Publication number
- CN103645969B CN103645969B CN201310687573.1A CN201310687573A CN103645969B CN 103645969 B CN103645969 B CN 103645969B CN 201310687573 A CN201310687573 A CN 201310687573A CN 103645969 B CN103645969 B CN 103645969B
- Authority
- CN
- China
- Prior art keywords
- storage device
- data
- address
- written
- buffer memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据复制方法及数据存储系统。数据复制方法包括以下步骤:第一存储设备接收生产主机发送的写数据请求,写数据请求中包括待写入数据;根据预先获取的第二存储设备的缓存存储器中空闲的地址信息,确定待写入数据待写入第二存储设备的缓存存储器中的地址;根据待写入数据待写入第二存储设备的缓存存储器中的地址以及待写入数据,生成写数据命令;将写数据命令发送给所述第二存储设备。通过上述方式,本发明能够减少第一存储设备和第二存储设备的交互次数,进而降低生产主机的待写入数据的延时,提高生产主机的性能。
Description
技术领域
本发明涉及数据复制领域,特别是涉及一种数据复制方法及数据存储系统。
背景技术
随着各行业数字化进程的推进,数据逐渐成为企事业单位的运营核心。用户对承载数据的存储系统的稳定性要求也越来越高。由于地震、海啸、战争等灾难频发,远程数据容灾对保证存储系统的稳定性显得尤为重要。为了保证数据存取的持续性、可恢复性和高可用性,现有技术采用了同步远程复制的远程数据容灾方案。
现有技术的同步远程复制的实现方法是:生产主机发出的待写入数据发送到设置在数据产生中心的第一存储设备时,第一存储设备向设置在数据备份中心的第二存储设备请求分配空闲的地址,在获取第二存储设备发送的携带空闲地址字段的消息后,将待写入数据和与待写入数据匹配的地址发送到第二存储设备,第二存储设备将该待写入数据存储到与其匹配的地址中,并反馈完成数据复制的信息给第一存储设备。
承上所述,现有技术的数据容灾方案使得第一存储设备和第二存储设备之间交互次数频繁。在标准的小型计算机系统接口(small computer system interface,scsi)协议中,生产主机完成一个待写入数据的复制,需要第一存储设备和第二存储设备之间交互4次。增加了生产主机的待写入数据的延时,对生产主机的性能有较大影响。
发明内容
本发明主要解决的技术问题是提供一种数据复制方法及数据存储系统,能够减少数据复制时第一存储设备和第二存储设备的交互次数,降低生产主机的待写入数据的延时,从而提高生产主机的性能。
第一方面提供一种数据复制方法,该方法应用于存储系统中,存储系统包括生产主机、第一存储设备和第二存储设备,其中第二存储设备包括缓存存储器,该方法包括以下步骤:第一存储设备接收生产主机发送的写数据请求,写数据请求中包括待写入数据;根据预先获取的第二存储设备的缓存存储器中空闲的地址信息,确定待写入数据待写入第二存储设备的缓存存储器中的地址;根据待写入数据待写入第二存储设备的缓存存储器中的地址以及待写入数据,生成写数据命令;将写数据命令发送给第二存储设备。
在第一方面的第一种可能的实现方式中,该方法还包括:向第二存储设备发送携带空闲地址字段的消息;接收第二存储设备发送的携带空闲地址字段的消息的响应消息,响应消息中包括第二存储设备的缓存存储器中空闲的地址信息。
在第一方面的第二种可能的实现方式中,写数据请求中还包括待写入数据的长度;根据预先获取的第二存储设备的缓存存储器中空闲的地址信息,确定待写入数据待写入第二存储设备的缓存存储器中的地址包括:根据待写入数据的长度从第二存储设备的缓存存储器中空闲的地址信息中确定待写入数据待写入第二存储设备的缓存存储器中的地址。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,将写数据命令发送给第二存储设备的方法进一步包括:
将待写入数据待写入第二存储设备的缓存存储器中的地址的状态标记为不可用。
第二方面提供一种数据存储系统,其中,数据存储系统包括生产主机、第一存储设备和第二存储设备,其中第二存储设备包括缓存存储器,第一存储设备包括:第一接收模块,用于接收生产主机发送的写数据请求,写数据请求中包括待写入数据;地址确定模块,用于根据预先获取的第二存储设备的缓存存储器中空闲的地址信息,确定待写入数据待写入第二存储设备的缓存存储器中的地址;命令生成模块,用于根据待写入数据待写入第二存储设备的缓存存储器中的地址以及待写入数据,生成写数据命令;第一发送模块,用于将写数据命令发送给第二存储设备。
在第二方面的第一种可能的实现方式中,第一存储设备进一步包括:第二发送模块,用于向第二存储设备发送携带空闲地址字段的消息;第二接收模块,用于接收第二存储设备发送的携带空闲地址字段的消息的响应消息,响应消息中包括第二存储设备的缓存存储器中空闲的地址信息。
在第二方面的第二种可能的实现方式中,写数据请求中还包括待写入数据的长度;地址确定模块进一步包括:地址确定单元,用于根据待写入数据的长度从第二存储设备的缓存存储器中空闲的地址信息中确定待写入数据待写入第二存储设备的缓存存储器中的地址。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,第一发送模块进一步包括:
地址状态标记单元,用于将待写入数据待写入第二存储设备的缓存存储器中的地址的状态标记为不可用。
本发明的有益效果是:第一存储设备预先获取第二存储设备的缓存存储器中空闲的地址信息,进而在接收到生产主机发送的待写入数据后,直接确定待写入数据待写入第二存储设备的缓存存储器中的地址即可,并不需要请求第二存储设备分配空闲的地址,因此,降低了第一存储设备和第二存储设备之间交互的次数,生产主机完成一次待写入数据的复制,第一存储设备和第二存储设备之间只需交互2次,能够降低生产主机的待写入数据的延时,从而提高生产主机的性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的数据复制方法的数据存储系统架构示意图;
图2是本发明实施例提供的数据复制方法的流程图;
图3是本发明实施例提供的数据复制方法的另一流程图;
图4是本发明实施例提供的数据存储系统的结构示意图;
图5是本发明实施例提供的数据存储系统的另一结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的数据复制方法可以在数据存储系统中实现。请参阅图1,图1为本发明实施例提供的数据复制方法的数据存储系统架构示意图。如图1所示,数据存储系统10包括生产中心100和备灾中心200。生产中心100包括生产主机11、连接设备12和生产阵列13(对应下面实施例的第一存储设备)。灾备中心200的系统架构与生产中心100类似,包括灾备主机21、连接设备22和灾备阵列23(对应下面实施例的第二存储设备)。在本发明实施例中,灾备中心200可以不止一个。其中,生产中心100与灾备中心200可以通过IP(Internet Protocol)或者FC(Fiber Chanel)进行数据传输。
生产主机11和灾备主机21均可以是当前技术已知的任何计算设备,如服务器、台式计算机等等。在主机内部,安装有操作系统以及其他应用程序。
连接设备12和22可以包括当前技术已知的存储设备和主机之间的任何接口,如光纤交换机,或者其他现有的交换机。
生产阵列13和灾备阵列23均可以是当前技术已知的存储设备,如独立磁盘冗余阵列(Redundant Arrays of Inexpensive Disks,RAID)、磁盘簇(Just a Bunch Of Disks,JBOD)、直接存取存储器(Direct Access Storage Device,DASD)的一个或多个互连的磁盘驱动器,诸如磁带库、一个或多个存储单元的磁带存储设备。
生产阵列13的存储空间可以包括多个数据卷,数据卷是由物理存储空间映射而成的一段逻辑存储空间,例如,数据卷可以是逻辑单元(Logic Unit Number,LUN),也可以是文件系统。在本发明实施例中,灾备阵列23的结构和生产阵列13类似。
以下将具体介绍基于图1所示的数据存储系统架构的数据复制方法。
请参阅图2,图2是本发明实施例提供的数据复制方法的流程图。如图2所示,本实施例的数据复制方法包括以下步骤:
步骤S21:第一存储设备接收生产主机发送的写数据请求,写数据请求中包括待写入数据。写数据请求中还包括待写入数据的长度。
步骤S22:根据预先获取的第二存储设备的缓存存储器中空闲的地址信息,确定待写入数据待写入第二存储设备的缓存存储器中的地址。
步骤S23:根据待写入数据待写入第二存储设备的缓存存储器中的地址以及待写入数据,生成写数据命令。
步骤S24:将写数据命令发送给第二存储设备。
在步骤S24之后,第一存储设备还会进一步接收第二存储设备完成写入该待写入数据的反馈信息,并将该反馈信息反馈到生产主机中。
本实施例中,第一存储设备预先获取第二存储设备的缓存存储器中空闲的地址信息,在接收到生产主机发送的待写入数据后,直接确定待写入数据待写入第二存储设备的缓存存储器中的地址即可。使得生产主机完成一次待写入数据的复制,第一存储设备和第二存储设备之间只需交互两次,相比于现有技术的第一存储设备和第二存储设备需要交互4次的方法,本实施例的数据复制方法能够减少第一存储设备和第二存储设备之间的交互次数,降低了生产主机的待写入数据的延时,从而提供生产主机的性能。
本发明实施例还提供另一种数据复制方法,其是在图2所示的数据复制方法的基础上进行详细描述。请参阅图3。
如图3所示,本实施例的数据复制方法包括以下步骤:
步骤S31:向第二存储设备发送携带空闲地址字段的消息。
本步骤中,携带空闲地址字段的消息包括发送端地址、目标端地址以及第一命令字。
其中,发送端地址具体为第一存储设备的地址,目标端地址具体为第二存储设备的地址,第一命令字具体为获取第二存储设备的空闲的地址的指令。
可选地,本实施例优选为周期性地向第二存储设备发送携带空闲地址字段的消息。
可选地,本实施例的周期可以根据客户要求调整,在符合客户要求的条件下,尽可能地取较短的周期,获取较大的空闲地址字段,以减少发送信息的次数。
步骤S32:接收第二存储设备发送的携带空闲地址字段的消息的响应消息,响应消息中包括第二存储设备的缓存存储器中空闲的地址信息。
在本步骤之前,第二存储设备预先分配好空闲的地址,并将空闲的地址信息存储在缓存存储器中。第二存储设备预先分配空闲的地址的方法可由现有技术来实现,在此不再赘述。
本步骤中,空闲的地址信息包括第二存储设备分配内存开始地址、分配内存结束地址、分配内存大小以及预留字段。
其中,分配内存开始地址为第二存储设备中空闲的开始地址,分配内存结束地址为空闲的结束地址,分配内存大小为空闲的开始地址到空闲的结束地址的所有空闲的地址的大小,预留字段是为了方便后续对存储的数据进行扩展或改动的空字段,预留字段的大小由客户决定。
值得注意的是,若在第二存储设备的缓存存储器中空闲的地址是分段的,不连续的,则本步骤接收的响应消息包括所有的空闲的地址。在其他实施例中,响应消息也可包括地址长度最长的地址段的地址信息。
可选地,本步骤进一步根据接收到的空闲的地址信息形成一地址表。具体的,该地址表中记载的是接收到的空闲的地址在第二存储设备中的标号。
步骤S33:根据待写入数据的长度从第二存储设备的缓存存储器中空闲的地址信息中确定待写入数据待写入第二存储设备的缓存存储器中的地址。
在本步骤中,具体过程如下:
从地址表中查找空闲的地址;
在空闲的地址中分配和待写入数据的长度相匹配的地址长度。
值得注意的是,若地址表中只有连续的空闲的地址。则直接从标号最小的空闲的地址开始分配,直到分配的地址长度和待写入数据的长度相等。若连续的空闲的地址的长度小于待写入数据的长度,则重复步骤S31和步骤S32,即继续获取第二存储设备的缓存存储器中空闲的地址信息,继而将没有进行分配的待写入数据继续分配到重新获取的地址中。
若地址表中空闲的地址不完全是连续的地址,即空闲的地址是由一段一段连续的地址组成的。则判断地址表中是否存在地址长度大于或等于待写入数据的长度的连续的空闲的地址。若判断的结果为是,则从该连续的空闲的地址中标号最小的地址开始分配,直到分配的地址长度和待写入数据的长度相等。若判断的结果为否,则从地址表中标号最小的空闲的地址进行分配,直到分配的地址长度和待写入数据的长度相等。
步骤S34:将待写入数据待写入第二存储设备的缓存存储器中的地址的状态标记为不可用。
将待写入数据待写入第二存储设备的缓存存储器中的地址的状态标记为不可用,使得该些地址不再为空闲的地址,即不能再写入待写入数据。
在其他实施例中,本步骤还可以为将待写入数据待写入第二存储设备的缓存存储器中的地址从地址表中删除。
因此,本实施例进一步周期性地检查地址表是否存在未标记为不可用状态的地址或者是否存在地址信息,并在检查的结果为否时要求第二存储设备继续分配空闲的地址。
本实施例的第一存储设备进一步将由待写入数据待写入第二存储设备的缓存存储器中的地址以及待写入数据生成的写数据命令发送给第二存储设备。并接收第二存储设备完成写入该待写入数据的反馈信息,并将该反馈信息反馈到生产主机中。
本实施例中,写数据命令包括了发送端地址、目标端地址、第二命令字、待写入数据及其长度、预留字段以及该待写入数据写入第二存储设备的缓存存储器中的地址。
其中,发送端地址为第一存储设备的地址,目标端地址为第二存储设备的地址。第二命令字为将待写入数据写入相应的地址中的指令。预留字段是为了方便后续对数据进行扩展或改动的空字段,预留字段的大小由客户决定。待写入数据写入第二存储设备的缓存存储器中的地址为第二存储设备的数据写入内存的开始地址和数据写入内存的结束地址,即为步骤S33分配好的待写入数据写入的空闲的开始地址和空闲的结束地址。
本实施例中,主机完成写入一次待写入数据的复制,第一存储设备和第二存储设备之间只需交互两次,相比于现有技术的第一存储设备和第二存储设备需要交互4次的方法,本实施例的数据复制方法能够减少第一存储设备和第二存储设备之间的交互次数,降低了生产主机的待写入数据的延时,从而提供生产主机的性能。
以上的数据复制方法是第一存储设备预先获取第二存储设备的缓存存储器中的空闲的地址。本发明实施例还提供了另一种数据复制方法,该方法是第二存储设备预先分配好空闲的地址,并将该地址信息存放在缓存存储器中。第一存储设备接收到生产主机的包括待写入数据的写入数据请求之后直接将待写入数据发送到第二存储设备。第二存储设备确定待写入数据待写入第二存储设备的缓存存储器中的地址,并将待写入数据写入该地址中。并进一步将完成写入待写入数据的信息反馈给第一存储设备。
具体的第二存储设备接收到第一存储设备发送的待写入数据之后,根据待写入数据确定待写入第二存储设备的缓存存储器中的地址的方法如前文第一存储设备根据待写入数据确定待写入第二存储设备的缓存存储器中的地址的方法相同,在此不再赘述。
同理,本实施例中,生产主机完成一次待写入数据的复制,第一存储设备和第二存储设备之间只需交互两次,相比于现有技术的第一存储设备和第二存储设备需要交互4次的方法,本实施例的数据复制方法能够减少第一存储设备和第二存储设备之间的交互次数,降低了生产主机的待写入数据的延时,从而提供生产主机的性能。
请参阅图4,图4是本发明实施例提供的一种数据存储系统的结构示意图。如图4所示,类似于图1所示的数据存储系统架构10,本实施例的数据存储系统50也包括生产主机51、第一存储设备52、第二存储设备53。
其中,第二存储设备53包括缓存存储器531,用于存储第二存储设备53的空闲的地址信息。
第一存储设备52包括:
第一接收模块521,用于接收生产主机51发送的写数据请求,写数据请求中包括待写入数据,还包括待写入数据的长度。
地址确定模块522,用于根据预先获取的第二存储设备53的缓存存储器531中空闲的地址信息,确定待写入数据待写入第二存储设备53的缓存存储器531中的地址。
命令生成模块523,用于根据待写入数据待写入第二存储设备53的缓存存储器531中的地址以及待写入数据,生成写数据命令。
第一发送模块524,用于将写数据命令发送给第二存储设备53。
可选的,第一存储设备52还包括:
第二发送模块525,用于向第二存储设备53发送携带空闲地址字段的消息。
携带空闲地址字段的消息包括发送端地址、目标端地址以及第一命令字。
其中,发送端地址具体为第一存储设备52的地址,目标端地址具体为第二存储设备53的地址,第一命令字具体为获取第二存储设备53的空闲的地址的指令。
可选地,本实施例优选为周期性地向第二存储设备53发送携带空闲地址字段的消息。并且本实施例的周期可以根据客户要求调整,在符合客户要求的条件下,尽可能地取较短的周期,获取较大的空闲地址字段,以减少发送信息的次数。
第二接收模块526,用于接收第二存储设备53发送的携带空闲地址字段的消息的响应消息,响应消息中包括第二存储设备53的缓存存储器531中空闲的地址信息。
可选地,在第二存储设备53端,第二存储设备53预先分配好空闲的地址,并将空闲的地址信息存储在缓存存储器531中。
空闲的地址信息包括第二存储设备分配内存开始地址、分配内存结束地址、分配内存大小以及预留字段。
其中,分配内存开始地址为第二存储设备53中空闲的开始地址,分配内存结束地址为空闲的结束地址,分配内存大小为空闲的开始地址到空闲的结束地址的所有空闲的地址的大小,预留字段是为了方便后续对存储的数据进行扩展或改动的空字段,预留字段的大小由客户决定。
值得注意的是,若在第二存储设备53的缓存存储器531中空闲的地址是分段的,不连续的,则第二接收模块526接收的响应消息包括所有的空闲的地址。在其他实施例中,第二接收模块526接收的响应消息也可包括地址长度最长的地址段的地址信息。
可选地,第一存储设备52进一步包括地址表生成模块527,用于根据第二接收模块526接收到的空闲的地址信息形成一地址表。具体的,该地址表中记载的是第二接收模块526接收到的空闲的地址在第二存储设备53中的标号。
可选地,地址确定模块522进一步包括:
地址确定单元5221,用于根据待写入数据的长度从第二存储设备53的缓存存储器531中空闲的地址信息中确定待写入数据待写入第二存储设备53的缓存存储器531中的地址。
具体为,地址确定单元5221从地址表中查找空闲的地址,并在空闲的地址中分配和待写入数据的长度相匹配的地址长度。
值得注意的是,若地址表中只有连续的空闲的地址。则直接从标号最小的空闲的地址开始分配,直到分配的地址长度和待写入数据的长度相等。若连续的空闲的地址的长度小于待写入数据的长度,则第二发送模块525和第二接收模块526继续获取第二存储设备53的缓存存储器中531空闲的地址信息,继而将没有进行分配的待写入数据继续分配到重新获取的地址中。
若地址表中空闲的地址不完全是连续的地址,即空闲的地址是由一段一段连续的地址组成的。则判断地址表中是否存在地址长度大于或等于待写入数据的长度的连续的空闲的地址。若判断的结果为是,则从该连续的空闲的地址中标号最小的地址开始分配,直到分配的地址长度和待写入数据的长度相等。若判断的结果为否,则从地址表中标号最小的空闲的地址进行分配,直到分配的地址长度和待写入数据的长度相等。
可选地,第一发送模块524进一步包括:
地址状态标记单元5241,用于将待写入数据待写入第二存储设备53的缓存存储器531中的地址的状态标记为不可用。或者直接将待写入数据待写入第二存储设备53的缓存存储器531中的地址删除。
本实施例的第一发送模块524将由待写入数据待写入第二存储设备53的缓存存储器531中的地址以及待写入数据生成的写数据命令发送给第二存储设备53后,第一接收模块521接收第二存储设备53完成写入该待写入数据的反馈信息,第一发送模块524进一步将该反馈信息反馈到生产主机51中。
本实施例中,写数据命令包括了发送端地址、目标端地址、第二命令字、待写入数据及其长度、预留字段以及该待写入数据写入第二存储设备53的缓存存储器531中的地址。
其中,发送端地址为第一存储设备52的地址,目标端地址为第二存储设备53的地址。第二命令字为将待写入数据写入相应的地址中的指令。预留字段是为了方便后续对数据进行扩展或改动的空字段,预留字段的大小由客户决定。待写入数据写入第二存储设备53的缓存存储器531中的地址为第二存储设备53的数据写入内存的开始地址和数据写入内存的结束地址,即为地址确定单元5221分配好的待写入数据写入的空闲的开始地址和空闲的结束地址。
本实施例中,第一存储设备52预先获取第二存储设备53的缓存存储器531中空闲的地址信息,在接收到生产主机51发送的待写入数据后,直接确定待写入数据待写入第二存储设备53的缓存存储器531中的地址即可。使得生产主机51完成一次待写入数据的复制,第一存储设备52和第二存储设备53之间只需交互两次,相比于现有技术的第一存储设备和第二存储设备需要交互4次的方法,本实施例的数据复制方法能够减少第一存储设备52和第二存储设备53之间的交互次数,降低了生产主机52的待写入数据的延时,从而提供生产主机的性能。
请参阅图5,图5是本发明施例提供的一种数据存储系统的另一结构示意图。如图5所示,本实施例的数据存储系统60包括生产主机61、第一存储设备62以及第二存储设备63。其中,第二存储设备63包括缓存存储器631,用于存储第二存储设备63的空闲的地址信息。第一存储设备62包括处理器621、存储器622、网络接口623以及总线系统624。处理器621、存储器622以及网络接口623通过总线系统624相连。
网络接口623用于接收生产主机61发送的写数据请求,写数据请求中包括待写入数据,还包括待写入数据的长度。
存储器622用于存储使得处理器621执行以下操作的指令:根据预先获取的第二存储设备63的缓存存储器631中空闲的地址信息,确定待写入数据待写入第二存储设备63的缓存存储器631中的地址;进一步用于根据待写入数据待写入第二存储设备63的缓存存储器631中的地址以及待写入数据,生成写数据命令。
网络接口623进一步用于将写数据命令发送给第二存储设备63。
此外,处理器621还可以称为中央处理单元(Central Processing Unit,CPU)。存储器622可以包括只读存储器和随机存取存储器,并向处理器621提供指令和数据。存储器622的一部分还可以包括非易失性随机存取存储器(NVRAM)。具体的应用中,第一存储设备61的各个组件通过总线系统624耦合在一起,其中总线系统624除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统624。
上述本发明实施例揭示的数据远程复制方法中第一存储设备的操作步骤可以应用于处理器621中,或者由处理器621实现。处理器621可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述第一存储设备的各操作步骤可以通过处理器621中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器621可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开第一存储设备62的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开第一存储设备62的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器622,处理器621读取存储器622中的信息,结合其硬件完成上述第一存储设备的操作步骤。
可选地,作为一个实施例,网络接口623用于向第二存储设备63发送携带空闲地址字段的消息。并进一步用于接收第二存储设备63发送的携带空闲地址字段的消息的响应消息,响应消息中包括第二存储设备63的缓存存储器631中空闲的地址信息。
可选地,作为一个实施例,处理器621用于根据待写入数据的长度从第二存储设备63的缓存存储器631中空闲的地址信息中确定待写入数据待写入第二存储设备的缓存存储器中的地址。
可选地,作为一个实施例,处理器621用于将待写入数据待写入第二存储设备63的缓存存储器631中的地址的状态标记为不可用。
本实施例中,第一存储设备62预先获取第二存储设备63的缓存存储器631中空闲的地址信息,在接收到生产主机61发送的待写入数据后,直接确定待写入数据待写入第二存储设备63的缓存存储器631中的地址即可。使得生产主机61完成一次待写入数据的复制,第一存储设备62和第二存储设备63之间只需交互两次,相比于现有技术的第一存储设备和第二存储设备需要交互4次的方法,本实施例的数据复制方法能够减少第一存储设备62和第二存储设备63之间的交互次数,降低了生产主机61的待写入数据的延时,从而提供生产主机61的性能。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.一种数据复制方法,其特征在于,所述方法应用于存储系统中,所述存储系统包括生产主机、第一存储设备和第二存储设备,其中所述第二存储设备包括缓存存储器,所述方法包括以下步骤:
所述第一存储设备接收所述生产主机发送的写数据请求,所述写数据请求中包括待写入数据;
根据预先获取的所述第二存储设备的缓存存储器中空闲的地址信息,确定所述待写入数据待写入所述第二存储设备的缓存存储器中的地址;
根据所述待写入数据待写入所述第二存储设备的缓存存储器中的地址以及所述待写入数据,生成写数据命令;
将所述写数据命令发送给所述第二存储设备;
其中,空闲的地址信息包括第二存储设备分配内存开始地址、分配内存结束地址、分配内存大小以及预留字段;分配内存开始地址为第二存储设备中空闲的开始地址,分配内存结束地址为空闲的结束地址,分配内存大小为空闲的开始地址到空闲的结束地址的所有空闲的地址的大小。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
向所述第二存储设备发送携带空闲地址字段的消息;
接收所述第二存储设备发送的所述携带空闲地址字段的消息的响应消息,所述响应消息中包括所述第二存储设备的缓存存储器中空闲的地址信息。
3.根据权利要求1所述的方法,其特征在于,所述写数据请求中还包括所述待写入数据的长度;
所述根据预先获取的所述第二存储设备的缓存存储器中空闲的地址信息,确定所述待写入数据待写入所述第二存储设备的缓存存储器中的地址包括:
根据所述待写入数据的长度从所述第二存储设备的缓存存储器中空闲的地址信息中确定所述待写入数据待写入所述第二存储设备的缓存存储器中的地址。
4.根据权利要求3所述的方法,其特征在于,所述将所述写数据命令发送给所述第二存储设备的方法进一步包括:
将所述待写入数据待写入所述第二存储设备的缓存存储器中的地址的状态标记为不可用。
5.一种数据存储系统,其特征在于,所述数据存储系统包括生产主机、第一存储设备和第二存储设备,其中所述第二存储设备包括缓存存储器,所述第一存储设备包括:
第一接收模块,用于接收所述生产主机发送的写数据请求,所述写数据请求中包括待写入数据;
地址确定模块,用于根据预先获取的所述第二存储设备的缓存存储器中空闲的地址信息,确定所述待写入数据待写入所述第二存储设备的缓存存储器中的地址;
命令生成模块,用于根据所述待写入数据待写入所述第二存储设备的缓存存储器中的地址以及所述待写入数据,生成写数据命令;
第一发送模块,用于将所述写数据命令发送给所述第二存储设备;
其中,空闲的地址信息包括第二存储设备分配内存开始地址、分配内存结束地址、分配内存大小以及预留字段;分配内存开始地址为第二存储设备中空闲的开始地址,分配内存结束地址为空闲的结束地址,分配内存大小为空闲的开始地址到空闲的结束地址的所有空闲的地址的大小。
6.根据权利要求5所述的数据存储系统,其特征在于,所述第一存储设备进一步包括:
第二发送模块,用于向所述第二存储设备发送携带空闲地址字段的消息;
第二接收模块,用于接收所述第二存储设备发送的所述携带空闲地址字段的消息的响应消息,所述响应消息中包括所述第二存储设备的缓存存储器中空闲的地址信息。
7.根据权利要求5所述的数据存储系统,其特征在于,所述写数据请求中还包括所述待写入数据的长度;
地址确定模块进一步包括:
地址确定单元,用于根据所述待写入数据的长度从所述第二存储设备的缓存存储器中空闲的地址信息中确定所述待写入数据待写入所述第二存储设备的缓存存储器中的地址。
8.根据权利要求6所述的数据存储系统,其特征在于,所述第一发送模块进一步包括:
地址状态标记单元,用于将所述待写入数据待写入所述第二存储设备的缓存存储器中的地址的状态标记为不可用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310687573.1A CN103645969B (zh) | 2013-12-13 | 2013-12-13 | 数据复制方法及数据存储系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310687573.1A CN103645969B (zh) | 2013-12-13 | 2013-12-13 | 数据复制方法及数据存储系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103645969A CN103645969A (zh) | 2014-03-19 |
CN103645969B true CN103645969B (zh) | 2017-06-20 |
Family
ID=50251190
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310687573.1A Active CN103645969B (zh) | 2013-12-13 | 2013-12-13 | 数据复制方法及数据存储系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103645969B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104571960B (zh) * | 2014-12-30 | 2018-01-16 | 华为技术有限公司 | Io请求分发装置及方法、主机、存储阵列和计算机系统 |
CN104580009B (zh) * | 2015-01-28 | 2018-08-21 | 华为技术有限公司 | 芯片转发数据的方法及装置 |
CN111666044B (zh) * | 2016-02-29 | 2021-11-30 | 华为技术有限公司 | 一种访问叠瓦式磁记录smr硬盘的方法及服务器 |
KR102527992B1 (ko) * | 2016-03-14 | 2023-05-03 | 삼성전자주식회사 | 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템 |
CN106648959B (zh) * | 2016-09-07 | 2020-03-10 | 华为技术有限公司 | 数据存储的方法和存储系统 |
CN108076090B (zh) * | 2016-11-11 | 2021-05-18 | 华为技术有限公司 | 数据处理方法和存储管理系统 |
CN107003943B (zh) * | 2016-12-05 | 2019-04-12 | 华为技术有限公司 | NVMe over Fabric架构中数据读写命令的控制方法、存储设备和系统 |
CN107577421A (zh) * | 2017-07-31 | 2018-01-12 | 深圳市牛鼎丰科技有限公司 | 智能设备扩容方法、装置、存储介质和计算机设备 |
CN107797945A (zh) * | 2017-10-31 | 2018-03-13 | 郑州云海信息技术有限公司 | 一种存储系统及其数据存储方法、装置、系统及设备 |
CN109614264B (zh) * | 2018-10-31 | 2023-12-08 | 华为技术有限公司 | 一种数据备份方法、装置及系统 |
WO2020118650A1 (zh) * | 2018-12-14 | 2020-06-18 | 华为技术有限公司 | 快速发送写数据准备完成消息的方法、设备和系统 |
CN112559388B (zh) * | 2020-12-14 | 2022-07-12 | 杭州宏杉科技股份有限公司 | 数据缓存方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6434641B1 (en) * | 1999-05-28 | 2002-08-13 | Unisys Corporation | System for reducing the number of requests presented to a main memory in a memory storage system employing a directory-based caching scheme |
CN1652093A (zh) * | 2004-02-05 | 2005-08-10 | 株式会社日立制作所 | 存储子系统和存储子系统的控制方法 |
CN102279810A (zh) * | 2011-08-11 | 2011-12-14 | 浪潮(北京)电子信息产业有限公司 | 一种网络存储服务器及其缓存数据的方法 |
CN103019364A (zh) * | 2011-09-22 | 2013-04-03 | 株式会社东芝 | 控制系统和控制方法 |
CN103309820A (zh) * | 2013-06-28 | 2013-09-18 | 曙光信息产业(北京)有限公司 | 磁盘阵列缓存的实现方法 |
-
2013
- 2013-12-13 CN CN201310687573.1A patent/CN103645969B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6434641B1 (en) * | 1999-05-28 | 2002-08-13 | Unisys Corporation | System for reducing the number of requests presented to a main memory in a memory storage system employing a directory-based caching scheme |
CN1652093A (zh) * | 2004-02-05 | 2005-08-10 | 株式会社日立制作所 | 存储子系统和存储子系统的控制方法 |
CN102279810A (zh) * | 2011-08-11 | 2011-12-14 | 浪潮(北京)电子信息产业有限公司 | 一种网络存储服务器及其缓存数据的方法 |
CN103019364A (zh) * | 2011-09-22 | 2013-04-03 | 株式会社东芝 | 控制系统和控制方法 |
CN103309820A (zh) * | 2013-06-28 | 2013-09-18 | 曙光信息产业(北京)有限公司 | 磁盘阵列缓存的实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103645969A (zh) | 2014-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103645969B (zh) | 数据复制方法及数据存储系统 | |
US11340672B2 (en) | Persistent reservations for virtual disk using multiple targets | |
US10379975B2 (en) | Method for remote asynchronous replication of volumes and apparatus therefor | |
CN108170768A (zh) | 数据库同步方法、装置及可读介质 | |
US5883909A (en) | Method and apparatus for reducing data transfers across a memory bus of a disk array controller | |
US7149846B2 (en) | RAID protected external secondary memory | |
CN103761058B (zh) | Raid1和raid4混合结构网络存储系统及方法 | |
US8060772B2 (en) | Storage redundant array of independent drives | |
JP5112003B2 (ja) | ストレージ装置及びこれを用いたデータ格納方法 | |
CN103761190B (zh) | 数据处理方法及装置 | |
US20070022267A1 (en) | Method, system, and article of manufacture for consistent copying of storage volumes | |
CN101291347B (zh) | 一种网络存储系统 | |
US20060136654A1 (en) | Method and computer program product to increase I/O write performance in a redundant array | |
CN102918509B (zh) | 数据读写方法、装置和存储系统 | |
CN108733326B (zh) | 一种磁盘处理方法及装置 | |
CN101566927B (zh) | 存储系统和存储控制器以及数据缓存方法 | |
CN105955841B (zh) | 一种raid双控制器利用磁盘进行写缓存镜像的方法 | |
CN102053802B (zh) | 网络独立冗余磁盘阵列系统 | |
CN106886368B (zh) | 一种块设备写io整形和多控制器同步系统及同步方法 | |
CN110196818A (zh) | 缓存数据的方法、缓存设备和存储系统 | |
CN102868727A (zh) | 一种实现逻辑卷高可用性的方法 | |
CN108427728A (zh) | 元数据的管理方法、设备及计算机可读介质 | |
CN110618785A (zh) | 双控存储系统 | |
CN101504591B (zh) | 存储系统、解除方法以及副侧的存储装置 | |
CN109783000B (zh) | 一种数据处理方法及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |