CN114327748B - 虚拟机交互方法、装置、非易失性存储介质及处理器 - Google Patents
虚拟机交互方法、装置、非易失性存储介质及处理器 Download PDFInfo
- Publication number
- CN114327748B CN114327748B CN202111450646.6A CN202111450646A CN114327748B CN 114327748 B CN114327748 B CN 114327748B CN 202111450646 A CN202111450646 A CN 202111450646A CN 114327748 B CN114327748 B CN 114327748B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- target
- script file
- proxy service
- host
- 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 49
- 230000003993 interaction Effects 0.000 title claims abstract description 35
- 238000013515 script Methods 0.000 claims abstract description 176
- 230000015654 memory Effects 0.000 claims abstract description 46
- 230000006870 function Effects 0.000 claims abstract description 20
- 239000003795 chemical substances by application Substances 0.000 description 14
- 238000012545 processing Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000007726 management method Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000005034 decoration Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种虚拟机交互方法、装置、非易失性存储介质及处理器。其中,该方法包括:第一主机中的第一代理服务根据API调用请求,调用目标脚本文件,其中,目标脚本文件通过被目标虚拟机执行以实现功能,目标虚拟机与第一主机对应;第一代理服务将目标脚本文件通过数据通道发送至目标虚拟机中的第二代理服务;第二代理服务将目标脚本文件存入目标虚拟机的虚拟机内存中,并执行目标脚本文件。本发明解决了难以便捷地管理控制虚拟化集群中包括的多个虚拟机的技术问题。
Description
技术领域
本发明涉及虚拟化技术领域,具体而言,涉及一种虚拟机交互方法、装置、非易失性存储介质及处理器。
背景技术
在虚拟化平台中,虚拟机和主机之间处于隔离的状态,平台无法直接读取虚拟机的Guest OS信息或者修改OS的配置。解决这些问题常见的方式是在虚拟机内部安装一个代理工具(虚拟机工具,vmtools)服务,该服务会接收平台的指令然后在虚拟机中执行相应的操作。
此外,还可以将自定义的操作写入脚本,然后将脚本以消息的形式转发到虚拟机所处的宿主机,然后再由宿主机上的程序转发到虚拟机中,虚拟机中执行这些脚本,实现一定的功能。然而,对于包括多台宿主机以及大量虚拟机的虚拟化集群,需要手动将脚本文件等数据以消息的形式发送给虚拟机以完成配置,该方法效率不高,且不够便捷。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种虚拟机交互方法、装置、非易失性存储介质及处理器,以至少解决难以便捷地管理控制虚拟化集群中包括的多个虚拟机的技术问题。
根据本发明实施例的一个方面,提供了一种虚拟机交互方法,包括:第一主机中的第一代理服务根据API调用请求,调用目标脚本文件,其中,所述目标脚本文件通过被目标虚拟机执行以实现功能,所述目标虚拟机与所述第一主机对应;所述第一代理服务将所述目标脚本文件通过数据通道发送至所述目标虚拟机中的第二代理服务;所述第二代理服务将所述目标脚本文件存入所述目标虚拟机的虚拟机内存中,并执行所述目标脚本文件。
可选地,在调用所述目标脚本文件之前,还包括以下步骤至少之一:所述第一主机中的第一代理服务接收所述API调用请求;或,第二主机中的第三代理服务接收所述API调用请求,其中,所述第一主机与所述第二主机属于同一个虚拟化集群;所述第二主机读取所述API调用请求,得到与所述API调用请求对应的所述目标虚拟机;在所述目标虚拟机与所述第一主机对应的情况下,所述第三代理服务将所述API调用请求发送至所述第一主机的第一代理服务。
可选地,所述API调用请求为RESTful API类型的请求,所述API调用请求包括:所述目标虚拟机的唯一标识,所述目标脚本文件的存放路径,所述目标脚本文件的参数;所述第一主机中的第一代理服务根据API调用请求,调用目标脚本文件,包括:所述第一代理服务读取所述API调用请求包括的所述目标虚拟机的唯一标识,根据所述唯一标识判断所述第一主机与所述目标虚拟机是否对应;在所述第一主机与所述目标虚拟机对应的情况下,发送所述API调用请求至所述虚拟化集群的API接口;所述API接口基于所述API调用请求包括的所述目标脚本文件的存放路径,向所述第一代理服务返回所述目标脚本文件。
可选地,所述第一代理服务将所述目标脚本文件通过数据通道发送至所述目标虚拟机中的第二代理服务,包括:所述第一代理服务将所述目标脚本文件存入所述第一主机的主机内存,并计算所述目标脚本文件的第一哈希值;比较所述目标脚本文件的第一哈希值与所述第一代理服务发送至所述目标虚拟机的在先脚本文件的第二哈希值,在所述第一哈希值与所述第二哈希值不同的情况下,所述第一代理服务将所述目标脚本文件通过数据通道发送至所述目标虚拟机中的第二代理服务。
可选地,在所述第一哈希值与所述第二哈希值相同的情况下,所述第一代理服务向所述目标虚拟机中的第二代理服务发送指令,用于指示所述第二代理服务执行所述在先脚本文件。
可选地,在所述第二代理服务将所述目标脚本文件存入虚拟机内存中之前,还包括:所述第二代理服务将所述目标脚本文件存入所述目标虚拟机的磁盘中。
可选地,所述第一代理服务将所述目标脚本文件通过数据通道发送至所述目标虚拟机中的第二代理服务,包括:通过virtio-serial,在所述第一主机与所述目标虚拟机之间建立所述数据通道;通过所述数据通道,所述第一代理服务将所述目标脚本文件发送至所述目标虚拟机中的第二代理服务。
根据本发明实施例的另一方面,还提供了一种虚拟机交互装置,包括:调用模块,用于第一主机中的第一代理服务根据API调用请求,调用目标脚本文件,其中,所述目标脚本文件通过被目标虚拟机执行以实现功能,所述目标虚拟机与所述第一主机对应;发送模块,用于所述第一代理服务将所述目标脚本文件通过数据通道发送至所述目标虚拟机中的第二代理服务;执行模块,用于所述第二代理服务将所述目标脚本文件存入所述目标虚拟机的虚拟机内存中,并执行所述目标脚本文件。
根据本发明实施例的又一方面,还提供了一种非易失性存储介质,所述非易失性存储介质包括存储的程序,其中,在所述程序运行时控制所述非易失性存储介质所在设备执行上述任意一项所述虚拟机交互方法。
根据本发明实施例的再一方面,还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述任意一项所述虚拟机交互方法。
在本发明实施例中,虚拟化集群中的主机采用基于API调用请求调用脚本文件的方式,通过第一主机中的第一代理服务根据API调用请求,调用在第一主机内的目标虚拟机中执行的目标脚本文件,由第一代理服务将目标脚本文件通过数据通道发送至目标虚拟机中的第二代理服务,再由第二代理服务将目标脚本文件存入目标虚拟机的虚拟机内存中,并执行目标脚本文件,达到了控制虚拟化集群中的海量虚拟机执行脚本文件以更新功能的目的,从而实现了提高对虚拟化集群中的虚拟机进行管理控制的便捷性的技术效果,进而解决了难以便捷地管理控制虚拟化集群中包括的多个虚拟机的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1示出了一种用于实现虚拟机交互方法的计算机终端的硬件结构框图;
图2是根据本发明实施例提供的虚拟机交互方法的流程示意图;
图3是根据本发明可选实施方式提供的一种虚拟机运维管理的架构图;
图4是根据本发明可选实施方式提供的与虚拟机进行交互的流程图;
图5是根据本发明实施例提供的虚拟机交互装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,对本申请实施例进行描述的过程中出现的部分名词或者术语适用于如下解释:
RESTful API,即表现层状态转化API接口,即具有REST(Representational StateTransfer,简称REST)架构风格的API接口,RESTful表示用URL定位资源、用HTTP动词(GET、POST、PUT、DELETE)描述操作,采用HTTP做传输协议。
virtio-serial,为虚拟机平台上统一的虚拟IO接口驱动,用于在虚拟机和主机之间传递消息,对虚拟机和主机的网络设置没有任何要求,效率更高。使用virtio虚拟机不用关注如何创建各种虚拟硬件设备(如磁盘,网卡,显卡等),可以用统一的虚拟设备。
虚拟化集群,由多个物理机组成,在物理机中安装虚拟化软件来运行虚拟机,虚拟化集群中同时部署有虚拟化平台软件,统一管理虚拟机。物理机和虚拟机之间都有网络连接,使其构成一个集群,虚拟机可运行集群中任意一台物理机上。
根据本发明实施例,提供了一种虚拟机交互的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1示出了一种用于实现虚拟机交互方法的计算机终端的硬件结构框图。如图1所示,计算机终端10可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为BUS总线的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的虚拟机交互方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的虚拟机交互方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端10的用户界面进行交互。
现有比较成熟的虚拟化平台中通常安装有不同虚拟机工具,这些工具的功能总体上分为两类:一是获取VM(虚拟机virtual machine,简称VM)的Geust OS信息,比如:OS的版本、网络IP地址以及磁盘信息等,二是对Guest OS进行配置,比如:修改主机名、IP地址、用户密码等,这些功能随虚拟机工具的发布而更新。虚拟机工具提供了VM与宿主机交互的通道,使VM易于管理和使用并可提高VM性能。
然而,在特定虚拟化平台上的虚拟机工具有固定的功能,这些功能能够满足日常配置和管理虚拟机的大部分需求,但用户无法根据需求实现一些自定义的功能,也不能对已有功能修改、改进和优化,虚拟机工具功能相对比较局限。
通过脚本文件的方式可以实现用户在虚拟机中自定义一些操作,通过编写脚本实现自定义配置和管理VM,脚本主要包括shell(Linux)、powershell(Windows)、bat(Windows)、Python,这些脚本在此后会被传输到VM中执行,脚本根据功能大体上可分为三类:1.获取OS信息,比如;获取IP地址、DNS地址或CPU/MEM性能数据等;2.配置VM,比如:修改账号密码、修改主机名、修改IP地址等;3.管理VM。其中包括:关机、重启、安装/卸载软件等。然而在虚拟化集群中包括海量虚拟机,如何对海量虚拟机进行统一便捷地运维管理成为一个问题。
图2是根据本发明实施例提供的虚拟机交互方法的流程示意图,如图2所示,该方法包括如下步骤:
步骤S202,第一主机中的第一代理服务根据API调用请求,调用目标脚本文件。其中,目标脚本文件可以由用户预先编写并存储,由第一代理服务根据API调用请求进行调用,将目标脚本文件发送给第一主机对应的目标虚拟机后,目标脚本文件通过被目标虚拟机执行以实现功能。第一代理服务为一种特殊的进程,用于处理主机与虚拟机之间进行数据交互相关的事务。
可选地,第一主机可以为虚拟化集群中的主机之一,该主机中运行目标虚拟机,因此目标虚拟机与第一主机对应。通过本步骤,用户想要运维和管理虚拟机时,不需要为各个虚拟机依次编写脚本文件并指定脚本文件发送的主机或虚拟机,而只需要将脚本文件编写好后存放到预定路径,然后为编写对应于不同虚拟机的API调用请求即可,由主机根据API调用请求自动调用目标脚本文件并将其发送给目标虚拟机。
步骤S204,第一代理服务将目标脚本文件通过数据通道发送至目标虚拟机中的第二代理服务。
可选地,第二代理服务可以为目标虚拟机中预先安装的代理服务,与第一代理服务类似,第二代理服务也是一种特殊的进程,用于处理主机与虚拟机之间进行数据交互相关的事务。
步骤S206,第二代理服务将目标脚本文件存入目标虚拟机的虚拟机内存中,并执行目标脚本文件。
通过上述步骤,虚拟化集群中的主机采用基于API调用请求调用脚本文件的方式,通过第一主机中的第一代理服务根据API调用请求,调用在第一主机内的目标虚拟机中执行的目标脚本文件,由第一代理服务将目标脚本文件通过数据通道发送至目标虚拟机中的第二代理服务,再由第二代理服务将目标脚本文件存入目标虚拟机的虚拟机内存中,并执行目标脚本文件,达到了控制虚拟化集群中的海量虚拟机执行脚本文件以更新功能的目的,从而实现了提高对虚拟化集群中的虚拟机进行管理控制的便捷性的技术效果,进而解决了难以便捷地管理控制虚拟化集群中包括的多个虚拟机的技术问题。本发明采用的RESTful是一种设计设计规范,遵循该规范设计的API结构清晰、易于理解和使用,并且扩展方便,用户只需发送简单的http请求便可轻松实现配置虚拟机的功能。
作为一种可选的实施例,API调用请求为RESTful API类型的请求,API调用请求包括:目标虚拟机的唯一标识,目标脚本文件的存放路径,目标脚本文件的参数;第一主机中的第一代理服务根据API调用请求,调用目标脚本文件,包括:第一代理服务读取API调用请求包括的目标虚拟机的唯一标识,根据唯一标识判断第一主机与目标虚拟机是否对应;在第一主机与目标虚拟机对应的情况下,发送API调用请求至虚拟化集群的API接口;API接口基于API调用请求包括的目标脚本文件的存放路径,向第一代理服务返回目标脚本文件。
可选地,目标虚拟机的唯一标识可以为虚拟机的uuid,目标脚本文件的存放路径可以为用户编写好目标脚本文件后将该文件存放的路径,目标脚本文件的参数可以为对于配置目标虚拟机所需传入目标虚拟机的参数。
可选地,第一代理服务可以首先读取API调用请求包括的目标虚拟机的唯一标识进行一次判断,即判断该目标虚拟机是否位于第一主机中,若第一主机中不存在该虚拟机,第一代理服务可以在虚拟化集群中查找哪个主机中存在目标虚拟机并将该API调用请求发送至对应的主机中。若目标虚拟机位于第一主机中,第一代理服务将API调用请求发送至虚拟化集群统一的API接口,由API接口根据API调用请求中存储的目标脚本文件的存放路径调用目标脚本文件。通过本可选的实施例,用户只要将编写好的脚本文件保存在一个路径之下,维护和管理虚拟机时只需要编辑RESTful API并发给主机中的代理服务即可,由代理服务完成脚本文件的确认和分发,该过程不需要用户再进行手动操作,减少了用户维护集群的人工成本。
作为一种可选的实施例,在调用目标脚本文件之前,还包括以下步骤至少之一:第一主机中的第一代理服务接收API调用请求;或,第二主机中的第三代理服务接收API调用请求,其中,第一主机与第二主机属于同一个虚拟化集群;第二主机读取API调用请求,得到与API调用请求对应的目标虚拟机;在目标虚拟机与第一主机对应的情况下,第三代理服务将API调用请求发送至第一主机的第一代理服务。
需要说明的是,本实施例中的第二主机中不存在目标虚拟机,因此该主机的代理服务发现这一问题后可以在虚拟化集群中进行搜索以确定目标虚拟机在第一主机中,进而将API调用请求发送至第一主机,实现了调用请求的自动分发,而不需要用户仔细地监控每一个调用请求中的虚拟机的IP地址并将调用请求发送给IP地址对应的主机。
作为一种可选的实施例,第一代理服务将目标脚本文件通过数据通道发送至目标虚拟机中的第二代理服务,可以通过virtio-serial,在第一主机与目标虚拟机之间建立数据通道;通过数据通道,第一代理服务将目标脚本文件发送至目标虚拟机中的第二代理服务。通过virtio-serial在虚拟机与主机之间建立的数据通道可以实现宿主机与虚拟机的通信,且比单独地虚拟硬件设备效率更高。
作为一种可选的实施例,第一代理服务将目标脚本文件通过数据通道发送至目标虚拟机中的第二代理服务,可以采用如下方式:第一代理服务将目标脚本文件存入第一主机的主机内存,并计算目标脚本文件的第一哈希值;比较目标脚本文件的第一哈希值与第一代理服务发送至目标虚拟机的在先脚本文件的第二哈希值,在第一哈希值与第二哈希值不同的情况下,第一代理服务将目标脚本文件通过数据通道发送至目标虚拟机中的第二代理服务。
作为一种可选的实施例,在第一哈希值与第二哈希值相同的情况下,第一代理服务向目标虚拟机中的第二代理服务发送指令,用于指示第二代理服务执行在先脚本文件。
可选地,当第一代理服务第一次向目标虚拟机发送脚本文件时,第一代理服务可以先将脚本文件缓存入第一主机的内存中,然后采用MD5哈希算法计算出脚本文件的哈希值,然后将脚本文件发送至虚拟机,该脚本文件即为在先脚本文件。当第一代理服务向目标虚拟机发送目标脚本文件时,第一代理服务可以将目标脚本文件缓存入第一主机的内存中,然后同样采用MD5哈希算法计算出目标脚本文件的第一哈希值,然后将第一哈希值与在先脚本文件的哈希值进行比对,确认是否为同一脚本文件。若通过比对哈希值发现两个脚本文件相同,则没有必要将相同的文件再次发送给目标虚拟机,此时可以直接将内存中的目标脚本文件删除,然后向目标虚拟机发送执行在先脚本文件的指令,减少了文件重复发送造成的资源损耗。
作为一种可选的实施例,在第二代理服务将目标脚本文件存入虚拟机内存中之前,还可以由第二代理服务将目标脚本文件存入目标虚拟机的磁盘中。可选地,第二代理服务可以负责接收目标脚本文件并将该文件保存(即持久化)到目标虚拟机的磁盘中的特定路径下,然后再将该文件存入虚拟机内存中。这样当虚拟机若发生故障、关机等,可以直接从磁盘中的特定路径下恢复该目标脚本文件,而不需要从主机中再次传输该文件,保证数据不丢失,提高了整体效率。
图3是根据本发明可选实施方式提供的一种虚拟机运维管理的架构图,如图3所示,虚拟化集群中可以包括一个RESTful的API接口和多个主机,例如第一主机和第二主机,每个主机中可以存在至少一个虚拟机。其中,第一主机中运行第一代理服务,第一主机中的目标虚拟机中运行第二代理服务,第一代理服务与第二代理服务之间可以通过以unixsocket和virtio-serial进行交互,第一代理服务通过RESTful API接收目标脚本文件并将该文件发送至第二代理服务,第二代理服务负责在虚拟机中接收和执行目标脚本文件。整个架构中仅需要在虚拟化集群的主机中安装一个代理服务,并在虚拟机中安装对应的代理服务即可,方便灵活。
图4是根据本发明可选实施方式提供的与虚拟机进行交互的流程图,如图4所示,该可选的过程可以包括如下步骤:
S1,编写脚本文件,将脚本文件存入预定路径;
S2,由主机的代理服务agentB接收RESTful API请求,调用脚本文件;
S3,主机中的代理服务agent B接收脚本文件后向虚拟机中的agent A发送该脚本文件,其中,agent B代指主机中的代理服务,agent A代指虚拟机中的代理服务;
S4,agent A接收到脚本文件后,执行脚本文件;
S5,agent A判断脚本文件是否正常执行,若没有正常执行,则将执行的错误信息写入虚拟机的磁盘的错误文件中,若正常执行,进入S6;
S6,判断脚本文件执行是否超时,脚本文件的执行设有超时时间,若超过该时间,agent A结束执行该脚本文件的进程并将该错误信息记入磁盘的错误文件中,若没有超过该时间,表明脚本文件正常执行,则进入步骤S7;
S7,将脚本文件正常执行的信息记入虚拟机磁盘的正常执行文件中;
S8,主机的agent B轮询读取多个虚拟机中记录的文件,当读取到该虚拟机时,将正常执行文件或错误文件返回给agent B。
本可选的实施方式中,只需分别在宿主机和虚拟机上安装agent代理服务程序,无须安装其他模块组件,虚拟机中的代理程序主要负责接收数据、执行脚本并将保存执行结果,宿主机中的代理程序负责转发和处理RESTful API请求,以及读取并返回API请求结果。当用户完成配置脚本并调用RESTful API请求后,宿主机代理程序会读取脚本并将内容缓存在内存中,接着使用socket的方式通过虚拟机中的虚拟接口设备发送数据给虚拟机中的代理程序,虚拟机中代理程序首先会将数据持久化,即将数据保存为脚本,存储到特定路径下。脚本数据都会被缓存起来,若此后脚本没有被修改,则代理程序会直接从内存中取数据,提高了代理程序响应和处理请求的速度。在虚拟机代理程序执行结束后,也会将结果持久到磁盘上,所以,虚拟机若发生故障、关机等,可保证数据不丢失。
根据本发明实施例,还提供了一种用于实施上述虚拟机交互方法的虚拟机交互装置,图5是根据本发明实施例提供的虚拟机交互装置的结构框图,如图5所示,该虚拟机交互装置包括:调用模块52,发送模块54和执行模块56,下面对该虚拟机交互装置进行说明。
调用模块52,用于第一主机中的第一代理服务根据API调用请求,调用目标脚本文件,其中,目标脚本文件通过被目标虚拟机执行以实现功能,目标虚拟机与第一主机对应;
发送模块54,连接于上述调用模块52,用于第一代理服务将目标脚本文件通过数据通道发送至目标虚拟机中的第二代理服务;
执行模块56,连接于上述发送模块54,用于第二代理服务将目标脚本文件存入目标虚拟机的虚拟机内存中,并执行目标脚本文件。
此处需要说明的是,上述调用模块52,发送模块54和执行模块56对应于实施例1中的步骤S202至步骤S206,三个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例1提供的计算机终端10中。
本发明的实施例可以提供一种计算机设备,可选地,在本实施例中,上述计算机设备可以位于计算机网络的多个网络设备中的至少一个网络设备。该计算机设备包括存储器和处理器。
其中,存储器可用于存储软件程序以及模块,如本发明实施例中的虚拟机交互方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的虚拟机交互方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:第一主机中的第一代理服务根据API调用请求,调用目标脚本文件,其中,目标脚本文件通过被目标虚拟机执行以实现功能,目标虚拟机与第一主机对应;第一代理服务将目标脚本文件通过数据通道发送至目标虚拟机中的第二代理服务;第二代理服务将目标脚本文件存入目标虚拟机的虚拟机内存中,并执行目标脚本文件。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一非易失性存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
本发明的实施例还提供了一种非易失性存储介质。可选地,在本实施例中,上述非易失性存储介质可以用于保存上述实施例1所提供的虚拟机交互方法所执行的程序代码。
可选地,在本实施例中,上述非易失性存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,非易失性存储介质被设置为存储用于执行以下步骤的程序代码:第一主机中的第一代理服务根据API调用请求,调用目标脚本文件,其中,目标脚本文件通过被目标虚拟机执行以实现功能,目标虚拟机与第一主机对应;第一代理服务将目标脚本文件通过数据通道发送至目标虚拟机中的第二代理服务;第二代理服务将目标脚本文件存入目标虚拟机的虚拟机内存中,并执行目标脚本文件。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个非易失性取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (9)
1.一种虚拟机交互方法,其特征在于,包括:
第一主机中的第一代理服务根据API调用请求,调用目标脚本文件,其中,所述目标脚本文件通过被目标虚拟机执行以实现功能,所述目标虚拟机与所述第一主机对应;
所述第一代理服务将所述目标脚本文件通过数据通道发送至所述目标虚拟机中的第二代理服务;
所述第二代理服务将所述目标脚本文件存入所述目标虚拟机的虚拟机内存中,并执行所述目标脚本文件;
所述API调用请求为RESTful API类型的请求,所述API调用请求包括:
所述目标虚拟机的唯一标识,所述目标脚本文件的存放路径,所述目标脚本文件的参数;
所述第一主机中的第一代理服务根据API调用请求,调用目标脚本文件,包括:
所述第一代理服务读取所述API调用请求包括的所述目标虚拟机的唯一标识,根据所述唯一标识判断所述第一主机与所述目标虚拟机是否对应;
在所述第一主机与所述目标虚拟机对应的情况下,发送所述API调用请求至虚拟化集群的API接口;
所述API接口基于所述API调用请求包括的所述目标脚本文件的存放路径,向所述第一代理服务返回所述目标脚本文件;
在调用所述目标脚本文件之前,还包括:
第二主机中的第三代理服务接收所述API调用请求,其中,所述第一主机与所述第二主机属于同一个虚拟化集群;
所述第二主机读取所述API调用请求,得到与所述API调用请求对应的所述目标虚拟机;
在所述目标虚拟机与所述第一主机对应的情况下,所述第三代理服务将所述API调用请求发送至所述第一主机的第一代理服务。
2.根据权利要求1所述的方法,其特征在于,在调用所述目标脚本文件之前,还包括:
所述第一主机中的第一代理服务接收所述API调用请求。
3.根据权利要求1所述的方法,其特征在于,所述第一代理服务将所述目标脚本文件通过数据通道发送至所述目标虚拟机中的第二代理服务,包括:
所述第一代理服务将所述目标脚本文件存入所述第一主机的主机内存,并计算所述目标脚本文件的第一哈希值;
比较所述目标脚本文件的第一哈希值与所述第一代理服务发送至所述目标虚拟机的在先脚本文件的第二哈希值,在所述第一哈希值与所述第二哈希值不同的情况下,所述第一代理服务将所述目标脚本文件通过数据通道发送至所述目标虚拟机中的第二代理服务。
4.根据权利要求3所述的方法,其特征在于,在所述第一哈希值与所述第二哈希值相同的情况下,所述第一代理服务向所述目标虚拟机中的第二代理服务发送指令,用于指示所述第二代理服务执行所述在先脚本文件。
5.根据权利要求3所述的方法,其特征在于,在所述第二代理服务将所述目标脚本文件存入虚拟机内存中之前,还包括:所述第二代理服务将所述目标脚本文件存入所述目标虚拟机的磁盘中。
6.根据权利要求1所述的方法,其特征在于,所述第一代理服务将所述目标脚本文件通过数据通道发送至所述目标虚拟机中的第二代理服务,包括:
通过virtio-serial,在所述第一主机与所述目标虚拟机之间建立所述数据通道;
通过所述数据通道,所述第一代理服务将所述目标脚本文件发送至所述目标虚拟机中的第二代理服务。
7.一种虚拟机交互装置,其特征在于,包括:
调用模块,用于第一主机中的第一代理服务根据API调用请求,调用目标脚本文件,其中,所述目标脚本文件通过被目标虚拟机执行以实现功能,所述目标虚拟机与所述第一主机对应;
第一发送模块,用于所述第一代理服务将所述目标脚本文件通过数据通道发送至所述目标虚拟机中的第二代理服务;
执行模块,用于所述第二代理服务将所述目标脚本文件存入所述目标虚拟机的虚拟机内存中,并执行所述目标脚本文件;
其中,所述API调用请求为RESTful API类型的请求,所述API调用请求包括:所述目标虚拟机的唯一标识,所述目标脚本文件的存放路径,所述目标脚本文件的参数;
所述调用模块,包括:
读取单元,用于所述第一代理服务读取所述API调用请求包括的所述目标虚拟机的唯一标识,根据所述唯一标识判断所述第一主机与所述目标虚拟机是否对应;
发送单元,用于在所述第一主机与所述目标虚拟机对应的情况下,发送所述API调用请求至虚拟化集群的API接口;
返回单元,用于所述API接口基于所述API调用请求包括的所述目标脚本文件的存放路径,向所述第一代理服务返回所述目标脚本文件;
所述装置还包括:分发模块,其中,所述分发模块用于在调用所述目标脚本文件之前执行如下步骤:
第二主机中的第三代理服务接收所述API调用请求,其中,所述第一主机与所述第二主机属于同一个虚拟化集群;
所述第二主机读取所述API调用请求,得到与所述API调用请求对应的所述目标虚拟机;
在所述目标虚拟机与所述第一主机对应的情况下,所述第三代理服务将所述API调用请求发送至所述第一主机的第一代理服务。
8.一种非易失性存储介质,其特征在于,所述非易失性存储介质包括存储的程序,其中,在所述程序运行时控制所述非易失性存储介质所在设备执行权利要求1至6中任意一项所述虚拟机交互方法。
9.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至6中任意一项所述虚拟机交互方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111450646.6A CN114327748B (zh) | 2021-11-29 | 2021-11-29 | 虚拟机交互方法、装置、非易失性存储介质及处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111450646.6A CN114327748B (zh) | 2021-11-29 | 2021-11-29 | 虚拟机交互方法、装置、非易失性存储介质及处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114327748A CN114327748A (zh) | 2022-04-12 |
CN114327748B true CN114327748B (zh) | 2022-10-18 |
Family
ID=81048147
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111450646.6A Active CN114327748B (zh) | 2021-11-29 | 2021-11-29 | 虚拟机交互方法、装置、非易失性存储介质及处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114327748B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103780674A (zh) * | 2013-11-13 | 2014-05-07 | 南京中兴新软件有限责任公司 | 一种基于硬件模拟的虚拟机通信方法和装置 |
CN106470155A (zh) * | 2015-08-14 | 2017-03-01 | 中国电信股份有限公司 | 一种虚拟机数据的转发方法、sdn控制器和sdn*** |
CN107273186A (zh) * | 2017-06-28 | 2017-10-20 | 深信服科技股份有限公司 | 访问虚拟机服务器的方法、物理主机以及虚拟机 |
CN109857514A (zh) * | 2018-12-20 | 2019-06-07 | 中国电子科技集团公司第十五研究所 | 跨平台跨商用自主环境复杂巨型信息***混合部署*** |
CN110865867A (zh) * | 2015-12-21 | 2020-03-06 | 华为技术有限公司 | 应用拓扑关系发现的方法、装置和*** |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107657172A (zh) * | 2016-07-25 | 2018-02-02 | 腾讯科技(深圳)有限公司 | 代码处理方法、装置及*** |
US10747562B2 (en) * | 2017-04-26 | 2020-08-18 | Vmware, Inc. | Nested hypervisor to run virtual machines on public clouds |
US10903985B2 (en) * | 2017-08-25 | 2021-01-26 | Keysight Technologies Singapore (Sales) Pte. Ltd. | Monitoring encrypted network traffic flows in a virtual environment using dynamic session key acquisition techniques |
CN110297690A (zh) * | 2019-06-28 | 2019-10-01 | 深圳前海微众银行股份有限公司 | 基于云计算的虚拟机使用方法、装置、设备及可读存储介质 |
US11544092B2 (en) * | 2019-08-15 | 2023-01-03 | Raytheon Company | Model specific register (MSR) instrumentation |
CN113138844A (zh) * | 2021-04-25 | 2021-07-20 | 中国工商银行股份有限公司 | 虚拟机集群的任务下发方法、管理构件及工作构件 |
-
2021
- 2021-11-29 CN CN202111450646.6A patent/CN114327748B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103780674A (zh) * | 2013-11-13 | 2014-05-07 | 南京中兴新软件有限责任公司 | 一种基于硬件模拟的虚拟机通信方法和装置 |
CN106470155A (zh) * | 2015-08-14 | 2017-03-01 | 中国电信股份有限公司 | 一种虚拟机数据的转发方法、sdn控制器和sdn*** |
CN110865867A (zh) * | 2015-12-21 | 2020-03-06 | 华为技术有限公司 | 应用拓扑关系发现的方法、装置和*** |
CN107273186A (zh) * | 2017-06-28 | 2017-10-20 | 深信服科技股份有限公司 | 访问虚拟机服务器的方法、物理主机以及虚拟机 |
CN109857514A (zh) * | 2018-12-20 | 2019-06-07 | 中国电子科技集团公司第十五研究所 | 跨平台跨商用自主环境复杂巨型信息***混合部署*** |
Also Published As
Publication number | Publication date |
---|---|
CN114327748A (zh) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11243792B2 (en) | Image file conversion method and apparatus | |
US11294735B2 (en) | Method and apparatus for accessing desktop cloud virtual machine, and desktop cloud controller | |
US8555048B2 (en) | Computer system for booting a system image by associating incomplete identifiers to complete identifiers via querying storage locations according to priority level where the querying is self adjusting | |
TWI492064B (zh) | 雲端系統及其開機部署方法 | |
WO2017185954A1 (zh) | 一种实现usb设备管理的方法、主机和*** | |
CN108089913B (zh) | 一种超融合***的虚拟机部署方法 | |
US11210132B2 (en) | Virtual machine migration in virtualization environment having different virtualization systems | |
US10936352B2 (en) | High performance application delivery to VDI desktops using attachable application containers | |
WO2018192478A1 (zh) | 云管理平台、虚拟机管理方法及其*** | |
CN105450759A (zh) | 一种***镜像的管理方法和装置 | |
US9058205B2 (en) | Automatically performing operations on applications based on dependencies on other applications | |
US8893114B1 (en) | Systems and methods for executing a software package from within random access memory | |
CN113626133B (zh) | 一种虚拟机控制方法、装置、设备及计算机可读存储介质 | |
WO2022199335A1 (zh) | 服务器部件固件升级的控制方法、装置、设备及存储介质 | |
CN114637549A (zh) | 基于服务网格的应用的数据处理方法、***和存储介质 | |
US11321109B2 (en) | Container engine for selecting driver based on container metadata | |
CN114995888A (zh) | 一种智能网卡部署方法、装置及介质 | |
WO2024124912A1 (zh) | 冗余固件的数据同步方法、装置及非易失性可读存储介质 | |
CN114327748B (zh) | 虚拟机交互方法、装置、非易失性存储介质及处理器 | |
US11263039B2 (en) | High performance attachable writeable volumes in VDI desktops | |
CN115469964A (zh) | 块设备与虚拟机盘符之间映射关系的确定方法和装置 | |
WO2018028321A1 (zh) | 一种虚拟外置存储设备的管理方法、装置及终端 | |
WO2017096889A1 (zh) | ***升降级的方法和装置 | |
CN113934443A (zh) | 软件升级*** | |
JP5975003B2 (ja) | 仮想化制御装置、仮想化システム、仮想化方法、および、仮想化制御プログラム。 |
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 | ||
CP03 | Change of name, title or address |
Address after: 8b, building 1, No. 48, Zhichun Road, Haidian District, Beijing 100086 Patentee after: Beijing Zhiling Haina Technology Co.,Ltd. Country or region after: China Address before: 100089 8th floor, block a, Yingdu building, a48 Zhichun Road, Haidian District, Beijing Patentee before: Beijing zhilinghaina Technology Co.,Ltd. Country or region before: China |
|
CP03 | Change of name, title or address |