CN113821348B - 远程访问数据的有效实时迁移 - Google Patents

远程访问数据的有效实时迁移 Download PDF

Info

Publication number
CN113821348B
CN113821348B CN202111145963.7A CN202111145963A CN113821348B CN 113821348 B CN113821348 B CN 113821348B CN 202111145963 A CN202111145963 A CN 202111145963A CN 113821348 B CN113821348 B CN 113821348B
Authority
CN
China
Prior art keywords
data
physical machine
subset
processing process
data processing
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
Application number
CN202111145963.7A
Other languages
English (en)
Other versions
CN113821348A (zh
Inventor
泰勒·桑德森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Priority to CN202111145963.7A priority Critical patent/CN113821348B/zh
Publication of CN113821348A publication Critical patent/CN113821348A/zh
Application granted granted Critical
Publication of CN113821348B publication Critical patent/CN113821348B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

方法,系统和装置,包括在计算机存储介质上编码的计算机程序,用于将数据从第一存储系统迁移到第二存储系统。该数据用于在与第一存储系统和第二存储系统分开的计算机系统上操作的进程(例如,虚拟机、应用程序或一些其他进程)。该数据按照数据子集存储,每个数据子集彼此互斥。在迁移每个数据集时,防止进程对数据集的访问,但不会影响对其余数据集的访问。一旦数据迁移完成,恢复该进程对数据集的访问。

Description

远程访问数据的有效实时迁移
本申请为下述申请的分案申请:
原申请的国际申请号:PCT/US2016/064738
原申请的国际申请日:2016年12月02日
原申请的国家申请号:201680083580.2
原申请的发明名称:远程访问数据的有效实时迁移
背景技术
云计算是指基于网络的计算,其中安置在数据中心或“服务器场(server farm)”中的服务器的集合根据需要向远程终端用户提供计算资源和数据存储。一些云计算服务向终端用户提供对诸如文字处理器和其他常用应用程序的软件应用程序的访问,这些终端用户通过网络浏览器或其他客户侧软件与应用程序交互。用户的电子数据文件通常存储在服务器场中,而不是存储在用户的计算设备上。在服务器场上维护软件应用程序和用户数据简化了终端用户计算设备的管理。一些云计算服务允许终端用户在虚拟机中运行软件应用程序。在公共云计算环境中,多个用户能够启动虚拟机(VM)。
通常,特定虚拟机的数据存储在与虚拟机被实例化的物理机分开的一个或多个物理机上。出于各种原因——负载共享、服务器维护等——存储在特定物理机上的一些或所有数据可以迁移到另一个物理机。数据的实时迁移是将数据从一个物理机移动到另一个物理机的过程,而虚拟机(或者可选择地,非虚拟处理实体)对数据执行任意读取和写入。
发明内容
本说明书涉及数据的实时迁移。
本文描述了一种系统方法和系统,用于将数据从存储计算机移动到另一个存储计算机,同时为从另一个物理机远程访问数据的第三方处理设备(例如,虚拟机或应用程序)提供对数据的一致和高性能访问。
通常,本说明书中描述的主题的一个创新方面可以体现在包括以下动作的方法中:在第一物理机中存储用于在第二物理机上运行的数据处理进程的数据,所述第二物理机与所述第一物理机分开,所述存储数据包括根据多个数据子集存储所述数据,其中每个数据子集彼此互斥;对于每个数据子集,通过所述数据处理进程,在映射中将所述第一物理机上的所述数据子集的地址范围逻辑地映射到所述数据处理进程的相应逻辑地址范围;根据逻辑寻址,使所述数据处理进程能够对数据进行读写访问;确定存储在所述第一物理机上的第一数据子集将被迁移到与所述第一物理机和所述第二物理机分开的第三物理机,并作为响应:阻止所述数据处理进程对所述第一数据子集的读写访问,同时维持所述数据处理进程对其他数据子集的读写访问;将所述第一数据子集从所述第一物理机迁移到所述第三物理机,以将所述数据子集存储在所述第三物理机上;通过所述数据处理进程,将所述第三物理机上的所述第一数据子集的地址范围逻辑地映射到所述数据处理进程的相应逻辑地址范围来更新所述映射。该方面的其他实施例包括相应的系统、装置和计算机程序,计算机程序被配置为执行该方法的动作,计算机程序被编码在计算机存储设备上。
通常,本说明书中描述的主题的另一个方面可以体现在系统中,该系统包括:第一物理机,所述第一物理机根据多个数据子集存储数据,每个所述数据子集彼此互斥;第二物理机,所述第二物理机与所述第一物理机分开,并且所述第二物理机上的虚拟机对所述第一物理机上存储的数据进行读写访问,并且对于每个数据子集,在映射中将所述第一物理机上的所述数据子集的地址范围逻辑地映射到所述虚拟机的相应逻辑地址范围;其中,响应于确定存储在所述第一物理机上的第一数据子集将被迁移到与所述第一物理机和所述第二物理机分开的第三物理机:将所述第一数据子集从所述第一物理机迁移到所述第三物理机;在所述迁移期间阻止所述虚拟机对所述第一数据子集的读写访问,同时维持所述虚拟机对其他数据子集的读写访问;以及通过所述虚拟机更新所述映射以将所述第三物理机上的所述第一数据子集的地址范围逻辑地映射到所述虚拟机的相应逻辑地址范围;以及在将所述第一数据子集从所述第一物理机迁移到所述第三物理机之后,恢复所述虚拟机对所述第一数据子集的读写访问。该方面的其他实施例包括相应的方法、装置和计算机程序,计算机程序被配置为执行该方法的动作,计算机程序被编码在计算机存储设备上。
可以实施本说明书中描述的主题的特定实施例,以便实现以下优点中的一个或多个。与诸如预复制和后复制实时迁移的其他实时迁移方法相比,该方法为虚拟机提供了更好的性能保证。例如,预复制实时迁移将整个数据地址空间视为整个迁移单元,因此整个地址空间完全存在于迁移的始发侧或完全存在于迁移的目的地侧。当迁移正在进行时为了提供对数据的“实时”访问,允许虚拟机继续读/写数据,但是写入被追踪以便可以将更改重新发送到实时迁移的接收物理机。这种重新发送耗费更多的读取带宽、网络带宽、CPU处理和时间。此外,通常繁忙的虚拟机更改数据的速度快于通过网络将更改发送到目的地的速度;在这种情况下,必须减慢虚拟机的访问速度,导致性能下降。
利用后复制实时迁移,虚拟机被通知目的地物理机并向目的地物理机请求数据。如果数据存储在目的地物理机上,则目的地物理机提供数据;否则,目的地物理机从正在迁移数据的始发物理机提取数据,然后提供数据。当必须从始发物理机提取数据时,虚拟机会经历延迟增加。由于从目的地物理机到始发物理机的许多访问,存在显著的总带宽性能下降。
然而,下面描述的方法和系统克服了这些操作特性中的一些或全部,从而导致数据存储和管理技术领域的改进。通过处理可能是一块X MB的数据或一页数据等的数据子集中的迁移数据,该迁移比预复制实时迁移更精细。防止虚拟机访问正在经历迁移的数据子集。因此,不需要执行对写入的追踪。一旦迁移了数据子集,就不需要重新发送它,因为将来所有的访问都将直接转向目的地侧。
如果虚拟机不访问正在迁移的数据子集,则虚拟机几乎不会对性能产生影响。随着数据子集大小减小,虚拟机在等待数据子集迁移时必须被阻止的时间量减少。相反,随着数据子集大小增加,用于存储映射的元数据量减少。因此,通过选择性地评估等待时间与映射维护的权衡(Trade-offs),系统管理可以为特定应用程序定制数据子集大小,这使得应用程序的迁移性能操作改善。
尽管下面描述的迁移技术确实利用一些带宽用于开销,但是与预复制或后复制迁移所使用的带宽相比,所使用的量相对较小。这仍然是数据迁移技术领域的又一次改进。
因为阻止了对于正在经历迁移的数据子集的读写访问,所以不需要用于追踪对数据子集的更改的开销机制,也不需要为了迁移目的而专门命令虚拟机访问数据子集。例如,如果数据存储是磁盘并且虚拟机执行对位置的写入,同时为了迁移目的而存在对相同位置的未完成读取,则读取访问的结果是未定义的。这里的系统和方法通过阻止虚拟机访问正被迁移的特定区域来防止对相同位置的并发访问。
可以在任何时间停止下面描述的实时迁移而不会丢失进度。这与预复制实时迁移形成对比,如果停止预复制实时迁移必须完全重新开始,并且也与后复制实时迁移形成对比,后复制实时迁移在虚拟机的访问切换到目的地侧后无法停止。
在附图和以下描述中阐述了本说明书中描述的主题的一个或多个实施例的细节。根据说明书、附图和权利要求,本主题的其他特征、方面和优点将变得显而易见。
附图说明
图1是基于云的环境的框图,其中数据可以经历实时迁移。
图2是数据的实时迁移的示例进程的流程图。
图3是数据的实时迁移的示例进程的流程图,其中数据子集直接从第一物理机迁移到第三物理机。
图4是数据的实时迁移的示例进程的流程图,其中数据子集从第一物理机迁移到第三物理机并且通过其中实现有虚拟机的物理机。
各附图中相同的附图标记和名称表示相同的元件。
具体实施方式
综述
第一物理机按照多个数据子集存储数据,每个数据子集彼此互斥。存储数据用于数据处理进程,诸如虚拟机,该数据处理进程在与第一物理机分开的第二物理机上运行。数据处理进程具有对存储在第一物理机上的数据的读写访问,并且对于每个数据子集,在映射中将第一物理机上的数据子集的地址范围逻辑地映射到数据处理进程的相应的逻辑地址范围。
当来自第一物理机的数据要迁移到第三物理机时,采取以下步骤。数据在数据子集中迁移。对于正在经历迁移(例如,在从第一物理机“飞行”到第三物理机的过程中)的每个数据子集,数据处理进程对数据子集的读写访问被阻止。但是,数据处理进程对未正在经历数据迁移的其他数据子集的读写访问得以维持。通过这种方式,数据处理进程仍然可以访问存储在第一物理机中的大部分数据。响应于特定数据子集从第一物理机到第三物理机的迁移,数据处理进程更新映射。具体地,第三物理机上的特定数据子集的地址范围被映射到数据处理进程的相应逻辑地址范围,并且特定数据子集的迁移前映射因此由更新的映射代替。在将第一数据子集从第一物理机迁移到第三物理机之后,为数据处理进程恢复对第一数据子集的读写访问。此后,当数据处理进程需要存储在迁移数据子集中的数据时,数据处理进程访问第三物理机。
取决于系统要求,上述进程的若干变型可能是有利的。例如,可以不向数据处理进程通知数据子集的迁移。如果数据处理进程请求访问存储在来自第一物理机的数据子集中的数据,它将收到一个响应,通知它数据子集现在存储在第三物理机上(或者当前正在经历向第三物理机的迁移)。如果数据子集当前正在经历迁移,则第三物理机可能会阻止对数据子集的访问,直到迁移完成为止。
可选择地,可以主动向数据处理进程通知迁移,并且可以计算迁移的预期完成时间。然后,数据处理进程可以等待请求数据直到预期完成时间。
数据子集可以被直接从第一物理机发送到第三物理机,然后,当迁移完成时,第一或第三物理机中的一个将通知数据处理进程数据子集的新位置。然而,可选择地,数据子集可以通过充当中介的数据处理进程传递,并且数据处理进程负责迁移。这使得数据处理进程可以近乎实时地了解数据所在的最新位置。
在又一实施方式中,数据处理进程控制迁移,但数据子集被直接从一个存储机发送到其他存储机。例如,虚拟机向第一存储机发送“传输地址范围”消息,指示第一存储机读取由传输地址范围指定的特定地址范围并将该数据写入第二存储机的另一地址范围。存储机是无状态的,但是通过虚拟机发送的指令,数据子集被直接从第一存储机发送到第二存储机。与通过VM传递数据相比,这使得更少的数据被传输,并且如果涉及许多存储机,则可扩展性更高。
最后,数据子集可以通过各种不同的数据管理技术来实现。例如,数据子集可以是与页面或区块(block)大小无关的固定大小的内存,例如1MB、10MB或甚至1GB。可选择地,数据子集可以在区块或页面级别实现,并且使用“水印”使得X以下的所有地址都在第一物理机上,并且在X或X以上的所有地址都在第三物理机上。随着数据迁移,X的值在数据处理进程中更新。这可以消除数据处理进程将逻辑地址向数据子集的映射,并且根据X的水印值划分存储数据的物理机来代替。
以下更详细地描述这些特征和其他特征。
示例操作环境
图1是基于云的环境100的框图,其中数据可以经历实时迁移。在下面的书面描述中,描述了虚拟机的示例实施方式。然而,一些数据处理进程的数据的数据迁移、这种具有基于云的存储的基于客户端的应用程序或者具有基于云的存储的基于云的应用程序,也可以通过下面描述的系统和方法来促进。
在基于云的环境100中主机110是物理机,主机110可以包含一个或多个数据处理装置,诸如安装在机架上的服务器或其他计算设备。存储机140和150也是物理机,其存储在主机110上运行的数据处理进程的数据。存储机140和150也可以是一个或多个数据处理装置,诸如安装在机架上的服务器或其他计算设备,并且通常被设计为便于数据的存储,其中该数据用于由通过网络102进行通信的主机110基于云的访问。
主机110运行管理主机资源的主机操作系统112。在该示例中,主机操作系统112运行软件,该软件虚拟化底层主机硬件并管理一个或多个虚拟机120的并发运行。如图1所示,主机操作系统112管理一个虚拟机120。一般来说,主机可以管理更大量的虚拟机;但是,可以基于主机的物理资源来限制数量。为简洁起见,图1中仅示出了一个虚拟机120。
虚拟机120使用底层主机硬件的模拟版本,其可以被称为虚拟硬件122。由虚拟硬件122运行的软件可以被称为客户软件,例如客户操作系统124和客户应用程序126。在一些实施方式中,客户软件无法确定它是由虚拟硬件还是由物理主机运行。主机的微处理器可以包括处理器级别机制,以通过允许客户软件指令直接在主机的微处理器上运行而不需要代码重写、重新编译或指令仿真来使虚拟硬件能够有效地运行软件应用程序。
虚拟机120从底层主机操作系统112的虚拟内存被分配一组虚拟内存页面,并从一个或多个虚拟磁盘驱动器被分配虚拟磁盘区块,供虚拟机上运行的客户软件使用。实际的物理存储不需要在主机110上,并且在所示的示例中,存储通过存储机140实现。
在一些实施方式中,虚拟磁盘区块被分配在由存储机管理并通过网络102与主机110通信的物理磁盘驱动器上。虚拟机120可以被分配网络地址,通过网络地址它们相应的进程可以经由网络102与其他进程通信。
假设,最初,虚拟机120的所有数据都存储在存储机140上。虚拟机120的这些数据被称为客户数据142。客户数据142最初不需要存储在单个物理机上,而且相反最初可以跨多个存储机存储。然而,为了简化描述,该示例的起点是单个存储机。
按照多个数据子集存储客户数据142,每个数据子集彼此互斥。如图1所示,客户数据142存储在数据子集144中,并且每个数据子集说明性地由索引0...n中的一个索引。映射数据128将存储机140上的数据子集的地址范围逻辑地映射到虚拟机120的相应逻辑地址范围。这样,通过使用映射数据128,虚拟机120可以将逻辑地址空间映射到存储在特定物理机上的特定的数据子集。最后,虽然映射数据128被示为在虚拟机120内,但映射数据128也可由主机操作系统112维护。
可能导致一些或所有客户数据142迁移到一个或多个其他存储机的事件可能发生。这样的事件可以包括存储机140准备离线服务,其需要迁移存储在存储机中的所有数据;负载均衡,其需要迁移存储在存储机中的至少一部分数据;或者不满足服务质量要求,这可能需要迁移存储机中存储的至少一部分数据。如下所述,在一些情况下,存储机可以确定何时需要迁移,并且在其他情况下,虚拟机(或主机)可以确定何时需要迁移。在其他情况下,虚拟机、主机和存储机外部的进程或实体也可以确定何时需要迁移,并且或虚拟机可以控制迁移,或存储机可以控制迁移,如上文所述和将在下面更详细描述的。
参考图2描述了数据实时迁移的一般化进程,其由图1中的带有参考标注2的箭头指示。参考图3描述了一个示例进程,其中物理存储机部分地(或完全)控制迁移,并且由图1中的带有参考标注2的箭头结合带有参考标注3A和3B的箭头表示。最后,参考图4描述了示例进程,其中虚拟机(或主机)部分地(或完全)控制迁移,并且由图1中的带有参考标注2的箭头结合带有参考标注4A和4B的箭头表示。
为了简洁起见,下面描述的迁移示例将详细说明向另一个物理机-存储机150的数据的迁移。但是,如果客户数据存储在多个存储机上,则客户数据可以从存储机之一迁移到另一个当前存储一些客户数据的存储机,或者当前没有存储虚拟机120的客户数据的新的存储机。
从第一物理机到第二物理机的实时迁移
图2是用于数据的实时迁移的示例进程200的流程图。进程200可以在图1的主机110、存储机140和存储机150中实现。
在第一物理机中,进程200存储在第二物理机上运行的虚拟机的数据,其中第二物理机与第一物理机分开(202)。例如,如图1所示,按照数据子集存储数据142,其中每个数据子集彼此互斥。数据142的“数据子集”可以是预定义的数据结构,诸如区块、扇区或页面,或者可以是任意定义的数据单位,诸如1KB、1MB、10MB或甚至1GB的数据量。在前者的情况下,区块或页面可以具有虚拟机虚拟实现的大小,或者,可选择地,可以是由所使用的物理硬件所确定的物理大小。
对于每个数据子集,进程200通过虚拟机将第一物理机上的数据子集的地址范围逻辑地映射到虚拟机的相应逻辑地址范围(204)。例如,虚拟机(或者,可选择地,主机)将数据从虚拟机的角度看起来所在的地址逻辑地映射到数据实际所在的物理地址。可以使用任何适当的可以将第一机上的数据处理进程中的逻辑地址映射到与第一机分开的第二机上的物理地址的地址转换进程。
在其中数据子集具有任意大小的后一实施方式的情况下,管理员在确定大小时可以考虑若干因素。数据子集的大小越小,所需的映射数据128就越多。但是,由于迁移期间数据子集飞行的时间量随着数据子集的大小减小而减小,因此较小的数据子集倾向于导致更少的读写延迟,这些延迟可能会发生在虚拟机120尝试访问正在经历迁移的数据时。
在一些实施方式中,虚拟机120或主机110可以将由于迁移导致的数据访问区块的速率与最大区块速率阈值进行比较。如果速率超过最大区块速率阈值,则通过虚拟机(或者,可选择地,通过存储数据的存储机)调用内存管理进程以减少数据子集大小。而后,确定新的数据访问区块速率。该进程可以继续,直到速率低于最大区块速率阈值。
在其他实施方式中,虚拟机120或主机110可以将从映射数据128的大小导出的大小度量值与最大大小阈值进行比较。如果大小度量值超过最大大小阈值,则通过虚拟机(或者,可选择地,通过存储数据的存储机)调用的内存管理进程可以增加数据子集大小,以便逻辑向物理的映射所需的元数据量减少。
在又一其他实施方式中,数据访问区块的速率和从映射数据128的大小导出的大小度量值都可以用于管理数据子集的大小。可以基于指示这两个性能考虑因素的相对重要性的权重来确定权衡。
进程200根据逻辑寻址使虚拟机能够对数据进行读写访问(206)。例如,当没有数据子集被迁移时,虚拟机120可以访问客户数据142的所有数据子集。
进程200确定存储在第一物理机上的第一数据子集将被迁移到与第一物理机和第二物理机分开的第三物理机(208)。例如,可能需要迁移存储在存储机140上的一些或全部数据。同样,各种事件可能需要迁移一些数据或所有数据。在该示例中,假设由数据子集索引2指示的在图1中以虚线示出的一个数据子集将从存储机140迁移到存储机150。
进程200阻止虚拟机对第一数据子集的读写访问,并维持虚拟机对其他数据子集的读写访问(210)。在一些实施方式中,该阻止可以由存储机140来做。存储机140可以向虚拟机120发送通知,使得它不能访问存储在正在经历迁移的数据子集中的数据,然后虚拟机120可以保留任何读或写操作,直到它从存储机140或存储机150接收到迁移完成的通知,分别如箭头3A和3B所示。
可选择地,存储机140可以不向虚拟机120通知迁移,并且仅在迁移完成时通知虚拟机120。如果虚拟机120在数据子集飞行时请求来自数据子集的数据,则它可以被通知迁移,和/或被重定向至第二存储机150。
在上面的示例实施方式中,数据子集直接从存储机140迁移到存储机150,而不通过主机110。然而,在其他实施方式中,数据子集可以通过主机110传输。例如,在虚拟机120处理数据子集的迁移的实施方式中,数据子集被传输到虚拟机,然后从虚拟机120发送到存储机150。这在图1中通过箭头4A和4B示出,箭头4A和4B表示由箭头2指示的迁移的实际数据路径。
虚拟机120(或主机110)可以从可用的多个不同存储机之一中选择第二存储机150。后一实施方式便于“无状态”存储机存储数据子集而不引用虚拟机或任何其他存储机的地址,并且不必追踪迁移状态并将其自身标识为“迁移状态”。相反,数据存储的管理由虚拟机120处理。
进程200将第一数据子集从第一物理机迁移到第三物理机,以在第三物理机上存储数据子集(212)。如上所述,数据子集可以直接从存储机140发送到存储机150,或者,可选择地,可以由虚拟机120从第一存储机140取出,然后发送到第二存储机150。
进程200通过将第三物理机上的第一数据子集的地址范围逻辑地映射到虚拟机的相应逻辑地址范围来更新映射(214)。用于更新映射的数据取决于所使用的实施方式。例如,在虚拟机或主机控制迁移的实施方式中,虚拟机或主机可以基于虚拟机向其发送数据子集的存储机的地址更新映射数据。在存储机控制数据子集的迁移的实施方式中,虚拟机或主机可以基于虚拟机接收到的通知更新映射数据,该通知指示数据子集被发送到的存储机的地址。
实时迁移受制于存储机控制
图3是用于数据的实时迁移的示例进程300的流程图,其中数据子集直接从第一物理机迁移到第三物理机。进程300可以在存储机140和150中的一个或两个中实现。
进程300确定存储在第一物理机上的第一数据子集将被迁移到第三物理机(302)。例如,存储机140可以确定它将离线以进行维护并且需要迁移存储在存储机中的所有数据,或者它已经达到存储容量限制并且需要迁移存储在存储机中的一部分数据。
进程300阻止虚拟机对第一数据子集的读写访问,并维持虚拟机对其他数据子集的读写访问(304)。例如,存储机140向虚拟机发送通知,识别正在迁移的数据子集,并指示虚拟机不要尝试向数据子集写入或读取数据子集,直到它被通知成功迁移为止。这由图1的箭头3A表示。
进程300将第一数据子集从第一物理机直接迁移到第三物理机(306)。例如,存储机140将数据子集发送到第二存储机150而不涉及主机110作为中介。
进程300向虚拟机提供迁移完成的通知,并启用对第一数据子集的读写访问(308)。例如,第一存储机140可以从第二存储机150接收成功接收数据子集的确认,并且进而可以向虚拟机120发送第二存储机150的地址和数据子集的迁移的通知。然后,虚拟机120可以更新其映射数据128并继续访问在存储机150上的新位置处的数据子集。可选择地,在第二存储机150成功接收数据子集之后,第二存储机可以向虚拟机120发送第二存储机150的地址和数据子集的迁移通知。虚拟机120然后可以更新其映射数据128并继续访问在存储机150上的新位置处的数据子集。
实时迁移受制于虚拟机或主机控制
图4是用于数据的实时迁移的示例进程400的流程图,其中数据子集从第一物理机迁移到第三物理机并且通过其中实现有虚拟机的物理机。该进程可以在虚拟机120(或主机110)中实现。
进程400确定存储在第一物理机上的第一数据子集将被迁移到第三物理机(402)。例如,虚拟机120可以确定存储机140具有高延迟;或者可以确定负载平衡操作是必要的;或者甚至可以从第一存储机140接收第一存储机140离线以进行维护并且需要迁移为虚拟机120存储的数据的通知。
进程400指示第一物理机将第一数据子集迁移到第三物理机(404)。例如,虚拟机120指示存储机将数据子集迁移到存储机150。虚拟机120也将不访问数据子集,直到迁移完成。
在一些实施方式中,虚拟机120可以从第一存储机140接收数据子集并将数据子集发送到存储机150,如箭头3A和3B所示。在其他实施方式中,虚拟机120可以指示存储机140将数据子集直接发送到存储机150。
进程400通过将第三物理机上的第一数据子集的地址范围逻辑地映射到虚拟机的相应逻辑地址范围来更新映射(406)。例如,在接收到成功迁移的通知,例如来自存储机150的确认消息时,虚拟机120更新映射数据128并恢复对数据子集的访问。
附加的实施细节
可以实施对上述示例系统和进程的变型以实现附加特征。例如,虚拟机可以计算迁移完成的预期时间,而不是等待成功迁移的通知。预期时间过后,虚拟机可以尝试访问数据子集。如果不成功,它可以等待另一段时间,或者可以调用内存错误事件来代替。
在其他实施方式中,数据子集可以在区块或页面级别实现,并且使用“水印”使得X以下的所有地址都在第一物理机上,并且在X或X以上的所有地址都在第三物理机上(或者,当数据存储在三个或更多物理机中时,可以为每个物理机使用连续的地址范围)。当数据迁移时,X的值在数据处理进程中更新。这可以消除数据处理进程将逻辑地址向数据子集的映射,并且根据X的水印值映射存储数据的物理机的分区来代替。相应地,减少了实现映射数据128的元数据要求。
在其他实施方式中,可以在每个数据子集的基础上使用预复制和后复制迁移技术。该实施方式以系统复杂性为代价减少或消除了虚拟机在迁移期间的等待时间。
以上示例在基于云的系统或数据中心的背景下描述。然而,这里描述的系统和方法可以用于从运行访问数据的应用程序或虚拟机的计算机远程管理存储数据的任何系统中。
本说明书中描述的主题和操作的实施例可以在数字电子电路中实现,或者在计算机软件、固件或硬件中实现,包括本说明书中公开的结构及其结构等同物,或者他们中的一个或多个的组合。本说明书中描述的主题的实施例可以实现为一个或多个计算机程序,即计算机程序指令的一个或多个模块,编码在计算机存储介质上,用于由数据处理装置运行,或控制数据处理装置的操作。
计算机存储介质可以是计算机可读存储设备、计算机可读存储基板、随机或串行访问内存阵列或设备、或它们中的一个或多个的组合,或包括在计算机可读存储设备、计算机可读存储基板、随机或串行存取存储器阵列或设备、或它们中的一个或多个的组合中。此外,虽然计算机存储介质不是传播信号,但是计算机存储介质可以是以人工生成的传播信号中编码的计算机程序指令的源或目的地。计算机存储介质也可以是一个或多个单独的物理组件或介质(例如,多个CD、磁盘或其他存储设备)或包括在一个或多个单独的物理组件或介质(例如,多个CD、磁盘或其他存储设备)中。
本说明书中描述的操作可以实现为由数据处理装置对存储在一个或多个计算机可读存储设备上或从其他源接收的数据执行的操作。
术语“数据处理装置”包括用于处理数据的所有类型的装置、设备和机器,包括例如可编程处理器、计算机、片上系统、或以上的多个或其组合。该装置可以包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建运行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机、或其中一个或多个的组合的代码。装置和执行环境可以实现各种不同的计算模型基础结构,诸如web服务、分布式计算和网格计算基础结构。
计算机程序(也称为程序、软件、软件应用程序、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言、声明或进程语言,并且它可以被部署为任何形式,包括独立程序或模块、组件、子例程、对象或其他适合在计算环境中使用的单元。计算机程序可以但不必对应于文件系统中的文件。程序可以存储在保存其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中,存储在专用于所讨论的程序的单个文件中,或存储在多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件)中。计算机程序可以被部署为在一个计算机上运行,或在位于一个站点上或跨多个站点分布并通过通信网络互连的多个计算机上运行。
本说明书中描述的进程和逻辑流程可以由运行一个或多个计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作并生成输出来执行动作。进程和逻辑流程也可以由专用逻辑电路执行,并且装置也可以实现为专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
作为示例,适合于运行计算机程序的处理器包括通用和专用微处理器,以及任意类型的数字计算机的任意一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于根据指令执行动作的处理器和用于存储指令和数据的一个或多个内存设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,或可操作地耦合到一个或多个大容量存储设备,以从一个或多个大容量存储设备接收数据或将数据传输到一个或多个大容量存储设备,存储设备例如磁盘、磁光盘或光盘。然而,计算机不是必需要具有这样的设备。此外,计算机可以嵌入在另一个设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储设备(例如,通用串行总线(USB)闪存驱动器),仅举几例。适用于存储计算机程序指令和数据的设备包括所有形式的非易失性内存、介质和内存设备,包括例如半导体内存设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;和CD-ROM和DVD-ROM盘。处理器和内存可以辅以专用逻辑电路或并入专用逻辑电路中。
为了提供与用户的交互,本说明书中描述的主题的实施例可以在具有显示设备和键盘以及指示设备的计算机上实现,显示设备例如CRT(阴极射线管)或LCD(液晶显示器)监视器,用于向用户显示信息,指示设备例如鼠标或轨迹球,用户可通过键盘和指示设备向计算机提供输入。其他类型的设备也可用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声学、语音或触觉输入。另外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从web浏览器接收的请求将网页发送到用户的用户设备上的web浏览器。
本说明书中描述的主题的实施例可以在计算系统中实现,计算系统包括后端组件,例如作为数据服务器,或者包括中间件组件,例如应用程序服务器,或者包括前端组件,例如具有图形用户界面或Web浏览器的用户计算机,其中用户可通过该图形用户界面或Web浏览器与本说明书中描述的主题的实施方式进行交互,或者一个或多个这样的后端、中间件或前端组件的任何组合。系统的组件可以通过任何形式或介质的数字数据通信,例如通信网络,互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)、互联网络(例如,因特网)和对等网络(例如,ad hoc对等网络)。
计算系统可包括用户和服务器。用户和服务器通常彼此远离并且通常通过通信网络进行交互。用户和服务器的关系借助于在相应计算机上运行并且彼此具有用户-服务器关系的计算机程序而产生。在一些实施例中,服务器将数据(例如,HTML页面)传送到用户设备(例如,用于向与用户设备交互的用户显示数据和从与用户设备交互的用户接收用户输入的目的)。可以从服务器处的用户设备接收在用户设备处生成的数据(例如,用户交互的结果)。
尽管本说明书包含许多具体的实施方式细节,但这些细节不应被解释为对任何特征或声明的范围的限制,而是作为特定实施例特有的特征的描述。在分开的实施例的上下文中的本说明书中描述的某些特征也可以在单个实施例中组合实现。反过来,在单个实施例的上下文中描述的各种特征也可以在多个实施例中分别地或以任何合适的子组合来实现。此外,尽管特征在上面可能描述为以某些组合起作用并且甚至最初如此声明,但是在一些情况下可以从组合中切除来自所声明的组合的一个或多个特征,并且所声明的组合可以指向子组合或子组合的变化。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应该被理解为需要以所示的特定次序或按顺序执行这样的操作,或者所有示出的操作都要执行,以实现期望的结果。在某些情况下,多任务处理和并行处理可能是有利的。此外,上述实施例中的各种系统组件的分开不应被理解为在所有实施例中都需要这种分开,并且应该理解,所描述的程序组件和系统通常可以在单个软件产品中集成在一起或打包成多个软件产品。
根据示例性,公开了实施例、方法、系统和装置,包括在计算机存储介质上编码的计算机程序,用于将数据从第一存储系统迁移到第二存储系统。该数据用于在与第一存储系统和第二存储系统分开的计算机系统上操作的进程(例如,虚拟机、应用程序或一些其他进程)。该数据根据每个都彼此互斥的数据子集存储。在迁移每个数据集时,防止进程对数据集的访问,但不会影响对其余数据集的访问。一旦数据迁移完成,恢复该进程对数据集的访问。
这样,已经描述了该主题的特定实施例。其他实施例在以下权利要求的范围内。在一些情况下,权利要求中记载的动作可以以不同的次序执行并且仍然实现期望的结果。另外,附图中描绘的进程不一定需要所示的特定次序或顺序来实现期望的结果。在某些实施方式中,多任务和并行处理可能是有利的。

