CN108139974B - 分布式缓存动态迁移 - Google Patents
分布式缓存动态迁移 Download PDFInfo
- Publication number
- CN108139974B CN108139974B CN201580084051.XA CN201580084051A CN108139974B CN 108139974 B CN108139974 B CN 108139974B CN 201580084051 A CN201580084051 A CN 201580084051A CN 108139974 B CN108139974 B CN 108139974B
- Authority
- CN
- China
- Prior art keywords
- host
- cache
- data
- notification
- response
- 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
Images
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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5682—Policies or rules for updating, deleting or replacing the stored data
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- 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
-
- 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
- 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/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
-
- 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/15—Use in a specific computing environment
- G06F2212/151—Emulated environment, e.g. virtual machine
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种系统,包括:第一主机,包括第一缓存并与虚拟机(virtual machine,VM)相关;以及第二主机,包括第二缓存,其中第一主机用于响应于通知,向第二主机发送第一缓存的缓存数据,所述缓存数据与VM相关,以及所述通知指示VM将从第一主机迁移到第二主机,并且其中第一主机用于响应于接收到通知,向第二主机发送与VM相关的写操作;以及如果所述缓存数据不存在于第二缓存,第二主机用于响应于接收到通知,将与VM的缓存数据相关的读操作应用于第一缓存,以及将与VM的缓存数据相关的写操作应用于第二缓存。
Description
技术领域
本申请涉及分布式缓存领域,尤其涉及一种方法、装置和迁移缓存的系统。
背景技术
虚拟化是指将计算设备提供的资源抽象化的概念。包括操作系统在内的应用可以在针对应用呈现为单个物理主机的虚拟机(virtual machine,VM)内运行。同一个物理主机上可以存在多个VM。因此,虚拟化需要为每个VM维护其具有对所述VM相关资源的独占式访问权的错觉。这种资源被称为虚拟资源。VM可以由与所述VM在同一个主机上的虚拟机管理器(virtual machine manager,VMM)来管理。
虚拟化环境中存在的资源可以包括虚拟CPU、虚拟内存和虚拟的I/O设备等。虚拟化的一个方面是存储虚拟化,其中资源对应于虚拟存储。具体来说,虚拟存储可以对VM呈现为一个或多个虚拟磁盘。从述VM的角度,可以将数据写入虚拟磁盘或从虚拟磁盘中读取数据,然而,实际上虚拟磁盘可以对应于分布在各个位置的存储空间的集合,包括没有在运行VM的计算设备上本地呈现的位置。
在读取或写入数据时,虚拟存储可能存在明显时延,尤其是如果部分虚拟存储在远程位置时。为了减少这种时延,可以提供缓存。缓存可以包括内存,例如闪存,所述内存比用于大规模存储的常规内存更快,可以与本地(虚拟)存储相关,以及可以包括来自存储各个部分的数据,包含远程位置的数据。在一些情况下,缓存可以包括来自本地或远程位置的其它缓存的数据。缓存,类似于虚拟磁盘,可以为了例如解决一个或多个位置上存储空间的限制而分布在多个位置。具有这些属性中的至少一个的缓存也被称为分布式缓存。
VM可以请求从虚拟磁盘中读取数据或将数据写入虚拟磁盘。响应于这种请求,可以针对数据分析与VM相关的缓存。如果存在,可以从缓存中读取数据或将数据写入缓存,而不是直接从缓存后面的存储器读取或写入。可以在单个缓存中维护与多个VM相关的数据。
VM可能会需要从一个位置迁移到另一个位置,例如,从原始物理主机迁移到目的物理主机。在迁移期间,可能会限制VM的可操作性。举例而言,迁移VM可能需要将原始主机上VM占用的本地内存传输到目的主机。迁移可进一步包含将VM与不同的VMM关联,以在目的主机上安装VM。理想情况下,VM内部的应用不应该被变更影响。具体来说,从VM的角度来看,对存储器和其它资源的访问应该保持不变。
VM迁移还包含迁移与VM相关的缓存数据。虽然缓存数据可以分布在多个位置,但并不需要维护与缓存中VM相关的大部分数据,迁移之后所述缓存不再是VM的本地缓存。
一种已知的缓存迁移的方式是在迁移过程中清除与VM相关的所有数据。在此情况下,必须从存储器中,而不是从缓存中检索清除之后所述VM请求的数据。虽然这种检索可以同时用来填充目的主机上的缓存,也被称为缓存预热,但这种过程通常较慢。在新缓存预热并完全可用之前需要花费一些时间。到那时,从存储器中检索所有数据导致数据操作的时延较高。
发明内容
本发明的目的是将VM缓存从一个主机无缝迁移到另一个主机。无缝迁移指的是在整个迁移过程中尽可能地维护VM的运行。
本发明的第一方面定义一种系统,包括:第一主机,包括第一缓存并与VM相关;以及第二主机,包括第二缓存,其中,所述第一主机用于响应于通知,向所述第二主机发送所述第一缓存的缓存数据,所述缓存数据与所述VM相关,以及所述通知指示所述VM将从所述第一主机迁移到所述第二主机,并且其中所述第一主机用于响应于接收到所述通知,向所述第二主机发送与所述VM相关的写操作;以及如果所述缓存数据不存在于所述第二缓存,所述第二主机用于响应于接收到所述通知,将与所述VM的缓存数据相关的读操作应用于所述第一缓存,以及将与所述VM的缓存数据相关的写操作应用于所述第二缓存。
第一方面提供的系统,有利实现了无缝迁移所述VM。根据这一方面,一旦接收到所述迁移通知以及一旦将缓存数据从第一缓存发送到第二缓存,所述第二主机接收并处理读和写操作。换言之,无需等到所有缓存数据都传输到所述第二缓存就可以处理读和写操作。这在处理操作没有时延的程度下有利地实现了无缝迁移。这一优点由协同效应产生,所述协同效应涉及在所述第二缓存上处理写操作以及有条件地在所述第二缓存或所述第一缓存上处理读操作,这取决于对应的待读取的数据是否已经写入所述第二缓存。随着所述缓存数据从第一缓存传输到第二缓存,重新导向到所述第一缓存的读操作的数量减少,由此减少在迁移期间使用的带宽开销。
根据第一方面的第一实施方式,所述第二主机进一步用于响应于确定没有更多所述VM的缓存数据待从所述第一主机发送到所述第二主机,只将与所述VM相关的读操作应用于所述第二缓存。
该第一实施方式的优点在于其定义了从所述第一缓存读取的停止条件,但是限制了到所述第二缓存的读操作的处理。因为没有更多缓存数据待发送到所述第二主机,所以不再需要有条件地从所述第一缓存读取数据。由此避免了有条件地重新导向读操作到所述第一缓存的开销。应注意的是,确定没有更多缓存数据待发送的特征并不意味着所述第一缓存中不存在更多的所述VM的缓存数据。事实上,发送给所述第二主机的缓存数据仍然存在于所述第一缓存,直到被删除。另外,所述VM可以与分布在多个主机中的某些数据相关;因此,即使没有更多数据待发送到所述第二主机,所述的部分数据可以继续存在于所述第一缓存。
第一方面的第二实施方式包括响应于确定没有更多所述VM的缓存数据待从所述第一主机发送到所述第二主机,删除所述第一缓存中已发送的缓存数据。
该第二实施方式的优点如以上第一实施方式中所定义,在确定没有更多缓存数据待发送之后,读操作不再重新导向至所述第一主机。因此,不再需要先前发送到所述第二主机的缓存数据,并且可以释放对应的存储空间。
根据第一方面的第三实施方式,所述系统包括用于发送所述通知的缓存控制器。
该实施方式的优点在于其提供了负责组织多个缓存的单个实体。因此,这个实体,即所述缓存控制器,可以知道哪个主机包含与给定VM相关的缓存数据。也可以知道进行中的发送操作,由此知道迁移步骤进行到哪一步,以及迁移过程是否完成。通过发送通知给主机,所述缓存控制器能够有利地以及方便地使主机无需自己确定迁移操作。
第四实施方式定义发送缓存数据包含首先发送最近检索的、最近写入的或最频繁访问的数据。
第四实施方式增加了第一方面的发明的高度,其增加了读操作在所述第二主机上执行时实际上获取所需缓存数据的可能性,无需重新导向至所述第一主机。该优点是由于所述读操作很可能再次访问最近检索的、最近写入的或最频繁访问的数据,而非其它数据。因为该数据比其它数据优先处理,所以很多情况下避免了重新导向读操作。这进一步减少了资源使用,并提高了系统的响应性。
根据第五实施方式,缓存数据包含缓存元数据。
第五实施方式进一步提高了第一方面,因为其区别了数据与元数据。后者可以包括例如检索频率或访问次数的信息,由此提供实践上文所论述的第四实施方式的简单方案。
第一方面的第六实施方式定义第一主机除发送写操作给所述第二主机之外,进一步用于将与所述VM相关的写操作应用于所述第一缓存。
这考虑到刚刚写入的数据很可能很快被读取的情况。因此,复制用于所述第一缓存主机的所述写操作预测即将进行的导向至该数据的读取,从而减少所述第一缓存主机访问该数据的开销。
第二方面涉及主机设备,包括本地缓存,并用于响应于通知,接收来自远程主机的远程缓存的缓存数据,所述缓存数据与VM相关,所述VM与所述远程主机相关,以及如果所述缓存数据不存在于所述第二缓存中,用于将与所述VM的缓存数据相关的读操作应用于所述远程缓存,并将与所述VM的缓存数据相关的写操作应用于所述本地缓存,所述通知指示所述VM将从所述远程主机迁移到所述主机设备。.
第二方面定义的主机设备可以看作对应于第一方面的第二主机,远程缓存和本地缓存分别对应于第一和第二缓存。因此,第二方面有利地实现了VM的无缝迁移。在发起将缓存数据从所述远程主机发送给所述本地主机之后,导向至所述缓存数据的读和写操作具有最小时延。例如,该时延减少到待读取的数据不存在于所述本地主机上,而是需要从所述远程主机获取的情况。
根据第二方面的第一实施方式,所述主机设备进一步用于响应于确定没有更多所述VM的缓存数据待从所述远程主机发送到所述主机设备,只将与所述VM相关的读操作应用于所述本地缓存。
这一实施方式类似于第一方面的第二实施方式,一旦确定没有更多数据待发送,有利地减少了通信开销。
第二方面的第二实施方式包含缓存控制器发送的通知。
该缓存控制器表示知道即将进行的VM迁移的实体,从而方便地通知参与迁移的主机。
第三方面的第三实施方式定义发送缓存数据包含首先发送最近检索的、最近写入的或最频繁访问的数据。
该实施方式减少了实际上将读操作导向至所述远程主机的情况的数量。例如,最近检索的缓存数据很可能再次被检索。因此,在将缓存数据从所述远程主机发送给所述本地主机时优选该数据提高了所述本地主机的响应性,并且避免了多余的通信和时延。
根据第四实施方式,所述缓存数据包含缓存元数据。
第四实施方式明确了所述元数据,例如关于频繁检索的数据,可以包含于所述缓存数据中。这有助于为某些缓存数据分配高于其它缓存数据的优先级,例如如上文所论述的第三实施方式中所定义的缓存数据。
本发明的第三方面涉及一种方法,包括:响应于通知,从第一主机的第一缓存接收缓存数据,所述缓存数据与VM相关;如果所述缓存数据不存在于所述第二缓存中,将与所述VM相关的读操作应用于所述第一主机的所述第一缓存,以及将与所述VM的缓存数据相关的写操作应用于第二主机的第二缓存,所述通知指示所述VM将从所述第一主机迁移到所述第二主机。
第三方面提供VM从第一主机到第二主机的无缝迁移。根据这一方面,在迁移过程中,所述第二主机接收所述VM的缓存数据,其效果是所述VM的缓存数据部分在所述第二主机可用,并且部分仍然在所述第一主机。即使传输正在进行,导向至所述缓存数据的读和写操作仍然具有最小时延,因为读和写操作是有条件地重新导至到所述第一缓存或应用于所述第二缓存的。
第三方面的第一实施方式包含缓存控制器发送所述通知。
第一实施方式提供实体,即所述缓存控制器,所述实体知道迁移,并且适于方便地向主机通知迁移,比如,迁移是否开始。
根据第三方面的第二实施方式,所述缓存数据包含缓存元数据。
第二实施方式有利于提供迁移过程中所需的附加信息。如上文所论述,可能在发送某些具有优先级的缓存数据给所述第二主机时,处理这些数据时需要这种信息。这种信息可以包含在缓存元数据中。作为所述缓存数据的一部分,无需额外通信就可以访问。
附图说明
图1是根据本发明实施例的系统的方框图;
图2是根据本发明实施例的过程的流程图;
图3是根据本发明实施例的另一过程的流程图;
图4是根据本发明实施例的另一过程的流程图;
图5是根据本发明实施例的另一过程的流程图;以及
图6是根据本发明实施例的另一过程的时序图。
具体实施方式
图1示出第一主机110A,也称为原始主机,以及第二主机110N,也称为目的主机。
第一主机110A用VM 120A示出,但其可以包括一个或多个其它VM(未描绘)。另外,第一主机110A包含第一缓存130A和第一存储器140A。第一缓存130A可以分布在多个主机中。可能不只包含与VM 120A相关的数据,还包括与一个或多个不同VM相关的数据。来自第一存储器140A的数据可以缓存在第一缓存130A中,还可包含不同缓存所缓存的数据和/或与除VM 120A外得不同VM相关的数据。图1还示出全局存储器150,可以是第一主机110A的本地或远程存储器。
用于本文中论述的缓存的缓存介质包含SSD、RAM和闪存,但不限于此。
全局存储器150可以为存储器阵列的集群,例如在习知虚拟化数据中心为多个虚拟机提供虚拟磁盘。从全局存储器读取数据可能比从本地缓存甚至是不同主机中的远程缓存读取数据更慢。与VM 120A相关的数据可以存储在全局存储器150中,并且来自全局存储器150的数据可以缓存在第一缓存130A中。
第一主机110A与第二主机110N偶合,所述第二主机110N包括第二缓存130N和第二存储器140N。第二缓存130N也可以是分布式的。第二主机110N进一步用VM 120N示出,VM120N对应于从第一主机110A迁移到第二主机110N后的VM 120A。第二主机110N,类似于第一主机110A,可以包括另外的VM或在迁移之前根本不包括VM。
第一主机110A可以用于接收关于将VM 120A从第一主机110A迁移到第二主机110N的通知。通知可以来自各种实体中的任一个,例如来自VMM,来自第二主机110N,或者来自与一个或多个绘示出的缓存相关的缓存控制器(未描绘)。
可以由第一主机110N接收通知。例如,可以由VMM、VM 120A或者第一缓存130A接收。在一实施例中,通知指定待迁移的VM以及迁移的目的地。也可以由第二主机110N接收通知。
响应于接收到通知,第一主机110A可以以一种或多种方式作出反应。第一主机110A可以开始将缓存数据从第一缓存130A发送给第二主机110N,所述缓存数据与VM 120A相关。发送缓存数据可以包含第一和第二主机之间的协调传输策略,例如数据的尺寸和权限。将在两个主机之间建立可信赖的连接。
发送缓存数据到第二主机110N可以包含发送与第一VM 120A相关的所有缓存数据,或者可以包括只发送第一缓存130A中与第一VM 120A相关的所有缓存数据的子集。例如,第一缓存130A中与第一VM 120A相关的部分缓存数据可以包括缓存元数据,指示所述缓存数据的对应数据由于某些原因根本不会移动。例如,缓存数据可能必须保留在第一缓存130A中,因为其对应于存储在第一主机110A的第一存储器140A中的数据。在此情况下,将缓存数据从第一缓存130A移动到另一个主机可能提高在另一个主机检索所述缓存数据时的响应性,但是当缓存数据变脏并且必须写入第一存储器140A时可能降低响应性。在一实施例中,只有对应于第一主机110A之外的存储器中的数据的缓存数据可以发送到第二主机110N,例如全局存储器150中的数据、第二存储器140N中的数据、或任何其它存储器中的数据。
响应于确定VM 120A例如因为断电被暂停,可以在第一主机110A临时中断发送缓存数据。一旦VM 120A恢复,就继续发送数据直到传输完成。
进一步地,响应于接收到通知,独立于已经开始发送缓存数据,第一主机110A可以采取处理读和/或写操作,所述操作导向至与VM 120A相关的缓存数据。第一主机110A将导向至与VM 120A相关的缓存数据的写操作发送给第二主机110N。这对于将数据写入第二缓存130N是有利的。由此,该数据驻留在接下来最可能被访问的位置。从而,连续建构用于VM120A的有效缓存数据集合。该集合越大,集合上缓存无效的风险就越小。在执行所有写操作于第一和第二缓存的实施例中,在第二缓存建构第一缓存的准确子集,一旦VM迁移完成,就可以运行所述子集。从而可以提高VM 120N的响应性,尤其是在数据如果写入第一缓存130A但还未发送到第二主机110N的情况下。在特定实施例中,除将写操作应用于第二缓存130N之外,还可以将所述写操作应用于第一缓存130A。
如上文所提及,也可以由第二主机110N接收通知。响应于接收到通知,第二主机110N可以准备待由第一主机110A发送的缓存数据,以及可以将接收到的缓存数据存储在第二缓存130N中。进一步地,响应于接收到通知,第二主机110N接收导向至与VM 120N相关的缓存数据的写和/或读操作,例如VM 120N自身发布的操作。将写操作应用于第二缓存130N。在一实施例中,写操作是在例如当缓存是分块组织时,另外发送给第一主机110A的。读操作可以通过检查第二缓存130N中待由该操作读取的数据来处理。如果数据已经存在于第二缓存130N中,例如因为已经从第一主机110A传输至第二缓存130N,就可以从第二缓存130N读取数据。否则,如果数据不存在,可以发送读操作给第一主机110A,在第一主机110A中将读操作应用于第一缓存130A。读取的数据提供给第二主机110N。确定第二缓存130N中是否存在数据可以看作是习知的缓存未命中。
可以在VM迁移之前或之后完成将缓存数据从第一主机110A发送给第二主机110N。如果VM迁移完成时仍然存在待发送的缓存数据,VM仍然可以导向读操作至第一缓存130A,直到完成发送。
可以向第一主机110A和/或第二主机110N指示完成传输,例如通过缓存控制器发送通知。或者,主机可以自行确定传输是否完成。例如,第二主机110N可以确定在预定时间段内没有接收到与VM 120N相关的缓存数据。或者,第一主机110A可以通知第二主机110N仍要传输的大致数据量,并且第二主机110N将接收到的缓存数据的量与第一主机110A指示的量进行比较。在又一实施例中,VM 120N知道第二缓存130N中缓存数据的量,使得第二主机110N确定没有更多数据要接收。在又一替代方案中,可以是第二主机110N上的VMM(未描绘)知道仍要接收的缓存数据的量。
在一些实施例中,第一主机110A可以通知第二主机110N和/或缓存控制器传输已完成。响应于这种通知,缓存控制器可以将VM的所有权由第一主机110A变更为第二主机110N,并向第二主机110N通知所述变更。
在一实施例中,第二主机110N可以响应于确定没有更多数据待从第一主机110A处接收,停止将导向至与VM 120N相关的缓存数据的读操作发送给第一主机110N。但是,如果读操作是导向至打算在VM迁移之后保留在第一缓存130A中的数据,仍然可以发送读操作给第一主机110A。可以在发送之后直接在第一缓存130A中删除缓存的数据。或者,在迁移完成之后和/或在确定没有更多VM 120N的缓存数据待从第一主机110A发送给第二主机110N之后,删除所发送的全部数据。
可以按照任意顺序将缓存数据从第一主机110A发送给第二主机110N。在替代实施例中,可以按照根据对数据的最近访问所确定的顺序发送数据。具体来说,首先发送最近访问的数据,最后发送最久之前访问的数据。仍然关于本实施例,可以制定写和读访问之间的区别。例如,可以按照在数据上执行的最近写访问的顺序发送数据。或者,可以按照最近读访问的顺序发送数据。在一实施例中,可以按照访问频率的顺序发送数据,首先发送最频繁访问的数据。在按顺序发送的所有实施例中,包括于缓存数据中的缓存元数据可以指示访问统计数据,例如访问频率或最后一次访问,也可以用于确定发送顺序。
在通知之后的某个时间,VM 120A可以在第一主机110A断电,以在第二主机110N通电,从而完成迁移。这可以在上文所论述的操作期间或之后的任何时间发生,并且不影响数据传输。
图2示出在例如第一主机110A的原始主机上执行的方法。在框210中,原始主机接收210将如VM 120A的VM从原始主机迁移到如第二主机110N的目的主机的通知。可以通过上文所论述的任何方法接收例如来自缓存控制器的通知。在一实施例中,VM自身发布通知。
框220示出发送缓存数据给目的主机。响应于接收到前述通知开始发送数据。
在发送缓存数据的同时,原始主机可以接收指示VM已经暂停的通知。
如框230中所示,独立于所发送的缓存数据,原始主机可以在接收通知之后接收一个或多个写操作。一旦接收到,如果这些写操作导向至与VM相关的缓存数据,原始主机发送写操作给目的主机。在一些实施例中,只发送与VM相关的所有缓存数据的子集给目的主机。在这些实施例中,将导向至保留在原始主机缓存中的缓存数据的写操作应用于所述缓存,并且不发送给目的主机。框240中示出发送缓存数据。
图3示出在如第一主机110A的原始主机上执行的另一方法300。响应于将如VM120A的VM迁移到如第二主机110N的目的主机,可以执行方法300。
在框310中,协调进行中的或即将进行的将缓存传输到目的主机的细节。可以由缓存控制器进行协调。在另一实施例中,可以直接在两个主机之间进行协调。协调的对象可以是待发送数据的权限、尺寸和/或其他属性。具体来说,可以交换待传输的数据的信息,以根据预定义顺序,例如基于最近写入的数据的预定义顺序,完成传输数据。
在框320中,原始主机开始发送本地缓存数据给目的主机。在一些实施方式中,可以直接发送本地缓存数据给目的主机。在其它实施例中,可以藉由缓存控制器或替代路线发送。本地缓存数据不限于本地存储于如第一存储器140A或第一缓存130A的原始主机的数据,也可以包含存储于全局存储器150或其它地方的数据。本地缓存数据可以与待迁移的VM相关,例如上述VM 120A。可以与本地缓存数据一起发送与本地缓存数据相关的元数据。或者可以独立于本地缓存数据发送元数据,例如通过异步通信。可以按从最热门的到最冷门的顺序发送本地缓存数据和元数据。最热门的数据可以指最近写入本地缓存的数据,而最冷门的数据指在缓存中驻留时间比关于该VM的任何其它数据都长的数据。或者,可以按照更频繁访问的缓存地址到较少访问的缓存地址的顺序发送本地缓存数据。
如果原始主机在开始发送本地缓存数据之后接收到写操作,就复制这些写操作到第二主机的缓存。这在框330中反映,并且无论何时在接收到这种写操作就执行该步骤。复制这种写操作可以包括传达写操作的细节,例如地址和/或待写入的数据,给目的主机或缓存控制器。该步骤确保目的主机上的内容与原始主机一致。在一实施例中,如所描述的,只可以复制那些导向至已经发送给第二主机的缓存地址的写操作。
执行框320和330,直到如框340所示的待迁移的VM暂停,和/或如框350所示的传输完成。如果在框340发现VM暂停,传输尚未完成,则可以继续发送本地缓存数据。这一步骤在框360中显示,表示用上文所论述的框320中相同的方式发送本地缓存数据。
一旦传输完成,在框370可以声明与迁移的VM相关的缓存的当前所有者,例如通过发送通知给缓存控制器和/或给如VM 120N的新VM。通过在框380中从第一缓存丢弃,例如删除本地缓存数据和相关数据,结束方法300。在一些实施例中,可以省略框380,而选择在发送本地缓存数据后直接从第一缓存中删除。
图4示出在如第二主机110N的目的主机上执行的另一方法。在框410中,目的主机接收关于将如VM 110A的VM从原始主机迁移到目的主机的通知。响应于接收到该通知,目的主机准备接收待从原始主机发送的缓存数据。在一个实例中,准备包含识别目的主机的空闲内存空间。准备还可包含建立可信赖的连接,以及协商传输细节。
在接收缓存数据的同时,目的主机可以接收VM暂停的通知。
目的主机接收数据可以包含丢弃与已经在目的主机的缓存中的数据冲突的或与逐出的数据冲突的所有数据和/或元数据。
框430和440示出了在接收前述通知之后接收一个或多个读或写操作。接收和处理这种操作独立于接收缓存数据。具体来说,接收缓存数据的过程可能持续一段未知时间段。在此时间段期间,所述操作可以由所述目的主机可以接收并作用于所述目的主机。
响应于接收到读操作,在框450中,目的主机可以确定该读操作所请求的缓存数据是否存在于目的主机的缓存中,例如在第二缓存130N中。如框460中所示,响应于确定缓存数据存在于目的缓存中,从中读取缓存数据。否则,如框70中所示,将所述读操作发送给原始主机,例如给第一主机110A,在原始主机中将读操作应用于原始缓存。随后,可以将读取的数据返回到目的主机。
如框440中所示,响应于接收到写操作,将写操作中指示和/或包含的数据写入目的缓存。在某些实施例中,可以另外将数据写入原始主机的缓存。
目的主机接收缓存数据可以以来自原始主机的通知结束。在一些实施例中,这种通知可以指示VM的所有权从原始主机变更变为目的主机。
在一些情况下,可以中止传输缓存数据,例如响应于检测到阈值时间段已到期且目的主机没有接收任何缓存数据,或者例如响应于接收到另一个关于再次迁移VM的通知。
本文中论述的实施例提供的优势包含无缝迁移VM。当处理读和写操作时无缝表示:即使在VM从一个主机迁移到另一个主机的过程中,也可以处理导向至与VM相关的缓存数据的操作。
图5示出在如第二主机110N的目的主机上执行的另一方法500。响应于关于将VM从如第一主机110A的原始主机迁移到如第二主机110N的目的主机的通知,可以开始执行方法500。类似于图3中步骤310,可以在步骤510协调缓存传输细节。可以通过与原始主机直接通信进行协调,或者可以藉由缓存控制器进行协调。协调细节可以与上文关于图3的论述相同。
在协调之后,在框520中,目的主机接收来自原始主机的本地缓存数据。再一次,关于图3论述的本地缓存数据的细节适用于该步骤。在一实施例中,目的主机接收本地缓存数据可以包括在目的主机的缓存中覆写该数据更老的版本,例如,在第二缓存130N中。重复执行框520直到在框530中接收到待迁移的VM已经在目的主机恢复的通知。在将VM从原始主机迁移到目的主机的过程中,通常在原始主机上暂停VM之后出现这种恢复。暂停VM已经在上文关于图3的框340中论述。
一旦恢复VM,在框540处继续执行方法700,目的主机继续接收本地缓存数据。但是,如果检测到从原始主机处接收的本地缓存数据已经存在于目的主机,尤其是检测到在目的主机上处于另一种不同的状态,则丢弃接收到的本地缓存数据,且不会用其来覆写目的主机上的对应数据。
在一些实施例中,在恢复VM之后,响应于检测到特定本地缓存数据在目的主机中仍然缺失,方法500在框550请求来自原始主机的所述特定本地缓存数据。一旦VM请求之后,就可以做出这种请求。在获取特定本地缓存数据之后,可以将其写入目的主机的本地缓存。
如框570所示,可以继续进行框540和/或550直到本地缓存数据的所有权真正从原始主机上的VM变更为目的主机上的VM。
图6是示出VM迁移期间原始主机和目的主机的操作的时序图。时序600以在步骤610和620发送预运动事件给原始主机和目的主机开始。原始主机的实例是上文所论述的第一主机110A。目的主机的实例是第二主机110N。预运动事件指示VM将从一个主机迁移到另一个主机,并且可以由缓存控制器160发送预动作事件。但是,本发明中不是必须缓存控制器来工作,预动作事件还可以由其它任何一方发送,例如,由待迁移的VM发送。在步骤630和640,可以协调缓存传输的细节。在所示出的实施例中,由缓存控制器进行协调,所述缓存控制器通过发送给原始主机和目的主机的消息定义传输特征。在其它实施例中,可以通过待迁移的VM进行协调,或通过原始主机和目的主机之间的直接通信进行协调。
时序600继续进行步骤650和660中原始主机发送缓存数据和缓存元数据继续进行。上文已经论述这些步骤,例如关于图3的框320和图5的框520的论述。
在发送所述数据期间的某个时间,步骤665可以检测到原始主机上VM已经暂停。响应于此,以及响应于遭遇本地缺失关于VM的数据,在步骤670目的主机可以请求来自原始主机的数据。在检测到VM暂停之后,在步骤680和690,原始主机继续发送缓存数据和缓存元数据到目的主机。这类似于图3的框360和图5的框540。
在步骤695,原始主机可以通知目的主机和/或缓存控制器传输已经完成。或者,目的主机可以自己检测到完成,例如通过监控原始主机上的VM。在另一替代方案中,VM自己可以通知目的主机。
在步骤695之后,原始主机可以删除所发送的缓存数据。可以根据上文图3的框380的论述执行该步骤的替代方式。在步骤695之后,在步骤695B中VM的所有权可以从原始主机变更变为目的主机。该步骤可以由缓存控制器或VM执行。如果由缓存控制器执行步骤695B,在可选的步骤695中通知目的主机。
因此,时序600以将VM的所有数据从原始主机迁移到目的主机以及完成VM的迁移结束。
另一优点是不仅在迁移进行中处理操作,而且这些操作对应的处理考虑到迁移阶段,例如是否仍然在发送缓存数据到目的地。这就避免了缓存业务中的停工时间。在迁移之前,可以在与在原始位置的VM相关的缓存中处理读和写操作。在迁移期间,原始主机的写操作可以发送到目的主机。这有利于使用迁移完成时将要使用的数据填充目的主机上的缓存。进一步地,确保在目的地位置写入数据,可以预计在目的地位置该数据很快将被再次访问。在包含将写操作应用于原始主机和目的主机的实施例中,避免了任何缓存无效,从而减少了访问第一或第二缓存或全局存储器的次数。
并且,在迁移期间,如果目的主机缓存中不存在缓存数据,有条件地发送目的主机的读操作到原始主机。因此,本发明的实施例考虑到缓存数据复制在进行时可能已经传递了在目的地待读取的数据。明显优点是在发送缓存数据进行时,只需发送较少读操作给原始主机。因此,在迁移过程中,目的主机中VM的响应性增加。包含缓存数据特定顺序的实施例进一步加强了这些优势,即使还没有发送所有的缓存数据,也增加了迁移时在目的主机发现数据的可能性。该优点是由于了解到更频繁访问的数据和/或最近访问的数据近期很可能会再次访问,优选该数据可以进一步提高目的地VM的响应性。
另一优点是从一个主机传输缓存数据到另一个主机无需将失效缓存数据刷到第一存储器或全局存储器,从而进一步提高了该过程的速度。
至少通过开始将缓存数据从原始主机发送给目的主机,以及无需时延处理刚收到的读和/或写操作形成了本发明步骤。在一些情况下,处理本身就提高了响应性,例如当转发写操作到目的地时。
虽然已详细描述了本发明及其优点,但是应理解,在不脱离如所附权利要求书所界定的本发明的精神和范围的情况下,可以对本发明做出各种改变、替换和变更。
Claims (15)
1.一种迁移缓存的系统(100),其特征在于,包括:
第一主机(110A),包括第一缓存(130A)并与虚拟机(virtual machine,VM)(120A)相关;以及
第二主机(110N),包括第二缓存(130N),其中
所述第一主机(110A)用于响应于通知,向所述第二主机(110N)发送所述第一缓存(130A)的缓存数据,所述缓存数据与所述VM(120A)相关,以及所述通知指示所述VM(120A)将从所述第一主机(110A)迁移到所述第二主机(110N),并且其中所述第一主机(110A)用于响应于接收到所述通知,向所述第二主机(110N)发送与所述VM(120A)相关的写操作;以及
如果所述缓存数据不存在于所述第二缓存(130N)中,所述第二主机(110N)用于响应于接收到所述通知,将与所述VM(120A)的缓存数据相关的读操作应用于所述第一缓存,以及将与所述VM(120A)的缓存数据相关的写操作应用于所述第二缓存(130N)。
2.根据权利要求1所述的系统(100),其特征在于,所述第二主机(110N)进一步用于响应于确定没有更多所述VM(120A)的缓存数据待从所述第一主机(110A)发送至所述第二主机(110N),只将与所述VM(120A)相关的读操作于应用所述第二缓存(130N)。
3.根据权利要求1或2所述的系统(100),其特征在于,所述第一主机(110A)进一步用于响应于确定没有更多所述VM(120A)的缓存数据待从所述第一主机(110A)发送至所述第二主机(110N),删除所述第一缓存(130A)中已发送的缓存数据。
4.根据权利要求1或2所述的系统(100),其特征在于,进一步包括缓存控制器,用于发送所述通知。
5.根据权利要求1或2所述的系统(100),其特征在于,发送缓存数据包含首先发送最近检索的、最近写入的或最频繁访问的数据。
6.根据权利要求1或2所述的系统(100),其特征在于,所述缓存数据包含缓存元数据。
7.根据权利要求1或2所述的系统(100),其特征在于,所述第一主机(110A)除发送所述写操作至所述第二主机(110N)外,进一步用于将与所述VM(120A)相关的写操作应用于所述第一缓存(130A)。
8.一种主机设备(110N),其特征在于,包括本地缓存(130N),并用于响应于通知,从远程主机(110A)的远程缓存(130A)接收缓存数据,所述缓存数据与虚拟机(virtualmachine,VM)(120A)相关,所述VM(120A)与所述远程主机(110A)相关,以及如果所述缓存数据不存在于所述本地缓存(130N)中,将与所述VM的缓存数据相关的读操作应用于所述远程缓存,并将与所述VM(120A)的缓存数据相关的写操作应用于所述本地缓存(130N),所述通知指示所述VM(120A)将从所述远程主机(110A)迁移到所述主机设备(110N)。
9.根据权利要求8所述的主机设备(110N),其特征在于,所述主机设备(110N)进一步用于响应于确定没有更多所述VM(120A)的缓存数据待从所述远程主机(110A)发送至所述主机设备(110N),只将与所述VM(120A)相关的读操作于应用所述本地缓存(130N)。
10.根据权利要求8或9所述的主机设备(110N),其特征在于,其中所述通知由缓存控制器发送。
11.根据权利要求8或9所述的主机设备(110N),其特征在于,发送缓存数据包含首先发送最近检索的、最近写入的或最频繁访问的数据。
12.根据权利要求8或9中任一项所述的主机设备(110N),其特征在于,所述缓存数据包含缓存元数据。
13.一种迁移缓存的方法(300),其特征在于,包括:
响应于通知,从第一主机(110A)的第一缓存(130A)接收缓存数据,所述缓存数据与虚拟机(virtual machine,VM)(120A)相关;如果所述缓存数据不存在于第二缓存(130N)中,将与所述VM(120A)相关的读操作应用于所述第一主机(110A)的第一缓存(130A);以及将与所述VM(120A)的缓存数据相关的写操作应用于第二主机(110N)的第二缓存(130N),所述通知指示所述VM(120A)将从所述第一主机(110A)迁移到所述第二主机(110N)。
14.根据权利要求13所述的方法(300),其特征在于,所述通知由缓存控制器发送。
15.根据权利要求13或14所述的方法(300),其特征在于,所述缓存数据包含缓存元数据。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/RU2015/000696 WO2017069648A1 (en) | 2015-10-21 | 2015-10-21 | Distributed cache live migration |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108139974A CN108139974A (zh) | 2018-06-08 |
CN108139974B true CN108139974B (zh) | 2021-02-12 |
Family
ID=55967388
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580084051.XA Active CN108139974B (zh) | 2015-10-21 | 2015-10-21 | 分布式缓存动态迁移 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10897517B2 (zh) |
EP (1) | EP3350713B1 (zh) |
JP (1) | JP6847105B2 (zh) |
CN (1) | CN108139974B (zh) |
WO (1) | WO2017069648A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110134492B (zh) * | 2019-04-18 | 2021-04-13 | 华中科技大学 | 一种异构内存虚拟机不停机的内存页面迁移系统 |
CN110297783B (zh) * | 2019-07-03 | 2021-01-15 | 西安邮电大学 | 基于实时动态迁移机制的分布式cache结构 |
CN110515726A (zh) * | 2019-08-14 | 2019-11-29 | 苏州浪潮智能科技有限公司 | 一种数据库负载均衡方法与装置 |
JP7347007B2 (ja) * | 2019-08-28 | 2023-09-20 | 富士フイルムビジネスイノベーション株式会社 | 情報処理装置、情報処理システム、及び情報処理プログラム |
US11520612B2 (en) | 2019-11-13 | 2022-12-06 | International Business Machines Corporation | Virtual machine migration detection by a hosted operating system |
US12001869B2 (en) * | 2021-02-25 | 2024-06-04 | Red Hat, Inc. | Memory over-commit support for live migration of virtual machines |
CN114356839B (zh) * | 2022-03-17 | 2022-06-03 | 飞腾信息技术有限公司 | 处理写操作的方法、设备、处理器及设备可读存储介质 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1962192A1 (en) * | 2007-02-21 | 2008-08-27 | Deutsche Telekom AG | Method and system for the transparent migration of virtual machine storage |
US8751738B2 (en) * | 2010-02-08 | 2014-06-10 | Microsoft Corporation | Background migration of virtual storage |
US8863117B2 (en) * | 2010-07-19 | 2014-10-14 | International Business Machines Corporation | Optimizing a file system interface in a virtualized computing environment |
US8904384B2 (en) * | 2011-06-14 | 2014-12-02 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Reducing data transfer overhead during live migration of a virtual machine |
US8601473B1 (en) | 2011-08-10 | 2013-12-03 | Nutanix, Inc. | Architecture for managing I/O and storage for a virtualization environment |
US9069587B2 (en) | 2011-10-31 | 2015-06-30 | Stec, Inc. | System and method to cache hypervisor data |
CN102521038B (zh) * | 2011-12-06 | 2014-04-09 | 北京航空航天大学 | 基于分布式文件系统的虚拟机迁移方法和装置 |
US8930947B1 (en) * | 2011-12-30 | 2015-01-06 | Emc Corporation | System and method for live migration of a virtual machine with dedicated cache |
US9116812B2 (en) * | 2012-01-27 | 2015-08-25 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for a de-duplication cache |
US9612966B2 (en) * | 2012-07-03 | 2017-04-04 | Sandisk Technologies Llc | Systems, methods and apparatus for a virtual machine cache |
US10339056B2 (en) * | 2012-07-03 | 2019-07-02 | Sandisk Technologies Llc | Systems, methods and apparatus for cache transfers |
US9141529B2 (en) | 2012-08-14 | 2015-09-22 | OCZ Storage Solutions Inc. | Methods and apparatus for providing acceleration of virtual machines in virtual environments |
US9454487B2 (en) * | 2012-08-27 | 2016-09-27 | Vmware, Inc. | Transparent host-side caching of virtual disks located on shared storage |
US10241814B2 (en) * | 2013-01-29 | 2019-03-26 | Red Hat Israel, Ltd. | Virtual machine memory migration by storage |
US9055119B2 (en) * | 2013-03-26 | 2015-06-09 | Vmware, Inc. | Method and system for VM-granular SSD/FLASH cache live migration |
US9882984B2 (en) | 2013-08-02 | 2018-01-30 | International Business Machines Corporation | Cache migration management in a virtualized distributed computing system |
US10042768B1 (en) * | 2013-09-21 | 2018-08-07 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Virtual machine migration |
CN103546556B (zh) * | 2013-10-22 | 2017-04-05 | 同济大学 | 一种在未来网络xia中虚拟机在线迁移方法 |
CN103559075B (zh) * | 2013-10-30 | 2016-10-05 | 华为技术有限公司 | 一种数据传输方法、装置和系统及内存装置 |
JP6115482B2 (ja) * | 2014-01-21 | 2017-04-19 | 株式会社デンソー | 電子制御装置 |
US9354918B2 (en) * | 2014-02-10 | 2016-05-31 | International Business Machines Corporation | Migrating local cache state with a virtual machine |
US10318325B2 (en) * | 2015-01-07 | 2019-06-11 | International Business Machines Corporation | Host-side cache migration |
-
2015
- 2015-10-21 CN CN201580084051.XA patent/CN108139974B/zh active Active
- 2015-10-21 JP JP2018520530A patent/JP6847105B2/ja active Active
- 2015-10-21 EP EP15860019.7A patent/EP3350713B1/en active Active
- 2015-10-21 WO PCT/RU2015/000696 patent/WO2017069648A1/en active Application Filing
-
2018
- 2018-04-20 US US15/959,112 patent/US10897517B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20180241838A1 (en) | 2018-08-23 |
US10897517B2 (en) | 2021-01-19 |
WO2017069648A1 (en) | 2017-04-27 |
JP6847105B2 (ja) | 2021-03-24 |
CN108139974A (zh) | 2018-06-08 |
EP3350713A1 (en) | 2018-07-25 |
JP2018531471A (ja) | 2018-10-25 |
EP3350713B1 (en) | 2022-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108139974B (zh) | 分布式缓存动态迁移 | |
US10838665B2 (en) | Method, device, and system for buffering data for read/write commands in NVME over fabric architecture | |
US7853759B2 (en) | Hints model for optimization of storage devices connected to host and write optimization schema for storage devices | |
US7447836B2 (en) | Disk drive storage defragmentation system | |
US10432723B2 (en) | Storage server and storage system | |
JP2018531471A6 (ja) | 分散キャッシュライブマイグレーション | |
US10452300B2 (en) | Storage system, node apparatus, cache control method and program | |
CN108153683B (zh) | 用于在存储器中的地址范围之间传输数据的装置和方法 | |
JP4808275B2 (ja) | ネットワークブートシステム | |
JP2010002942A (ja) | 分散ディスクキャッシュシステム及び分散ディスクキャッシュ方法 | |
US10895997B2 (en) | Durable client-side caching for distributed storage | |
JPWO2012063334A1 (ja) | 仮想マシンのライブマイグレーションを支援するためのメモリ制御装置及びi/oスイッチ | |
CN109254958A (zh) | 分布式数据读写方法、设备及系统 | |
US10719240B2 (en) | Method and device for managing a storage system having a multi-layer storage structure | |
US7000077B2 (en) | Device/host coordinated prefetching storage system | |
US20110238915A1 (en) | Storage system | |
US20120047330A1 (en) | I/o efficiency of persistent caches in a storage system | |
US9384135B2 (en) | System and method of caching hinted data | |
US10848555B2 (en) | Method and apparatus for logical mirroring to a multi-tier target node | |
CN110209343B (zh) | 数据存储方法、装置、服务器及存储介质 | |
JP2010097568A (ja) | 情報処理システム及び情報処理システムの運用方法 | |
JP5494363B2 (ja) | ファイル管理プログラム,ファイル管理方法およびファイル管理装置 | |
JP6589500B2 (ja) | 情報処理端末、共有ファイルシステム、共有ファイル方法および共有ファイルプログラム | |
US9304918B2 (en) | Computer system and cache control method |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |