[go: up one dir, main page]

CN115061773A - 一种数据处理方法、装置、设备及存储介质 - Google Patents

一种数据处理方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN115061773A
CN115061773A CN202210495319.0A CN202210495319A CN115061773A CN 115061773 A CN115061773 A CN 115061773A CN 202210495319 A CN202210495319 A CN 202210495319A CN 115061773 A CN115061773 A CN 115061773A
Authority
CN
China
Prior art keywords
virtual machine
vifa
layer
target
information
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.)
Pending
Application number
CN202210495319.0A
Other languages
English (en)
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.)
Lenovo Beijing Ltd
Original Assignee
Lenovo Beijing 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 Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CN202210495319.0A priority Critical patent/CN115061773A/zh
Publication of CN115061773A publication Critical patent/CN115061773A/zh
Priority to US18/121,491 priority patent/US20230359477A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种数据处理方法、装置、设备及存储介质,包括:基于所述第一VIFA层,获得所述源虚拟机的目标信息;所述目标信息包括控制面信息和数据面信息;确定目标虚拟机包括第二VIFA层;建立所述第一VIFA层与所述第二VIFA层之间的虚拟接口传递关系;基于所述虚拟接口传递关系,将所述目标信息传输至所述目标虚拟机。对于本申请的方案,在对源虚拟机的数据进行迁移时,无需进行设备的插拔,支持热迁移,且迁移效率高。

Description