Claims (18)

1.一种由数据处理系统执行的方法,其特征在于,所述方法包括:
在第一物理机中存储用于处理第一物理机中存储的数据的数据处理进程的映射,所述数据根据多个数据子集存储;
对于每个数据子集,在映射中将所述第一物理机上的所述数据子集的地址范围逻辑地映射到所述数据处理进程的相应逻辑地址范围;
根据逻辑寻址,使所述数据处理进程能够对所述数据进行读写访问;以及
响应于确定存储在所述第一物理机上的第一数据子集将被迁移到与所述第一物理机分开的第二物理机,阻止所述数据处理进程对所述第一数据子集的读写访问,同时维持所述数据处理进程对其他所述数据子集的读写访问;以及
响应于所述第一数据子集从所述第一物理机迁移到所述第二物理机以将所述数据子集存储在所述第二物理机上,通过将所述第二物理机上的所述第一数据子集的地址范围逻辑地映射到所述数据处理进程的相应逻辑地址范围来更新所述映射。
2.如权利要求1所述的方法,其特征在于:
所述第一物理机上存储的所述第一数据子集将被迁移到所述第二物理机的所述确定由所述第一物理机执行;并且
阻止所述数据处理进程对所述第一数据子集的读写访问同时维持所述数据处理进程对其他所述数据子集的读写访问包括,由所述第一物理机阻止所述数据处理进程对所述第一数据子集的读写访问。
3.如权利要求2所述的方法,其特征在于,还包括:
从所述第一物理机,由所述数据处理进程接收所述第一数据子集向所述第二物理机迁移的通知;和
其中,通过将所述第二物理机上的所述第一数据子集的地址范围逻辑地映射到所述数据处理进程的相应逻辑地址范围来更新所述映射是响应于所述数据处理进程接收由所述第一物理机提供的所述通知而完成的。
4.如权利要求3所述的方法,其特征在于,所述通知指令所述数据处理进程不访问所述第一数据子集。
5.如权利要求3所述的方法,其特征在于,还包括:
从所述第二物理机,由所述数据处理进程接收所述第一数据子集向所述第二物理机迁移的通知;和
其中,通过将所述第二物理机上的所述第一数据子集的地址范围逻辑地映射到所述数据处理进程的相应逻辑地址范围来更新所述映射是响应于由所述数据处理进程接收所述通知而完成的。
6.如权利要求1所述的方法,其特征在于,还包括由所述数据处理进程确定所述第一物理机上存储的所述第一数据子集将被迁移到所述第二物理机;并且
将所述第一数据子集从所述第一物理机迁移到所述第二物理机,以将所述数据子集存储在所述第二物理机上包括:
通过所述数据处理进程指令所述第一物理机将所述第一数据子集发送到所述数据处理进程;和
通过所述数据处理进程将从所述第一物理机接收的所述第一数据子集发送到所述第二物理机;
所述更新所述映射是由所述数据处理进程完成的。
7.如权利要求2所述的方法,其特征在于,还包括,在将所述第一数据子集从所述第一物理机迁移到所述第二物理机之后,恢复所述数据处理进程对所述第一数据子集的读写访问。
8.如权利要求1所述的方法,其特征在于,所述数据子集是被逻辑地映射到物理地址范围的数据块。
9.如权利要求1所述的方法,其特征在于,所述数据子集是数据区块。
10.一种系统,其特征在于,包括:
数据处理设备;和
非易失性计算机可读存储器,所述非易失性计算机可读存储器与所述数据处理设备进行数据通信并存储可由所述数据处理设备执行的指令,并且在进行所述执行时,使所述数据处理设备执行包括以下操作的操作:
在第一物理机中存储用于处理第一物理机中存储的数据的数据处理进程的映射,所述数据根据多个数据子集存储;
对于每个数据子集,在映射中将所述第一物理机上的所述数据子集的地址范围逻辑地映射到所述数据处理进程的相应逻辑地址范围;
根据逻辑寻址,使所述数据处理进程能够对所述数据进行读写访问;以及
响应于确定存储在所述第一物理机上的第一数据子集将被迁移到与所述第一物理机分开的第二物理机,阻止所述数据处理进程对所述第一数据子集的读写访问,同时维持所述数据处理进程对其他所述数据子集的读写访问;以及
响应于所述第一数据子集从所述第一物理机迁移到所述第二物理机以将所述数据子集存储在所述第二物理机上,通过将所述第二物理机上的所述第一数据子集的地址范围逻辑地映射到所述数据处理进程的相应逻辑地址范围来更新所述映射。
11.如权利要求10所述的系统,其特征在于:
所述第一物理机上存储的所述第一数据子集将被迁移到所述第二物理机的所述确定由所述第一物理机执行;并且
阻止所述数据处理进程对所述第一数据子集的读写访问同时维持所述数据处理进程对其他所述数据子集的读写访问包括,由所述第一物理机阻止所述数据处理进程对所述第一数据子集的读写访问。
12.如权利要求10所述的系统,其特征在于,所述操作还包括:
从所述第一物理机,由所述数据处理进程接收所述第一数据子集向所述第二物理机迁移的通知;和
其中,通过将所述第二物理机上的所述第一数据子集的地址范围逻辑地映射到所述数据处理进程的相应逻辑地址范围来更新所述映射是响应于所述数据处理进程接收由所述第一物理机提供的所述通知而完成的。
13.如权利要求12所述的系统,其特征在于,所述通知指令所述数据处理进程不访问所述第一数据子集。
14.如权利要求12所述的系统,其特征在于,所述操作还包括:
从所述第二物理机,由所述数据处理进程接收所述第一数据子集向所述第二物理机迁移的通知;和
其中,通过将所述第二物理机上的所述第一数据子集的地址范围逻辑地映射到所述数据处理进程的相应逻辑地址范围来更新所述映射是响应于由所述数据处理进程接收所述通知而完成的。
15.如权利要求10所述的系统,其特征在于,所述操作还包括由所述数据处理进程确定所述第一物理机上存储的所述第一数据子集将被迁移到所述第二物理机;并且
将所述第一数据子集从所述第一物理机迁移到所述第二物理机,以将所述数据子集存储在所述第二物理机上包括:
通过所述数据处理进程指令所述第一物理机将所述第一数据子集发送到所述数据处理进程;和
通过所述数据处理进程将从所述第一物理机接收的所述第一数据子集发送到所述第二物理机;
所述更新所述映射是由所述数据处理进程完成的。
16.如权利要求10所述的系统,其特征在于,所述数据子集是被逻辑地映射到物理地址范围的数据块。
17.如权利要求10所述的系统,其特征在于,所述数据子集是数据区块。
18.一种非易失性计算机可读存储器,其特征在于,所述非易失性计算机可读存储器与数据处理设备进行数据通信并存储可由所述数据处理设备执行的指令,并且在进行所述执行时,使所述数据处理设备执行包括以下操作的操作:
在第一物理机中存储用于处理第一物理机中存储的数据的数据处理进程的映射,所述数据根据多个数据子集存储;
对于每个数据子集,在映射中将所述第一物理机上的所述数据子集的地址范围逻辑地映射到所述数据处理进程的相应逻辑地址范围;
根据逻辑寻址,使所述数据处理进程能够对所述数据进行读写访问;以及
响应于确定存储在所述第一物理机上的第一数据子集将被迁移到与所述第一物理机分开的第二物理机,阻止所述数据处理进程对所述第一数据子集的读写访问,同时维持所述数据处理进程对其他所述数据子集的读写访问;并且
响应于所述第一数据子集从所述第一物理机迁移到所述第二物理机以将所述数据子集存储在所述第二物理机上,通过将所述第二物理机上的所述第一数据子集的地址范围逻辑地映射到所述数据处理进程的相应逻辑地址范围来更新所述映射。
CN202111145963.7A 2016-03-16 2016-12-02 远程访问数据的有效实时迁移 Active CN113821348B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111145963.7A CN113821348B (zh) 2016-03-16 2016-12-02 远程访问数据的有效实时迁移

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US15/071,852 2016-03-16
US15/071,852 US9936019B2 (en) 2016-03-16 2016-03-16 Efficient live-migration of remotely accessed data
CN201680083580.2A CN108780404A (zh) 2016-03-16 2016-12-02 远程访问数据的有效实时迁移
PCT/US2016/064738 WO2017160359A1 (en) 2016-03-16 2016-12-02 Efficient live-migration of remotely accessed data
CN202111145963.7A CN113821348B (zh) 2016-03-16 2016-12-02 远程访问数据的有效实时迁移

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201680083580.2A Division CN108780404A (zh) 2016-03-16 2016-12-02 远程访问数据的有效实时迁移

