CN104951352B - 一种数据流的迁移方法和设备 - Google Patents

一种数据流的迁移方法和设备 Download PDF

Info

Publication number
CN104951352B
CN104951352B CN201410127024.3A CN201410127024A CN104951352B CN 104951352 B CN104951352 B CN 104951352B CN 201410127024 A CN201410127024 A CN 201410127024A CN 104951352 B CN104951352 B CN 104951352B
Authority
CN
China
Prior art keywords
virtual machine
data flow
message
migration
stream identification
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
CN201410127024.3A
Other languages
English (en)
Other versions
CN104951352A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201410127024.3A priority Critical patent/CN104951352B/zh
Priority to PCT/CN2015/074839 priority patent/WO2015149636A1/zh
Priority to EP15772816.3A priority patent/EP3115893B1/en
Publication of CN104951352A publication Critical patent/CN104951352A/zh
Priority to US15/279,993 priority patent/US10055246B2/en
Application granted granted Critical
Publication of CN104951352B publication Critical patent/CN104951352B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种数据流的迁移方法和设备,内容包括:在确定源虚拟机和目标虚拟机之间启动迁移时,确定用于处理数据流迁移的静默时间;并在所述静默时间内,接收交换节点发送的数据流的报文;根据所述数据流的报文和数据流的迁移策略,将所述数据流的报文发送至所述目标虚拟机,这样启用一个静默时间,对于新到达的数据流进行重定向,根据数据流的迁移策略,将新到达的数据流直接发送至目标虚拟机,避免了新到达数据流的迁移,这样使得到达源虚拟机的数据流越来越少,减少了源虚拟机与目标虚拟机之间的内存数据迁移量,提高了数据流迁移的效率,有效地提升了***的迁移性能。

Description

一种数据流的迁移方法和设备
技术领域
本发明涉及云计算技术领域,尤其涉及一种数据流的迁移方法和设备。
背景技术
虚拟化技术作为云计算的一个重要支撑技术,已经成为数据中心或者云环境下的基本资源管理技术。
网络功能虚拟化(英文:Network Function Virtualization,缩写:NFV)是一种计算机资源的抽象表示方法,目标是在通用计算机上运行网络功能。网络功能虚拟化能够实现计算机资源的共享,并且允许多个虚拟化网络功能(英文:virtual Network Function,缩写:vNF)实例(例如:虚拟机(英文:Virtual Machine,缩写:VM))在一个物理计算机上并行运行,实现了物理资源的高效使用。
虚拟机的迁移是网络功能虚拟化的重要技术之一。虚拟机的动态迁移(英文:livemigration),又称为虚拟机的在线迁移,是指在源虚拟机与目标虚拟机之间启动迁移操作时,源虚拟机的对外服务不发生中断。也就是说,在动态迁移的初始阶段,服务仍在源虚拟机上运行;随着源虚拟机与目标虚拟机间迁移操作的进行,当目标虚拟机上有了足够的***运行资源后,源虚拟机上运行的服务经过一个短暂的切换时间,切换至目标虚拟机上继续运行,此时该服务在源虚拟机上的操作被终止。由于服务切换时间短暂,使得用户感觉不到动态迁移过程中服务执行出现的停顿。
通常,虚拟机间采用动态迁移方式的比较常见。目前,动态迁移的研究和应用主要集中在局域网环境中,内存数据和中央处理器(英文:central processing unit,缩写:CPU)状态是动态迁移过程中需要被迁移的主要数据。
其中,内存数据是指虚拟机的内存中的数据,可以是CPU中计算需要的数据,也可以是需要存储在存储设备中的数据等等,通常以页为单位进行存储。
CPU状态是指VM的CPU中运行的进程和启动的服务等。
内存数据和CPU状态在虚拟机间迁移的阶段包括:推送复制阶段、停机拷贝阶段和按需复制阶段。
其中,推送复制阶段:在源虚拟机与目标虚拟机之间启动迁移时,源虚拟机继续运行,虚拟机监视器(英文:virtual machine monitor,缩写:VMM)将源虚拟机中已产生的内存数据和正在修改的内存数据复制到目标虚拟机上。
为了保证源虚拟机与目标虚拟机内存数据的一致性,源虚拟机在推送复制内存数据的过程中,接收到待处理的数据,并对该数据进行处理导致已复制过的内存数据发生变化,此时VMM将发生变化后的内存数据发送给目标虚拟机。
停机拷贝阶段:在源虚拟机停止运行时,VMM将发生剩余的变化后的内存数据拷贝至目标虚拟机。
按需复制阶段:目标虚拟机启动运行后,对接收到的数据进行处理时,发现内存数据中缺少了处理该数据需要的内存数据,此时通过内存数据缺失的方式从源虚拟机中复制得到处理该数据需要的内存数据。
其中,停机拷贝和按需复制方式属于推送复制方式的补充方式。动态迁移主要采用推送复制的方式完成源虚拟机与目标虚拟机之间的内存数据迁移,也就意味着只要源虚拟机中内存数据发生变化,那么源虚拟机就将发生变化的内存数据发送给目标虚拟机。
由此可见,目前虚拟机的迁移所采用的动态迁移方式,只要源虚拟机接收到待处理的数据,那么源虚拟机中内存数据将发生变化,这样就增加了源虚拟机向目标虚拟机发送发生变化的内存数据的次数,影响源虚拟机与目标虚拟机之间的内存数据迁移性能。
发明内容
有鉴于此,本发明实施例提供了一种数据流的迁移方法和设备,用于解决目前动态迁移在应用时出现的内存数据发送频繁导致迁移性能降低的问题。
第一方面,本发明提供了一种数据流的迁移方法,包括:
在确定源虚拟机和目标虚拟机之间启动迁移时,确定用于处理数据流迁移的静默时间;并
在所述静默时间内,接收交换节点发送的包含了数据流标识的报文;
根据接收到的所述报文中包含的数据流标识和数据流的迁移策略,将所述报文发送至所述目标虚拟机。
在本发明第一方面可能的实施方式中,第一种可能的实施方式,根据接收到的所述报文中包含的数据流标识和数据流的迁移策略,将所述报文发送至所述目标虚拟机,包括:
判断接收到所述报文中包含的数据流标识是否存在于第一数据流状态表中,其中,所述第一数据流状态表中包含了源虚拟机正在处理的数据流的数据流标识;
当判断结果是接收到所述报文中包含的数据流标识不存在于所述第一数据流状态表中时,将所述报文发送至所述目标虚拟机。
在本发明第一方面的第一种可能的实施方式中,第二种可能的实施方式,所述方法还包括:
当判断结果是接收到所述报文中包含的数据流标识存在于所述第一数据流状态表中时,将所述报文发送至所述源虚拟机。
在本发明第一方面可能的实施方式中,或者在本发明第一方面的第一种可能的实施方式中,或者在本发明第一方面的第二种可能的实施方式中,第三种可能的实施方式,所述方法还包括:
将所述报文中包含的数据流标识增加至第二数据流状态表中,其中,所述第二数据流状态表包含了目标虚拟机正在处理的数据流的数据流标识。
在本发明第一方面的第三种可能的实施方式中,第四种可能的实施方式,在将所述报文发送至所述源虚拟机之后,所述方法还包括:
在所述静默时间结束时,确定所述源虚拟机尚未处理结束的数据流标识;
将确定的所述数据流标识移动至所述第二数据流状态表中,并将所述源虚拟机中包含的与所述数据流标识相关联的内存数据迁移至所述目标虚拟机中。
第二方面,本发明提供了一种数据流的迁移设备,包括:
确定模块,用于在确定源虚拟机和目标虚拟机之间启动迁移时,确定用于处理数据流迁移的静默时间;
接收模块,用于在所述确定模块确定的所述静默时间内,接收交换节点发送的包含了数据流标识的报文;
发送模块,用于根据所述接收模块接收到的所述报文中包含的数据流标识和数据流的迁移策略,将所述报文发送至所述目标虚拟机。
在本发明第二方面可能的实施方式中,第一种可能的实施方式,所述发送模块,具体用于判断所述接收模块接收到所述报文中包含的数据流标识是否存在于第一数据流状态表中,其中,所述第一数据流状态表中包含了源虚拟机正在处理的数据流的数据流标识;
当判断结果是接收到所述报文中包含的数据流标识不存在于所述第一数据流状态表中时,将所述报文发送至所述目标虚拟机。
在本发明第一方面的第一种可能的实施方式中,第二种可能的实施方式,所述发送模块,还用于当判断结果是所述接收模块接收到所述报文中包含的数据流标识存在于所述第一数据流状态表中时,将所述报文发送至所述源虚拟机。
在本发明第一方面可能的实施方式中,或者在本发明第一方面的第一种可能的实施方式中,或者在本发明第一方面的第二种可能的实施方式中,第三种可能的实施方式,所述迁移设备还包括:
修改模块,用于将所述接收模块接收到的所述报文中包含的数据流标识增加至第二数据流状态表中,其中,所述第二数据流状态表包含了目标虚拟机正在处理的数据流的数据流标识。
在本发明第一方面的第三种可能的实施方式中,第四种可能的实施方式,所述迁移设备还包括:
迁移模块,用于在所述发送模块将所述报文发送至所述源虚拟机之后,在所述确定模块确定的所述静默时间结束时,确定所述源虚拟机尚未处理结束的数据流标识;将确定的所述数据流标识移动至所述第二数据流状态表中,并将所述源虚拟机中包含的与所述数据流标识相关联的内存数据迁移至所述目标虚拟机中。
第三方面,本发明提供了一种服务器,所述服务器包含了处理器、接口和存储器,其中,处理器、接口和存储器通过总线连接,其中:
接口,用于与外部设备进行通信;
存储器,用于存放程序;
处理器,用于执行所述存储器中存放的程序,并按照下述方式执行:
在确定源虚拟机和目标虚拟机之间启动迁移时,确定用于处理数据流迁移的静默时间;并在所述静默时间内,接收交换节点发送的包含了数据流标识的报文;根据接收到的所述报文中包含的数据流标识和数据流的迁移策略,将所述报文发送至所述目标虚拟机。
在本发明第三方面可能的实施方式中,第一种可能的实施方式,根据接收到的所述报文中包含的数据流标识和数据流的迁移策略,将所述报文发送至所述目标虚拟机,包括:
判断接收到所述报文中包含的数据流标识是否存在于第一数据流状态表中,其中,所述第一数据流状态表中包含了源虚拟机正在处理的数据流的数据流标识;
当判断结果是接收到所述报文中包含的数据流标识不存在于所述第一数据流状态表中时,将所述报文发送至所述目标虚拟机。
在本发明第三方面的第一种可能的实施方式中,第二种可能的实施方式,处理器,还用于当判断结果是接收到所述报文中包含的数据流标识存在于所述第一数据流状态表中时,将所述报文发送至所述源虚拟机。
在本发明第三方面可能的实施方式中,或者在本发明第三方面的第一种可能的实施方式中,或者在本发明第三方面的第二种可能的实施方式中,第三种可能的实施方式,所述处理器,还用于将所述报文中包含的数据流标识增加至第二数据流状态表中,其中,所述第二数据流状态表包含了目标虚拟机正在处理的数据流的数据流标识;
所述存储器,还用于存储第二数据流状态表。
在本发明第三方面的第三种可能的实施方式中,第四种可能的实施方式,所述处理器还用于在将所述报文发送至所述源虚拟机之后,在所述静默时间结束时,确定所述源虚拟机尚未处理结束的数据流标识;
将确定的所述数据流标识移动至所述第二数据流状态表中,并将所述源虚拟机中包含的与所述数据流标识相关联的内存数据迁移至所述目标虚拟机中。
本发明有益效果如下:
本发明实施例通过在确定源虚拟机和目标虚拟机之间启动迁移时,确定用于处理数据流迁移的静默时间;并在所述静默时间内,接收交换节点发送的数据流的报文;根据所述数据流的报文和数据流的迁移策略,将所述数据流的报文发送至所述目标虚拟机,这样启用一个静默时间,对于新到达的数据流进行重定向,根据数据流的迁移策略,将新到达的数据流直接发送至目标虚拟机,避免了新到达数据流的迁移,这样使得到达源虚拟机的数据流越来越少,减少了源虚拟机与目标虚拟机之间的内存数据的迁移量,提高了数据流迁移的效率,有效地提升了***的迁移性能。
附图说明
图1为本发明实施例一提供的一种数据流的迁移***的结构示意图;
图2为本发明实施例二提供的一种数据流的迁移方法的流程示意图;
图3为本发明实施例三提供的一种数据流的迁移设备的结构示意图;
图4为本发明实施例四提供的一种服务器的结构示意图。
具体实施方式
为了实现本发明的目的,本发明实施例提供了一种数据流的迁移方法和设备,在确定源虚拟机和目标虚拟机之间启动迁移时,确定用于处理数据流迁移的静默时间;并在所述静默时间内,接收交换节点发送的数据流的报文;根据所述数据流的报文和数据流的迁移策略,将所述数据流的报文发送至所述目标虚拟机,这样启用一个静默时间,对于新到达的数据流进行重定向,根据数据流的迁移策略,将新到达的数据流直接发送至目标虚拟机,避免了新到达数据流的迁移,这样使得到达源虚拟机的数据流越来越少,减少了源虚拟机与目标虚拟机之间的内存数据的迁移量,提高了数据流迁移的效率,有效地提升了***的迁移性能。
本发明实施例可以应用在包含了控制设备、源虚拟机和目标虚拟机组成的迁移架构中,其中,控制设备可以包含管理设备和交换节点;还可以应用在包含了管理设备、交换节点、源虚拟机和目标虚拟机组成的迁移架构中。
下面结合说明书附图对本发明各个实施例进行详细描述。
实施例一:
如图1所示,为本发明实施例一提供的一种数据流的迁移***的结构示意图。所述***包含了控制设备11、交换节点12、源虚拟机13和目标虚拟机14,其中:
控制设备11,用于在确定源虚拟机13和目标虚拟机14之间启动迁移时,确定用于处理数据流迁移的静默时间,并在所述静默时间内,接收交换节点12发送的包含了数据流标识的报文;根据接收到的交换节点12发送的所述报文中包含的数据流标识和数据流的迁移策略,将所述报文发送至所述目标虚拟机14。
交换节点12,用于将接收到的包含了数据流标识的报文发送给所述控制设备11。
目标虚拟机14,用于在接收报文时,对接收到的报文进行处理。
其中,所述控制设备11,具体用于在确定源虚拟机和目标虚拟机之间启动迁移时,确定一个用于处理数据流迁移的静默时间。
所述静默时间可以是一个时间长度,例如:5s,10s等;还可以是一个时间区间,例如:当前时刻~某一个时间点等,对于静默时间的表现形式这里不做限定。
所述静默时间可以根据实验数据确定,也可以根据实际迁移需要确定。
控制设备11,还用于在确定了所述静默时间之后,将所述静默时间发送给管理源虚拟机的虚拟机监控器,管理源虚拟机的虚拟机监控器在所述静默时间内不执行迁移操作,即不开始推送复制操作。
由于数据流包含了短时数据流和长时数据流,源虚拟机在接收到静默时间时,等待短时连接断开,消除内存中与短时数据流相关的元数据(其中,所述元数据中包含了数据流的属性信息,消除之后意味着该短时数据处理完毕),有效减少了需要迁移的内存数据。
其中,短时数据流是指短时间内即可完成处理的数据流;长时数据流是指需要一段较长时间才可完成处理的数据流。
控制设备11,具体用于在所述静默时间内,接收交换节点12发送的包含了数据流标识的报文。
数据流标识可以是数据流的源地址、目标地址、源端口号、目标端口号、协议号中的一种或者多种,例如:Stream#1、Port80等等。
其中,交换节点12发送的包含了数据流标识的报文可以分为以下两种:
第一种是在所述静默时间之前,交换节点已将该数据流标识对应的数据流的首报文发送至源虚拟机,并在源虚拟机接收到所述静默时间后,交换节点再次接收到包含了该数据流标识对应的数据流的后续报文。
数据流标识对应的数据流是指包含了多个报文的数据流,该数据流中的报文按照一种规则依次由交换节点发送给源虚拟机或者目标虚拟机,因此该数据流中的报文分为了首报文、中间报文和尾报文,在接收到首报文时意味着新数据流的出现,在接收到尾报文时意味着该数据流的结束。
第二种是在控制设备确定所述静默时间前,源虚拟机尚未处理过包含该数据流标识的报文,也就是说在源虚拟机接收到所述静默时间后,交换节点发送的包含了数据流标识的报文对于源虚拟机来说是一个新数据流的首报文。
控制设备11在确定将一个数据流的首报文发送至源虚拟机时,将该数据流的数据流标识写入第一数据流状态表中,其中,所述第一数据流状态表包含了源虚拟机正在处理的数据流的数据流标识.
控制设备11将第一数据流状态表发送给交换节点,这样交换节点再接收到该数据流的后续报文时能够及时发送给源虚拟机。
控制设备11,具体用于根据接收到的交换节点发送的所述报文中包含的数据流标识和数据流的迁移策略,将所述报文发送至所述目标虚拟机。
其中,所述数据流的迁移策略是指对于在静默时间内接收到交换节点发送的报文是转发给源虚拟机处理还是转发给给目标虚拟机处理的策略,以及在静默时间结束时源虚拟机内的内存数据如何迁移至目标虚拟机的策略。
具体地,对于在静默时间内接收到交换节点发送的报文是转发给源虚拟机处理还是转发给目标虚拟机处理的策略的具体规则为:
判断接收到的交换节点发送的报文中包含的数据流标识是否存在于第一数据流状态表中;若存在,则将接收到的交换节点发送的报文转发给源虚拟机处理;若不存在,则将接收到的交换节点发送的报文转发给目标虚拟机处理。
其中,第一数据流状态表中包含了源虚拟机正在处理的数据流的数据流标识。
具体地,在静默时间结束时源虚拟机内的内存数据如何迁移至目标虚拟机的策略的具体规则为:
控制设备在所述静默时间结束时,确定所述源虚拟机尚未处理结束的数据流标识,指示虚拟机监控器将源虚拟机中确定的所述数据流标识对应的数据流产生的内存数据复制至目标虚拟机中,并将该所述数据流标识移动至第二数据流状态表中,删除第一数据流状态表中的所述数据流标识。
其中,第二数据流状态表中包含了目标虚拟机正在处理的数据流的数据流标识。
关于“第一数据流状态表”和“第二数据流状态表”中的“第一”、“第二”没有特殊含义,仅用于区别数据流状态表中包含的数据流标识对应的数据流是由源虚拟机处理还是由目标虚拟机处理。
具体地,根据所述报文中包含的数据流标识和数据流的迁移策略,将所述报文发送至所述目标虚拟机,具体包括:
第一步,控制设备11判断接收到的交换节点12发送的所述报文中包含的数据流标识是否存在于第一数据流状态表中,若不存在,执行第二步;否则,执行第三步。
第二步:当判断结果是接收到的交换节点发送的所述报文中包含的数据流标识不存在于第一数据流状态表中时,控制设备11指示交换节点12将所述报文发送至所述目标虚拟机,针对该报文的迁移操作结束。
在第二步结束之后,控制设备11还可以进一步判断报文中包含的数据流标识是否存在于第二数据流状态表中,若不存在,则在第二数据流状态表中增加该报文中包含的数据流标识。
第三步:当判断结果是接收到所述报文中包含的数据流标识存在于第一数据状态表中时,控制设备11指示交换节点12将所述报文发送至所述源虚拟机,继续执行第四步。
第四步:控制设备11在将所述报文发送至所述源虚拟机之后,在确定所述静默时间结束时,确定所述源虚拟机尚未处理结束的数据流对应的数据流标识,并执行第五步。
控制设备在确定所述静默时间结束时,再次接收到交换节点发送的包含数据流标识的报文,并且该数据流标识存储在第一数据流状态表中,由此可见该数据流标识对应的数据流属于所述源虚拟机尚未处理结束的数据流。
具体地,在将所述报文发送至所述源虚拟机之后,针对该报文所在的数据流,存在后续报文能够在所述静默时间结束时处理结束,或者后续报文不能够在所述静默时间结束时处理结束两种可能性,当确定针对数据流的后续报文能够在所述静默时间结束时处理结束时,该数据流的后续报文将直接在源虚拟机中处理完毕,这样数据流处理结束的不需要再由源虚拟机迁移至目标虚拟机,有效地减少了源虚拟机与目标虚拟机之间的内存数据的迁移量,并且减少了数据流频繁变化导致源虚拟机与目标虚拟机之间内存数据的迁移次数,有效改善了源虚拟机与目标虚拟机之间的迁移速率。
第五步:控制设备11将确定的所述数据流标识移动至第二数据流状态表中,并指示虚拟机监视器将所述源虚拟机中包含的与所述数据流标识对应的内存数据迁移至所述目标虚拟机中。
在所述静默时间结束时,控制设备接收到交换节点发送的包含了数据流标识的报文,此时判断接收到的报文中包含的数据流标识是否存在于第二数据流状态表中,并在确定所述报文中包含的数据流标识存在于第二数据流状态表中时,将该报文发送给目标虚拟机。
在本发明实施例一所述的迁移***中,控制设备的功能和交换节点的功能还可以由一个设备中的两个模块实现,即一个设备中包含了控制模块,该控制模块具备了本发明实施例一中所述的控制设备的功能;还包含了报文发送模块,该报文发送模块具备了本发明实施例一中所述的交换节点的功能。
实施例二:
如图2所示,为本发明实施例二提供的一种数据流的迁移方法的流程示意图。本发明实施例二的迁移方法中各设备的拓扑可以参考本发明实施例一所述的数据流迁移***。所述方法可以如下所述。
步骤101:在确定源虚拟机和目标虚拟机之间启动迁移时,控制设备确定用于处理数据流迁移的静默时间。
控制设备将确定的静默时间发送给管理源虚拟机的虚拟机监控器和目标虚拟机的虚拟机监控器。
在步骤101中,在确定源虚拟机和目标虚拟机之间启动迁移时,控制设备确定一个用于处理数据流迁移的静默时间。其中,所述静默时间可以是一个时间长度,例如:5s,10s等;还可以是一个时间区间,例如:当前时刻~某一个时间点等,对于静默时间的表现形式这里不做限定。
所述静默时间可以根据实验数据确定,也可以根据实际迁移需要确定。
控制设备在确定了所述静默时间之后,将所述静默时间发送给管理源虚拟机的虚拟机监控器,管理源虚拟机的虚拟机监控器在所述静默时间内不执行迁移操作,即不开始推送复制操作。
由于数据流包含了短时数据流和长时数据流,源虚拟机在接收到静默时间时,等待短时连接断开,消除内存中与短时数据流相关的元数据(其中,所述元数据中包含了数据流的属性信息,消除之后意味着该短时数据处理完毕),有效减少了需要迁移的内存数据。
其中,短时数据流是指短时间内即可完成处理的数据流;长时数据流是指需要一段较长时间才可完成处理的数据流。
步骤102:在所述静默时间内,控制设备接收交换节点发送的包含了数据流标识的报文。
数据流标识可以是数据流的源地址、目标地址、源端口号、目标端口号、协议号中的一种或者多种,例如:Stream#1、Port80等等。
在步骤102中,交换节点发送的包含了数据流标识的报文可以分为以下两种:
第一种是在所述静默时间之前,交换节点已将该数据流标识对应的数据流的首报文发送至源虚拟机,并在源虚拟机接收到所述静默时间后,交换节点再次接收到包含了该数据流标识对应的数据流的后续报文。
数据流标识对应的数据流是指包含了多个报文的数据流,该数据流中的报文按照一种规则依次由交换节点发送给源虚拟机或者目标虚拟机,因此该数据流中的报文分为了首报文、中间报文和尾报文,在接收到首报文时意味着新数据流的出现,在接收到尾报文时意味着该数据流的结束。
第二种是在控制设备确定所述静默时间前,源虚拟机尚未处理过包含该数据流标识的报文,也就是说在源虚拟机接收到所述静默时间后,交换节点发送的包含了数据流标识的报文对于源虚拟机来说是一个新数据流的首报文。
控制设备在确定将一个数据流的首报文发送至源虚拟机时,将该数据流的数据流标识写入第一数据流状态表中,其中,所述第一数据流状态表包含了源虚拟机正在处理的数据流的数据流标识,并将第一数据流状态表发送给交换节点,这样交换节点接收到该数据流的后续报文时能够及时发送给源虚拟机。
步骤103:控制设备根据接收到的交换节点发送的所述报文中包含的数据流标识和数据流的迁移策略,将所述报文发送至所述目标虚拟机。
在步骤103中,所述数据流的迁移策略是指对于在静默时间内接收到交换节点发送的报文是转发给源虚拟机处理还是转发给给目标虚拟机处理的策略,以及在静默时间结束时源虚拟机内的内存数据如何迁移至目标虚拟机的策略。
具体地,对于在静默时间内接收到交换节点发送的报文是转发给源虚拟机处理还是转发给目标虚拟机处理的策略的具体规则为:
判断接收到的交换节点发送的报文中包含的数据流标识是否存在于第一数据流状态表中;若存在,则将接收到的交换节点发送的报文转发给源虚拟机处理;若不存在,则将接收到的交换节点发送的报文转发给目标虚拟机处理。
其中,第一数据流状态表中包含了源虚拟机正在处理的数据流的数据流标识。
具体地,在静默时间结束时源虚拟机内的内存数据如何迁移至目标虚拟机的策略的具体规则为:
控制设备在所述静默时间结束时,确定所述源虚拟机尚未处理结束的数据流标识,指示虚拟机监控器将源虚拟机中确定的所述数据流标识对应的数据流产生的内存数据复制至目标虚拟机中,并将该所述数据流标识移动至第二数据流状态表中,删除第一数据流状态表中的所述数据流标识。
其中,第二数据流状态表中包含了目标虚拟机正在处理的数据流的数据流标识。
关于“第一数据流状态表”和“第二数据流状态表”中的“第一”、“第二”没有特殊含义,仅用于区别数据流状态表中包含的数据流标识对应的数据流是由源虚拟机处理还是由目标虚拟机处理。
具体地,根据所述报文中包含的数据流标识和数据流的迁移策略,将所述报文发送至所述目标虚拟机,具体包括:
第一步,控制设备判断接收到的交换节点发送的所述报文中包含的数据流标识是否存在于第一数据流状态表中,若不存在,执行第二步;否则,执行第三步。
第二步:当判断结果是接收到的交换节点发送的所述报文中包含的数据流标识不存在于第一数据流状态表中时,控制设备指示交换节点将所述报文发送至所述目标虚拟机,针对该报文的迁移操作结束。
在第二步结束之后,控制设备还可以进一步判断报文中包含的数据流标识是否存在于第二数据流状态表中,若不存在,则在第二数据流状态表中增加该报文中包含的数据流标识。
第三步:当判断结果是接收到所述报文中包含的数据流标识存在于第一数据状态表中时,控制设备指示交换节点将所述报文发送至所述源虚拟机,继续执行第四步。
第四步:控制设备在将所述报文发送至所述源虚拟机之后,在确定所述静默时间结束时,确定所述源虚拟机尚未处理结束的数据流对应的数据流标识,并执行第五步。
控制设备在确定所述静默时间结束时,再次接收到交换节点发送的包含数据流标识的报文,并且该数据流标识存储在第一数据流状态表中,由此可见该数据流标识对应的数据流属于所述源虚拟机尚未处理结束的数据流。
具体地,在将所述报文发送至所述源虚拟机之后,针对该报文所在的数据流,存在后续报文能够在所述静默时间结束时处理结束,或者后续报文不能够在所述静默时间结束时处理结束两种可能性,当确定针对数据流的后续报文能够在所述静默时间结束时处理结束时,该数据流的后续报文将直接在源虚拟机中处理完毕,这样数据流处理结束的不需要再由源虚拟机迁移至目标虚拟机,有效地减少了源虚拟机与目标虚拟机之间的内存数据的迁移量,并且减少了数据流频繁变化导致源虚拟机与目标虚拟机之间内存数据的迁移次数,有效改善了源虚拟机与目标虚拟机之间的迁移速率。
第五步:控制设备将确定的所述数据流标识移动至第二数据流状态表中,并指示虚拟机监视器将所述源虚拟机中包含的与所述数据流标识对应的内存数据迁移至所述目标虚拟机中。
在所述静默时间结束时,控制设备接收到交换节点发送的包含了数据流标识的报文,此时判断接收到的报文中包含的数据流标识是否存在于第二数据流状态表中,并在确定所述报文中包含的数据流标识存在于第二数据流状态表中时,将该报文发送给目标虚拟机。
通过本发明实施例二的方案,在确定源虚拟机和目标虚拟机之间启动迁移时,确定用于处理数据流迁移的静默时间;并在所述静默时间内,接收交换节点发送的数据流的报文;根据所述数据流的报文和数据流的迁移策略,将所述数据流的报文发送至所述目标虚拟机,这样启用一个静默时间,对于新到达的数据流进行重定向,根据数据流的迁移策略,将新到达的数据流直接发送至目标虚拟机,避免了新到达数据流的迁移,这样使得到达源虚拟机的数据流越来越少,减少了源虚拟机与目标虚拟机之间的内存数据的迁移量,提高了数据流迁移的效率,有效地提升了***的迁移性能。
实施例三:
如图3所示,为本发明实施例三提供的一种数据流的迁移设备的结构示意图。所述设备包括:确定模块21、接收模块22和发送模块23,其中:
确定模块21,用于在确定源虚拟机和目标虚拟机之间启动迁移时,确定用于处理数据流迁移的静默时间;
接收模块22,用于在所述确定模块确定的所述静默时间内,接收交换节点发送的包含了数据流标识的报文;
发送模块23,用于根据所述接收模块接收到的所述报文中包含的数据流标识和数据流的迁移策略,将所述报文发送至所述目标虚拟机。
其中,所述发送模块23,具体用于判断所述接收模块接收到所述报文中包含的数据流标识是否存在于第一数据流状态表中,其中,所述第一数据流状态表中包含了源虚拟机正在处理的数据流的数据流标识;
当判断结果是接收到所述报文中包含的数据流标识不存在于所述第一数据流状态表中时,将所述报文发送至所述目标虚拟机。
所述迁移设备还包括:修改模块24,其中:
修改模块24,用于将所述接收模块接收到的所述报文中包含的数据流标识增加至第二数据流状态表中,其中,所述第二数据流状态表包含了目标虚拟机正在处理的数据流的数据流标识。
所述发送模块23,还用于当判断结果是所述接收模块接收到所述报文中包含的数据流标识存在于所述第一数据流状态表中时,将所述报文发送至所述源虚拟机。
所述迁移设备还包括:迁移模块25,其中:
迁移模块25,用于在所述发送模块将所述报文发送至所述源虚拟机之后,在所述确定模块确定的所述静默时间结束时,确定所述源虚拟机尚未处理结束的数据流标识;将确定的所述数据流标识移动至所述第二数据流状态表中,并将所述源虚拟机中包含的与所述数据流标识相关联的内存数据迁移至所述目标虚拟机中。
本发明实施例三所述的迁移设备可以是本发明实施例一中所述的控制设备和交换节点的联合设备,还可以是具备了本发明实施例一中所述的控制设备和交换节点功能的其他设备,这里不做具体限定。
实施例四:
如图4所示,为本发明实施例四中所述的一种服务器的结构示意图。所述服务器包含了处理器31、接口32和存储器33,其中,处理器31网络接口32和存储器33通过总线34连接,其中:
处理器31可以是中央处理器(英文:central processing unit,缩写:CPU),或者是CPU和硬件芯片的组合。
接口32可以为以下一种或多种:提供有线接口的网络接口控制器(英文:networkinterface controller,缩写:NIC),例如以太网NIC,该以太网NIC可以提供铜线和/或光纤接口;提供无线接口的NIC,例如无线局域网(英文:wireless local area network,缩写:WLAN)NIC。
存储器33用于存储程序代码,所处处理器31从存储器中获得存储的程序代码,按照获得的程序代理执行相应地处理。
存储器可以是易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM);或者非易失性存储器(英文:non-volatilememory),例如只读存储器(英文:read-only memory,缩写:ROM),快闪存储器(英文:flashmemory),硬盘(英文:hard disk drive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD);或者上述种类的存储器的组合。
具体地,所述处理器31执行所述存储器33中存放的程序,实现本发明实施例提供的数据流的迁移方法,包括:
在确定源虚拟机和目标虚拟机之间启动迁移时,确定用于处理数据流迁移的静默时间;在所述静默时间内,通过接口32接收交换节点发送的包含了数据流标识的报文;根据接收到的所述报文中包含的数据流标识和数据流的迁移策略,通过接口32将所述报文发送至所述目标虚拟机。
所述处理器31,具体用于判断所述接收模块接收到所述报文中包含的数据流标识是否存在于第一数据流状态表中,其中,所述第一数据流状态表中包含了源虚拟机正在处理的数据流的数据流标识;
当判断结果是接收到所述报文中包含的数据流标识不存在于所述第一数据流状态表中时,将所述报文发送至所述目标虚拟机。
当判断结果是所述接收模块接收到所述报文中包含的数据流标识存在于所述第一数据流状态表中时,将所述报文发送至所述源虚拟机。
所述处理器31,还用于将接收到的所述报文中包含的数据流标识增加至第二数据流状态表中,其中,所述第二数据流状态表包含了目标虚拟机正在处理的数据流的数据流标识。
所述处理器31,还用于在所述发送模块将所述报文发送至所述源虚拟机之后,在所述确定模块确定的所述静默时间结束时,确定所述源虚拟机尚未处理结束的数据流标识;将确定的所述数据流标识移动至所述第二数据流状态表中,并将所述源虚拟机中包含的与所述数据流标识相关联的内存数据迁移至所述目标虚拟机中。
此外,存储器33中还存储了第一数据流状态表和第二数据流状态表。
本领域的技术人员应明白,本发明的实施例可提供为方法、装置或计算机程序产品。因此,本发明可采用软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个包含有计算机可用程序代码的计算机可用存储介质产品上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (6)

1.一种数据流的迁移方法,其特征在于,包括:
在确定源虚拟机和目标虚拟机之间启动迁移时,确定用于处理数据流迁移的静默时间;并
在所述静默时间内,接收交换节点发送的包含了数据流标识的报文;
根据接收到的所述报文中包含的数据流标识和数据流的迁移策略,将所述报文发送至所述目标虚拟机;
其中,在所述静默时间内,所述源虚拟机和所述目标虚拟机之间不执行迁移操作;
根据接收到的所述报文中包含的数据流标识和数据流的迁移策略,将所述报文发送至所述目标虚拟机,包括:
判断接收到所述报文中包含的数据流标识是否存在于第一数据流状态表中,其中,所述第一数据流状态表中包含了源虚拟机正在处理的数据流的数据流标识;
当判断结果是接收到所述报文中包含的数据流标识不存在于所述第一数据流状态表中时,将所述报文发送至所述目标虚拟机;
当判断结果是接收到所述报文中包含的数据流标识存在于所述第一数据流状态表中时,将所述报文发送至所述源虚拟机。
2.如权利要求1所述的迁移方法,其特征在于,所述方法还包括:
将所述报文中包含的数据流标识增加至第二数据流状态表中,其中,所述第二数据流状态表包含了目标虚拟机正在处理的数据流的数据流标识。
3.如权利要求2所述的迁移方法,其特征在于,在将所述报文发送至所述源虚拟机之后,所述方法还包括:
在所述静默时间结束时,确定所述源虚拟机尚未处理结束的数据流标识;
将确定的所述数据流标识移动至所述第二数据流状态表中,并将所述源虚拟机中包含的与所述数据流标识相关联的内存数据迁移至所述目标虚拟机中。
4.一种数据流的迁移设备,其特征在于,包括:
确定模块,用于在确定源虚拟机和目标虚拟机之间启动迁移时,确定用于处理数据流迁移的静默时间;
接收模块,用于在所述确定模块确定的所述静默时间内,接收交换节点发送的包含了数据流标识的报文;
发送模块,用于根据所述接收模块接收到的所述报文中包含的数据流标识和数据流的迁移策略,将所述报文发送至所述目标虚拟机;
其中,在所述静默时间内,所述源虚拟机和所述目标虚拟机之间不执行迁移操作;
所述发送模块,具体用于判断所述接收模块接收到所述报文中包含的数据流标识是否存在于第一数据流状态表中,其中,所述第一数据流状态表中包含了源虚拟机正在处理的数据流的数据流标识;
当判断结果是接收到所述报文中包含的数据流标识不存在于所述第一数据流状态表中时,将所述报文发送至所述目标虚拟机;
所述发送模块,还用于当判断结果是所述接收模块接收到所述报文中包含的数据流标识存在于所述第一数据流状态表中时,将所述报文发送至所述源虚拟机。
5.如权利要求4所述的迁移设备,其特征在于,所述迁移设备还包括:
修改模块,用于将所述接收模块接收到的所述报文中包含的数据流标识增加至第二数据流状态表中,其中,所述第二数据流状态表包含了目标虚拟机正在处理的数据流的数据流标识。
6.如权利要求5所述的迁移设备,其特征在于,所述迁移设备还包括:
迁移模块,用于在所述发送模块将所述报文发送至所述源虚拟机之后,在所述确定模块确定的所述静默时间结束时,确定所述源虚拟机尚未处理结束的数据流标识;将确定的所述数据流标识移动至所述第二数据流状态表中,并将所述源虚拟机中包含的与所述数据流标识相关联的内存数据迁移至所述目标虚拟机中。
CN201410127024.3A 2014-03-31 2014-03-31 一种数据流的迁移方法和设备 Active CN104951352B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201410127024.3A CN104951352B (zh) 2014-03-31 2014-03-31 一种数据流的迁移方法和设备
PCT/CN2015/074839 WO2015149636A1 (zh) 2014-03-31 2015-03-23 一种数据流的迁移方法和设备
EP15772816.3A EP3115893B1 (en) 2014-03-31 2015-03-23 Data flow migration method and device
US15/279,993 US10055246B2 (en) 2014-03-31 2016-09-29 Method and device for data flow migration during virtual machine migration

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410127024.3A CN104951352B (zh) 2014-03-31 2014-03-31 一种数据流的迁移方法和设备

Publications (2)

Publication Number Publication Date
CN104951352A CN104951352A (zh) 2015-09-30
CN104951352B true CN104951352B (zh) 2018-05-11

Family

ID=54166021

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410127024.3A Active CN104951352B (zh) 2014-03-31 2014-03-31 一种数据流的迁移方法和设备

Country Status (4)

Country Link
US (1) US10055246B2 (zh)
EP (1) EP3115893B1 (zh)
CN (1) CN104951352B (zh)
WO (1) WO2015149636A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106970915A (zh) * 2016-01-13 2017-07-21 阿里巴巴集团控股有限公司 一种业务***数据迁移的处理方法及装置
US11122129B2 (en) * 2016-12-31 2021-09-14 Intel Corporation Virtual network function migration
CN106961487B (zh) * 2017-04-19 2020-10-27 南京大学 虚拟机热迁移过程中的数据流自适应调整***及调整方法
CN111557109B (zh) 2017-12-20 2023-08-04 上海诺基亚贝尔股份有限公司 用于云无线电接入网中负载均衡的方法和装置
CN112600854B (zh) * 2018-01-15 2024-02-13 华为技术有限公司 软件升级方法及***
US11218506B2 (en) * 2018-12-17 2022-01-04 Microsoft Technology Licensing, Llc Session maturity model with trusted sources
US11526528B2 (en) 2020-07-07 2022-12-13 Salesforce.Com, Inc. Techniques and architectures for providing atomic transactions across multiple data sources
CN112506648B (zh) * 2020-11-20 2022-05-03 鹏城实验室 一种虚拟网络功能实例的流量无状态迁移方法及电子设备
US20220237172A1 (en) * 2021-01-22 2022-07-28 Salesforce.Com, Inc. Techniques and Architectures for Providing Transactional Stateful Data Protection Deletion Functionality
CN114860389B (zh) * 2022-07-07 2022-10-25 中兴软件技术(南昌)有限公司 虚拟机迁移方法、装置、可读存储介质及计算机设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102724277A (zh) * 2012-05-04 2012-10-10 华为技术有限公司 虚拟机热迁移和部署的方法、服务器及集群***
CN102884763A (zh) * 2012-06-30 2013-01-16 华为技术有限公司 跨数据中心的虚拟机迁移方法、服务控制网关及***

