CN108351802B - 计算机数据处理系统和用于虚拟机通信的基于通信流量的优化的方法 - Google Patents

计算机数据处理系统和用于虚拟机通信的基于通信流量的优化的方法 Download PDF

Info

Publication number
CN108351802B
CN108351802B CN201580084569.3A CN201580084569A CN108351802B CN 108351802 B CN108351802 B CN 108351802B CN 201580084569 A CN201580084569 A CN 201580084569A CN 108351802 B CN108351802 B CN 108351802B
Authority
CN
China
Prior art keywords
communication
local
data processing
module
processing system
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
CN201580084569.3A
Other languages
English (en)
Other versions
CN108351802A (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
Publication of CN108351802A publication Critical patent/CN108351802A/zh
Application granted granted Critical
Publication of CN108351802B publication Critical patent/CN108351802B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers

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)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

提供一种用于至少部分地虚拟化计算硬件且用于运行本地虚拟机的计算机数据处理系统,其中所述系统包括:向本地虚拟机提供通信模块的构件,且其中所述本地虚拟机用于使用所述通信模块进行网络通信;均衡器模块,用于分析所述本地虚拟机与通信合作伙伴之间的网络通信,所述均衡器模块用于在所述通信合作伙伴为所述计算机数据处理系统的第二本地虚拟机且所述通信的网络通信流量达到第一阈值的情况下实现共享内存通信。

Description

