CN103250395B - 异步虚拟机复制方法及装置 - Google Patents
异步虚拟机复制方法及装置 Download PDFInfo
- Publication number
- CN103250395B CN103250395B CN201180059502.6A CN201180059502A CN103250395B CN 103250395 B CN103250395 B CN 103250395B CN 201180059502 A CN201180059502 A CN 201180059502A CN 103250395 B CN103250395 B CN 103250395B
- Authority
- CN
- China
- Prior art keywords
- packet
- virtual machine
- data
- control
- classification
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1482—Generic software techniques for error detection or fault masking by means of middleware or OS functionality
- G06F11/1484—Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2038—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2097—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2408—Traffic characterised by specific attributes, e.g. priority or QoS for supporting different services, e.g. a differentiated services [DiffServ] type of service
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/245—Traffic characterised by specific attributes, e.g. priority or QoS using preemption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2466—Traffic characterised by specific attributes, e.g. priority or QoS using signalling traffic
Abstract
提供了一种用于异步虚拟机复制的方法和设备。该方法包括确定对应于与虚拟机关联的数据分组的分类,以及基于所确定的分类缓冲所述数据分组或传送所述数据分组。
Description
技术领域
实施例涉及虚拟机的异步复制。
背景技术
诸如用于提供电话通信服务的计算基础设施的虚拟化包括在计算环境上提供这样的服务。
虚拟化可以包括对物理机器、服务器和虚拟机的使用。物理机器或服务器是物理实体。虚拟机包括在物理机器上执行的软件,其仿真与可在同一物理机器上仿真的其它虚拟机独立的单独的机器。单个物理机器可托管多个虚拟机。术语“服务器”可基于语境指代物理机器或虚拟机。
可以使用两种方法之一来复制虚拟机。一种是同步虚拟机复制,另一种是异步虚拟机复制。同步虚拟机复制太慢以至于不能实用于高数据率应用。尽管显著地好于同步方案,但是由于其对外出业务量的限制,异步虚拟机复制不可直接地应用于高数据率应用(所有传送的分组需要被缓存延长的时间段,导致显著的带宽减少)。
异步复制确保外部客户端对被复制的系统具有一致的视图,而不管成功与否。原始的和备份的仅以特定间隔同步。如果为在先时间间隔中建立的数据分组发生所有数据分组传送,则确保了一致性,因为在先间隔已成功地送交(committed to)给备份。
因为以已知异步方法缓存所有数据分组,分组仅在每个缺省时间间隔(Tepoch)传送,从而以与所述间隔的持续时间成比例的因子降低了有效带宽。此外,在已知的异步方法中,外部客户端将在分组缓存期间体验不活动的周期,随后是缓存释放期间非常高的网络业务量的简短周期。进一步地,在已知的异步方法中,来自复制的虚拟机的响应将被平均推迟Tepoch/2。
发明内容
示例实施例涉及虚拟机的异步复制。
一个实施例包括用于复制虚拟机的方法。该方法包括确定对应于与虚拟机关联的数据分组的分类,以及基于所确定的分类缓冲所述分组或传送所述分组。
另一实施例包括与虚拟机的托管关联的控制模块。所述控制模块包括配置成缓冲数据分组的存储器。所述控制模块包括配置成确定对应于与虚拟机关联的分组的分类,并配置成基于确定的分类缓冲存储器中的分组或传送所述分组的分组分类器。
另一实施例包括网络交换机。网络交换机包括配置成从托管虚拟机的控制模块接收消息的模块,所述消息包括对应于与虚拟机关联的分组的控制信息和协议信息。网络交换机进一步包括配置成基于协议信息和控制信息确定分类并配置成基于确定的分类缓冲分组或传送分组的分组分类器。
附图说明
从此处下面给出的详细描述以及附图可以更全面地理解本发明,其中相同的元件由相同的图标表示,附图仅作为示例给出,因此不限制本发明,其中:
图1示出了根据示例实施例的网络。
图2示出了根据示例实施例的控制模块150。
图3示出了根据示例实施例的替代控制模块155。
图4示出了根据示例实施例的交换机110。
图5示出了根据示例实施例用于异步虚拟机复制的方法。
图6示出了根据示例实施例用于异步虚拟机复制的方法。
应注意的是,这些示图旨在示出在特定实例实施例中使用的方法、结构和/或材料的一般特性,并补充下面提供的书面描述。然而,这些附图没有按比例绘制并且可能没有精确地反映任何给定实施例的精确结构或性能特性,因此不应解释为限定或限制示例实施例所包含的特性或值的范围。例如,为了清楚,可减小或扩大分子、层、区域和/或结构元件的相对厚度和定位。各个附图中对类似或相同参考图标的使用旨在表明类似或相同元件或特征的存在。
具体实施方式
虽然示例实施例能够有各种修改和替代形式,但其实施例以附图中示例的形式示出并将在此处详细描述。然而,应该理解的是,本发明不意在将示例实施例限制为公开的特定形式,而是相反,示例实施例将覆盖落入权利要求范围内的所有修改、等效或替代方案。通篇对附图的描述中相同的图标指代相同的元件。
在更详细地讨论示例实施例之前,应注意,一些示例实施例描述为过程或描述为流程图的方法。尽管流程图将操作描述为顺序的过程,但是许多操作可以并行、同时或一起执行。此外,可以重新安排操作的顺序。过程可以在其操作完成时结束,但也可以具有附图中未包含的附加步骤。该过程可以对应于方法、功能、程序、子例程、子程序等。
下面讨论的方法(其中一些由流程图示出)可以由硬件、软件、固件、中间件、微代码、硬件描述语言或其任意组合实现。当在软件、固件、中间件或微代码中实现时,将执行必要任务的程序代码或代码分段将存储在诸如存储介质的机器或计算机可读介质中。处理器将执行该必要任务。
此处公开的特定结构和功能性细节只是为了描述本发明的示例实施例。然而,本发明可以许多替代形式体现,并且不应解释为限定为此处列举的实施例。
应理解的是,尽管此处可使用术语第一、第二等来描述各种元件,但是这些元件不应被这些术语限制。这些术语仅用于将元件彼此区分。例如,可以将第一元件称为第二元件、并且类似地,可将第二元件称为第一元件,而不偏离示例实施例的范围。此处使用的术语“和/或”包括关联的所列术语中的一个或多个的任意或所有组合。应理解的是,当一个元件被称为“连接”或“耦合”到另一元件时,其可以直接连接或耦合到其它元件或者可以存在介于其间的元件。相比之下,当元件被称为“直接地连接”或“直接地耦合”到另一元件时,则不存在介于其间的元件。应以类似的方式解释用于描述元件间的关系的其它措辞(例如,“之间”与“直接地位于其间”,“相邻”与“直接地相邻”等)。
此处使用的术语只是为了描述特定实施例,不意在限制示例实施例。除非上下文明确地表明,此处使用的术语“一”、“一个”和“所述”意在也包括复数形式。应进一步理解的是,此处使用的术语“包括”、“包含”和/或“含有”指定所述特征、整数、步骤、操作、元件和/或组件的存在,但是不排除一个或多个其它特征、整数、步骤、操作、元件、组件和/或其群组的存在或添加。
还应该理解的是,在一些替代实施例中,所记载的功能/动作可以附图中记载的顺序之外的顺序发生。例如,两个接连示出的附图实际上可以同时执行,或者有时可以反向顺序执行,取决于所涉及的功能性/动作。
除非以其它方式定义,否则此处使用的所有术语(包括技术和科学术语)具有如示例实施例所属领域普通技术人员所理解的相同含义。应进一步理解的是,例如通常使用的词典中定义的术语的术语应被解释为具有与相关领域的语境中的含义一致的含义,并且不应以理想化的或过于形式化的理解进行解释,除非此处明确地如此定义。
根据软件或算法以及计算机存储器内的数据比特上操作的符号表示呈现示例实施例的部分以及对应的详细描述。这些描述和表示是本领域技术人员可借以将其工作高效地传递给本领域其它技术人员的描述和表示。如其通常所使用的,此处使用的术语算法构思为导致所需结果的步骤的前后一致的序列。所述步骤为需要物理量的物理操控的步骤。通常,尽管不必须,但这些量采取能够被存储、传输、组合、比较以及以其他方式被操控的光、电或磁信号的形式。主要因为常规使用,已证明有时是方便的以指代这些信号为比特、值、元件、符号、特征、条款、数目等。
在下面的描述中,将参考可被实现为包括例程、程序、对象、组件、数据结构等的程序模块或功能过程的操作的动作和符号表示(例如,以流程图的形式)来描述说明性实施例,其中程序模块或功能过程执行特定任务或实现特定抽象数据类型,并将使用现有硬件在现有网络元件处实现。这种现有硬件将包括一个或多个中央处理单元(CPU)、数字信号处理器(DSP)、专用集成电路、场可编程门阵列(FPGA)计算机等中的至少一个。
然而,应记住的是,所有这些和类似的术语将与合适的物理量相关联,并且仅为应用于这些量的便利标签。除非明确地规定,否则从所述讨论显而易见的是,诸如“处理”或“估算”或“计算”或“确定”或“显示”等的术语指代计算机系统或类似的电子计算设备的动作和处理,其操控和将被表示为计算系统的寄存器和存储器中的物理、电子量的数据转换为类似地被表示为计算系统存储器或寄存器或其它这样的信息存储、传输或显示设备内的物理量的其它数据。
同样应注意的是,示例实施例的软件实现的方面通常以程序/非暂时性存储介质形式编码或在某种类型的传输介质上实现。程序存储介质可以是磁的(例如,软盘或硬盘机)或电的(例如,光盘只读存储器或“CD ROM”),并且可为只读或随机存取的。类似地,传输介质可为双绞线、同轴电缆、光线或现有技术已知的一些其它合适的传输介质。示例实施例不受给定实现方式的这些方面的限制。
如此处使用的,术语“客户端”可认为与移动、移动单元、移动台、用户设备、对方台、接入终端、接收机等同义并可在下文中间或指代移动、移动单元、移动台、用户设备、对方台、接入终端、接收机等,并且可以描述通信网络中的有线或无线资源的远程用户。
此处使用的术语“物理机器”可认为与服务器、网络设备、联网计算机等同义并可在下文中间或指代服务器、网络设备、联网计算机等,并且可以描述有线或无线通信网络的物理计算设备并配置成托管虚拟机。
图1示出了根据示例实施例的网络。如图1所示,客户端105可与交换机110(关于下面的图4更详细地描述)互连。尽管只示出了一个客户端,但是应该理解的是,示例实施例不限制为一个客户端105。交换机110包括在网络环境115中。
网络环境115包括一个或多个物理机器120、125。物理机器120、125可包括控制模块150、155。物理机器120、125可包括一个或多个虚拟机130、135、140、145。例如,虚拟机120包括控制模块150和单个虚拟机130,物理机器125包括控制模块155和三个虚拟机135、140、145。
例如,本领域技术人员可已知控制模块150、155为管理程序或虚拟机管理器(VMM)。控制模块150、155可配置成托管一个或多个虚拟机130、135、140、145。下面将关于图2和图3更详细地讨论控制模块150、155。
如本领域技术人员所知,虚拟机130、135、140、145是执行软件的机器的软件实现方式,就像虚拟机130、135、140、145是物理机器。可以在物理机器120、125上执行多个虚拟机130、135、140、145。与操作系统如何能允许多个程序在物理机器120、125上同时运行类似,控制模块150、155或管理程序可以允许多个虚拟机130、135、140、145在物理机器120、125上同时运行。为了简洁,将不再进一步描述虚拟机130、135、140、145的一般操作。
网络环境115为本领域技术人员已知。通常,网络环境115将由彼此通信并运行为向客户端105提供服务的多个组件(例如,服务器、数据库、路由器和多路复用器)构成。服务包括例如语音、媒体、应用、计算资源等。网络环境115向多个客户端105提供灵活的计算资源。如本领域技术人员所知的,网络环境115可以是公共网络、私人网络和/或混合(公共/私人)网络。
图2图示了根据示例实施例的控制模块150。如图2所示,控制模块150可以包括虚拟机接口210、分组分类器215、规则制定数据库220、传送缓冲器225和网络接口230。虚拟机接口210用作向和从一个或多个虚拟机传送和接收的分组和信号的接口。网络接口230用作向和从一个或多个网络元件(例如,路由器、交换机、客户端等)传送和接收的分组和信号的接口。接口(例如,虚拟机接口210和网络接口230)为本领域技术人员所熟知且为了简洁将不再进一步描述。
分组分类器215可接收经由虚拟机接口210从虚拟机(例如,虚拟机130)接收的数据分组作为输入,并基于所确定的对应于该数据分组的分类和虚拟机的状态转发数据分组。基于所述确定将数据分组转发到传送缓冲器225或网络接口230。传送缓冲器225可以是存储器(例如,ROM、RAM、SDRAM、DDR等)。
例如,分组分类器215确定是否缓冲(例如,在传送缓冲器225中)与复制的虚拟机关联的数据分组以使得不改变所复制的虚拟机的外部可见状态的任何数据分组不被缓冲。而缓冲改变所复制的虚拟机的外部可见状态的数据分组。外部可见状态可以是客户端可见的虚拟机状态。
不改变所复制的虚拟机的外部可见状态的数据分组可以是例如转发的数据分组(例如,不在虚拟机处始发的数据分组)以及仅包括数据的数据分组。改变所复制的虚拟机的外部可见状态的数据分组可以是例如包括控制消息的数据分组。
规则制定数据库220可以包括例如将数据分组的类型(例如,数据或控制)与分类进行关联的数据表。每个分类可以定义数据分组是否将被缓冲。规则制定数据库220可以在任何时间改变并且可以由与控制模块150关联的应用和/或与虚拟机关联的应用控制。
例如,假设控制模块150从虚拟机130接收两个数据分组并且该虚拟机130为复制的虚拟机。第一数据分组与分类一关联,第二数据分组与分类二关联。规则制定模块220包括分类一是仅有数据的数据分组且分类二是包括控制消息的数据分组这样的关联。
分组分类器215使用来自规则制定数据库220的关联,基于分类一是仅有数据的数据分组(其为不改变所复制的虚拟机130的外部可见状态的数据分组)的关联确定第一数据分组将不被缓冲。分组分类器215使用来自规则制定数据库220的关联,基于分类二是包括控制消息的数据分组(其为改变所复制的虚拟机130的外部可见状态的数据分组)的关联确定第二数据分组将被缓冲。因此,分组分类器215将第一数据分组直接转发到网络接口230,将第二数据分组转发到传送缓冲器225。
图3图示了根据示例实施例的替代控制模块155。如图3所示,控制模块155可以包括虚拟机接口310、控制接口315、控制和协议模块320以及网络接口325。虚拟机接口310用作向和从一个或多个虚拟机传送和接收的信号的接口。控制接口315用作向和从一个或多个交换机(例如,交换机110)传送和接收的分组和信号的接口。网络接口325用作向和从一个或多个网络元件(例如,路由器、交换机、客户端等)传送和接收的分组和信号的接口。接口(例如,虚拟机接口310、控制接口315和网络接口325)为本领域技术人员所熟知且为了简洁将不再进一步描述。
控制和协议模块320监控通过控制模块155传送的数据分组。控制和协议模块320监控数据分组以确定与数据分组关联的信息。例如,控制和协议模块320可监控分组以确定数据分组是否是包括控制消息的数据分组。例如,控制和协议模块320可监控分组以确定与数据分组关联的协议。
控制和协议模块320将信息传达给控制接口315。控制接口315将该信息传达给另一网络元件(例如,交换机110)。
图4图示了根据示例实施例的交换机110。如图4所示,交换机110可以包括控制模块接口410、控制接口415、控制和协议模块420、分组分类器425、规则制定数据库430、传送缓冲器435以及网络接口440。控制模块接口410用作向和从一个或多个控制模块(例如,控制模块155)传送和接收的分组和信号的接口。控制接口415用作向和从一个或多个控制模块(例如,控制模块155)传送和接收的信号的接口。网络接口440用作向和从一个或多个网络元件(例如,路由器、交换机、客户端等)传送和接收的分组和信号的接口。接口(例如,控制模块接口410、控制接口415和网络接口440)为本领域技术人员所熟知且为了简洁将不再进一步描述。
控制和协议模块420可接收与数据分组关联的分组信息。可经由控制模块接口410从控制模块(例如,控制模块155)接收数据分组。可经由控制接口415从控制模块(例如,控制模块155)接收分组信息。控制和协议模块420可基于分组信息确定数据分组是否是包括控制消息的数据分组,数据分组是否是仅包括数据或与数据分组关联的协议的数据分组。控制和协议模块420可将所述确定传达给分组分类器425和传送缓冲器435。
分组分类器425可接收经由控制模块接口410从控制模块(例如,控制模块155)接收的数据分组作为输入,并且分组分类器425可基于所确定的对应于该数据分组的分类和虚拟机的状态转发数据分组。基于所述确定将数据分组转发到传送缓冲器435或网络接口440。
例如,分组分类器425确定是否缓冲(例如,在传送缓冲器435中)与复制的虚拟机关联的数据分组以使得不改变所复制的虚拟机的外部可见状态的任何数据分组不被缓冲。而缓冲改变所复制的虚拟机的外部可见状态的数据分组。传送缓冲器435可以是存储器(例如,ROM、RAM、SDRAM、DDR等)。
不改变所复制的虚拟机的外部可见状态的数据分组可以是例如转发的数据分组(例如,不在虚拟机处始发的数据分组)以及仅包括数据的数据分组。改变所复制的虚拟机的外部可见状态的数据分组可以是例如包括控制消息的数据分组。
规则制定数据库430可以包括例如将数据分组的类型(例如,数据或控制)与分类进行关联的数据表。每个分类可以定义数据分组是否将被缓冲。规则制定数据库430可以在任何时间改变并且可以由与交换机110关联的应用和/或与虚拟机(例如,虚拟机135)关联的应用控制。
例如,假设交换机110从控制模块(例如,控制模块155)接收两个数据分组并且该虚拟机135为复制的虚拟机。第一数据分组与分类一关联,第二数据分组与分类二关联。规则制定模块430包括分类一是仅有数据的数据分组且分类二是包括控制消息的数据分组这样的关联。
控制和协议模块420接收与第一数据分组和第二数据分组关联的第一分组信息。控制和协议模块420还接收表明虚拟机130是第一数据分组和第二数据分组的源的第二分组信息。第一分组信息至少包括第一数据分组与分类一关联并且第二数据分组与分类二关联的指示。第二分组信息至少包括虚拟机130是复制的虚拟机的指示。控制和协议模块420将第一和第二分组信息(或关于分类和复制的确定)传达给分组分类器425。
分组分类器425使用来自规则制定数据库430的关联,基于分类一是仅有数据的数据分组(其为不改变所复制的虚拟机135的外部可见状态的数据分组)的关联确定第一数据分组将不被缓冲。分组分类器425使用来自规则制定数据库430的关联,基于分类二是包括控制消息的数据分组(其为改变所复制的虚拟机135的外部可见状态的数据分组)的关联确定第二数据分组将被缓冲。因此,分组分类器将第一数据分组直接转发到网络接口440,将第二数据分组转发到传送缓冲器435。
图5图示了根据示例实施例用于异步虚拟机复制的方法。在描述与图5关联的方法的步骤时将参考图1的网络和图2的控制模块150。
参考图5,在步骤S505中,托管虚拟机的控制模块确定虚拟机将被复制。在步骤S510中,控制模块开始虚拟机的复制。确定虚拟机将被复制以及发起虚拟机的复制是本领域技术人员已知的,为了简洁将不再进一步描述。
在步骤S515中,控制模块从将被复制的虚拟机接收数据分组。例如,控制模块150可从虚拟机130(假设虚拟机130是将被复制的虚拟机)接收数据分组。控制模块150可经由虚拟机接口210接收数据分组,如图2中所示。
在步骤S520中,控制模块150确定与数据分组关联的分类。例如,分组分类器215可基于与将要复制的虚拟机关联的数据分组是否要被缓冲(例如,在传送缓冲器225中)来确定与数据分组关联的分类,以使得不改变所复制的虚拟机的外部可见状态的任何数据分组不被缓冲。而缓冲改变所复制的虚拟机的外部可见状态的数据分组。
不改变被复制的虚拟机的外部可见状态的数据分组可以是例如转发的数据分组(例如,不在虚拟机处始发的数据分组)以及仅包括数据的数据分组。改变被复制的虚拟机的外部可见状态的数据分组可以是例如包括控制消息的数据分组。
例如,如上所述,规则制定数据库220可以包括将数据分组的类型(例如,数据或控制)与分类进行关联的数据表。每个分类可以定义数据分组是否将被缓冲。分组分类器215可以在步骤S520中使用数据分组与分类之间的关联来确定是否缓冲与被复制的虚拟机关联的数据分组。
在步骤S525中,控制模块150确定分类是否引起状态改变(例如,数据分组包括控制消息)。如果分类引起状态改变,那么在步骤S530中缓冲数据分组(例如,在传送缓冲器225中)。否则,在步骤S535中数据分组被传送(例如,经由网络接口230)。如以上关于图2所述,可以由分组分类器215执行步骤S520和S525。
在步骤S540中,控制模块150确定复制是否完成。如果复制没有完成,则处理返回步骤S515。否则,在步骤S545中,使用标准的(已知)处理来处理数据分组。确定复制是否完成以及对数据分组的标准处理为本领域技术人员所熟知,因此为了简洁将不进一步介绍。
图6图示了根据示例实施例用于异步虚拟机复制的方法。在描述与图6关联的方法的步骤时将参考图1的网络、图3的控制模块155以及图4的交换机110。
参考图6,在步骤S605中,托管虚拟机的控制模块确定虚拟机将被复制。在步骤S610中,控制模块开始虚拟机的复制。确定虚拟机将被复制以及发起虚拟机的复制是本领域技术人员已知的,为了简洁将不再进一步描述。
在步骤S615中,交换机110从控制模块(例如,控制模块155)接收消息。消息包括与数据分组关联的协议和控制信息。协议和控制信息可包括与数据分组关联的协议、与数据分组关联的分类(如上所述)、与数据分组关联的消息信息和/或与数据分组关联的数据类型信息。
例如,控制模块155可如上所述关于图3确定协议和控制信息。控制模块155可经由控制接口315将信令消息发送到交换机110。然后交换机110可经由控制接口415接收该信令消息,并且控制和协议模块420处理该信令消息,如上述关于图4讨论的。
在步骤S620中,交换机110从托管被复制的虚拟机的控制模块(例如,控制模块155)接收数据分组。例如,交换机110可从虚拟机135接收数据分组(假设虚拟机135是被复制的虚拟机)。可经由控制模块155接收数据分组。交换机110可经由控制模块接口410接收数据分组,如图4所示。
在步骤S625中,交换机110确定与数据分组关联的分类。例如,分组分类器425可基于与被复制的虚拟机关联的数据分组是否要被缓冲(例如,在传送缓冲器435中)来确定与数据分组关联的分类,以使得不改变被复制的虚拟机的外部可见状态的任何数据分组不被缓冲。而缓冲改变被复制的虚拟机的外部可见状态的数据分组。
不改变被复制的虚拟机的外部可见状态的数据分组可以是例如转发的数据分组(例如,不在虚拟机处始发的数据分组)以及仅包括数据的数据分组。改变被复制的虚拟机的外部可见状态的数据分组可以是例如包括控制消息的数据分组。
例如,如上所述,规则制定数据库430可以包括将数据分组的类型(例如,数据或控制)与分类进行关联的数据表。每个分类可以定义数据分组是否将被缓冲。分组分类器425可以在步骤S625中使用数据分组与分类之间的关联来确定是否缓冲与被复制的虚拟机关联的数据分组。
在步骤S630中,交换机110确定分类是否引起状态改变(例如,数据分组包括控制消息)。如果分类引起状态改变,那么在步骤S635中缓冲数据分组(例如,在传送缓冲器435中)。否则,在步骤S640中数据分组被传送(例如,经由网络接口440)。如以上关于图4所述,可以由分组分类器425执行步骤S625和S630。
在步骤S645中,交换机110确定复制是否完成。如果复制没有完成,则处理返回步骤S615。否则,在步骤S650中,使用标准的(已知)处理来处理数据分组。确定复制是否完成以及对数据分组的标准处理为本领域技术人员所熟知,因此为了简洁将不进一步介绍。
尽管示例实施例描述了在异步虚拟机复制期间包括缓冲数据分组的新方法(例如,图5和图6),但是示例实施例不限于此。例如,可以复制虚拟机以创建备份或备用虚拟机。可以使用如上所述相同的方法和相同的装置来处理与备份或备用虚拟机关联的数据分组。
例如,可以从原始的虚拟机和作为原始的虚拟机的备份的虚拟机的角度来执行图5的方法。在该示例中,被复制的虚拟机变成原始的虚拟机,并且步骤S540被询问是否继续使用备份虚拟机替代。类似的替代示例实施例可基于图6。
本发明的替代实施例可实现为用于计算机系统的计算机程序产品,例如,计算机程序产品为存储在有形或非暂态数据记录介质(计算机可读介质)上或在计算机数据信号中体现的计算机指令序列、代码片段或程序片段,有形或非暂态数据记录介质例如为磁盘、CD-ROM、ROM或硬盘,计算机数据信号在有形介质或无线介质(例如,微波或红外线)上传送。计算机指令序列、代码片段或程序片段可构成上述示例实施例的方法的所有或部分功能性,并且也可以存储在任何存储器设备中,易失性的或非易失性的,诸如半导体、磁、光或其它存储器设备。
示例实施例提供用于虚拟机的异步复制的改进方案,因为在已知方法中所有数据分组从复制的虚拟机缓冲。因为在已知方法中所有数据分组被缓冲,因此分组仅每缺省时间间隔(Tepoch)传送,从而以与间隔持续时间成比例的因子降低了有效带宽。此外,在已知方法中,外部客户端在分组缓冲期间将体验不活动周期,随后在缓冲释放期间体验非常高的网络业务量的简短周期。进一步地,在已知方法中,来自复制的虚拟机的响应将被平均延迟Tepoch/2。
尽管已特别地示出和描述示例实施例,但本领域技术人员将理解的是,在不脱离权利要求的精神和范围的情况下可以进行形式和细节上的改变。
因此已描述了本发明,将显而易见的是,可以许多方式作出修改。这样的修改将不认为是对本发明的偏离,并且所有这样的修改意在包括在本发明的范围内。
Claims (9)
1.一种复制虚拟机的方法,所述方法包括:
由网络元件基于由所述虚拟机传送的数据分组的类型来确定与所述数据分组对应的分类;以及
基于所确定的分类,由所述网络元件缓冲所述数据分组或传送所述数据分组;
其中,所述类型是包括控制消息的数据分组和只包括数据的数据分组中的一种。
2.根据权利要求1所述的方法,其中,所述分类基于规则制定来确定,所述规则制定包括分类和数据分组的类型之间的关联。
3.根据权利要求2所述的方法,其中缓冲包括控制消息的数据分组,并且传送只包括数据的数据分组。
4.根据权利要求1所述的方法,其中所述网络元件是网络交换机。
5.根据权利要求4所述的方法,进一步包括:
由所述网络交换机从托管所述虚拟机的控制模块接收协议和控制信息;以及
由所述网络交换机从托管所述虚拟机的控制模块接收所述数据分组,其中所述协议和控制信息用于确定所述数据分组的类型。
6.一种管理虚拟机的控制模块,所述控制模块包括:
配置成缓冲数据分组的存储器;以及
配置成基于由所述虚拟机传送的数据分组的类型来确定与所述数据分组对应的分类并且配置成基于所确定的分类来确定在所述存储器中缓冲所述数据分组或者确定传送所述数据分组的分组分类器;
其中,所述类型是包括控制消息的数据分组和只包括数据的数据分组中的一种。
7.根据权利要求6所述的控制模块,其中,
缓冲包括控制消息的数据分组,以及
传送只包括数据的数据分组。
8.一种网络交换机,包括:
配置成从托管虚拟机的控制模块接收消息的模块,所述消息包括与由所述虚拟机传送的数据分组相关联的协议和控制信息;
配置成基于所述协议和控制信息确定所述数据分组的类型的模块;以及
分组分类器,其被配置成基于所确定的所述数据分组的类型确定与所述数据分组对应的分类,并基于所确定的分类来确定缓冲所述数据分组或者确定传送所述数据分组;
其中,所述类型是包括控制消息的数据分组和只包括数据的数据分组中的一种。
9.根据权利要求8所述的网络交换机,其中,
缓冲包括控制消息的数据分组,以及
传送只包括数据的数据分组。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/964,900 | 2010-12-10 | ||
US12/964,900 US9253100B2 (en) | 2010-12-10 | 2010-12-10 | Asynchronous virtual machine replication |
PCT/US2011/061646 WO2012078347A2 (en) | 2010-12-10 | 2011-11-21 | Asynchronous virtual machine replication |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103250395A CN103250395A (zh) | 2013-08-14 |
CN103250395B true CN103250395B (zh) | 2017-03-29 |
Family
ID=45218884
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180059502.6A Active CN103250395B (zh) | 2010-12-10 | 2011-11-21 | 异步虚拟机复制方法及装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9253100B2 (zh) |
EP (1) | EP2649757B1 (zh) |
JP (1) | JP5710779B2 (zh) |
KR (1) | KR101471315B1 (zh) |
CN (1) | CN103250395B (zh) |
WO (1) | WO2012078347A2 (zh) |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8307177B2 (en) | 2008-09-05 | 2012-11-06 | Commvault Systems, Inc. | Systems and methods for management of virtualization data |
US11449394B2 (en) | 2010-06-04 | 2022-09-20 | Commvault Systems, Inc. | Failover systems and methods for performing backup operations, including heterogeneous indexing and load balancing of backup and indexing resources |
US20140181046A1 (en) * | 2012-12-21 | 2014-06-26 | Commvault Systems, Inc. | Systems and methods to backup unprotected virtual machines |
US10162873B2 (en) * | 2012-12-21 | 2018-12-25 | Red Hat, Inc. | Synchronization of physical disks |
US9286086B2 (en) | 2012-12-21 | 2016-03-15 | Commvault Systems, Inc. | Archiving virtual machines in a data storage system |
US20140196038A1 (en) | 2013-01-08 | 2014-07-10 | Commvault Systems, Inc. | Virtual machine management in a data storage system |
US20140201151A1 (en) | 2013-01-11 | 2014-07-17 | Commvault Systems, Inc. | Systems and methods to select files for restoration from block-level backup for virtual machines |
US9286110B2 (en) | 2013-01-14 | 2016-03-15 | Commvault Systems, Inc. | Seamless virtual machine recall in a data storage system |
US9939981B2 (en) | 2013-09-12 | 2018-04-10 | Commvault Systems, Inc. | File manager integration with virtualization in an information management system with an enhanced storage manager, including user control and storage management of virtual machines |
US9563518B2 (en) | 2014-04-02 | 2017-02-07 | Commvault Systems, Inc. | Information management by a media agent in the absence of communications with a storage manager |
US20160019317A1 (en) | 2014-07-16 | 2016-01-21 | Commvault Systems, Inc. | Volume or virtual machine level backup and generating placeholders for virtual machine files |
US9417968B2 (en) | 2014-09-22 | 2016-08-16 | Commvault Systems, Inc. | Efficiently restoring execution of a backed up virtual machine based on coordination with virtual-machine-file-relocation operations |
US9710465B2 (en) | 2014-09-22 | 2017-07-18 | Commvault Systems, Inc. | Efficiently restoring execution of a backed up virtual machine based on coordination with virtual-machine-file-relocation operations |
US9436555B2 (en) | 2014-09-22 | 2016-09-06 | Commvault Systems, Inc. | Efficient live-mount of a backed up virtual machine in a storage management system |
US9836476B2 (en) * | 2014-09-25 | 2017-12-05 | Netapp, Inc. | Synchronizing configuration of partner objects across distributed storage systems using transformations |
US10776209B2 (en) | 2014-11-10 | 2020-09-15 | Commvault Systems, Inc. | Cross-platform virtual machine backup and replication |
US9983936B2 (en) | 2014-11-20 | 2018-05-29 | Commvault Systems, Inc. | Virtual machine change block tracking |
US10645031B2 (en) * | 2015-06-02 | 2020-05-05 | At&T Intellectual Property I, L.P. | Virtual network element and methods for use therewith |
US10565067B2 (en) | 2016-03-09 | 2020-02-18 | Commvault Systems, Inc. | Virtual server cloud file system for virtual machine backup from cloud operations |
US10747630B2 (en) | 2016-09-30 | 2020-08-18 | Commvault Systems, Inc. | Heartbeat monitoring of virtual machines for initiating failover operations in a data storage management system, including operations by a master monitor node |
US10162528B2 (en) | 2016-10-25 | 2018-12-25 | Commvault Systems, Inc. | Targeted snapshot based on virtual machine location |
US10152251B2 (en) | 2016-10-25 | 2018-12-11 | Commvault Systems, Inc. | Targeted backup of virtual machine |
US10678758B2 (en) | 2016-11-21 | 2020-06-09 | Commvault Systems, Inc. | Cross-platform virtual machine data and memory backup and replication |
US20180276022A1 (en) | 2017-03-24 | 2018-09-27 | Commvault Systems, Inc. | Consistent virtual machine replication |
US10387073B2 (en) | 2017-03-29 | 2019-08-20 | Commvault Systems, Inc. | External dynamic virtual machine synchronization |
US10877928B2 (en) | 2018-03-07 | 2020-12-29 | Commvault Systems, Inc. | Using utilities injected into cloud-based virtual machines for speeding up virtual machine backup operations |
US11200124B2 (en) | 2018-12-06 | 2021-12-14 | Commvault Systems, Inc. | Assigning backup resources based on failover of partnered data storage servers in a data storage management system |
US10996974B2 (en) | 2019-01-30 | 2021-05-04 | Commvault Systems, Inc. | Cross-hypervisor live mount of backed up virtual machine data, including management of cache storage for virtual machine data |
US10768971B2 (en) | 2019-01-30 | 2020-09-08 | Commvault Systems, Inc. | Cross-hypervisor live mount of backed up virtual machine data |
US11467753B2 (en) | 2020-02-14 | 2022-10-11 | Commvault Systems, Inc. | On-demand restore of virtual machine data |
US11442768B2 (en) | 2020-03-12 | 2022-09-13 | Commvault Systems, Inc. | Cross-hypervisor live recovery of virtual machines |
US11099956B1 (en) | 2020-03-26 | 2021-08-24 | Commvault Systems, Inc. | Snapshot-based disaster recovery orchestration of virtual machine failover and failback operations |
US11500669B2 (en) | 2020-05-15 | 2022-11-15 | Commvault Systems, Inc. | Live recovery of virtual machines in a public cloud computing environment |
US11656951B2 (en) | 2020-10-28 | 2023-05-23 | Commvault Systems, Inc. | Data loss vulnerability detection |
CN112445578B (zh) * | 2020-12-11 | 2023-06-16 | 西安万像电子科技有限公司 | 零终端数据处理系统及其文件复制方法、装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101211277A (zh) * | 2006-12-27 | 2008-07-02 | 株式会社东芝 | 选择子os的一个执行计划的方法与使用该方法的虚拟机监视器 |
CN101557420A (zh) * | 2009-03-31 | 2009-10-14 | 北京航空航天大学 | 虚拟机监控器高效网络通信的实现方法 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7620955B1 (en) * | 2001-06-08 | 2009-11-17 | Vmware, Inc. | High-performance virtual machine networking |
US7065549B2 (en) * | 2002-03-29 | 2006-06-20 | Illinois Institute Of Technology | Communication and process migration protocols for distributed heterogeneous computing |
US20080008202A1 (en) | 2002-10-31 | 2008-01-10 | Terrell William C | Router with routing processors and methods for virtualization |
US8806480B2 (en) * | 2007-06-29 | 2014-08-12 | Microsoft Corporation | Virtual machine smart migration |
US7984123B2 (en) * | 2007-12-10 | 2011-07-19 | Oracle America, Inc. | Method and system for reconfiguring a virtual network path |
US7944923B2 (en) * | 2008-03-24 | 2011-05-17 | Oracle America, Inc. | Method and system for classifying network traffic |
JP5262404B2 (ja) | 2008-08-04 | 2013-08-14 | 株式会社日立製作所 | 複合型計算機及び複合型計算機の制御方法 |
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 |
JP2010199464A (ja) | 2009-02-27 | 2010-09-09 | Hitachi Industrial Equipment Systems Co Ltd | 樹脂モールドコイル |
JP4947081B2 (ja) * | 2009-03-30 | 2012-06-06 | 日本電気株式会社 | パススルーi/oデバイスを伴うlparの動的マイグレーション装置、その方法及びそのプログラム |
JP5617839B2 (ja) | 2009-04-24 | 2014-11-05 | 日本電気株式会社 | パケット通信システム、パケット通信装置、パケット通信方法、パケット通信プログラムを記録したコンピュータ読み取り可能な記録媒体 |
US9210065B2 (en) * | 2009-06-22 | 2015-12-08 | Alcatel Lucent | Providing cloud-based services using dynamic network virtualization |
US8478725B2 (en) * | 2009-09-14 | 2013-07-02 | Vmware, Inc. | Method and system for performing live migration of persistent data of a virtual machine |
US20110134931A1 (en) * | 2009-12-08 | 2011-06-09 | Jacobus Van Der Merwe | Virtual router migration |
US8489699B2 (en) * | 2010-08-13 | 2013-07-16 | Vmware, Inc. | Live migration of virtual machine during direct access to storage over SR IOV adapter |
US8473557B2 (en) * | 2010-08-24 | 2013-06-25 | At&T Intellectual Property I, L.P. | Methods and apparatus to migrate virtual machines between distributive computing networks across a wide area network |
JP5469022B2 (ja) | 2010-09-07 | 2014-04-09 | 株式会社日立製作所 | 計算機システム、計算機間メモリコピー方法、及びスイッチ |
US9141420B2 (en) * | 2010-11-04 | 2015-09-22 | Alcatel Lucent | Overload control in a cloud computing environment |
US20120173757A1 (en) * | 2011-01-05 | 2012-07-05 | International Business Machines Corporation | Routing optimization for virtual machine migration between geographically remote data centers |
US8798086B2 (en) * | 2011-09-23 | 2014-08-05 | Alcatel Lucent | Time-preserved transmissions in asynchronous virtual machine replication |
-
2010
- 2010-12-10 US US12/964,900 patent/US9253100B2/en active Active
-
2011
- 2011-11-21 CN CN201180059502.6A patent/CN103250395B/zh active Active
- 2011-11-21 KR KR1020137014759A patent/KR101471315B1/ko active IP Right Grant
- 2011-11-21 WO PCT/US2011/061646 patent/WO2012078347A2/en active Application Filing
- 2011-11-21 EP EP11793924.9A patent/EP2649757B1/en active Active
- 2011-11-21 JP JP2013543187A patent/JP5710779B2/ja not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101211277A (zh) * | 2006-12-27 | 2008-07-02 | 株式会社东芝 | 选择子os的一个执行计划的方法与使用该方法的虚拟机监视器 |
CN101557420A (zh) * | 2009-03-31 | 2009-10-14 | 北京航空航天大学 | 虚拟机监控器高效网络通信的实现方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2012078347A3 (en) | 2012-08-23 |
KR20130087552A (ko) | 2013-08-06 |
WO2012078347A2 (en) | 2012-06-14 |
JP2014501977A (ja) | 2014-01-23 |
EP2649757A2 (en) | 2013-10-16 |
US9253100B2 (en) | 2016-02-02 |
JP5710779B2 (ja) | 2015-04-30 |
KR101471315B1 (ko) | 2014-12-09 |
US20120151084A1 (en) | 2012-06-14 |
EP2649757B1 (en) | 2015-09-02 |
CN103250395A (zh) | 2013-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103250395B (zh) | 异步虚拟机复制方法及装置 | |
US10540196B2 (en) | Techniques to enable live migration of virtual environments | |
WO2016101288A1 (zh) | 一种远程直接数据存取方法、设备和系统 | |
US20230060066A1 (en) | Data transmission method and apparatus, computer readable medium, and electronic device | |
WO2020220536A1 (zh) | 一种数据备份的方法、装置及计算机可读存储介质 | |
WO2022142885A1 (zh) | 一种数据传输方法、装置、计算机可读存储介质、电子设备及计算机程序产品 | |
WO2020248649A1 (zh) | 音视频数据同步播放方法、装置、系统、电子设备及介质 | |
CN109684097B (zh) | 一种基于cmsp的json数据解析与存储方法 | |
US9253105B2 (en) | Methods and apparatuses for facilitating determination of a state of a receiver buffer | |
WO2014206089A1 (zh) | 同步终端镜像的方法、装置、终端及服务器 | |
WO2018130161A1 (zh) | 基于云计算服务的高效传输方法和装置 | |
CN109417507A (zh) | 部分延迟的报文访问 | |
CN109889922A (zh) | 流媒体数据的转发方法、装置、设备和存储介质 | |
KR100763526B1 (ko) | 애플리케이션 컨텍스트 관리 장치 및 방법 | |
KR20220037444A (ko) | 성능 라우팅 측정치들을 이용한 양방향 포워딩 검출을 제공하기 위한 시스템들 및 방법들 | |
CN103607596B (zh) | 时钟校准处理方法及装置 | |
CN111405026B (zh) | 一种安卓手机与云手机音量同步控制方法及装置 | |
CN107357524B (zh) | 存储文件的方法、读取文件的方法、电子设备 | |
WO2023213086A1 (zh) | 数据处理方法、装置、计算机可读介质及电子设备 | |
US11853322B2 (en) | Tracking data availability using heartbeats | |
CN109922100A (zh) | 一种信息处理方法、终端及服务器 | |
WO2024032189A1 (zh) | 数据传输方法和装置 | |
TWI534623B (zh) | 在單機中實現多人操作的控制系統與方法 | |
CN115087968A (zh) | 数据传输方法及装置 | |
CN117221338A (zh) | 一种远程复制方法、装置、设备及机器可读存储介质 |
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 |