Publications (2)

Publication Number Publication Date
CN113821348A CN113821348A (zh) 2021-12-21
CN113821348B true CN113821348B (zh) 2024-04-19

Family

ID=57610407

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201680083580.2A Pending CN108780404A (zh) 2016-03-16 2016-12-02 远程访问数据的有效实时迁移
CN202111145963.7A Active CN113821348B (zh) 2016-03-16 2016-12-02 远程访问数据的有效实时迁移

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201680083580.2A Pending CN108780404A (zh) 2016-03-16 2016-12-02 远程访问数据的有效实时迁移

Country Status (8)

Country Link
US (5) US9936019B2 (zh)
EP (1) EP3414661B1 (zh)
JP (2) JP6728381B2 (zh)
KR (2) KR101993915B1 (zh)
CN (2) CN108780404A (zh)
AU (3) AU2016398043B2 (zh)
SG (2) SG10202100763RA (zh)
WO (1) WO2017160359A1 (zh)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11036392B2 (en) * 2013-02-26 2021-06-15 Pure Storage, Inc. Determining when to use convergent encryption
US9936019B2 (en) 2016-03-16 2018-04-03 Google Llc Efficient live-migration of remotely accessed data
US10592484B1 (en) * 2017-01-06 2020-03-17 Sprint Communications Company L.P. Data migration between different lightweight directory access protocol (LDAP) based wireless communication subscriber data stores
JP6901683B2 (ja) * 2017-09-22 2021-07-14 富士通株式会社 調整プログラム、調整装置および調整方法
CN108388599B (zh) * 2018-02-01 2022-08-02 平安科技(深圳)有限公司 电子装置、数据迁移及调用方法及存储介质
US11074099B2 (en) * 2018-02-06 2021-07-27 Nutanix, Inc. System and method for storage during virtual machine migration
US20190265902A1 (en) * 2018-02-28 2019-08-29 International Business Machines Corporation Live migration of applications using capi flash
CN110347483B (zh) * 2018-04-08 2021-05-11 中兴通讯股份有限公司 物理机到虚拟机迁移方法、装置及存储介质
CN108959573B (zh) * 2018-07-05 2022-07-15 京东方科技集团股份有限公司 基于桌面云的数据迁移方法、装置、电子设备以及存储介质
CN108958889A (zh) * 2018-07-12 2018-12-07 郑州云海信息技术有限公司 云数据系统中虚拟机的管理方法和装置
US10782911B2 (en) 2018-11-19 2020-09-22 Micron Technology, Inc. Data migration dynamic random access memory
US11163473B2 (en) 2018-11-19 2021-11-02 Micron Technology, Inc. Systems, devices, techniques, and methods for data migration
US11182090B2 (en) 2018-11-19 2021-11-23 Micron Technology, Inc. Systems, devices, and methods for data migration
US11256437B2 (en) 2018-11-19 2022-02-22 Micron Technology, Inc. Data migration for memory operation
JP7198102B2 (ja) * 2019-02-01 2022-12-28 日本電信電話株式会社 処理装置及び移動方法
US10924587B1 (en) 2019-05-01 2021-02-16 Amazon Technologies, Inc. Live migration for highly available data stores
US11086549B2 (en) 2019-05-21 2021-08-10 International Business Machines Corporation Just-in-time data migration in a live system
US10979303B1 (en) 2019-06-06 2021-04-13 Amazon Technologies, Inc. Segmentation of maintenance on distributed systems
US11119994B1 (en) 2019-06-06 2021-09-14 Amazon Technologies, Inc. Record-by-record live migration using segmentation
US10924429B1 (en) 2019-11-29 2021-02-16 Amazon Technologies, Inc. Using edge-optimized compute instances to execute user workloads at provider substrate extensions
US11409619B2 (en) 2020-04-29 2022-08-09 The Research Foundation For The State University Of New York Recovering a virtual machine after failure of post-copy live migration
US11372827B2 (en) 2020-05-06 2022-06-28 Amazon Technologies, Inc. Record-by-record live migration using a lock store
CN114253698A (zh) * 2020-09-22 2022-03-29 中兴通讯股份有限公司 资源调度方法、系统、电子设备及存储介质
CN112463132B (zh) * 2020-11-13 2023-06-06 四川新网银行股份有限公司 一种数据库切换工具及切换方法
CN112402979B (zh) * 2020-12-02 2023-11-17 网易(杭州)网络有限公司 游戏数据处理方法、装置和电子设备
US11656982B2 (en) * 2021-01-15 2023-05-23 Nutanix, Inc. Just-in-time virtual per-VM swap space

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103052938A (zh) * 2010-10-14 2013-04-17 株式会社日立制作所 数据迁移系统和数据迁移方法
CN103198028A (zh) * 2013-03-18 2013-07-10 华为技术有限公司 一种内存数据迁移方法、装置及系统
CN103562879A (zh) * 2011-05-26 2014-02-05 国际商业机器公司 透明文件系统迁移到新物理位置
CN104243427A (zh) * 2013-06-19 2014-12-24 日电(中国)有限公司 虚拟机在线迁移方法、数据包传输方法和设备
WO2015026925A1 (en) * 2013-08-21 2015-02-26 Simplivity Corporation System and method for virtual machine conversion
CN104750542A (zh) * 2015-04-22 2015-07-01 成都睿峰科技有限公司 一种基于云平台的数据迁移方法
CN104917784A (zh) * 2014-03-10 2015-09-16 华为技术有限公司 一种数据迁移方法、装置及计算机系统

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3138575B2 (ja) * 1993-09-02 2001-02-26 日本電気株式会社 フアイル複写移行方式
US6405284B1 (en) * 1998-10-23 2002-06-11 Oracle Corporation Distributing data across multiple data storage devices in a data storage system
US6698017B1 (en) * 1999-07-16 2004-02-24 Nortel Networks Limited Software migration on an active processing element
JP4884382B2 (ja) * 2005-05-23 2012-02-29 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法
US8806480B2 (en) * 2007-06-29 2014-08-12 Microsoft Corporation Virtual machine smart migration
US8910152B1 (en) * 2007-11-30 2014-12-09 Hewlett-Packard Development Company, L.P. Migrating a virtual machine by using a hot-plug event
US8005788B2 (en) * 2008-01-28 2011-08-23 International Business Machines Corporation System and method for legacy system component incremental migration
US9715401B2 (en) 2008-09-15 2017-07-25 International Business Machines Corporation Securing live migration of a virtual machine from a secure virtualized computing environment, over an unsecured network, to a different virtualized computing environment
US7996484B2 (en) * 2008-12-11 2011-08-09 Microsoft Corporation Non-disruptive, reliable live migration of virtual machines with network data reception directly into virtual machines' memory
US20120030306A1 (en) * 2009-04-28 2012-02-02 Nobuharu Kami Rapid movement system for virtual devices in a computing system, management device, and method and program therefor
US8429647B2 (en) 2009-05-06 2013-04-23 Vmware, Inc. Virtual machine migration across network by publishing routes to the associated virtual networks via virtual router after the start of migration of the virtual machine
JP5621229B2 (ja) * 2009-08-27 2014-11-12 日本電気株式会社 ストレージシステム、管理方法及びプログラム
US8478725B2 (en) 2009-09-14 2013-07-02 Vmware, Inc. Method and system for performing live migration of persistent data of a virtual machine
CN102576333B (zh) * 2009-10-05 2016-01-13 马维尔国际贸易有限公司 非易失性存储器中的数据高速缓存
US8327060B2 (en) * 2009-11-30 2012-12-04 Red Hat Israel, Ltd. Mechanism for live migration of virtual machines with memory optimizations
JP5984118B2 (ja) * 2009-12-04 2016-09-06 マーベル ワールド トレード リミテッド 格納デバイスの仮想化
US8924675B1 (en) 2010-09-24 2014-12-30 Emc Corporation Selective migration of physical data
CN102073462B (zh) 2010-11-29 2013-04-17 华为技术有限公司 虚拟存储迁移方法、系统和虚拟机监控器
US20120159634A1 (en) 2010-12-15 2012-06-21 International Business Machines Corporation Virtual machine migration
US9612855B2 (en) 2011-01-10 2017-04-04 International Business Machines Corporation Virtual machine migration based on the consent by the second virtual machine running of the target host
US8856191B2 (en) * 2011-08-01 2014-10-07 Infinidat Ltd. Method of migrating stored data and system thereof
US9116633B2 (en) * 2011-09-30 2015-08-25 Commvault Systems, Inc. Information management of virtual machines having mapped storage devices
US9461881B2 (en) * 2011-09-30 2016-10-04 Commvault Systems, Inc. Migration of existing computing systems to cloud computing sites or virtual machines
US20130138764A1 (en) 2011-11-30 2013-05-30 Soumendu S. Satapathy Method and system for virtual machine data migration
US9397954B2 (en) 2012-03-26 2016-07-19 Oracle International Corporation System and method for supporting live migration of virtual machines in an infiniband network
US9164795B1 (en) * 2012-03-30 2015-10-20 Amazon Technologies, Inc. Secure tunnel infrastructure between hosts in a hybrid network environment
JP6028415B2 (ja) * 2012-06-28 2016-11-16 日本電気株式会社 仮想サーバ環境のデータ移行制御装置、方法、システム
WO2014032233A1 (zh) 2012-08-29 2014-03-06 华为技术有限公司 虚拟机热迁移的系统和方法
US9372726B2 (en) 2013-01-09 2016-06-21 The Research Foundation For The State University Of New York Gang migration of virtual machines using cluster-wide deduplication
US9619258B2 (en) 2013-01-21 2017-04-11 International Business Machines Corporation Live virtual machine migration quality of service
US9405642B2 (en) * 2013-01-29 2016-08-02 Red Hat Israel, Ltd. Providing virtual machine migration reliability using an intermediary storage device
WO2014170984A1 (ja) * 2013-04-18 2014-10-23 株式会社日立製作所 ストレージシステム及び記憶制御方法
US9229878B2 (en) 2013-06-10 2016-01-05 Red Hat Israel, Ltd. Memory page offloading in multi-node computer systems
US9454400B2 (en) * 2013-08-16 2016-09-27 Red Hat Israel, Ltd. Memory duplication by origin host in virtual machine live migration
CN103455363B (zh) * 2013-08-30 2017-04-19 华为技术有限公司 一种虚拟机的指令处理方法、装置及物理主机
CN104598303B (zh) * 2013-10-31 2018-04-10 中国电信股份有限公司 基于kvm的虚拟机间在线迁移方法与装置
CN103890728B (zh) * 2013-12-31 2015-12-30 华为技术有限公司 虚拟机热迁移的方法和服务器
US9851918B2 (en) * 2014-02-21 2017-12-26 Red Hat Israel, Ltd. Copy-on-write by origin host in virtual machine live migration
US10747563B2 (en) * 2014-03-17 2020-08-18 Vmware, Inc. Optimizing memory sharing in a virtualized computer system with address space layout randomization (ASLR) enabled in guest operating systems wherein said ASLR is enable during initialization of a virtual machine, in a group, when no other virtual machines are active in said group
US9483298B2 (en) * 2014-04-23 2016-11-01 Vmware, Inc. Converting virtual machine I/O requests
US9336039B2 (en) * 2014-06-26 2016-05-10 Vmware, Inc. Determining status of migrating virtual machines
WO2016018383A1 (en) * 2014-07-31 2016-02-04 Hewlett-Packard Development Company Live migration of data
US10372335B2 (en) * 2014-09-16 2019-08-06 Kove Ip, Llc External memory for virtualization
US9626108B2 (en) * 2014-09-16 2017-04-18 Kove Ip, Llc Dynamically provisionable and allocatable external memory
US9875057B2 (en) * 2015-06-16 2018-01-23 Telefonaktiebolaget Lm Ericsson (Publ) Method of live migration
US10114958B2 (en) * 2015-06-16 2018-10-30 Microsoft Technology Licensing, Llc Protected regions
US10083062B2 (en) * 2015-07-31 2018-09-25 Cisco Technology, Inc. Data suppression for faster migration
US10360277B2 (en) * 2015-08-31 2019-07-23 Microsoft Technology Licensing, Llc Controlling data migration
US9880870B1 (en) * 2015-09-24 2018-01-30 Amazon Technologies, Inc. Live migration of virtual machines using packet duplication
US9936019B2 (en) * 2016-03-16 2018-04-03 Google Llc Efficient live-migration of remotely accessed data

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103052938A (zh) * 2010-10-14 2013-04-17 株式会社日立制作所 数据迁移系统和数据迁移方法
CN103562879A (zh) * 2011-05-26 2014-02-05 国际商业机器公司 透明文件系统迁移到新物理位置
CN103198028A (zh) * 2013-03-18 2013-07-10 华为技术有限公司 一种内存数据迁移方法、装置及系统
CN104243427A (zh) * 2013-06-19 2014-12-24 日电(中国)有限公司 虚拟机在线迁移方法、数据包传输方法和设备
WO2015026925A1 (en) * 2013-08-21 2015-02-26 Simplivity Corporation System and method for virtual machine conversion
CN104917784A (zh) * 2014-03-10 2015-09-16 华为技术有限公司 一种数据迁移方法、装置及计算机系统
CN104750542A (zh) * 2015-04-22 2015-07-01 成都睿峰科技有限公司 一种基于云平台的数据迁移方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"A security context migration framework for Virtual Machine migration";Santosh Kumar Majhi;《2015 International Conference on Computing and Network Communications (CoCoNet)》;全文 *
"虚拟机状态迁移和相变存储磨损均衡方法研究";杜雨阳;《中国博士学位论文全文数据库 信息科技辑》;全文 *
集群系统进程迁移算法研究;帅军;湖南有色金属(第02期);全文 *

