CN112416509A - 虚拟机控制系统及相关设备 - Google Patents
虚拟机控制系统及相关设备 Download PDFInfo
- Publication number
- CN112416509A CN112416509A CN201910783756.0A CN201910783756A CN112416509A CN 112416509 A CN112416509 A CN 112416509A CN 201910783756 A CN201910783756 A CN 201910783756A CN 112416509 A CN112416509 A CN 112416509A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- request
- protocol
- information
- request 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.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 55
- 238000012856 packing Methods 0.000 claims abstract description 10
- 238000012360 testing method Methods 0.000 claims description 39
- 238000004806 packaging method and process Methods 0.000 claims description 22
- 230000008569 process Effects 0.000 claims description 18
- 230000005540 biological transmission Effects 0.000 claims description 9
- 238000012986 modification Methods 0.000 claims description 9
- 230000004048 modification Effects 0.000 claims description 9
- 238000012546 transfer Methods 0.000 claims description 5
- 230000007704 transition Effects 0.000 claims description 3
- 238000005259 measurement Methods 0.000 claims 1
- 239000003795 chemical substances by application Substances 0.000 description 31
- 238000012545 processing Methods 0.000 description 23
- 230000006870 function Effects 0.000 description 12
- 230000008901 benefit Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 239000010410 layer Substances 0.000 description 6
- 230000006978 adaptation Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008570 general process Effects 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000002346 layers by function Substances 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/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/45591—Monitoring or debugging support
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 And Data Communications (AREA)
Abstract
本公开提供了一种虚拟机控制系统及相关设备,所述系统由中间操作平台、虚拟机组成,所述中间操作平台控制虚拟机的方法包括:获取对虚拟机的操作请求;按照预定协议,将所述操作请求打包为协议所规范格式的请求信息;将所述请求信息发送给虚拟机,使得虚拟机根据所述协议对请求信息进行解析,进而执行相应的操作。本公开实施例能够实现突破虚拟机对用户数量的限制的多用户同时对虚拟机进行多种类型的操作,提高虚拟机的工作效率。
Description
技术领域
本公开涉及系统测试领域,具体涉及一种虚拟机控制系统及相关设备。
背景技术
在系统测试的过程中,为了保证测试不会对原系统造成破坏,用户常常会选择在虚拟机上建立被测系统的复制,通过在虚拟机上对被测系统的复制进行各类操作,从而完成测试。而要在虚拟机上进行各类操作,需要用户使用账号和密码于虚拟机上进行登录后才可实现。而虚拟机对于同一时间所能登录的用户数量是存在严格限制的,一般一台虚拟机只能同时允许两个用户登录,进而进行各类操作。
当各用户之间的测试需求不同时,各用户之间对虚拟机所要进行的操作也是不同的,因此如何实现突破虚拟机对用户数量的限制的多用户同时对虚拟机进行各类操作有着重要意义。而现有技术中,允许突破虚拟机对用户数量的限制的多用户同时对虚拟机进行操作的方法,在同一时间只能支持各用户对虚拟机进行同一种类型的操作,造成虚拟机的工作效率低下。
发明内容
本公开的一个目的在于提出一种虚拟机控制系统及相关设备,能够实现突破虚拟机对用户数量的限制的多用户同时对虚拟机进行多种类型的操作,提高虚拟机的工作效率。
根据本公开实施例的一方面,公开了一种虚拟机控制系统,所述系统由中间操作平台、虚拟机组成,所述中间操作平台控制虚拟机的方法包括:
获取对虚拟机的操作请求;
按照预定协议,将所述操作请求打包为协议所规范格式的请求信息;
将所述请求信息发送给虚拟机,使得虚拟机根据所述协议对请求信息进行解析,进而执行相应的操作。
根据本公开实施例的一方面,公开了一种虚拟机控制系统,所述系统由中间操作平台、虚拟机组成,所述中间操作平台控制虚拟机的装置包括:
获取模块,用于获取对虚拟机的操作请求;
打包模块,用于按照预定协议,将所述操作请求打包为协议所规范格式的请求信息;
发送模块,用于将所述请求信息发送给虚拟机,使得虚拟机根据所述协议对请求信息进行解析,进而执行相应的操作。
与传统技术中突破虚拟机对用户数量的限制的多用户同时对虚拟机进行操作的方法,在同一时间只能支持各用户对虚拟机进行同一种类型的操作相比,本公开的虚拟机控制系统中,用于控制虚拟机的中间操作平台通过预定协议将请求信息发送给虚拟机,使得虚拟机能够根据该预定协议对请求信息的解析,相应地执行请求信息所指定操作类型的操作(例如:包部署、日志查看、服务启停),从而实现突破虚拟机对用户数量的限制的多用户同时对虚拟机进行多种类型的操作,提高虚拟机的工作效率。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
通过参考附图详细描述其示例实施例,本公开的上述和其它目标、特征及优点将变得更加显而易见。
图1A-1C示出了根据本公开一个实施例的虚拟机控制系统的体系构架图。
图2A-2D示出了根据本公开一个实施例的具体应用场景下的中间操作平台的配置界面图。
图3示出了根据本公开一个实施例的中间操作平台控制虚拟机的方法的流程图。
图4示出了根据本公开一个实施例的agent代理处理请求信息的流程图。
图5示出了根据本公开一个实施例的用于管理操作请求所针对对象的状态机的流程图。
图6示出了根据本公开一个实施例的中间操作平台控制虚拟机的装置的模块图。
图7示出了根据本公开一个实施例的中间操作平台的电子设备的硬件结构图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些示例实施方式使得本公开的描述将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多示例实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的示例实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、步骤等。在其它情况下,不详细示出或描述公知结构、方法、实现或者操作以避免喧宾夺主而使得本公开的各方面变得模糊。
附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
下面首先参考图1A、1B描述本公开实施例虚拟机控制系统的体系构架。
图1A示出了本公开一实施例的虚拟机控制系统:由虚拟机10、中间操作平台20组成,用户端与中间操作平台20连接,并通过中间操作平台20对虚拟机10进行控制。
图1B示出了本公开一实施例的虚拟机控制系统的详细体系构架:中间操作平台20包括网络层、用户端功能层、适配通信层。其中,网络层用于支持基本的通信功能;用户端功能层用于为用户端提供各种服务的支持,例如:服务停启、配置文件修改、日志操作、包部署;适配通信层用于通过预定协议与虚拟机进行通信。虚拟机10上安装有能够通过预定协议与用户端操作平台20的适配通信层进行通信agent代理。从功能层面来看,可以将该agent代理看作中间操作平台20在虚拟机10上的延伸。
图1C示出了本公开一实施例的在图1B的虚拟机控制系统上的虚拟机控制系统:由虚拟机10、中间操作平台20、源配置数据库30组成。其中,中间操作平台20能够于源配置数据库30中进行数据的写入、读取;虚拟机10能够通过agent代理于源配置数据库30中进行数据的读取。
下面参考图2A-2D描述本公开一实施例在具体应用场景的具体过程。
图2A示出的是中间操作平台20为用户端提供的配置界面,用户端可以在该配置界面进行相应的配置,以使得中间操作平台20对虚拟机10进行相应的控制。
在配置界面,用户端配置请求的虚拟机地址,即图2A所示的目标I P,以指示中间操作平台20所要控制的虚拟机。在配置界面,用户端配置所请求的操作类型:若用户端所请求的操作类型为日志操作,则于配置界面的“日志路径别名”以及“日志路径”进行相应的配置,并点击对应的“修改”按钮;若用户端所请求的操作类型为包部署,则于配置界面的“部署路径别名”以及“部署路径”进行相应的配置;若用户端所请求的操作类型为配置文件修改,则于配置界面的“配置路径别名”以及“配置路径”进行相应的配置;若用户端所请求的操作类型为重启服务,则点击配置界面的“重启”按钮。用户端还可以于配置界面的“系统模块名称”以及“关联服务”进行相应的配置,并点击对应的“修改”按钮,以与用户端所配置的具体操作(例如:用户端所配置的日志操作)共同工作以实现完整的功能。
图2B示出的是一实施例中,用户端所请求的操作类型为日志操作时所进行的配置,具体地,是用户端请求获取日志时所进行的配置。用户端于配置界面通过下拉式列表选择“目标IP”;通过下拉式列表选择“请求类型”,以指示请求的操作类型为获取日志;填写“日志行数”,以指示查看的日志的行数;通过下拉式列表选择“请求路径”,以指示具体所查看的日志的名称;填写“路径”,以指示具体所查看的日志的获取路径。点击“获取”按钮,中间操作平台20即根据该配置控制相应的虚拟机进行相应的日志的获取。
图2C示出的是一实施例中,用户端所请求的操作类型为包部署时所进行的配置,具体地,是用户端请求推送包时所进行的配置。用户端于配置界面通过下拉式列表选择“目标IP”;通过下拉式列表选择“推送路径别名”,以指示推送的包的名称;填写“推送路径”,以指示具体所要推送到的路径。点击“推送”按钮,中间操作平台20即根据该配置控制相应的虚拟机进行相应的包的推送。
图2D示出的是一实施例中,用户端通过中间操作平台20与其它平台进行对接时进行的配置,具体地,是与清算对账平台进行对接时进行的配置。用户端于中间操作平台20的配置界面配置所对接平台的REQ单号、模块、部署版本、环境、部署方式,从而实现与清算对账平台的对接。
需要说明的是,图2A-2D对应的实施例中的被控制的虚拟机为windows虚拟机,中间操作平台在图2A-2D中被表示为easy4windows、或者easy4win平台。该实施例只是示例性的说明,并不代表本公开仅适用于对windows虚拟机的控制,图2A-2D对应的实施例中的各种具体表现只是用于展示本公开在实际应用中的大致过程,不应对本公开的功能和范围造成限制。
下面对本公开实施例中间操作平台控制虚拟机的过程进行详细描述。
本公开实施例的虚拟机控制系统由中间操作平台、虚拟机组成,如图3所示,一种中间操作平台控制虚拟机的方法,包括:
步骤310、获取对虚拟机的操作请求;
步骤320、按照预定协议,将所述操作请求打包为协议所规范格式的请求信息;
步骤330、将所述请求信息发送给虚拟机,使得虚拟机根据所述协议对请求信息进行解析,进而执行相应的操作。
预定协议是指能够支持中间操作平台与虚拟机之间相互通信的协议,中间操作平台能够根据该协议将信息打包为该协议所规范格式的请求信息,虚拟机能够根据该协议对中间操作平台发来的请求信息进行解析。其中,虚拟机所进行的解析是由预先在虚拟机内部写入的agent代理完成的。
在一实施例中,预定协议是一种预先自定义格式的TCP(TransmissionControlProtocol,传输控制协议)。
需要说明的是,该实施例只是示例性的说明,不应对本公开的功能和范围造成限制。
本公开实施例中,要控制虚拟机执行各类操作时,用户端并不登录虚拟机,而是将对虚拟机的操作请求发送给中间操作平台,再由中间操作平台根据预定协议将该操作请求打包,将得到协议所规范格式的请求信息并发送给虚拟机,使得虚拟机能够根据解析后的请求信息执行相应的操作,从而满足用户端对虚拟机的操作请求。
在一实施例中,中间操作平台将配置界面开放给用户端,使得用户端根据自身对虚拟机的操作请求,于配置界面上进行相应的配置,使得中间操作平台能够根据用户端于配置界面上进行的配置,获取对虚拟机的操作请求。
例如:用户端想要获取地址为20.20.20.20的虚拟机的日志,则用户端于中间操作平台的配置界面上,将虚拟机的地址配置为“20.20.20.20”,将请求类型配置为“获取日志”。中间操作平台即可根据用户端的上述配置,获取对虚拟机的操作请求为:“获取地址为20.20.20.20的虚拟机的日志”。
需要说明的是,该实施例只是示例性的说明,并不代表用户端于配置界面上只能配置虚拟机的地址、以及请求类型,该实施例不应对本公开的功能和范围造成限制。
在一实施例中,所述协议所规范格式的请求信息包括请求头信息以及请求体信息,其中,所述请求头信息包括所述操作请求的操作类型标识,所述请求体信息包括所述操作请求指示的具体参数。
该实施例中,请求头信息中的操作类型标识描述了对虚拟机所请求的具体操作类型;请求体信息描述了虚拟机该依据哪些具体参数提供该具体操作类型的操作。
例如:根据预先设定的操作类型标识与具体操作类型的映射关系,若请求头信息中的操作类型标识为“1001”,则代表对虚拟机的操作请求为日志获取请求,相应的,请求体信息描述了执行获取日志这一操作,虚拟机所需要的参数;若操作类型标识为“1004”,则代表对虚拟机的操作请求为包部署请求,相应的,请求体信息描述了执行包部署这一操作,虚拟机所需要的参数。
该实施例的优点在于,通过预定协议,使得中间操作平台能够将各个用户端对虚拟机的操作请求进行统一格式处理,从而使得虚拟机对请求信息的处理能够忽视用户端的身份进而执行相应的操作,从而突破用户数量受到的限制、以及同时满足各用户请求的各种类型的操作。
在一实施例中,所述按照预定协议,将所述操作请求打包为协议所规范格式的请求信息,包括:
按照预定协议,将操作请求对应的操作类型标识打包入请求头信息,将操作请求指示的具体参数打包入请求体信息。
该实施例中,用户端于中间操作平台的配置界面进行相应的配置,将对虚拟机的操作请求发送给中间操作平台。中间操作平台从中确定用户端所请求的操作类型,进而根据预定协议,将对应的操作类型标识打包入请求头信息,将指示的具体参数打包入请求体信息,得到符合协议所规范格式的请求信息。
例如:中间操作平台从用户端对虚拟机的操作请求中确定用户端所请求的为日志获取,则根据预定协议,中间操作平台将日志获取对应的操作类型标识“1001”打包入请求头信息中,将操作请求指示的具体参数打包入请求体信息。
需要说明的是,该实施例只是示例性的描述,不应对本公开的功能和范围造成限制。
在一实施例中,所述虚拟机根据所述协议对请求信息进行解析,进而执行相应的操作,包括:
虚拟机根据所述协议对请求头信息进行解析,获取操作请求对应的操作类型标识;
虚拟机根据所述协议对请求体信息进行解析,获取操作请求指示的具体参数;
虚拟机以所述具体参数,执行所述操作类型标识对应的操作。
该实施例中,虚拟机接收到中间操作平台发送的请求信息后,虚拟机上的agent代理根据预定协议对请求头信息进行解析,获取操作类型标识,从而确定所要执行的处理类;并对请求体信息进行解析,获取操作请求指示的具体参数,进而根据该具体参数执行对应的处理类,从而实现用户端对该虚拟机所请求的操作。
在另一实施例中,预定协议所规范的格式描述了请求信息中各类信息的划分范围。
例如:预定协议所规范的格式描述了请求信息的前50字节是请求头信息,在请求头信息之后的数据,即请求信息的第50个字节之后的数据,是请求体信息。进一步地,请求头信息的前4个字节指示的是操作类型标识;请求头信息在操作类型标识之后的46个字节指示的是执行对应操作所涉及的路径参数;请求体信息指示的是执行对应操作所涉及的除路径参数以外的其它具体参数。
在一实施例中,所述按照预定协议,将所述操作请求打包为协议所规范格式的请求信息,包括:
按照预定协议,将操作请求对应的操作类型标识打包入对应的请求头信息的预定划分范围,将操作请求指示的路径参数打包入对应的请求头信息的预定划分范围,将操作请求指示的除路径参数以外的其它具体参数相应地打包入请求体信息的各预定划分范围中。
该实施例中,用户端于中间操作平台的配置界面进行相应的配置,将对虚拟机的操作请求发送给中间操作平台。中间操作平台从中确定用户端所请求的操作类型,进而根据预定协议,将对应的操作类型标识打包入对应的请求头信息的预定划分范围,将指示的路径参数打包入对应的请求头信息的预定划分范围,将操作请求指示的除路径参数以外的其它具体参数相应地打包入请求体信息的各预定划分范围中,从而得到符合协议所规范格式的请求信息。
例如:中间操作平台从用户端对虚拟机的操作请求中确定用户端所请求的为日志获取,则根据预定协议,中间操作平台将日志获取对应的操作类型标识“1001”打包入请求头信息的前4个字节中,将操作请求指示的路径参数打包入请求头信息的第5~50个字节中,同理,将操作请求指示的除路径参数以外的其它具体参数相应地打包入请求体信息的各预定划分范围中,从而得到符合协议所规范格式的请求信息。
需要说明的是,该实施例只是示例性的说明,用以展示协议所规范格式的其中一种可能实施情况,不应对本公开功能和范围造成限制。
在一实施例中,在所述将所述请求信息发送给虚拟机之前,包括:获取虚拟机地址。
所述将所述请求信息发送给虚拟机,包括:将所述请求信息发送给该虚拟机地址对应的虚拟机。
本公开实施例中,用户端于中间操作平台的配置界面配置虚拟机的地址,从而指示中间操作平台要将打包后的请求信息发送给哪一个虚拟机。
下面参考图4描述虚拟机上的agent代理对请求信息进行解析的大致过程。
图4示出了在一实施例中虚拟机上的agent代理对中间操作平台发来的请求信息进行解析的过程。
在一实施例中,虚拟机上的agent代理动态加载处理类,初始化操作类型标识和其处理类映射,然后多线程监听中间操作平台发送的请求信息。当其中一线程接收到请求头信息时,对该请求头信息进行解析,获取操作类型标识。根据操作类型标识找到对应的处理类并指示虚拟机执行该对应的处理类,进而获取虚拟机返回的执行结果,将执行结果进行打包,通过中间操作平台将打包后的执行结果返回给用户端,该线程此次的操作结束。
该实施例的优点在于,通过对请求信息的监听以及多线程处理解析,提高了虚拟机同时所能服务用户端的数量。
在一实施例中,预定协议规定了对执行结果进行打包的规范格式。虚拟机上的agent代理获取虚拟机的执行结果后,根据协议所规范的格式将执行结果进行打包,将打包的执行结果发送给中间操作平台。中间操作平台根据该协议对打包的执行结果进行解析,再将解析后的执行结果返回给用户端。
显然,agent代理对执行结果进行打包与中间操作平台对操作请求进行打包的具体实施过程同理、中间操作平台对打包的执行结果进行解析于agent代理对请求信息进行解析的具体实施过程同理,故在此不再赘述。
在一实施例中,所述虚拟机控制系统包括源配置数据库,所述中间操作平台能够于所述源配置数据库中进行数据的写入、数据的获取,所述虚拟机能够通过agent代理于所述源配置数据库中进行数据的获取。
在特定操作中,虚拟机需要外部的数据或者文件支持操作的进行。在这种情况下,虚拟机所需的外部数据或者文件可以由中间操作平台事先写入源配置数据库中。同时,中间操作平台将外部数据或者文件所在源配置数据库的数据路径,按照预定协议打包入请求信息中。当虚拟机根据预定协议对请求信息进行解析后,即可根据解析出的数据路径从源配置数据库中获取对应的外部数据或者文件,进而执行相应的操作。
该实施例的优点在于,通过设置源配置数据库,减轻了虚拟机的存储压力,提高了该虚拟机控制系统的功能集成化。
下面对一具体应用场景下的本公开实施例虚拟机控制系统中的详细交互过程进行描述。
在一实施例中,所述操作请求为部署提测包请求,所述方法还包括:
获取对虚拟机的部署提测包请求,所述部署提测包请求包括提测包所在的文件传输服务器路径;
按照预定协议,将所述部署提测包请求打包为相应的请求信息;
将请求信息发送给虚拟机,使得虚拟机根据所述协议对请求信息进行解析,进而从所述文件传输服务器路径获取提测包,并对提测包进行解压、部署。
该实施例中,用户端于中间操作平台的配置界面进行配置,将对虚拟机的部署提测包请求发送给中间操作平台。具体地,用户端配置了虚拟机的地址、提测包的名称、提测包所在的文件传输服务器路径。
中间操作平台根据预定协议,将部署提测包对应的操作类型标识、提测包的名称、提测包所在的文件传输服务器路径打包为请求信息,并发送给虚拟机。
虚拟机接收到请求信息后,由其中的agent代理根据预定协议,对该请求信息进行解析,从而根据解析得到的操作类型标识确定要进行的操作为提测包部署,进而根据提测包所在的文件传输服务器路径获取提测包,并将该提测包进行解压,将解压后的提测包于虚拟机上进行部署,得到虚拟机相应的执行结果。
得到虚拟机相应的执行结果后,虚拟机上的agent代理根据预定协议,将执行结果打包发送给中间操作平台。中间操作平台根据预定协议,对该打包的执行结果进行解析,进而将解析后的执行结果返回给用户端。
该实施例的优点在于,提测包的下载、解压在传统技术中是由用户端负责的。出于用户端的硬件限制,这一过程往往会花费大量时间。而由虚拟机中的agent代理进行提测包的下载、解压,极大降低了这一过程所花费的时间,提高了提测包部署的效率。
需要说明的是,该实施例只是示例性的说明,不应对本公开的功能和范围造成限制。
下面对另一具体应用场景下的本公开实施例虚拟机控制系统中的详细交互过程进行描述。
在一实施例中,所述操作请求为修改虚拟机配置文件请求,所述方法还包括:
获取对虚拟机的修改虚拟机配置文件请求;
按照预定协议,将所述修改虚拟机配置文件请求打包为相应的请求信息;
将所述请求信息发送给虚拟机,使得虚拟机根据所述协议对请求信息进行解析,进而执行相应的虚拟机配置文件修改操作。
该实施例中,用户端于中间操作平台的配置界面进行配置,将对虚拟机的修改虚拟机配置文件请求发送给中间操作平台。具体地,用户端配置了虚拟机的地址、虚拟机配置文件的名称、虚拟机配置文件的数据路径。
中间操作平台根据预定协议,将修改虚拟机配置文件对应的操作类型标识、虚拟机配置文件的名称、虚拟机配置文件的数据路径打包为请求信息,并发送给虚拟机。
虚拟机接收到请求信息后,由其中的agent代理根据预定协议,对该请求信息进行解析,从而根据解析得到的操作类型标识确定要进行的操作为修改虚拟机配置文件,进而使得虚拟机根据虚拟机配置文件的数据路径获取待修改的虚拟机配置文件,并将该虚拟机配置文件进行修改,得到相应的执行结果。
得到虚拟机相应的执行结果后,虚拟机上的agent代理根据预定协议,将执行结果打包发送给中间操作平台。中间操作平台根据预定协议,对该打包的执行结果进行解析,进而将解析后的执行结果返回给用户端。
需要说明的是,该实施例只是示例性的说明,不应对本公开的功能和范围造成限制。
本公开实施例公开的虚拟机控制系统能够支持多用户同时对同一虚拟机进行各类操作,但多用户同时对同一虚拟机进行各类操作可能会出现操作并发的情况。例如:用户A与用户B同时通过中间操作平台对虚拟机上的退款子模块进行部署,导致二者的操作控制并发,发生抵触,从而导致错误的发生。
下面参考图5所示的状态机,对本公开实施例防止并发修改同一配置文件、或者并发部署同一模块的具体过程进行描述。
在一实施例中,在获取对虚拟机的操作请求之后,所述方法还包括:
获取该操作请求所针对的对象的操作记录状态;
基于预设的状态机,对所述对象的操作记录状态进行转移,同时根据所述对象的操作记录状态的转移,对所述对象的操作过程进行控制;
根据状态转移终止后、所述对象的操作记录状态,向用户端返回相应的信息。
操作请求所针对的对象是指对虚拟机的操作请求中所指示的动作的对象。例如:对虚拟机的操作请求为日志获取,则操作请求所针对的对象为日志;对虚拟机的操作请求为配置文件修改,则操作请求所针对的对象为配置文件。其中,操作请求所针对的对象可以是文件,也可以是模块。
在一实施例中,针对虚拟机中各个可以被操作的对象,预先设置对应的操作记录状态表。每当一对象的操作记录状态发生变更,便将变更后的操作记录状态插入到该操作记录状态表中。
该实施例中,当前未被任何用户端操作的对象的操作记录状态记为“初始状态”,一旦对象的操作记录状态从“初始状态”转移出去,即说明该对象正在被一用户端通过中间操作平台所操作。
在一实施例中,中间操作平台对于操作请求所针对的对象的操作记录状态进行实时记录,并基于预设的状态机对操作记录状态进行转移。
在一实施例中,如图5所示:接收到对虚拟机的操作请求后,首先获取所针对的对象的操作记录状态。
1、若该对象的操作记录状态为初始化状态,说明该对象当前未被任何其它用户端操作,则将该对象的操作记录状态更新为“处理中”。
若未成功更新为“处理中”,将失败信息返回给用户端;若成功更新为“处理中”,将根据协议打包后的请求信息发送给虚拟机上的agent代理,由agent代理控制虚拟机进行相应的处理。
若成功将请求信息发送给agent代理,且agent代理成功控制虚拟机对该对象完成处理,则将该对象的操作记录状态更新为初始状态,并将虚拟机的执行结果返回给用户端;若未将请求信息成功发送至agent代理处,或者agent代理失败对该对象完成处理,则将该对象的操作记录状态更新为初始状态,并将相应的失败信息返回给用户端。
2、若该对象的操作记录状态为其它状态,说明该对象正在被其它用户端操作,则终止将请求信息发送给agent代理,以终止该用户端对该对象的操作,并将终止对该对象操作的信息返回给用户端。
3、若该对象的操作记录状态的记录不存在,说明本次是对该对象的第一次操作,即说明该对象当前未被任何其它用户端操作。则将该对象的操作记录状态记为“处理中”,并插入操作记录状态表中。
若未成功插入,将失败信息返回给用户端;若成功插入,将根据协议打包后的请求信息发送给虚拟机上的agent代理,由agent代理控制虚拟机进行相应的处理。
若成功将请求信息发送给agent代理,且agent代理成功控制虚拟机对该对象完成处理,则将该对象的操作记录状态更新为初始状态,并将虚拟机的执行结果返回给用户端;若未将请求信息成功发送至agent代理处,或者agent代理失败对该对象完成处理,则将该对象的操作记录状态更新为初始状态,并将相应的失败信息返回给用户端。
该实施例的优点在于,通过设置状态机防并发,降低了虚拟机控制过程中的错误发生率,提高了虚拟机控制的效率。
需要说明的是,该实施例只是示例性的说明,不应对本公开的功能和范围造成限制。
在一实施例中,接收到对虚拟机的操作请求后,将操作请求中的虚拟机地址、操作类型标识、路径作为唯一标识,找到该操作请求所针对的对象,并通过操作记录状态表获取该对象的操作记录状态。
根据本公开一实施例,如图6所示,还提供了一种中间操作平台控制虚拟机的装置,包括:
获取模块310,用于获取对虚拟机的操作请求;
打包模块320,用于按照预定协议,将所述操作请求打包为协议所规范格式的请求信息;
发送模块330,用于将所述请求信息发送给虚拟机,使得虚拟机根据所述协议对请求信息进行解析,进而执行相应的操作。
在本公开的一示例性实施例中,所述协议所规范格式的请求信息包括请求头信息以及请求体信息,其中,所述请求头信息包括所述操作请求的操作类型标识,所述请求体信息包括所述操作请求指示的具体参数。
在本公开的一示例性实施例中,所述按照预定协议,将所述操作请求打包为协议所规范格式的请求信息,包括:
按照预定协议,将操作请求对应的操作类型标识打包入请求头信息,将操作请求指示的具体参数打包入请求体信息。
在本公开的一示例性实施例中,所述虚拟机根据所述协议对请求信息进行解析,进而执行相应的操作,包括:
虚拟机根据所述协议对请求头信息进行解析,获取操作请求对应的操作类型标识;
虚拟机根据所述协议对请求体信息进行解析,获取操作请求指示的具体参数;
虚拟机以所述具体参数,执行所述操作类型标识对应的操作。
在本公开的一示例性实施例中,所述虚拟机控制系统包括源配置数据库,所述中间操作平台能够于所述源配置数据库中进行数据的写入、数据的获取,所述虚拟机能够于所述源配置数据库中进行数据的获取。
在本公开的一示例性实施例中,所述操作请求为部署提测包请求,所述方法还包括:
获取对虚拟机的部署提测包请求,所述部署提测包请求包括提测包所在的文件传输服务器路径;
按照预定协议,将所述部署提测包请求打包为相应的请求信息;
将请求信息发送给虚拟机,使得虚拟机根据所述协议对请求信息进行解析,进而从所述文件传输服务器路径获取提测包,并对提测包进行解压、部署。
在本公开的一示例性实施例中,在获取对虚拟机的操作请求之后,所述方法还包括:
获取该操作请求所针对的对象的操作记录状态;
基于预设的状态机,对所述对象的操作记录状态进行转移,同时根据所述对象的操作记录状态的转移,对所述对象的操作过程进行控制;
根据状态转移终止后、所述对象的操作记录状态,向用户端返回相应的信息。
在本公开的一示例性实施例中,所述操作请求包括:包部署请求、日志查询请求、服务启停请求、虚拟机配置文件修改请求。
下面参考图6来描述根据本公开实施例的中间操作平台20。图6显示的中间操作平台20仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图6所示,中间操作平台20以通用计算设备的形式表现。中间操作平台20的组件可以包括但不限于:上述至少一个处理单元510、上述至少一个存储单元520、连接不同系统组件(包括存储单元520和处理单元510)的总线530。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元510执行,使得所述处理单元510执行本说明书上述示例性方法的描述部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元510可以执行如图3中所示的各个步骤。
存储单元520可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)5201和/或高速缓存存储单元5202,还可以进一步包括只读存储单元(ROM)5203。
存储单元520还可以包括具有一组(至少一个)程序模块5205的程序/实用工具5204,这样的程序模块5205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线530可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
中间操作平台20也可以与一个或多个外部设备600(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户端能与该中间操作平台20交互的设备通信,和/或与使得该中间操作平台20能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口550进行。并且,中间操作平台20还可以通过网络适配器560与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器560通过总线530与中间操作平台20的其它模块通信。应当明白,尽管图中未示出,可以结合中间操作平台20使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
在本公开的示例性实施例中,还提供了一种计算机程序介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行上述方法实施例部分描述的方法。
根据本公开的一个实施例,还提供了一种用于实现上述方法实施例中的方法的程序产品,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RGM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如JGvG、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户端计算设备上执行、部分地在用户端设备上执行、作为一个独立的软件包执行、部分在用户端计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(KGN)或广域网(WGN),连接到用户端计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。
Claims (10)
1.一种虚拟机控制系统,其特征在于,所述系统由中间操作平台、虚拟机组成,所述中间操作平台控制虚拟机的方法包括:
获取对虚拟机的操作请求;
按照预定协议,将所述操作请求打包为协议所规范格式的请求信息;
将所述请求信息发送给虚拟机,使得虚拟机根据所述协议对请求信息进行解析,进而执行相应的操作。
2.根据权利要求1所述的方法,其特征在于,所述协议所规范格式的请求信息包括请求头信息以及请求体信息,其中,所述请求头信息包括所述操作请求的操作类型标识,所述请求体信息包括所述操作请求指示的具体参数。
3.根据权利要求2所述的方法,其特征在于,所述按照预定协议,将所述操作请求打包为协议所规范格式的请求信息,包括:
按照预定协议,将操作请求对应的操作类型标识打包入请求头信息,将操作请求指示的具体参数打包入请求体信息。
4.根据权利要求2所述的方法,其特征在于,所述虚拟机根据所述协议对请求信息进行解析,进而执行相应的操作,包括:
虚拟机根据所述协议对请求头信息进行解析,获取操作请求对应的操作类型标识;
虚拟机根据所述协议对请求体信息进行解析,获取操作请求指示的具体参数;
虚拟机以所述具体参数,执行所述操作类型标识对应的操作。
5.根据权利要求1所述的方法,其特征在于,所述虚拟机控制系统包括源配置数据库,所述中间操作平台能够于所述源配置数据库中进行数据的写入、数据的获取,所述虚拟机能够于所述源配置数据库中进行数据的获取。
6.根据权利要求1所述的方法,其特征在于,所述操作请求为部署提测包请求,所述方法还包括:
获取对虚拟机的部署提测包请求,所述部署提测包请求包括提测包所在的文件传输服务器路径;
按照预定协议,将所述部署提测包请求打包为相应的请求信息;
将请求信息发送给虚拟机,使得虚拟机根据所述协议对请求信息进行解析,进而从所述文件传输服务器路径获取提测包,并对提测包进行解压、部署。
7.根据权利要求1所述的方法,其特征在于,所述操作请求为修改虚拟机配置文件请求,所述方法还包括:
获取对虚拟机的修改虚拟机配置文件请求;
按照预定协议,将所述修改虚拟机配置文件请求打包为相应的请求信息;
将所述请求信息发送给虚拟机,使得虚拟机根据所述协议对请求信息进行解析,进而执行相应的虚拟机配置文件修改操作。
8.根据权利要求1所述的方法,其特征在于,在获取对虚拟机的操作请求之后,所述方法还包括:
获取该操作请求所针对的对象的操作记录状态;
基于预设的状态机,对所述对象的操作记录状态进行转移,同时根据所述对象的操作记录状态的转移,对所述对象的操作过程进行控制;
根据状态转移终止后、所述对象的操作记录状态,向用户端返回相应的信息。
9.根据权利要求1所述的方法,其特征在于,所述操作请求包括:包部署请求、日志操作请求、服务启停请求、虚拟机配置文件修改请求。
10.一种虚拟机控制系统,其特征在于,所述系统由中间操作平台、虚拟机组成,所述中间操作平台控制虚拟机的装置包括:
获取模块,用于获取对虚拟机的操作请求;
打包模块,用于按照预定协议,将所述操作请求打包为协议所规范格式的请求信息;
发送模块,用于将所述请求信息发送给虚拟机,使得虚拟机根据所述协议对请求信息进行解析,进而执行相应的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910783756.0A CN112416509B (zh) | 2019-08-23 | 2019-08-23 | 虚拟机控制系统及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910783756.0A CN112416509B (zh) | 2019-08-23 | 2019-08-23 | 虚拟机控制系统及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112416509A true CN112416509A (zh) | 2021-02-26 |
CN112416509B CN112416509B (zh) | 2024-01-30 |
Family
ID=74780339
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910783756.0A Active CN112416509B (zh) | 2019-08-23 | 2019-08-23 | 虚拟机控制系统及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112416509B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117075925A (zh) * | 2023-08-16 | 2023-11-17 | 中科驭数(北京)科技有限公司 | libvirt管控面卸载方法、装置、设备及介质 |
CN117075925B (zh) * | 2023-08-16 | 2024-06-07 | 中科驭数(北京)科技有限公司 | libvirt管控面卸载方法、装置、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104580496A (zh) * | 2015-01-22 | 2015-04-29 | 深圳先进技术研究院 | 一种基于临时代理的虚拟机访问系统及服务器 |
CN104702624A (zh) * | 2015-03-27 | 2015-06-10 | 深圳市研唐科技有限公司 | 基于CloudStack平台虚拟机登录方法及系统 |
US9065854B2 (en) * | 2013-10-28 | 2015-06-23 | Citrix Systems, Inc. | Systems and methods for managing a guest virtual machine executing within a virtualized environment |
CN106452951A (zh) * | 2016-09-28 | 2017-02-22 | 北京网御星云信息技术有限公司 | 一种信息处理方法、装置及系统 |
CN107273186A (zh) * | 2017-06-28 | 2017-10-20 | 深信服科技股份有限公司 | 访问虚拟机服务器的方法、物理主机以及虚拟机 |
-
2019
- 2019-08-23 CN CN201910783756.0A patent/CN112416509B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9065854B2 (en) * | 2013-10-28 | 2015-06-23 | Citrix Systems, Inc. | Systems and methods for managing a guest virtual machine executing within a virtualized environment |
CN104580496A (zh) * | 2015-01-22 | 2015-04-29 | 深圳先进技术研究院 | 一种基于临时代理的虚拟机访问系统及服务器 |
CN104702624A (zh) * | 2015-03-27 | 2015-06-10 | 深圳市研唐科技有限公司 | 基于CloudStack平台虚拟机登录方法及系统 |
CN106452951A (zh) * | 2016-09-28 | 2017-02-22 | 北京网御星云信息技术有限公司 | 一种信息处理方法、装置及系统 |
CN107273186A (zh) * | 2017-06-28 | 2017-10-20 | 深信服科技股份有限公司 | 访问虚拟机服务器的方法、物理主机以及虚拟机 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117075925A (zh) * | 2023-08-16 | 2023-11-17 | 中科驭数(北京)科技有限公司 | libvirt管控面卸载方法、装置、设备及介质 |
CN117075925B (zh) * | 2023-08-16 | 2024-06-07 | 中科驭数(北京)科技有限公司 | libvirt管控面卸载方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112416509B (zh) | 2024-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7334162B1 (en) | Dynamic distribution of test execution | |
US11640247B2 (en) | Providing service address space for diagnostics collection | |
US6839706B2 (en) | Block data storage within a computer network | |
CN110162345B (zh) | 一种应用程序访问方法、装置和存储介质 | |
EP1021782A2 (en) | Method and system for client/server and peer-to-peer disk imaging | |
CN102255866A (zh) | 一种数据下载方法及装置 | |
US6185521B1 (en) | System and method for emulating mainframe channel programs by open systems computer systems | |
US20050049849A1 (en) | Cross-platform virtual tape device emulation | |
CN104570967A (zh) | 基于Android系统的远程控制方法及系统 | |
CN112416509A (zh) | 虚拟机控制系统及相关设备 | |
CN116192835A (zh) | 预启动执行环境网络数据包查询方法、装置、设备和介质 | |
CN114629831B (zh) | 一种网卡性能测试方法、装置、设备和存储介质 | |
US8161455B2 (en) | Concurrent execution of multiple primitive commands in command line interface | |
US20170154142A1 (en) | Method and apparatus for simulating slow storage disk | |
CN111611307A (zh) | 报表导出方法及装置 | |
CN113542412B (zh) | 数据传输方法、装置、电子设备及存储介质 | |
CN116560801B (zh) | 一种跨容器的柜面系统信创迁移方法及设备 | |
KR20240059429A (ko) | 데이터 분석 방법, 장치, 시스템 및 컴퓨터 프로그램 | |
CN117193631A (zh) | 基于libvirt的磁盘管理方法、装置、设备和存储介质 | |
CN116781571A (zh) | 负载均衡设备的健康检测方法及装置 | |
CN114791869A (zh) | 基于预设埋点封装Pod云环境监控系统 |
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 |