CN104735119B - 用于数据拷贝避免的方法和装置 - Google Patents
用于数据拷贝避免的方法和装置 Download PDFInfo
- Publication number
- CN104735119B CN104735119B CN201310724717.6A CN201310724717A CN104735119B CN 104735119 B CN104735119 B CN 104735119B CN 201310724717 A CN201310724717 A CN 201310724717A CN 104735119 B CN104735119 B CN 104735119B
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- memory space
- memory node
- node
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage 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/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
- G06F3/0647—Migration mechanisms
-
- 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/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/28—Using a specific disk cache architecture
- G06F2212/285—Redundant cache memory
- G06F2212/286—Mirrored cache memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/31—Providing disk cache in a specific location of a storage system
- G06F2212/314—In storage network, e.g. network attached cache
-
- 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
- G06F3/065—Replication mechanisms
Abstract
本发明的实施例涉及用于数据拷贝避免的方法和装置。根据本发明的实施例,在从第一存储节点接收到数据访问请求之后,第二存储节点发送给第一存储节点的不是第二镜像高速缓存中的第二存储空间的地址,而是对应于第二存储空间的、第一高速缓存中的第一存储空间的地址。由此,数据访问可以直接关于第一存储节点上的第一高速缓存来完成。本发明的实施例有效地降低了跨不同存储节点的数据通信,消除了潜在的系统性能瓶颈,从而提高了数据访问的性能。公开了相应的方法、装置和计算机程序产品。
Description
技术领域
本发明总体上涉及存储管理,更具体地,涉及用于跨存储节点的数据拷贝避免的方法和装置。
背景技术
为了避免存储阵列的不同层次之间的不必要的内部数据拷贝,已经提出了数据拷贝避免(Data Copy Avoidance,DCA)协议。根据DCA协议,当主机或分层结构中的驱动器发出数据读取或者数据写入命令时,请求将直接被向下传递至设备堆栈(device stack)而无需经过任何缓冲区。当数据访问命令达到高速缓存(cache)层之后,高速缓存层提供相应的缓冲区(或称为高速缓冲页面),数据可以在访问命令发起方与高速缓存之间直接传送,而无需进行额外的数据拷贝。DCA协议有助于提高数据存取的效率。
然而,目前的DCA方案仅仅适用于单个存储节点(storage node),而无法跨不同的物理存储节点有效地实施。对于由两个或者更多的物理存储节点组成的存储系统而言,在特定的条件下,需要将数据输出/输出(I/O)操作从一个存储节点重定向到另一个存储节点。例如,当向主机展现的逻辑单元号(LUN)是虚拟LUN时,可能需要将I/O操作从本地存储节点重定向至另一分离的存储节点。在已知的DCA方案中,以数据写入作为示例,数据将首先被传输到发起方存储节点的内部缓冲区中。数据继而从该内部缓冲区被传送到目的地存储节点中的镜像高速缓存(mirrored cache)中。此时,如已知的,DCA协议要求目的地存储节点的镜像高速缓存将这些数据再次镜像回发起方存储节点的镜像高速缓存。由此,在一次数据写入操作中,数据要在不同存储节点之间被传输两次,这浪费了资源并且降低了操作效率。类似地,目前基于DCA的跨存储节点数据读取同样受制于上述问题。
因此,本领域中需要一种更为有效的跨存储节点的数据拷贝避免的技术方案。
发明内容
为了解决上述问题,本发明提出一种更为有效的跨存储节点的数据拷贝避免的技术方案。
在本发明的一个方面,提供一种用于跨存储节点的数据拷贝避免的方法。所述方法包括:从第一存储节点向第二存储节点发送数据访问请求,所述数据访问请求指示与所述第二存储节点相关联的地址;从所述第二存储节点接收所述第一存储节点处的第一镜像高速缓存中的第一存储空间的地址,所述第一存储空间与所述第二存储节点处的第二镜像高速缓存中的第二存储空间相关联地被分配,所述第二存储空间由所述第二存储节点响应于所述数据访问请求而分配;以及基于接收到的所述地址,使用所述第一存储空间来执行所述数据访问。
在本发明的另一方面,提供一种用于跨存储节点的数据拷贝避免的方法。所述方法包括:在第二存储节点处接收来自第一存储节点的数据访问请求,所述数据访问请求指示与所述第二存储节点相关联的地址;基于所述数据访问请求,在所述第二存储节点处的第二镜像高速缓存中分配第二存储空间;以及向所述第一存储节点发送所述第一存储节点处的第一镜像高速缓存中的第一存储空间的地址,所述第一存储空间与所述第二存储空间相关联地被分配。
在本发明的又一方面,提供一种用于跨存储节点的数据拷贝避免的装置。所述装置包括:请求发送单元,被配置为从第一存储节点向第二存储节点发送数据访问请求,所述数据访问请求指示与所述第二存储节点相关联的地址;地址接收单元,被配置为从所述第二存储节点接收所述第一存储节点处的第一镜像高速缓存中的第一存储空间的地址,所述第一存储空间与所述第二存储节点处的第二镜像高速缓存中的第二存储空间相关联地被分配,所述第二存储空间由所述第二存储节点响应于所述数据访问请求而分配;以及数据访问单元,被配置为基于接收到的所述地址,使用所述第一存储空间来执行所述数据访问。
在本发明的再一方面,提供一种用于跨存储节点的数据拷贝避免的装置。所述装置包括:请求接收单元,被配置为在第二存储节点处接收来自第一存储节点的数据访问请求,所述数据访问请求指示与所述第二存储节点相关联的地址;高速缓存分配单元,被配置为基于所述数据访问请求,在所述第二存储节点处的第二镜像高速缓存中分配第二存储空间;以及地址发送单元,被配置为向所述第一存储节点发送所述第一存储节点处的第一镜像高速缓存中的第一存储空间的地址,所述第一存储空间与所述第二存储空间相关联地被分配。
通过下文描述将会理解,根据本发明的实施例,目的地存储节点发送给第一存储节点的不再是第二镜像高速缓存中的第二存储空间的地址。相反,第二存储节点将对应于第二存储空间的、第一高速缓存中的第一存储空间的地址发送给第一高速缓存。DCA协议确保这是可行的。由此,数据访问可以直接关于第一存储节点上的第一高速缓存来完成。与现有技术相比,本发明的实施例显著降低了跨不同存储节点的数据通信,消除了潜在的系统性能瓶颈,从而提高了数据访问的性能。本发明的实施例所能实现的其他益处将通过下文描述而清楚。
附图说明
通过参考附图阅读下文的详细描述,本发明实施例的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例而非限制性的方式示出了本发明的若干实施例,其中:
图1示出了两个示例性的层级式存储节点的框图;
图2示出了根据本发明的示例性实施例的用于跨存储节点的数据拷贝避免的方法的流程图;
图3示出了根据本发明的示例性实施例的用于跨存储节点的数据拷贝避免的装置的框图;
图4示出了根据本发明的示例性实施例的用于跨存储节点的数据拷贝避免的装置的框图;以及
图5示出了适于实现本发明的示例实施例的计算机系统的框图。
在各个附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考附图中示出的若干示例实施例来描述本发明的原理。应当理解,描述这些实施例仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。
图1示出了两个示例性的层级式存储节点,即第一存储节点101和第二存储节点102。如图所示,第一存储节点101包括第一I/O重定向器(I/O redirector)103、第一映射LUN层104和第一镜像高速缓存105。注意,第一存储节点101还可以包括任何其他适当的组件,例如小型端口(miniport)、底层的独立磁盘冗余阵列(RAID)等等。为了避免混淆,图中没有示出这些组件。类似地,第二存储节点102包括第二I/O重定向器106、第二映射LUN层107和第二镜像高速缓存108。
首先参考图1来描述传统的DCA方案。作为示例,假设第一存储节点101接收到的数据访问指令是数据写入指令。例如,第一存储节点101可以经由适当的端口从主机(host)接收数据写入命令。第一存储节点101确定与该数据写入命令相关联的地址(例如,虚拟LUN)是由第二存储节点102拥有。此时,第一存储节点101的第一I/O重定向器103将该数据写入请求发送给第二存储节点102的第二I/O重定向器106。
基于该数据访问请求,第二存储节点102处的第二映射LUN层107确定目标地址(例如,目标虚拟LUN),并且将其映射为底层硬件设备(例如,RAID)所提供的LUN。此后,根据数据写入请求,在第二存储节点102处的第二镜像高速缓存108中分配适当的存储空间,例如一组高速缓存页面。所分配存储空间的地址从第二镜像高速缓存108被逐级向上传递给第二映射LUN层107和第二I/O重定向器106。第二存储节点102的第二I/O重定向器106将所分配存储空间的地址返回给第一存储节点101的第一I/O重定向器103。
第一I/O重定向器103通知上层发起数据传输,并且数据被写入第一I/O重定向器103处的缓冲区中。根据接收到的地址,第一I/O重定向器103例如通过第一存储节点101与第二存储节点102之间的公共消息链路(Common Message Link,CMI)将数据存储到第二存储节点102的第二镜像高速缓存108的所分配存储空间中。此时,根据DCA协议,第二镜像高速缓存108将会把被写入的数据镜像到第一存储节点101的第一镜像高速缓存105中(反之,第一镜像高速缓存105中的任何数据更新也会被镜像到第二镜像高速缓存108中)。
换言之,根据目前的DCA方案,在一次数据写入操作过程中,数据在不同的存储节点之间被复制了两次。这将降低操作效率,并且使得存储节点之间的通信资源成为系统性能的潜在瓶颈。根据目前的DCA方案,数据读取也存在类似的问题。传统上,由于第二存储节点102将第二镜像存储高速缓存108中分配的存储空间的地址返回给第一存储节点101,因此第一存储节点101对数据的每次读取都将引起两个存储节点之间的数据通信,从而显著地增加开销并且降低性能。
为了克服上述问题,本发明的实施例提出了一种全新的DCA方案。图2示出了根据本发明的示例性实施例的用于数据拷贝避免的方法200的流程图。为讨论方便起见,在下文的实施例中,描述了两个不同的数据存储节点,即,第一存储节点和第二存储节点。但是应当理解,本发明的实施例可应用于包含任意数目的存储节点的存储系统中。还请注意,在图2中,虚线左侧的各个步骤由第一存储节点执行,而虚线右侧的各个步骤由第二存储节点执行。
如上所述,第一存储节点例如从主机接收数据访问请求,并且判断该数据访问请求所针对的数据地址不在第一存储节点,而是与独立的第二存储节点相关联。在步骤S201,数据访问请求从第一存储节点被发送给第二存储节点。在某些实施例中,数据访问请求例如可由第一存储节点的I/O重定向器转发给第二存储节点的I/O重定向器。当然这仅仅是示例,根据不同的实现,第一存储节点和第二存储节点之间可以使用任何适当的机制传送数据访问请求。
相应地,在步骤S211,第二存储节点接收来自第一存储节点的该数据访问请求。在步骤S212,第二存储节点根据该数据访问请求在第二存储节点处的第二镜像高速缓冲中分配存储空间(称为“第二存储空间”)。作为一个示例,在上文参考图1描述的分层存储结构中,第二存储节点的第二I/O重定向器向下发送数据访问请求,第二映射LUN层确定目标虚拟LUN,并且在第二镜像高速缓存中分配一组镜像高速缓存页面作为第二存储空间。
根据DCA机制可知,在第二存储节点处的第二镜像高速缓存分配了第二存储空间之后,第一存储节点处的第一镜像高速缓存将会与第二存储空间相关联地分配对应的存储空间(称为“第一存储空间”)。例如,第一存储空间可以是第一镜像高速缓存中的一组高速缓存页面。特别地,第一存储空间在第一镜像高速缓存中的地址是第二存储节点可知的,这是由镜像高速缓存机制保证的。例如,第一存储空间的地址遵循DCA协议被通知给第二存储节点,在此不再赘述。
接下来,在步骤S213,第二存储节点向第一存储节点发送根据DCA协议获知的第一存储节点处的第一镜像高速缓存中的第一存储空间的地址。例如,在参考图1描述的示例性分层存储结构中,第二存储节点102的第二镜像高速缓存108可以将第一存储空间的地址传输给第二映射LUN层107。第二映射LUN层107转而将第一存储空间的地址向上传递给第二I/O重定向器106。第二I/O重定向器106将该地址发送给第一存储节点101的第一I/O重定向器103。
相应地,在步骤S202,第一存储节点从第二存储节点接收第一节点处的第一镜像高速缓存中的第一存储空间的地址。接下来,在步骤S203,基于接收到的第一存储空间的地址,第一存储节点使用接收到的第一存储空间的地址来执行数据访问操作。
出于说明目的,参考图1描述的示例性架构描述方法200的若干示例实施例。首先考虑数据访问请求是数据写入请求的实施例。根据本发明的实施例,如上所述,响应于确定写入操作的目的地地址与第二存储节点102相关联,第一存储节点101例如通过第一I/O重定向器103将数据写入请求发送给第二存储节点102的第二I/O重定向器106。按照与上文描述的类似过程,在第二存储节点102处,第二映射LUN层107确定地址(例如,目标虚拟LUN),并且第二镜像存储高速缓存108分配适当的第二存储空间以用于写入数据。
根据DCA协议,在第二存储空间被分配之后,在第一存储节点101处的第一镜像高速缓存105中,将与第二存储空间相关联地分配第一存储空间。而且,DCA协议确保:第一存储空间在第一镜像高速缓存105中的地址是第二存储节点102可知的。由此,第二存储节点102向第一存储节点101返回第一镜像高速缓存105中的第一存储空间的地址,而不是如同现有技术中那样返回第二镜像高速缓存108中的第二存储空间的地址。
相应地,在从第二存储节点102接收到第一存储空间的地址之后,第一存储节点101可以基于该地址,将数据直接写入第一镜像高速缓存105中的第一存储空间。根据DCA协议,当数据被写入第一存储空间之后,该数据将被镜像到第二存储节点102的第二镜像高速缓存108的第二存储空间中。例如,在某些实施例中,数据可以经由第一存储节点101和第二存储节点102之间的CMI被镜像。这样,数据可以随后被写入第二存储节点的下层存储设备中,从而完成数据写入。
根据本发明的某些实施例,在待写入的数据被镜像到第二存储节点102的第二镜像高速缓存108之后,第一存储节点101可以通知第二存储节点102数据镜像完成。作为响应,第二存储节点102可以转而向第一存储节点101发送数据写入成功消息。例如,在某些实施例中,第二镜像高速缓存108可以将数据写入完成通知给上层的第二映射LUN层107。第二映射LUN层107提交“脏”(dirty)元数据,并且将写入完成通知第二I/O重定向器106。第二I/O重定向器106转而向第一存储节点101的第一I/O重定向器103发送数据写入完成消息。第一I/O重定向器103可以将该消息传递给数据写入请求的发起方,例如主机,从而完成数据写入操作。
仍然参考图1,描述数据访问请求是数据读取请求的实施例。根据本发明的实施例,数据读取请求从第一存储节点101被发送给第二存储节点102。作为响应,第二存储节点102的第二镜像高速缓存108分配第二存储空间。要读取的数据被存储到第二存储空间中。根据DCA协议,被存储到第二存储空间中的数据例如经由CMI被镜像到第一存储节点101的第一镜像高速缓存105中的第一存储空间中。如上所述,该第一存储空间与第二存储空间相关联地被分配。
此后,根据本发明的实施例,第二存储节点102将第一存储空间的地址发送给第一存储节点101。由此,第一存储节点101可以直接从第一存储空间中读取数据。在随后的读取操作中,该数据均可从第一存储节点101本地的第一高速缓存105中直接读取,而无需再次触发第一存储节点101与第二存储节点102之间的数据通信。
通过上文描述将会理解,根据本发明的实施例,第二存储节点发送给第一存储节点的不再是第二镜像高速缓存中的第二存储空间的地址。相反,第二存储节点将对应于第二存储空间的、第一高速缓存中的第一存储空间的地址发送给第一高速缓存。DCA协议确保这是可行的。由此,数据访问可以直接关于第一存储节点上的第一高速缓存来完成。对于数据写入而言,传统的DCA需要在CMI上两次传输相同的数据。根据本发明的实施例,则只需要单次数据传输。对于数据读取而言,根据本发明的实施例,数据被取回到本地高速缓存中。由此,此后对数据的每次读取都将直接在本地高速缓存中命中。与现有技术相比,本发明的实施例显著降低了跨不同存储节点的数据通信,消除了潜在的系统性能瓶颈,从而提高了数据访问的性能。
图3示出了根据本发明的示例性实施例的用于跨存储节点的数据拷贝避免的装置300的框图。根据本发明的实施例,装置300可与上文描述的第一存储节点101结合操作。
如图3所示,根据本发明的实施例,装置300包括:请求发送单元301,被配置为从第一存储节点向第二存储节点发送数据访问请求,所述数据访问请求指示与所述第二存储节点相关联的地址;地址接收单元302,被配置为从所述第二存储节点接收所述第一存储节点处的第一镜像高速缓存中的第一存储空间的地址,所述第一存储空间与所述第二存储节点处的第二镜像高速缓存中的第二存储空间相关联地被分配,所述第二存储空间由所述第二存储节点响应于所述数据访问请求而分配;以及数据访问单元303,被配置为基于接收到的所述地址,使用所述第一存储空间来执行所述数据访问。
在本发明的某些实施例中,所述数据访问请求是数据写入请求,并且所述数据访问单元303包括:数据写入单元,被配置为将所述数据直接写入所述第一存储空间,使得所述数据从所述第一存储空间被镜像到所述第二存储空间。可选地,装置300还可以包括:写入完成接收单元,被配置为接收来自所述第二存储节点的数据写入完成消息,所述完成消息由所述第二存储节点响应于所述数据被镜像到所述第二存储空间而发送。
备选地或附加地,所述数据访问请求是数据读取请求,并且所述数据访问单元303还包括:数据读取单元,被配置为从所述第一存储空间直接读取所述数据,所述数据从所述第二存储空间被镜像到所述第一存储空间。
在本发明的某些实施例中,所述数据可以经由所述第一存储节点与所述第二存储节点之间的公共消息链路CMI在所述第二存储空间与所述第一存储空间之间被镜像。
图4示出了根据本发明的示例性实施例的用于跨存储节点的数据拷贝避免的装置400的框图。根据本发明的实施例,装置400可与第二存储节点102结合操作。
如图4所示,根据本发明的实施例,装置400包括:请求接收单元401,被配置为在第二存储节点处接收来自第一存储节点的数据访问请求,所述数据访问请求指示与所述第二存储节点相关联的地址;高速缓存分配单元402,被配置为基于所述数据访问请求,在所述第二存储节点处的第二镜像高速缓存中分配第二存储空间;以及地址发送单元403,被配置为向所述第一存储节点发送所述第一存储节点处的第一镜像高速缓存中的第一存储空间的地址,所述第一存储空间与所述第二存储空间相关联地被分配。
在本发明的某些实施例中,所述数据访问请求是数据写入请求,并且根据所述数据写入请求而写入所述第一存储空间的数据被镜像到所述第二存储空间。在本发明的某些实施例中,装置400还可以包括:写入完成发送装置,被配置为响应于所述数据被镜像到所述第二存储空间,从所述第二存储节点向所述第一存储节点发送数据写入完成消息。
在本发明的某些实施例中,所述数据访问请求是数据读取请求,并且其中根据所述数据读取请求而被读取到所述第二存储空间中的数据被镜像到所述第一存储空间。
在本发明的某些实施例中,所述数据经由所述第一存储节点与所述第二存储节点之间的公共消息链路CMI在所述第二存储空间与所述第一存储空间之间被镜像。
为清晰起见,在图3和图4中没有示出装置300和400的某些可选单元。然而,应当理解,上文参考本发明的方法所描述的各个特征同样适用于装置300和400。而且,装置300和400中的各个单元可以是硬件模块,也可以是软件单元模块。例如,在某些实施例中,装置300和400可以部分或者全部利用软件和/或固件来实现,例如被实现为包含在计算机可读介质上的计算机程序产品。备选地或附加地,装置300和400可以部分或者全部基于硬件来实现,例如被实现为集成电路(IC)、专用集成电路(ASIC)、片上系统(SOC)、现场可编程门阵列(FPGA)等。本发明的范围在此方面不受限制。
下面参考图5,其示出了适于用来实现本发明实施例的计算机系统500的示意性框图。如图5所示,计算机系统500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM503中,还存储有设备500操作所需的各种程序和数据。CPU501、ROM502以及RAM503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本发明的实施例,上文参考图2描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行方法200的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。
一般而言,本发明的各种示例实施例可以在硬件或专用电路、软件、逻辑,或其任何组合中实施。某些方面可以在硬件中实施,而其他方面可以在可以由控制器、微处理器或其他计算设备执行的固件或软件中实施。当本发明的实施例的各方面被图示或描述为框图、流程图或使用某些其他图形表示时,将理解此处描述的方框、装置、系统、技术或方法可以作为非限制性的示例在硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备,或其某些组合中实施。
而且,流程图中的各框可以被看作是方法步骤,和/或计算机程序代码的操作生成的操作,和/或理解为执行相关功能的多个耦合的逻辑电路元件。例如,本发明的实施例包括计算机程序产品,该计算机程序产品包括有形地实现在机器可读介质上的计算机程序,该计算机程序包含被配置为实现上文描述方法的程序代码。
在公开的上下文内,机器可读介质可以是包含或存储用于或有关于指令执行系统、装置或设备的程序的任何有形介质。机器可读介质可以是机器可读信号介质或机器可读存储介质。机器可读介质可以包括但不限于电子的、磁的、光学的、电磁的、红外的或半导体系统、装置或设备,或其任意合适的组合。机器可读存储介质的更详细示例包括带有一根或多根导线的电气连接、便携式计算机磁盘、硬盘、随机存储存取器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光存储设备、磁存储设备,或其任意合适的组合。
用于实现本发明的方法的计算机程序代码可以用一种或多种编程语言编写。这些计算机程序代码可以提供给通用计算机、专用计算机或其他可编程的数据处理装置的处理器,使得程序代码在被计算机或其他可编程的数据处理装置执行的时候,引起在流程图和/或框图中规定的功能/操作被实施。程序代码可以完全在计算机上、部分在计算机上、作为独立的软件包、部分在计算机上且部分在远程计算机上或完全在远程计算机或服务器上执行。
另外,尽管操作以特定顺序被描绘,但这并不应该理解为要求此类操作以示出的特定顺序或以相继顺序完成,或者执行所有图示的操作以获取期望结果。在某些情况下,多任务或并行处理会是有益的。同样地,尽管上述讨论包含了某些特定的实施细节,但这并不应解释为限制任何发明或权利要求的范围,而应解释为对可以针对特定发明的特定实施例的描述。本说明书中在分开的实施例的上下文中描述的某些特征也可以整合实施在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以分离地在多个实施例或在任意合适的子组合中实施。
针对前述本发明的示例实施例的各种修改、改变将在连同附图查看前述描述时对相关技术领域的技术人员变得明显。任何及所有修改将仍落入非限制的和本发明的示例实施例范围。此外,前述说明书和附图存在启发的益处,涉及本发明的这些实施例的技术领域的技术人员将会想到此处阐明的本发明的其他实施例。
将会理解,本法明的实施例不限于公开的特定实施例,并且修改和其他实施例都应包含于所附的权利要求范围内。尽管此处使用了特定的术语,但是它们仅在通用和描述的意义上使用,而并不用于限制目的。
Claims (22)
1.一种用于跨存储节点的数据拷贝避免的方法,所述方法包括:
从第一存储节点向第二存储节点发送数据访问请求,所述数据访问请求指示与所述第二存储节点相关联的地址;
从所述第二存储节点接收所述第一存储节点处的第一镜像高速缓存中的第一存储空间的地址,所述第一存储空间与所述第二存储节点处的第二镜像高速缓存中的第二存储空间相关联地被分配,所述第二存储空间由所述第二存储节点响应于所述数据访问请求而分配;以及
基于接收到的所述地址,使用所述第一存储空间来执行所述数据访问。
2.根据权利要求1所述的方法,其中所述数据访问请求是数据写入请求,并且其中使用所述第一存储空间来执行所述数据访问包括:
将所述数据直接写入所述第一存储空间,使得所述数据从所述第一存储空间被镜像到所述第二存储空间。
3.根据权利要求2所述的方法,还包括:
接收来自所述第二存储节点的数据写入完成消息,所述完成消息由所述第二存储节点响应于所述数据被镜像到所述第二存储空间而发送。
4.根据权利要求1所述的方法,其中所述数据访问请求是数据读取请求,并且其中使用所述第一存储空间来执行所述数据访问包括:
从所述第一存储空间直接读取所述数据,所述数据从所述第二存储空间被镜像到所述第一存储空间。
5.根据权利要求2-4任一项所述的方法,其中所述数据经由所述第一存储节点与所述第二存储节点之间的公共消息链路CMI在所述第二存储空间与所述第一存储空间之间被镜像。
6.一种用于跨存储节点的数据拷贝避免的方法,所述方法包括:
在第二存储节点处接收来自第一存储节点的数据访问请求,所述数据访问请求指示与所述第二存储节点相关联的地址;
基于所述数据访问请求,在所述第二存储节点处的第二镜像高速缓存中分配第二存储空间;以及
向所述第一存储节点发送所述第一存储节点处的第一镜像高速缓存中的第一存储空间的地址,所述第一存储空间与所述第二存储空间相关联地被分配。
7.根据权利要求6所述的方法,其中所述数据访问请求是数据写入请求,并且其中根据所述数据写入请求而写入所述第一存储空间的数据被镜像到所述第二存储空间。
8.根据权利要求7所述的方法,还包括:
响应于所述数据被镜像到所述第二存储空间,从所述第二存储节点向所述第一存储节点发送数据写入完成消息。
9.根据权利要求6所述的方法,其中所述数据访问请求是数据读取请求,并且其中根据所述数据读取请求而被读取到所述第二存储空间中的数据被镜像到所述第一存储空间。
10.根据权利要求7-9任一项所述的方法,其中所述数据经由所述第一存储节点与所述第二存储节点之间的公共消息链路CMI在所述第二存储空间与所述第一存储空间之间被镜像。
11.一种用于跨存储节点的数据拷贝避免的装置,所述装置包括:
请求发送单元,被配置为从第一存储节点向第二存储节点发送数据访问请求,所述数据访问请求指示与所述第二存储节点相关联的地址;
地址接收单元,被配置为从所述第二存储节点接收所述第一存储节点处的第一镜像高速缓存中的第一存储空间的地址,所述第一存储空间与所述第二存储节点处的第二镜像高速缓存中的第二存储空间相关联地被分配,所述第二存储空间由所述第二存储节点响应于所述数据访问请求而分配;以及
数据访问单元,被配置为基于接收到的所述地址,使用所述第一存储空间来执行所述数据访问。
12.根据权利要求11所述的装置,其中所述数据访问请求是数据写入请求,并且其中所述数据访问单元包括:
数据写入单元,被配置为将所述数据直接写入所述第一存储空间,使得所述数据从所述第一存储空间被镜像到所述第二存储空间。
13.根据权利要求12所述的装置,还包括:
写入完成接收单元,被配置为接收来自所述第二存储节点的数据写入完成消息,所述完成消息由所述第二存储节点响应于所述数据被镜像到所述第二存储空间而发送。
14.根据权利要求11所述的装置,其中所述数据访问请求是数据读取请求,并且其中所述数据访问单元包括:
数据读取单元,被配置为从所述第一存储空间直接读取所述数据,所述数据从所述第二存储空间被镜像到所述第一存储空间。
15.根据权利要求12-14任一项所述的装置,其中所述数据经由所述第一存储节点与所述第二存储节点之间的公共消息链路CMI在所述第二存储空间与所述第一存储空间之间被镜像。
16.一种用于跨存储节点的数据拷贝避免的装置,所述装置包括:
请求接收单元,被配置为在第二存储节点处接收来自第一存储节点的数据访问请求,所述数据访问请求指示与所述第二存储节点相关联的地址;
高速缓存分配单元,被配置为基于所述数据访问请求,在所述第二存储节点处的第二镜像高速缓存中分配第二存储空间;以及
地址发送单元,被配置为向所述第一存储节点发送所述第一存储节点处的第一镜像高速缓存中的第一存储空间的地址,所述第一存储空间与所述第二存储空间相关联地被分配。
17.根据权利要求16所述的装置,其中所述数据访问请求是数据写入请求,并且其中根据所述数据写入请求而写入所述第一存储空间的数据被镜像到所述第二存储空间。
18.根据权利要求17所述的装置,还包括:
写入完成发送装置,被配置为响应于所述数据被镜像到所述第二存储空间,从所述第二存储节点向所述第一存储节点发送数据写入完成消息。
19.根据权利要求16所述的装置,其中所述数据访问请求是数据读取请求,并且其中根据所述数据读取请求而被读取到所述第二存储空间中的数据被镜像到所述第一存储空间。
20.根据权利要求17-19任一项所述的装置,其中所述数据经由所述第一存储节点与所述第二存储节点之间的公共消息链路CMI在所述第二存储空间与所述第一存储空间之间被镜像。
21.一种计算机可读介质,所述计算机可读介质上存储有指令,当所述指令在被机器的至少一个处理单元执行时,使得所述机器实现由权利要求1-5中任一项所述的方法。
22.一种计算机可读介质,所述计算机可读介质上存储有指令,当所述指令在被机器的至少一个处理单元执行时,使得所述机器实现由权利要求6-10中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310724717.6A CN104735119B (zh) | 2013-12-23 | 2013-12-23 | 用于数据拷贝避免的方法和装置 |
US14/573,782 US9734074B2 (en) | 2013-12-23 | 2014-12-17 | Data copy avoidance across a storage |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310724717.6A CN104735119B (zh) | 2013-12-23 | 2013-12-23 | 用于数据拷贝避免的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104735119A CN104735119A (zh) | 2015-06-24 |
CN104735119B true CN104735119B (zh) | 2018-05-04 |
Family
ID=53400190
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310724717.6A Active CN104735119B (zh) | 2013-12-23 | 2013-12-23 | 用于数据拷贝避免的方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9734074B2 (zh) |
CN (1) | CN104735119B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107870731B (zh) | 2016-09-23 | 2021-07-27 | 伊姆西Ip控股有限责任公司 | 独立盘冗余阵列系统的管理方法和电子设备 |
JP6884165B2 (ja) | 2019-02-27 | 2021-06-09 | 株式会社日立製作所 | 複数のストレージノードを含むストレージシステム |
CN112445413A (zh) * | 2019-08-29 | 2021-03-05 | 华为技术有限公司 | 一种数据存储的方法、装置及相关设备 |
CN113127430B (zh) * | 2019-12-30 | 2024-05-03 | 北京懿医云科技有限公司 | 镜像信息处理方法、装置、计算机可读介质及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1523608A (zh) * | 2003-01-16 | 2004-08-25 | 松下电器产业株式会社 | 半导体存储器件 |
US6973484B1 (en) * | 2000-12-29 | 2005-12-06 | 3Pardata, Inc. | Method of communicating data in an interconnect system |
CN1894672A (zh) * | 2003-12-19 | 2007-01-10 | 维里塔斯管理公司 | 用于对存储区中的选定数据执行操作的方法和设备 |
CN102576323A (zh) * | 2009-10-28 | 2012-07-11 | 国际商业机器公司 | 促进复制期间的数据压缩 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5544347A (en) * | 1990-09-24 | 1996-08-06 | Emc Corporation | Data storage system controlled remote data mirroring with respectively maintained data indices |
US7403945B2 (en) * | 2004-11-01 | 2008-07-22 | Sybase, Inc. | Distributed database system providing data and space management methodology |
US7975109B2 (en) * | 2007-05-30 | 2011-07-05 | Schooner Information Technology, Inc. | System including a fine-grained memory and a less-fine-grained memory |
US8762642B2 (en) * | 2009-01-30 | 2014-06-24 | Twinstrata Inc | System and method for secure and reliable multi-cloud data replication |
US8655974B2 (en) * | 2010-04-30 | 2014-02-18 | International Business Machines Corporation | Zero copy data transmission in a software based RDMA network stack |
US8868828B2 (en) * | 2011-05-24 | 2014-10-21 | International Business Machines Corporation | Implementing storage adapter performance optimization with cache data/directory mirroring |
US8380668B2 (en) * | 2011-06-22 | 2013-02-19 | Lsi Corporation | Automatic discovery of cache mirror partners in an N-node cluster |
-
2013
- 2013-12-23 CN CN201310724717.6A patent/CN104735119B/zh active Active
-
2014
- 2014-12-17 US US14/573,782 patent/US9734074B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6973484B1 (en) * | 2000-12-29 | 2005-12-06 | 3Pardata, Inc. | Method of communicating data in an interconnect system |
CN1523608A (zh) * | 2003-01-16 | 2004-08-25 | 松下电器产业株式会社 | 半导体存储器件 |
CN1894672A (zh) * | 2003-12-19 | 2007-01-10 | 维里塔斯管理公司 | 用于对存储区中的选定数据执行操作的方法和设备 |
CN102576323A (zh) * | 2009-10-28 | 2012-07-11 | 国际商业机器公司 | 促进复制期间的数据压缩 |
Also Published As
Publication number | Publication date |
---|---|
CN104735119A (zh) | 2015-06-24 |
US20150178213A1 (en) | 2015-06-25 |
US9734074B2 (en) | 2017-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110232037B (zh) | 主机系统及其方法和加速装置 | |
US10725865B2 (en) | Storage unit and storage device | |
CN104040515B (zh) | 在逻辑驱动器模型下呈现直接存取的存储设备 | |
US20220317936A1 (en) | Solid-state drive with initiator mode | |
US10572175B2 (en) | Method and apparatus of shared storage between multiple cloud environments | |
US9213500B2 (en) | Data processing method and device | |
CN106688217A (zh) | 用于融合联网和存储的方法和系统 | |
CN104735119B (zh) | 用于数据拷贝避免的方法和装置 | |
US8650471B2 (en) | System and method for look-aside parity based raid | |
CN106852174A (zh) | 使用区块盘呈现的数据恢复 | |
US20130173834A1 (en) | Methods and apparatus for injecting pci express traffic into host cache memory using a bit mask in the transaction layer steering tag | |
CN110609659A (zh) | 用于执行读取命令的NVMeoF RAID实现方法 | |
CN108733309A (zh) | 存储管理方法、设备和计算机可读介质 | |
US7725654B2 (en) | Affecting a caching algorithm used by a cache of storage system | |
US20160034191A1 (en) | Grid oriented distributed parallel computing platform | |
US8001347B1 (en) | Coherently sharing any form of instant snapshots separately from base volumes | |
US11188270B2 (en) | Targeted secure data overwrite | |
US20150078111A1 (en) | Increased i/o rate for solid state storage | |
JP2007524932A (ja) | パリティデータを生成するための方法、システム、及びプログラム | |
CN105988724B (zh) | 多副本写入存储设备的方法及存储设备 | |
US20160267050A1 (en) | Storage subsystem technologies | |
US20200319819A1 (en) | Method and Apparatus for Improving Parity Redundant Array of Independent Drives Write Latency in NVMe Devices | |
US20210096766A1 (en) | Data-transfer-based raid data update system | |
CN107515723A (zh) | 用于管理存储系统中的存储器的方法和系统 | |
US11922071B2 (en) | Methods and systems for storing data in a distributed system using offload components and a GPU module |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200410 Address after: Massachusetts, USA Patentee after: EMC IP Holding Company LLC Address before: Massachusetts, USA Patentee before: EMC Corp. |
|
TR01 | Transfer of patent right |