一种数据处理方法、装置、设备及存储介质
技术领域
本申请涉及数据处理技术领域,涉及但不限于数据处理方法、装置、设备及存储介质。
背景技术
随着数据处理技术的不断发展,虚拟机的相关应用得到广泛发展,如何高效的进行虚拟机的迁移成为当前亟需解决的问题。
单根的输入/输出虚拟化(Single-Root I/O Virtualization,SR-IOV)方式下通过虚拟高速串行计算机扩展总线(peripheral component interconnect express,PCIe)可直接将设备透传(passthrough)给虚拟机,具有较高的网络性能。
由于SR-IOV是通过直接存储器访问(Direct Memory Access,DMA)将数据包传输至虚拟机的,而DMA借助硬件输入输出内存管理单元(input output memory managementunit,IOMMU)将数据从虚拟功能模块(Virtual Function,VF)拷贝到虚拟机的内存。
这个过程对虚拟机监视器(virtual machine monitor,hypervisor)是透明的,hypervisor无法感知虚拟机的信息(例如内存)被修改,所以,无法支持虚拟机的热迁移;且一般通过重新插拔的方式进行迁移,效率较低。
发明内容
本申请提供一种数据处理方法及装置、设备、存储介质,在对源虚拟机的数据进行迁移时,无需进行设备的插拔,支持热迁移,且迁移效率高。
本申请的技术方案是这样实现的:
本申请提供了一种数据处理方法,所述方法应用于源虚拟机,源虚拟机包括第一虚拟接口功能抽象(Virtual Interface Function Abstract,VIFA)层,所述方法包括:
基于所述第一VIFA层,获得所述源虚拟机的目标信息;所述目标信息包括控制面信息和数据面信息;
确定目标虚拟机包括第二VIFA层;
建立所述第一VIFA层与所述第二VIFA层之间的虚拟接口传递关系;
基于所述虚拟接口传递关系,将所述目标信息传输至所述目标虚拟机。
本申请还提供了一种数据处理方法,所述方法应用于目标虚拟机,所述目标虚拟机包括第二VIFA层,所述方法包括:
确定源虚拟机包括第一VIFA层;
建立所述第一VIFA层与所述第二VIFA层之间的虚拟接口传递关系;
基于所述虚拟接口传递关系,接收所述源虚拟机发送的目标信息;所述目标信息包括数据面信息和控制面信息。
本申请提供了一种数据处理装置,所述装置部署于源虚拟机,所述源虚拟机包括第一VIFA层,所述装置包括:
获得单元,用于基于所述第一VIFA层,获得所述源虚拟机的目标信息;所述目标信息包括控制面信息和数据面信息;
第一确定单元,用于确定目标虚拟机包括第二VIFA层;
第一建立单元,用于建立所述第一VIFA层与所述第二VIFA层之间的虚拟接口传递关系;
第一传输单元,用于基于所述虚拟接口传递关系,将所述目标信息传输至所述目标虚拟机。
本申请还提供了一种数据处理装置,所述装置部署于目标虚拟机,所述目标虚拟机包括第二VIFA层,所述装置包括:
第二确定单元,用于确定源虚拟机包括第一VIFA层;
第二建立单元,用于建立所述第一VIFA层与所述第二VIFA层之间的虚拟接口传递关系;
第二传输单元,用于基于所述虚拟接口传递关系,接收所述源虚拟机发送的目标信息;所述目标信息包括数据面信息和控制面信息。
本申请还提供了一种电子设备,包括:存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述数据处理方法。
本申请还提供了一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述数据处理方法。
对于本申请的方案,源虚拟机上配置了第一虚拟接口功能抽象VIFA层,目标虚拟机也包括第二VIFA层,通过第一VIFA层获取到源虚拟机的目标信息(控制面信息和数据面信息),再通过第一VIFA层与第二VIFA层之间的虚拟接口传递关系将目标信息传输至目标虚拟机。这样,一方面,基于第一VIFA层可以得到源虚拟机的目标信息,提高了对于目标信息的感知度;支持热迁移,且迁移效率高;另一方面,通过第一VIFA层与第二VIFA层之间的虚拟接口传递关系将目标信息传输至目标虚拟机;从而在对源虚拟机的数据进行迁移时,无需进行设备的插拔,支持热迁移,且迁移效率高。
附图说明
图1为本申请实施例提供的数据处理系统的一种可选的结构示意图;
图2为本申请实施例提供的数据处理方法的一种可选的流程示意图;
图3为本申请实施例提供的数据处理方法的一种可选的流程示意图;
图4为本申请实施例提供的数据处理方法的一种可选的流程示意图;
图5为本申请实施例提供的数据处理方法的一种可选的流程示意图;
图6为本申请实施例提供的数据处理方法的一种可选的流程示意图;
图7为本申请实施例提供的数据处理方法的一种可选的流程示意图;
图8为本申请实施例提供的数据处理方法的一种可选的流程示意图;
图9为本申请实施例提供的数据处理方法的一种可选的流程示意图;
图10为本申请实施例提供的数据处理系统的一种可选的结构示意图;
图11为本申请实施例提供的数据处理系统的一种可选的结构示意图;
图12为本申请实施例提供的数据处理装置的一种可选的结构示意图;
图13为本申请实施例提供的数据处理装置的一种可选的结构示意图;
图14为本申请实施例提供的电子设备的一种可选的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对申请的具体技术方案做进一步详细描述。以下实施例用于说明本申请,但不用来限制本申请的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅是为例区别不同的对象,不代表针对对象的特定排序,不具有先后顺序的限定。可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
本申请实施例可提供数据处理方法、装置、设备及存储介质。实际应用中,数据处理方法可由数据处理装置实现,数据处理装置中的各功能实体可以由电子设备的硬件资源,如处理器等计算资源、通信资源(如用于支持实现光缆、蜂窝等各种方式通信)协同实现。
本申请实施例提供的数据处理方法应用于数据处理系统,数据处理系统包括:源虚拟机和目标虚拟机。
源虚拟机包括的第一VIFA层,源虚拟机用于执行:基于所述第一VIFA层,获得所述源虚拟机的目标信息;所述目标信息包括控制面信息和数据面信息;确定目标虚拟机包括第二VIFA层;建立所述第一VIFA层与所述第二VIFA层之间的虚拟接口传递关系;基于所述虚拟接口传递关系,将所述目标信息传输至所述目标虚拟机。
目标虚拟机包括第二VIFA层,目标虚拟机用于执行:确定源虚拟机包括第一VIFA层;建立所述第一VIFA层与所述第二VIFA层之间的虚拟接口传递关系;基于所述虚拟接口传递关系,接收所述源虚拟机发送的目标信息;所述目标信息包括数据面信息和控制面信息。
需要说明的是,本申请实施例对于源虚拟机和目标虚拟机具体的部署方式不作限定,可以根据实际需求进行配置。
在一种可能的实施方式中,可以将源虚拟机和目标虚拟机集成于同一个电子设备上;对应的,本申请的数据处理方法用于将一个电子设备上的源虚拟机的目标信息迁移至该电子设备上的目标虚拟机。
在另一种可能的实施方式中,也可以将源虚拟机和目标虚拟机分别独立部署于不同的电子设备上;对应的,本申请的数据处理方法用于将一个电子设备上的源虚拟机的目标信息迁移至另一个电子设备上的目标虚拟机。
作为一示例,数据处理系统应用于如图1所示的场景,数据处理系统包括:第一设备101和第二设备102。其中,第一设备101与第二设备102之间可以通信。
第一设备101上部署了源虚拟机1011,源虚拟机1011包括的第一VIFA层,第一设备101通过源虚拟机1011执行:基于所述第一VIFA层,获得所述源虚拟机的目标信息;所述目标信息包括控制面信息和数据面信息;确定目标虚拟机包括第二VIFA层;建立所述第一VIFA层与所述第二VIFA层之间的虚拟接口传递关系;基于所述虚拟接口传递关系,将所述目标信息传输至所述目标虚拟机。
第二设备102上部署了目标虚拟机1021,目标虚拟机1021包括第二VIFA层,第二设备102通过目标虚拟机执行:确定源虚拟机包括第一VIFA层;建立所述第一VIFA层与所述第二VIFA层之间的虚拟接口传递关系;基于所述虚拟接口传递关系,接收所述源虚拟机发送的目标信息;所述目标信息包括数据面信息和控制面信息。
其中,第一设备101和第二设备102可以为具有相关数据处理能力的电子设备。示例性的,第一设备101和第二设备102可以为服务器。
需要说明的是,本申请实施例对数据处理系统包括源虚拟机1011以及目标虚拟机1021的具体数量不作限定,可以根据具体的场景需求进行配置。例如,数源虚拟机1011、目标虚拟机1021的数量可以是一个,也可以是多个。
下面,结合图1所示的数据处理系统的示意图,对本申请实施例提供的数据处理方法、装置、设备及存储介质的各实施例进行说明。
第一方面,本申请实施例提供一种数据处理方法,该方法应用于数据处理装置;其中,该数据处理装置可以部署于图1中的源虚拟机1011或者目标虚拟机1021。下面,以源虚拟机或者目标虚拟机作为执行主体,对本申请实施例提供的数据处理过程进行说明。
图2示意了一种可选的数据处理方法在源虚拟机侧的流程示意图,参考图2所示的内容,该数据处理方法可以包括但不限于图2所示的S201至S204。
本申请实施例对源虚拟机的数量不作限定,可以根据实际需求进行配置。下面,以一个虚拟机的迁移过程为例,对数据迁移过程进行说明。
若待迁移的源虚拟机的数量为多个,则针对多个源虚拟机中的每个源虚拟机均执行该数据迁移该过程。这里,多个源虚拟机的迁移可以是并行的,也可以是串行的。
S201、源虚拟机基于所述第一VIFA层,获得所述源虚拟机的目标信息。
源虚拟机包括第一虚拟接口功能抽象VIFA层。
源虚拟机为待迁移的虚拟机。
VIFA层用于限定:如何获取源虚拟机待迁移的目标信息,如何进行目标信息迁移,以及如何接收目标信息等等。
第一VIFA层为源虚拟机侧的VIFA层,可以用于限定如何获取源虚拟机待迁移的目标信息。
目标信息包括控制面信息和数据面信息。其中,控制面信息可以包括但不限于源虚拟机的各种配置信息、状态信息等;数据面信息可以包括但不限于:脏页内存等等。
本申请实施例对源虚拟机基于第一VIFA层获取目标信息的具体方式不作限定,可以根据实际需求进行配置。
在一种可能的实施方式中,第一VIFA层中包括:地址记录文件和资源抽象结构体;对应的S201可以实施为:源虚拟机基于第一VIFA层中的地址记录文件获得数据面信息;源虚拟机基于第一VIFA层中的资源抽象结构体,获得控制面信息。
在另一种可能的实施方式中,第一VIFA层中包括至少两个资源抽象结构体;对应的S201可以实施为:源虚拟机基于第一VIFA层中的一个资源抽象结构体,获得数据面信息;源虚拟机基于第一VIFA层中的另一个资源抽象结构体,获得控制面信息。
S202、源虚拟机确定目标虚拟机包括第二VIFA层。
第二VIFA层为目标虚拟机侧的VIFA层。
本申请实施例对确定目标虚拟机对否包括第二VIFA层的方式不作限定,可以根据实际需求进行配置。例如,可以在源虚拟机侧检测确定,也可以在目标虚拟机侧检测确定。
在一种可能的实施方式中,源虚拟机向目标虚拟机发送一个检测请求,检测请求用于指示目标虚拟机自行检测是否包括第二VIFA层;目标虚拟机在接收到检测请求后,根据检测请求的指示,检测是否包括第二VIFA层,在确定包括第二VIFA层的情况下,目标虚拟机向源虚拟机发送一个检测响应,源虚拟机在接收到检测响应的情况下,确定目标虚拟机包括第二VIFA层。
需要说明的是,源虚拟机在没有接收到检测响应的情况下,确定目标虚拟机不包括第二VIFA层;则无法通过本申请实施例提供的数据处理方法进行目标信息的迁移。
在另一种可能的实施方式中,源虚拟机通过检测目标虚拟机是否包括第二VIFA层的内容(资源抽象结构体、地址记录文件等)来确定目标虚拟机是否包括第二VIFA层;或者源虚拟机通过检测目标虚拟机是否包括第二VIFA层对应的功能来确定目标虚拟机是否包括第二VIFA层。
S203、源虚拟机建立所述第一VIFA层与所述第二VIFA层之间的虚拟接口传递关系。
VIFA层还用于限定如何定义虚拟接口传递关系,以使通过该虚拟接口传递关系将目标信息传输至目标虚拟机。
本申请实施例对具体的虚拟接口传递关系的数量不作限定,可以根据实际需求进行配置。
在一种可能的实施方式中,S203可以实施为:源虚拟机在第一VIFA层与第二VIFA层之间建立一个虚拟接口传递关系,以使通过该虚拟接口传递关系传输控制面信息和数据面信息。
在另一种可能的实施方式中,S203可以实施为:源虚拟机在第一VIFA层与第二VIFA层之间建立两个虚拟接口传递关系,以使通过一个虚拟接口传递关系传输控制面信息,通过另一个虚拟接口传递关系传输数据面信息。
本申请实施例对建立虚拟接口传递关系的具体方式不作限定,可以根据实际需求进行配置。例如,可以通过表格,或者其他对应关系的方式进行限定。
示例性的,虚拟接口传递关系可以包括:虚拟接口1,虚拟接口2。其中,虚拟接口1为第一VIFA层中的虚拟接口,虚拟接口2为第二VIFA层中的虚拟接口;通过逗号表示虚拟接口之间的数据传输方向,即将虚拟接口1作为数据输出方,将虚拟接口2作数据的接收方。
S204、源虚拟机基于所述虚拟接口传递关系,将所述目标信息传输至所述目标虚拟机。
在一种可能的实施方式中,若虚拟接口传递关系的数量为一,S204可以实施为:源虚拟机基于该虚拟接口传递关系,将目标信息传输至目标虚拟机。
在另一种可能的实施方式中,若虚拟接口传递关系的数量为二,S204可以实施为:源虚拟机基于一个虚拟接口传递关系,将数据面信息传输至目标虚拟机;基于另一个虚拟接口传递关系,将控制面信息传输至目标虚拟机。
具体的,源虚拟机基于虚拟接口传递关系,将目标信息传输至目标虚拟机的过程可以包括:源虚拟机基于虚拟接口传递关系,确定目标信息的数据输出接口,以及目标信息的接收接口,然后目标信息从输出接口输出至接收接口。
这里的输出接口和接收接口均为虚拟接口。
可以理解的,也可以将虚拟接口传递关系的数量配置为N,N为大于二的数值,对应的,将目标信息划分为N个类型的信息,然后将N个类型的信息中的每个类型的信息通过一个虚拟接口传递关系传输至目标虚拟机。
本申请提供了一种数据处理方法,所述方法应用于源虚拟机,源虚拟机包括第一虚拟接口功能抽象VIFA层,所述方法包括:基于所述第一VIFA层,获得所述源虚拟机的目标信息;所述目标信息包括控制面信息和数据面信息;确定目标虚拟机包括第二VIFA层;建立所述第一VIFA层与所述第二VIFA层之间的虚拟接口传递关系;基于所述虚拟接口传递关系,将所述目标信息传输至所述目标虚拟机。对于本申请的方案,源虚拟机上配置了第一虚拟接口功能抽象VIFA层,目标虚拟机也包括第二VIFA层,通过第一VIFA层获取到源虚拟机的目标信息(控制面信息和数据面信息),再通过第一VIFA层与第二VIFA层之间的虚拟接口传递关系将目标信息传输至目标虚拟机。这样,一方面,基于第一VIFA层可以得到源虚拟机的目标信息,提高了对于目标信息的感知度;支持热迁移,且迁移效率高;另一方面,通过第一VIFA层与第二VIFA层之间的虚拟接口传递关系将目标信息传输至目标虚拟机;从而在对源虚拟机的数据进行迁移时,无需进行设备的插拔,支持热迁移,且迁移效率高。
下面,对S203源虚拟机建立所述第一VIFA层与所述第二VIFA层之间的虚拟接口传递关系的过程进行说明。
该过程可以包括但不限于下述方式A1或方式B1。
方式A1、在第一VIFA层与第二VIFA层之间建立一个虚拟接口传递关系;
方式B1、在第一VIFA层与第二VIFA层之间建立两个虚拟接口传递关系。
下面,对方式A1在第一VIFA层与第二VIFA层之间建立一个虚拟接口传递关系的过程进行说明。
对于方式A1,源虚拟机在第一VIFA层包括的虚拟接口中确定一个虚拟接口,作为输出目标信息的虚拟接口,在第二VIFA层包括的虚拟接口中确定一个虚拟接口,作为接收目标信息的虚拟接口;并根据虚拟接口传递关系的格式,建立输出目标信息的虚拟接口与接收目标信息的虚拟接口之间的传递关系。
其中,对于在第二VIFA层包括的虚拟接口中确定一个虚拟接口作为接收目标信息的虚拟接口,可以是源虚拟机确定;也可以是目标虚拟机确定后通知源虚拟机。
下面,对方式B1在第一VIFA层与第二VIFA层之间建立两个虚拟接口传递关系的过程进行说明。
其中,第一VIFA层包括第一虚拟接口和第二虚拟接口;第二VIFA层包括第三虚拟接口和第四虚拟接口。
本申请实施例对于虚拟接口的具体类型不作限定,可以根据实际需求进行配置。示例性的,虚拟接口可以为高速串行计算机扩展总线(peripheral componentinterconnect express,PCIe)类型的虚拟接口。
如图3所示,方式B1可以包括但不限于S2031和S2032。
S2031、源虚拟机建立所述第一虚拟接口与所述第三虚拟接口之间的第一虚拟接口传递关系。
示例性的,在虚拟接口传递关系的为表格格式的情况下,S2031可以实施为:源虚拟机将第一虚拟接口作为数据输出接口,将第三虚拟接口作为数据接收接口,建立数据输出接口与数据接收接口之间的第一虚拟接口传递关系。
示例1,虚拟接口传递关系如表1所示。
表1虚拟接口传递关系示例
虚拟接口传递关系 第一虚拟接口传递关系 ……
数据输出接口 第一虚拟接口 ……
数据接收接口 第三虚拟接口 ……
S2032、源虚拟机建立所述第二虚拟接口与所述第四虚拟接口之间的第二虚拟接口传递关系。
示例性的,在虚拟接口传递关系的为表格格式的情况下,S2032可以实施为:源虚拟机将第二虚拟接口作为数据输出接口,将第四虚拟接口作为数据接收接口,建立数据输出接口与数据接收接口之间的第二虚拟接口传递关系。
示例1,虚拟接口传递关系如表2所示。
表2虚拟接口传递关系示例
Figure BDA0003632780190000111
与方式B1相比,方式A1的实现简单,传输效率高;与方式A1相比,方式B1将控制面信息与数据面信息进行了区分,在目标虚拟机侧可以直接确定接收到的信息类型,减少了接收到数据后的数据配置时间。
下面,对S204源虚拟机基于所述虚拟接口传递关系,将所述目标信息传输至所述目标虚拟机的过程进行说明。
对应S203中的方式A1和方式B1,S204可以包括但不限于下述方式A2和方式B2。
方式A2、基于一个虚拟接口传递关系传输目标信息;
方式B2、基于两个虚拟接口传递关系传输目标信息。
在方式A2中、源虚拟机基于一个虚拟接口传递关系,将目标信息传输至目标虚拟机。
下面,对方式B2源虚拟机基于两个虚拟接口传递关系传输目标信息的过程进行说明。
如图4所示,方式B2可以包括但不限于S2041和S2042。
S2041、源虚拟机基于所述第一虚拟接口传递关系,将所述控制面信息传输至所述目标虚拟机。
第一虚拟接口传递关系为用于传输控制面信息的虚拟接口。
S2042、源虚拟机基于所述第二虚拟接口传递关系,将所述数据面信息传输至所述目标虚拟机。
第二虚拟接口传递关系为用于传输数据面信息的虚拟接口。
与方式B2相比,方式A2的实现简单,传输效率高;与方式A2相比,方式B2将控制面信息与数据面信息进行了区分,在目标虚拟机侧可以直接确定接收到的信息类型,减少了接收到数据后的数据配置时间。
下面,对S201源虚拟机基于所述第一VIFA层,获得所述源虚拟机的目标信息的过程进行说明。
如图5所示,该过程可以包括但不限于下述S2011和S2014。
S2011、源虚拟机在所述第一VIFA层的第一地址记录文件中,查找所述数据面信息对应的第一地址。
第一地址记录文件中记录了数据面信息的存储地址。
S2011可以实施为:源虚拟机在第一VIFA层中查找第一地址记录文件,在第一地址记录文件中,查找数据面信息对应的第一地址。
其中,这里数据面信息对应的第一地址可以是一个地址信息,也可以是多个地址信息。
S2012、源虚拟机基于所述第一地址,获得所述数据面信息。
S2012可以实施为:源虚拟机在物理存储盘中,查找第一地址下的存储数据,从而得到数据面信息。
S2013、源虚拟机在所述第一VIFA层中,确定所述控制面信息对应的第一资源抽象结构体。
资源抽象结构体可以用于存储控制面信息;
在存储空间允许的情况下,资源抽象结构体还可以用于存储数据面信息。
第一资源抽象结构体,用于存储控制面信息。
S2013可以实施为:源虚拟机在第一VIFA层中查找资源抽象结构体,在资源抽象结构体中确定存储控制面信息的第一资源抽象结构体。
S2014、源虚拟机在所述第一资源抽象结构体中,获得所述控制面信息。
S2014可以实施为:源虚拟机将第一资源抽象结构体中存储的内容作为控制面信息。
本申请实施例提供的数据处理方法,在执行S201源虚拟机基于所述第一VIFA层,获得所述源虚拟机的目标信息之前,如图6所示,还可以包括但不限于S601至S605。
S601、源虚拟机将所述源虚拟机的目标信息分离为所述控制面信息和所述数据面信息。
S601可以实施为:源虚拟机将源虚拟机的目标信息中的控制信息和状态信息分离出来,作为控制面信息,将其他信息(例如脏页内存等信息)作为数据面信息。
S602、源虚拟机获取存储所述数据面信息的第一地址。
S602可以实施为:源虚拟机获取存储数据面信息的地址信息,将该地址信息作为第一地址。
这里的第一地址可以是一个地址信息也可以是多个地址信息。
S603、源虚拟机在所述第一地址记录文件中记录所述第一地址。
S603可以实施为:源虚拟机在第一地址记录文件中,记录该第一地址,以使通过该第一地址可以查找到数据面信息。
S604、源虚拟机在所述第一VIFA层中建立第一资源抽象结构体。
S604可以实施为:源虚拟机在第一VIFA层中建立一个第一资源抽象结构体,并配置该第一资源抽象结构体用于存储控制面信息。
S605、源虚拟机将所述控制面信息存储至所述第一资源抽象结构体。
实际中,控制面信息的数据量一般较少,所以将控制面信息直接存储至资源抽象结构体中,数据面信息的数据量可能较大,所以通过在第一地址文件中记录数据面的第一地址,从而通过第一地址可以查找到数据面信息。这样,在迁移时,可以快速准确的获取到目标信息,提高了迁移的效率。
可选的,在所述数据面信息包括待迁移的脏页内存的情况下,如图7所示,在执行S201源虚拟机基于所述第一VIFA层获得所述源虚拟机的目标信息的过程还可以包括但不限于S701至S703。
S701、源虚拟机在所述第一VIFA层的第一地址记录文件中,确定脏位图。
脏位图包括至少一个脏页地址以及至少一个脏页地址中每个脏页地址对应的脏页内存。
S701可以实施为:源虚拟机在第一VIFA层的第一地址记录文件中,查找到存储脏位图的地址,从而基于该存储脏位图的地址得到脏位图。
S702、源虚拟机针对所述至少一个脏页地址中的每个所述脏页地址,确定每个所述脏页地址对应的脏页内存,得到至少一个脏页内存。
S702可以实施为:源虚拟机针对脏位图包括的至少一个脏页地址中的每个脏页地址,通过该脏页地址得到该脏页地址下的脏页内存,从而得到至少一个脏页内存。
S703、源虚拟机确定所述待迁移的脏页内存为所述至少一个脏页内存。
相关技术中,脏页内存无法感知,本申请通过第一VIFA层中第一地址记录文件记录脏位图的地址,脏页图中包括脏页地址,从而可以得到脏页内存。
图8示意了一种可选的数据处理方法在目标虚拟机侧的流程示意图,参考图8所示的内容,该数据处理方法可以包括但不限于图8所示的S801至S803。
其中,目标虚拟机包括第二VIFA层。
第二VIFA层为目标虚拟机侧的VIFA层。
S801、目标虚拟机确定源虚拟机包括第一VIFA层。
S801的实施可以参考S202源虚拟机确定目标虚拟机包括第二VIFA层的描述,此处不再一一赘述。
S802、目标虚拟机建立所述第一VIFA层与所述第二VIFA层之间的虚拟接口传递关系。
S802的实施可以参考S203源虚拟机建立所述第一VIFA层与所述第二VIFA层之间的虚拟接口传递关系的详细描述,此处不再一一赘述。
这里需要说明的是,目标虚拟机侧建立的虚拟接口传递关系应该与源虚拟机侧建立的虚拟接口传递关系保持一致。例如,可以在源虚拟机侧建立虚拟接口传递关系后,将该虚拟接口传递关系传输至目标虚拟接侧,目标虚拟机侧基于接收到的虚拟接口传递关系建立目标虚拟机侧的虚拟接口传递关系。
S803、目标虚拟机基于所述虚拟接口传递关系,接收所述源虚拟机发送的目标信息。
目标信息包括数据面信息和控制面信息。
目标虚拟机基于虚拟接口传递关系确定目标信息的输出接口与接收接口,通过该接收接口接收该输出接口传输的目标信息。其他实施过程可以参考S204、源虚拟机基于所述虚拟接口传递关系,将所述目标信息传输至所述目标虚拟机的详细描述,此处不再一一赘述。
对于本申请的方案,源虚拟机上配置了第一虚拟接口功能抽象VIFA层,目标虚拟机也包括第二VIFA层,通过第一VIFA层与第二VIFA层之间的虚拟接口传递关系将目标信息传输至目标虚拟机。这样,通过第一VIFA层与第二VIFA层之间的虚拟接口传递关系将目标信息传输至目标虚拟机;从而在对源虚拟机的数据进行迁移时,无需进行设备的插拔,支持热迁移,且迁移效率高。
本申请实施例提供的数据方法在接收到目标信息后,还可以用于在目标虚拟机侧自动配置信息。具体的,如图9所示,该过程可以包括但不限于S901至S903。
第二VIFA层包括第二地址记录文件和第二抽象资源结构体。
第二地址记录文件为目标虚拟机侧的记录数据面信息的存储地址的文件。
第二抽象资源结构体为目标虚拟机侧存储控制面信息的结构体。
S901、目标虚拟机确定存储所述数据面信息的第二地址。
S901可以实施为:目标虚拟机在目标信息中确定存储数据面信息的第二地址。
第二地址为数据面信息在目标虚拟机侧的存储地址。第二地址可以为一个地址信息,也可以为多个地址信息。
S902、目标虚拟机在所第二地址记录文件中记录所述第二地址,以使通过所述第二地址获取到所述数据面信息。
S902可以实施为:目标虚拟机在第二地址记录文件中记录该第二地址,以使通过目标虚拟机可以通过第二地址得到数据面信息。
S903、目标虚拟机建立所述第二资源抽象结构体与所述控制面信息之间的关联关系,以使通过所述关联关系获取到所述控制面信息。
这样,目标虚拟机侧可以在接收到目标信息后,直接将存储数据面信息的第二地址存储至第二地址记录文件,并建立第二资源结构体与控制面信息之间的关联关系,从而可以通过该第二地址和关联关系直接得到目标信息,即可以得到源虚拟机的迁移信息,从而省去了人工配置过程,提高了迁移的效率。
下面,以虚拟机的迁移的完整过程为例,对本申请实施例提供的数据处理方法进行说明。
单根的输入/输出虚拟化(Single-Root I/O Virtualization,SR-IOV)方式下可以创建多个虚拟PCI,通过多个虚拟PCI可直接将设备透传(passthrough)给虚拟机,所以可以达到较高的网络性能。
但是,缺点是无法很好地支持虚拟机热迁移。原因可以包括:SR-IOV是通过直接存储器访问(Direct Memory Access,DMA)将数据包传输至虚拟机的,而DMA借助硬件输入输出内存管理单元(input output memory management unit,IOMMU)将数据从虚拟功能模块(Virtual Function,VF)拷贝到虚拟机的内存。这个过程对虚拟机监视器(virtualmachine monitor,hypervisor)是透明的,hypervisor无法感知虚拟机的哪些内存被修改,所以热迁移时,也就无法及时同步这些关于内存修改,从而导致丢包。
在迁移过程中,目标虚拟机会创建一个新的VF,但是目标虚拟机内部的VF驱动保存的还是之前源host VF的状态信息,所以hypervisor必须让,目标虚拟机能够访问新的VF设备并在guest VF驱动和新的VF之间同步状态。
相关技术在进行虚拟机迁移时可以包括以下两种解决方案。
解决方案1可以包括:通过绑定(bond)方式将一个半虚拟化设备和一个SR-IOV设备做bond,一般转发场景,通过使用SR-IOV设备传输,热迁移时候切换为半虚拟化设备,在虚拟机的操作系统(GuestOS)中通过Bond方式进行热迁移。
可以看出:对于解决方案1,通过Bond方式进行热迁移传输路径长,在虚拟机(Virtual Machine,VM)规格比较大时,迁移时间会比较长,性能波动大,且管理复杂。
此外,如果虚拟机中的应用采用数据平面开发套件(Data Plane DevelopmentKit,DPDK),由于DPDK的基于用户态的轮询机制的驱动(Poll Mode Driver,PMD)仅能接管某一种类型的设备(SR-IOV的直通VF设备或半虚拟化设备),即无法支持这种bond设备。
解决方案2可以包括:通过Passthrough进行迁移,这种解决方案无法纯软件支持SRIOV环境下的虚拟机热迁移技术,需要手动插拔,重新配置IP地址。具体可以包括:需要先分离(detach)网卡,待迁移到对端后再合并(attach)网卡,重新获取互联网协议(InternetProtocol,IP)地址。
可以看出:对于解决方案2,需要手动插拔,还需要重新配置IP地址,严重影响网络连接,热迁移失败。
针对上述问题,本申请实施例提供了一种数据处理方法,应用于数据处理系统,用于实现SRIOV虚拟机热迁移。
如图10所示,数据处理系统可以包括源虚拟机侧1001和目标虚拟机侧源虚拟机侧1002。
源虚拟机侧1001可以包括:源虚拟机(source VM)层10011、第一虚拟操作系统模拟器(Quick EMUlator,QEMU)层10012、第一虚拟功能输入输出(Virtual Function In/Out,VFIO)层10013、第一输入输出内存管理单元(input/output memory managementunit,IOMMU)层10014、第一虚拟接口功能抽象(Virtual Interface Function Abstract,VIFA)层10015以及第一硬件设备(Hardware)层10016。
目标虚拟机侧源虚拟机侧1002可以包括:目标虚拟机(Target VM)层源虚拟机侧10021、第二虚拟操作系统模拟器(Quick EMUlator,QEMU)层源虚拟机侧10022、第二虚拟功能输入输出(Virtual Function In/Out,VFIO)层源虚拟机侧10023、第二输入输出内存管理单元(input/output memory management unit,IOMMU)层源虚拟机侧10024、第二虚拟接口功能抽象(Virtual Interface Function Abstract,VIFA)层源虚拟机侧10025以及第二硬件设备(Hardware)层源虚拟机侧10026。
需要说明的是,VIFA层(第一VIFA层和第二VIFA层)是本申请的实施例新增加的。
source VM层10011和Target VM层源虚拟机侧10021,属于虚拟机层,其中,在本申请的实施例中,source VM层10011属于源虚拟机侧,Target VM层源虚拟机侧10021目标虚拟机侧;在本申请的实施例中,将source VM层10011的数据信息热迁移至Target VM层源虚拟机侧10021的相关位置。
第一QEMU层10012和第二QEMU层源虚拟机侧10022,属于模拟处理器软件,用于模拟电脑系统,包括CPU和周边设备等。
第一VFIO层10013和第二VFIO层源虚拟机侧10023,属于用户态驱动框架,用于将设备信息暴露到用户空间。
第一IOMMU层10014和第二IOMMU层源虚拟机侧10024,属于内存管理单元,用于在虚拟内存中寻址。
第一VIFA层10015和第二VIFA层源虚拟机侧10025,属于添加的虚拟化层,用于在SRIOV环境下进行虚拟机的热迁移。
第一Hardware层10016和第二Hardware层源虚拟机侧10026,属于物理层,用于存储和传输数据。
需要说明的是,随机存取存储器(Random Access Memory,RAM)需要设置dirty(脏页)状态才能进行迁移,Dirty RAM to dst表示是将脏内存传输到目的地(destination)。
其中,在迁移完成前需要先把设备的状态信息进行迁移,之后再继续迁移剩余的内存数据。
VIFA既发送设备状态信息也传输硬件虚拟化输入输出(in/out,IO)接口,例如,高速串行计算机扩展总线(peripheral component interconnect express,PCIe)和内存数据等。
在本申请的实施例中,VIFA对硬件设备的PCIe(也可以简称为PCI)信息和硬件设备状态进行抽象,将硬件设备的PCI信息和状态保存在虚拟设备结构体中,hypervisor不直接从硬件PCI信息和硬件platform中获取设备透传信息,而是修改为从该虚拟设备接口中获取透传信息。
本申请的实施例在VFIO内核框架上进行了扩展,增加了一个VIFA层(也可以称为VIFA设备),增加了对VIFA这类虚拟设备的支持,从原来只支持从标准的硬件PCI和硬件平台(platform)设备获取透传信息,比如:基地址存储器(PCI bar)空间;变成了既支持直接从硬件设备获取又可以从VIFA设备的虚拟设备接口来获取。
VIFA利用VFIO框架构建VIFA虚拟设备,将VFIO区域映射到设备资源(例如,内存映射I/O(Memory-mapped I/O,MMIO),PCI配置空间),注册一个新的VFIO扩展区域VIFA用于设备上下文传输,也可以控制设备运行状态。
在VFIO框架PCI配置的区域设置(Region setup)可被QEMU捕获,在目标VM侧,QEMU需要经过相同的PCI配置区域来构建设备资源映射和虚拟中断注入补丁。从VFIO IOMMU驱动查询内存映射,建立脏位图,VIFA驱动(driver)为DMA操作创建阴影页表,可以跟踪用于DMA的访客页面并建立脏位图以进行迁移。
其中,脏位图中包括内存脏页地址,用于标记迁移的内存。
阴影列表功能是跟踪通过DMA更新的内存,内容是更新的内存地址。
VIFA driver将在运行时,固定内存以供DMA使用,这些映射由VFIO IOMMU驱动程序跟踪,迁移过程中QEMU可以从VFIO IOMMU驱动中查询它并建立脏位图来传输VIFA使用的DMA内存,以解决脏页的跟踪问题。
其中,由于VIFA注册到VFIO框架中,当DMA更新内存时,通过VIFA可以被回调函数感知到变化。
本申请的实施例具有以下技术效果:
一方面,通过半虚拟化的迁移方式,数据传输仍然通过DMA传输,保障迁移的高性能,同时抵消降低引入虚拟化层带来的性能损耗。
另一方面,通过DMA拷贝数据,节省虚拟化流程,进一步提高了迁移的效率。
再一方面,对VFIO进行扩展,支持通过硬件虚拟化IO进行迁移,扩大了迁移的场景。
本申请的实施例具有以下特点:
1、增加VIFA,实现在不损失硬件性能的前提下,支持虚拟机热迁移。
2、在VIFA中设计总线驱动单元(Bus Drive Unit,BDU),通过虚拟内存(PageFile,PF)驱动获取到存放在VF设备寄存器中的特征(ring)地址信息,提升脏页跟踪的效率与准确度。
其中,Ring地址信息包含了地址信息和内存之间的映射关系,即通过Ring地址可以得知哪些地址的内存被改变。这样,在确定内存对应的地址信息时,可以减少索引复杂度,以提升效率。
3、在VIFA中设计接口抽象单元(Interface Abstraction Unit,IAU),获取底层硬件设备的抽象,将和物理设备相关的驱动实现细节进行抽象,设计资源抽象结构体,提升了迁移的灵活性。
下面,对热迁移过程进行详细说明。
如图11所示,VIFA包含两个模块单元:总线驱动单元(BDU,Bus Drive Unit)和接口抽象单元(IAU,Interface Abstraction Unit)
BDU模块可以通过PF驱动获取到存放在VF设备寄存器中的ring地址信息,以获取具体的条目(entry)信息,进而跟踪脏页内存。BDU通过PF驱动获取VF寄存器中接收数据要存放的内存数据的起始地址和长度等信息。
IAU获取底层硬件设备的抽象,将和物理设备相关的驱动实现细节进行剥离抽象(即控制数据分离),利用资源抽象结构体,存储这些硬件设备的状态信息,方便BDU进行调度。
假设需要将主机(Host)1上的VM1上的数据热迁移至Hostn上的VMn。
如图11所示,Host1可以包括QEMU1、VIFO1、IOMMU1、VIFA1、物理网卡1;Hostn可以包括QEMU2、VIFO2、IOMMU2、VIFA2、物理网卡2;Host1和Hostn通过交换机(Switch,SW)传输信息。
Host1和Hostn分别将PCIe分为第一部分(part1)和第二部分(part2),以使通过part1迁移VM1上的数据面信息,通过part2迁移VM1上的控制面信息。
VIFA1包括:BDU1和IAU1。
VIFA2包括:BDU2和IAU2。
物理网卡1包括:虚拟文件管理器(virtual file manager,VFM)1、嵌入式网桥(Embedded Bridge)1以及硬件设备队列1。其中,硬件设备队列1可以包括:硬件设备1、硬件设备2和硬件设备3。
物理网卡2包括:虚拟文件管理器(virtual file manager,VFM)2、嵌入式网桥(Embedded Bridge)2以及硬件设备队列2。其中,硬件设备队列2可以包括:硬件设备A、硬件设备B和硬件设备C。
BDU1和BDU2,用于进行ring解析,获取待迁移的地址信息;并通过DMA的方式进行数据的热迁移;
IAU1和IAU2,用于将控制面数据进行分离,并将控制面数据存储至资源抽象结构体中。例如,在IAU1中,资源抽象结构体可以包括硬件设备抽象1、硬件设备抽象2和硬件设备抽象3。硬件设备抽象1、硬件设备抽象2和硬件设备抽象3用于存储不同硬件设备中的控制面数据。
下面,对VM热迁移前置流程进行说明。
1、首先在源和目的节点增加VIFA模块,使其均具有VIFA能力。
2、用户发送VM迁移指令,源节点虚拟机管理程序判断本地和目标节点是否具有VIFA能力,若具有,则开始迁移,若无,则VIFA取消迁移。
3、源节点VM管理程序向目标节点VM管理程序发送迁移请求。
迁移请求包括:源虚拟机地址、目标虚拟机地址。
4、目标节点VM管理程序基于VIFA模块,创建目标虚拟机。
下面,对VM热迁移进行流程进行说明。
1、VIFA驱动在初始化时会分配一个ring,其中包含若干entry信息,每个entry记录着接收数据要存放的地址。以使VF设备收到数据后,根据ring中entry的地址进行DMA数据传输。
2、BDU模块通过PF驱动获取到存放在VF设备寄存器中的ring地址信息,如果VF设备发生了重置,则重新发起获取请求。
3、访问VIFA,获取接收数据包的目的地址信息。
4、IAU获取底层硬件设备的抽象,将和物理设备相关的驱动实现细节进行分离得到控制面信息,设计资源抽象结构体,存储这些控制面信息,便于BDU进行调度。
5、IAU利用虚拟资源抽象,在资源抽象结构体中存储控制面的信息。
6、hypervisor关联此虚拟抽象结构体和VF之间的映射关系。
7、在迁移前,VIFA从VF PCI BAR中获取并存储VF控制面配置信息,并将PCIe分为part1(相当于第二虚拟接口传递关系)和part2(相当于第一虚拟接口传递关系)两部分,其中part1传输虚拟机中的数据面信息,part2传输VM的相关控制面信息。
8、迭代扫描VM内存,拷贝并迁移VM脏页的内存。
9、暂停VM,保存VM和中央处理器(central processing unit,CPU)状态。
10、将剩余配置和状态信息通过总线驱动单元传输到目的节点和目标虚拟机。
状态信息可以包括CPU寄存器的状态信息等。
11、在迁移后,目标节点VIFA将VF的控制面配置信息恢复到新的资源抽象结构体。
第二方面,为实现上述数据处理方法,本申请实施例的一种数据处理装置,下面对数据处理装置的结构示意图进行说明。
如图12所示,数据处理装置120部署于源虚拟机,所述源虚拟机包括第一VIFA层,数据处理装置120包括:获得单元1201、第一确定单元1202、第一建立单元1203和第一传输单元1204。其中:
获得单元1201,用于基于所述第一VIFA层,获得所述源虚拟机的目标信息;所述目标信息包括控制面信息和数据面信息;
第一确定单元1202,用于确定目标虚拟机包括第二VIFA层;
第一建立单元1203,用于建立所述第一VIFA层与所述第二VIFA层之间的虚拟接口传递关系;
第一传输单元1204,用于基于所述虚拟接口传递关系,将所述目标信息传输至所述目标虚拟机。
在一些实施例中,所述第一VIFA层包括第一虚拟接口和第二虚拟接口,所述第二VIFA层包括第三虚拟接口和第四虚拟接口,第一建立单元1203具体用于:
建立所述第一虚拟接口与所述第三虚拟接口之间的第一虚拟接口传递关系;
建立所述第二虚拟接口与所述第四虚拟接口之间的第二虚拟接口传递关系;
对应的,第一传输单元1204用于:
基于所述第一虚拟接口传递关系,将所述控制面信息传输至所述目标虚拟机;
基于所述第二虚拟接口传递关系,将所述数据面信息传输至所述目标虚拟机。
在一些实施例中,获得单元1201具体用于:
在所述第一VIFA层的第一地址记录文件中,查找所述数据面信息对应的第一地址;
基于所述第一地址,获得所述数据面信息;
在所述第一VIFA层中,确定所述控制面信息对应的第一资源抽象结构体;
在所述第一资源抽象结构体中,获得所述控制面信息。
在一些实施例中,数据处理装置120还包括预处理单元,预处理单元用于:
将所述源虚拟机的目标信息分离为所述控制面信息和所述数据面信息;
获取存储所述数据面信息的第一地址;
在所述第一地址记录文件中记录所述第一地址;
在所述第一VIFA层中建立第一资源抽象结构体;
将所述控制面信息存储至所述第一资源抽象结构体。
在一些实施例中,在所述数据面信息包括待迁移的脏页内存的情况下,所述基于所述第一VIFA层,获得单元1201还用于:
在所述第一VIFA层的第一地址记录文件中,确定脏位图;所述脏位图包括至少一个脏页地址以及所述至少一个脏页地址中每个所述脏页地址对应的脏页内存;
针对所述至少一个脏页地址中的每个所述脏页地址,确定每个所述脏页地址对应的脏页内存,得到至少一个脏页内存;
确定所述待迁移的脏页内存为所述至少一个脏页内存。
如图13所示,数据处理装置130部署于目标虚拟机,所述目标虚拟机包括第二VIFA层,数据处理装置130包括:第二确定单元1301、第二建立单元1302和第二传输单元1303。
第二确定单元1301,用于确定源虚拟机包括第一VIFA层;
第二建立单元1302,用于建立所述第一VIFA层与所述第二VIFA层之间的虚拟接口传递关系;
第二传输单元1303,用于基于所述虚拟接口传递关系,接收所述源虚拟机发送的目标信息;所述目标信息包括数据面信息和控制面信息。
在一些实施例中,数据处理装置130包括配置单元,配置单元具体用于:
确定存储所述数据面信息的第二地址;
在所述第二地址记录文件中记录所述第二地址,以使通过所述第二地址获取到所述数据面信息;
建立所述第二资源抽象结构体与所述控制面信息之间的关联关系,以使通过所述关联关系获取到所述控制面信息。
需要说明的是,本申请实施例提供的数据处理装置包括所包括的各单元,可以通过电子设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(CPU,Central Processing Unit)、微处理器(MPU,Micro ProcessorUnit)、数字信号处理器(DSP,Digital Signa l Processor)或现场可编程门阵列(FPGA,Field-Programmable Gate Array)等。
以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述的数据处理方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read OnlyMe mory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。
第三方面,为实现上述数据处理方法,本申请实施例提供一种电子设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述实施例中提供的数据处理方法中的步骤。
下面结合图14所示的电子设备140,对电子设备的结构图进行说明。
在一示例中,电子设备140可以为上述电子设备。如图14所示,所述电子设备140包括:一个处理器1401、至少一个通信总线1402、用户接口1403、至少一个外部通信接口1404和存储器1405。其中,通信总线1402配置为实现这些组件之间的连接通信。其中,用户接口1403可以包括显示屏,外部通信接口1404可以包括标准的有线接口和无线接口。
存储器1405配置为存储由处理器1401可执行的指令和应用,还可以缓存待处理器1401以及电子设备中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(FLASH)或随机访问存储器(Random AccessMemory,RAM)实现。
第四方面,本申请实施例提供一种存储介质,也就是计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中提供的数据处理方法中的步骤。
这里需要指出的是:以上存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请存储介质和设备实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一些实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种数据处理方法,所述方法应用于源虚拟机,所述源虚拟机包括第一虚拟接口功能抽象VIFA层,所述方法包括:
基于所述第一VIFA层,获得所述源虚拟机的目标信息;所述目标信息包括控制面信息和数据面信息;
确定目标虚拟机包括第二VIFA层;
建立所述第一VIFA层与所述第二VIFA层之间的虚拟接口传递关系;
基于所述虚拟接口传递关系,将所述目标信息传输至所述目标虚拟机。
2.根据权利要求1所述的方法,所述第一VIFA层包括第一虚拟接口和第二虚拟接口,所述第二VIFA层包括第三虚拟接口和第四虚拟接口,所述建立所述第一VIFA层与所述第二VIFA层之间的虚拟接口传递关系,包括:
建立所述第一虚拟接口与所述第三虚拟接口之间的第一虚拟接口传递关系;
建立所述第二虚拟接口与所述第四虚拟接口之间的第二虚拟接口传递关系;
对应的,所述基于所述虚拟接口传递关系,将所述目标信息传输至所述目标虚拟机,包括:
基于所述第一虚拟接口传递关系,将所述控制面信息传输至所述目标虚拟机;
基于所述第二虚拟接口传递关系,将所述数据面信息传输至所述目标虚拟机。
3.根据权利要求1所述的方法,所述基于所述第一VIFA层,获得所述源虚拟机的目标信息,包括:
在所述第一VIFA层的第一地址记录文件中,查找所述数据面信息对应的第一地址;
基于所述第一地址,获得所述数据面信息;
在所述第一VIFA层中,确定所述控制面信息对应的第一资源抽象结构体;
在所述第一资源抽象结构体中,获得所述控制面信息。
4.根据权利要求1所述的方法,在所述获得所述源虚拟机的目标信息之前,所述方法还包括:
将所述源虚拟机的目标信息分离为所述控制面信息和所述数据面信息;
获取存储所述数据面信息的第一地址;
在所述第一地址记录文件中记录所述第一地址;
在所述第一VIFA层中建立第一资源抽象结构体;
将所述控制面信息存储至所述第一资源抽象结构体。
5.根据权利要求1所述的方法,在所述数据面信息包括待迁移的脏页内存的情况下,所述基于所述第一VIFA层,获得所述源虚拟机的目标信息,包括:
在所述第一VIFA层的第一地址记录文件中,确定脏位图;所述脏位图包括至少一个脏页地址以及所述至少一个脏页地址中每个所述脏页地址对应的脏页内存;
针对所述至少一个脏页地址中的每个所述脏页地址,确定每个所述脏页地址对应的脏页内存,得到至少一个脏页内存;
确定所述待迁移的脏页内存为所述至少一个脏页内存。
6.一种数据处理方法,所述方法应用于目标虚拟机,所述目标虚拟机包括第二VIFA层,所述方法包括:
确定源虚拟机包括第一VIFA层;
建立所述第一VIFA层与所述第二VIFA层之间的虚拟接口传递关系;
基于所述虚拟接口传递关系,接收所述源虚拟机发送的目标信息;所述目标信息包括数据面信息和控制面信息。
7.根据权利要求6所述的方法,所述第二VIFA层包括第二地址记录文件和第二抽象资源结构体,所述方法还包括:
确定存储所述数据面信息的第二地址;
在所述第二地址记录文件中记录所述第二地址,以使通过所述第二地址获取到所述数据面信息;
建立所述第二资源抽象结构体与所述控制面信息之间的关联关系,以使通过所述关联关系获取到所述控制面信息。
8.一种数据处理装置,所述装置部署于源虚拟机,所述源虚拟机包括第一VIFA层,所述装置包括:
获得单元,用于基于所述第一VIFA层,获得所述源虚拟机的目标信息;所述目标信息包括控制面信息和数据面信息;
第一确定单元,用于确定目标虚拟机包括第二VIFA层;
第一建立单元,用于建立所述第一VIFA层与所述第二VIFA层之间的虚拟接口传递关系;
第一传输单元,用于基于所述虚拟接口传递关系,将所述目标信息传输至所述目标虚拟机。
9.一种数据处理装置,所述装置部署于目标虚拟机,所述目标虚拟机包括第二VIFA层,所述装置包括:
第二确定单元,用于确定源虚拟机包括第一VIFA层;
第二建立单元,用于建立所述第一VIFA层与所述第二VIFA层之间的虚拟接口传递关系;
第二传输单元,用于基于所述虚拟接口传递关系,接收所述源虚拟机发送的目标信息;所述目标信息包括数据面信息和控制面信息。
10.一种电子设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1至7任一项所述的数据处理方法。
CN202210495319.0A 2022-05-07 2022-05-07 一种数据处理方法、装置、设备及存储介质 Pending CN115061773A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210495319.0A CN115061773A (zh) 2022-05-07 2022-05-07 一种数据处理方法、装置、设备及存储介质
US18/121,491 US20230359477A1 (en) 2022-05-07 2023-03-14 Data processing method, device, and apparatus, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210495319.0A CN115061773A (zh) 2022-05-07 2022-05-07 一种数据处理方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN115061773A true CN115061773A (zh) 2022-09-16

Family

ID=83197468

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210495319.0A Pending CN115061773A (zh) 2022-05-07 2022-05-07 一种数据处理方法、装置、设备及存储介质

Country Status (2)

Country Link
US (1) US20230359477A1 (zh)
CN (1) CN115061773A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117076379A (zh) * 2023-08-31 2023-11-17 阿维塔科技(重庆)有限公司 一种域控制器、数据处理器方法及设备
CN117389693A (zh) * 2023-12-12 2024-01-12 麒麟软件有限公司 一种硬件虚拟化系统io层安全检测方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118502885B (zh) * 2024-07-15 2024-10-15 济南浪潮数据技术有限公司 一种热迁移方法、设备、程序产品及介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106899518A (zh) * 2017-02-27 2017-06-27 腾讯科技(深圳)有限公司 一种基于互联网数据中心的资源处理方法以及装置
CN108874506A (zh) * 2018-06-08 2018-11-23 北京百度网讯科技有限公司 虚拟机直通设备的热迁移方法和装置
CN109194742A (zh) * 2018-09-04 2019-01-11 郑州云海信息技术有限公司 一种虚拟机控制台的连接方法、装置及存储介质
CN109753346A (zh) * 2018-12-25 2019-05-14 新华三云计算技术有限公司 一种虚拟机热迁移方法及装置
CN111740877A (zh) * 2020-05-29 2020-10-02 苏州浪潮智能科技有限公司 一种链路检测方法及系统
CN112148421A (zh) * 2019-06-29 2020-12-29 华为技术有限公司 虚拟机迁移的方法以及装置
CN113312137A (zh) * 2020-04-09 2021-08-27 阿里巴巴集团控股有限公司 数据处理方法、装置、设备及系统

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105446834B (zh) * 2015-11-30 2018-10-19 华为技术有限公司 虚拟机快照的生成方法和装置
US10412195B2 (en) * 2016-09-26 2019-09-10 International Business Machines Corporation Risk-aware service management stack transformation during workload migration
US11494215B2 (en) * 2017-03-31 2022-11-08 Intel Corporation Techniques to decrease a live migration time for a virtual machine
US20200174814A1 (en) * 2018-11-30 2020-06-04 Nutanix, Inc. Systems and methods for upgrading hypervisor locally
US11307888B2 (en) * 2020-02-26 2022-04-19 Red Hat, Inc. Managing host hardware configuration for virtual machine migration
US11861387B2 (en) * 2020-06-10 2024-01-02 Dell Products L.P. Migration of guest operating system optimization tool settings in a multi-hypervisor data center environment
US11995459B2 (en) * 2020-08-25 2024-05-28 VMware LLC Memory copy during virtual machine migration in a virtualized computing system
US11704227B2 (en) * 2020-10-14 2023-07-18 The Johns Hopkins University Virtual time test environment
US12050798B2 (en) * 2021-07-29 2024-07-30 International Business Machines Corporation Memory migration within a multi-host data processing environment
CN116069695A (zh) * 2021-11-03 2023-05-05 迈络思科技有限公司 使用外围设备进行存储器访问跟踪
US11977785B2 (en) * 2022-02-08 2024-05-07 Microsoft Technology Licensing, Llc Non-volatile memory device-assisted live migration of virtual machine data

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106899518A (zh) * 2017-02-27 2017-06-27 腾讯科技(深圳)有限公司 一种基于互联网数据中心的资源处理方法以及装置
CN108874506A (zh) * 2018-06-08 2018-11-23 北京百度网讯科技有限公司 虚拟机直通设备的热迁移方法和装置
CN109194742A (zh) * 2018-09-04 2019-01-11 郑州云海信息技术有限公司 一种虚拟机控制台的连接方法、装置及存储介质
CN109753346A (zh) * 2018-12-25 2019-05-14 新华三云计算技术有限公司 一种虚拟机热迁移方法及装置
CN112148421A (zh) * 2019-06-29 2020-12-29 华为技术有限公司 虚拟机迁移的方法以及装置
CN113312137A (zh) * 2020-04-09 2021-08-27 阿里巴巴集团控股有限公司 数据处理方法、装置、设备及系统
CN111740877A (zh) * 2020-05-29 2020-10-02 苏州浪潮智能科技有限公司 一种链路检测方法及系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117076379A (zh) * 2023-08-31 2023-11-17 阿维塔科技(重庆)有限公司 一种域控制器、数据处理器方法及设备
CN117389693A (zh) * 2023-12-12 2024-01-12 麒麟软件有限公司 一种硬件虚拟化系统io层安全检测方法
CN117389693B (zh) * 2023-12-12 2024-04-05 麒麟软件有限公司 一种硬件虚拟化系统io层安全检测方法

Also Published As

Publication number Publication date
US20230359477A1 (en) 2023-11-09

Similar Documents

Publication Publication Date Title
EP3985504B1 (en) Virtual machine migration
CN108243118B (zh) 转发报文的方法和物理主机
CN109739618B (zh) 虚拟机迁移方法及装置
JP5746770B2 (ja) 仮想化によるスマートデバイスの直接的共有
CN102819447B (zh) 一种用于多根共享系统的直接i/o虚拟化方法和装置
CN115061773A (zh) 一种数据处理方法、装置、设备及存储介质
CN112306624B (zh) 一种信息处理方法、物理机和pcie设备
US9720712B2 (en) Physical/virtual device failover with a shared backend
CN110858185A (zh) 可扩展输入/输出(i/o)虚拟化(s-iov)架构中的虚拟设备构成
US11055186B2 (en) Managing related devices for virtual machines using robust passthrough device enumeration
WO2017066944A1 (zh) 一种存储设备访问方法、装置和系统
US10540294B2 (en) Secure zero-copy packet forwarding
US20180321964A1 (en) Computer, device allocation management method, and program recording medium
CN107278292B (zh) 一种虚拟机内存的映射方法、装置及数据传输设备
KR101716715B1 (ko) 가상 머신 환경의 네트워크 입출력 장치 가상화 방법 및 장치
EP4170492A1 (en) System and interrupt processing method
WO2016119322A1 (zh) 确定读写路径的方法和装置
US10164911B2 (en) Shim layer used with a virtual machine virtual NIC and a hardware platform physical NIC
CN106598696A (zh) 一种虚拟机之间数据交互的方法及装置
US11194606B2 (en) Managing related devices for virtual machines utilizing shared device data
CN115150268A (zh) Kubernetes集群的网络配置方法、装置、及电子设备
CN116418857A (zh) 一种基于中介透传的NVMeoF计算节点虚拟化方法
US20160026567A1 (en) Direct memory access method, system and host module for virtual machine
US20240028381A1 (en) Virtual i/o device management
KR20250150147A (ko) 시스템 및 인터럽트 처리 방법

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