计算机数据处理系统和用于虚拟机通信的基于通信流量的优 化的方法
技术领域
本发明涉及虚拟化技术和网络通信领域,尤其涉及包括虚拟机的计算机数据处理系统和用于操作计算机数据处理系统的方法。具体地说,所述计算机数据处理系统提供均衡器模块以分析网络通信和/或起始虚拟机的迁移和/或实现虚拟机之间的共享内存通信。
实现虚拟机之间的共享内存通信可独立于且与迁移虚拟机分开实施。然而,优选地两种技术彼此组合。
背景技术
虚拟化技术为计算机科学和信息技术领域中的高速发展领域。一般来说,虚拟化提供抽象层以用于对一组资源执行计算操作。举例来说,虚拟化可将计算操作从与计算硬件的直接交互解耦。因此,提供对基础硬件资源的更为抽象且统一的存取且可施加用以有效地使用和共享硬件资源的机制。在虚拟化技术的上下文中,虚拟机(VM)可被视为使用由上面运行虚拟机的主机系统提供的资源对物理计算机系统的模拟。主机系统提供实际、非虚拟化(硬件)资源。当然,主机系统可为分布式计算系统且可通过抽象层提供对主机系统的资源的存取。
提供虚拟机监控器(也被称为“虚拟机监视器”),可以软件、固件和/或硬件实施的系统以在主机系统上产生和运行VM。因此,上面虚拟机监控器正运行一或多个VM的计算机数据处理系统可被称为VM主机。
VM主机上运行的操作系统(OS)将一般系统和基础架构管理提供到VM且通常被称作“主机OS”。每个VM也可被称作主机系统上的“访客”。
迁移通常在几乎不破坏提供服务的情况下描述运行VM从一个VM主机移动到另一个VM主机的进程。这有时也被称作“动态迁移”。
目前,已知虚拟化概念的若干实施方案,在下文中描述其中的一些:
a)泛虚拟化提供类似于但不相同于计算机系统的实际硬件的软件接口。因此必需适配VM代码(例如,VM中运行的OS的代码)以能够使用。一方面,有益效果是:关于适配,VM代码变得更为简化,由于其不再基于解译执行逻辑。因此,泛虚拟化具有非常好的性能。
b)硬件辅助虚拟化为平台虚拟化方法。平台虚拟化是将计算机虚拟化为完整硬件平台,其组件或功能性的某些逻辑抽象化需要运行各个OS。硬件辅助虚拟化也被称作经加速虚拟化、硬件虚拟机(hardware virtual machine,HVM)或本地虚拟化。硬件辅助虚拟化使得能够模拟完整硬件环境或VM,在其中可完全单独地执行未经修改访客OS。
硬件辅助虚拟化使用硬件能力,主要是主机处理器,以及例如由输入/输出存储器管理单元(Input/Output Memory Management Unit,IOMMU,也被称作“AMD-Vi”或“IntelVT-d”)提供的外围设备虚拟化或单根I/O虚拟化(Single Root I/O Virtualization,SR-IOV,也被称作“Intel VT-c”或“PCI-SIG单根I/O虚拟化”)的帮助。现在更详细地解释这些术语:
-IOMMU允许访客VM通过直接内存访问(direct memory access,DMA)和中断再映射而直接使用外围设备,例如以太网卡、经加速图形卡、和硬盘驱动器控制器。此特征也可被称作外围组件互连(Peripheral Component Interconnect,PCI)穿通。
-SR-IOV基于PCI Express(PCIe)本地硬件而提供一组一般输入/输出虚拟化方法。在支持SR-IOV,例如VM主机的网络接口可直接由访客VM存取的情况下,避免涉及虚拟机监控器且产生高总体性能。
尽管硬件辅助虚拟化是最重要技术中的一种,但其存在若干问题且这些问题需要解决。
所提出解决方案优选地寻址基于主机OS的虚拟机监控器平台,但不限于此。其也可施加到其它种类的虚拟机监控器平台。
上述虚拟化平台通常可自主地工作,但还应用于将基础架构管理提供到虚拟化平台的框架中,具体地说应用于了解资源的自动化供应的大规模环境下。实例是CloudStack(由Apache软件基金组织)、Eucalyptus(由Eucalyptus系统有限公司开发)、OpenStack(起初由Rackspace有限公司和NASA开发)和vCloud引向器(由VMWARE有限公司)。
图1展示根据现有技术的基于主机OS的平台的示意图。如所示的示范性基于主机OS的平台通常包括以下组件(下文详细描述所述组件):
-VM1、VM2:VM 1和2
-PVF:泛虚拟前端网络设备
-PVB:泛虚拟后端网络设备
-VF:虚拟功能设备,尤其支持SR-IOV
-NIC PF:网络接口控制器(物理功能,尤其支持SR-IOV)
-网桥/OVS:软件包交换机制(例如,标准网桥或OpenVSwithch(OVS))
如图1中所示的基于主机OS的平台包括运行两个VM-VM1和VM2的VM主机和包含虚拟机监控器和桥接/交换功能性的主机OS。虚拟机监控器存在于控制VM的执行且提供例如软件包交换和桥接机制的联网能力的主机OS上。为了促进运行于相同VM主机上的VM之间以及与外部远程通信合作伙伴之间的网络通信,每个VM配备有两个种类的虚拟接口。泛虚拟前端网络设备(PVF)和尤其支持SR-IOV的虚拟功能设备(VF)。网桥/OVS将对应联网对应部分提供到每个VM,即泛虚拟后端网络设备(PVB)和网络接口控制器(支持SR-IOV的物理功能)。将VM的PVF连接到位于网桥/OVS中的对应PVB,而将每个VM的VF连接到位于网桥/OVS中的一个NIC PF。
在VM和外部通信合作伙伴当中的网络通信可例如执行附接到每个VM的虚拟接口。泛虚拟设备(PVF、PVB)在位于相同VM主机上的本地VM之间供应极快通信。
实施支持SR-IOV的虚拟功能设备的硬件辅助方法对于去话通信极为高效,由于数据处理和接口管理可源出到物理网络控制器。同时,归因于由所述架构引入的额外开销信息和所涉及联网堆栈的速度限制,这种解决方案具有关于位于相同VM主机上的VM之间的通信的大量性能缺陷(网络流量必须传递通过物理联网硬件和PCIe总线拓扑以到达另一VM)。此外,不支持VM的动态迁移。
从现有技术,已知若干方法和发展:
Edwin Zhai、Gregory D.Cummings和Yaozu Dong在2008年的加拿大安大略省渥太华的Linux研讨会(OLS)的会议记录中的“用于Linux VM的穿通设备的动态迁移(LiveMigration with Pass-through Device for Linux VM)”提议通过使用总共两个附接虚拟网络设备来实现具有支持SR-IOV的一个附接虚拟功能设备的KVM上的动态迁移的解决方案。鉴于图2描述所述方法,图2展示包含两个虚拟机VM1和VM2和作为虚拟机监控器运行的KVM/QEMU的VM主机。“搭接驱动器”用于活接单个网络设备中的两个网络设备(泛虚拟前端网络设备(PVF)和支持SR-IOV的虚拟功能设备(VF))。这通过在所谓的有效备份模式下的标准Linux主机OS搭接机制进行。
经组合网络设备在图2中被称作“搭接备份”。虚拟机监控器包括桥接和切换机制(网桥/OVS),包含对应于运行于VM主机上的VM的网络设备和用以促进与远程通信合作伙伴的网络通信的构件。展示两个泛虚拟后端网络设备(PVB),其中的每一个对应于每个虚拟机VM1、VM2的一个PVF。一个网络接口控制器(NIC PF)(实现支持SR-IOV的物理功能)与每个虚拟机VM1、VM2上的虚拟功能设备(VF)连接。在常规操作模式下,借助于支持SR-IOV的虚拟功能设备通过“搭接备份”设备将数据包从VM内部发送到VM主机外部的远程通信合作伙伴。
在进行动态迁移之前,支持SR-IOV的虚拟功能设备脱离VM且搭接机制在迁移期间将流量自动地转发到备用接口(泛虚拟网络设备)。由于现在使用泛虚拟化设备和实施软件的桥接和切换机制,因此使用备份设备涉及高CPU利用率。在动态迁移之后,再次将SR-IOV设备附接到经迁移VM。接着通过支持SR-IOV的虚拟功能设备再次进行VM与远程通信合作伙伴之间的网络流量。然而,支持SR-IOV的虚拟功能设备的拆卸和附接操作既不是自动化的也不是高效进行的。
US 8151265 B2(和类似地US 8464259 B2、US 7945436 B2、US 20080276258 A1)公开用于通过使用抽象仿真层实现具有支持SR-IOV的附接虚拟功能设备的VM的动态迁移以在动态迁移进程期间在仿真网络设备与虚拟功能设备之间切换的方法。如果用户想要执行动态迁移,那么系统自动地将连接切换到仿真层。然而,抽象层以交换网络流量的方式引入额外开销信息。此外,网络设备仿真是可供用于虚拟联网的最慢选项。
US 8533713 B2(和类似地US 8146082 B2)提议通过使用抽象层实现具有支持SR-IOV的附接虚拟功能设备的VM上的动态迁移以使得能够保存和恢复网络设备状态的方法。如果用户想要执行动态迁移进程,那么系统自动地保存网络设备的状态且将其传送到远程VM。当VM恢复对目标主机执行时,恢复网络设备状态。所提议方法处于硬件级别。由于需要恢复一些硬件寄存器,因此保存与恢复状态之间存在相当大的服务停工时间。另外,归因于方法的复杂性,仅硬件供应商可实施所述解决方案,由于可用资料不含关于用于恢复序列的内部寄存器的所有信息。由于仅可在只读模式下存取一些寄存器,因此无法仅通过将值存储在相关寄存器中而恢复一些状态,这涉及大量付出以实施所述解决方案。
US 20130077501 A1提议通过公开可用于业务流在拆卸联网接口中的一个的状况下的高效再均衡的传输级别切换机制而间接促进具有支持SR-IOV的附接虚拟功能设备的VM的动态迁移的解决方案。数据包通过所有可用网络接口发送且在端点处经重构。如果用户想要执行动态迁移进程且支持SR-IOV的虚拟功能设备待拆卸,那么所述系统将经由其它可用接口自动地重新引导流量。此所提议解决方案的缺陷是并非全部传输级别协议均支持经扩展属性和用于存储必要信息的经扩展选项字段以经由多个接口传输网络通信。第二缺陷是使所描述过程自动化的缺乏。此外,OS系统代码必须经修改以实现所提议功能性。
提出用以改进VM之间的通信的解决方案。具体来说,提供根据独立权利要求的数据处理系统和用于操作数据处理系统的方法。其它方面和实施例隶属于从属权利要求。
发明内容
根据第一方面,本发明提供用于至少部分地虚拟化计算硬件且用于运行本地虚拟机的计算机数据处理系统,其中所述系统包括向本地虚拟机提供通信模块的构件且其中所述本地虚拟机用于使用所述通信模块进行网络通信;均衡器模块,用于分析所述本地虚拟机与通信合作伙伴之间的网络通信,所述均衡器模块用于在所述通信合作伙伴为所述计算机数据处理系统的第二本地虚拟机且通信的网络通信流量达到第一阈值的情况下实现共享内存通信。
根据第一方面的第一实施方案,所述均衡器模块可以用于在所述通信合作伙伴为本地虚拟机或远程虚拟机且通信的网络通信流量达到第二阈值的情况下起始本地虚拟机和/或通信合作伙伴的迁移。
根据第一方面的第二实施方案,所述通信模块可包括第一通信接口和第二通信接口,其中所述均衡器模块可以用于在所述通信合作伙伴为第二本地虚拟机的情况下通过第一通信接口实现通信和/或在所述通信合作伙伴为远程虚拟机的情况下通过第二通信接口实现通信。
根据第一方面的第三实施方案,所述第一通信接口可为泛虚拟化通信设备,其中所述第二通信接口可为虚拟功能设备。
根据第一方面的第四实施方案,所述计算机数据处理系统可包括虚拟机监控器或主机OS,其中所述虚拟机监控器或主机OS可包括用于网络通信桥接或网络通信切换的机制,其中所述网络通信桥接或网络通信切换机制可包括用于第一通信接口的后端接口,且其中所述后端接口可为泛虚拟后端设备。
根据第一方面的第五实施方案,所述网络通信桥接或网络通信切换机制可以用于在功能上联合经由第二通信接口传输的数据操作网络接口控制器驱动器,且其中所述网络接口控制器驱动器可为支持SR-IOV的物理功能。
根据第一方面的第六实施方案,所述网络接口控制器驱动器可以用于实现虚拟机与计算机数据处理系统外部的通信合作伙伴的通信。
根据第一方面的第七实施方案,所述计算机数据处理系统可包括用于监控计算机数据处理系统的监控模块且可包括测量CPU利用率的构件;测量内存空间利用率的构件;测量网络利用率的构件;测量本地虚拟机的资源利用率的构件;存取状态内存数据库、从状态内存数据库读取和/或写入到状态内存数据库的构件。
根据第一方面的第八实施方案,所述监控模块可以用于检测计算机数据处理系统的状态和计算机数据处理系统的本地资源的配置变化且记录计算机数据处理系统的状态和状态内存数据库中的配置变化。
根据第一方面的第九实施方案,所述计算机数据处理系统可包括用于通过查询状态内存数据库而获得关于配置变化的信息的控制模块,其中所述控制模块可以用于基于从状态内存数据库获得的所述信息重配置本地虚拟机、通信模块、第一和/或第二通信接口中的至少一个。
根据第一方面的第十实施方案,所述计算机数据处理系统可包括或在功能上可连接到内存模块,其中所述控制模块可以用于针对每个本地虚拟机分配由所述内存模块提供的共享内存空间的一部分,且其中每个本地虚拟机可将数据存储到所分配共享内存空间和/或从所分配共享内存空间读取数据以发送数据/从另一本地虚拟机接收数据。所述控制模块可以用于基于来自均衡器模块的指令执行共享内存空间的分配或取消分配以在本地虚拟机与第二本地虚拟机之间建立共享内存连接从而实现共享内存通信。
根据第一方面的第十一实施方案,所述均衡器模块可以用于通过查询状态内存数据库和/或网络通信分析系统状态,以确定是否需要执行网络通信的均衡动作或优化,且将分析结果存储在状态内存数据库中。
根据第一方面的第十二实施方案,所述均衡器模块可以用于从其它远程均衡器模块收集远程虚拟机的状态。所述均衡器模块可以用于使所述状态内存数据库与其它远程均衡器模块的状态内存数据库同步。
根据第一方面的十三实施方案,所述均衡器模块可以用于将相应重配置信息提供到控制模块和/或可以用于决定是否应将本地和/或远程虚拟机迁移到计算机数据处理系统或另一计算机数据处理系统且通过与其它远程均衡器模块通信而实现迁移。
根据第一方面的第十四实施方案,所述均衡器模块可以用于基于存储于所述状态中的信息决定是否迁移本地或远程虚拟机。所述均衡器模块可以用于授予控制模块权利以执行迁移,且其中所述控制模块执行所述迁移。
根据第二方面,本发明提供用于操作用于至少部分地虚拟化计算硬件的计算机数据处理系统的方法,所述计算机数据处理系统用于运行本地虚拟机,其中所述系统向本地虚拟机提供通信模块且其中所述本地虚拟机使用所述通信模块进行网络通信,其中均衡器模块分析所述本地虚拟机与通信合作伙伴之间的网络通信,所述均衡器模块在所述通信合作伙伴为第二本地虚拟机且通信的网络通信流量达到第一阈值的情况下实现共享内存通信。
根据第二方面的所述用于操作用于至少部分地虚拟化计算硬件的计算机数据处理系统的方法包括
向计算机数据处理系统上运行的本地虚拟机提供通信模块,其中所述本地虚拟机使用所述通信模块进行网络通信,
通过均衡器模块分析本地虚拟机与通信合作伙伴之间的网络通信,以及
在所述通信合作伙伴为第二本地虚拟机且通信的网络通信流量达到第一阈值的情况下实现共享内存通信。
根据第二方面的第一实施方案,通过所述均衡器模块,可以在所述通信合作伙伴为本地虚拟机或远程虚拟机且通信的网络通信流量达到第二阈值的情况下起始本地虚拟机和/或通信合作伙伴的迁移。
根据第二方面的第二实施方案,所述通信模块可包括第一通信接口和第二通信接口,且所述方法包括通过所述均衡器模块在所述通信合作伙伴为第二本地虚拟机的情况下通过第一通信接口实现通信和/或在所述通信合作伙伴为远程虚拟机的情况下通过第二通信接口实现通信的步骤。所述第一通信接口可为泛虚拟化通信设备,其中所述第二通信接口可为虚拟功能设备。
所述计算机数据处理系统可包括虚拟机监控器或主机OS,其中所述虚拟机监控器或主机OS可包括用于网络通信桥接或网络通信切换的机制,其中所述网络通信桥接或网络通信切换机制可包括用于第一通信接口的后端接口,且其中所述后端接口可为泛虚拟后端设备。
根据第二方面的第三实施方案,其中所述方法进一步包括通过网络通信桥接或网络通信切换机制在功能上联合经由第二通信接口传输的数据操作网络接口控制器驱动器,且其中所述网络接口控制器驱动器可为支持SR-IOV的物理功能。
根据第二方面的第四实施方案,进一步包括在网络接口控制器驱动器处实现虚拟机与计算机数据处理系统外部的通信合作伙伴的通信。
根据第二方面的第五实施方案,所述方法可进一步包括通过监控模块监控计算机数据处理系统;测量CPU利用率、内存空间利用率、网络利用率、本地虚拟机的资源利用率;存取状态内存数据库、从状态内存数据库读取和/或写入到状态内存数据库。
根据第二方面的第六实施方案,所述方法进一步包括通过监控模块检测计算机数据处理系统的状态和计算机数据处理系统的本地资源的配置变化;且记录计算机数据处理系统的状态和状态内存数据库中的配置变化。
根据第二方面的第七实施方案,方法可包括通过查询状态内存数据库由控制模块获得关于配置变化的信息;基于从状态内存数据库获得的所述信息由所述控制模块重新配置本地虚拟机、通信模块、第一和/或第二通信接口中的至少一个。
根据第二方面的第八实施方案,方法包括针对每个本地虚拟机由控制模块分配由内存模块提供的共享内存空间的一部分,且其中每个本地虚拟机可将数据存储到所分配共享内存空间和/或从所分配共享内存空间读取数据以发送数据/从另一本地虚拟机接收数据,其中内存模块包括在计算机数据处理系统中或在功能上连接到计算机数据处理系统。所述方法进一步包括基于来自均衡器模块的指令通过所述控制模块对共享内存空间进行分配或取消分配以在本地虚拟机与第二本地虚拟机之间建立共享内存连接从而实现共享内存通信。
根据第二方面的第九实施方案,所述方法包括通过查询状态内存数据库和/或网络通信由均衡器模块分析系统状态,以确定是否需要执行网络通信的均衡动作或优化,且将分析结果存储在状态内存数据库中。
根据第二方面的第十实施方案,所述方法进一步包括通过均衡器模块从其它远程均衡器模块收集远程虚拟机的状态;以及通过均衡器模块使所述状态内存数据库与其它远程均衡器模块的状态内存数据库同步。
根据第二方面的第十一实施方案,所述方法进一步包括通过均衡器模块将相应重配置信息提供到控制模块和/或决定是否应将本地和/或远程虚拟机迁移到计算机数据处理系统或另一计算机数据处理系统且通过与其它远程均衡器模块通信而决定实现迁移。
根据第二方面的第十二实施方案,所述方法进一步包括基于存储于所述状态中的信息通过均衡器模块决定是否迁移本地或远程虚拟机;且通过均衡器模块授予控制模块权利以执行所述迁移;且通过控制模块执行所述迁移。
根据第三方面,本发明提供用于至少部分地虚拟化计算硬件且用于运行本地虚拟机的计算机数据处理系统,其中所述系统包括向本地虚拟机提供通信模块的构件且其中所述本地虚拟机用于使用所述通信模块进行网络通信;均衡器模块,用于分析所述本地虚拟机与通信合作伙伴之间的网络通信,所述均衡器模块用于在所述通信合作伙伴为本地虚拟机或远程虚拟机且通信的网络通信流量达到第二阈值的情况下起始本地虚拟机和/或通信合作伙伴的迁移。
根据第四方面,本发明提供用于操作用于至少部分地虚拟化计算硬件的计算机数据处理系统的方法,所述计算机数据处理系统用于运行本地虚拟机,其中所述方法包括向本地虚拟机提供通信模块,其中所述本地虚拟机使用所述通信模块进行网络通信;通过均衡器模块分析本地虚拟机与通信合作伙伴之间的网络通信;在所述通信合作伙伴为本地虚拟机或远程虚拟机且通信的网络通信流量达到第二阈值的情况下通过均衡器模块起始本地虚拟机和/或通信合作伙伴的迁移。
根据第五方面,本发明提供包括各自用于向本地虚拟机提供通信模块的至少两个计算机数据处理系统的计算机系统,其中所述本地虚拟机用于使用所述通信模块进行网络通信,其中针对每个计算机数据处理系统,提供均衡器模块、将其用于分析至少两个虚拟机的状态,其中计算机数据处理系统的均衡器模块用于交换关于至少两个虚拟机的状态的信息,其中所述均衡器模块中的至少一个进一步用于起始虚拟机到计算机数据处理系统中的一个和/或虚拟机从计算机数据处理系统中的一个到第三计算机数据处理系统的迁移。
根据第六方面,本发明提供用于操作包括各自向本地虚拟机提供通信模块的至少两个计算机数据处理系统的计算机系统的方法,其中所述本地虚拟机使用所述通信模块进行网络通信,其中所述方法包括通过针对每个计算机数据处理系统提供的均衡器模块分析至少两个虚拟机的状态;通过计算机数据处理系统的均衡器模块交换关于至少两个虚拟机的状态的信息;通过均衡器模块中的至少一个起始虚拟机到计算机数据处理系统中的一个和/或从计算机数据处理系统中的一个到第三计算机数据处理系统的迁移。
附图说明
现还将参考附图论述本发明的上述方面和实施例:
图1展示根据现有技术的基于主机OS的虚拟机监控器平台的示意性概述。
图2展示根据现有技术的另一虚拟化平台的示意性概述。
图3展示本发明的第一与第二方面的示意性概述。
图4示范性说明可能的迁移情境。
图5展示本发明的第一与第二方面的更详细示意性概述。
图6展示监控模块的示意性概述。
图7展示均衡器模块的示意性概述。
图8示意性地展示若干模块和系统的交互。
图9展示分散型决策制定进程的示意性概述。
图10展示两个VM之间的共享内存通信的示意性概述。
具体实施方式
通常,需要注意的是本申请中描述的所有布置、设备、模块、组件、模型、元件、单元以及方法等都可以由软件或硬件元件或其任意组合实施。本申请中描述的各种实体执行的所有步骤以及所描述的将由各种实体执行的功能性旨在表明相应实体适于或用于执行相应步骤和功能性。虽然在以下具体实施例的描述中,由通用实体执行的特定功能性或步骤没有在执行特定步骤或功能性的实体的具体详细元件的描述中反映,但是技术人员应该清楚的是这些方法和功能性可以在相应硬件或软件元件或其任意组合中实施。此外,本发明的方法及其各个步骤在各个描述的装置元件的功能性中体现。
本发明主要聚焦于包含共享内存通信的分散型资源均衡和自动设定的改进型高效网络体系结构。
所提议解决方案不仅降低VM管理的复杂性,并且旨在以下目标:
-使具有附接泛虚拟化设备和支持SR-IOV的虚拟功能设备的VM的动态迁移自动化;和/或
-在使用泛虚拟化通信设备时减小CPU利用率开销信息且针对高效迁移自动化提出分散型均衡和决策制定机制;和/或
-提供共享内存通信,由此改进相同VM主机上运行的VM的通信。
为了实现这些目标,通过引入均衡组件和优化通信机制(通过添加经由共享分配内存空间支持网络流量交换的扩展)优化虚拟化联网堆栈。引入自动地起始VM的迁移和/或设置相同VM主机上运行的VM之间的共享内存通信的方法。另外,实施用于均衡、共享内存通信和/或VM迁移的分散型决策制定的方式。这通过评估可供用于一或多个VM主机和VM的资源的利用率;使此信息在数据处理系统的均衡器模块当中同步以及使用经同步和评估的信息基于分散型决策制定方法将新配置施加到所涉及数据处理系统而实现。
图3展示本发明的一般设定。在图3中,展示计算机数据处理系统100。计算机数据处理系统100至少部分地虚拟化计算硬件且用于运行至少第一本地VM 101和第二本地VM102。虽然在图3中,展示两个本地VM 101、102,但计算机数据处理系统100可运行更多或更少本地VM。
第一本地VM 101和第二本地VM 102在下文中通常表示相同计算机数据处理系统100上运行的VM,而远程VM表示例如借助于计算机网络连接到计算机数据处理系统100的另一计算机数据处理系统上运行的VM。计算机数据处理系统100因此也被称作本地计算机数据处理系统100。例如借助于计算机网络连接到本地计算机数据处理系统100的计算机数据处理系统因此也被称为远程计算机数据处理系统。
计算机数据处理系统100分别向本地VM 101、102提供通信模块103、104(例如,向第一本地VM 101提供第一通信模块103,向第二本地VM 102提供第二通信模块103)。每个本地VM 101、102可使用其通信模块103/104进行任何种类的网络通信。网络通信通过通信模块103、104,这可将通信引导到物理和/或(泛)虚拟联网设备。网络通信可建立于本地VM101、102之间(如图3中由弯曲箭头所说明),并且建立于本地VM与位于另一计算机数据处理系统(图3中未展示)中的远程VM之间或本地VM与任意远程通信合作伙伴(其可为远程服务器、客户端或任何其它联网设备)之间。
如图3中所示的计算机数据处理系统100还包括均衡器模块105。均衡器模块105分析本地VM 101、102与通信合作伙伴(其可为另一本地VM 101、102、远程VM或任何其它远程联网设备)之间的网络通信。如果本地VM与通信合作伙伴之间的网络通信的网络通信流量达到第一阈值,那么均衡器模块105还可实现第一本地VM 101与第二本地VM 102等本地通信合作伙伴之间的共享内存通信(如图3中的双箭头所说明)。
在此状况下,共享内存通信意味着两个本地VM 101、102使用相同分配共享内存空间的通信。共享内存空间可替代地或同时由两个本地VM用以读取和写入数据,且由此将数据从一个本地VM发送到另一本地VM和从一个本地VM接收数据。由于通信中所涉及的两个本地VM使用一个共享内存空间,因此并不需要用以将数据从由第一本地VM 101分配和使用的内存空间复制到由第二本地VM 102分配和使用的不同内存空间的额外中央处理单元(CPU)循环。由于不需要额外CPU循环进行数据交换,因此共享内存通信也被称为零复制通信。此类型的通信尤其经由泛虚拟设备和CPU循环改进通信且可节省内存带宽。
在两个本地VM 101、102之间的通信中交换的数据既不必须通过本地系统总线(例如PCI或PCIe)也不必须通过外围系统设备(例如物理网络接口控制器)。因此,共享内存通信在两个本地VM 101、102的通信中导致高度提高的数据吞吐量。
网络通信流量的第一阈值可为相较于网络通信的参数值的单个值,例如所使用网络带宽、在某一时间间隔内使用的网络带宽的量(例如所使用网络带宽的整数、平均或中位值)、超时的出现率、程序包丢失、接口误差和/或响应时间。这些参数中的全部或一些可指示高网络负载。第一阈值相较于单个值还可能更复杂。实际上,当认为网络负载过高时和/或当不利地影响通信时,第一阈值鉴于所监控参数大体上界定一情况。基于所监控参数,可进行关于第一阈值的鉴别,且取决于鉴别结果决定是否必须采取动作,即是否起始虚拟机迁移和/或是否支持共享内存通信。当然,还可设置多于一个阈值,且取决于是否达到阈值和达到何种阈值(超出或超越),可制定更精细粒度决策。可通过安装监控探测器或在计算机数据处理系统100和其本地VM 101、102中使用的虚拟或物理网络接口或通信模块中或通过侦听安装在切换或桥接机制或设备上的(虚拟)监控端口而收集必要数据。
因此,举例来说,如果达到第一阈值,例如当程序包丢失率增大超过设定的阈值时,那么均衡器模块可实现两个本地VM 101、102之间的共享内存通信。
另外或替代地,均衡器模块105可在本地VM与远程VM之间的网络通信的网络通信流量达到第二阈值的情况下起始第一VM 101和/或第二本地VM 102和/或远程VM的迁移。
可类似于如上文所描述的第一阈值检测和界定达到第二阈值。然而,归因于通信合作伙伴的地点和从主机OS或虚拟机监控器获得关于通信流量的信息的可能性,用于确定是否达到第一阈值的参数可仅来源于本地计算机数据处理系统100。可从本地计算机数据处理系统100外部的来源获得用于确定是否达到第二阈值所需的流量信息。举例来说,用于将本地计算机数据处理系统100连接到运行远程VM,即本地计算机数据处理系统100外部的VM,的另一(远程)计算机数据处理系统的(虚拟)网桥或切换器可提供此类信息。并且,其它计算机数据处理系统可将此类信息分别提供到本地计算机数据处理系统100或均衡器模块105。一般来说,还可在第一与第二阈值的比较、鉴别和界定中使用如内存利用率、CPU负载、计算机数据处理系统上运行的VM的数目的其它参数。
实现共享内存通信和起始本地和/或远程VM的迁移是可按序进行但不一定必须按序进行的独立步骤。均衡器模块105可实现共享内存通信而不起始本地和/或远程VM的迁移且反之亦然,且因此本地计算机数据处理系统100可提供一个功能性而不提供另一功能性。
可起始VM的迁移以优化本地计算机数据处理系统100内部或外部运行的VM的资源的使用。对于优化,解决以下情境:
如果本地VM与远程VM之间的通信达到第一阈值,那么计算机数据处理系统100上运行的任一个第一本地VM 101可迁移到定位有远程VM的远程计算机数据处理系统。替代地,远程计算机数据处理系统上运行的远程VM可迁移到本地VM 101处于运行中的本地计算机数据处理系统100。
如果本地计算机数据处理系统100的资源、远程计算机数据处理系统的资源在迁移之后都不足以运行两个VM,那么两个VM可迁移到第三计算机数据处理系统。因此,如果本地计算机数据处理系统100上运行的本地VM 101与远程计算机数据处理系统上运行的远程VM之间的网络通信达到阈值,本地VM 101和远程VM均可迁移到第三计算机数据处理系统。
这通过图4说明。在图4a)中,本地VM 101从本地计算机数据处理系统100移动到远程计算机数据处理系统100',远程VM 102'在所述远程计算机数据处理系统100'上运行。因此,在迁移之后,两个VM 101、102'在远程计算机数据处理系统100'上运行。
另一实例在图4b)中展示。此处,远程VM 102'从远程计算机数据处理系统100'移动到本地计算机数据处理系统100。因此,在迁移之后,两个VM 101、102'在本地计算机数据处理系统100上运行。
图4c)说明本地计算机数据处理系统100上运行的本地VM 101和远程计算机数据处理系统100'上运行的远程VM 102'均移动到第三计算机数据处理系统100”的情况。
当然,也可组合图4a)到4c)中所展示的功能性。例如,本地计算机数据处理系统100的VM 101可移动到计算机数据处理系统100',而同时远程计算机数据处理系统100'的VM 102'迁移到本地计算机数据处理系统100。另一VM可从本地计算机数据处理系统100和/或远程计算机数据处理系统100'迁移或移动到第三计算机数据处理系统100”,和/或从第三计算机数据处理系统100”迁移或移动到本地计算机数据处理系统100和/或远程计算机数据处理系统100'。因此,在具有多个VM的多个计算机数据处理系统的状况下,可在计算机数据处理系统之间交换和调换VM。
当可分析网络流量以检测实施VM的迁移是否有益时,可(例如关于第一和/或第二阈值)评估关于所涉及本地和远程计算机数据处理系统以及本地和远程计算机数据处理系统上运行的所涉及本地和远程VM的所使用资源的各种信息(例如CPU、内存、网络、存储装置的利用率和其它系统配置)。执行评估以达成关于是否起始迁移和/或实现共享内存通信的决策。
倘若起始迁移,所描述资源评估(例如CPU、内存、网络或存储装置的利用率)的结果可用于确定本地和/或远程VM到本地和/或远程计算机数据处理系统的有益迁移情境。举例来说,可将具有低CPU和内存负载的计算机数据处理系统100选择为一或多个资源密集型远程VM可迁移到的目标目的地。尤其,应注意,本发明不限于分析网络流量以便决定尤其如参考图4所描述的起始本地和/或远程VM的迁移或实现共享内存通信是否有益。可另外或替代地通过评估例如CPU状态、内存状态、网络状态和/或存储状态的任何系统资源状态而起始迁移或共享内存通信。因此,还可通过评估例如CPU、内存、网络和存储装置的任何系统资源状态中的一个或组合而确定第一阈值或第二阈值。
当评估资源时,可使用用于网络流量评估的相同评估原理(即评估表示资源利用率或设备误差的出现率和/或响应时间的单个值和/或整数、平均或中位值)。如鉴于下文图6所描述,监控模块115可用于收集必要信息。
负责决定例如起始迁移或起始共享内存通信的配置变化的均衡器模块105的决策逻辑可在VM 101、102和/或计算机数据处理系统100的初始配置期间采用针对每个VM 101、102和/或计算机数据处理系统100界定的优化功能。可在任何时间重新界定每个优化功能。可例如基于用户输入或机器学习机制/算法进行优化功能的界定和重新界定。
举例来说,优化功能可实施为规则表,其中关于参数(例如,表示CPU、网络、内存和/或存储装置的状态的负载值)的阈值可与预定动作(例如起始迁移或共享内存通信)相关联。存储于所述表中的条目还可用于决定何时触发动作(例如通过评估本地和/或远程VM和/或计算机数据处理系统的系统状态)以及如何处理动作(例如通过评估本地和/或远程VM和/或计算机数据处理系统的系统状态)。基于所述条目,可接着决定哪一迁移情境或共享内存情境对于目前情况最有益。
鉴于图5,第一本地VM 101的第一通信模块103可包括第一通信接口106且描述第二通信接口108。第二本地VM 102的第二通信模块104可包括第一通信接口107和第二通信接口109。第一通信接口106、108以及第二通信接口107、109可处置与任何种类的通信合作伙伴的任何类型的网络通信。然而,使用第一通信接口106、108进行本地VM 101、102之间的通信是有益的,而使用第二通信接口107、109进行本地VM 101、102与可为远程VM的远程通信合作伙伴的通信是有利的。
虽然共享内存通信是本地VM 101、102之间的通信的优选方式,但可存在使用第一通信接口106、108对于使用共享内存通信是优选的情境。举例来说,在无内存可用于共享内存通信的情况下或在用于本地VM 101、102之间的通信的必要带宽如此的低以至于经由第一通信接口的通信的总体资源消耗相较于共享内存通信更好的情况下情形如此。
在特定实施方案中,第一通信接口106、108可为泛虚拟化通信设备。第二通信接口107、109可为虚拟功能设备。虚拟功能设备可支持SR-IOV。泛虚拟化通信设备实现本地VM101、102之间的极快通信且提供动态迁移支持。虚拟功能设备(尤其支持SR-IOV的虚拟功能设备)能够直接寻址硬件资源且因此最适合于与远程通信合作伙伴或远程VM的去话通信。不同类型的通信接口的经组合使用可为有益的,由于每一类型的接口均可用于其最适合于的种类的通信。网络通信的总体性能可通过使用不同类型的通信接口,例如以混合方式提高,而同时可避免对于某一类型的通信接口典型的负面影响。第一通信模块103与第二通信模块104因此可各自组合泛虚拟化设备和虚拟功能设备。采用此组合的通信模块还可被称作“bond-zlb”。
为了促进本地VM 101、102经由第一通信接口106、108或第二通信接口107、109的网络通信,计算机数据处理系统100可提供虚拟机监控器或主机OS 110。虚拟机监控器或主机OS 110可包含用于网络通信桥接或网络通信切换的机制111。
网络通信桥接用于由两个或多于两个通信网络或两个或多于两个网络段产生集合网络。关于本发明,网络桥接可通过启用本地VM以使用相同通信网络而促进若干本地VM的通信。网络通信切换确保通过网络传输的数据仅转发到需要所转发数据进行进一步处理的网络设备。所传输数据包并不经修改;仅确定将数据转发到哪一网络设备的数据包的标头经修改。网络切换防止从本地VM发送到远程VM的数据还被发送到其它本地VM。通过虚拟机监控器或主机OS 110实施的用于网络通信桥接或网络通信切换的机制111由此提供本地VM 101、102与远程通信合作伙伴之间的高效且有效通信。
网络通信桥接或网络通信切换机制111可包括对应于本地VM 101、102的通信模块103、104的第一通信接口106、108的后端接口112、113。这些后端接口112、113可为泛虚拟后端设备。
另外,网络通信桥接或网络通信切换机制111用于在功能上联合经由本地VM 101、102的通信模块103、104的第二通信接口107、109传输的数据操作网络接口控制器驱动器114。所述功能联合允许将虚拟化网络接口控制器驱动器提供到能够直接使用计算机数据处理系统100中所使用的物理网络接口装置的硬件资源的每个本地VM 101、102的通信模块103、104的第二通信接口107、109。
以此方式,处置发送到远程通信合作伙伴的数据所需的必要处理步骤可由计算机数据处理系统100的物理网络硬件处理,这可保存计算机数据处理系统100的其它本地资源(例如CPU和内存利用率)。另外,物理网络接口装置可提供SR-IOV支持。因此,网络接口控制器驱动器114实现本地VM 101、102与本地计算机数据处理系统100外部的通信合作伙伴的通信。
如现在鉴于图6所描述,为了观测和收集对于关于迁移和共享内存通信的决策制定必要的计算机数据处理系统100的状态信息,可实施监控模块115。监控模块115能够收集关于计算机数据处理系统100的CPU、内存、网络和存储装置利用率以及系统配置的信息。监控模块115运行于本地计算机数据处理系统100上且可为虚拟机监控器或主机OS 110的部分。其存取本地计算机数据处理系统100以及本地计算机数据处理系统100上运行的每个本地VM 101、102的状态信息。
在图6中,这通过连接计算机数据处理系统100的监控模块115和系统资源的线(示范性地展示在虚拟机监控器/主机OS块110内)以及通过连接监控模块115和本地VM 101、102的若干例子的线说明。监控模块115能够检测一般网络活动(例如网络负载或在VM的接口处所使用的带宽)以及网络连接的方向。具体地说,通过监控模块115获得的监控信息和通过其收集的状态信息用于决定是否在本地VM之间建立共享内存通信,如参考第一与第二阈值所解释。
监控模块115可使用轮询以主动地取样尤其上文所提到的类型的资源的状态和状态改变。所述轮询可实施中断驱动且因此作为几乎不具有处理开销信息的同步进程。
通过监控模块115检测到的状态和状态改变可记录在状态内存数据库116中。所述状态内存数据库可提供为数据库(例如SQL数据库、键值存储、NoSQL数据库等等)或仅为一或多个文本文件(例如JSON格式文件)。在图6中,监控模块115和状态内存数据库116经展示为虚拟机监控器或主机OS 110的部分。然而,监控模块115和状态内存数据库116还可独立于虚拟机监控器或主机OS 110操作。
在图7中,展示均衡器模块105的更详细视图。均衡器模块105经展示为虚拟机监控器或主机OS 110的一部分且提供均衡器核心701、状态信息单元702、侦听单元703和广播单元704。
均衡器模块105通过从状态内存数据库116获得状态信息而分析系统状态以及尤其网络通信状态和其它系统资源的状态。基于所获得状态信息,均衡器模块105决定是否执行网络通信的优化。具体来说,决定是否实现共享内存通信和/或是否起始一或多个本地VM101、102和/或一或多个远程VM的迁移。均衡器模块105因此存取本地计算机数据处理系统100和远程计算机数据处理系统的状态信息。
为了分析本地计算机数据处理系统100的状态,均衡器模块105使用存储于状态内存数据库116中的由监控模块115提供的数据。连接状态内存数据库116与均衡器核心701的箭头说明均衡器核心701加载来自状态内存数据库116的资源利用率数据。均衡器模块105还可直接监控本地网络通信,例如监控模块115可为均衡器模块105的部分。
为了分析远程计算机数据处理系统的状态,均衡器模块105使用由侦听单元703提供的数据。这通过连接侦听单元703和均衡器核心701的箭头说明。侦听单元703可通过与至少一个远程计算机数据处理系统的至少一个其它远程均衡器模块通信而收集关于至少一个其它远程计算机数据处理系统的状态的状态信息。因此,共享状态信息和关于待决决策的信息。
关于远程计算机数据处理系统的资源利用率、配置和状态的信息还包含关于存储于相应本地状态内存数据库中的远程VM的资源利用率、配置和状态的信息。这允许存储于状态内存数据库116中的状态信息与分别存储于其它远程计算机数据处理系统的内存数据库中的状态信息的同步。此进程通过连接均衡器核心701与状态内存数据库116的箭头说明。均衡器核心701可通过查询本地(例如同步)状态内存数据库116或通过直接查询远程状态内存数据库或通过将相应请求转发到远程均衡器模块而存取远程计算机数据处理系统的状态信息。
均衡器核心701持续地分析所提供本地和/或远程状态信息且根据均衡器模块105的决策逻辑基于优化功能的评估决定如何改变计算机数据处理系统100的配置。
一旦制定决策且关于所提出新本地配置的信息可用,状态信息单元702就将此信息保存到本地状态内存数据库116(通过连接状态信息单元702和状态内存数据库116的箭头所说明)。新本地配置可反映到/从本地和/或远程计算机数据处理系统的计划或有效虚拟机迁移和/或至少一个VM的重配置。所述决策和相应配置也可实现共享内存通信,并且可改变或更改关于本地VM 101、102,通信模块103、104或第一通信接口106、108和/或第二通信接口107、109的配置的一般信息。此信息还可借助于广播单元704转发到经由通信网络连接的其它远程均衡器模块。可在均衡器=模块105的操作循环中开始、停止以及状态同步地进行广播。在通过通信网络连接的均衡器模块当中的通信可借助于例如单播、组播、任意播或广播等任何传输方案实施。
每当一或多个均衡器模块的决策中涉及本地和远程VM,如果均衡器模块105和所涉及远程均衡器模块认为所述决策最优,那么仅接受和执行所述决策。
在图7中,均衡器模块105和状态内存数据库116经展示为虚拟机监控器或主机OS110的部分。然而,均衡器模块105和状态内存数据库116还可独立于虚拟机监控器或主机OS110操作。在优选实施例中,均衡器模块105为与虚拟机监控器或主机OS 110分离的模块。
转向回到图5,为了实施通过均衡器模块105决定且存储于状态内存数据库116中的配置变化,计算机数据处理系统100可进一步包括控制模块117。控制模块117通过查询状态内存数据库116获得关于如何改变本地计算机数据处理系统100的状态的配置的信息。控制模块117能够重新配置本地VM 102、103,通信模块103、104和/或第一通信接口106、108与第二通信接口107、109。因此,控制模块117例如通过查询状态内存数据库116接收由均衡器模块105提供的信息。
所获得的信息包含关于如何配置计算机数据处理系统100和/或本地VM 101、102的状态以及是否需要预备和执行本地或远程VM从或到计算机数据处理系统100的迁移和/或是否需要建立共享内存通信的重配置信息。
所述重配置信息可包含控制本地VM 101、102的通信模块103、104,第一通信接口106、108和第二通信接口107、109的行为的指令。控制模块117可根据重配置信息将拆卸和附接事件发送到第一通信接口106、108和第二通信接口107、109。在迁移情境下,这例如实现使第二通信接口107、109从待迁移的本地VM 101、102的拆卸自动化且在迁移进程正进行中时借助于第一通信接口106、108实现本地和远程网络通信。在完成VM的迁移之后,控制模块117可再次将第二通信接口107、109附接到迁移VM且促进使用第一通信接口106、108和第二通信接口107、109进行其最适合的类型的网络通信。在特定实施方案中,通过第二通信接口107、109的PCIe热拔/插能力支持拆卸和附接第二通信接口107、109。
控制模块117可起始与远程均衡器模块的通信(例如借助于本地均衡器模块105)以决定意图用于本地计算机数据处理系统100的所提出重配置指令是否符合远程均衡器模块的决策。
均衡器模块105可决定是否执行动作,例如迁移本地或远程VM或起始共享内存通信。接着通过均衡器模块105将执行此动作的权利颁予控制模块117。这可通过借助于状态内存数据库116存储和交换信息,例如均衡器模块105将信息写入到状态内存数据库116,接着由控制模块117读取而实现。控制模块117接着执行相应动作。控制模块可仅将配置变化施加到本地计算机数据处理系统100和/或本地VM 101、102。
图8示范性地展示通过控制模块117进行的一些典型动作。展示本地计算机数据处理系统100和远程计算机数据处理系统800。本地计算机数据处理系统100运行和操作两个本地VM 101、102并且进一步包括状态内存数据库116和控制模块117。未展示均衡器模块105、监控模块115、主机OS 110和如从例如图5已知的可属于计算机数据处理系统的其它组件。
图8还展示远程计算机数据处理系统800。远程计算机数据处理系统800操作远程VM 801a并且进一步包括状态内存数据库816和控制模块817。未展示均衡器模块、监控模块、主机OS以及远程计算机数据处理系统800的其它组件。远程VM 801a被迁移到计算机数据处理系统100,在此处其被称作另一VM 801b。图8展示本地计算机数据处理系统100的以虚线描绘的另一VM 801b。所述虚线指示VM 801b在从远程计算机数据处理系统800迁移之后通过计算机数据处理系统100操作。
控制模块117、817通过分别查询对应状态内存数据库116、816获得关于配置变化的信息。控制模块117、817对状态内存数据库116、816的查询通过连接状态内存数据库116与控制模块117的箭头且通过连接状态内存数据库816与控制模块817的箭头说明。
在查询状态内存数据库116、816之后传回到控制模块117、817的信息可包含如如何重配置例如通信模块、第一和或第二通信接口的本地VM的状态和资源以及计算机数据处理系统的系统状态和资源的信息。具体来说,可包含用以起始VM的迁移和实现本地VM的共享内存通信的信息。存储于状态内存数据库116、816中的信息可借助于每个计算机数据处理系统100、800上的监控模块收集且可在所有状态内存数据库当中借助于每个计算机数据处理系统100、800上的均衡器模块同步。均衡器模块可接受或拒绝对于重配置另一均衡器模块的请求,即其可决定是否参与通过其它均衡器模块起始的迁移。关于接受或拒绝请求的信息还可存储于状态内存数据库中。
在图8中,控制模块117查询状态内存数据库116以查询状态信息,例如以迁移本地VM102到另一计算机数据处理系统。连接控制模块117与本地VM 102的箭头说明如何将配置变化施加到第二本地VM 102和控制模块117执行迁移。从第二本地VM 102指向到计算机数据处理系统100外部的区域的箭头说明将第二本地VM 102迁移到另一计算机数据处理系统(所述系统并不展示于图8中)。计算机数据处理系统可以一方式配置使得第二本地VM 102迁移到的计算机数据处理系统的远程均衡器模块一定已经接受了本地均衡器模块的请求。远程均衡器模块已请求第二本地VM 102的迁移且本地均衡器模块已接受所述请求也是可能的。由于两个均衡器模块均同意第二本地VM 102的迁移,因此将权利颁予控制模块117以执行第二本地VM 102的迁移。
图8进一步展示控制模块817通过连接状态内存数据库816与控制模块817的箭头从状态内存数据库816查询重配置信息。连接控制模块817与远程VM 801a(目前由远程计算机数据处理系统800操作)的箭头说明通过控制模块817将配置变化施加到远程VM 801a,且控制模块817执行远程VM 801a到计算机数据处理系统100的迁移。为了使得控制模块817能够执行远程VM 801a的迁移,本地计算机数据处理系统100和远程计算机数据处理系统800的均衡器模块同意起始迁移且将相应重配置信息和权利存储在状态内存数据库116、816中。
先前运行于计算机数据处理系统800上的远程VM 801a在迁移之后接着作为另一VM 801b运行于计算机数据处理系统100上。控制模块117再次查询状态内存数据库116以查询重配置信息。连接控制模块117与本地VM 801b和本地VM 101的箭头指示通过控制模块117将配置变化施加到本地VM 101和另一VM 801b。所述配置变化仅影响计算机数据处理系统100的本地系统状态,不必批准其它均衡器模块。根据施加到本地VM 101和另一VM 801b的重配置信息,还可通过控制模块117实现共享内存通信。这通过连接本地VM 101和另一VM801b的虚线双头箭头说明。可在根据远程计算机数据处理系统800的均衡器模块的决策起始另一VM 801a的迁移之前由计算机数据处理系统100的本地均衡器模块105制定实现本地VM 101与另一VM 801b之间的共享内存通信的决策。然而,还可在所述迁移之后且仅基于本地VM 101与另一VM 801b之间由监控模块115执行和监控的通信制定所述决策。迁移自身的起始通常由计算机数据处理系统本地的均衡器模块实现,例如本地计算机数据处理系统100的均衡器模块105(如实现共享内存通信的决策),而迁移例如第二本地VM 102的VM的决策原先还可通过远程均衡器模块起始。
还参考图9描述交换和评估均衡信息的分散型方法的益处。在图9中,展示分散型决策制定进程进行资源均衡。散布多个计算机数据处理系统100、100'、100”(当然,替代地可使用计算机数据处理系统800),其中的每一个实施均衡器模块105、105'、105”或与所述均衡器模块相关联。可通过在初始完整同步之后仅使差异信息同步而使均衡器模块105、105'、105”当中的网络流量最小化。此外,所述系统完全是冗余的,且单个均衡器模块105、105'、105”的失效并不影响计算机数据处理系统100、100'、100”的系统900的操作。
计算机数据处理系统100可进一步包括或在功能上连接到内存模块118从而可促进共享内存通信,如图10中所示。展示具有第一和第二本地VM 101、102,控制模块117,内存模块118和由内存模块118提供的共享内存空间119的一部分的计算机数据处理系统100。未展示均衡器模块105和监控模块115以及主机OS 110和图5中所展示的计算机数据处理系统100的其它实体。
控制模块117用于施加通过均衡器模块105决定且通过使用状态内存数据库116传送的配置变化。控制模块117还可针对每个本地VM 101、102分配由内存模块118提供的共享内存空间119的一部分。连接每个本地VM 101、102与共享内存空间119的细双箭头说明每个本地VM 101、102可将数据1001、1002写入到共享内存空间119和/或从所述共享内存空间读取数据1001、1002。由此使得第一和第二本地VM 101、102的数据1001、1002到和/或从共享内存空间119的同时或就地写入和/或读取是可能的且使得第一和第二本地VM 101、102之间的通信能够不需要额外CPU循环或CPU处理步骤以复制信息。具体来说,不需要额外CPU处理步骤来将存储于专门地由第一本地VM 101使用的内存空间中的信息复制到专门地由第二本地VM 102使用的内存空间,由于同一共享内存空间直接可用于两个本地VM 101、102。由此,提供两个本地VM 101、102之间的网络通信的高效方式(在CPU和其它系统资源的利用率的意义上)。
两个本地VM 101、102之间的共享内存通信在图10中通过连接本地VM 101和本地VM 102的双头箭头说明。控制模块117可在实现共享内存通信之前执行共享内存空间119的分配以及可在不再需要共享内存通信时取消分配共享内存空间119。
还可通过从共享内存通信中所涉及的对应其它本地VM 101、102的内存缓冲器读取和写入到所述内存缓冲器而实施两个本地VM 101、102之间的共享内存通信。内存缓冲器位于共享内存空间119中。具体来说,这可通过直接彼此映射对应本地VM 101、102的发送和接收缓冲器而实施。
在第一与第二本地VM 101、102内展示的数据1001、1002一方面通过细双向箭头与共享内存空间119的所述部分连接且另一方面通过双头箭头与相应其它本地VM中的对应数据1001、1002连接。这说明第一与第二本地VM 101、102可包含用于处置共享内存通信的模块。此模块可为通信模块103、104且具体地说可为第一通信接口106、108,如参考图5所解释。通信模块103、104或第一通信接口106、108可用于促进共享内存通信,并且单独模块可出于此目的在第一与第二本地VM 101、102内部实施。
倘若第一通信接口106、108用于实现共享内存通信,第一通信接口106、108仍然可支持常规网络通信模式。因此,例如对于第一本地VM 101,借助于共享内存通信与第二本地VM 102通信且同时借助于第一通信接口106、108在如例如在泛虚拟化设备中实施的常规网络通信模式下与另一通信合作伙伴(其可为本地和/或远程VM)通信是可能的。
然而,不管通信模块103、104是否用于共享内存通信,当实现或禁用共享内存通信时,控制模块117可传信到通信模块103、104,以使得通信模块可相应地适应第一通信接口106、108和或第二通信接口107、109的配置。
在以下部分中,描述由计算机数据处理系统100执行的操作的典型工作流。以下序列列表中的每一个描述典型操作情境。
1.启动计算机数据处理系统100(VM并不运行):
-装载均衡器模块105、监控模块115和控制模块117。此时,状态内存数据库116可为空的。
-均衡器模块105通过广播均衡器模块105处于运行中的消息通知其它远程均衡器模块(均衡器模块还可以自组织网络拓扑组织,例如基于分布式哈希表(distributed hashtable,DHT)的拓扑,和/或可提供例如促进均衡器模块的初始连接的存储库)。
-存在于其它远程计算机数据处理系统上且经由计算机网络连接到远程均衡器模块105的其它远程均衡器模块回复均衡器模块105其正在运行(所述回复可以单播模式通过用户数据报协议(user datagram protocol,UDPP)发送)。
-将从回复远程均衡器模块收集的信息存储于状态内存数据库116中。
2.启动常规作业操作:
-计算机数据处理系统100开始常规操作。
-启动任意数目的本地VM。
-监控模块115扫描计算机数据处理系统100和计算机数据处理系统100上运行的VM的资源状态且将监控信息存储在状态内存数据库116中。
-均衡器模块105跟踪存储于状态内存数据库116中的改变的监控结果且分析所述结果。
-均衡器模块105与其它远程计算机数据处理系统上运行的其它远程均衡器模块共享本地计算机数据处理系统100和本地计算机数据处理系统100上运行的VM的状态信息以及通过监控模块115监控的存储于状态内存数据库116中的信息的分析结果。
-均衡器模块105通过从其它远程均衡器模块收集反馈使本地状态内存数据库116与其它远程状态内存数据库同步。
-上述步骤在后台进程中周期性地重复。
3a.制定起始涉及专门本地VM 101、102的均衡动作的决策:
-均衡器模块105识别出对于至少一个本地VM 101,超出关于网络流量的阈值。
-均衡器模块105决定实现所涉及本地VM 101、102之间的共享内存通信且将此决策存储在状态内存数据库116中。
-控制模块117从状态内存数据库116查询均衡器模块105的决策且新配置施加到所涉及本地VM 101、102。为了施加新配置,控制模块117可分配由内存模块118提供的共享内存空间119的一部分且在传信到通信模块103、104之前实现共享内存通信以使得共享内存通信用于本地VM 101、102之间的通信。
3b.制定起始涉及非本地VM的均衡动作的决策:
-均衡器模块105识别出关于一个本地VM与一个远程VM或两个远程VM之间的流量,达到关于网络流量的阈值。
-均衡器模块105决定改进VM之间的通信,例如以实现两个VM之间的共享内存通信。
-为了实现此,所述VM中的至少一个必须迁移到运行通信中所涉及的其它VM的计算机数据处理系统。
-均衡器模块105决定将具有较高资源利用率(例如通过评估CPU、内存或存储负载)的计算机数据处理系统上运行的VM迁移到具有较低资源利用率的计算机数据处理系统。有可能在VM均运行于各自具有高资源利用率的计算机数据处理系统上时,将两个VM迁移到具有低资源利用率的第三计算机数据处理系统。
-均衡器模块105通知其它远程均衡器模块关于此决策(例如借助于状态内存数据库116)。
-均衡器模块105的决策中所涉及的远程均衡器模块可基于其对当前计算机数据处理系统状态的自身分析授予或驳回所述决策。所述决策的结果可再次借助于状态内存数据库在均衡器模块当中共享。
-控制模块117根据均衡器模块的决策(控制模块117从状态内存数据库116接收的决策)起始迁移且在完成迁移之后实现现在本地VM的共享内存通信。
为此,步骤3a.或3b.可专门地执行以下步骤1.和2.或其可以组合形式执行。当然,还可在步骤3a.之前执行步骤3b.且步骤3a.和/或3b.可反复地执行。
下一部分描述如何可再次自动地设定和停止共享内存通信:
a.自动地设置共享内存通信:
-起初,两个或多于两个本地VM 101、102运行于同一计算机数据处理系统100上。
-均衡器模块105决定两个本地VM 101、102之间的共享内存通信是必要的。所述决策可基于对两个本地VM 101、102之间的流量的分析并且基于先前迁移,已经由于现在本地VM 101、102之间的高网络流量而起始先前迁移。
-均衡器模块105借助于状态内存数据库116通知控制模块117关于其决策。
-控制模块117针对每个本地VM 101、102分配由内存模块118提供的共享内存空间119的一部分且实现两个本地VM 101、102之间的共享内存通信。
-通知通信模块103、104共享内存通信现在用于两个本地VM 101、102之间的通信。
b.自动地停止共享内存通信:
-如果两个本地VM 101、102之间的通信确实不再需要高带宽,那么可停止共享内存通信,以使得可使用另一方式的网络通信。或在均衡器模块请求本地VM 101、102到远程计算机数据处理系统的迁移的情况下。
-起初,存在使用共享内存通信的运行于同一计算机数据处理系统100上的两个本地VM 101、102。
-均衡器模块105决定不再需要经由共享内存通信的通信和传信控制模块117以重配置两个本地VM 101、102之间的通信。
-借助于状态内存数据库116交换均衡器模块105与控制模块117之间的信息。
-控制模块117配置本地VM 101、102的通信模块103、104以相较于共享内存通信使用另一通信接口。
-控制模块117安全地取消分配由内存模块118提供的共享内存空间119。
在此结合各种实施例描述了本发明。然而,本领域技术人员通过实践本发明,研究附图、本发明以及所附的权利要求,能够理解并获得公开实施例的其它变体。在权利要求书中,词语“包括”不排除其它元素或步骤,不定冠词“一”不排除多个。单个处理器或其它单元可满足权利要求中列举的几项的功能。在仅凭某些措施被记载在相互不同的从属权利要求书中这个单纯的事实并不意味着这些措施的组合不能被有效地使用。计算机程序可以存储/分布到合适的媒体上,例如与其它硬件一起或者作为其它硬件的部分提供的光学存储媒体或者固态媒体,还可以以其它形式,例如通过因特网或者其它有线或无线电信系统分布。

