CN117492933B - 数据交换方法、装置、电子设备及存储介质 - Google Patents
数据交换方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117492933B CN117492933B CN202311841165.7A CN202311841165A CN117492933B CN 117492933 B CN117492933 B CN 117492933B CN 202311841165 A CN202311841165 A CN 202311841165A CN 117492933 B CN117492933 B CN 117492933B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- virtual
- memory address
- physical host
- data
- 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 101
- 230000015654 memory Effects 0.000 claims abstract description 414
- 238000006243 chemical reaction Methods 0.000 claims abstract description 16
- 230000008859 change Effects 0.000 claims description 38
- 238000012790 confirmation Methods 0.000 claims description 37
- 238000012544 monitoring process Methods 0.000 claims description 31
- 230000004044 response Effects 0.000 claims description 29
- 230000005012 migration Effects 0.000 claims description 20
- 238000013508 migration Methods 0.000 claims description 20
- 238000004891 communication Methods 0.000 claims description 19
- 230000008569 process Effects 0.000 claims description 18
- 230000000977 initiatory effect Effects 0.000 claims description 11
- 238000013500 data storage Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 5
- 238000010200 validation analysis Methods 0.000 claims 1
- 230000005540 biological transmission Effects 0.000 description 16
- 238000012545 processing Methods 0.000 description 9
- 230000008901 benefit Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 239000003999 initiator Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
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/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/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/45583—Memory management, e.g. access or allocation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明实施例提供了一种数据交换方法、装置、电子设备及存储介质,涉及计算机技术领域,该方法包括:响应于源虚拟机发送的数据请求,获取目标虚拟机中待交换数据的第一虚拟内存地址和源虚拟机的第二虚拟内存地址,将第一虚拟内存地址和第二虚拟内存地址分别转换为物理主机内存地址,根据第一虚拟内存地址和第二虚拟内存地址分别对应的物理主机内存地址,向目标虚拟机所在物理主机内存地址读取待交换数据,以及,将待交换数据存储至源虚拟机所在物理主机内存地址。本发明将虚拟机的虚拟内存位置与物理主机内存位置进行地址转换,实现将虚拟机所需数据在两个虚拟机对应物理内存上存取,有效提高同一物理主机上虚拟机间数据交换的效率。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种数据交换方法、装置、电子设备及存储介质。
背景技术
虚拟化是指计算元件在虚拟的基础上运行,虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统,虚拟化由于其具备扩大硬件容量、简化软件配置过程的优点,在计算机中得到广泛应用,目前,服务器的应用通常部署在服务器上创建的虚拟机里,各个服务器之间都会通过数据交换或通信实现互通,服务器间的数据交换一般是各服务器内部应用系统之间的通信,无论是一个服务器上的中间件系统与另一个服务器上的数据库之间进行数据交换,还是一个服务器上通过SCP命令将文件传送到另一个服务器的数据交换,都依赖于网络传送实现数据交换。
在虚拟化广泛使用的今天,由于各个虚拟机之间无法直接进行通信,即使是运行在同一台物理主机的虚拟机的数据交换也依然需要通过网络实现,具体的,源虚拟机要给目标虚拟机发送数据,从源虚拟机发出,经过物理主机的网口发送到交换机,交换机再将数据返回给该物理主机的另一网口,物理主机将接收到的数据再传递给其上运行的目标虚拟机,这种数据交换方式,不仅占用并浪费了网络带宽,且数据在网络上传输受网络带宽影响,传输速率不稳定,大大降低了数据交换的效率,进一步影响应用系统的响应速度。
发明内容
有鉴于此,本发明旨在提出一种数据交换方法、装置、电子设备及存储介质,解决同一物理主机上虚拟机需通过网络进行数据传输,影响数据交换效率的问题,实现虚拟机间快速、高效的数据交换。
依据本发明的第一方面,提供了一种数据交换方法,应用于物理主机,所述物理主机上运行至少两个虚拟机,所述方法包括:
响应于源虚拟机发送的数据请求,获取目标虚拟机中待交换数据的第一虚拟内存地址和所述源虚拟机的第二虚拟内存地址;
将所述第一虚拟内存地址和所述第二虚拟内存地址分别转换为物理主机内存地址;
根据所述第一虚拟内存地址和所述第二虚拟内存地址分别对应的物理主机内存地址,向所述目标虚拟机所在物理主机内存地址读取所述待交换数据,以及,将所述待交换数据存储至所述源虚拟机所在物理主机内存地址。
可选地,所述响应于源虚拟机发送的数据请求,获取目标虚拟机中待交换数据的第一虚拟内存地址和所述源虚拟机的第二虚拟内存地址,包括:
接收所述源虚拟机发送的数据请求,其中,所述数据请求用于向所述目标虚拟机获取待交换数据;
对所述数据请求进行解析,确定出所述源虚拟机发送的数据信息;
基于所述数据信息,获取所述目标虚拟机中待交换数据的第一虚拟内存地址、所述源虚拟机中用于存储所述待交换数据的第二虚拟内存地址,以及所述待交换数据的预设大小。
可选地,所述将所述第一虚拟内存地址和所述第二虚拟内存地址分别转换为物理主机内存地址,包括:
调用预先生成的虚拟机内存地址和物理主机地址之间的地址对照表;
根据所述地址对照表,将所述第一虚拟内存地址和所述第二虚拟内存地址分别转换为物理主机内存地址。
可选地,所述根据所述第一虚拟内存地址和所述第二虚拟内存地址分别对应的物理主机内存地址,向所述目标虚拟机所在物理主机内存地址读取所述待交换数据,以及,将所述待交换数据存储至所述源虚拟机所在物理主机内存地址,包括:
根据所述第一虚拟内存地址对应第一物理主机内存地址,确定所述目标虚拟机中待交换数据在物理主机的存储位置;
基于待交换数据在物理主机的存储位置,向所述目标虚拟机所在物理主机内存地址读取预设大小的待交换数据;
根据所述第二虚拟内存地址对应第二物理主机内存地址,将预设大小的待交换数据存储至源虚拟机所在物理主机内存地址。
可选地,所述响应于源虚拟机发送的数据请求,获取目标虚拟机中待交换数据的第一虚拟内存地址和所述源虚拟机的第二虚拟内存地址之前,还包括:
获取至少两个所述虚拟机的虚拟机配置表;其中,所述虚拟机配置表包括所述虚拟机所在虚拟机组的分组标识;
遍历同一分组标识对应虚拟机,进行虚拟机间的互信确认,确定建立互信的源虚拟机和目标虚拟机。
可选地,所述遍历同一分组标识对应虚拟机并进行互信确认,确定建立互信的源虚拟机和目标虚拟机,包括:
采用预设监测进程监测物理主机上的多个所述虚拟机;
响应于监测到源虚拟机发送的访问请求,读取所述虚拟机配置表,确定所述源虚拟机对应分组标识;
遍历同一分组标识对应虚拟机,将所述源虚拟机与其同一分组标识的虚拟机进行互信确认,确定出建立互信的源虚拟机和目标虚拟机。
可选地,所述遍历同一分组标识对应虚拟机,将所述源虚拟机与其同一分组标识的虚拟机进行互信确认,确定出建立互信的源虚拟机和目标虚拟机,包括:
接收源虚拟机与其同一分组标识的虚拟机分别发送的问询完成消息;其中,所述问询完成消息是所述源虚拟机发起询问消息,同一分组标识的虚拟机根据所述询问消息返回响应消息确定的;
根据所述问询完成消息,确定与所述源虚拟机建立互信的目标虚拟机,生成所述源虚拟机和所述目标虚拟机的互信关系;
将所述源虚拟机和所述目标虚拟机的互信关系存储至所述虚拟机配置表。
可选地,所述接收源虚拟机与其同一分组标识的虚拟机分别发送的问询完成消息之前,还包括:
通过源虚拟机向同一分组标识的虚拟机发起问询消息;其中,所述问询消息包括源虚拟机标识;
响应于所述同一分组标识的虚拟机接收到问询消息,验证所述虚拟机配置表是否包括所述源虚拟机标识;
若是,通过所述同一分组标识的虚拟机返回响应消息至所述源虚拟机。
可选地,所述将所述源虚拟机和所述目标虚拟机的互信关系存储至所述虚拟机配置表之后,还包括:
将新增互信关系的虚拟机配置表下发至所述物理主机上的各虚拟机,以使每个所述虚拟机获取所述虚拟机配置表中的互信关系。
可选地,所述遍历同一分组标识对应虚拟机,进行虚拟机间的互信确认,确定建立互信的源虚拟机和目标虚拟机之前,还包括:
获取待互信确认虚拟机对应的虚拟机标识;
根据所述虚拟机配置表,对所述虚拟机标识进行匹配,得到匹配结果;
根据所述匹配结果,确定所述待互信确认虚拟机和所述源虚拟机位于同一物理主机。
可选地,所述虚拟机配置表是预先根据所述物理主机的业务类别配置生成的,其中,所述虚拟机配置表包括所述业务类别对应的分组标识、物理主机上各虚拟机对应的虚拟机标识,以及源虚拟机和目标虚拟机间的互信关系。
可选地,所述将所述第一虚拟内存地址和所述第二虚拟内存地址分别转换为物理主机内存地址之前,还包括:
获取所述物理主机上各虚拟机的虚拟内存地址,确定所述虚拟机内存地址在物理主机的存储位置;
生成各虚拟机的虚拟内存地址和物理主机内存地址的对应关系,将所述对应关系存储为地址对照表。
可选地,所述根据所述第一虚拟内存地址和所述第二虚拟内存地址分别对应的物理主机内存地址,向所述目标虚拟机所在物理主机内存地址读取所述待交换数据,以及,将所述待交换数据存储至所述源虚拟机所在物理主机内存地址之后,还包括:
发送待交换数据存储完成消息至所述源虚拟机和所述目标虚拟机,以使所述源虚拟机对所述待交换数据进行处理。
可选地,所述响应于源虚拟机发送的数据请求,获取目标虚拟机中待交换数据的第一虚拟内存地址和所述源虚拟机的第二虚拟内存地址之前,还包括:
采用预设监测进程对物理主机上各虚拟机的运行状态进行监测,确定各虚拟机的状态变化;
根据所述虚拟机的状态变化,生成并更新虚拟机配置表。
可选地,所述状态变化包括虚拟机迁入、迁出及开关机状态变化,所述根据所述虚拟机的状态变化,生成并更新虚拟机配置表,包括:
若监测到所述物理主机上虚拟机迁入或迁出变化,对应新增或删除虚拟机配置表中的虚拟机信息;
若监测到所述物理主机上虚拟机的开关机状态变化,更新所述虚拟机配置表中的虚拟机状态。
可选地,所述根据所述虚拟机的状态变化,生成并更新虚拟机配置表之后,还包括:
响应于所述虚拟机配置表的更新,将更新后的虚拟机配置表下发至所述物理主机上各虚拟机,以使每个所述虚拟机存储所述虚拟机配置表。
可选地,所述响应于所述虚拟机配置表的更新,将更新后的虚拟机配置表下发至所述物理主机上各虚拟机,包括:
响应于所述虚拟机配置表的更新,采用预设工具包将更新后的虚拟机配置表下发至所述物理主机上各虚拟机,其中,所述预设工具包是预先安装至所述物理主机,用于所述物理主机与各虚拟机的通信。
依据本发明的第二方面,提供了一种数据交换装置,应用于物理主机,所述物理主机上运行至少两个虚拟机,所述装置包括:
获取地址模块,用于响应于源虚拟机发送的数据请求,获取目标虚拟机中待交换数据的第一虚拟内存地址和所述源虚拟机的第二虚拟内存地址;
地址转换模块,用于将所述第一虚拟内存地址和所述第二虚拟内存地址分别转换为物理主机内存地址;
数据交换模块,用于根据所述第一虚拟内存地址和所述第二虚拟内存地址分别对应的物理主机内存地址,向所述目标虚拟机所在物理主机内存地址读取所述待交换数据,以及,将所述待交换数据存储至所述源虚拟机所在物理主机内存地址。
依据本发明的又一方面,还提供一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如上所述的数据交换方法。
依据本发明的又一方面,还提供一种可读存储介质,所述可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述的数据交换方法的步骤。
本发明实施例提供的数据交换方法,通过响应于源虚拟机发送的数据请求,获取目标虚拟机中待交换数据的第一虚拟内存地址和源虚拟机的第二虚拟内存地址,将第一虚拟内存地址和第二虚拟内存地址分别转换为物理主机内存地址,根据第一虚拟内存地址和第二虚拟内存地址分别对应的物理主机内存地址,向目标虚拟机所在物理主机内存地址读取待交换数据,以及,将待交换数据存储至所述源虚拟机所在物理主机内存地址。本实施例通过将目标虚拟机和源虚拟机的数据存放的虚拟内存位置与物理主机内存位置进行地址转换,直接将虚拟机所需数据在两个虚拟机对应的物理内存上存取,实现同一物理主机上虚拟机间的数据交换,减少数据传输对网络的占用和依赖,有效提高了运行在同一物理主机上虚拟机间数据传输的效率,同时提高了应用系统的响应速度,进一步优化了虚拟化性能。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是本发明实施例提供的一种数据交换方法的步骤流程图;
图2是图1中本发明实施例提供的数据交换方法中步骤101的流程图;
图3是图1中本发明实施例提供的数据交换方法中步骤102的流程图;
图4是图1中本发明实施例提供的数据交换方法中步骤103的流程图;
图5是本发明实施例提供的另一种数据交换方法的步骤流程图;
图6是本发明实施例提供的又一种数据交换方法的步骤流程图;
图7是本发明实施例提供的一种数据交换装置的结构示意图;
图8是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本发明所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本发明的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。
参照图1,示出了本发明实施例提供的数据交换方法的步骤流程图,应用于物理主机,所述物理主机上运行多个虚拟机,所述方法可以包括:
步骤101,响应于源虚拟机发送的数据请求,获取目标虚拟机中待交换数据的第一虚拟内存地址和源虚拟机的第二虚拟内存地址。
本发明实施例中,为解决同一物理主机上各个虚拟机只能通过网络进行数据交换,占用并浪费了网络带宽,且数据在网络上传输受网络带宽影响,传输速率不稳定,从而导致同一物理主机上的虚拟机之间数据交换效率低的问题,本实施例通过物理主机上的虚拟化系统,将待交换数据在虚拟机的内存位置与物理内存位置进行地址转换,直接将虚拟机所需数据在两个虚拟机对应的物理内存上存取,实现同一物理主机上运行的虚拟机间快速、高效的数据交换。
需要说明的是,本实施例应用于物理主机,物理主机上运行至少两个虚拟机,由于多个虚拟机之间无法直接进行通信,本实施例采用物理主机上的虚拟化系统作为虚拟机的宿主机,实现各个虚拟机的数据交换,虚拟化系统是运行虚拟机的物理主机的操作系统进行虚拟化定制得到的,具体可以是Linux KVM系统,虚拟化系统管理并运行若干个虚拟机,是虚拟机运行和管理的基础,负责虚拟机的正常运行,并将主机的物理内存划分给虚拟机使用并管理虚拟机使用的内存,负责虚拟机的虚拟内存地址与物理主机内存地址的转换。
本发明实施例中,虚拟机运行在虚拟化系统所在的物理主机上,虚拟机使用的例如CPU、内存、硬盘空间等资源,均由虚拟化系统使用物理主机上的资源进行分配和控制,当一个虚拟机中的应用系统向另外一个同主机虚拟机中的应用系统发起数据请求时,虚拟化系统响应于源虚拟机发送的数据请求,根据数据请求中携带的数据信息,获取目标虚拟机中待交换数据的第一虚拟内存地址和源虚拟机的第二虚拟内存地址,以便于根据虚拟内存地址进行地址转换。其中,源虚拟机是物理主机上任一发起数据交换请求的虚拟机,目标虚拟机则是与源虚拟机建立互信的虚拟机,其上存储有源虚拟机所需目标数据。
需要说明的是,第一虚拟内存地址为待交换数据所在目标虚拟机的虚拟内存地址,即源虚拟机所需要数据在目标虚拟机中的存储位置,第二虚拟内存地址是源虚拟机用于存储该数据的虚拟内存地址,即源虚拟机预先根据所需要数据的大小确定的存储空间及存储位置,源虚拟机向目标虚拟机中复制拷贝所需目标数据,则源虚拟机发送数据请求给虚拟化系统,以使虚拟化系统进行数据交换处理。
具体的,预先确认源虚拟机与目标虚拟机已建立互信关系,则源虚拟机将数据请求发送至虚拟化系统,虚拟化系统采用数据交换进程基于源虚拟机的需求向目标虚拟机读取数据,由于虚拟机内存均是虚拟化系统在分配资源时将物理主机的内存划分给虚拟机的,虚拟机内存地址与物理主机内存地址存在对应关系,若数据存储在目标虚拟机内存,虚拟化系统通过地址转换,即可直接将虚拟机所需数据在两个虚拟机对应的物理内存上存取,实现同一物理主机上虚拟机间的数据交换。
本实施例中,虚拟化操作系统响应于源虚拟机发送的数据请求进行数据交换处理,必须要得到源虚拟机和目标虚拟机、以及待交换数据的情况,因此,源虚拟机可以在发起的数据请求中携带数据信息,也可以是发起请求后将数据信息发送至虚拟化系统,本实施例对此不作具体限定,可以是任意一种将数据信息发送至虚拟化系统的方式。其中,数据信息包括目标虚拟机中待交换数据的虚拟内存地址、源虚拟机中用于存储待交换数据的虚拟内存地址,以及待交换数据的预设大小等,以使虚拟化系统确定目标虚拟机中待交换数据的第一虚拟内存地址和源虚拟机的第二虚拟内存地址,从而将第一虚拟内存地址和第二虚拟内存地址分别转换为物理主机内存地址。
步骤102,将第一虚拟内存地址和第二虚拟内存地址分别转换为物理主机内存地址。
本发明实施例中,虚拟化系统在获取目标虚拟机中待交换数据的第一虚拟内存地址和源虚拟机的第二虚拟内存地址后,要先将第一虚拟内存地址和第二虚拟内存地址分别转换为物理主机内存地址,从而利用物理主机内存地址,直接将虚拟机所需数据在两个虚拟机对应的物理内存上存取,本实施例中虚拟化系统调用预先生成的虚拟机内存地址和物理主机地址之间的地址对照表,根据地址对照表,将第一虚拟内存地址和第二虚拟内存地址分别转换为物理主机内存地址。
需要说明的是,为实现同一物理主机上虚拟机之间的数据交换,物理主机的虚拟化系统在进行数据交换前还需对虚拟机是否在同一主机运行进行判断,判断目标虚拟机是否与本虚拟机运行在同一主机,如果不是运行在同一物理主机,虚拟机之间数据传输依然是完全依靠网络方式,如果是在同一物理主机运行,则虚拟化系统执行下一步,响应于源虚拟机发送的数据请求,获取目标虚拟机中待交换数据的第一虚拟内存地址和源虚拟机的第二虚拟内存地址,将第一虚拟内存地址和第二虚拟内存地址分别转换为物理主机内存地址,在此不再一一赘述。
步骤103,根据第一虚拟内存地址和第二虚拟内存地址分别对应的物理主机内存地址,向目标虚拟机所在物理主机内存地址读取待交换数据,以及,将待交换数据存储至源虚拟机所在物理主机内存地址。
本发明实施例中,虚拟化系统根据第一虚拟内存地址和第二虚拟内存地址分别对应的物理主机内存地址,向目标虚拟机所在物理主机内存地址读取待交换数据,以及,将待交换数据存储至源虚拟机所在物理主机内存地址。具体的,根据第一虚拟内存地址对应的物理主机内存地址,找到物理内存中存储的发起方虚拟机所需要的数据,根据需要拷贝数据的大小读取该物理内存中的数据,根据第二虚拟内存地址对应的物理主机内存地址,将读取的发起方虚拟机所需要的数据复制存储到此位置,以便源虚拟机读取该数据并进行后续业务操作。
本实施例由虚拟化系统完成在两个虚拟机内存间拷贝交换数据,相当于在物理主机内存中两个地址间直接进行数据拷贝,减少了对网络的占用和依赖,极大提高运行在同一物理主机上虚拟机间数据传输效率,提高了虚拟化系统的性能,需要传输的数据量越大,该方式效率越明显。
本发明实施例提供的数据交换方法,通过响应于源虚拟机发送的数据请求,获取目标虚拟机中待交换数据的第一虚拟内存地址和源虚拟机的第二虚拟内存地址,将第一虚拟内存地址和第二虚拟内存地址分别转换为物理主机内存地址,根据第一虚拟内存地址和第二虚拟内存地址分别对应的物理主机内存地址,向目标虚拟机所在物理主机内存地址读取待交换数据,以及,将待交换数据存储至所述源虚拟机所在物理主机内存地址。本实施例通过将目标虚拟机和源虚拟机的数据存放的虚拟内存位置与物理主机内存位置进行地址转换,直接将虚拟机所需数据在两个虚拟机对应的物理内存上存取,实现同一物理主机上虚拟机间的数据交换,减少数据传输对网络的占用和依赖,有效提高了运行在同一物理主机上虚拟机间数据传输的效率,同时提高了应用系统的响应速度,进一步优化了虚拟化性能。
进一步的,参照图2,示出了图1提供的一种数据交换方法中步骤101的流程图,该方法与本发明的第一实施例提供的数据交换方法基本相同,步骤101可以包括:
步骤201,接收源虚拟机发送的数据请求,其中,数据请求用于向目标虚拟机获取待交换数据。
本发明实施例中,物理主机上的虚拟化系统采用预设监测进程监测物理主机上各个虚拟机的状态,以便及时响应物理主机上虚拟机发送的数据交换请求,其中,源虚拟机可以是物理主机上任意一个需要获取数据的虚拟机,本实施例对源虚拟机不作具体限定。
步骤202,对数据请求进行解析,确定出源虚拟机发送的数据信息。
本实施例中,为保证数据交换的安全性,源虚拟机发送的数据请求通常加密或编码,因此,虚拟化系统在接收源虚拟机发送的数据请求之后,由于数据请求用于向目标虚拟机获取待交换数据,并且携带虚拟机信息和所需数据信息,虚拟化系统对数据请求进行解析,以确定出源虚拟机发送的数据信息,其中,数据信息可以包括目标虚拟机中待交换数据的虚拟内存地址、源虚拟机中用于存储待交换数据的虚拟内存地址,以及待交换数据的预设大小等内容。
步骤203,基于数据信息,获取目标虚拟机中待交换数据的第一虚拟内存地址、源虚拟机中用于存储待交换数据的第二虚拟内存地址,以及待交换数据的预设大小。
本发明实施例通过对源虚拟机发送的数据请求进行解析,从而得到目标虚拟机中待交换数据的虚拟内存地址、源虚拟机中用于存储待交换数据的虚拟内存地址,以及待交换数据的预设大小,以便于根据源虚拟机的数据请求,明确数据交换的存储位置及大小,有效提高虚拟机之间数据交换的效率。
进一步的,参照图3,示出了图1提供的一种数据交换方法中步骤102的流程图,该方法与本发明的第一实施例提供的数据交换方法基本相同,步骤102可以包括:
步骤301,调用预先生成的虚拟机内存地址和物理主机地址之间的地址对照表。
本发明实施例中,由于虚拟机使用的所有资源(CPU、内存、硬盘空间等)均由虚拟化系统使用物理主机上的资源进行分配和控制,各个虚拟机的内存地址都对应存在于物理主机,即虚拟机内存地址均有一个物理主机内存地址的对应关系,因此,虚拟化系统将第一虚拟内存地址和第二虚拟内存地址分别转换为物理主机内存地址可以采用调用预先生成的虚拟机内存地址和物理主机地址之间的地址对照表,依据地址对照表查找虚拟机内存地址和物理主机内存地址的对应关系,以便快速、简便的进行地址转换,通过调用预先生成的虚拟机内存地址和物理主机地址之间的地址对照表,基于地址对照表,实现将第一虚拟内存地址和第二虚拟内存地址分别转换为物理主机内存地址。
需要说明的是,地址对照表是虚拟化系统在对物理主机上虚拟机分配内存地址时生成并存储的,用于对照虚拟内存地址和物理主机内存地址,以便于通过查询对比关系的方式,快速实现虚拟内存地址和物理主机内存地址的转换。
步骤302,根据地址对照表,将第一虚拟内存地址和第二虚拟内存地址分别转换为物理主机内存地址。
具体的,根据地址对照表,将第一虚拟内存地址查表匹配到第一虚拟内存地址对应的物理主机内存地址,将待交换数据所在目标虚拟机的内存位置转换为第一物理主机内存地址;同理,依据地址对照表,将待交换数据需要存储在源虚拟机的内存位置转换为第二物理主机内存地址。
本发明实施例通过调用预先生成的虚拟机内存地址和物理主机地址之间的地址对照表,根据地址对照表,将第一虚拟内存地址和第二虚拟内存地址分别转换为物理主机内存地址,从而将待交换数据存储至源虚拟机所在物理主机内存地址,直接将虚拟机所需数据在两个虚拟机对应的物理内存上存取,实现同一物理主机上虚拟机间的数据交换。
进一步的,参照图4,示出了图1提供的一种数据交换方法中步骤103的流程图,该方法与本发明的第一实施例提供的数据交换方法基本相同,步骤103可以包括:
步骤401,根据第一虚拟内存地址对应第一物理主机内存地址,确定目标虚拟机中待交换数据在物理主机的存储位置。
本发明实施例中,虚拟化系统将待转换数据存储在目标虚拟机的第一虚拟内存地址转换为第一物理主机内存地址,根据第一虚拟内存地址对应第一物理主机内存地址,确定目标虚拟机中待交换数据在物理主机的存储位置,即根据该物理内存地址找到物理内存中存储的源虚拟机所需要的数据。
步骤402,基于待交换数据在物理主机的存储位置,向目标虚拟机所在物理主机内存地址读取预设大小的待交换数据。
本实施例中,虚拟化系统根据待交换数据在物理主机的存储位置,向目标虚拟机所在物理内存位置中读取预设大小的待交换数据,需要说明的是,本发明实施例对源虚拟机所需的待交换数据的类型和大小不作具体限定,具体根据源虚拟机的实际数据处理需求设定,可以是待拷贝复制的数据,也可以使其他任意所需数据,在此不再赘述。
步骤403,根据第二虚拟内存地址对应第二物理主机内存地址,将预设大小的待交换数据存储至源虚拟机所在物理主机内存地址。
本实施例中由于源虚拟机预留出存储所需数据的内存位置,因此,虚拟化系统将源虚拟机中用于存储待交换数据的第二虚拟内存地址,转换成第二物理主机内存地址,根据第二物理主机内存地址将预设大小的待交换数据存储至源虚拟机所在物理主机内存地址。
具体的,根据第二虚拟内存地址对应第二物理主机内存地址,将预设大小的待交换数据存储至源虚拟机所在物理主机内存地址具体可以通过预先根据待交换数据的预设大小,确定源虚拟机中用于存储数据的存储位置,从而根据第二虚拟内存地址对应第二物理主机内存地址,将预设大小的待交换数据复制存储至所述源虚拟机的存储位置。
需要说明的是,为便于虚拟化系统将源虚拟机需要的数据从目标虚拟机的内存中取出,直接放到源虚拟机指定的内存位置上,预先根据待交换数据的预设大小,确定源虚拟机中用于存储数据的存储位置,从而根据第二虚拟内存地址对应第二物理主机内存地址,将预设大小的待交换数据复制存储至源虚拟机的存储位置,完成虚拟机之间数据拷贝复制的交换流程。
本发明实施例通过虚拟内存地址转换后对应的物理主机内存地址,确定目标虚拟机中待交换数据在物理主机的存储位置,向目标虚拟机所在物理主机内存地址读取预设大小的待交换数据,从而将预设大小的待交换数据存储至源虚拟机所在物理主机内存地址,直接将虚拟机所需数据在两个虚拟机对应的物理内存上存取,实现同一物理主机上虚拟机间的数据交换,减少数据传输对网络的占用和依赖,有效提高了运行在同一物理主机上虚拟机间数据传输的效率。
参照图5,示出了本发明实施例提供的另一种数据交换方法的步骤流程图,该方法与本发明的第一实施例提供的数据交换方法基本相同,区别在于,所述方法还可以包括:
步骤104,获取至少两个虚拟机的虚拟机配置表;其中,虚拟机配置表包括虚拟机所在虚拟机组的分组标识。
具体的,由于创建虚拟机的目的就是为了在其上运行各种需要的应用系统,比如:中间件、数据库等,各个虚拟机的应用系统之间都会通过数据交换或通信实现互通,一个业务系统通常会有多个虚拟机之间配合组成,因此,为便于同一业务系统内的虚拟机之间进行内存数据交换,预先配置虚拟机内存数据交换的虚拟机配置表,虚拟机配置表中包括虚拟机所在虚拟机组的分组标识,同一分组标识的虚拟机是可以进行内存数据交换的虚拟机。
本实施例中物理主机的虚拟化系统首先获取多个虚拟机的虚拟机配置表,由于虚拟机配置表中包括虚拟机所在虚拟机组的分组标识,可以通过虚拟机配置表确认出同一分组标识的虚拟机,以便于确定可以进行内存数据交换的虚拟机,其中,虚拟机配置表是虚拟化系统预先配置完成并下发至物理主机上的各个虚拟机存储的。
步骤105,遍历同一分组标识对应虚拟机,进行虚拟机间的互信确认,确定建立互信的源虚拟机和目标虚拟机。
本发明实施例中物理主机的虚拟化系统依据多个虚拟机的虚拟机配置表,确定出各虚拟机的分组标识,从而遍历同一分组标识对应虚拟机,进行虚拟机间的互信确认,确定建立互信的源虚拟机和目标虚拟机。
具体的,物理主机的虚拟化系统通过预设监测进程监测物理主机上的多个虚拟机,当监测到源虚拟机发送的访问请求时,读取虚拟机配置表,从虚拟机配置表中确定源虚拟机对应分组标识,从而遍历同一分组标识对应虚拟机,将源虚拟机与其同一分组标识的虚拟机进行互信确认,确定出建立互信的源虚拟机和目标虚拟机。
本实施例中虚拟化系统采用虚拟机内存交换进程读取虚拟机配置表的信息,以分组标识为组,读取出同一分组标识中所有虚拟机的信息,遍历同一分组标识中的每个虚拟机,将每一个虚拟机与同组中的其它虚拟机进行互信确认,其中,虚拟机内存交换进程可以触发源虚拟机中的应用系统向同一分组标识对应虚拟机发起应用访问,根据待互信确认的虚拟机的IP地址,在发起确认虚拟机的虚拟机配置表中查找两个虚拟机是否属于同一物理主机。如果待互信确认虚拟机不在同机运行的虚拟机配置表中,说明不是运行在同一物理主机,则虚拟机之间数据传输依然是完全依靠网络的传统方式,如果待互信确认虚拟机在同机运行的虚拟机配置表中,说明发起确认虚拟机和待互信确认虚拟机在同一物理主机上运行,可以进行进一步的互信确认。
具体的,虚拟机之间的互信确认可以通过虚拟化系统进行虚拟机双方的问询实现,虚拟化系统接收源虚拟机与其同一分组标识的虚拟机分别发送的问询完成消息;其中,问询完成消息是源虚拟机发起询问消息,同一分组标识的虚拟机根据询问消息返回响应消息确定的,从而根据问询完成消息,确定与源虚拟机建立互信的目标虚拟机,生成源虚拟机和目标虚拟机的互信关系,并将源虚拟机和目标虚拟机的互信关系存储至虚拟机配置表,以便源虚拟机明确可以进行内存数据交换的目标虚拟机。
需要说明的是,虚拟化系统中虚拟机内存交换进程收到源虚拟机和目标虚拟机的问询完成消息后,更新虚拟机配置表中已互信虚拟机列表的值,将建立互信的源虚拟机和目标虚拟机信息加入到该列,表明两个虚拟机完成互信建立,再遍历其它虚拟机开始互信确认,至到遍历完同一分组标对应的所有虚拟机。
步骤101,响应于源虚拟机发送的数据请求,获取目标虚拟机中待交换数据的第一虚拟内存地址和源虚拟机的第二虚拟内存地址。
步骤102,将第一虚拟内存地址和第二虚拟内存地址分别转换为物理主机内存地址。
步骤103,根据第一虚拟内存地址和第二虚拟内存地址分别对应的物理主机内存地址,向目标虚拟机所在物理主机内存地址读取待交换数据,以及,将待交换数据存储至源虚拟机所在物理主机内存地址。
上述步骤101至步骤103参照前序所述,在此不再赘述。
需要说明的是,本实施方式不对步骤104至步骤105的具体执行位置进行限定,在本实施方式中,为了便于理解以步骤104至步骤105在步骤101之前,执行为例进行说明。在实际的使用过程中,步骤104至步骤105也可以作为一个步骤完成,此处不对每种情况进行一一赘述。
本发明实施方式相对于现有技术而言,在实现第一实施方式带来的有益效果基础上,通过获取至少两个虚拟机的虚拟机配置表,遍历同一分组标识对应虚拟机,进行虚拟机间的互信确认,确定建立互信的源虚拟机和目标虚拟机;通过对同一分组标识对应虚拟机进行虚拟机间的互信确认,保证虚拟机处于同一物理主机,使得本发明实施例提供的技术方案可以更加准确、有效,能够更好地满足不依赖网络实现同一物理主机上运行的虚拟机之间进行数据交换的需求,进而提高了虚拟化系统功能。
具体的,步骤105遍历同一分组标识对应虚拟机,进行虚拟机间的互信确认,确定建立互信的源虚拟机和目标虚拟机具体可以包括:
首先,采用预设监测进程监测物理主机上的多个虚拟机。
本发明实施例中,物理主机上可以运行多个虚拟机,虚拟化系统需要清楚运行在物理主机上面的所有虚拟机的信息,采用预设监测进程监测物理主机上的多个虚拟机,以便于监测虚拟机的数据交换需求。需要说明的是,物理主机上的多个虚拟机存储有虚拟机配置表,用于各个虚拟机同步同一物理主机上运行的全部虚拟机信息,以便于确定出待交换数据的目标虚拟机,并且便于判断虚拟机之间是否位于同一物理主机,提高数据交换的安全性。
其次,响应于监测到源虚拟机发送的访问请求,读取虚拟机配置表,确定源虚拟机对应分组标识。
本发明实施例中虚拟化系统响应于监测到源虚拟机发送的访问请求,读取当前最新的虚拟机配置表,确定源虚拟机对应分组标识,以便于根据源虚拟机的分组标识,找出同一分组标识的虚拟机,从而对虚拟机进行互信确认。
具体的,为了便于同一业务系统内的虚拟机之间进行内存数据交换,虚拟机按照业务类别进行分组,每个虚拟机对应分组标识,当一个虚拟机中的应用系统向另外一个同主机虚拟机中的应用系统发起数据请求时,虚拟化系统监测到源虚拟机发送的访问请求,依据访问请求指示的源虚拟机IP地址,读取虚拟机配置表,先确定出源虚拟机对应分组标识,以便于对源虚拟机和同一分组标识的虚拟机进行互信确认。
需要说明的是,虚拟化系统中的虚拟机内存交换相关进程会监测虚拟机信息,并根据里面配置信息进行虚拟机互信的建立,每台虚拟化系统的物理主机都可以维护一张这样的表,并将实时最新的虚拟机配置表下发至物理主机上运行的各虚拟机,在此不再赘述。
其次,遍历同一分组标识对应虚拟机,将源虚拟机与其同一分组标识的虚拟机进行互信确认,确定出建立互信的源虚拟机和目标虚拟机。
本实施例中虚拟化系统遍历同一分组标识对应虚拟机,将源虚拟机与其同一分组标识的虚拟机进行互信确认,其中,源虚拟机会向待互信确认虚拟机发起第一次问询消息,待互信确认虚拟机接收到该问询消息后根据问询消息中的源虚拟机标识,验证源虚拟机在待互信确认虚拟机的虚拟机配置表中是否存在,若存在,则表明同一分组标识的虚拟机和源虚拟机在同一物理主机上运行,则待互信确认虚拟机可以回复源虚拟机同意通信,源虚拟机收到同意同一主机通信的消息后确定与目标虚拟机互信,并向虚拟化系统发送已和目标虚拟机建立互信的消息内容,同时目标虚拟机接收到源虚拟机的确认消息后也会向虚拟化系统发送已和源虚拟机建立互信的消息内容,虚拟化系统确定出建立互信的源虚拟机和目标虚拟机。
本发明实施例通过监测源虚拟机发送的访问请求,确定源虚拟机对应分组标识,遍历同一分组标识对应虚拟机,将源虚拟机与其同一分组标识的虚拟机进行互信确认,确定出建立互信的源虚拟机和目标虚拟机,保证源虚拟机和目标虚拟机是同一物理主机且建立互信,以提高虚拟机间数据交换的安全性和准确性,避免任意虚拟机之间均通过物理内存地址交换数据造成数据混乱的问题,进一步提高同一物理主机上虚拟机数据交换的有效性。
具体的,步骤遍历同一分组标识对应虚拟机,将源虚拟机与其同一分组标识的虚拟机进行互信确认,确定出建立互信的源虚拟机和目标虚拟机可以包括以下步骤:
首先,接收源虚拟机与其同一分组标识的虚拟机分别发送的问询完成消息;其中,问询完成消息是源虚拟机发起询问消息,同一分组标识的虚拟机根据询问消息返回响应消息确定的;
其次,根据问询完成消息,确定与源虚拟机建立互信的目标虚拟机,生成源虚拟机和目标虚拟机的互信关系;
其次,将源虚拟机和目标虚拟机的互信关系存储至虚拟机配置表。
需要说明的是,上述步骤中,虚拟化系统的虚拟机内存交换进程接收源虚拟机与其同一分组标识的虚拟机分别发送的问询完成消息,确定与源虚拟机建立互信的目标虚拟机,生成源虚拟机和目标虚拟机的互信关系,并及时更新虚拟机配置表中已互信虚拟机列表值,将建立了互信的源虚拟机和目标虚拟机信息加入到该列,确定两个虚拟机完成互信,再遍历其它虚拟机开始互信确认,至到遍历完所有虚拟机。
本发明实施例通过源虚拟机与其同一分组标识的虚拟机分别发送的问询完成消息,确定与源虚拟机建立互信的目标虚拟机,生成源虚拟机和目标虚拟机的互信关系,将互信关系存储至虚拟机配置表,便于再次数据交换时调用验证,无需重复进行该源虚拟机和目标虚拟机的互信确认,避免数据处理资源的浪费。
具体的,接收源虚拟机与其同一分组标识的虚拟机分别发送的问询完成消息之前,具体还可以包括:
通过源虚拟机向同一分组标识的虚拟机发起问询消息;其中,问询消息包括源虚拟机标识;
响应于同一分组标识的虚拟机接收到问询消息,验证虚拟机配置表是否包括源虚拟机标识;
若是,通过同一分组标识的虚拟机返回响应消息至源虚拟机。
上述步骤中,源虚拟机向同一分组标识的虚拟机第一次发起消息,此消息为问询信息,问询消息内容可以包括:源虚拟机标识、目标虚拟机标识、是否同意发起同一主机通信等内容。目标虚拟机收到该消息后根据消息中的源虚拟机标识,验证虚拟机配置表是否包括源虚拟机标识,如果存在说明是同一主机并回复同意同主机通信,如果不存在说明信息有误,则不同意同主机通信。目标虚拟机回复同意同一主机通信的响应消息给源虚拟机,源虚拟机收到同意同一主机通信的消息后,向虚拟化系统中的虚拟机内存交换进程发送已和该虚拟机建立互信的内容,同时目标虚拟机收到源虚拟机的确认消息后也会向虚拟化系统中的虚拟机内存交换进程发送已和源虚拟机建立互信的消息内容。
本发明实施例通过源虚拟机向同一分组标识的虚拟机发起问询消息,验证虚拟机配置表是否包括源虚拟机标识,通过同一分组标识的虚拟机返回响应消息至源虚拟机,完成源虚拟机和目标虚拟机的互信确认,保证源虚拟机和目标虚拟机处于同一主机,以便于进行同一物理主机虚拟机之间数据交换。
进一步的,将源虚拟机和目标虚拟机的互信关系存储至虚拟机配置表之后,还包括:将新增互信关系的虚拟机配置表下发至物理主机上的各虚拟机,以使每个虚拟机获取虚拟机配置表中的互信关系。
需要说明的是,虚拟化系统在虚拟机配置表发生变化更新后,都将最新的虚拟机配置表下发至各个虚拟机,保证虚拟机运行信息的有效性,具体的将新增互信关系的虚拟机配置表下发至物理主机上的各虚拟机,以使每个虚拟机获取虚拟机配置表中的互信关系,便于进一步快速、有效进行虚拟机的数据交换。本发明实施例对虚拟化系统下发虚拟机配置表的方式不作具体限定,在此不再赘述。
具体的,步骤遍历同一分组标识对应虚拟机,进行虚拟机间的互信确认,确定建立互信的源虚拟机和目标虚拟机之前,所述方法还可以包括:
首先,获取待互信确认虚拟机对应的虚拟机标识。
本发明实施例中,虚拟化系统在获取多个虚拟机的虚拟机配置表之后,由于要保证进行数据交换的是同一物理主机上的虚拟机,因此,要想对待进行数据交换的虚拟机进行互信确认,先根据虚拟机配置表,对待互信确认虚拟机进行验证。具体的,虚拟化系统通过获取待互信确认虚拟机对应的虚拟机标识,依据虚拟机的固定标识,对虚拟机进行匹配验证。
其次,根据虚拟机配置表,对虚拟机标识进行匹配,得到匹配结果。
具体的,虚拟化系统确定出虚拟机标识后,根据物理主机上维持的虚拟机配置表,对虚拟机标识进行匹配,得到匹配结果。若虚拟机标识存在于物理主机上维持的虚拟机配置表,则匹配成功,否则,说明该虚拟机标识有误或者该虚拟机不是同一物理主机上的,并及时进行错误检查。
其次,根据匹配结果,确定待互信确认虚拟机和源虚拟机位于同一物理主机。
本发明实施例中虚拟化系统根据匹配结果,确定待互信确认虚拟机和源虚拟机位于同一物理主机,在待互信确认虚拟机和源虚拟机位于同一物理主机的情况下,进一步遍历同一分组标识对应虚拟机,进行虚拟机间的互信确认,保证互信虚拟机的准确性和安全性。
具体的,虚拟机配置表是预先根据所述物理主机的业务类别配置生成的,其中,所述虚拟机配置表包括所述业务类别对应的分组标识、物理主机上各虚拟机对应的虚拟机标识,以及源虚拟机和目标虚拟机间的互信关系。
具体的,步骤将第一虚拟内存地址和所述第二虚拟内存地址分别转换为物理主机内存地址之前,还可以包括:
获取物理主机上各虚拟机的虚拟内存地址,确定虚拟机内存地址在物理主机的存储位置;
生成各虚拟机的虚拟内存地址和物理主机内存地址的对应关系,将对应关系存储为地址对照表。
需要说明的是,上述步骤中,由于虚拟化系统管理着每个虚拟机在物理主机内存中的存储位置,所以虚拟化系统可以确定出虚拟机中每个地址对应的物理内存地址。虚拟化系统在对物理主机上各虚拟机进行内存分配后,获取物理主机上各虚拟机的虚拟内存地址,由于虚拟机的内存地址是依据物理主机内存分配的,则虚拟机内存地址在物理主机的存储位置是固定的,通过监测虚拟机状态可以确定虚拟机内存地址在物理主机的存储位置,从而生成各虚拟机的虚拟内存地址和物理主机内存地址的对应关系,本实施例对虚拟机内存地址的划分不作具体限定。
本实施例中生成各虚拟机的虚拟内存地址和物理主机内存地址的对应关系,将对应关系存储为地址对照表,以便于调用地址对照表即可完成虚拟内存地址和物理主机内存地址的对应转换,提高地址转换效率。
进一步的,步骤103根据第一虚拟内存地址和第二虚拟内存地址分别对应的物理主机内存地址,向所述目标虚拟机读取所述待交换数据,以及,将所述待交换数据存储至所述源虚拟机之后,还可以包括:发送待交换数据存储完成消息至源虚拟机和目标虚拟机,以使源虚拟机对待交换数据进行处理。
本发明实施例根据第一虚拟内存地址对应第一物理主机内存地址,确定目标虚拟机中待交换数据在物理主机的存储位置,基于待交换数据在物理主机的存储位置,向目标虚拟机读取预设大小的待交换数据,根据第二虚拟内存地址对应第二物理主机内存地址,将预设大小的待交换数据存储至源虚拟机,实现同在一个物理主机运行的虚拟机间所需数据不再通过网络在虚拟机间传输,而是由虚拟化系统在两个虚拟机内存间存取,减少了对网络的占用和依赖,提高虚拟机间数据传输效率。
参照图6,示出了本发明实施例提供的又一种数据交换方法的步骤流程图,该方法与本发明的第一实施例提供的数据交换方法基本相同,区别在于,所述方法还可以包括:
步骤106,采用预设监测进程对物理主机上各虚拟机的运行状态进行监测,确定各虚拟机的状态变化。
本发明实施例中,当虚拟机在各个物理主机之间迁移,物理主机也会更新其上运行的虚拟机信息,以便于监测虚拟机是否在同一物理主机运行,因此,虚拟化系统采用预设监测进程对物理主机上各虚拟机的运行状态进行监测,确定各虚拟机的状态变化。
步骤107,根据虚拟机的状态变化,生成并更新虚拟机配置表。
本发明实施例中,虚拟化系统的预设监测进程在监测到虚拟机的状态变化后,会根据虚拟机的状态变化,生成并更新虚拟机配置表,其中,物理主机上启动监测虚拟机迁出、迁入、启动关机等状态变化的监测进程,获取主机上虚拟机的变化,并通过生成并更新虚拟机配置表,将变化同步给所有虚拟机。
步骤101,响应于源虚拟机发送的数据请求,获取目标虚拟机中待交换数据的第一虚拟内存地址和源虚拟机的第二虚拟内存地址。
步骤102,将第一虚拟内存地址和第二虚拟内存地址分别转换为物理主机内存地址。
步骤103,根据第一虚拟内存地址和第二虚拟内存地址分别对应的物理主机内存地址,向目标虚拟机所在物理主机内存地址读取待交换数据,以及,将待交换数据存储至源虚拟机所在物理主机内存地址。
上述步骤101至步骤103参照前序所述,在此不再赘述。
需要说明的是,本实施方式不对步骤106和107的具体执行位置进行限定,在本实施方式中,为了便于理解以步骤106和107在步骤101之前执行为例进行说明。在实际的使用过程中,步骤106和107也可以作为一个步骤完成,此处不对每种情况进行一一赘述。
具体的,状态变化包括虚拟机迁入、迁出及开关机状态变化,步骤107具体可以包括以下步骤:
若监测到所述物理主机上虚拟机迁入或迁出变化,对应新增或删除虚拟机配置表中的虚拟机信息;
若监测到所述物理主机上虚拟机的开关机状态变化,更新所述虚拟机配置表中的虚拟机状态。
需要说明的是,上述步骤中,物理主机上虚拟化系统启动监测虚拟机迁出、迁入、启动关机等状态变化的监测进程,用于获取物理主机上虚拟机的变化,并将变化同步给所有虚拟机。当一个虚拟机从当前主机迁移到另一个主机时,迁出虚拟机的主机上监测到虚拟机迁出,会从主机上的虚拟机配置表上将该虚拟机信息删除,迁入虚拟机的主机上监测到有虚拟机迁入,会根据该虚拟机信息,构建新记录并插入到主机上的虚拟机配置表中。对于虚拟机的开关机状态变化,虚拟化系统监测到虚拟机开关机状态变化后,修改主机虚拟机配置表中的虚拟机状态。
本实施例通过监测物理主机上虚拟机迁入或迁出变化以及开关机状态变化,及时更新虚拟机配置表,保证监测虚拟机是处于运行状态,并且在同一物理主机运行,便于下一步进行同一物理主机上的虚拟机数据交换。
具体的,步骤107根据虚拟机的状态变化,生成并更新虚拟机配置表之后,还包括:
响应于虚拟机配置表的更新,将更新后的虚拟机配置表下发至物理主机上各虚拟机,以使每个虚拟机存储虚拟机配置表。
具体的,响应于虚拟机配置表的更新,采用预设工具包将更新后的虚拟机配置表下发至物理主机上各虚拟机,其中,预设工具包是预先安装至物理主机,用于物理主机与各虚拟机的通信。
需要说明的是,虚拟化系统一般都会为虚拟机开发一种预设工具包tools工具,该工具被安装到虚拟机上,用于虚拟化系统和虚拟机之间的信息交互,增加tools工具功能使其能够下发虚拟机信息,物理主机将其上运行的所有虚拟机信息通过tools工具下发给其上运行的每个虚拟机。
本发明实施方式相对于现有技术而言,在实现第一实施方式带来的有益效果基础上,通过预设监测进程对物理主机上各虚拟机的运行状态进行监测,生成并更新虚拟机配置表,以使基于虚拟机配置表能够直接确认各个虚拟机的运行状态以及是否位于同一物理主机,满足同一物理主机上虚拟机之间数据交换的需求,进一步提高本发明实施例虚拟机数据交换的实用性。
参照图7,示出了本发明实施例提供的一种数据交换装置的结构示意图,应用于物理主机,所述物理主机上运行至少两个虚拟机,所述装置包括:
获取地址模块501,用于响应于源虚拟机发送的数据请求,获取目标虚拟机中待交换数据的第一虚拟内存地址和所述源虚拟机的第二虚拟内存地址;
地址转换模块502,用于将所述第一虚拟内存地址和所述第二虚拟内存地址分别转换为物理主机内存地址;
数据交换模块503,用于根据所述第一虚拟内存地址和所述第二虚拟内存地址分别对应的物理主机内存地址,向所述目标虚拟机所在物理主机内存地址读取所述待交换数据,以及,将所述待交换数据存储至所述源虚拟机所在物理主机内存地址。
进一步的,所述获取地址模块501包括:
接收请求子模块,用于接收所述源虚拟机发送的数据请求,其中,所述数据请求用于向所述目标虚拟机获取待交换数据;
解析子模块,用于对所述数据请求进行解析,确定出所述源虚拟机发送的数据信息;
第一获取子模块,用于基于所述数据信息,获取所述目标虚拟机中待交换数据的第一虚拟内存地址、所述源虚拟机中用于存储所述待交换数据的第二虚拟内存地址,以及所述待交换数据的预设大小。
进一步的,所述地址转换模块502包括:
调用子模块,用于调用预先生成的虚拟机内存地址和物理主机地址之间的地址对照表;
转换子模块,用于根据所述地址对照表,将所述第一虚拟内存地址和所述第二虚拟内存地址分别转换为物理主机内存地址。
进一步的,所述数据交换模块503包括:
确定位置子模块,用于根据所述第一虚拟内存地址对应第一物理主机内存地址,确定所述目标虚拟机中待交换数据在物理主机的存储位置;
读取数据子模块,用于基于待交换数据在物理主机的存储位置,向所述目标虚拟机所在物理主机内存地址读取预设大小的待交换数据;
存储数据子模块,用于根据所述第二虚拟内存地址对应第二物理主机内存地址,将预设大小的待交换数据存储至源虚拟机所在物理主机内存地址。
进一步的,所述装置还包括:
获取配置模块,用于获取至少两个所述虚拟机的虚拟机配置表;其中,所述虚拟机配置表包括所述虚拟机所在虚拟机组的分组标识;
确定互信模块,遍历同一分组标识对应虚拟机,进行虚拟机间的互信确认,确定建立互信的源虚拟机和目标虚拟机。
进一步的,所述确定互信模块包括:
监测子模块,用于采用预设监测进程监测物理主机上的多个所述虚拟机;
确定分组子模块,用于响应于监测到源虚拟机发送的访问请求,读取所述虚拟机配置表,确定所述源虚拟机对应分组标识;
互信子模块,用于遍历同一分组标识对应虚拟机,将所述源虚拟机与其同一分组标识的虚拟机进行互信确认,确定出建立互信的源虚拟机和目标虚拟机。
进一步的,所述互信子模块包括:
接收单元,用于接收源虚拟机与其同一分组标识的虚拟机分别发送的问询完成消息;其中,所述问询完成消息是所述源虚拟机发起询问消息,同一分组标识的虚拟机根据所述询问消息返回响应消息确定的;
生成单元,用于根据所述问询完成消息,确定与所述源虚拟机建立互信的目标虚拟机,生成所述源虚拟机和所述目标虚拟机的互信关系;
第一存储单元,用于将所述源虚拟机和所述目标虚拟机的互信关系存储至所述虚拟机配置表。
进一步的,所述互信子模块还包括:
发起消息单元,用于通过源虚拟机向同一分组标识的虚拟机发起问询消息;其中,所述问询消息包括源虚拟机标识;
验证单元,用于响应于所述同一分组标识的虚拟机接收到问询消息,验证所述虚拟机配置表是否包括所述源虚拟机标识;
返回消息单元,用于若是,通过所述同一分组标识的虚拟机返回响应消息至所述源虚拟机。
进一步的,所述互信子模块还包括:
下发信息单元,用于将新增互信关系的虚拟机配置表下发至所述物理主机上的各虚拟机,以使每个所述虚拟机获取所述虚拟机配置表中的互信关系。
进一步的,所述装置还包括:
获取标识模块,用于获取待互信确认虚拟机对应的虚拟机标识;
标识匹配模块,用于根据所述虚拟机配置表,对所述虚拟机标识进行匹配,得到匹配结果;
确定主机模块,用于根据所述匹配结果,确定所述待互信确认虚拟机和所述源虚拟机位于同一物理主机。
进一步的,所述虚拟机配置表是预先根据所述物理主机的业务类别配置生成的,其中,所述虚拟机配置表包括所述业务类别对应的分组标识、物理主机上各虚拟机对应的虚拟机标识,以及源虚拟机和目标虚拟机间的互信关系。
进一步的,所述装置还包括:
确定位置模块,用于获取所述物理主机上各虚拟机的虚拟内存地址,确定所述虚拟机内存地址在物理主机的存储位置;
生成模块,用于生成各虚拟机的虚拟内存地址和物理主机内存地址的对应关系,将所述对应关系存储为地址对照表。
进一步的,所述装置还包括:
发送消息模块,用于发送待交换数据存储完成消息至所述源虚拟机和所述目标虚拟机,以使所述源虚拟机对所述待交换数据进行处理。
进一步的,所述装置还包括:
监测状态模块,用于采用预设监测进程对物理主机上各虚拟机的运行状态进行监测,确定各虚拟机的状态变化;
生成配置表模块,用于根据所述虚拟机的状态变化,生成并更新虚拟机配置表。
进一步的,所述状态变化包括虚拟机迁入、迁出及开关机状态变化,所述生成配置表模块包括:
第一处理子模块,用于若监测到所述物理主机上虚拟机迁入或迁出变化,对应新增或删除虚拟机配置表中的虚拟机信息;
第二处理子模块,用于若监测到所述物理主机上虚拟机的开关机状态变化,更新所述虚拟机配置表中的虚拟机状态。
进一步的,所述装置还包括:
下发配置表模块,用于响应于所述虚拟机配置表的更新,将更新后的虚拟机配置表下发至所述物理主机上各虚拟机,以使每个所述虚拟机存储所述虚拟机配置表。
进一步的,所述下发配置表模块包括:
下发子模块,用于响应于所述虚拟机配置表的更新,采用预设工具包将更新后的虚拟机配置表下发至所述物理主机上各虚拟机,其中,所述预设工具包是预先安装至所述物理主机,用于所述物理主机与各虚拟机的通信。
本发明实施例提供的数据交换装置,通过响应于源虚拟机发送的数据请求,获取目标虚拟机中待交换数据的第一虚拟内存地址和源虚拟机的第二虚拟内存地址,将第一虚拟内存地址和第二虚拟内存地址分别转换为物理主机内存地址,根据第一虚拟内存地址和第二虚拟内存地址分别对应的物理主机内存地址,向目标虚拟机所在物理主机内存地址读取待交换数据,以及,将待交换数据存储至所述源虚拟机所在物理主机内存地址。本实施例通过将目标虚拟机和源虚拟机的数据存放的虚拟内存位置与物理主机内存位置进行地址转换,直接将虚拟机所需数据在两个虚拟机对应的物理内存上存取,实现同一物理主机上虚拟机间的数据交换,减少数据传输对网络的占用和依赖,有效提高了运行在同一物理主机上虚拟机间数据传输的效率,同时提高了应用系统的响应速度,进一步优化了虚拟化性能。
参照图8,本发明实施例还提供了一种电子设备,如图8所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信,
存储器603,用于存放计算机程序;
处理器601,用于执行存储器603上所存放的程序时,实现如下步骤:
响应于源虚拟机发送的数据请求,获取目标虚拟机中待交换数据的第一虚拟内存地址和所述源虚拟机的第二虚拟内存地址;
将所述第一虚拟内存地址和所述第二虚拟内存地址分别转换为物理主机内存地址;
根据所述第一虚拟内存地址和所述第二虚拟内存地址分别对应的物理主机内存地址,向所述目标虚拟机所在物理主机内存地址读取所述待交换数据,以及,将所述待交换数据存储至所述源虚拟机所在物理主机内存地址。
上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述终端与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的数据交换方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk (SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (20)
1.一种数据交换方法,其特征在于,应用于物理主机,所述物理主机上运行至少两个虚拟机,所述方法包括:
响应于源虚拟机发送的数据请求,获取目标虚拟机中待交换数据的第一虚拟内存地址和所述源虚拟机的第二虚拟内存地址;其中,所述源虚拟机和目标虚拟机是通过所述源虚拟机发起询问消息,同一分组标识的虚拟机根据所述询问消息返回响应消息确定建立互信的;
将所述第一虚拟内存地址和所述第二虚拟内存地址分别转换为物理主机内存地址;
根据所述第一虚拟内存地址和所述第二虚拟内存地址分别对应的物理主机内存地址,向所述目标虚拟机所在物理主机内存地址读取所述待交换数据,以及,将所述待交换数据存储至所述源虚拟机所在物理主机内存地址。
2.根据权利要求1所述的方法,其特征在于,所述响应于源虚拟机发送的数据请求,获取目标虚拟机中待交换数据的第一虚拟内存地址和所述源虚拟机的第二虚拟内存地址,包括:
接收所述源虚拟机发送的数据请求,其中,所述数据请求用于向所述目标虚拟机获取待交换数据;
对所述数据请求进行解析,确定出所述源虚拟机发送的数据信息;
基于所述数据信息,获取所述目标虚拟机中待交换数据的第一虚拟内存地址、所述源虚拟机中用于存储所述待交换数据的第二虚拟内存地址,以及所述待交换数据的预设大小。
3.根据权利要求1所述的方法,其特征在于,所述将所述第一虚拟内存地址和所述第二虚拟内存地址分别转换为物理主机内存地址,包括:
调用预先生成的虚拟机内存地址和物理主机地址之间的地址对照表;
根据所述地址对照表,将所述第一虚拟内存地址和所述第二虚拟内存地址分别转换为物理主机内存地址。
4.根据权利要求1所述的方法,其特征在于,所述根据所述第一虚拟内存地址和所述第二虚拟内存地址分别对应的物理主机内存地址,向所述目标虚拟机所在物理主机内存地址读取所述待交换数据,以及,将所述待交换数据存储至所述源虚拟机所在物理主机内存地址,包括:
根据所述第一虚拟内存地址对应第一物理主机内存地址,确定所述目标虚拟机中待交换数据在物理主机的存储位置;
基于待交换数据在物理主机的存储位置,向所述目标虚拟机所在物理主机内存地址读取预设大小的待交换数据;
根据所述第二虚拟内存地址对应第二物理主机内存地址,将预设大小的待交换数据存储至源虚拟机所在物理主机内存地址。
5.根据权利要求1所述的方法,其特征在于,所述响应于源虚拟机发送的数据请求,获取目标虚拟机中待交换数据的第一虚拟内存地址和所述源虚拟机的第二虚拟内存地址之前,还包括:
获取至少两个所述虚拟机的虚拟机配置表;其中,所述虚拟机配置表包括所述虚拟机所在虚拟机组的分组标识;
遍历同一分组标识对应虚拟机,进行虚拟机间的互信确认,确定建立互信的源虚拟机和目标虚拟机。
6.根据权利要求5所述的方法,其特征在于,所述遍历同一分组标识对应虚拟机并进行互信确认,确定建立互信的源虚拟机和目标虚拟机,包括:
采用预设监测进程监测物理主机上的多个所述虚拟机;
响应于监测到源虚拟机发送的访问请求,读取所述虚拟机配置表,确定所述源虚拟机对应分组标识;
遍历同一分组标识对应虚拟机,将所述源虚拟机与其同一分组标识的虚拟机进行互信确认,确定出建立互信的源虚拟机和目标虚拟机。
7.根据权利要求6所述的方法,其特征在于,所述遍历同一分组标识对应虚拟机,将所述源虚拟机与其同一分组标识的虚拟机进行互信确认,确定出建立互信的源虚拟机和目标虚拟机,包括:
接收源虚拟机与其同一分组标识的虚拟机分别发送的问询完成消息;其中,所述问询完成消息是所述源虚拟机发起询问消息,同一分组标识的虚拟机根据所述询问消息返回响应消息确定的;
根据所述问询完成消息,确定与所述源虚拟机建立互信的目标虚拟机,生成所述源虚拟机和所述目标虚拟机的互信关系;
将所述源虚拟机和所述目标虚拟机的互信关系存储至所述虚拟机配置表。
8.根据权利要求7所述的方法,其特征在于,所述接收源虚拟机与其同一分组标识的虚拟机分别发送的问询完成消息之前,还包括:
通过源虚拟机向同一分组标识的虚拟机发起问询消息;其中,所述问询消息包括源虚拟机标识;
响应于所述同一分组标识的虚拟机接收到问询消息,验证所述虚拟机配置表是否包括所述源虚拟机标识;
若是,通过所述同一分组标识的虚拟机返回响应消息至所述源虚拟机。
9.根据权利要求7所述的方法,其特征在于,所述将所述源虚拟机和所述目标虚拟机的互信关系存储至所述虚拟机配置表之后,还包括:
将新增互信关系的虚拟机配置表下发至所述物理主机上的各虚拟机,以使每个所述虚拟机获取所述虚拟机配置表中的互信关系。
10.根据权利要求6所述的方法,其特征在于,所述遍历同一分组标识对应虚拟机,进行虚拟机间的互信确认,确定建立互信的源虚拟机和目标虚拟机之前,还包括:
获取待互信确认虚拟机对应的虚拟机标识;
根据所述虚拟机配置表,对所述虚拟机标识进行匹配,得到匹配结果;
根据所述匹配结果,确定所述待互信确认虚拟机和所述源虚拟机位于同一物理主机。
11.根据权利要求1所述的方法,其特征在于,所述虚拟机配置表是预先根据所述物理主机的业务类别配置生成的,其中,所述虚拟机配置表包括所述业务类别对应的分组标识、物理主机上各虚拟机对应的虚拟机标识,以及源虚拟机和目标虚拟机间的互信关系。
12.根据权利要求1所述的方法,其特征在于,所述将所述第一虚拟内存地址和所述第二虚拟内存地址分别转换为物理主机内存地址之前,还包括:
获取所述物理主机上各虚拟机的虚拟内存地址,确定所述虚拟机内存地址在物理主机的存储位置;
生成各虚拟机的虚拟内存地址和物理主机内存地址的对应关系,将所述对应关系存储为地址对照表。
13.根据权利要求1所述的方法,其特征在于,所述根据所述第一虚拟内存地址和所述第二虚拟内存地址分别对应的物理主机内存地址,向所述目标虚拟机所在物理主机内存地址读取所述待交换数据,以及,将所述待交换数据存储至所述源虚拟机所在物理主机内存地址之后,还包括:
发送待交换数据存储完成消息至所述源虚拟机和所述目标虚拟机,以使所述源虚拟机对所述待交换数据进行处理。
14.根据权利要求1所述的方法,其特征在于,所述响应于源虚拟机发送的数据请求,获取目标虚拟机中待交换数据的第一虚拟内存地址和所述源虚拟机的第二虚拟内存地址之前,还包括:
采用预设监测进程对物理主机上各虚拟机的运行状态进行监测,确定各虚拟机的状态变化;
根据所述虚拟机的状态变化,生成并更新虚拟机配置表。
15.根据权利要求14所述的方法,其特征在于,所述状态变化包括虚拟机迁入、迁出及开关机状态变化,所述根据所述虚拟机的状态变化,生成并更新虚拟机配置表,包括:
若监测到所述物理主机上虚拟机迁入或迁出变化,对应新增或删除虚拟机配置表中的虚拟机信息;
若监测到所述物理主机上虚拟机的开关机状态变化,更新所述虚拟机配置表中的虚拟机状态。
16.根据权利要求14所述的方法,其特征在于,所述根据所述虚拟机的状态变化,生成并更新虚拟机配置表之后,还包括:
响应于所述虚拟机配置表的更新,将更新后的虚拟机配置表下发至所述物理主机上各虚拟机,以使每个所述虚拟机存储所述虚拟机配置表。
17.根据权利要求16所述的方法,其特征在于,所述响应于所述虚拟机配置表的更新,将更新后的虚拟机配置表下发至所述物理主机上各虚拟机,包括:
响应于所述虚拟机配置表的更新,采用预设工具包将更新后的虚拟机配置表下发至所述物理主机上各虚拟机,其中,所述预设工具包是预先安装至所述物理主机,用于所述物理主机与各虚拟机的通信。
18.一种数据交换装置,其特征在于,应用于物理主机,所述物理主机上运行至少两个虚拟机,所述装置包括:
获取地址模块,用于响应于源虚拟机发送的数据请求,获取目标虚拟机中待交换数据的第一虚拟内存地址和所述源虚拟机的第二虚拟内存地址;其中,所述源虚拟机和目标虚拟机是通过所述源虚拟机发起询问消息,同一分组标识的虚拟机根据所述询问消息返回响应消息确定建立互信的;
地址转换模块,用于将所述第一虚拟内存地址和所述第二虚拟内存地址分别转换为物理主机内存地址;
数据交换模块,用于根据所述第一虚拟内存地址和所述第二虚拟内存地址分别对应的物理主机内存地址,向所述目标虚拟机所在物理主机内存地址读取所述待交换数据,以及,将所述待交换数据存储至所述源虚拟机所在物理主机内存地址。
19.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至17中任一项所述的数据交换方法。
20.一种可读存储介质,其特征在于,所述可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至17中任一项所述的数据交换方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311841165.7A CN117492933B (zh) | 2023-12-28 | 2023-12-28 | 数据交换方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311841165.7A CN117492933B (zh) | 2023-12-28 | 2023-12-28 | 数据交换方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117492933A CN117492933A (zh) | 2024-02-02 |
CN117492933B true CN117492933B (zh) | 2024-03-22 |
Family
ID=89676758
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311841165.7A Active CN117492933B (zh) | 2023-12-28 | 2023-12-28 | 数据交换方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117492933B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105975407A (zh) * | 2016-03-22 | 2016-09-28 | 华为技术有限公司 | 一种内存地址的映射方法及设备 |
CN107278292A (zh) * | 2016-06-21 | 2017-10-20 | 华为技术有限公司 | 一种虚拟机内存的映射方法、装置及数据传输设备 |
CN111813584A (zh) * | 2020-08-05 | 2020-10-23 | Oppo广东移动通信有限公司 | 内存共享方法、装置、电子设备及存储介质 |
CN112463307A (zh) * | 2020-12-11 | 2021-03-09 | 深信服科技股份有限公司 | 一种数据传输方法、装置、设备及可读存储介质 |
-
2023
- 2023-12-28 CN CN202311841165.7A patent/CN117492933B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105975407A (zh) * | 2016-03-22 | 2016-09-28 | 华为技术有限公司 | 一种内存地址的映射方法及设备 |
CN107278292A (zh) * | 2016-06-21 | 2017-10-20 | 华为技术有限公司 | 一种虚拟机内存的映射方法、装置及数据传输设备 |
CN111813584A (zh) * | 2020-08-05 | 2020-10-23 | Oppo广东移动通信有限公司 | 内存共享方法、装置、电子设备及存储介质 |
CN112463307A (zh) * | 2020-12-11 | 2021-03-09 | 深信服科技股份有限公司 | 一种数据传输方法、装置、设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117492933A (zh) | 2024-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108093094B (zh) | 数据库实例访问方法、装置、系统、存储介质和设备 | |
CN107508795B (zh) | 跨容器集群的访问处理装置及方法 | |
US9525592B2 (en) | Client/server network environment setup method and system | |
US10831612B2 (en) | Primary node-standby node data transmission method, control node, and database system | |
CN110908770A (zh) | 虚拟机的运行及创建方法、虚拟机及虚拟机化管理平台 | |
CN109600410B (zh) | 数据存储系统以及方法 | |
WO2019075773A1 (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN111259072A (zh) | 数据同步方法、装置、电子设备和计算机可读存储介质 | |
JP2019525604A (ja) | ネットワーク機能nf管理方法及びnf管理装置 | |
CN111327651A (zh) | 资源下载方法、装置、边缘节点及存储介质 | |
JP2019531563A (ja) | データ処理方法、記憶システムおよび切り換え装置 | |
JP7132494B2 (ja) | マルチクラウド運用プログラム、およびマルチクラウド運用方法 | |
CN111064786B (zh) | 账户标识管理方法及设备 | |
CN113342711B (zh) | 页表更新方法、装置及相关设备 | |
KR101846778B1 (ko) | Id 확인 서비스 방법 및 이를 적용한 m2m 시스템 | |
CN110855810B (zh) | 一种nat转换方法、装置、网络安全设备及存储介质 | |
CN117492933B (zh) | 数据交换方法、装置、电子设备及存储介质 | |
CN110798358A (zh) | 分布式服务标识方法、装置、计算机可读介质及电子设备 | |
CN113301173A (zh) | 域名更新系统及方法、消息转发方法、服务器 | |
CN114301872B (zh) | 基于域名的访问方法及装置、电子设备、存储介质 | |
CN115333933A (zh) | 一种机房上架的服务器的自动管理方法、介质及设备 | |
CN111669358B (zh) | 一种批量处理vrouter网络隔离空间的方法和装置 | |
WO2021087865A1 (zh) | 寻址方法、寻址系统以及寻址装置 | |
JP2017123040A (ja) | サーバー装置、分散ファイルシステム、分散ファイルシステム制御方法、および、プログラム | |
CN107704462B (zh) | 资源的元数据维护方法、设备及存储装置 |
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 |