CN113687906A - 虚拟机的连接方法、电子设备及存储介质 - Google Patents
虚拟机的连接方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113687906A CN113687906A CN202110757093.2A CN202110757093A CN113687906A CN 113687906 A CN113687906 A CN 113687906A CN 202110757093 A CN202110757093 A CN 202110757093A CN 113687906 A CN113687906 A CN 113687906A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- target virtual
- connection
- component
- connection 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例涉及计算机技术领域,公开了一种虚拟机的连接方法、电子设备及存储介质。本发明的部分实施例中,虚拟机的连接方法包括:响应于目标虚拟机的访问请求,调用自定义组件查询目标虚拟机的连接信息;其中,自定义组件中至少存储有:目标虚拟机的连接信息,或者,目标虚拟机的连接信息的查询接口信息;目标虚拟机为本地虚拟机或非本地虚拟机;根据自定义组件查询得到的目标虚拟机的连接信息,构建与目标虚拟机的通信连接。本申请实施例提供的技术方案可以访问非本地虚拟机。
Description
技术领域
本发明实施例涉及计算机技术领域,特别涉及一种虚拟机的连接方法、电子设备及存储介质。
背景技术
开源的云计算管理平台项目(OpenStack)覆盖了网络、虚拟化、操作系统、服务器等各个方面。它是一个正在开发中的云计算平台项目,根据成熟及重要程度的不同,被分解成核心项目、孵化项目,以及支持项目和相关项目。OpenStack包括两个主要模块:虚拟服务器部署和业务计算模块(Nova),以及分布式云存储模块(Swift)。Nova是OpenStack最核心的服务,负责维护和管理云环境的计算资源。OpenStack作为云操作系统,虚拟机生命周期管理是通过Nova来实现的。
然而,目前在基于OpenStack搭建的云平台中,仅支持用户通过万维网(web)控制台远程连接访问平台本地的虚拟机,场景单一,缺乏灵活性。
发明内容
本发明实施方式的目的在于提供一种虚拟机的连接方法、电子设备及存储介质,使得可以访问非本地虚拟机。
为解决上述技术问题,第一方面,本发明实施例提供了一种虚拟机的连接方法,包括:响应于目标虚拟机的访问请求,调用自定义组件查询目标虚拟机的连接信息;其中,自定义组件中至少存储有:目标虚拟机的连接信息,或者,目标虚拟机的连接信息的查询接口信息;目标虚拟机为本地虚拟机或非本地虚拟机;根据自定义组件查询得到的目标虚拟机的连接信息,构建与目标虚拟机的通信连接。
第二方面,本发明实施例提供了一种电子设备,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述实施例提及的虚拟机的连接方法。
第三方面,本发明实施例提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,实现上述实施例提及的虚拟机的连接方法。
本发明实施例相对于现有技术而言,自定义组件中至少存储有目标虚拟机的连接信息或目标虚拟机的连接信息的查询接口,目标虚拟机为本地虚拟机或非本地虚拟机,使得自定义组件可以查询本地虚拟机或非本地虚拟机的连接信息。基于此,云平台在接收到访问请求指示访问的目标虚拟机为非本地虚拟机的情况下,可以通过自定义组件可以查询该非本地虚拟机的连接信息,进而构建与非本地虚拟机之间的通信连接,实现对非本地虚拟机的远程访问。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是现有技术中云平台内各组件的交互示意图;
图2是本申请的一实施例的虚拟机的连接方法的流程图;
图3是本申请的另一实施例的虚拟机的连接方法的流程图;
图4是本申请的又一实施例的虚拟机的连接方法的流程图;
图5是本申请的一个实施例中虚拟机的连接方法的示意图;
图6是本申请实施例中电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本发明的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。
在本发明公开的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明公开的描述中,除非另有说明,“多个”的含义是两个或两个以上。
现有技术中,云平台内各组件的通信连接示意图如图1所示。用户11通过浏览器访问云平台web界面,向web服务器12发送访问请求,以请求远程连接本地目标虚拟机。web服务器12是通过接口(nova-api)13和目标虚拟机所在计算节点21中的管理组件(nova-compute)14向计算节点21上的的目标虚拟机15获取到目标虚拟机的虚拟网络控制台(Virtual Network Console,VNC)端口,即目标虚拟机的连接信息,并通过认证组件(nova-consoleauth)16将目标虚拟机的VNC端口存放到缓存17中。然后,web服务器12通过代理组件(nova-novncproxy)18与认证组件(nova-consoleauth)获取缓存17中的目标虚拟机的连接信息,并与nova-api进行数据校验,如果校验成功,则创建到对应目标虚拟机的VNC端口的socket并返回对应的http连接地址。web控制台通过该地址实现目标虚拟机的远程连接。
通过上述内容可知,现有技术中,在实现虚拟机的远程连接访问时,云平台只能基于内部组件和接口来实现本平台本地创建的虚拟机的连接,如果用户请求访问的目标虚拟机为非本地虚拟机,例如是在其他虚拟化平台创建的目标虚拟机,由于nova-api和nova-compute只能查询本地虚拟机的VNC端口,故无法基于web控制台提供非本地虚拟机的远程连接功能;又如跨数据中心时,即使网络已经打通,仍只能进行本地虚拟机远程连接。
本申请实施例中,如图2所示的虚拟机的连接方法,应用于云平台的web服务器。本实施例提及的虚拟机的连接方法包括如下步骤。
步骤201:响应于目标虚拟机的访问请求,调用自定义组件查询目标虚拟机的连接信息。其中,自定义组件中至少存储有:目标虚拟机的连接信息,或者,目标虚拟机的连接信息的查询接口信息;目标虚拟机为本地虚拟机或非本地虚拟机。
步骤202:根据自定义组件查询得到的目标虚拟机的连接信息,构建与目标虚拟机的通信连接。
本申请实施例中,自定义组件中至少存储有目标虚拟机的连接信息或目标虚拟机的连接信息的查询接口信息,使得自定义组件可以查询本地虚拟机和非本地虚拟机的连接信息。基于此,云平台的web服务器在接收到访问请求指示访问的目标虚拟机为非本地虚拟机的情况下,也可以通过自定义组件可以查询该非本地虚拟机的连接信息,进而构建与非本地虚拟机之间的通信连接,实现对非本地虚拟机的远程访问。
在一个实施例中,虚拟机的连接信息包括虚拟机的IP地址和VNC端口。由于虚拟机可能是非本地虚拟机,同时提供虚拟机的IP地址和VNC端口,以便虚拟机为非本地虚拟机时,可以基于IP地址和VNC端口,成功创建到虚拟机的通信连接。
在一个实施例中,云平台响应于目标虚拟机的访问请求,调用自定义组件查询目标虚拟机的连接信息的过程包括:云平台的web服务器接收目标虚拟机的访问请求,向云平台中的自定义组件发送查询请求,请求查询目标虚拟机的连接信息;自定义组件接收到查询请求后,基于本地存储,查询目标虚拟机的连接信息。由于自定义组件中至少存储有目标虚拟机的连接信息或目标虚拟机的连接信息的查询接口信息,即使目标虚拟机为非本地虚拟机,自定义组件也可以查询目标虚拟机的连接信息。
可选择的,目标虚拟机的连接信息的查询接口信息包括:目标虚拟机所在的控制平台的连接地址,如其他云平台或其他虚拟化平台,或,存有目标虚拟机的连接信息的远程数据中心的数据库地址。由于自定义组件中存储有目标虚拟机所在的控制平台的连接地址或存有目标虚拟机连接信息的远程数据中心的数据库地址,自定义组件可以向目标虚拟机所在的控制平台或存有目标虚拟机连接信息的远程数据中心的数据库发送请求,以查询目标虚拟机的连接信息。
以下对自定义组件获取目标虚拟机的连接信息的方式进行举例说明。
例如,自定义组件中配置有存有目标虚拟机的连接信息的远程数据中心的数据库地址。通过查询该数据库中的数据,获取目标虚拟机的IP地址和VNC端口。
又如,自定义组件中配置有目标虚拟机所在的控制平台的连接地址。自定义组件基于目标虚拟机所在的控制平台的连接地址,调用目标虚拟机所在的控制平台的软件开发工具包(Software Development Kit,SDK)获取目标虚拟机的IP地址和VNC端口。
再如,自定义组件中存储有目标虚拟机的连接信息。在一实施中,自定义组件可预先通过上述方式周期性地从其他控制平台或远程数据中心获取全部虚拟机的连接信息存储在本地,并获取云平台自建的本地虚拟机的连接信息,存储在本地,如此一来,自定义组件可通过查询本地存储,获取目标虚拟机的IP地址和VNC端口。在另一实施中,自定义组件可仅在本地存储云平台内自建的本地虚拟机连接信息,当目标虚拟机为本地虚拟机时,可通过查询本地存储,获取目标虚拟机的IP地址和VNC端口,而当目标虚拟机为非本地虚拟机时,则可通过上述调用接口的方式来获取目标虚拟机的IP地址和VNC端口。如此一来,云平台web服务器可通过自定义组件获取本地虚拟机和非本地虚拟机的连接方式,即可实现本地虚拟机和非本地虚拟机的远程连接。
通过上述内容可知,调用自定义组件,可使得云平台不仅支持访问自身创建的本地虚拟机,在网络打通的情况下,也支持远程连接访问到其他控制平台创建的非本地虚拟机。
需要说明的是,本领域技术人员可以理解,非本地虚拟机的连接信息的查询接口信息也可以是其他地址信息或接口信息,提供其他地址信息或接口信息可以查询到非本地虚拟机的连接信息即可,本实施例不做限制。
在一个实施例中,云平台的web服务器在调用自定义组件查询目标虚拟机的连接信息之前,判断目标虚拟机是不是本地虚拟机。若确定是,则调用nova-api查询目标虚拟机的连接信息,该过程可参考图1及相关描述。若确定不是,则执行调用自定义组件查询目标虚拟机的连接信息的步骤。具体地,针对不同虚拟机,云平台的web服务器调用不同组件查询目标虚拟机的连接信息。
在一个实施例中,自定义组件查询得到的目标虚拟机的连接信息被存储至云平台缓存中。根据自定义组件查询得到的目标虚拟机的连接信息,构建与目标虚拟机的通信连接,包括:获取自定义组件返回的第一查询链接;其中,第一查询链接包括代理组件的请求地址,以及目标虚拟机的连接信息的标识信息;通过访问第一查询链接,向代理组件发送第一连接请求,以供代理组件基于第一连接请求,调用认证组件查询目标虚拟机的连接信息,并根据认证组件返回的目标虚拟机的连接信息,构建与目标虚拟机的通信连接;其中,第一连接请求包括目标虚拟机的连接信息的标识信息。
具体地,由云平台的web服务器响应于目标虚拟机的访问请求,调用自定义组件查询目标虚拟机的连接信息。自定义组件查询到目标虚拟机的连接信息后,生成目标虚拟机的连接信息的标识信息,并将标识信息和目标虚拟机的连接信息对应存储至缓存中。自定义组件拼接代理组件的请求地址和标识信息,生成第一查询链接,并将第一查询链接返回给web服务器,web服务器接收第一查询链接,通过访问第一查询链接,向代理组件发送第一连接请求。代理组件接收第一连接请求,获取第一连接请求中的标识信息,将标识信息发送至认证组件,以便认证组件根据标识信息在缓存中查询目标虚拟机的连接信息。代理组件接收到认证组件返回的目标虚拟机的连接信息后,根据目标虚拟机的连接信息,构建与目标虚拟机的通信连接。
本实施例中,分离认证组件(nova-consoleauth)与接口(nova-api)和管理组件(nova-compute)的绑定,由自定义组件将查询得到的目标虚拟机的连接信息存储至平台缓存中。通过代理组件和认证组件查询和认证用于构建通信连接的目标虚拟机的连接信息,可以保证用于构建通信连接的目标虚拟机的连接信息的可用性。
可选择的,认证组件查询目标虚拟机的连接信息的过程包括:认证组件根据第一连接请求中的目标虚拟机的连接信息的标识信息,从缓存中获取目标虚拟机的连接信息;认证组件对获取的目标虚拟机的连接信息进行校验;认证组件在目标虚拟机的连接信息校验成功后,返回目标虚拟机的连接信息至代理组件。具体地,代理组件基于第一连接请求,获取并传输目标虚拟机的连接信息的标识信息给认证组件,以便认证组件执行查询目标虚拟机的连接信息的相关操作。认证组件在缓存中的目标虚拟机的连接信息校验成功后,再将缓存中的目标虚拟机的连接信息返回给代理组件,使得返回的目标虚拟机的连接信息的可用性更有保障。
可选择的,认证组件对获取的目标虚拟机的连接信息进行校验,包括:向自定义组件发送校验请求,以供自定义组件基于校验请求,查询目标虚拟机的状态信息,并根据目标虚拟机的状态信息,返回校验结果;目标虚拟机的状态信息指示目标虚拟机是否可用,和/或,目标虚拟机的连接信息是否被修改;根据自定义组件返回的校验结果,判断目标虚拟机的连接信息是否校验成功。具体地,由于目标虚拟机的连接信息是存储在缓存中的,在创建与目标虚拟机的通信连接前,存在目标虚拟机被删除或目标虚拟机的连接信息被修改的情况,故需要校验从缓存中取出的连接信息是否可用。认证组件通过自定义组件向目标虚拟机所在虚拟化平台发查询虚拟机状态请求,检查目标虚拟机是否被删除或目标虚拟机的连接信息是否被修改。该例子提供了一种认证组件校验目标虚拟机的连接信息的方法。
需要说明的是,本领域技术人员可以理解,认证组件也可以针对目标虚拟机为本地虚拟机或非本地虚拟机,采用不同的校验方法。例如,在认证组件中新增校验类型,该新增的校验类型针对非本地虚拟机的连接信息,校验规则为若目标虚拟机为非本地虚拟机,则通过自定义组件对目标虚拟机的连接数据进行校验。具体地,认证组件若判定目标虚拟机为本地虚拟机,则调用nova-api组件校验目标虚拟机的连接信息,若判定目标虚拟机为非本地虚拟机,则调用自定义组件校验目标虚拟机。本实施例不对认证组件校验目标虚拟机的连接方式进行限制。
可选择的,在认证组件根据自定义组件返回的校验结果,判断目标虚拟机的连接信息是否校验成功之后,虚拟机的连接方法包括:若目标虚拟机的连接信息校验失败,认证组件重新调用自定义组件查询目标虚拟机的连接信息,并根据自定义组件重新查询得到的目标虚拟机的连接信息,将重新查询得到的目标虚拟机的连接信息返回至代理组件,并更新缓存中的目标虚拟机的连接信息。在校验失败后,通过自定义组件重新查询目标虚拟机的连接信息,以便能够返回最新的目标虚拟机的连接信息至代理组件,进而创建与目标虚拟机的通信连接,提高了云平台对目标虚拟机的访问请求响应成功概率。
在一个实施例中,根据自定义组件查询得到的目标虚拟机的连接信息,构建与目标虚拟机的通信连接,包括:获取自定义组件返回的第二查询链接;其中,第二查询链接包括代理组件的请求地址,以及目标虚拟机的连接信息;通过访问第二查询链接,向代理组件发送第二连接请求,以供代理组件基于第二连接请求,构建与目标虚拟机的通信连接;其中,第二连接请求包括目标虚拟机的连接信息的标识信息。具体地说,自定义组件查询得到虚拟机的连接信息后,拼接代理组件的请求地址和目标虚拟机的连接信息,得到第二查询链接。web服务器获取第二查询链接后,通过访问第二查询链接,向代理组件发送第二连接请求,以供代理组件基于第二连接请求,构建与目标虚拟机的通信连接。
本例子中,自定义组件返回目标虚拟机的连接信息,代理组件无需查询缓存,即可创建与目标虚拟机的通信连接,提高了与目标虚拟机的连接速度。
在一个实施例中,在调用自定义组件查询目标虚拟机的连接信息之前,虚拟机的连接方法还包括:判断预设历史时长内是否接收到目标虚拟机的访问请求;若确定是,获取第三查询链接,第三查询链接包括代理组件的请求地址,以及目标虚拟机的连接数据标识信息或目标虚拟机的连接信息或目标虚拟机的标识信息;通过访问第三查询链接,向代理组件发送第三连接请求,以供代理组件基于第三连接请求获取目标虚拟机对应的通信连接;第三连接请求包括目标虚拟机的连接数据标识信息或目标虚拟机的连接信息或目标虚拟机的标识信息;若确定不是,执行在调用自定义组件查询目标虚拟机的连接信息的步骤。
具体地,web服务器在接收到自定义组件返回的目标虚拟机的访问数据后,记录目标虚拟机的访问数据。访问数据包括:标识信息或目标虚拟机的连接信息或第一查询链接。在接收到新的访问请求后,先在记录的数据中进行搜索,判断记录的数据中是否有新的访问请求对应的目标虚拟机的访问数据。如果没有,则调用自定义组件查询目标虚拟机的连接信息。如果有,则从记录的数据中,获取目标虚拟机的访问数据。web服务器基于目标虚拟机的访问数据,生成第三查询连接。
本实施例中,针对访问过的目标虚拟机,web服务器先通过代理组件,基于之前创建的与目标虚拟机的通信连接,访问目标虚拟机,无需反复调用自定义组件进行目标虚拟机的连接信息的查询,加快了访问过的目标虚拟机的访问速度,减少了自定义组件的操作频率。
需要说明的是,本领域技术人员可以理解,预设历史时长可以根据项目需求、虚拟机的连接信息的更新频率、云平台的资源(如各设备的CPU等)情况设置,例如,预设历史时长设置为1天,或,12个小时,或者,1周,本实施例不做限制。
以下对web服务器获取第三查询链接的方法进行举例说明。
在第一个例子中,自定义组件返回第一查询链接,web服务器记录第一查询链接。web服务器在预设历史时长内再次接收到目标虚拟机的访问请求,将第一查询链接作为第三查询链接。
在第二个例子中,自定义组件返回第一查询链接,web服务器记录第一查询链接中的标识信息。web服务器在预设历史时长内再次接收到目标虚拟机的访问请求,根据记录的目标虚拟机的连接数据标识信息和代理组件的请求地址,生成第三查询链接。
在第三个例子中,自定义组件返回目标虚拟机的连接信息,web服务器记录目标虚拟机的连接信息。web服务器在预设历史时长内再次接收到目标虚拟机的访问请求,根据记录的目标虚拟机的连接信息和代理组件的请求地址,生成第三查询链接。
在第四个例子中,web服务器记录目标虚拟机的标识信息。web服务器在预设历史时长内再次接收到目标虚拟机的访问请求,根据记录的目标虚拟机的标识信息和代理组件的请求地址,生成第三查询链接。
需要说明的是,本领域技术人员可以理解,实际应用中,还可以基于其他方式获取第三查询链接,本实施例仅为举例说明。
以下对代理组件基于第三连接请求获取目标虚拟机对应的通信连接的方式进行举例说明。
在第一个例子中,代理组件基于第三连接请求,在已创建的通信连接中,查找目标虚拟机对应的通信连接。该例子中,调用已创建的通信连接,可以减少从缓存中查询目标虚拟机的连接信息的查询时间等,提高了访问速度。
在第二个例子中,代理组件基于第三连接请求,调用认证组件从缓存中查询目标虚拟机的连接信息。认证组件对缓存中的目标虚拟机的连接信息进行校验,并在校验成功后,发送目标虚拟机的连接信息至代理组件。代理组件若确定认证组件返回目标虚拟机的连接信息,说明缓存中的目标虚拟机的连接信息可用,上次创建的与目标虚拟机的通信连接有效,调用已创建的与目标虚拟机的通信连接。代理组件若确定认证组件返回指示认证失败的响应信息,说明缓存中的目标虚拟机的连接信息不可用,上次创建的与目标虚拟机的通信连接已失效。该例子中,在调用已创建的通信连接前,通过认证组件对已创建的通行连接的可用性进行校验,避免已创建的通信连接失效导致出现访问错误的虚拟机的情况。
需要说明的是,本领域技术人员可以理解,代理组件还可以通过其他方式获取目标虚拟机对应的通信连接,本实施例仅为举例说明。
以上各实施例可以相互结合相互引用,例如下面是各实施例结合后的例子,然并不以此为限;各实施例在不矛盾的前提下可以任意结合成为一个新的实施例。
在一个实施例中,由云平台的web服务器执行的如图3所示的虚拟机的连接方法包括如下步骤。
步骤301:响应于目标虚拟机的访问请求,判断预设历史时长内是否接收到目标虚拟机的访问请求。若确定是,执行步骤302,若确定不是,执行步骤304。
步骤302:获取第三查询链接。第三查询链接包括代理组件的请求地址,以及,目标虚拟机的连接数据标识信息或目标虚拟机的连接信息或目标虚拟机的标识信息。
步骤303:通过访问第三查询链接,向代理组件发送第三连接请求。其中,代理组件基于第三连接请求获取目标虚拟机对应的通信连接。第三连接请求包括目标虚拟机的连接数据标识信息或目标虚拟机的连接信息或目标虚拟机的标识信息。之后结束流程。
可选择的,目标虚拟机的连接信息对应的查询接口信息包括:目标虚拟机所在的控制平台的连接地址,或,存有目标虚拟机的连接信息的远程数据中心的数据库地址。
步骤304:调用自定义组件查询目标虚拟机的连接信息。其中,自定义组件中至少存储有:目标虚拟机的连接信息,或者,目标虚拟机的连接信息的查询接口信息;目标虚拟机为本地虚拟机或非本地虚拟机。自定义组件查询得到的目标虚拟机的连接信息被存储至缓存中。自定义组件拼接代理组件的请求地址和目标虚拟机的连接信息的标识信息,得到第一查询链接,并返回至web服务器。
步骤305:获取自定义组件返回的第一查询链接。其中,第一查询链接包括代理组件的请求地址,以及目标虚拟机的连接信息的标识信息。
步骤306:通过访问第一查询链接,向代理组件发送第一连接请求。其中,代理组件基于第一连接请求,调用认证组件查询目标虚拟机的连接信息,并根据认证组件返回的目标虚拟机的连接信息,构建与目标虚拟机的通信连接。第一连接请求包括目标虚拟机的连接信息的标识信息。
可选择的,认证组件查询目标虚拟机的连接信息的过程包括:认证组件根据第一连接请求中的目标虚拟机的连接信息的标识信息,从缓存中获取目标虚拟机的连接信息;认证组件对获取的目标虚拟机的连接信息进行校验;认证组件在目标虚拟机的连接信息校验成功后,返回目标虚拟机的连接信息至代理组件。
可选择的,认证组件对获取的目标虚拟机的连接信息进行校验,包括:认证组件向自定义组件发送校验请求,以供自定义组件基于校验请求,查询目标虚拟机的状态信息,并根据目标虚拟机的状态信息,返回校验结果;目标虚拟机的状态信息指示目标虚拟机是否可用,和/或,目标虚拟机的连接信息是否被修改;认证组件根据自定义组件返回的校验结果,判断目标虚拟机的连接信息是否校验成功。
可选择的,在认证组件根据自定义组件返回的校验结果,判断目标虚拟机的连接信息是否校验成功之后,虚拟机的连接方法包括:若目标虚拟机的连接信息校验失败,认证组件重新调用自定义组件查询目标虚拟机的连接信息,并根据自定义组件重新查询得到的目标虚拟机的连接信息,将重新查询得到的目标虚拟机的连接信息返回至代理组件,并更新缓存中的目标虚拟机的连接信息。
在一个实施例中,由云平台的web服务器执行的如图4所示的虚拟机的连接方法包括如下步骤。
步骤401:响应于目标虚拟机的访问请求,判断预设历史时长内是否接收到目标虚拟机的访问请求。若确定是,执行步骤402,若确定不是,执行步骤404。
步骤402:获取第三查询链接。第三查询链接包括代理组件的请求地址,以及,目标虚拟机的连接数据标识信息或目标虚拟机的连接信息或目标虚拟机的标识信息。
步骤403:通过访问第三查询链接,向代理组件发送第三连接请求。其中,代理组件基于第三连接请求获取目标虚拟机对应的通信连接。第三连接请求包括目标虚拟机的连接数据标识信息或目标虚拟机的连接信息或目标虚拟机的标识信息。之后结束流程。
可选择的,目标虚拟机的连接信息对应的查询接口信息包括:目标虚拟机所在的控制平台的连接地址,或,存有目标虚拟机的连接信息的远程数据中心的数据库地址。
步骤404:调用自定义组件查询目标虚拟机的连接信息。其中,自定义组件中至少存储有:目标虚拟机的连接信息,或者,目标虚拟机的连接信息的查询接口信息。目标虚拟机为本地虚拟机或非本地虚拟机。自定义组件查询得到的目标虚拟机的连接信息后,拼接代理组件的请求地址和目标虚拟机的连接信息,得到第二查询链接,并返回至web服务器。
步骤405:获取自定义组件返回的第二查询链接。其中,第二查询链接包括代理组件的请求地址,以及目标虚拟机的连接信息。
步骤406:通过访问第二查询链接,向代理组件发送第二连接请求。其中,代理组件基于第二连接请求,构建与目标虚拟机的通信连接。第二连接请求包括目标虚拟机的连接信息的标识信息。
在一个实施例中,虚拟机的连接方法的示意图如图5所示。云平台的各组件执行虚拟机的连接方法包括以下步骤。
步骤501:用户11通过浏览器访问云平台web界面,向web服务器12发送访问请求,以请求远程连接虚拟机。
步骤502:web服务器12接收访问请求,向云平台的控制台中的自定义组件19发送查询请求,以调用自定义组件19查询目标虚拟机的连接信息。
步骤503:自定义组件19接收查询请求,调用目标虚拟机所在目标服务平台20(远程数据中心或其他虚拟化平台)的查询接口,获取目标虚拟机的连接信息。目标虚拟机的连接信息可以包括目标虚拟机的IP地址及VCN端口。
步骤504:目标服务平台20响应于自定义组件19的查询请求,返回目标虚拟机的连接信息。
步骤505:自定义组件19生成获取到的目标虚拟机的连接数据的标识信息(ID),并将目标虚拟机的连接信息、ID,以及目标虚拟机的连接信息和ID的映射关系保存到云平台的缓存17中。
步骤506:自定义组件19拼接云平台的控制台中的代理组件(nova-novncproxy)18的请求地址及ID,生成第一查询链接返回给web服务器12。其中,代理组件18的请求地址可以是代理组件18的http请求地址。
步骤507:web服务器12接收到第一查询链接,通过访问第一查询链接,以向代理组件18发送第一连接请求。
步骤508:代理组件18接收到第一连接请求,获取第一连接请求中的统一资源定位符(Uniform Resource Locator,URL)中的ID,向云平台的控制台中的认证组件16发送该ID的查询认证请求。
步骤509:认证组件16根据ID查询云平台的缓存17中的目标虚拟机的连接信息。
步骤510:认证组件16向自定义组件19发送校验请求,校验该目标虚拟机的连接信息是否可用。
步骤511:认证组件16在校验成功后,返回获取到的目标虚拟机的连接信息给代理组件18。
步骤512:代理组件18构建socket连接到目标虚拟机连接的IP地址和VNC端口。
步骤513:代理组件18反馈连接结果至web服务器12。
步骤514:web服务器12反馈连接结果给用户11。
通过步骤501至步骤514,可实现基于OpenStack云平台的web服务器远程连接目标虚拟机。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本申请实施例还提供一种电子设备,例如,服务器或云端服务器,布设有云平台,如图6所示,包括:至少一个处理器601;以及与所述至少一个处理器601通信连接的存储器602;其中,所述存储器存储有可被所述至少一个处理器601执行的指令,所述指令被所述至少一个处理器601执行,以使所述至少一个处理器601能够执行上述方法实施例。
其中,存储器602和处理器601采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器601和存储器602的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器601处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器601。
处理器601负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器602可以被用于存储处理器601在执行操作时所使用的数据。
本申请实施例还提供一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (10)
1.一种虚拟机的连接方法,其特征在于,包括:
响应于目标虚拟机的访问请求,调用自定义组件查询所述目标虚拟机的连接信息;其中,所述自定义组件中至少存储有:目标虚拟机的连接信息,或者,目标虚拟机的连接信息的查询接口信息;所述目标虚拟机为本地虚拟机或非本地虚拟机;
根据所述自定义组件查询得到的所述目标虚拟机的连接信息,构建与所述目标虚拟机的通信连接。
2.根据权利要求1所述的虚拟机的连接方法,其特征在于,所述自定义组件查询得到的所述目标虚拟机的连接信息被存储至缓存中;
所述根据所述自定义组件查询得到的所述目标虚拟机的连接信息,构建与所述目标虚拟机的通信连接,包括:
获取所述自定义组件返回的第一查询链接;其中,所述第一查询链接包括代理组件的请求地址,以及所述目标虚拟机的连接信息的标识信息;
通过访问所述第一查询链接,向所述代理组件发送第一连接请求,以供所述代理组件基于所述第一连接请求,调用认证组件查询所述目标虚拟机的连接信息,并根据所述认证组件返回的所述目标虚拟机的连接信息,构建与所述目标虚拟机的通信连接;其中,所述第一连接请求包括所述目标虚拟机的连接信息的标识信息。
3.根据权利要求2所述的虚拟机的连接方法,其特征在于,所述认证组件查询所述目标虚拟机的连接信息的过程包括:
所述认证组件根据所述第一连接请求中的所述目标虚拟机的连接信息的标识信息,从所述缓存中获取所述目标虚拟机的连接信息;
所述认证组件对获取的所述目标虚拟机的连接信息进行校验;
所述认证组件在所述目标虚拟机的连接信息校验成功后,返回所述目标虚拟机的连接信息至所述代理组件。
4.根据权利要求3所述的虚拟机的连接方法,其特征在于,所述认证组件对获取的所述目标虚拟机的连接信息进行校验,包括:
所述认证组件向所述自定义组件发送校验请求,以供所述自定义组件基于所述校验请求,查询所述目标虚拟机的状态信息,并根据所述目标虚拟机的状态信息,返回校验结果;所述目标虚拟机的状态信息指示所述目标虚拟机是否可用,和/或,所述目标虚拟机的连接信息是否被修改;
所述认证组件根据所述自定义组件返回的校验结果,判断所述目标虚拟机的连接信息是否校验成功。
5.根据权利要求4所述的虚拟机的连接方法,其特征在于,在所述认证组件根据所述自定义组件返回的校验结果,判断所述目标虚拟机的连接信息是否校验成功之后,所述虚拟机的连接方法包括:
若所述目标虚拟机的连接信息校验失败,所述认证组件重新调用所述自定义组件查询所述目标虚拟机的连接信息,并根据所述自定义组件重新查询得到的所述目标虚拟机的连接信息,将重新查询得到的目标虚拟机的连接信息返回至代理组件,并更新所述缓存中的目标虚拟机的连接信息。
6.根据权利要求1所述的虚拟机的连接方法,其特征在于,所述根据所述自定义组件查询得到的所述目标虚拟机的连接信息,构建与所述目标虚拟机的通信连接,包括:
获取所述自定义组件返回的第二查询链接;其中,所述第二查询链接包括代理组件的请求地址,以及所述目标虚拟机的连接信息;
通过访问所述第二查询链接,向所述代理组件发送第二连接请求,以供所述代理组件基于所述第二连接请求,构建与所述目标虚拟机的通信连接;其中,所述第二连接请求包括所述目标虚拟机的连接信息的标识信息。
7.根据权利要求1至6中任一项所述的虚拟机的连接方法,其特征在于,在所述调用自定义组件查询所述目标虚拟机的连接信息之前,所述虚拟机的连接方法还包括:
判断预设历史时长内是否接收到所述目标虚拟机的访问请求;
若确定是,获取第三查询链接,所述第三查询链接包括代理组件的请求地址,以及所述目标虚拟机的连接数据标识信息或所述目标虚拟机的连接信息或目标虚拟机的标识信息;通过访问所述第三查询链接,向所述代理组件发送第三连接请求,以供所述代理组件基于所述第三连接请求获取所述目标虚拟机对应的通信连接;所述第三连接请求包括所述目标虚拟机的连接数据标识信息或所述目标虚拟机的连接信息或目标虚拟机的标识信息;
若确定不是,执行所述在所述调用自定义组件查询所述目标虚拟机的连接信息的步骤。
8.根据权利要求1至6中任一项所述的虚拟机的连接方法,其特征在于,所述目标虚拟机的连接信息的查询接口信息包括:所述目标虚拟机所在的控制平台的连接地址,或,存有所述目标虚拟机的连接信息的远程数据中心的数据库地址。
9.一种电子设备,其特征在于,包括:至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至8中任一项所述的虚拟机的连接方法。
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1至8中任一项所述的虚拟机的连接方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202110757093.2A CN113687906A (zh) | 2021-07-05 | 2021-07-05 | 虚拟机的连接方法、电子设备及存储介质 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202110757093.2A CN113687906A (zh) | 2021-07-05 | 2021-07-05 | 虚拟机的连接方法、电子设备及存储介质 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN113687906A true CN113687906A (zh) | 2021-11-23 |
Family
ID=78576647
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202110757093.2A Pending CN113687906A (zh) | 2021-07-05 | 2021-07-05 | 虚拟机的连接方法、电子设备及存储介质 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN113687906A (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115794925A (zh) * | 2022-12-08 | 2023-03-14 | 上海芯赛云计算科技有限公司 | 计算节点的确定方法、装置、存储介质及电子装置 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102420846A (zh) * | 2010-10-15 | 2012-04-18 | 微软公司 | 企业用户对主存的虚拟机的远程访问 |
| CN104580496A (zh) * | 2015-01-22 | 2015-04-29 | 深圳先进技术研究院 | 一种基于临时代理的虚拟机访问系统及服务器 |
| CN109496415A (zh) * | 2018-03-23 | 2019-03-19 | 华为技术有限公司 | 一种虚拟机访问远端加速设备方法及系统 |
| CN112597039A (zh) * | 2020-12-28 | 2021-04-02 | 南方电网深圳数字电网研究院有限公司 | 虚拟机访问方法、系统、设备及计算机可读存储介质 |
-
2021
- 2021-07-05 CN CN202110757093.2A patent/CN113687906A/zh active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102420846A (zh) * | 2010-10-15 | 2012-04-18 | 微软公司 | 企业用户对主存的虚拟机的远程访问 |
| CN104580496A (zh) * | 2015-01-22 | 2015-04-29 | 深圳先进技术研究院 | 一种基于临时代理的虚拟机访问系统及服务器 |
| CN109496415A (zh) * | 2018-03-23 | 2019-03-19 | 华为技术有限公司 | 一种虚拟机访问远端加速设备方法及系统 |
| CN112597039A (zh) * | 2020-12-28 | 2021-04-02 | 南方电网深圳数字电网研究院有限公司 | 虚拟机访问方法、系统、设备及计算机可读存储介质 |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115794925A (zh) * | 2022-12-08 | 2023-03-14 | 上海芯赛云计算科技有限公司 | 计算节点的确定方法、装置、存储介质及电子装置 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6775700B2 (en) | System and method for common information model object manager proxy interface and management | |
| KR102500737B1 (ko) | 클라우드 컴퓨팅 노드들의 보안 구성 | |
| CN113824795B (zh) | 车端与云端的通信方法、装置、系统 | |
| CN108322506A (zh) | 一种物联网设备接入网络的方法、装置和系统 | |
| US11863633B2 (en) | Cloud communication method and apparatus | |
| CN110677383B (zh) | 防火墙开墙方法、装置、存储介质及计算机设备 | |
| CN113645304A (zh) | 数据服务处理方法及相关设备 | |
| CN114036236B (zh) | 多网关集群系统 | |
| CN112988385B (zh) | 请求处理方法、装置、系统、存储介质和电子设备 | |
| CN115335803B (zh) | 一种设备升级方法、智能设备及计算机可读存储介质 | |
| CN118175464B (zh) | Fttr网关升级方法、网关设备、系统及计算机可读存储介质 | |
| CN114297083B (zh) | 代理测试方法、装置、电子设备和可读介质 | |
| KR20210075898A (ko) | 효율적인 opc ua 서버의 데이터 접근 및 통합을 위한 통합 게이트웨이 | |
| CN113687906A (zh) | 虚拟机的连接方法、电子设备及存储介质 | |
| EP3206347B1 (en) | Method for calling a routing algorithm, sdn controller, and sdn-oaf | |
| CN111857772A (zh) | 终端边缘应用程序远程传输及动态加载方法及设备 | |
| CN111092916B (zh) | 文件上传的方法、装置、电子设备及介质 | |
| CN117082142A (zh) | 数据包缓存方法、装置、电子设备及存储介质 | |
| CN111770181B (zh) | 一种物联网设备的接入方法、装置及设备 | |
| CN115580614A (zh) | 一种数据下载方法、装置、设备及计算机可读存储介质 | |
| JP4532238B2 (ja) | オンデマンドサービス提供システム | |
| CN115525442A (zh) | 一种远程命令执行方法及装置 | |
| CN114048028A (zh) | 服务调用方法、装置、存储介质和电子设备 | |
| CN113254203A (zh) | 服务降级处理方法及装置 | |
| CN115589429B (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 | ||
| RJ01 | Rejection of invention patent application after publication |
Application publication date: 20211123 |
|
| RJ01 | Rejection of invention patent application after publication |