Claims (15)

1.一种用于至少部分地虚拟化计算硬件且用于运行本地虚拟机(101、102)的计算机数据处理系统(100),其特征在于,所述系统包括:
向两个本地虚拟机VM(101、102)提供通信模块(103、104)的构件,且其中所述本地虚拟机(102、103)用于使用所述通信模块(103、104)进行网络通信,
均衡器模块(105),用于分析所述本地虚拟机(101)与通信合作伙伴之间的网络通信,所述均衡器模块(105)用于在所述通信合作伙伴为所述计算机数据处理系统(100)的第二本地虚拟机(102)且所述通信的网络通信流量达到第一阈值的情况下实现共享内存通信;
其中,共享内存通信表示两个本地VM(101、102)使用相同分配共享内存空间的通信;
其中,共享内存空间可交替地或同时由两个本地VM用以读取和写入数据,且由此将数据从一个本地VM发送到另一本地VM和从一个本地VM接收数据,由于通信中所涉及的两个本地VM使用一个共享内存空间,共享内存通信不需要用以将数据从由第一本地VM(101)分配和使用的内存空间复制到由第二本地VM(102)分配和使用的不同内存空间的额外中央处理单元CPU循环;
其中,所述均衡器模块(105)用于在所述通信合作伙伴为本地虚拟机(101、102)或远程虚拟机且所述通信的网络通信流量达到第二阈值的情况下起始所述本地虚拟机(101、102)和/或所述通信合作伙伴的迁移;
其中,所述均衡器模块(105)还用于自动地设置共享内存通信:包括:决策两个本地虚拟机(101、102)之间的共享内存通信是必要的,所述决策基于对两个本地虚拟机(101、102)之间的流量的分析并且基于先前迁移,已经由于现在本地VM 101、102之间的高网络流量而起始先前迁移;借助于状态内存数据库通知控制模块关于其决策,其中,控制模块用于针对两个本地虚拟机(101、102)分配由内存模块提供的共享内存空间的一部分且实现两个本地虚拟机(101、102)之间的共享内存通信,通知通信模块共享内存通信现在用于两个本地虚拟机(101、102)之间的通信;
所述均衡器模块(105)还用于自动地停止共享内存通信,包括:
当两个本地虚拟机(101、102)之间的通信确实不再需要高带宽,那么停止共享内存通信以使得可使用另一方式的网络通信,当均衡器模块(105)决定不再需要经由共享内存通信的通信和传信控制模块以重配置两个本地虚拟机(101、102)之间的通信,借助于状态内存数据库交换均衡器模块与控制模块之间的信息;所述控制模块配置两个本地虚拟机(101、102)的通信模块以相较于共享内存通信使用另一通信接口,控制模块安全地取消分配由内存模块提供的共享内存空间。
2.根据权利要求1所述的计算机数据处理系统,其特征在于,所述通信模块(103、104)包括第一通信接口(106、108)和第二通信接口(107、109),其中所述均衡器模块(105)用于在所述通信合作伙伴为所述第二本地虚拟机(102)的情况下经由所述第一通信接口(106、108)实现通信和/或在所述通信合作伙伴为所述远程虚拟机的情况下经由所述第二通信接口(107、109)实现通信,其中所述第一通信接口(106、108)为泛虚拟化通信设备,且其中所述第二通信接口(107、109)为虚拟功能设备。
3.根据权利要求2所述的计算机数据处理系统(100),其特征在于,所述计算机数据处理系统(100)包括虚拟机监控器或主机OS(110),且其中所述虚拟机监控器或主机OS(110)包括用于网络通信桥接或网络通信切换的机制(111),且其中所述网络通信桥接或网络通信切换机制(111)包括用于所述第一通信接口的后端接口(112、113),且其中所述后端接口(112、113)为泛虚拟后端设备。
4.根据权利要求2所述的计算机数据处理系统(100),其特征在于,所述计算机数据处理系统(100)包括虚拟机监控器或主机OS(110),且其中所述虚拟机监控器或主机OS(110)包括用于网络通信桥接或网络通信切换的机制(111),且其中所述网络通信桥接或网络通信切换机制(111)包括用于所述第一通信接口的后端接口(112、113),且其中所述后端接口(112、113)为泛虚拟后端设备。
5.根据权利要求4所述的计算机数据处理系统(100),其特征在于,所述网络通信桥接或网络通信切换机制(111)用于在功能上联合经由所述第二通信接口(107、109)传输的数据操作网络接口控制器驱动器(114),且其中所述网络接口控制器驱动器(114)为支持SR-IOV的物理功能。
6.根据权利要求5所述的计算机数据处理系统(100),其特征在于,所述网络接口控制器驱动器(114)用于实现所述本地虚拟机(101、102)与所述计算机数据处理系统(100)外部的通信合作伙伴的通信。
7.根据权利要求1至6任一项所述的计算机数据处理系统(100),其特征在于,所述计算机数据处理系统(100)包括用于监控所述计算机数据处理系统(100)的监控模块(115)且包括用以测量CPU利用率的构件;用以测量内存空间利用率的构件;用以测量网络利用率的构件;用以测量本地虚拟机的资源利用率的构件;用以存取状态内存数据库、从状态内存数据库读取和/或写入到状态内存数据库的构件。
8.根据权利要求7所述的计算机数据处理系统(100),其特征在于,所述监控模块(115)用于检测所述计算机数据处理系统(100)的状态和所述计算机数据处理系统(100)的本地资源的配置变化,且记录所述计算机数据处理系统(100)的所述状态和所述状态内存数据库(116)中的所述配置变化。
9.根据权利要求2至6任一项所述的计算机数据处理系统(100),其特征在于,所述计算机数据处理系统(100)包括用于通过查询所述状态内存数据库(116)获得关于配置变化的信息的控制模块(117),其中所述控制模块(117)用于基于从所述状态内存数据库(116)获得的所述信息重配置所述本地虚拟机(101、102)、所述通信模块(103、104)、所述第一和/或所述第二通信接口(106、108、107、109)中的至少一个。
10.根据权利要求1至6任一项所述的计算机数据处理系统(100),其特征在于,所述计算机数据处理系统(100)包括或在功能上连接到内存模块(118),其中所述控制模块(117)用于针对每个本地虚拟机(101、102)分配由所述内存模块(118)提供的共享内存空间(119)的一部分,其中每个本地虚拟机(101、102)用于将数据存储到所述所分配共享内存空间(119)和/或从所述所分配共享内存空间(119)读取数据以发送/从另一本地虚拟机(101、102)接收数据,且其中所述控制模块(117)用于基于来自所述均衡器模块(105)的指令而执行所述共享内存空间(119)的所述分配或取消分配以在所述本地虚拟机(101)与所述第二本地虚拟机(102)之间建立共享内存连接从而实现所述共享内存通信。
11.根据权利要求1至6任一项所述的计算机数据处理系统(100),其特征在于,所述均衡器模块(105)用于通过查询所述状态内存数据库(116)和/或网络通信而分析系统状态,以确定是否需要执行网络通信的均衡动作或优化,且将分析结果存储在所述状态内存数据库(116)中。
12.根据权利要求1至6任一项所述的计算机数据处理系统(100),其特征在于,所述均衡器模块用于从其它远程均衡器模块收集远程虚拟机的状态,和/或其中所述均衡器模块(105)用于使所述状态内存数据库(116)与所述其它远程均衡器模块的状态内存数据库同步。
13.根据权利要求1至6任一项所述的计算机数据处理系统(100),其特征在于,所述均衡器模块(105)用于将相应重配置信息提供到所述控制模块(117),和/或用于决定是否应将本地和/或远程虚拟机迁移到所述计算机数据处理系统(100)或另一计算机数据处理系统且通过与其它远程均衡器模块通信而实现所述迁移。
14.根据权利要求1至6任一项所述的计算机数据处理系统(100),其特征在于,所述均衡器模块(105)用于基于存储于所述状态内存数据库(116)中的信息决定是否迁移所述本地或远程虚拟机,其中所述均衡器模块(105)用于授予所述控制模块(117)执行所述迁移的权利,且其中所述控制模块(117)用于执行所述迁移。
15.一种用于操作用于至少部分地虚拟化计算硬件的计算机数据处理系统(100)的方法,其特征在于,所述计算机数据处理系统用于运行本地虚拟机(101、102),
其中所述系统向本地虚拟机(101、102)提供通信模块(103、104),且其中所述本地虚拟机(101、102)使用所述通信模块(103、104)进行网络通信,其中
均衡器模块(105)分析所述本地虚拟机(101)与通信合作伙伴之间的网络通信,所述均衡器模块(105)在所述通信合作伙伴为第二本地虚拟机(102)且所述通信的网络通信流量达到第一阈值的情况下实现共享内存通信;
其中,共享内存通信表示两个本地VM(101、102)使用相同分配共享内存空间的通信;
其中,共享内存空间可交替地或同时由两个本地VM用以读取和写入数据,且由此将数据从一个本地VM发送到另一本地VM和从一个本地VM接收数据,由于通信中所涉及的两个本地VM使用一个共享内存空间,共享内存通信不需要用以将数据从由第一本地VM(101)分配和使用的内存空间复制到由第二本地VM(102)分配和使用的不同内存空间的额外中央处理单元CPU循环;
其中,所述均衡器模块(105)还用于自动地设置共享内存通信:包括:决策两个本地虚拟机(101、102)之间的共享内存通信是必要的,所述决策基于对两个本地虚拟机(101、102)之间的流量的分析并且基于先前迁移,已经由于现在本地VM 101、102之间的高网络流量而起始先前迁移;借助于状态内存数据库通知控制模块关于其决策,其中,控制模块用于针对两个本地虚拟机(101、102)分配由内存模块提供的共享内存空间的一部分且实现两个本地虚拟机(101、102)之间的共享内存通信,通知通信模块共享内存通信现在用于两个本地虚拟机(101、102)之间的通信;
所述均衡器模块(105)还用于自动地停止共享内存通信,包括:
当两个本地虚拟机(101、102)之间的通信确实不再需要高带宽,那么停止共享内存通信以使得可使用另一方式的网络通信,当均衡器模块(105)决定不再需要经由共享内存通信的通信和传信控制模块以重配置两个本地虚拟机(101、102)之间的通信,借助于状态内存数据库交换均衡器模块与控制模块之间的信息;所述控制模块配置两个本地虚拟机(101、102)的通信模块以相较于共享内存通信使用另一通信接口,控制模块安全地取消分配由内存模块提供的共享内存空间。
CN201580084569.3A 2015-11-13 2015-11-13 计算机数据处理系统和用于虚拟机通信的基于通信流量的优化的方法 Active CN108351802B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/RU2015/000778 WO2017082757A1 (en) 2015-11-13 2015-11-13 Computer data processing system and method for communication traffic based optimization of virtual machine communication