Family Cites Families (5)

* Cited by examiner, † Cited by third party
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
KR20130101618A (ko) * 2012-02-10 2013-09-16 한국전자통신연구원 네트워크 가상화에 기반한 네트워크 운용 시스템 및 방법
US8966479B2 (en) * 2012-02-10 2015-02-24 Vmware, Inc. Application-specific data in-flight services along a communication path selected based on a DIF services policy associated with a VM
US9197489B1 (en) * 2012-03-30 2015-11-24 Amazon Technologies, Inc. Live migration of virtual machines in a hybrid network environment
US9106443B2 (en) * 2012-10-26 2015-08-11 Cisco Technology, Inc. Forwarding table optimization with flow data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102724277A (zh) * 2012-05-04 2012-10-10 华为技术有限公司 虚拟机热迁移和部署的方法、服务器及集群***
CN102884763A (zh) * 2012-06-30 2013-01-16 华为技术有限公司 跨数据中心的虚拟机迁移方法、服务控制网关及***

Also Published As

Publication number Publication date
CN104951352A (zh) 2015-09-30
EP3115893A4 (en) 2017-02-22
US10055246B2 (en) 2018-08-21
WO2015149636A1 (zh) 2015-10-08
US20170017514A1 (en) 2017-01-19
EP3115893B1 (en) 2018-07-04
EP3115893A1 (en) 2017-01-11

Similar Documents

Publication Publication Date Title
CN104951352B (zh) 一种数据流的迁移方法和设备
US11704144B2 (en) Creating virtual machine groups based on request
CN111984395B (zh) 一种数据迁移方法、***及计算机可读存储介质
Yildirim et al. Application-level optimization of big data transfers through pipelining, parallelism and concurrency
CN104965757B (zh) 虚拟机热迁移的方法、虚拟机迁移管理装置及***
CN105450522A (zh) 用于在虚拟机之间路由服务链流分组的技术
CN106161524A (zh) 一种基于分布式资源节点的资源下载方法及装置
US20190068491A1 (en) Hypervisor support for network functions virtualization
US10628198B2 (en) Hypervisor management of migration notification and response messages for virtual machines
CN104486234A (zh) 一种将业务交换机卸载到物理网卡的方法及服务器
Hanafy et al. A new infrastructure elasticity control algorithm for containerized cloud
CN109960579B (zh) 一种调整业务容器的方法及装置
JP6069913B2 (ja) 情報処理システム、情報処理システムの制御方法及び制御プログラム
CN107995032A (zh) 一种基于云数据中心搭建网络实验平台的方法及装置
Khorsandroo et al. An experimental investigation of SDN controller live migration in virtual data centers
US11070629B2 (en) Migration notification and response messages for virtual machines
CN104199716A (zh) 一种虚拟机热迁移的方法、物理主机及***
CN109379235B (zh) 基于高并发请求场景创建云主机的方法
Xie et al. mtcloudsim: A flow-level network simulator for multi-tenant cloud
CN104052624A (zh) 一种配置管理方法及装置
CN106933646A (zh) 一种创建虚拟机的方法及装置
CN108141374A (zh) 一种网络亚健康诊断方法及装置
CN105939242B (zh) 实现虚拟***的方法及装置
JP2018538632A (ja) ノードの再起動後にデータを処理する方法及びデバイス
CN111124890A (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