CN104516767B - 设置虚拟机迁移过程中应用客户端的重传时间的方法和系统 - Google Patents

设置虚拟机迁移过程中应用客户端的重传时间的方法和系统 Download PDF

Info

Publication number
CN104516767B
CN104516767B CN201310450450.6A CN201310450450A CN104516767B CN 104516767 B CN104516767 B CN 104516767B CN 201310450450 A CN201310450450 A CN 201310450450A CN 104516767 B CN104516767 B CN 104516767B
Authority
CN
China
Prior art keywords
virtual machine
migration
migrated
bandwidth
time
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
CN201310450450.6A
Other languages
English (en)
Other versions
CN104516767A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to CN201310450450.6A priority Critical patent/CN104516767B/zh
Priority to US14/487,288 priority patent/US9389902B2/en
Publication of CN104516767A publication Critical patent/CN104516767A/zh
Priority to US15/185,303 priority patent/US10025614B2/en
Application granted granted Critical
Publication of CN104516767B publication Critical patent/CN104516767B/zh
Priority to US15/978,452 priority patent/US10545782B2/en
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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/188Time-out mechanisms
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/1887Scheduling and prioritising arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Retry When Errors Occur (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及虚拟机迁移,其公开了一种设置虚拟机迁移过程中应用客户端的重传时间的方法和装置,该方法包括:根据待迁移虚拟机的至少一个应用的历史访问记录和内存记录预测所述待迁移虚拟机所需的迁移内存大小;计算待迁移虚拟机的宿主机的可用迁移带宽;根据预测的所述待迁移虚拟机所需的迁移内存大小和宿主机的可用迁移带宽计算虚拟机迁移时间;根据虚拟机迁移时间设置应用客户端的重传时间。

Description

设置虚拟机迁移过程中应用客户端的重传时间的方法和系统
技术领域
本发明涉及虚拟机迁移,更具体地,涉及一种设置虚拟机迁移过程中应用客户端的重传时间的方法和系统。
背景技术
目前虚拟化技术得到了广泛的应用。虚拟化技术提供了一种能够将多个虚拟机(VM)容纳在一个大的服务器上的方式,降低了用户的总成本并且改善了应用的可靠性和灵活性,从而可以减少用户对于各个工作负荷的尖峰(spike)过度提供计算资源的可能性。而且,虚拟化技术有助于隔离重要的应用,使得运行在不同虚拟机上的不同应用不会共享操作系统,于是由应用引起的致命的故障并不会影响任何其他虚拟机中的应用。虚拟化技术是“云计算(Cloud Computing)”技术中的一项重要且基础的技术。由于其具备按需配置和动态迁移能力,因此成为实现云计算动态、可伸缩的扩展的关键。为了实现云计算的高度弹性以满足业务或者管理的策略和需求,需要经常性地实施虚拟机在物理机之间的动态迁移和汇聚,从而达到节省能耗,提高资源利用率,降低管理成本等目标。
然而虚拟机迁移是一个IO高度敏感的过程,当虚拟机在被实施迁移的过程中,由于其上业务或者应用仍然在正常工作,因此对虚拟机的应用客户端产生不可预期的影响。例如,在虚拟机迁移的过程中,虚拟机的应用客户端向虚拟机发出请求,就会导致响应失败,因此要发送重传请求,TCP协议用于控制数据段是否需要重传的依据是设立重传定时器。在发送一个数据段的同时启动一个重传定时器,如果在定时器超时前收到确认(Acknowlegement)就关闭该重传定时器,如果定时器超时前没有收到确认,则重传该数据段。在选择重传时间的过程中,TCP必须具有自适应性。它需要根据互联网当时的通信情况,给出合适的数据重传时间。目前采用较多的算法是一种不断调整超时时间间隔的动态算法。其工作原理是:对每条连接TCP都保持一个变量往返时间RTT(Round Trip Time),用于存放当前到目的端往返所需要时间最接近的估计值。如果定时器超时前没有收到确认,则将RTT的值增加1倍,随着连接失败的次数增加,RTT的值越来越大。在虚拟机迁移的过程中,由于RTT的数值小,就会导致重传次数增加,如果虚拟机已经完成迁移,由于RTT的数值随着重传次数的增加越来越大,就会导致客户端的响应延迟。
因此,在虚拟机迁移时,需要对应用客户端设置合适的重传时间,及时对客户端的请求做出响应。
发明内容
根据本发明的一个方面,提供了一种设置虚拟机迁移过程中应用客户端的重传时间的方法,包括:根据待迁移虚拟机的至少一个应用的历史访问记录和内存记录预测所述待迁移虚拟机所需的迁移内存大小;计算待迁移虚拟机的宿主机的可用迁移带宽;根据预测的所述待迁移虚拟机所需的迁移内存大小和宿主机的可用迁移带宽计算虚拟机迁移时间;根据虚拟机迁移时间设置应用客户端的重传时间。
根据本发明的另一个方面,提供了一种设置虚拟机迁移过程中应用客户端的重传时间的装置,包括:迁移内存预测模块,被配置为根据待迁移虚拟机的至少一个应用的历史访问记录和内存记录预测所述待迁移虚拟机所需的迁移内存大小;可用带宽计算模块,被配置为计算待迁移虚拟机的宿主机的可用迁移带宽;迁移时间计算模块,被配置为根据预测的所述待迁移虚拟机所需的迁移内存大小和宿主机的可用迁移带宽计算虚拟机迁移时间;重传时间设置模块,被配置为根据虚拟机迁移时间设置应用客户端的重传时间。
根据本发明实施例的方法和装置能够设置合适的重传时间,及时对应用客户端的请求做出响应,减少重传次数,降低网络传输的开销。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图;
图2示出根据本发明实施例的设置虚拟机迁移过程中应用客户端的重传时间的方法;
图3示出根据本发明的实施例一段时间内待迁移虚拟机某个应用的请求到达速率的变化曲线;
图4示出根据本发明的实施例一段时间内待迁移虚拟机对某个应用分配的内存的变化曲线;
图5示出根据本发明实施例的设置虚拟机迁移过程中应用客户端的重传时间的装置500。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instructionmeans)的制造品(manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
现在参看图2,图2示出根据本发明实施例的设置虚拟机迁移过程中应用客户端的重传时间的方法,包括:在步骤S201,根据待迁移虚拟机的至少一个应用的历史访问记录和内存记录预测所述待迁移虚拟机所需的迁移内存大小;在步骤S202,计算待迁移虚拟机的宿主机的可用迁移带宽;在步骤S203,根据预测的所述待迁移虚拟机所需的迁移内存大小和可用迁移带宽计算虚拟机迁移时间;在步骤S204,根据虚拟机迁移时间设置应用客户端的重传时间。
在步骤S201,根据待迁移虚拟机的应用的历史访问记录预测所述待迁移虚拟机所需的迁移内存大小,包括:根据所述至少一个应用的历史访问记录计算一段时间内所述至少一个应用的请求到达速率的变化和每个请求的平均服务时间;根据所述待迁移虚拟机的内存记录统计所述一段时间内所述待迁移虚拟机对所述至少一个应用分配的内存大小的变化;根据所述一段时间内所述至少一个应用的请求到达速率的变化和所述待迁移虚拟机对所述至少一个应用分配的内存大小的变化计算所述一段时间内所述待迁移虚拟机为所述至少一个应用分配的内存大小与所述至少一个应用的请求到达速率的函数关系;以及根据所述函数关系预测所述待迁移虚拟机所需的迁移内存大小。
根据本发明的实施例,其中根据所述函数关系预测所述待迁移虚拟机所需的迁移内存大小包括:根据所述函数关系和迁移时刻所述至少一个应用的请求到达速率预测所述至少一个应用所需的迁移内存大小;将所述至少一个应用所需的内存大小累加起来得到所述待迁移虚拟机所需的迁移内存大小。
根据本发明的实施例,观察到虚拟机处理每个请求所需要的内存开销与对应每个请求的平均服务时间存在线性相关关系,当一个新请求到达时,虚拟机会分配一定的内存用于服务该请求,而且不同种类应用的请求所需要的平均服务时间不同,通常请求需要的平均服务时间越长,为该请求分配的内存越大。例如,复杂应用A和简单应用B,A类应用的请求平均服务时间为4s,B类应用的请求平均服务时间为2s,那么虚拟机为A类应用的请求分配的内存大小基本上是为B类应用的请求分配的内存大小的2倍,任一时刻虚拟机为某个应用分配的内存大小与为该应用请求的平均服务时间的函数关系为:
S=a*v*Ts+b (1)
其中S为任一时刻虚拟机为某个应用分配的内存大小,a为比例系数,V为一段时间内该某个应用的请求到达速率,Ts为该某个应用请求的平均服务时间,b为修正参数。
根据本发明的实施例,虚拟机管理器(hypervisor)可以从待迁移虚拟机获取待迁移虚拟机某个应用的历史访问记录,根据历史访问记录计算一段时间内某个应用的请求到达速率v和每个请求的平均服务时间Ts。应用的历史访问记录按时间顺序对请求的接收、处理等操作进行记录。根据本发明的实施例,一个典型的应用的历史访问记录如下所示:
时间标签 事件
t0 receive a request from ip0
t1 receive a request from ip1
t2 handle request from ip0
t3 receive a request from ip2
t4 handle request from ip1
t5 send reply to ip0
…… ……
tn_1 handle request from ip2
tn_2 send reply to ip1
tn_3 send reply to ip2
根据上述历史访问记录可以计算t0至t3时间段内该应用的请求到达速率:v=(t3-t0)/3。
计算该应用的请求的平均服务时间:Ts=(Ts_1+Ts_2+Ts_3)/3;
其中t0时刻从IP地址ip0接收到的该应用的请求的服务时间Ts_1=t5-t0;
t1时刻从IP地址ip1接收到的该应用的请求的服务时间Ts_2=tn_2-t1;
t3时刻从IP地址ip2接收到的该应用的请求的服务时间Ts_3=tn_3-t3。
根据本发明的实施例,虚拟机管理器(hypervisor)可以从待迁移虚拟机获取待迁移虚拟机的内存记录,根据待迁移虚拟机的内存记录可以获取任一时刻虚拟机为某个应用分配的内存大小。因此,根据历史数据可以计算出公式(1)中的比例系数a以及修正参数b。
图3示出根据本发明的实施例一段时间内待迁移虚拟机某个应用的请求到达速率的变化曲线,如图所示,横坐标为时间,纵坐标为某个应用的请求到达速率。图4示出根据本发明的实施例一段时间内虚待迁移拟机对某个应用分配的内存的变化曲线,例如,在图3上选取两个时间点对应的A、B两个坐标点,在图4上选取相同时间点对应的C、D两个坐标点,在10个小时的时间点,请求到达速率是10个/每秒,待迁移虚拟机为该应用分配的内存大小是2GB,在20个小时的时间点,请求到达速率是20个/每秒,待迁移虚拟机为该应用分配的内存大小是4GB,假设该应用请求的平均服务时间是2s,将上述坐标点的值代入公式(1),
2=a*10*2+b (2)
4=a*20*2+b (3)
求出a=0.1,b=0,因此针对该应用的公式(1)变形为:
S=0.2*v (4)
在待迁移虚拟机要迁移的当前时刻,查询该待迁移虚拟机正在服务的该应用的请求的个数,得到当前时刻的该应用的请求到达速率,根据公式(4)计算出该应用所需的迁移内存的大小。
在存在多个应用的情况,按照本发明实施例的方法逐个获取所述一段时间内待迁移虚拟机为多个应用分配的内存大小与对应于多个应用的请求到达速率的函数关系,并根据每个函数关系和迁移时刻的请求到达速率预测多个应用所需的迁移内存大小,然后将多个应用所需的内存大小累加起来得到待迁移虚拟机的迁移内存大小。
在步骤S202,计算待迁移虚拟机的宿主机的可用迁移带宽,根据本发明的实施例,在存在多个虚拟机向宿主机请求带宽的情况下,如果宿主机的带宽大于或等于所述多个虚拟机请求的带宽的情况下,待迁移虚拟机的宿主机的可用迁移带宽,其中WS为宿主机的带宽,Wi,(i=1...j,j≥1)为待迁移虚拟机以外的其它虚拟机请求的带宽,例如,一台宿主机上有两个虚拟机A和B,宿主机带宽为1Gbps,虚拟机A请求带宽200Mbps,虚拟机B请求带宽300Mbps,如果虚拟机A要迁移,那么待迁移虚拟机的宿主机的可用迁移带宽WA=1Gbps-300Mbps=700Mbps。根据本发明的另一个实施例,在存在多个虚拟机向宿主机请求带宽的情况下,如果宿主机的带宽小于所述多个虚拟机请求的带宽,根据待迁移的虚拟机的权重计算待迁移虚拟机的宿主机的可用迁移带宽,待迁移虚拟机的宿主机的可用迁移带宽,其中Pj是待迁移的虚拟机的权重,是所有虚拟机的权重之和。例如,,一台宿主机上有两个虚拟机A和B,宿主机带宽为1Gbps,虚拟机A请求带宽800Mbps,权重是5,虚拟机B请求带宽500Mbps,权重为3,如果虚拟机A要迁移,那么迁移带宽
在步骤S203,根据预测的所述待迁移虚拟机所需的迁移内存大小和可用迁移带宽计算虚拟机迁移时间,即,虚拟机迁移时间,其中M为虚拟机的迁移内存大小,WA为宿主机的可用迁移带宽。
在步骤S204,根据虚拟机迁移时间设置应用客户端的重传时间,具体地,在虚拟机迁移之前,虚拟机管理器预测出虚拟机的迁移时间,将应用客户端的重传时间设置为略大于虚拟机的迁移时间,从而获得较为精准的重传时间,根据重传时间,向客户端发出可以建立连接的时间指令,应用客户端在接收到指令后,根据指令中设置的时间向迁移后的虚拟机发送请求。
根据本发明实施例的设置虚拟机迁移过程中的应用客户端的重传时间的方法,避免了传统TCP协议中将往返时间RTT(Round Trip Time)设置为重传时间,避免了重传次数增加,应用客户端响应延迟等问题,而是将影响虚拟机迁移时间的因素考虑进来,利用预测的虚拟机迁移时间设置重传时间,设置合适的重传时间,及时对应用客户端的请求做出响应。
基于同一发明构思,本发明还提出一种设置虚拟机迁移过程中应用客户端的重传时间的装置,图5示出根据本发明实施例的设置虚拟机迁移过程中应用客户端的重传时间的装置500,包括:迁移内存预测模块501,被配置为根据待迁移虚拟机的至少一个应用的历史访问记录和内存记录预测所述待迁移虚拟机所需的迁移内存大小;可用带宽计算模块502,被配置为计算待迁移虚拟机的宿主机的可用迁移带宽;迁移时间计算模块503,被配置为根据预测的所述待迁移虚拟机所需的迁移内存大小和宿主机的可用迁移带宽计算虚拟机迁移时间;重传时间设置模块504,被配置为根据虚拟机迁移时间设置应用客户端的重传时间。
根据本发明的实施例,其中迁移内存预测模块501进一步被配置为:根据所述至少一个应用的历史访问记录计算一段时间内所述至少一个应用的请求到达速率的变化和每个请求的平均服务时间;根据所述待迁移虚拟机的内存记录统计所述一段时间内所述待迁移虚拟机对所述至少一个应用分配的内存大小的变化;根据所述一段时间内所述至少一个应用的请求到达速率的变化和所述待迁移虚拟机对所述至少一个应用分配的内存大小的变化计算所述一段时间内所述待迁移虚拟机为所述至少一个应用分配的内存大小与所述至少一个应用的请求到达速率的函数关系;以及根据所述函数关系预测所述待迁移虚拟机所需的迁移内存大小。
根据本发明的实施例,其中迁移内存预测模块501进一步被配置为:根据所述函数关系和迁移时刻所述至少一个应用的请求到达速率预测所述至少一个应用所需的迁移内存大小;将所述至少一个应用所需的内存大小累加起来得到所述待迁移虚拟机所需的迁移内存大小。
根据本发明的实施例,其中可用带宽计算模块502被配置为:在存在多个虚拟机向宿主机请求带宽的情况下,如果宿主机的带宽大于或等于所述多个虚拟机请求的带宽,待迁移虚拟机的宿主机的可用迁移带宽,其中WS为宿主机的带宽,Wi,(i=1...j,j≥1)为待迁移虚拟机以外的其它虚拟机请求的带宽。
根据本发明的实施例,其中可用带宽计算模块502被配置为:在存在多个虚拟机向宿主机请求带宽的情况下,如果宿主机的带宽小于所有虚拟机请求的带宽,根据待迁移的虚拟机的权重计算待迁移虚拟机的宿主机的可用迁移带宽。
根据本发明的实施例,其中重传时间设置模块504进一步被配置为将应用客户端的重传时间设置为略大于虚拟机的迁移时间。
上述每个模块的具体实现方法参照根据本发明实施例的设置虚拟机迁移过程中应用客户端的重传时间的方法中的详细描述,在此不一一赘述。
根据本发明实施例的预测行车时间的方法和系统可以作为一个应用的插件安装在虚拟机管理器中。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (10)

1.一种设置虚拟机迁移过程中应用客户端的重传时间的方法,包括:
根据待迁移虚拟机的至少一个应用的历史访问记录和内存记录预测所述待迁移虚拟机所需的迁移内存大小;
计算待迁移虚拟机的宿主机的可用迁移带宽;
根据预测的所述待迁移虚拟机所需的迁移内存大小和宿主机的可用迁移带宽计算虚拟机迁移时间;
根据虚拟机迁移时间设置应用客户端的重传时间,
其中根据待迁移虚拟机的至少一个应用的历史访问记录和内存记录预测所述待迁移虚拟机所需的迁移内存大小包括:
根据所述至少一个应用的历史访问记录计算一段时间内所述至少一个应用的请求到达速率的变化和每个请求的平均服务时间;
根据所述待迁移虚拟机的内存记录统计所述一段时间内所述待迁移虚拟机对所述至少一个应用分配的内存大小的变化;
根据所述一段时间内所述至少一个应用的请求到达速率的变化和所述待迁移虚拟机对所述至少一个应用分配的内存大小的变化计算所述一段时间内所述待迁移虚拟机为所述至少一个应用分配的内存大小与所述至少一个应用的请求到达速率的函数关系;以及
根据所述函数关系预测所述待迁移虚拟机所需的迁移内存大小。
2.根据权利要求1所述的方法,其中根据所述函数关系预测所述待迁移虚拟机所需的迁移内存大小包括:
根据所述函数关系和迁移时刻所述至少一个应用的请求到达速率预测所述至少一个应用所需的迁移内存大小;
将所述至少一个应用所需的内存大小累加起来得到所述待迁移虚拟机所需的迁移内存大小。
3.根据权利要求1所述的方法,其中计算待迁移虚拟机的宿主机的可用迁移带宽包括:在存在多个虚拟机向宿主机请求带宽的情况下,如果宿主机的带宽大于或等于所述多个虚拟机请求的带宽,待迁移虚拟机的宿主机的可用迁移带宽其中WS为宿主机的带宽,Wi,(i=1...j,j≥1)为除去待迁移虚拟机以外的其它虚拟机请求的带宽。
4.根据权利要求1所述的方法,其中计算待迁移虚拟机的宿主机的可用迁移带宽包括:在存在多个虚拟机向宿主机请求带宽的情况下,如果宿主机的带宽小于所述多个虚拟机请求的带宽,根据待迁移虚拟机的权重计算待迁移虚拟机的宿主机的可用迁移带宽。
5.根据权利要求1至4中任一项所述的方法,其中根据虚拟机迁移时间设置应用客户端的重传时间包括:将应用客户端的重传时间设置为大于虚拟机的迁移时间。
6.一种设置虚拟机迁移过程中应用客户端的重传时间的装置,包括:
迁移内存预测模块,被配置为根据待迁移虚拟机的至少一个应用的历史访问记录和内存记录预测所述待迁移虚拟机所需的迁移内存大小;
可用带宽计算模块,被配置为计算待迁移虚拟机的宿主机的可用迁移带宽;
迁移时间计算模块,被配置为根据预测的所述待迁移虚拟机所需的迁移内存大小和宿主机的可用迁移带宽计算虚拟机迁移时间;
重传时间设置模块,被配置为根据虚拟机迁移时间设置应用客户端的重传时间,
其中迁移内存预测模块进一步被配置为:
根据所述至少一个应用的历史访问记录计算一段时间内所述至少一个应用的请求到达速率的变化和每个请求的平均服务时间;
根据所述待迁移虚拟机的内存记录统计所述一段时间内所述待迁移虚拟机对所述至少一个应用分配的内存大小的变化;
根据所述一段时间内所述至少一个应用的请求到达速率的变化和所述待迁移虚拟机对所述至少一个应用分配的内存大小的变化计算所述一段时间内所述待迁移虚拟机为所述至少一个应用分配的内存大小与所述至少一个应用的请求到达速率的函数关系;以及
根据所述函数关系预测所述待迁移虚拟机所需的迁移内存大小。
7.根据权利要求6所述的装置,其中迁移内存预测模块进一步被配置为:
根据所述函数关系和迁移时刻所述至少一个应用的请求到达速率预测所述至少一个应用所需的迁移内存大小;
将所述至少一个应用所需的内存大小累加起来得到所述待迁移虚拟机所需的迁移内存大小。
8.根据权利要求6所述的装置,其中可用带宽计算模块被配置为:在存在多个虚拟机向宿主机请求带宽的情况下,如果宿主机的带宽大于或等于所述多个虚拟机请求的带宽,待迁移虚拟机的宿主机的可用迁移带宽其中WS为宿主机的带宽,Wi,(i=1...j,j≥1)为待迁移虚拟机以外的其它虚拟机请求的带宽。
9.根据权利要求6所述的装置,其中可用带宽计算模块被配置为:在存在多个虚拟机向宿主机请求带宽的情况下,如果宿主机的带宽小于所述多个虚拟机请求的带宽,根据待迁移虚拟机的权重计算待迁移虚拟机的宿主机的可用迁移带宽。
10.根据权利要求6至9中任一项所述的装置,其中重传时间设置模块进一步被配置为将应用客户端的重传时间设置为大于虚拟机的迁移时间。
CN201310450450.6A 2013-09-27 2013-09-27 设置虚拟机迁移过程中应用客户端的重传时间的方法和系统 Active CN104516767B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201310450450.6A CN104516767B (zh) 2013-09-27 2013-09-27 设置虚拟机迁移过程中应用客户端的重传时间的方法和系统
US14/487,288 US9389902B2 (en) 2013-09-27 2014-09-16 Setting retransmission time of an application client during virtual machine migration
US15/185,303 US10025614B2 (en) 2013-09-27 2016-06-17 Setting retransmission time of an application client during virtual machine migration
US15/978,452 US10545782B2 (en) 2013-09-27 2018-05-14 Setting retransmission time of an application client during virtual machine migration

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310450450.6A CN104516767B (zh) 2013-09-27 2013-09-27 设置虚拟机迁移过程中应用客户端的重传时间的方法和系统

Publications (2)

Publication Number Publication Date
CN104516767A CN104516767A (zh) 2015-04-15
CN104516767B true CN104516767B (zh) 2018-01-02

Family

ID=52741492

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310450450.6A Active CN104516767B (zh) 2013-09-27 2013-09-27 设置虚拟机迁移过程中应用客户端的重传时间的方法和系统

Country Status (2)

Country Link
US (3) US9389902B2 (zh)
CN (1) CN104516767B (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104516767B (zh) 2013-09-27 2018-01-02 国际商业机器公司 设置虚拟机迁移过程中应用客户端的重传时间的方法和系统
WO2016039507A1 (ko) * 2014-09-11 2016-03-17 이화여자대학교 산학협력단 건물 내 무선 통신 기반의 센서 배치를 위한 위치 결정 방법 및 건물 내 무선 통신 기반의 센서 배치를 위한 위치 결정 시스템
CN104917594B (zh) * 2015-04-22 2018-05-29 北京邮电大学 虚拟机的tcp数据传输方法和虚拟机系统
US9696930B2 (en) * 2015-06-10 2017-07-04 International Business Machines Corporation Reducing new extent failures on target device during non-disruptive logical data set migration
EP3314424A4 (en) * 2015-06-26 2019-02-06 Intel Corporation MIGRATION TECHNIQUES OF VIRTUAL MACHINES
CN105224246B (zh) * 2015-09-25 2018-11-09 联想(北京)有限公司 一种信息以及内存配置方法和装置
US20170223768A1 (en) * 2016-02-01 2017-08-03 Qualcomm Incorporated Dynamic adjustment of transmission timeout interval in communication protocols
JP6962138B2 (ja) * 2017-11-06 2021-11-05 富士通株式会社 情報処理装置、情報処理システム及びプログラム
CN110427340B (zh) * 2018-04-28 2023-08-04 伊姆西Ip控股有限责任公司 用于文件存储的方法、装置和计算机存储介质
CN108595250B (zh) * 2018-05-02 2021-05-28 南京大学 一种面向IaaS云平台的资源调度效率优化方法及系统
US10929165B2 (en) * 2018-07-31 2021-02-23 Nutanix, Inc. System and method for memory resizing in a virtual computing environment
CN109697090B (zh) * 2018-12-27 2022-10-11 Oppo广东移动通信有限公司 一种控制终端设备的方法、终端设备及存储介质
CN113098917B (zh) * 2019-12-23 2024-06-04 华为云计算技术有限公司 迁移功能节点的方法和相关设备
CN111273998B (zh) * 2020-01-19 2022-08-12 苏州浪潮智能科技有限公司 一种基于喷泉码与网络编码的虚拟机动态迁移方法及系统
US11765062B2 (en) * 2020-01-23 2023-09-19 Red Hat, Inc. Automatic retransmission capability in hypervisor
CN111274230B (zh) * 2020-03-26 2024-03-08 北京奇艺世纪科技有限公司 数据迁移的管理方法、装置、设备及存储介质
CN114726909A (zh) * 2022-03-15 2022-07-08 阿里云计算有限公司 云服务迁移信息处理方法、装置、设备、介质及产品
CN115904616B (zh) * 2022-11-04 2023-11-10 北京天融信网络安全技术有限公司 虚拟机热迁移方法、装置、设备及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541244A (zh) * 2010-12-23 2012-07-04 财团法人工业技术研究院 虚拟主机合并方法与管理实体主机
CN102662723A (zh) * 2012-02-28 2012-09-12 北京邮电大学 一种基于停机时间阈值的虚拟机内存迁移方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6802062B1 (en) * 1997-04-01 2004-10-05 Hitachi, Ltd. System with virtual machine movable between virtual machine systems and control method
SE0003756D0 (sv) * 2000-10-17 2000-10-17 Ericsson Telefon Ab L M Selective time-out in a mobile communication system
US8539098B2 (en) 2007-10-17 2013-09-17 Dispersive Networks, Inc. Multiplexed client server (MCS) communications and systems
ATE547918T1 (de) * 2008-11-07 2012-03-15 Siemens Ag Verfahren zur datenübertragung in einem lokalen netzwerk
US8352953B2 (en) * 2009-12-03 2013-01-08 International Business Machines Corporation Dynamically provisioning virtual machines
US8990531B2 (en) 2010-07-12 2015-03-24 Vmware, Inc. Multiple time granularity support for online classification of memory pages based on activity level
US8756602B2 (en) * 2010-11-14 2014-06-17 Brocade Communications Systems, Inc. Virtual machine and application migration over local and wide area networks without timeout
JP5673233B2 (ja) * 2011-03-09 2015-02-18 富士通株式会社 情報処理装置、仮想マシン管理方法および仮想マシン管理プログラム
US8843924B2 (en) * 2011-06-17 2014-09-23 International Business Machines Corporation Identification of over-constrained virtual machines
US8694644B2 (en) 2011-09-29 2014-04-08 Nec Laboratories America, Inc. Network-aware coordination of virtual machine migrations in enterprise data centers and clouds
JP5801175B2 (ja) * 2011-12-16 2015-10-28 株式会社日立製作所 パケット通信装置および方法
CN104516767B (zh) 2013-09-27 2018-01-02 国际商业机器公司 设置虚拟机迁移过程中应用客户端的重传时间的方法和系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541244A (zh) * 2010-12-23 2012-07-04 财团法人工业技术研究院 虚拟主机合并方法与管理实体主机
CN102662723A (zh) * 2012-02-28 2012-09-12 北京邮电大学 一种基于停机时间阈值的虚拟机内存迁移方法

Also Published As

Publication number Publication date
US20160292002A1 (en) 2016-10-06
US10025614B2 (en) 2018-07-17
CN104516767A (zh) 2015-04-15
US20150095909A1 (en) 2015-04-02
US10545782B2 (en) 2020-01-28
US9389902B2 (en) 2016-07-12
US20180260238A1 (en) 2018-09-13

Similar Documents

Publication Publication Date Title
CN104516767B (zh) 设置虚拟机迁移过程中应用客户端的重传时间的方法和系统
US11570937B2 (en) Methods and apparatus to control power delivery based on predicted power utilization in a data center
US20200364608A1 (en) Communicating in a federated learning environment
US10776149B2 (en) Methods and apparatus to adjust energy requirements in a data center
EP2780799B1 (en) Throttle disk i/o using disk drive simulation model
TWI261784B (en) Methods and apparatus to dispatch interrupts in multiprocessor systems
US8468288B2 (en) Method for efficient guest operating system (OS) migration over a network
US7702853B2 (en) Data storage system with power management control and method
CN102369688A (zh) 资源动态调整方法和调度设备
JP2013257893A (ja) 分散型サーバーシステムにおいてバックアップマネージャを転送するメッセージ
CN103856480A (zh) 虚拟机迁移中的用户数据报协议分组迁移
US20190303308A1 (en) Distributed storage system and method for managing storage access bandwidth for multiple clients
US11307900B2 (en) Adjustment of the number of central processing units to meet performance requirements of an I/O resource
EP3280094B1 (en) Disaster recovery method, device, and system
WO2019073394A1 (en) MEMORY ACCESS BROKER SYSTEM WITH APPLICATION-EARLY WRITTEN RECEIVING RECEIPT SUPPORT
CN113014611A (zh) 一种负载均衡方法及相关设备
CN109709905A (zh) 通信处理装置、存储介质和通信处理方法
WO2020233364A1 (zh) 资源处理平台的确认方法、装置、电子设备和介质
JP2019525349A (ja) コンピューティングデバイスにおける、外部で管理される入出力のスタベーションの回避
US9569241B2 (en) Sharing devices assigned to virtual machines using runtime exclusion
CN108121596A (zh) 数据传输方法及装置、存储介质、电子设备
US8812900B2 (en) Managing storage providers in a clustered appliance environment
US20200174670A1 (en) Reducing write collisions in data copy
CN115437794A (zh) I/o请求调度方法、装置、电子设备及存储介质
US9557984B2 (en) Performing code load operations on managed components in a system

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