Publications (2)

Publication Number Publication Date
CN108351802A CN108351802A (zh) 2018-07-31
CN108351802B true CN108351802B (zh) 2021-07-20

Family

ID=56116509

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580084569.3A Active CN108351802B (zh) 2015-11-13 2015-11-13 计算机数据处理系统和用于虚拟机通信的基于通信流量的优化的方法

Country Status (2)

Country Link
CN (1) CN108351802B (zh)
WO (1) WO2017082757A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109525515B (zh) * 2018-10-23 2021-04-30 郑州云海信息技术有限公司 一种云平台中网卡的管理方法和装置
US11436043B2 (en) * 2019-11-13 2022-09-06 International Business Machines Corporation Operating system code patching during live migration
US11520612B2 (en) 2019-11-13 2022-12-06 International Business Machines Corporation Virtual machine migration detection by a hosted operating system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105045727A (zh) * 2015-08-14 2015-11-11 华为技术有限公司 一种访问共享内存的方法及设备

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7739684B2 (en) * 2003-11-25 2010-06-15 Intel Corporation Virtual direct memory access crossover
US9753754B2 (en) * 2004-12-22 2017-09-05 Microsoft Technology Licensing, Llc Enforcing deterministic execution of threads of guest operating systems running in a virtual machine hosted on a multiprocessor machine
US7496495B2 (en) * 2005-05-12 2009-02-24 Microsoft Corporation Virtual operating system device communication relying on memory access violations
CN100399274C (zh) 2005-09-19 2008-07-02 联想(北京)有限公司 一种虚拟机系统输入/输出设备动态分配的方法及其设备
US7945436B2 (en) 2007-11-06 2011-05-17 Vmware, Inc. Pass-through and emulation in a virtual machine environment
US8151265B2 (en) 2007-12-19 2012-04-03 International Business Machines Corporation Apparatus for and method for real-time optimization of virtual machine input/output performance
US8146082B2 (en) 2009-03-25 2012-03-27 Vmware, Inc. Migrating virtual machines configured with pass-through devices
US8826292B2 (en) * 2010-08-06 2014-09-02 Red Hat Israel, Ltd. Migrating virtual machines based on level of resource sharing and expected load per resource on candidate target host machines
US8533713B2 (en) 2011-03-29 2013-09-10 Intel Corporation Efficent migration of virtual functions to enable high availability and resource rebalance
US9264353B2 (en) 2011-09-22 2016-02-16 Qualcomm Incorporated Dynamic subflow control for a multipath transport connection in a wireless communication network
CN104580328A (zh) * 2013-10-28 2015-04-29 华为技术有限公司 虚拟机迁移方法、装置及系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105045727A (zh) * 2015-08-14 2015-11-11 华为技术有限公司 一种访问共享内存的方法及设备

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Jian Wan等.XenLoop: A Transparent High Performance Inter-VM Network Loopback.《CLUSTER COMPUTING,KLUWER ACADEMIC PUBLISHERS》.2009,第141-152页. *
Starling: Minimizing Communication Overhead in Virtualized Computing Platforms Using Decentralized Affinity-Aware Migration;Jason Sonnek 等;《2010 39th International Conference on Parallel Processing》;20100913;第229页左栏第1段 *
XenLoop: A Transparent High Performance Inter-VM Network Loopback;Jian Wan等;《CLUSTER COMPUTING,KLUWER ACADEMIC PUBLISHERS》;20090117;正文第1页左栏第1段-正文第9页右栏倒数第1段,图1-10 *

