CN101924693B - 用于在虚拟机间迁移进程的方法和系统 - Google Patents
用于在虚拟机间迁移进程的方法和系统 Download PDFInfo
- Publication number
- CN101924693B CN101924693B CN201010144050.9A CN201010144050A CN101924693B CN 101924693 B CN101924693 B CN 101924693B CN 201010144050 A CN201010144050 A CN 201010144050A CN 101924693 B CN101924693 B CN 101924693B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- virtual
- address
- host computer
- mac address
- 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
- 238000000034 method Methods 0.000 title claims abstract description 108
- 230000008569 process Effects 0.000 title claims abstract description 86
- 230000003362 replicative effect Effects 0.000 abstract description 2
- 230000005012 migration Effects 0.000 description 20
- 238000013508 migration Methods 0.000 description 20
- 238000005516 engineering process Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 238000005538 encapsulation Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 230000000712 assembly Effects 0.000 description 3
- 238000000429 assembly Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 108010022579 ATP dependent 26S protease Proteins 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- DKOQGJHPHLTOJR-WHRDSVKCSA-N cefpirome Chemical compound N([C@@H]1C(N2C(=C(C[N+]=3C=4CCCC=4C=CC=3)CS[C@@H]21)C([O-])=O)=O)C(=O)\C(=N/OC)C1=CSC(N)=N1 DKOQGJHPHLTOJR-WHRDSVKCSA-N 0.000 description 1
- 229960000466 cefpirome Drugs 0.000 description 1
- 238000010367 cloning Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- 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
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
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
背景技术
称为基于服务器的计算(SBC)和虚拟桌面基础结构(VDI)的虚拟化技术使得组织能够用在数据中心中的服务器上运行的虚拟机上所托管的桌面的实例(instance)来替代传统的个人计算机(PC)。安装在用户的终端上的瘦客户端远程地连接到操作中的远程会话,该操作中的远程会话在终端上向用户呈现桌面或应用的图形部分。通常,SBC系统被设计成每操作系统托管多个用户,并且VDI系统被设计成每会话托管一个用户。VDI使用多个虚拟机,每一个都同时运行一个操作系统,以托管多个运行的操作系统,从而允许多个用户共享单个物理服务器机器。两种类型的系统被设计成面向在需要多个服务器的情况下的大量用户。两种类型的系统利用“连接代理”来辅助负载平衡,该“连接代理”向可用的服务器分派新的应用或登录请求。
VDI优于SBC的一个优点是在服务器之间迁移在虚拟机上运行的虚拟桌面的能力。当在任何一个服务器上的工作负载变得过高时,正在运行虚拟桌面的虚拟机可以被迁移到其它的服务器以分散工作负载。例如,使用Palo Alto,CA(加州帕洛阿尔托)的VMware公司提供的VMware VMotion可以实现这样的迁移。然而,将全部虚拟机从一个服务器迁移到另一个服务器无法减轻在单个虚拟机内出现的过度工作负载。由于虚拟机所要迁移到的任何其它服务器也将必须承担相同的计算工作负载,所以目前的迁移技术不能充分解决在多个进程正在生成负载的单个操作系统内增加的工作负载。作为防止这类情况的方法,一些SBC提供商推荐维持仅20%使用率的最大工作负载,留下80%作为用于使用高峰的安全余量。
发明内容
本发明的一个或多个实施例提供了一种方法和系统,用于将在一个服务器上的特定虚拟机内运行的个体用户级进程迁移到另一个服务器。将迁移的用户级进程置于另一个服务器上的虚拟机中,该虚拟机复制原始虚拟机,使得用户级进程如仍然在原始虚拟机中运行一样地继续运行,例如,维持相同的网络连接,使得与该迁移的进程进行交互的用户终端没有认识到其正与不同的服务器进行交互。这样的“每进程”迁移提供了以进程级来加载平衡服务器的能力,使得在硬件资源利用中的显著改进现在可以以迁移全部虚拟机的现有技术无法实现的方式出现。
根据本发明的实施例,一种将在第一虚拟机上运行的一个或多个用户级进程卸载(offload)到第二虚拟机的方法包括下述步骤:识别要卸载的在第一虚拟机上运行的一个或多个用户级进程;复制第一虚拟机以创建第二虚拟机;以及终止被识别用于卸载的在第一虚拟机上运行的用户级进程,并且终止在第二虚拟机上运行的除了被识别用于卸载的用户级进程之外的所有用户级进程。
根据本发明的实施例,一种将在第一主机计算机上被实例化(instantiate)的第一虚拟机上运行的一个或多个进程卸载到第二主机计算机的方法包括下述步骤:识别要卸载的在第一虚拟机上运行的一个或多个进程;在第二主机上复制第一虚拟机,以创建第二虚拟机;以及终止在第一虚拟机上运行的一些但并非所有的进程,并且终止在第二虚拟机上运行的一些但并非所有的进程。
根据本发明的实施例,一种计算机系统包括:第一主机计算机,该第一主机计算机具有在其上运行的多个虚拟机;第二主机计算机,该第二主机计算机具有在其上运行的多个虚拟机;以及路由器,该路由器被配置成基于在数据分组中指定的目的地IP地址和目的地端口来将数据分组引导至在第一主机计算机上的第一虚拟机以及在第二主机计算机上的第二虚拟机,其中,第一虚拟机和第二虚拟机共享同一IP地址。
附图说明
图1描绘了在主机计算机上配置的虚拟机的框图。
图2A、图2B和图2C描绘了其中可以实践本发明的一个或多个实施例的虚拟基础结构,并且示意性地图示了如何在虚拟机之间迁移进程。
图3描绘了根据本发明的第一实施例的虚拟基础结构。
图4是图示如何将数据分组路由到在图3的实施例中的正在执行迁移的进程的复制的虚拟机的流程图。
图5描绘了根据本发明的第二实施例的虚拟基础结构。
图6是图示如何将数据分组路由到在图5的实施例中的正在执行迁移的进程的复制的虚拟机的流程图。
图7是图示根据本发明的实施例的如何从正执行迁移的进程的复制的虚拟机传送数据分组的流程图。
具体实施方式
图1描绘了在主机计算机100上配置的虚拟机1201、1202…120N的框图。可以在台式机、膝上型计算机或诸如x86架构平台的服务器级硬件平台102上构建主机计算机100。这样的硬件平台可以包括CPU104、RAM 106、网卡108(在此也被称为网络接口控制器或NIC)、硬盘110以及其它I/O设备,诸如鼠标和键盘(图1中未示出)。将下文中也被称为管理程序112的虚拟化软件层安装在硬件平台102之上。虚拟化软件层支持虚拟机执行空间118,在虚拟机执行空间118内可以同时实例化和执行多个虚拟机(VM 1201-120N)。管理程序112包括设备驱动器层114,并且将硬件平台102的物理资源(例如,CPU 104、RAM 106、NIC 108、硬盘110、鼠标、键盘等)映射到VM 1201-120N中的每一个的“虚拟”资源,使得VM 1201-120N中的每一个都具有其自身的虚拟硬件平台(即,虚拟硬件平台1221-122N中的对应的一个),每一个虚拟硬件平台都具有其自身的仿真的硬件(诸如在VM 1201中的CPU 124、RAM 126、NIC 128、硬盘130以及其它仿真的I/O设备)。设备驱动器层114包括,例如,NIC驱动器115,该NIC驱动器115与NIC 108进行交互,以从例如连接到主机计算机100的局域网(LAN)接收并且传送数据。NIC驱动器115还包括虚拟桥116,该虚拟桥116对将从一个NIC(即,NIC 108)接收到的物理网络中的数据分组广播到其它NIC(即,VM 1201-120N的虚拟NIC)进行模拟。用于每一个VM 1201-120N的每一个虚拟NIC,诸如用于VM 1201的NIC 128,被指配独特的虚拟媒体访问控制(MAC)地址,其使得虚拟桥116能够模拟来自NIC 108的进入的数据分组的转发。在一个实施例中,NIC 108是以“混杂模式”配置的以太网适配器,使得其接收的所有以太网分组(而不仅是寻址到其自身物理MAC地址的以太网分组)被传递到虚拟桥116,该虚拟桥116进而能够将以太网分组进一步转发到VM1201-120N。该配置使得以虚拟MAC地址作为其目的地地址的以太网分组能够正确到达主机计算机100中的VM,该主机计算机100具有与这样的虚拟MAC地址相对应的虚拟NIC。
虚拟硬件平台1221可以用作标准x86硬件架构的等价物,使得任何支持x86的桌面操作系统,例如,Microsoft Windows、Linux、Solarisx86、NetWare、FreeBSD等,可以作为客体(guest)操作系统(OS)132来进行安装,以便于执行用于例如VM 1201的被实例化的VM的应用136。虚拟硬件平台1221-122N可以被视为是虚拟机监视器(VMM)138A-138N的一部分,所述VMM 138A-138N实现协调在管理程序112和对应的VM 1201-120N之间的操作所需要的虚拟系统支持。本领域的普通技术人员将认识到,用于描述图1中的虚拟化组件的各种术语、层以及分类可以在不背离其功能性或者本发明的精神或范围的情况下可以被不同地引用。例如,虚拟硬件平台1221-122N还可被视为与VMM 138A-138N分离,并且VMM 138A-138N可被视为与管理程序112分离。可以在本发明的实施例中使用的管理程序112的一个示例作为组件被包括在VMware公司商业性提供的VMware的ESXTM产品中。
图2A、图2B和图2C描绘了在其中可以实践本发明的一个或多个实施例的虚拟基础结构,并且示意性地图示了如何在VM之间迁移进程。虚拟桌面基础结构包括与共享存储240联网的主集计算机集群(cluster)(例如,主机210、主机220、主机230)。主机210和其硬件资源(例如,CPU 214、RAM 215以及NIC 216)通过管理程序213来支持VM 211和212。主机220及其硬件资源(例如,CPU 224、RAM225以及NIC 226)通过管理程序223来支持VM 221和222。主机230及其硬件资源(例如,CPU 234、RAM 235以及NIC 236)通过管理程序233来支持VM 231和232。为了简化,每个主机计算机仅图示了两个VM。实际上,单个主机计算机可以支持任何数目的VM。类似地,为了示例性目的,VM 211访问存储在共享存储240中的磁盘镜像(diskimage)290(与为VM 211的虚拟硬盘分配的物理资源相对应)。其它VM具有在共享存储240中的与其虚拟硬盘相对应的类似的磁盘镜像。虚拟机管理中心280由企业的IT功能来利用,以创建物理集群并且管理在这样的主机计算机集群中的VM的提供和迁移。在一个实施例中,为了负载平衡的目的,虚拟机管理中心280能够追踪并且查询在主机计算机上的VM,以确定在VM中运行的特定进程所利用的硬件资源量(CPU利用、RAM存储等)。如图2A-2C中,虚拟机管理中心280可以在与集群中的其它计算机系统联网的分立计算机系统上运行,或者它可以在任何特定主机计算机上的VM内运行。虚拟机管理中心的一个示例是VMware的VirtualCenter。
图2A的每一个主机计算机都通过其各自的NIC连接到以太网络270。主机计算机通过其对应的MAC地址在以太网络中是可识别的,并且在每一个主机计算机上运行的每一个VM通过其虚拟NIC的对应的虚拟MAC地址在以太网络270中也是可识别的。IP路由器250从外部网络275接收IP分组,并且通过以太网络270将所述IP分组路由到正确的目的地。例如,当IP路由器250从外部网络275接收到指定用于VM 211的IP分组时,IP路由器250从该IP分组中提取目的地IP地址(即,VM 211的IP地址),并且通过将包含该目的地IP地址的地址解析协议(ARP)请求传送到以太网络270上(或者在ARP缓存中查阅对应的MAC地址)来确定用于该目的地IP地址的对应的MAC地址。当VM 211的虚拟NIC通过管理程序213中的虚拟桥接收主机210的ARP请求(通过以“混杂模式”从物理NIC 216转发ARP请求)时,VM 211用其虚拟MAC地址进行响应。当接收到VM 211的虚拟MAC地址时,IP路由器250将IP分组封装在以太网分组中并且将该以太网分组传送到以太网络270上,该以太网分组将VM 211的虚拟MAC地址指定为其目的地MAC地址。当主机210的NIC 216接收该以太网分组时,主机210的NIC 216将该以太网分组转发到管理程序213中的虚拟桥,该虚拟桥将该以太网分组转发到VM 211。
图2A示意性地图示了在VM 211内部运行的用户级进程,该用户级进程是由代表应用或用户的操作系统发起的进程(例如,进程1、进程2、进程3、进程4、…进程n)。例如,每一个进程可以与在VM 211的客体OS中当前运行的特定应用相关。由于已经确定了(根据本领域的普通技术人员公知的大量方法中的任何一个)从VM 211中卸载进程中的两个,进程2和3,将导致主机210上的工作负载减少50%,所以进程2和3已经被虚拟机管理中心280选择用于“进程迁移”。
图2B示意性地图示了在另一个主机(即,主机220)中复制或克隆VM 211的过程。正在被复制的VM 211在此称为源VM。VM 221是复制的VM。VM的复制或克隆称为VM迁移,并且在一个实施例中VMware VMotion技术可以用于这样的迁移。还可以采用通过本领域的技术人员所知道的其它技术上可行装置来进行的VM复制或克隆。
图2C示意性地图示了终止VM 211和VM 221中的用户级进程的过程。当完成VM迁移时,VM 221是VM 211的克隆,使得VM 221的客体OS具有与VM 211相同的进程,并且利用与VM 211相同的IP地址和虚拟MAC地址。在一个实施例中,在完成VM的迁移时,如果VM 211和VM 221的每一个都直接写入磁盘镜像290中,则在将改变写入磁盘镜像290时,VM 211和VM 221中的每一个利用“链接的克隆镜像”存储区域(分别为存储区域292和294),以避免在VM 211和VM 221之间的可能的写入冲突。在VM 211中,进程2和进程3被终止。在VM 221中,除了进程2和进程3外的所有用户级进程都被终止。在该步骤期间可以采用用于终止进程的任何已知方法。在一个实施例中,虚拟机管理中心280从VM 211获取进程识别信息,并且将请求传送到VM221,以终止所识别的进程中的某些进程。与VM 221相对应的虚拟NIC 227被另外配置(例如,在一个实施例中,响应于来自虚拟机管理中心280的请求)成利用两个不同的虚拟MAC地址。特定地,当与VM 221的客体OS进行交互时,虚拟NIC 227被配置成利用与VM 211共享的先前的虚拟MAC地址228。然而,当与NIC 226(以及任何其它中间管理程序组件,诸如虚拟桥等)进行交互时,虚拟NIC 227被配置成利用为其自己使用而生成的新的独特(unique)虚拟MAC地址229。
图3描绘了根据本发明的第一实施例的虚拟基础结构。如前所述,VM 211和VM 221共享同一IP地址,并且为了示例的目的,进程2和3的每一个都利用同一网络并且具有已经建立的TCP连接。如图3中所示,虚拟路由器组件300被嵌入在IP路由器250中,并且虚拟路由器组件300用于路由使VM 211和VM 221共享的IP地址作为其目的地IP地址的IP分组。如图3中进一步所示,虚拟路由器组件300保存将TCP/IP地址端口组合映射到虚拟MAC地址的路由表305。根据本发明的一个或多个实施例,在完成VM迁移时,虚拟管理中心280:(a)查询VM 211和221以获取由在VM上运行的任何已建立的TCP/IP连接所使用的TCP/IP地址端口号组合;以及(b)指示虚拟路由器组件300将从这样的TCP/IP地址端口组合到虚拟MAC地址228和229的映射分别插入路由表305中。
图4是图示如何将数据分组路由到在图3的实施例中的正在执行迁移的进程的复制的VM的流程图。尽管结合图3描述了方法步骤,但是应当认识到,被配置成以任何顺序来执行方法步骤的任何系统都落入本发明的范围内。
在步骤410中,IP路由器250从外部网络270接收IP分组,并且在步骤412中检查在IP分组中指定的目的地IP地址。然后,在步骤414中,IP路由器250查询其虚拟路由器组件(即,虚拟路由器组件300)以确定目的地IP地址是否是在源VM和复制的VM之间共享的IP地址。如果目的地IP地址被存储在虚拟路由器组件的路由表(即,路由表305)中,则虚拟路由器组件确定该目的地IP地址是在源VM和复制的VM之间共享的IP地址。在步骤416中,如果目地的IP地址与这样的共享IP地址相对应(即,目的地IP地址被存储在路由表305中),则虚拟路由器组件300进一步检查IP分组以提取TCP端口号,并且在步骤418中进一步查阅其路由表(即,路由表305)以确定与该端口号相对应的MAC地址。在步骤420中,虚拟路由器组件300将MAC地址提供给IP路由器250,IP路由器250在步骤422中将接收到的IP分组封装在以太网分组中,在该以太网分组中,目的地MAC地址是从路由表305接收到的MAC地址。在步骤424中,IP路由器250将以太网分组传送到以太网络270上。然而,如果在步骤416中,目的地IP地址不与共享IP地址相对应(即,目的地IP地址没有被存储在路由表305中),则在步骤426中,IP路由器250利用标准的公知协议(例如,ARP等)来确定与目的地IP地址相对应的MAC地址。
在替选实施例中,在不需要IP路由器250修改标准网络协议的情况下来实现虚拟路由器组件300。特定地,代替使IP路由器250查询虚拟路由器组件300,虚拟路由器组件300模拟位于IP路由器250和以太网络270之间的路由器。在这样的实施例中,IP路由器250将所有的数据分组转发到虚拟路由器组件300,然后虚拟路由器组件300从IP分组中提取目的地IP地址,并且执行步骤416至426(即,包括在步骤426中,如果目的地IP地址不与共享IP地址相对应,则将ARP请求传送到以太网270上)。应当进一步认识到,其它的替选实施例可以类似地将虚拟路由器组件300实现为位于IP路由器250和以太网络270之间的物理路由器。
返回图4,当在步骤424中将以太网分组传送到以太网络270上时,NIC 216、226和236中的每一个都将接收以太网分组,并且分别通过其对应的NIC驱动器的虚拟桥将该以太网分组转发到运行其对应的主机计算机210、220和230的VM的虚拟NIC。例如,如果在步骤410中接收到的IP分组被指定用于VM 221的进程2(即,如图3中所指示的TCP/IP地址是IP分组中的192.168.1.10:8756),则在步骤424中,IP路由器250将使MAC地址229作为其目的MAC地址的以太网分组传送到以太网络270上。在步骤428中,NIC 226接收以太网分组并经由管理程序223的NIC驱动器中的虚拟桥将以太网分组转发至虚拟NIC 227,虚拟NIC 227确认目的地MAC地址并且接受以太网分组。在步骤430中,虚拟NIC 227用MAC地址228来替代以太网分组的目的地MAC地址中的MAC地址229,并且在步骤432中,将以太网分组传送到VM 221的客体OS中的NIC驱动器。由于VM 221是VM 211的克隆,所以在客体OS的NIC驱动器接收以太网分组时,能够在步骤434中成功地确认以太网分组包含正确的地址信息(即,先前的MAC地址228,而不是新的MAC地址229),并且在步骤436中将分组中的数据最终路由至进程2。
图5描述了根据本发明的第二实施例的虚拟基础结构。在图5中,代替使虚拟路由器组件作为IP路由器250的一部分(如图3中所示),虚拟路由器软件组件500被嵌入运行源VM 211的主机210的管理程序(即,管理程序213)中,以正确地路由使VM 211和VM 221共享的IP地址作为其目的地IP地址的IP分组。虚拟路由器软件组件500位于VM 211的虚拟NIC和NIC 216的NIC驱动器(包括虚拟桥)之间的管理程序内。虚拟路由器软件组件500还保存将TCP/IP地址端口组合映射到虚拟MAC地址的路由表(即,路由表505)。在完成VM迁移时,虚拟管理中心280:(a)查询VM 211和221以获取由在VM上运行的已经建立的TCP/IP连接所使用的TCP/IP地址端口号组合;以及(b)指示虚拟路由器软件组件500将从这样的TCP/IP地址端口组合到虚拟MAC地址228和229的映射分别插入路由表305中。在一个实施例中,进一步配置虚拟NIC 227,以便于不对ARP请求作出响应,相反地依赖于在作为代理的主机210中的虚拟路由器软件组件500来对ARP请求作出响应,并且从而将以太网分组路由到VM 221。应当认识到,替选实施例可以将虚拟路由器软件组件500嵌入在运行复制的VM 221的主机220上,并且将与VM 211相对应的虚拟NIC配置为依赖于作为代理的虚拟路由器组件。
图6是图示如何将数据分组路由到在图5的实施例中的正在执行迁移的进程的复制的VM的流程图。为了示例的目的,在下面的讨论中利用指定用于VM 221的进程2的IP分组(即,具有如图3中所指示的目的地TCP/IP地址192.168.1.10:8756)。尽管结合图5描述了方法步骤,但是应当认识到,被配置成以任何顺序执行方法步骤的任何系统都落入本发明的范围内。
在步骤610中,IP路由器250从外部网络275接收IP分组,并且在步骤612中检查在IP分组中指定的目的地IP地址。在步骤614中,IP路由器将ARP请求传送到以太网270上(或查阅其ARP缓存),以获取与目的地IP地址相对应的MAC地址。在步骤616中,NIC 216接收该ARP,并且通过管理程序213中的其对应的NIC驱动器的虚拟桥将该ARP转发到虚拟路由器软件组件500。在步骤618中,虚拟路由器软件组件500通过在其路由表505中搜索目的地IP地址来确定包含在ARP请求中的目的地IP地址是否与共享的IP地址相对应。如果在路由表505中找到了目的地IP地址,则在步骤620中,虚拟路由器软件组件500以其自己的虚拟MAC地址来对ARP请求作出响应。如果在路由表505中没有找到目的地IP地址,则在步骤619中忽略该ARP请求。在步骤622中,IP路由器250从虚拟路由器软件组件500接收响应,并且在步骤624中将所接收到的IP分组封装在以太网分组中,在该以太网分组中目的地MAC地址是虚拟路由器软件组件500的MAC地址。在步骤626中,IP路由器250将该以太网分组传送到以太网络270上。在步骤628中,虚拟路由器500接收该以太网分组(即,经由通过管理程序213中的其对应的NIC驱动器的虚拟桥从NIC 216进行转发)。在步骤630中,虚拟路由器软件组件500从接收到的以太网分组中提取IP分组,并且在步骤632中,检查IP分组的TCP/IP地址端口组合(在该情况下,TCP/IP地址和端口是用于进程2的192.168.1.10:8756),并且针对对应的MAC地址(在该情况下的虚拟MAC地址229)来查阅路由表505。在步骤634中,虚拟路由器软件组件500将IP分组嵌入在使MAC地址229作为其目的地MAC地址的以太网分组中,并且在步骤636中,(通过虚拟桥和NIC 216)将该IP分组重新传送到以太网络270上。
当在步骤636中将以太网分组传送到以太网络270上时,遵循图4的步骤428至436,使得NIC 226在步骤428中接收以太网分组,并且经由管理程序的NIC驱动器中的虚拟桥将以太网分组转发到虚拟NIC 227,该虚拟NIC 227确认目的地MAC地址并且接受以太网分组。在步骤430中,虚拟NIC 227用MAC地址228来替代以太网分组的目的地MAC地址中的MAC地址229,并且在步骤432中,将以太网分组传送到VM 221的客体OS中的NIC驱动器。由于VM 221是VM 211的克隆,所以在客体OS的NIC驱动器接收以太网分组时,能够在步骤434中成功确认以太网分组包含正确的地址信息(即,先前MAC地址228,而不是新的MAC地址229),并且在步骤436中将分组中的数据最终路由到进程2。
图7是图示根据本发明的一个实施例的如何从正执行迁移的进程的复制的VM传送数据的流程图。尽管结合图7描述了方法步骤,但是应当认识到,被配置成以任何顺序来执行方法步骤的任何系统都落入本发明的范围内。在步骤710中,VM 221的客体OS的NIC驱动器从在VM 221上运行的进程2接收IP分组用于传送,并且在步骤712中将该IP分组封装在以虚拟MAC地址228作为源MAC地址的以太网分组中。在步骤714中,NIC驱动器将该以太网分组传送到虚拟NIC 227上,以供传送到以太网络270上。在步骤716中,虚拟NIC 227用虚拟MAC地址229来代替虚拟MAC地址228作为接收到的以太网分组的源MAC地址,并且在步骤718中通过管理程序(包括NIC 226的设备驱动器的虚拟桥)将分组转发到NIC 226,NIC 226在步骤720中将以太网分组传送到以太网络270上。
应当认识到,可能希望在某些情况下“合并”源VM和复制的VM,例如,在复制的VM中的迁移的进程的工作负载已经减少到源VM的主机计算机的硬件资源可以再次适应合并的VM的所有进程的点之后。在一个实施例中,源VM和复制的VM的合并在复制的VM的剩余用户进程已经终止时发生。由源VM和复制的VM的每一个在其各自的链接的克隆镜像(例如图2C的292和294)中生成或以其它方式修改的任何新数据或文件被并回源VM的原始磁盘镜像(例如,图2C的290)中,使得当访问复制的VM的返回用户登录回源VM上的虚拟桌面时,该用户在登出之前将被提供同一所存储的状态。
在此描述的各种实施例可以使用涉及存储在计算机系统中的数据的各种计算机实现的操作。例如,这些操作通常可能要求对物理量的物理操纵,尽管不是必要的,这些量可以采取电或磁信号的形式,其中这些量或这些量的表示能够被存储、传输、组合、比较或以其他方式操纵。此外,这样的操纵经常以术语称为诸如产生、识别、确定或比较。在此描述的形成本发明的一个或多个实施例的一部分的任何操作可以是实用的机器操作。另外,本发明的一个或多个实施例也涉及用于执行这些操作的设备或装置。该装置可以针对特定需要的目的而特定地构建,或者该装置可以是通过存储在计算机中的计算机程序选择性地激活或配置的通用计算机。特定地,各种通用机器可以与根据在此的教导而编写的计算机程序来一起使用,或者可以更方便地构建更为专用的装置来执行所需的操作。
在此描述的各种实施例可以通过其它计算机系统配置来实践,所述其它计算机系统配置包括手持式设备、微处理器系统、基于微处理器的或可编程的消费电子设备、小型计算机、大型计算机等。
本发明的一个或多个实施例可以被实现为包含在一个或多个计算机可读介质中的一个或多个计算机程序或一个或多个计算机程序模块。术语计算机可读介质是指可以存储此后可被输入到计算机系统的数据的任何数据存储设备,计算机可读介质可以基于用于以使得计算机程序能够由计算机来读取的方式包含计算机程序的任何现有或随后开发的技术。计算机可读介质的示例包括硬盘、网络附加存储(NAS)、只读存储器、随机存取存储器(例如,闪速存储器设备)、CD(压缩盘)CD-ROM、CD-R、CD-RW、DVD(数字多功能光盘)、磁带以及其它光和非光数据存储设备。计算机可读介质也可被分布在网络耦合的计算机系统上,使得计算机可读代码以分布式的方式被存储和执行。
尽管为了理解的清晰而较详细地描述了本发明的一个或多个实施例,显然可以在权利要求的范围内进行某些改变和修改。例如,虽然前述实施例关于用户级进程讨论了每个进程的迁移,但是应当认识到,替选实施例可以利用在此公开的技术来迁移其它类型的进程,包括操作系统和内核级进程。类似地,虽然前述实施例已经利用在主机计算机之间的共享存储,但是应当认识到,在替选实施例中可以利用所公开的技术,在替选实施例中,主机计算机不通过跨数据存储库复制虚拟硬盘(或对应的链接的克隆镜像)来共享数据存储库。此外,虽然前述实施例已经利用了虚拟桥来将数据分组从物理NIC转发到虚拟NIC,但是应当认识到,替选实施例可以利用虚拟集线器、交换机或路由器。例如,代替具有与图5和图6的实施例中的虚拟桥进行交互的虚拟路由器,替选实施例可以使虚拟路由器替代虚拟桥。类似地,前述实施例在TCP/IP的场境中讨论了端口号,然而,应当认识到可以利用任何因特网和传输层协议,包括例如UDP和其它类似协议,其提供对主机上的应用相关的网络端点(例如,网络接口等)的标识。因此,将所描述的实施例视作说明而非限制性的,并且权利要求的范围不限制于在此给出的细节,但是可以在权利要求的范围和等价物内进行修改。除非在权利要求中明确规定,在权利要求中元素和/或步骤并不意指操作的任何特定顺序。
另外,虽然所描述的虚拟化方法通常假设虚拟机存在与特定硬件系统一致的接口,本领域的普通技术人员将认识到,所描述的方法可以结合不与任何特定硬件系统直接对应的虚拟化来使用。被实现为托管的实施例、非托管的实施例、或者趋于模糊两者间的区别的实施例的根据各种实施例的虚拟化系统都是被预见的。此外,各种虚拟化操作可全部或部分地以硬件来实现。例如,硬件实现可以使用查找表来修改存储访问请求,以使非磁盘数据安全。
不管虚拟化的程度如何,许多变化、修改、添加和改进都是可能的。因此,虚拟化软件可以包括执行虚拟化功能的主机、控制台或客体操作系统的组件。针对在此描述的组件、操作或结构的多个实例可以被提供为单个实例。最后,在各种组件、操作和数据存储库之间的界线在某种程度上是任意的,并且特定操作在特定的说明性配置的场境中进行说明。功能性的其它分配是被预见的并且可以落入于本发明的范围内。总的来说,在示例配置中呈现为分立的组件的结构和功能性可以被实现为组合的结构或组件。类似地,呈现为单个组件的结构和功能性可以被实现为分立的组件。这些和其它变化、修改、添加和改进可以落入所附权利要求的范围内。
Claims (13)
1.在一种具有在一个或多个主机计算机上被实例化的虚拟机的计算机系统中,一种用于将在第一虚拟机上运行的一个或多个用户级进程卸载到第二虚拟机的方法,其中所述第一虚拟机被配置为在第一主机计算机上运行,并且所述第二虚拟机被配置为在第二主机计算机上运行,所述方法包括:
识别要被卸载的在所述第一虚拟机上运行的一些而非所有进程;
复制所述第一虚拟机以创建所述第二虚拟机;以及
终止被识别用于卸载的在所述第一虚拟机上运行的所述用户级进程,并且终止在所述第二虚拟机上运行的除了被识别用于卸载的所述用户级进程外的所有用户级进程。
2.根据权利要求1所述的方法,其中,要被卸载的所述用户级进程通过检查其资源使用来进行识别。
3.根据权利要求1所述的方法,进一步包括:
基于在数据分组中指定的目的地IP地址和目的地端口将所述数据分组引导至所述第二虚拟机。
4.根据权利要求3所述的方法,其中,所述引导数据分组包括:
读取数据分组中指定的目的地IP地址和目的地端口;
将所述数据分组同与所述第二虚拟机相关联的MAC地址封装在一起;以及
传送所封装的数据分组以由所述第二虚拟机接收。
5.根据权利要求4所述的方法,进一步包括:
在所述第二虚拟机的主机计算机处接收所述数据分组;以及
在将所封装的数据分组发送到所述第二虚拟机的操作系统之前,将所封装的数据分组修改成具有另一个的MAC地址。
6.根据权利要求5所述的方法,其中,所述另一个的MAC地址是与所述第一虚拟机相关联的MAC地址。
7.根据权利要求1所述的方法,进一步包括:
将路由器配置成,将所述第二虚拟机的MAC地址与在所述第二虚拟机上运行的所有进程的IP地址和端口相关联。
8.根据权利要求7所述的方法,进一步包括:
将所述第二虚拟机的虚拟网卡配置成,对接收自以及发送至所述第二虚拟机的操作系统的数据分组的MAC地址进行修改。
9.一种计算机系统,包括:
第一主机计算机,所述第一主机计算机具有在其上运行的多个虚拟机,所述第一主机计算机的所述虚拟机包括第一虚拟机,所述第一虚拟机具有在其上执行第一用户级进程的客体操作系统;
第二主机计算机,所述第二主机计算机具有在其上运行的多个虚拟机,所述第二主机计算机的所述虚拟机包括第二虚拟机,所述第二虚拟机具有在其上执行第二用户级进程的客体操作系统;以及
路由器,所述路由器被配置成基于在数据分组中所指定的目的地IP地址和目的地端口来将所述数据分组引导至所述第一主机计算机上运行的第一虚拟机或所述第二主机计算机上运行的第二虚拟机,
其中,所述第一虚拟机和所述第二虚拟机共享同一IP地址并且具有不同的MAC地址,以及
其中所述计算机系统被配置用于:
识别要被卸载的在所述第一虚拟机上运行的一些而非所有进程;
复制所述第一虚拟机以创建所述第二虚拟机;以及
终止被识别用于卸载的在所述第一虚拟机上运行的所述用户级进程,并且终止在所述第二虚拟机上运行的除了被识别用于卸载的所述用户级进程外的所有用户级进程。
10.根据权利要求9所述的计算机系统,其中,所述路由器包括:路由表,所述路由表将目的地IP地址和目的地端口与所述第一虚拟机和所述第二二虚拟机的MAC地址相关联。
11.根据权利要求9所述的计算机系统,其中,所述路由器包括具有多个条目的路由表,所述条目中的第一条目包括所述第一虚拟机的目的地IP地址、所述第一目的地端口以及所述第一虚拟机的所述MAC地址,并且所述条目中的第二条目包括所述第二虚拟机的目的地IP地址、所述第二目的地端口以及所述第二虚拟机的所述MAC地址,并且其中所述第一虚拟机和所述第二虚拟机的所述目的地IP地址相同。
12.根据权利要求10所述的计算机系统,其中,所述第二虚拟机使用虚拟网卡,所述虚拟网卡被配置成对包含在从所述路由器接收到的数据分组中的MAC地址进行转换。
13.根据权利要求9所述的计算机系统,其中,所述路由器是在所述第一主机计算机上运行的虚拟路由器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/416,415 US9817695B2 (en) | 2009-04-01 | 2009-04-01 | Method and system for migrating processes between virtual machines |
US12/416,415 | 2009-04-01 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101924693A CN101924693A (zh) | 2010-12-22 |
CN101924693B true CN101924693B (zh) | 2014-05-07 |
Family
ID=42827091
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010144050.9A Active CN101924693B (zh) | 2009-04-01 | 2010-03-17 | 用于在虚拟机间迁移进程的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9817695B2 (zh) |
CN (1) | CN101924693B (zh) |
Families Citing this family (175)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5159071B2 (ja) * | 2006-09-01 | 2013-03-06 | キヤノン株式会社 | 通信システム及び通信装置とその制御方法 |
US8340103B2 (en) * | 2007-05-29 | 2012-12-25 | Ca, Inc. | System and method for creating a secure tunnel for communications over a network |
US9070096B2 (en) * | 2009-08-11 | 2015-06-30 | Mckesson Financial Holdings | Appliance and pair device for providing a reliable and redundant enterprise management solution |
US8713139B1 (en) * | 2009-10-29 | 2014-04-29 | Hewlett-Packard Development Company, L.P. | Automatic fixup of network configuration on system image move |
US9274851B2 (en) | 2009-11-25 | 2016-03-01 | Brocade Communications Systems, Inc. | Core-trunking across cores on physically separated processors allocated to a virtual machine based on configuration information including context information for virtual machines |
US8316375B2 (en) * | 2010-01-26 | 2012-11-20 | International Business Machines Corporation | Load-balancing of processes based on inertia |
US8363666B2 (en) * | 2010-02-22 | 2013-01-29 | Cisco Technology, Inc. | Multiple network architecture providing for migration of devices |
US8984621B2 (en) | 2010-02-27 | 2015-03-17 | Novell, Inc. | Techniques for secure access management in virtual environments |
US8503289B2 (en) | 2010-03-19 | 2013-08-06 | Brocade Communications Systems, Inc. | Synchronizing multicast information for linecards |
US8769155B2 (en) | 2010-03-19 | 2014-07-01 | Brocade Communications Systems, Inc. | Techniques for synchronizing application object instances |
US8385356B2 (en) * | 2010-03-31 | 2013-02-26 | International Business Machines Corporation | Data frame forwarding using a multitiered distributed virtual bridge hierarchy |
US8594100B2 (en) | 2010-03-31 | 2013-11-26 | International Business Machines Corporation | Data frame forwarding using a distributed virtual bridge |
US8489763B2 (en) | 2010-04-20 | 2013-07-16 | International Business Machines Corporation | Distributed virtual bridge management |
US8571408B2 (en) | 2010-04-22 | 2013-10-29 | International Business Machines Corporation | Hardware accelerated data frame forwarding |
US8619796B2 (en) | 2010-04-22 | 2013-12-31 | International Business Machines Corporation | Forwarding data frames with a distributed fiber channel forwarder |
US8369296B2 (en) | 2010-04-26 | 2013-02-05 | International Business Machines Corporation | Distributed link aggregation |
US8379642B2 (en) | 2010-04-26 | 2013-02-19 | International Business Machines Corporation | Multicasting using a multitiered distributed virtual bridge hierarchy |
US8644139B2 (en) | 2010-04-26 | 2014-02-04 | International Business Machines Corporation | Priority based flow control within a virtual distributed bridge environment |
US8989187B2 (en) * | 2010-06-04 | 2015-03-24 | Coraid, Inc. | Method and system of scaling a cloud computing network |
CN102959512A (zh) * | 2010-07-02 | 2013-03-06 | 瑞典爱立信有限公司 | 虚拟机拆分方法和系统 |
EP2588955A1 (en) * | 2010-07-02 | 2013-05-08 | Telefonaktiebolaget LM Ericsson (publ) | Virtual machine merging method and system |
US8447909B2 (en) | 2010-07-19 | 2013-05-21 | International Business Machines Corporation | Register access in distributed virtual bridge environment |
US8495418B2 (en) | 2010-07-23 | 2013-07-23 | Brocade Communications Systems, Inc. | Achieving ultra-high availability using a single CPU |
US9104619B2 (en) | 2010-07-23 | 2015-08-11 | Brocade Communications Systems, Inc. | Persisting data across warm boots |
US8909749B2 (en) * | 2010-07-26 | 2014-12-09 | International Business Macines Corporation | Predictive context-based virtual workspace placement |
US8543554B1 (en) | 2010-08-10 | 2013-09-24 | ScalArc Inc. | Method and system for transparent database query caching |
US9032017B1 (en) * | 2010-08-10 | 2015-05-12 | Scalarc Inc | Method and system for transparent read-write query routing when load balancing databases |
US8484242B1 (en) | 2010-08-24 | 2013-07-09 | ScalArc, Inc. | Method and system for transparent database connection pooling and query queuing |
US8763091B1 (en) | 2010-08-24 | 2014-06-24 | ScalArc Inc. | Method and system for user authentication offload in a transparent database load balancer |
US9183046B2 (en) * | 2010-10-27 | 2015-11-10 | Red Hat Israel, Ltd. | Network address retrieval for live migration of a guest system in a virtual machine system |
US8521884B2 (en) * | 2010-12-15 | 2013-08-27 | Industrial Technology Research Institute | Network system and method of address resolution |
US8677355B2 (en) * | 2010-12-17 | 2014-03-18 | Microsoft Corporation | Virtual machine branching and parallel execution |
US20120173757A1 (en) * | 2011-01-05 | 2012-07-05 | International Business Machines Corporation | Routing optimization for virtual machine migration between geographically remote data centers |
US8448171B2 (en) * | 2011-01-07 | 2013-05-21 | International Business Machines Corporation | Communications between virtual machines that have been migrated |
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 |
US9419921B1 (en) | 2011-01-13 | 2016-08-16 | Google Inc. | Network address translation for virtual machines |
US9258271B1 (en) * | 2011-01-13 | 2016-02-09 | Google Inc. | Network address translation for virtual machines |
WO2012158241A1 (en) * | 2011-02-28 | 2012-11-22 | V3 Systems, Inc. | Automated adjustment of cluster policy |
US8832693B2 (en) * | 2011-03-09 | 2014-09-09 | Unisys Corporation | Runtime virtual process creation for load sharing |
US10228959B1 (en) | 2011-06-02 | 2019-03-12 | Google Llc | Virtual network for virtual machine communication and migration |
US8739273B2 (en) | 2011-07-11 | 2014-05-27 | Oracle International Corporation | System and method for supporting subnet management packet (SMP) firewall restrictions in a middleware machine environment |
US8874742B2 (en) * | 2011-07-11 | 2014-10-28 | Oracle International Corporation | System and method for supporting virtual machine migration in a middleware machine environment |
US10042656B2 (en) * | 2011-08-01 | 2018-08-07 | Avocent Corporation | System and method for providing migrateable virtual serial port services |
CN102270159B (zh) * | 2011-08-11 | 2013-02-27 | 浙江大学 | 一种虚拟化环境中的准入控制与负载均衡方法 |
US9274825B2 (en) * | 2011-08-16 | 2016-03-01 | Microsoft Technology Licensing, Llc | Virtualization gateway between virtualized and non-virtualized networks |
EP3605969B1 (en) | 2011-08-17 | 2021-05-26 | Nicira Inc. | Distributed logical l3 routing |
US9143335B2 (en) | 2011-09-16 | 2015-09-22 | Brocade Communications Systems, Inc. | Multicast route cache system |
US8868710B2 (en) * | 2011-11-18 | 2014-10-21 | Amazon Technologies, Inc. | Virtual network interface objects |
CN102523209B (zh) * | 2011-12-06 | 2015-07-08 | 北京航空航天大学 | 安全检测虚拟机的动态调整方法及动态调整装置 |
US8861400B2 (en) | 2012-01-18 | 2014-10-14 | International Business Machines Corporation | Requesting multicast membership information in a distributed switch in response to a miss event |
US8891535B2 (en) | 2012-01-18 | 2014-11-18 | International Business Machines Corporation | Managing a global forwarding table in a distributed switch |
US9135092B2 (en) | 2012-02-02 | 2015-09-15 | International Business Machines Corporation | Multicast message filtering in virtual environments |
US20130232254A1 (en) * | 2012-03-02 | 2013-09-05 | Computenext Inc. | Cloud resource utilization management |
CN102624555A (zh) * | 2012-03-07 | 2012-08-01 | 郑州市景安计算机网络技术有限公司 | linux下自动化管理多个虚拟主机的方法 |
EP2823618A4 (en) * | 2012-03-08 | 2015-11-11 | Hewlett Packard Development Co | Modification of Virtual Machine Communication |
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 |
CN102739645B (zh) * | 2012-04-23 | 2016-03-16 | 杭州华三通信技术有限公司 | 虚拟机安全策略的迁移方法及装置 |
US8964735B2 (en) * | 2012-05-18 | 2015-02-24 | Rackspace Us, Inc. | Translating media access control (MAC) addresses in a network hierarchy |
US9417891B2 (en) * | 2012-06-11 | 2016-08-16 | Vmware, Inc. | Unified storage/VDI provisioning methodology |
US9619297B2 (en) | 2012-06-25 | 2017-04-11 | Microsoft Technology Licensing, Llc | Process migration in data center networks |
CN103227843B (zh) * | 2012-08-31 | 2016-05-04 | 杭州华三通信技术有限公司 | 一种物理链路地址管理方法及装置 |
US10581763B2 (en) | 2012-09-21 | 2020-03-03 | Avago Technologies International Sales Pte. Limited | High availability application messaging layer |
US9967106B2 (en) | 2012-09-24 | 2018-05-08 | Brocade Communications Systems LLC | Role based multicast messaging infrastructure |
US9203690B2 (en) | 2012-09-24 | 2015-12-01 | Brocade Communications Systems, Inc. | Role based multicast messaging infrastructure |
US8989183B2 (en) * | 2012-10-10 | 2015-03-24 | Microsoft Technology Licensing, Llc | Virtual machine multicast/broadcast in virtual network |
CN103729230B (zh) * | 2012-10-11 | 2017-04-12 | 财团法人工业技术研究院 | 虚拟机系统的内存管理方法和计算机系统 |
GB2507779A (en) * | 2012-11-09 | 2014-05-14 | Ibm | Terminating a virtual machine in response to user inactivity in a cloud computing environment |
US9218303B2 (en) * | 2012-12-14 | 2015-12-22 | Dell Products L.P. | Live migration of virtual machines using virtual bridges in a multi-root input-output virtualization blade chassis |
CN103117923B (zh) * | 2013-01-18 | 2016-06-29 | 杭州华三通信技术有限公司 | 一种进程管理方法和设备 |
US9817728B2 (en) | 2013-02-01 | 2017-11-14 | Symbolic Io Corporation | Fast system state cloning |
US9069608B2 (en) * | 2013-03-06 | 2015-06-30 | Vmware, Inc. | Method and system for providing a roaming remote desktop |
US10230794B2 (en) | 2013-03-15 | 2019-03-12 | Oracle International Corporation | System and method for efficient virtualization in lossless interconnection networks |
US9990221B2 (en) | 2013-03-15 | 2018-06-05 | Oracle International Corporation | System and method for providing an infiniband SR-IOV vSwitch architecture for a high performance cloud computing environment |
US9094287B2 (en) * | 2013-06-13 | 2015-07-28 | Cisco Technology, Inc. | System and method for providing a topology path |
US9509615B2 (en) | 2013-07-22 | 2016-11-29 | Vmware, Inc. | Managing link aggregation traffic in a virtual environment |
US9350666B2 (en) | 2013-07-22 | 2016-05-24 | Vmware, Inc. | Managing link aggregation traffic in a virtual environment |
US9686178B2 (en) * | 2013-07-22 | 2017-06-20 | Vmware, Inc. | Configuring link aggregation groups to perform load balancing in a virtual environment |
US9781041B2 (en) * | 2013-07-24 | 2017-10-03 | Dell Products Lp | Systems and methods for native network interface controller (NIC) teaming load balancing |
US10439988B2 (en) | 2013-08-21 | 2019-10-08 | Vmware, Inc. | On premises, remotely managed, host computers for virtual desktops |
CN103473136B (zh) * | 2013-09-02 | 2017-06-13 | 华为技术有限公司 | 一种虚拟机的资源配置方法和通信设备 |
US10291472B2 (en) | 2015-07-29 | 2019-05-14 | AppFormix, Inc. | Assessment of operational states of a computing environment |
US10581687B2 (en) | 2013-09-26 | 2020-03-03 | Appformix Inc. | Real-time cloud-infrastructure policy implementation and management |
CN103501295B (zh) * | 2013-09-27 | 2017-03-08 | 杭州华三通信技术有限公司 | 一种基于虚拟机迁移的远程访问方法和设备 |
CN104580328A (zh) * | 2013-10-28 | 2015-04-29 | 华为技术有限公司 | 虚拟机迁移方法、装置及系统 |
CN103577245B (zh) * | 2013-10-29 | 2017-05-03 | 中国科学院计算技术研究所 | 一种轻量级虚拟机迁移方法 |
US9389970B2 (en) | 2013-11-01 | 2016-07-12 | International Business Machines Corporation | Selected virtual machine replication and virtual machine restart techniques |
US9626180B2 (en) * | 2013-12-16 | 2017-04-18 | International Business Machines Corporation | Live operating system update mechanisms |
CN103678003B (zh) * | 2013-12-18 | 2016-08-31 | 华中科技大学 | 一种实时性增强的虚拟cpu调度方法 |
TWI539776B (zh) | 2014-01-23 | 2016-06-21 | 宏碁股份有限公司 | 資料中心伺服器資源的動態規劃方法 |
US10120729B2 (en) * | 2014-02-14 | 2018-11-06 | Vmware, Inc. | Virtual machine load balancing |
US10057325B2 (en) * | 2014-03-31 | 2018-08-21 | Nuvestack, Inc. | Remote desktop infrastructure |
WO2015156758A1 (en) * | 2014-04-07 | 2015-10-15 | Hitachi, Ltd. | Method and apparatus of cache promotion between server and storage system |
CN104980330B (zh) * | 2014-04-08 | 2018-06-19 | 中国科学院软件研究所 | 一种实时多智能体系统的消息准入方法 |
US9632840B2 (en) * | 2014-04-22 | 2017-04-25 | International Business Machines Corporation | Load balancing with granularly redistributable workloads |
US10216531B2 (en) | 2014-05-12 | 2019-02-26 | Netapp, Inc. | Techniques for virtual machine shifting |
US9841991B2 (en) | 2014-05-12 | 2017-12-12 | Netapp, Inc. | Techniques for virtual machine migration |
US9690608B2 (en) * | 2014-06-12 | 2017-06-27 | Vmware, Inc. | Method and system for managing hosts that run virtual machines within a cluster |
US20160026492A1 (en) * | 2014-07-24 | 2016-01-28 | Samsung Electronics Co., Ltd. | Electronic apparatus for executing virtual machine and method for executing virtual machine |
CN104219093B (zh) * | 2014-08-30 | 2017-09-12 | 杭州华为数字技术有限公司 | 网卡功能配置方法和相关设备 |
CN104239122B (zh) * | 2014-09-04 | 2018-05-11 | 华为技术有限公司 | 一种虚拟机迁移方法和装置 |
US9430223B2 (en) | 2014-09-25 | 2016-08-30 | International Business Machines Corporation | Live operating system update mechanisms |
US9146764B1 (en) | 2014-09-30 | 2015-09-29 | Amazon Technologies, Inc. | Processing event messages for user requests to execute program code |
US9678773B1 (en) | 2014-09-30 | 2017-06-13 | Amazon Technologies, Inc. | Low latency computational capacity provisioning |
US9830193B1 (en) * | 2014-09-30 | 2017-11-28 | Amazon Technologies, Inc. | Automatic management of low latency computational capacity |
US9600312B2 (en) | 2014-09-30 | 2017-03-21 | Amazon Technologies, Inc. | Threading as a service |
US9619349B2 (en) | 2014-10-14 | 2017-04-11 | Brocade Communications Systems, Inc. | Biasing active-standby determination |
US9716631B2 (en) * | 2014-10-24 | 2017-07-25 | International Business Machines Corporation | End host physical connection on a switch port using multiple ethernet frames |
JP6631065B2 (ja) * | 2014-11-25 | 2020-01-15 | 株式会社リコー | 通信路切替装置、通信路切替装置の制御方法、及びプログラム |
US9413626B2 (en) | 2014-12-05 | 2016-08-09 | Amazon Technologies, Inc. | Automatic management of resource sizing |
US9588790B1 (en) | 2015-02-04 | 2017-03-07 | Amazon Technologies, Inc. | Stateful virtual compute system |
US9733967B2 (en) | 2015-02-04 | 2017-08-15 | Amazon Technologies, Inc. | Security protocols for low latency execution of program code |
US9733968B2 (en) * | 2015-03-16 | 2017-08-15 | Oracle International Corporation | Virtual machine (VM) migration from switched fabric based computing system to external systems |
US10061514B2 (en) | 2015-04-15 | 2018-08-28 | Formulus Black Corporation | Method and apparatus for dense hyper IO digital retention |
EP3295644B1 (en) * | 2015-05-08 | 2021-06-30 | Citrix Systems Inc. | Systems and methods for improving security of secure socket layer (ssl) communications |
US20160335109A1 (en) * | 2015-05-14 | 2016-11-17 | Netapp, Inc. | Techniques for data migration |
US10684876B2 (en) | 2015-05-14 | 2020-06-16 | Netapp, Inc. | Migration of virtual machine data using native data paths |
US9992153B2 (en) | 2015-07-15 | 2018-06-05 | Nicira, Inc. | Managing link aggregation traffic in edge nodes |
US10243914B2 (en) | 2015-07-15 | 2019-03-26 | Nicira, Inc. | Managing link aggregation traffic in edge nodes |
CN105204955B (zh) * | 2015-09-30 | 2018-05-29 | 华为技术有限公司 | 一种虚拟机故障修复方法和装置 |
US10628194B2 (en) | 2015-09-30 | 2020-04-21 | Netapp Inc. | Techniques for data migration |
US9910713B2 (en) | 2015-12-21 | 2018-03-06 | Amazon Technologies, Inc. | Code execution request routing |
CN108293009B (zh) * | 2015-12-31 | 2021-05-18 | 华为技术有限公司 | 一种软件定义数据中心及其中的服务集群的调度方法 |
CN108293001B (zh) * | 2015-12-31 | 2020-10-23 | 华为技术有限公司 | 一种软件定义数据中心及其中的服务集群的部署方法 |
WO2017158407A1 (en) * | 2016-03-18 | 2017-09-21 | Telefonaktiebolaget Lm Ericsson (Publ) | Using nano-services to secure multi-tenant networking in datacenters |
CN105868011A (zh) * | 2016-03-29 | 2016-08-17 | 上海斐讯数据通信技术有限公司 | 一种提高软件系统运行效率的方法及装置 |
US11132213B1 (en) | 2016-03-30 | 2021-09-28 | Amazon Technologies, Inc. | Dependency-based process of pre-existing data sets at an on demand code execution environment |
CN107305498B (zh) * | 2016-04-25 | 2020-12-01 | 深信服科技股份有限公司 | 应用安装方法、控制器及应用安装系统 |
US9817592B1 (en) | 2016-04-27 | 2017-11-14 | Netapp, Inc. | Using an intermediate virtual disk format for virtual disk conversion |
US10581793B1 (en) * | 2016-04-29 | 2020-03-03 | Arista Networks, Inc. | Address resolution in virtual extensible networks |
US10057153B1 (en) * | 2016-06-02 | 2018-08-21 | Cisco Technology, Inc. | Detecting slow virtual devices |
CN106209423B (zh) * | 2016-06-23 | 2019-09-06 | 新华三技术有限公司 | 虚拟桌面分配方法及装置 |
US10102040B2 (en) | 2016-06-29 | 2018-10-16 | Amazon Technologies, Inc | Adjusting variable limit on concurrent code executions |
US10193968B2 (en) * | 2016-10-14 | 2019-01-29 | Google Llc | Virtual router with dynamic flow offload capability |
US10320895B2 (en) * | 2016-11-15 | 2019-06-11 | Microsoft Technology Licensing, Llc | Live migration of load balanced virtual machines via traffic bypass |
CN108512779B (zh) * | 2017-02-24 | 2020-11-27 | 华为技术有限公司 | 控制信息传递方法、服务器和系统 |
US10257152B2 (en) * | 2017-03-10 | 2019-04-09 | Nicira, Inc. | Suppressing ARP broadcasting in a hypervisor |
US10868742B2 (en) | 2017-03-29 | 2020-12-15 | Juniper Networks, Inc. | Multi-cluster dashboard for distributed virtualization infrastructure element monitoring and policy control |
US11068314B2 (en) * | 2017-03-29 | 2021-07-20 | Juniper Networks, Inc. | Micro-level monitoring, visibility and control of shared resources internal to a processor of a host machine for a virtual environment |
US10491520B2 (en) * | 2017-04-06 | 2019-11-26 | Ca, Inc. | Container-based software appliance |
US11323327B1 (en) | 2017-04-19 | 2022-05-03 | Juniper Networks, Inc. | Virtualization infrastructure element monitoring and policy control in a cloud environment using profiles |
US10552080B2 (en) * | 2017-07-28 | 2020-02-04 | Red Hat, Inc. | Multi-target post-copy guest migration |
US10541925B2 (en) * | 2017-08-31 | 2020-01-21 | Microsoft Technology Licensing, Llc | Non-DSR distributed load balancer with virtualized VIPS and source proxy on load balanced connection |
US10572186B2 (en) | 2017-12-18 | 2020-02-25 | Formulus Black Corporation | Random access memory (RAM)-based computer systems, devices, and methods |
US11329955B2 (en) * | 2018-01-24 | 2022-05-10 | Vmware, Inc. | Remote session based micro-segmentation |
US10853115B2 (en) | 2018-06-25 | 2020-12-01 | Amazon Technologies, Inc. | Execution of auxiliary functions in an on-demand network code execution system |
US11146569B1 (en) | 2018-06-28 | 2021-10-12 | Amazon Technologies, Inc. | Escalation-resistant secure network services using request-scoped authentication information |
US10949237B2 (en) | 2018-06-29 | 2021-03-16 | Amazon Technologies, Inc. | Operating system customization in an on-demand network code execution system |
US20190045000A1 (en) * | 2018-06-29 | 2019-02-07 | Intel Corporation | Technologies for load-aware traffic steering |
US11099870B1 (en) | 2018-07-25 | 2021-08-24 | Amazon Technologies, Inc. | Reducing execution times in an on-demand network code execution system using saved machine states |
US11012408B2 (en) * | 2018-08-22 | 2021-05-18 | International Business Machines Corporation | Configuring virtual machine instances using one-to-one mappings |
US11243953B2 (en) | 2018-09-27 | 2022-02-08 | Amazon Technologies, Inc. | Mapreduce implementation in an on-demand network code execution system and stream data processing system |
US11099917B2 (en) | 2018-09-27 | 2021-08-24 | Amazon Technologies, Inc. | Efficient state maintenance for execution environments in an on-demand code execution system |
US11943093B1 (en) | 2018-11-20 | 2024-03-26 | Amazon Technologies, Inc. | Network connection recovery after virtual machine transition in an on-demand network code execution system |
US10725853B2 (en) | 2019-01-02 | 2020-07-28 | Formulus Black Corporation | Systems and methods for memory failure prevention, management, and mitigation |
US11010188B1 (en) | 2019-02-05 | 2021-05-18 | Amazon Technologies, Inc. | Simulated data object storage using on-demand computation of data objects |
US11861386B1 (en) | 2019-03-22 | 2024-01-02 | Amazon Technologies, Inc. | Application gateways in an on-demand network code execution system |
US11119809B1 (en) | 2019-06-20 | 2021-09-14 | Amazon Technologies, Inc. | Virtualization-based transaction handling in an on-demand network code execution system |
US11115404B2 (en) | 2019-06-28 | 2021-09-07 | Amazon Technologies, Inc. | Facilitating service connections in serverless code executions |
US11159528B2 (en) | 2019-06-28 | 2021-10-26 | Amazon Technologies, Inc. | Authentication to network-services using hosted authentication information |
US11190609B2 (en) | 2019-06-28 | 2021-11-30 | Amazon Technologies, Inc. | Connection pooling for scalable network services |
CN111736945B (zh) * | 2019-08-07 | 2024-05-17 | 北京京东尚科信息技术有限公司 | 基于智能网卡的虚拟机热迁移方法、装置、设备及介质 |
CN110740093B (zh) * | 2019-10-24 | 2020-09-15 | 北京大学 | 一种基于虚拟主机的数据转发装置 |
JP7234905B2 (ja) * | 2019-11-20 | 2023-03-08 | 横河電機株式会社 | 情報処理装置及びアドレス重複管理方法 |
US11119826B2 (en) | 2019-11-27 | 2021-09-14 | Amazon Technologies, Inc. | Serverless call distribution to implement spillover while avoiding cold starts |
US11714682B1 (en) | 2020-03-03 | 2023-08-01 | Amazon Technologies, Inc. | Reclaiming computing resources in an on-demand code execution system |
US11188391B1 (en) | 2020-03-11 | 2021-11-30 | Amazon Technologies, Inc. | Allocating resources to on-demand code executions under scarcity conditions |
US11677583B2 (en) * | 2020-04-06 | 2023-06-13 | Cisco Technology, Inc. | Dynamic cellular connectivity between the hypervisors and virtual machines |
US12014197B2 (en) * | 2020-07-21 | 2024-06-18 | VMware LLC | Offloading packet processing programs from virtual machines to a hypervisor and efficiently executing the offloaded packet processing programs |
US11550713B1 (en) | 2020-11-25 | 2023-01-10 | Amazon Technologies, Inc. | Garbage collection in distributed systems using life cycled storage roots |
US11593270B1 (en) | 2020-11-25 | 2023-02-28 | Amazon Technologies, Inc. | Fast distributed caching using erasure coded object parts |
US11388210B1 (en) | 2021-06-30 | 2022-07-12 | Amazon Technologies, Inc. | Streaming analytics using a serverless compute system |
CN113407355A (zh) * | 2021-08-19 | 2021-09-17 | 苏州浪潮智能科技有限公司 | 一种集群中进程协作的方法、系统、设备和存储介质 |
US11968280B1 (en) | 2021-11-24 | 2024-04-23 | Amazon Technologies, Inc. | Controlling ingestion of streaming data to serverless function executions |
US12015603B2 (en) | 2021-12-10 | 2024-06-18 | Amazon Technologies, Inc. | Multi-tenant mode for serverless code execution |
US11586467B1 (en) * | 2022-03-30 | 2023-02-21 | Intuit Inc. | Method and system for dynamically and reliably scaling data processing pipelines in a computing environment |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1696902A (zh) * | 2004-05-11 | 2005-11-16 | 国际商业机器公司 | 迁移虚拟机的系统、方法和程序 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6167430A (en) * | 1998-05-12 | 2000-12-26 | Unisys Corporation | Multicomputer with distributed directory and operating system |
CA2333495A1 (en) * | 2000-01-31 | 2001-07-31 | Telecommunications Research Laboratory | Internet protocol-based computer network service |
US6985956B2 (en) * | 2000-11-02 | 2006-01-10 | Sun Microsystems, Inc. | Switching system |
US7065549B2 (en) * | 2002-03-29 | 2006-06-20 | Illinois Institute Of Technology | Communication and process migration protocols for distributed heterogeneous computing |
US7454489B2 (en) * | 2003-07-01 | 2008-11-18 | International Business Machines Corporation | System and method for accessing clusters of servers from the internet network |
US20050160424A1 (en) * | 2004-01-21 | 2005-07-21 | International Business Machines Corporation | Method and system for grid-enabled virtual machines with distributed management of applications |
US7730486B2 (en) * | 2005-02-28 | 2010-06-01 | Hewlett-Packard Development Company, L.P. | System and method for migrating virtual machines on cluster systems |
US7607129B2 (en) * | 2005-04-07 | 2009-10-20 | International Business Machines Corporation | Method and apparatus for using virtual machine technology for managing parallel communicating applications |
US20070079307A1 (en) * | 2005-09-30 | 2007-04-05 | Puneet Dhawan | Virtual machine based network carriers |
US7484029B2 (en) * | 2006-02-09 | 2009-01-27 | International Business Machines Corporation | Method, apparatus, and computer usable program code for migrating virtual adapters from source physical adapters to destination physical adapters |
US8370530B2 (en) * | 2007-12-10 | 2013-02-05 | Oracle America, Inc. | Method and system for controlling network traffic in a blade chassis |
US9086901B2 (en) * | 2008-03-07 | 2015-07-21 | Sap Se | Migration of applications from physical machines to virtual machines |
US8191072B2 (en) * | 2008-12-22 | 2012-05-29 | International Business Machines Corporation | System and method for shifting workloads across platform in a hybrid system |
-
2009
- 2009-04-01 US US12/416,415 patent/US9817695B2/en active Active
-
2010
- 2010-03-17 CN CN201010144050.9A patent/CN101924693B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1696902A (zh) * | 2004-05-11 | 2005-11-16 | 国际商业机器公司 | 迁移虚拟机的系统、方法和程序 |
Also Published As
Publication number | Publication date |
---|---|
US9817695B2 (en) | 2017-11-14 |
CN101924693A (zh) | 2010-12-22 |
US20100257269A1 (en) | 2010-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101924693B (zh) | 用于在虚拟机间迁移进程的方法和系统 | |
US10700979B2 (en) | Load balancing for a virtual networking system | |
US12081393B2 (en) | Virtual smart network interface card for edge device | |
US10541836B2 (en) | Virtual gateways and implicit routing in distributed overlay virtual environments | |
US9749145B2 (en) | Interoperability for distributed overlay virtual environment | |
US10887276B1 (en) | DNS-based endpoint discovery of resources in cloud edge locations embedded in telecommunications networks | |
US9628290B2 (en) | Traffic migration acceleration for overlay virtual environments | |
US11095534B1 (en) | API-based endpoint discovery of resources in cloud edge locations embedded in telecommunications networks | |
US20190272205A1 (en) | Container deployment method, communication method between services, and related apparatus | |
US9602335B2 (en) | Independent network interfaces for virtual network environments | |
KR101912073B1 (ko) | 가상화된 네트워크와 비-가상화된 네트워크 간 가상화 게이트웨이 | |
US11095716B2 (en) | Data replication for a virtual networking system | |
US9910687B2 (en) | Data flow affinity for heterogenous virtual machines | |
CN114338606B (zh) | 一种公有云的网络配置方法及相关设备 | |
US11743325B1 (en) | Centralized load balancing of resources in cloud edge locations embedded in telecommunications networks | |
US10931581B2 (en) | MAC learning in a multiple virtual switch environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: California, USA Patentee after: Weirui LLC Country or region after: U.S.A. Address before: California, USA Patentee before: VMWARE, Inc. Country or region before: U.S.A. |