Also Published As

Publication number Publication date
US10645160B2 (en) 2020-05-05
US20190158588A1 (en) 2019-05-23
AU2020260536B2 (en) 2021-02-11
JP6728381B2 (ja) 2020-07-22
SG11201807848PA (en) 2018-10-30
EP3414661A1 (en) 2018-12-19
AU2019257477A1 (en) 2019-11-21
AU2016398043A1 (en) 2018-10-04
US10187466B2 (en) 2019-01-22
US11005934B2 (en) 2021-05-11
SG10202100763RA (en) 2021-02-25
US20180183869A1 (en) 2018-06-28
CN108780404A (zh) 2018-11-09
KR20180117641A (ko) 2018-10-29
KR101993915B1 (ko) 2019-06-27
AU2020260536A1 (en) 2020-11-26
JP2019512804A (ja) 2019-05-16
CN113821348A (zh) 2021-12-21
US20170272515A1 (en) 2017-09-21
JP7174739B2 (ja) 2022-11-17
EP3414661B1 (en) 2023-07-26
WO2017160359A1 (en) 2017-09-21
US20210258378A1 (en) 2021-08-19
AU2016398043B2 (en) 2019-09-19
US11824926B2 (en) 2023-11-21
US9936019B2 (en) 2018-04-03
KR20190073619A (ko) 2019-06-26
US20200145488A1 (en) 2020-05-07
KR102055325B1 (ko) 2019-12-12
JP2020173840A (ja) 2020-10-22

Similar Documents

Publication Publication Date Title
CN113821348B (zh) 远程访问数据的有效实时迁移
US9720952B2 (en) Virtual block devices
US9552233B1 (en) Virtual machine migration using free page hinting
US10389852B2 (en) Method and system for providing a roaming remote desktop
US7792918B2 (en) Migration of a guest from one server to another
US20160350010A1 (en) Providing block size compatibility with a storage filter
US9940293B1 (en) Method for efficient storage and backup of data via SCSI transport
US11467735B2 (en) I/O operations in log structured arrays
US10530870B2 (en) Direct volume migration in a storage area network
CN112236988A (zh) 云计算中用于控制多租户缓存服务的管理操作和共享内存空间的系统和方法
US20180150310A1 (en) Input/output component selection for virtual machine migration
US20230359533A1 (en) User Triggered Virtual Machine Cloning for Recovery/Availability/Scaling
US10833982B2 (en) Server-side path selection in multi virtual server environment

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