Also Published As

Publication number Publication date
WO2017082757A1 (en) 2017-05-18
CN108351802A (zh) 2018-07-31

Similar Documents

Publication Publication Date Title
US11061712B2 (en) Hot-plugging of virtual functions in a virtualized environment
US10963282B2 (en) Computing service with configurable virtualization control levels and accelerated launches
US11200079B2 (en) System and method for virtual machine live migration
US10374885B2 (en) Reconfigurable server including a reconfigurable adapter device
CN106489251B (zh) 应用拓扑关系发现的方法、装置和系统
JP6224846B2 (ja) プロバイダ定義インターフェイスを介したクライアント構内リソース制御
US9569245B2 (en) System and method for controlling virtual-machine migrations based on processor usage rates and traffic amounts
US20190303345A1 (en) Virtual rdma switching for containerized applications
US8244924B2 (en) Discovery and configuration of device configurations
US20170272400A1 (en) Network virtualization of containers in computing systems
US20100287262A1 (en) Method and system for guaranteed end-to-end data flows in a local networking domain
CN102316043B (zh) 端口虚拟化方法、交换机及通信系统
US11940933B2 (en) Cross address-space bridging
US11734172B2 (en) Data transmission method and apparatus using resources in a resource pool of a same NUMA node
CN113312143A (zh) 云计算系统、命令处理方法及虚拟化仿真装置
US11843508B2 (en) Methods and apparatus to configure virtual and physical networks for hosts in a physical rack
WO2013086861A1 (zh) 一种多路径访问i/o设备的方法、i/o多路径管理器及系统
EP3985508A1 (en) Network state synchronization for workload migrations in edge devices
CN108351802B (zh) 计算机数据处理系统和用于虚拟机通信的基于通信流量的优化的方法
WO2023089387A1 (en) Live migration between hosts of a virtual machine connection to a host interface
CN113127144B (zh) 一种处理方法、装置及存储介质
CN115827148A (zh) 一种资源管理方法、装置、电子设备及存储介质
TW202224395A (zh) 用於跨越多個計算域進行應用程式部署之方法及其裝置
US20230418648A1 (en) Efficient network device failover management for virtual machines
US12008412B2 (en) Resource selection for complex solutions

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant