CN111107117A - 虚拟机及其远程控制方法、终端、宿主服务器和存储介质 - Google Patents

虚拟机及其远程控制方法、终端、宿主服务器和存储介质 Download PDF

Info

Publication number
CN111107117A
CN111107117A CN201811259150.9A CN201811259150A CN111107117A CN 111107117 A CN111107117 A CN 111107117A CN 201811259150 A CN201811259150 A CN 201811259150A CN 111107117 A CN111107117 A CN 111107117A
Authority
CN
China
Prior art keywords
virtual machine
remote control
virtualization
control protocol
connection
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.)
Withdrawn
Application number
CN201811259150.9A
Other languages
English (en)
Inventor
张敏
刘丽
阮刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN201811259150.9A priority Critical patent/CN111107117A/zh
Priority to PCT/CN2019/113340 priority patent/WO2020083383A1/zh
Publication of CN111107117A publication Critical patent/CN111107117A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0668Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明实施例公开了一种虚拟机及其远程控制方法、终端、宿主服务器及存储介质,属于虚拟机技术领域。该方法包括:检测到操作系统级的远程控制协议连接虚拟机异常后,切换到控制网与虚拟机的宿主服务器建立虚拟化级的远程控制协议连接;通过虚拟化级的远程控制协议连接控制虚拟机。本发明实施例本通过不同的底层连接协议自动切换,能够在系统异常或网络异常的情况下随时切换到基于虚拟化底层的远程控制协议对虚拟机进行操作,避免了因虚拟机引导错误、死机或网络错误等原因导致虚拟机失控的风险。

Description

虚拟机及其远程控制方法、终端、宿主服务器和存储介质
技术领域
本发明涉及虚拟机技术领域,特别涉及一种虚拟机及其远程控制方法、终端、宿主服务器及存储介质。
背景技术
在个人计算机及宿主服务器的云化大趋势下,越来越多的办公桌面或宿主服务器以虚拟机的形式运行在云端宿主服务器中,云端虚拟机的远程连接效果极大影响着用户的使用体验,因此对云端虚拟机的连接进行优化十分重要。
办公场景个人计算机的操作系统中,仍是以Windows为主流,在Windows操作系统上,微软主导的RDP(Remote Display Protocol,远程显示协议)也能实现客户端对远程的宿主服务器内Windows系统虚拟机进行远程访问控制。在早期的RDP6版本协议,由于对带宽利用缺乏效率,使用远程桌面时画面不流畅,特别是播放视频时,经常跳帧。但随着RDP8及以后更高的RDP10版本的发布,由于remotefx等技术的引入并且和Windows内核深入的契合,RDP协议得到了长足的进步,能够充分的利用有效带宽,到达流畅的办公体验甚至流畅的远程视频播放效果,体验已基本超越了其他远程控制协议。但是,RDP协议有固有的局限,它必须在服务端Windows启动完毕,RDP服务启动状态正常,且虚拟机和之间网络通畅时才能使用。如果当Windows没有启动完毕,或者启动错误,死机或者网络不通时,RDP协议都无法连接。此时有可能会让虚拟机失控,用户无法连接虚拟机去修复以上问题。
目前,虽然有通过网关来实现多个客户端之间远程控制的切换,但本质上客户端和宿主服务器的协议连接还是同一个协议,多个客户端、网关与宿主服务器之间还是同属于一个业务网,并未考虑远程控制协议(例如RDP)本身的缺陷,解决不了在虚拟机系统异常或当网关失效时实现远程控制切换,虚拟机依然有失控的可能。
发明内容
有鉴于此,本发明实施例提供一种虚拟机及其远程控制方法、终端、宿主服务器及存储介质,以解决由于操作系统级的远程控制协议本身固有的局限,导致虚拟机因引导错误、死机或网络错误等情况下远程控制虚拟机失控的技术问题。
本发明实施例解决上述技术问题所采用的技术方案如下:
根据本发明实施例的一个方面,提供一种虚拟机远程控制方法,应用于终端,该方法包括:
检测到操作系统级的远程控制协议连接虚拟机异常后,切换到控制网与虚拟机的宿主服务器建立虚拟化级的远程控制协议连接;
通过虚拟化级的远程控制协议连接控制虚拟机。
根据本发明实施例的另一个方面,提供一种虚拟机远程控制方法,应用于宿主服务器,该方法包括:
接收终端发送的虚拟化级的远程控制协议连接请求,与终端协商建立虚拟化级的远程控制协议连接;
通过虚拟化级的远程控制协议连接和虚拟化底层消息通道传输虚拟机的显示输出和终端的控制指令。
根据本发明实施例的再一个方面,提供一种虚拟机远程控制方法,应用于宿主服务器,该方法包括:
实时监测虚拟机的系统运行状态和网络状态;
当检测到虚拟机运行状态和网络状态恢复正常后,通过虚拟化底层消息通道再经虚拟化级的远程控制协议连接向终端发送恢复正常通知。
根据本发明实施例的再一个方面,提供一种终端,该终端包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该计算机程序被处理器执行时,实现上述应用于终端的虚拟机远程控制方法的步骤。
根据本发明实施例的又一个方面,提供一种宿主服务器,该宿主服务器包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该计算机程序被处理器执行时,实现上述应用于宿主服务器的虚拟机远程控制方法的步骤。
根据本发明实施例的又一个方面,提供一种虚拟机,该虚拟机包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该计算机程序被处理器执行时,实现上述应用于虚拟机的虚拟机远程控制方法的步骤。根据本发明实施例的又一个方面,提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,实现上述应用于终端、宿主服务器和/或虚拟机的虚拟机远程控制方法的步骤。
本发明实施例的虚拟机及其远程控制方法、终端、宿主服务器和计算机可读存储介质,通过引入了不同的底层远程控制连接协议的自动切换机制,能够在虚拟机系统异常或网络异常的情况下,切换到基于虚拟化底层的远程控制协议对虚拟机进行操作,避免了由于操作系统级的远程控制协议本身固有的局限,导致虚拟机因引导错误、死机或网络错误等情况下远程控制虚拟机失控的风险。
附图说明
图1为本发明实施例一提供的一种应用于终端的虚拟机远程控制方法的流程图;
图2为本发明实施例二提供的另一种应用于终端的虚拟机远程控制方法的流程图;
图3为本发明实施例三提供的一种应用于宿主服务器的虚拟机远程控制方法的流程图;
图4为本发明实施例四提供的一种应用于虚拟机的的虚拟机远程控制方法的流程图;
图5为本发明实施例五提供的一种虚拟机远程控制方法的交互流程图;
图6为本发明实施例六提供的一种虚拟机远程控制系统的模块结构图;
图7为本发明优选实施例六提供的一种虚拟机远程控制系统的模块结构图;
图8为本发明实施例七提供的一种虚拟机远程控制方法的流程。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅以解释本发明,并不用于限定本发明。
实施例一
如图1所示,本发明实施例提供的虚拟机远程控制方法,应用于终端,该方法包括:
S101、检测到操作系统级的远程控制协议连接虚拟机异常后,切换到控制网与虚拟机的宿主服务器建立虚拟化级的远程控制协议连接。
本步骤中,终端检测到操作系统级的远程控制协议连接虚拟机的业务网络中断后,根据预设的连接切换策略,切换到控制网络向虚拟机的宿主服务器发送虚拟化级的远程控制协议连接请求,并通过控制网络与虚拟机的宿主服务器协商建立虚拟化级的远程控制协议连接。其中,预设的连接切换策略由用户设定,比如立刻切换,还是延时切换,或者需要用户确认后再切换等策略。
其中,操作系统级的远程控制协议的远程控制服务端往往以一个程序的形式驻留在虚拟机的操作系统内部,因此依赖于操作系统本身的正常运行,并且要求虚拟机内操作系统和终端之间网络可达,虚拟机的操作系统级的远程控制协议连接网络一般规划为业务网络,带宽较大,如果远程控制协议对带宽利用效率同时也高,则用户体验流畅度相对会较好。举例来说,微软主导的RDP、Citrix公司主导的HDX、VMWare公司主导的PCoIP等就属于操作系统级的远程控制协议。
虚拟化级的远程控制协议依赖于虚拟机的宿主服务器到终端之间的网络,该网络一般规划为控制网络,带宽相对较小,但安全性和可靠性较高,通过此方式连接可以确保虚拟机和终端之间的网络隔离。其优势在于,即使虚拟机系统未启动完毕或启动错误、虚拟机网卡异常或其他原因网络不通,宿主服务器也仍然可以通过虚拟化的底层消息通道(例如KVM-QEMU虚拟化环境的虚拟机virtio串口设备)获取虚拟机的显示画面、声音、鼠标键盘控制等,并经控制网络投射到终端,从而实现远程控制。举例来说,VNC、Spice协议都属于该类协议。
S102、通过虚拟化级的远程控制协议连接控制虚拟机。
本步骤中,终端通过虚拟化级的远程控制协议连接接收宿主服务器通过虚拟化底层消息通道获取的虚拟机的显示输出,并通过虚拟化级的远程控制协议连接向宿主服务器发送用户控制指令,由宿主服务器通过虚拟化底层消息通道转交虚拟机处理。
目前,主流之一的KVM虚拟化场景中,基于KVM的虚拟机远程控制方案使用较多的是VNC协议和Spice协议,两者之中Spice协议的功能更为完善,Spice是一个开源的远程访问协议,终端可以通过Spice协议访问宿主服务器端虚拟机的图像、声音、键盘及鼠标等设备输出,进行远程使用。Spice协议的开源实现和KVM十分契合,能够在虚拟机内操作系统的引导阶段,或者即使虚拟机操作系统出现死机卡死等异常,又或者虚拟机网络不通,Spice协议都可以通过底层虚拟化消息收发通道(例如virtio串口设备)将虚拟机此时的输出画面投射到终端上实现远程控制。
本发明实施例中,通过自动实现一种远程控制协议到另一种远程控制协议之间的无缝切换,能够在虚拟机系统异常或网络异常的情况下,切换到基于虚拟化底层的远程控制协议对虚拟机进行操作,避免了由于操作系统级的远程控制协议本身固有的局限,导致虚拟机因引导错误、死机或网络错误等情况下远程控制虚拟机失控的风险,从而可以在虚拟机的不同系统状态、或不同网络状态实施不同的远程连接协议,达到功能或性能互补。
实施例二
如图2所示,本发明实施例提供的虚拟机远程控制方法,应用于终端,该方法包括:
S201、检测到操作系统级的远程控制协议连接虚拟机异常后,切换到控制网与宿主服务器建立虚拟化级的远程控制协议连接。
S202、通过虚拟化级的远程控制协议连接控制虚拟机。
S203、接收到虚拟机发送的恢复正常通知后,切换回操作系统级的远程控制协议连接虚拟机。
具体的,虚拟机内运行的服务状态监测程序监测到虚拟机运行状态恢复正常后,通过再经虚拟化级的远程控制协议连接向终端发送恢复正常通知,以告知终端切换连接,终端收到通知后,与虚拟机协商建立操作系统级的远程控制协议连接。
S204、通过操作系统级的远程控制协议连接控制虚拟机。
本发明实施例中,在上述实施例一能在系统异常或网络异常的情况下通过控制网络切换到基于虚拟化底层的远程控制协议对虚拟机进行操作的基础上,还能在排除异常后再切换回业务网络,在大带宽的业务网上享受流畅的远程控制或远程观看视频,使得不同的底层连接协议优势互补,进一步提升用户对于虚拟机的远程控制使用体验。
实施例三
如图3所示,本发明实施例提供一种虚拟机远程控制方法,应用于宿主服务器,该方法包括:
S301、接收虚拟化级的远程控制协议连接请求,与终端协商建立虚拟化级的远程控制协议连接。
具体的,当终端检测到操作系统级的远程控制协议连接虚拟机异常后,通过控制网络向宿主服务器发送虚拟化级的远程控制协议连接请求,宿主服务器接收到终端发送的虚拟化级的远程控制协议连接请求后,与终端通过协商建立虚拟化级的远程控制协议连接。
S302、通过虚拟化底层通道捕获虚拟机的显示输出,并将显示输出通过虚拟化级的远程控制协议连接投射到客户端。
具体的,宿主服务器可以通过虚拟化底层通道捕获虚拟机的所有显示输出,包括启动过程在内的显示画面、声音、鼠标、键盘事件等,并将虚拟机的显示输出通过虚拟化级的远程控制协议连接投射到客户端,从而用户可以看到虚拟机此刻的输出画面情况,并且据此决定对虚拟机进行远程控制。
S303、通过虚拟化级的远程控制协议连接接收终端发送的控制指令,并将控制指令通过虚拟化底层通道转发给虚拟机。
具体的,当用户需要对终端进行控制时,终端接收用户的鼠标键盘等控制指令,并通过虚拟化级的远程控制协议连接将控制指令发送给宿主服务器,宿主服务器通过虚拟化底层通道转发给虚拟机以执行控制指令。
S304、当终端与虚拟机切换回操作系统级的远程控制协议连接后,将控制界面的视频流切换到操作系统级远程控制协议连接上,并中断虚拟化级的远程控制协议连接。
具体的,随着虚拟机操作系统的运行,虚拟机的运行状态及网络状态均正常后,虚拟机通过虚拟化底层通道再经虚拟化级远程控制协议连接向终端发送运行状态恢复正常通知,以告知终端切换连接,从而利用业务网的带宽获取更佳的远程控制流畅体验。
本发明实施例中,通过在不同的底层远程控制连接协议进行自动切换,并将虚拟机的显示输出和终端的控制指令无缝切换到新建立的连接上,避免了由于操作系统级的远程控制协议本身固有的局限,导致虚拟机因引导错误、死机或网络错误等情况下远程控制虚拟机失控的风险。
实施例四
如图4所示,本发明实施例提供一种虚拟机远程控制方法,应用于虚拟主机,该方法包括:
S401、实时监测虚拟机的系统运行状态和网络状态。
具体的,虚拟机内运行的服务监测程序可以实时监测虚拟机内的系统服务是否运行正常,虚拟机的网卡状态及网络情况是否正常,或者监测虚拟机的其他运行状态,包括并不限于系统引导状态、关键服务状态,安全认证状态等。优选的,该程序可作为驻留服务运行在虚拟机的操作系统中。
S402、当检测到虚拟机运行状态和网络状态恢复正常,通过虚拟化底层消息通道再经虚拟化级的远程控制协议连接向终端发送恢复正常通知。
具体的,当虚拟机运行系统运行状态异常或者网络状态异常时,终端与宿主服务器之间会建立虚拟化级的远程控制协议连接,虚拟机和终端之间通过宿主服务器。当检测到虚拟机运行状态和网络状态恢复正常,虚拟机的网卡已获得IP地址并和业务网网关之间网络ping可达后,通过虚拟化底层消息通道(例如Virtio串口设备等)再经虚拟化级的远程控制协议(如Spice协议)连接向终端发送恢复正常通知,以告知终端切换连接。
本发明实施例中,通过实时监测虚拟机的系统运行状态和网络状态,在修复了虚拟机系统异常或网络异常恢复到正常状态的情况下,通知终端触发再切换回业务网络,在大带宽的业务网上享受流畅的远程控制或远程观看视频,使得不同的底层连接协议优势互补。
实施例五
如图5所示,本发明实施例提供一种虚拟机远程控制方法,该方法包括:
S501、虚拟机启动。
具体的,虚拟机启动方式不限,可以人为触发启动,也可自动启动或远程控制启动,虚拟机启动后,终端发起连接虚拟机以对虚拟机进行远程控制。
S502、终端判断虚拟机网卡所在业务网络地址是否可达,如果是,转至步骤S503,否则执行步骤S504。
具体的,可以通过ping或者TCP尝试连接的方式确认虚拟机业务网络地址是否可达,如果可达,将用户连接请求的相关配置和鉴权信息交给操作系统级的远程控制协议客户端并启动连接。如果虚拟机业务网地址不可达,可能是虚拟机正处于启动引导中或者虚拟机异常,则终端切换到安全可靠的控制网向虚拟机的宿主服务器发起连接请求。
S503、终端通过业务网络与虚拟机建立操作系统级的远程控制协议连接。
S504、终端通过操作系统级的远程控制协议连接远程控制虚拟机。
S505、终端是否检测到连接中断,如果是,则执行步骤S506,否则返回步骤S504。
S506、终端通过控制网络与虚拟机的宿主服务器建立虚拟化级的远程控制协议连接。
S507、通过虚拟化级的远程控制协议连接远程控制虚拟机,并修复虚拟机故障。
具体的、经由虚拟机底层的虚拟化通道,用户可以看到虚拟机此刻的输出画面情况,并且可以进行虚拟机的远程控制,从而修复虚拟机。
S508、虚拟机监测到虚拟机运行状态正常后,向终端发送恢复正常通知。
具体的,随着虚拟机操作系统运行,虚拟机内状态正常,虚拟机的网卡状态及网络状态均正常后,虚拟机通过虚拟化底层通道再经虚拟化级的远程控制协议连接通知终端。
S509、终端接收到恢复正常通知后,与虚拟机重新建立操作系统级的远程控制协议连接。
具体的,终端接收到虚拟机发送的虚拟机恢复正常通知后,通过业务网络向虚拟机业务网地址发起操作系统级的远程控制协议连接请求,与虚拟机建立操作系统级的远程控制协议连接。
S510、终端和虚拟机均将控制界面的视频流切换到操作系统级远程控制协议连接上。
S511、终端和宿主服务器断开虚拟化级的远程控制连接。
本发明实施例中,当虚拟机启动异常、或者运行之后发生死机、或者虚拟机网卡所在的业务网发生中断时,通过自动实现一种远程控制协议到另一种远程控制协议之间的无缝切换,避免了远程控制虚拟机失控的风险,并操作系统级远程控制连接建立完毕后,终端的控制界面切换到体验更好的操作系统级远程控制上,虚拟化级的远程控制连接的输出视频流可以无缝地切换到操作系统级远程控制连接的输出视频流,使得用户看到的画面不发生中断或很小中断,提升用户体验。此时虚拟化级的远程控制连接可以暂时断开以节省宿主服务器资源。
实施例六
如图6所示,本发明实施例提供的一种虚拟机远程控制系统的模块结构图,该系统包括终端10和宿主服务器20。
终端10上包括操作系统级的远程控制协议客户端101、虚拟化级的远程控制协议客户端102以及远程连接控制模块103。宿主服务器上包括操作系统级的远程控制协议服务端201、虚拟化级的远程控制协议服务端202以及虚拟机服务监测模块203。
操作系统级的远程控制协议客户端101,负责发起操作系统级的远程控制协议连接。
虚拟化级的远程控制协议客户端102,负责发起虚拟化级的远程控制协议连接。
远程连接控制模块103,负责根据预设的连接切换策略控制操作系统级的远程控制协议客户端101发起或断开操作系统级的远程控制协议连接,控制虚拟化级的远程控制协议客户端102发起或断开虚拟化级的远程控制协议连接。
操作系统级的远程控制协议服务端201,负责根据操作系统级的远程控制协议连接请求建立操作系统级的远程控制协议连接。优选为以服务的形式运行在虚拟机的操作系统中,配合客户端101完成远程控制连接。
虚拟化级的远程控制协议服务端202,负责根据虚拟化级的远程控制协议请求与终端建立虚拟化级的远程控制协议连接。
虚拟机服务监测模块203,用于监测虚拟机内的服务程序是否运行正常、虚拟机的网络状态及系统引导状态是否正常、或者监测虚拟机的其他运行状态。并通过虚拟机底层通道与虚拟化级服务端202进行消息通讯,将监测结果告知虚拟化级服务端202,由虚拟化级服务端202再将监测消息通过虚拟化级的远程控制协议连接告知给虚拟化级的客户端102及远程连接控制模块103。
具体的,虚拟化级的远程控制服务端202运行在虚拟机的宿主服务器中,通过服务器主机的控制网络与虚拟化级的远程控制客户端102互联。即使虚拟机未启动完毕,虚拟化级的远程控制服务端202也可通过虚拟机底层通道捕获到虚拟机的显示输出或将控制信息传入虚拟机。远程连接控制模块103具有一个负责和用户交互的门户界面,保存了用户的连接配置(图像清晰度,视频质量,设备重定向等配置)和鉴权登录信息,作为转发给操作系统级的远程控制协议客户端101或虚拟化级的远程控制协议客户端102作为连接建立的依据。并根据用户配置的连接切换策略控制操作系统级的远程控制协议客户端101或虚拟化级的远程控制协议客户端102的启动,将连接配置参数传入操作系统级的远程控制协议客户端101或虚拟化级的远程控制协议客户端102,由此发起或断开远程控制连接。同时通过与虚拟机服务监测模块203进行交互,并结合用户配置的连接切换策略,以此来确知远程控制连接发起、重试、撤销、切换等操作的时机。
此外,虚拟机网卡所在的业务网相对于宿主机所在的控制网,带宽可以规划的较大,以获取更佳的远程控制流畅体验;而控制网更加稳定安全,变动更小,可靠性更高。同时,在具体实施例中,业务网也可选与控制网合一。
举例来说,如图7所示,宿主服务器可以是405x86架构的Linux系统宿主服务器及KVM-QEMU虚拟化环境:负责产生虚拟机(虚拟机内装Windows 7操作系统),并为虚拟机和Spice服务端705提供运行环境,并在虚拟机底层建立基于Virtio串口设备的消息通道,使得宿主服务器的服务程序能和虚拟机内的程序进行消息交互。
操作系统级的远程控制协议客户端101可以采用RDP协议客户端701来实现,负责发起操作系统级的远程控制协议连接,RDP协议客户端701可以采用微软提供的支持RDP8协议客户端程序mstsc,并且RDP8两端同时打开了Remotefx功能,能充分利用带宽,带来流畅的远程控制体验。
虚拟化级的远程控制协议客户端102采用Spice客户端702来实现,负责发起虚拟化级的远程控制协议连接,可以选用开源的实现。
远程连接控制模块103采用用户登录及远程连接控制模块703实现,负责根据预设的连接切换策略控制Spice客户端702发起或断开虚拟化级的远程控制协议连接,控制RDP协议客户端701发起或断开操作系统级的远程控制协议连接。
Spice协议服务端705,可以通过虚拟化底层通道将虚拟机的包括启动过程在内的所有显示输出捕获发给Spice连接的客户端,也可以将从Spice客户端接收的鼠标键盘等控制指令通过虚拟化底层virtio串口设备直接交给虚拟机内的Spice代理程序执行。并且该模块还可以接收VmMonitor模块发来的系统运行监测信息。
RDP服务端704,以服务的形式驻留在虚拟机的Windows 7操作系统中,采用RDP8协议和客户端建立流畅高质量的远程控制连接。
虚拟机服务监测模块706,用于监测虚拟机内的服务程序是否运行正常、虚拟机的网络状态及系统引导状态是否正常、或者监测虚拟机的其他运行状态。运行状态包括并不限于系统引导状态、关键服务状态,安全认证状态等。优选为作为驻留服务运行在虚拟机的操作系统中。该模块可以通过虚拟机底层的Virtio串口设备和Spice服务端705进行消息通讯,将监测结果告知Spice服务端705,Spice服务端705再将监测消息通过Spice连接告知给Spice客户端702及远程连接控制模块703。
其中,Spice客户端702通过Internet互联网将连接请求发送给宿主服务器20控制网的网关宿主服务器,经网关鉴权后连接到宿主服务器的控制网网口上,最终和运行在宿主服务器内的Spice服务端705建立会话连接。在本实施例中,该控制网规划为相对更加稳定安全的网络,例如采用专线和固定IP地址等,从而保证整个系统的可用可维护。
RDP客户端701则通过Internet互联网将请求发送给宿主服务器20的业务网网关,经网关鉴权后转发给宿主服务器20的业务网网口,经405内的网卡虚拟化技术或网卡透传技术,将请求最终转发到虚拟机的网卡上,从而建立RDP协议的远程控制连接。在本实施例中,业务网规划为较大带宽,从而带来更佳的用户业务运行体验和远程控制体验。
Spice客户端702通过Internet互联网将连接请求发送给服务端控制网的网关宿主服务器,经网关鉴权后连接到宿主服务器20的控制网网口上,最终和运行在虚拟机内的Spice服务端705建立会话连接。在本实施例中,该控制网规划为相对更加稳定安全的网络,例如采用专线和固定IP地址等,从而保证整个系统的可用可维护。
实施例七
如图7和8所示,本发明实施例以采用图7的架构为例,当x86宿主服务器通过KVM+QEMU创建Windows系统虚拟机,虚拟机开始引导启动时,或虚拟机发生死机等异常,或虚拟机所在网络中断时,利用本发明实施例提供的虚拟机远程控制方法,远程控制处理的较佳具体实施步骤如下:
S801、宿主服务器孵化出虚拟机。
具体的,宿主服务器负责产生虚拟机,并为虚拟机和106提供运行环境。用户登录并通过网络指令远程告知宿主服务器405上的KVM-QEMU模块孵化出虚拟机,用户同时开始尝试远程控制连接。
S802、远程连接控制模块判断虚拟机网卡所在业务网络地址是否可达,如果是,转至步骤S803,否则执行步骤S807。
具体的,通过ping或者TCP尝试连接的方式确认虚拟机业务网络地址是否可达,如果可达,将用户连接请求的相关配置和鉴权信息交给RDP客户端并启动连接。
S803、远程连接控制模块触发Spice客户端与Spice服务端建立Spice协议连接。
具体的,如果虚拟机内网卡的业务网地址不可达,很可能由于虚拟机刚刚开机启动,系统未引导完成或是虚拟机网络IP尚未被分配。如果用户连接切换策略允许,则远程连接控制模块触发将用户连接请求的相关配置参数和鉴权信息交给Spice客户端702,并启动Spice客户端702经由控制网网关向宿主服务器中运行的Spice服务端705发起连接请求。
S804、通过Spice连接显示虚拟主机的界面,并控制虚拟机。
具体的,Spice远程控制协议的连接协商建立后,由于Spice协议是从虚拟机底层的virtio串口设备的消息通道进行输入输出,即使虚拟机系统处于引导中或发生异常,用户也可以看到虚拟机此刻的显示输出,并且可以进行远程控制。当虚拟机进入Windows登录界面时,也可以由远程连接控制模块根据连接切换策略选择暂时中断Spice连接的控制输入,使得不让用户在此时登录,而等待之后体验更流畅的RDP连接完成后再放开输入让用户登录windows并使用。
S805、虚拟机服务监测模块实时监测虚拟机的系统运行和网络状态。
S806、判断虚拟机的状态是否运行正常,如果是,则执行步骤S807,否则返回S805。
S807、虚拟机向终端发送运行状态正常消息。
具体的,当虚拟机内Windows系统状态正常后,虚拟机内常驻的VmMonitor监测模块706监测到RDP服务端704状态正常,虚拟机的网卡已获得IP地址并和业务网网关之间网络ping可达后,通过虚拟化底层的Virtio串口设备通道再经由Spice协议连接建立的消息通道,将运行状态正常情况告知给终端中的远程连接控制模块703。
S808、远程连接控制模块触发RDP客户端向RDP服务端发送RDP协议连接请求。
具体的,确认虚拟机网卡所在业务网络地址可达时,RDP客户端携带用户配置参数的请求经Internet和业务网网关访问到虚拟机网卡的网络地址,向驻留虚拟机内的RDP服务端704发送RDP协议的远程控制连接请求。
S809、RDP协议连接建立后,将控制界面的视频流无缝切换到RDP协议连接上,并通过RDP协议连接远程控制虚拟机。
具体的,RDP客户端702和虚拟机内RDP服务端704之间的RDP协议协商完毕后,由于两种协议连接的视频流可选采用了同样的解析度,因此用户的控制显示画面的视频流可以从之前的Spice连接无缝切换到RDP的视频流上,该步骤也有很多方法可以实现,例如采用两个同样大小重叠的窗体分别接收RDP视频流和Spice连接的视频流,RDP连接完成前让RDP窗口隐藏,Spice窗口可见;RDP连接完成后让RDP窗口切换到可见,Spice窗口切换到隐藏,由于两个窗口是同样大小解析度重叠的,因此用户看来视频画面几乎是无缝实现了切换(该切换过程属于具体实施例上的实现方式,并不构成对本发明的限制)。切换完成后用户就可以通过流畅的RDP连接登入Windows桌面并开始实施远程控制,而之前建立的Spice连接则可选断开。
S810、检测到连接中断,如果中断,转至S811,否则返回步骤S809。
S811、远程连接控制模块询问用户是否切换连接,如果是,则转至步骤S803,否则转至步骤S808。
具体的,当RDP远程控制过程中,如果出现网络异常或者虚拟机系统异常导致中断时,由于RDP连接是基于TCP网络传输连接协议的,因此RDP客户端701将会检测到该连接中断的发生,并根据远程连接控制模块703中配置的连接切换策略提示用户是否继续等待并重试RDP连接。如果客户允许,远程连接控制模块再次触发Spice客户端和Spice服务端协商建立Spice协议连接,通过Spice协议连接控制并修复虚拟主机。如果RDP远程控制连接已经无法自然恢复,需要用户介入进行修复时,用户可以通过指令连接控制模块703将连接参数交由Spice702重新切换到Spice连接,此时再次由Spice客户端701经由相对更加安全稳定的控制网网关,和Spice服务端705建立Spice连接,用户通过Spice连接经由虚拟机底层的virtio串口设备消息通道远程控制虚拟机,用户此时可以检查并修复虚拟机的系统错误或网络错误,为切回高质量的RDP连接创造条件。
当问题修复后,VmMonitor监测程序再次监测到虚拟机内部系统状态正常,RDP服务端704状态正常,虚拟机的网卡已获得IP地址并和业务网网关之间网络ping可达后,再次通过Virtio串口设备通道和Spice连接的消息通道将虚拟机状态告知给远程连接控制模块703,远程连接控制模块703再次触发RDP客户端向RDP服务端发起RDP协议连接。RDP连接建立后,再次将用户的控制显示画面的视频流从之前的Spice连接无缝切换到RDP连接的视频流上,Spice连接自动断开,用户登入并回到流畅的RDP远程控制中。
实施例八
本发明实施例提供一种终端,该终端包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该计算机程序被处理器执行时,实现上述虚拟机远程控制方法的步骤。
需要说明的是,本发明实施例的终端与上述虚拟机远程控制方法实施例属于同一构思,其具体实现过程详细见方法实施例,且方法实施例中的技术特征在本实施例中均对应适用,这里不再赘述。
实施例九
本发明实施例还提供一种宿主服务器,该宿主服务器包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该计算机程序被处理器执行时,实现上述虚拟机远程控制方法的步骤。
需要说明的是,本发明实施例的宿主服务器与上述虚拟机远程控制方法实施例属于同一构思,其具体实现过程详细见方法实施例,且方法实施例中的技术特征在本实施例中均对应适用,这里不再赘述。
实施例十
本发明实施例提供一种虚拟机,该虚拟机包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该计算机程序被处理器执行时,实现上述虚拟机远程控制方法的步骤。
需要说明的是,本发明实施例的终端与上述虚拟机远程控制方法实施例属于同一构思,其具体实现过程详细见方法实施例,且方法实施例中的技术特征在本实施例中均对应适用,这里不再赘述。
此外,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,实现上述虚拟机远程控制方法的步骤。
需要说明的是,本发明实施例的计算机可读存储介质与上述虚拟机远程控制方法实施例属于同一构思,其具体实现过程详细见方法实施例,且方法实施例中的技术特征在本实施例中均对应适用,这里不再赘述。
本发明实施例中,通过自动实现一种远程控制协议到另一种远程控制协议之间的无缝切换,能够在虚拟机系统异常或网络异常的情况下,切换到基于虚拟化底层的远程控制协议对虚拟机进行操作,避免了由于操作系统级的远程控制协议本身固有的局限,导致虚拟机因引导错误、死机或网络错误等情况下远程控制虚拟机失控的风险,从而可以在虚拟机的不同系统状态、或不同网络状态实施不同的远程连接协议,达到功能或性能互补,提升用户对于虚拟机的远程控制使用体验。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些S、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或S可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
以上参照附图说明了本发明的优选实施例,并非因此局限本发明的权利范围。本领域技术人员不脱离本发明的范围和实质内所作的任何修改、等同替换和改进,均应在本发明的权利范围之内。

Claims (12)

1.一种虚拟机远程控制方法,应用于终端,其特征在于,该方法包括:
检测到操作系统级的远程控制协议连接虚拟机异常后,切换到控制网与所述虚拟机的宿主服务器建立虚拟化级的远程控制协议连接;
通过所述虚拟化级的远程控制协议连接控制所述虚拟机。
2.根据权利要求1所述的虚拟机远程控制方法,其特征在于,所述通过所述虚拟化级的远程控制协议连接控制所述虚拟机,进一步包括:
通过虚拟化级的远程控制协议连接接收所述宿主服务器通过虚拟化底层消息通道获取的所述虚拟机的显示输出,并通过所述虚拟化级的远程控制协议连接向宿主服务器发送用户控制指令,由宿主服务器通过虚拟化底层消息通道转交所述虚拟机处理。
3.根据权利要求1所述的虚拟机远程控制方法,其特征在于,所述通过所述虚拟化级的远程控制协议连接控制所述虚拟机之后,该方法还包括:
接收到虚拟机发送的虚拟机恢复正常通知后,切换回所述操作系统级的远程控制协议连接所述虚拟机;
通过所述操作系统级的远程控制协议连接控制所述虚拟机。
4.根据权利要求1-3任意一项权利要求所述的虚拟机远程控制方法,其特征在于:
所述虚拟化级的远程控制协议包括:VNC协议或Spice协议;
所述操作系统级的远程控制协议包括:RDP协议、HDX协议或PCoIP协议。
5.一种虚拟机远程控制方法,应用于宿主服务器,其特征在于,该方法包括:
接收虚拟化级的远程控制协议连接请求,与所述终端协商建立虚拟化级的远程控制协议连接;
通过所述虚拟化级的远程控制协议连接以及虚拟化底层消息通道传输所述虚拟机的显示输出以及所述终端的控制指令。
6.根据权利要求5所述的虚拟机远程控制方法,其特征在于,所述通过所述虚拟化级的远程控制协议连接以及虚拟化底层消息通道传输所述虚拟机的显示输出以及所述终端的控制指令,进一步包括:
宿主服务器通过虚拟化底层消息通道获取所述虚拟机的显示输出,并通过所述虚拟化级的远程控制协议连接投影到所述终端;
通过所述虚拟化级的远程控制协议连接接收所述终端的控制指令,并通过所述虚拟化底层消息通道转发给所述虚拟机。
7.根据权利要求5所述的虚拟机远程控制方法,其特征在于,所述通过所述虚拟化级的远程控制协议连接及虚拟化底层消息通道传输所述虚拟机的显示输出和所述终端的控制指令之后,该方法还包括:
当终端与虚拟机切换回操作系统级的远程控制协议连接后,将控制界面的视频流切换到操作系统级远程控制协议连接上,并中断虚拟化级的远程控制协议连接。
8.一种虚拟机远程控制方法,应用于虚拟机,其特征在于,该方法还包括:
实时监测虚拟机的系统运行状态和网络状态;
当检测到虚拟机运行状态和网络状态恢复正常后,通过虚拟化底层消息通道再经虚拟化级的远程控制协议连接向终端发送恢复正常通知。
9.一种终端,其特征在于,该终端包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,该所述计算机程序被所述处理器执行时,实现如权利要求1至4中任一项所述的虚拟机远程控制方法的步骤。
10.一种宿主服务器,其特征在于,该宿主服务器包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,该所述计算机程序被所述处理器执行时,实现如权利要求5至7中任一项所述的虚拟机远程控制方法的步骤。
11.一种虚拟机,其特征在于,该终端包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,该所述计算机程序被所述处理器执行时,实现如权利要求8所述的虚拟机远程控制方法的步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现如权利要求1至8中任一项所述的虚拟机远程控制方法的步骤。
CN201811259150.9A 2018-10-26 2018-10-26 虚拟机及其远程控制方法、终端、宿主服务器和存储介质 Withdrawn CN111107117A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201811259150.9A CN111107117A (zh) 2018-10-26 2018-10-26 虚拟机及其远程控制方法、终端、宿主服务器和存储介质
PCT/CN2019/113340 WO2020083383A1 (zh) 2018-10-26 2019-10-25 虚拟机及其远程控制方法、终端、宿主服务器和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811259150.9A CN111107117A (zh) 2018-10-26 2018-10-26 虚拟机及其远程控制方法、终端、宿主服务器和存储介质

Publications (1)

Publication Number Publication Date
CN111107117A true CN111107117A (zh) 2020-05-05

Family

ID=70330289

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811259150.9A Withdrawn CN111107117A (zh) 2018-10-26 2018-10-26 虚拟机及其远程控制方法、终端、宿主服务器和存储介质

Country Status (2)

Country Link
CN (1) CN111107117A (zh)
WO (1) WO2020083383A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112217890A (zh) * 2020-10-12 2021-01-12 南方电网数字电网研究院有限公司 远程协助方法、装置、计算机设备和存储介质
CN112528333A (zh) * 2020-12-15 2021-03-19 中国联合网络通信集团有限公司 用户隐私保护方法、mec服务器、终端、设备及介质
CN115623058A (zh) * 2022-11-29 2023-01-17 北京志翔科技股份有限公司 远程控制方法、装置、设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105847332A (zh) * 2016-03-17 2016-08-10 汉柏科技有限公司 桌面虚拟化方法、客户端设备和服务端设备
US20170201491A1 (en) * 2016-01-12 2017-07-13 Jens Schmidt Method and system for controlling remote session on computer systems using a virtual channel
CN108206842A (zh) * 2016-12-16 2018-06-26 广州杰赛科技股份有限公司 云桌面远程接入方法和系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7552213B2 (en) * 2005-05-12 2009-06-23 Avocent Fremont Corp. Remote network node management system and method
EP2766820B1 (en) * 2011-10-13 2021-07-07 Citrix Systems Inc. System and method for a distributed virtual desktop infrastructure
US9383891B2 (en) * 2012-03-28 2016-07-05 Skytap Methods and systems for an intermediate graphical desktop sharing protocol

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170201491A1 (en) * 2016-01-12 2017-07-13 Jens Schmidt Method and system for controlling remote session on computer systems using a virtual channel
CN105847332A (zh) * 2016-03-17 2016-08-10 汉柏科技有限公司 桌面虚拟化方法、客户端设备和服务端设备
CN108206842A (zh) * 2016-12-16 2018-06-26 广州杰赛科技股份有限公司 云桌面远程接入方法和系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112217890A (zh) * 2020-10-12 2021-01-12 南方电网数字电网研究院有限公司 远程协助方法、装置、计算机设备和存储介质
CN112217890B (zh) * 2020-10-12 2023-09-15 南方电网数字电网研究院有限公司 远程协助方法、装置、计算机设备和存储介质
CN112528333A (zh) * 2020-12-15 2021-03-19 中国联合网络通信集团有限公司 用户隐私保护方法、mec服务器、终端、设备及介质
CN115623058A (zh) * 2022-11-29 2023-01-17 北京志翔科技股份有限公司 远程控制方法、装置、设备和存储介质

Also Published As

Publication number Publication date
WO2020083383A1 (zh) 2020-04-30

Similar Documents

Publication Publication Date Title
US9311200B1 (en) Method and system for providing high availability to computer applications
US10915218B2 (en) Methods and systems for an intermediate graphical desktop sharing protocol
US8468288B2 (en) Method for efficient guest operating system (OS) migration over a network
US10142425B2 (en) Session reliability for a redirected USB device
WO2020083383A1 (zh) 虚拟机及其远程控制方法、终端、宿主服务器和存储介质
US20110153716A1 (en) Enabling virtual desktop connections to remote clients
US10547657B2 (en) System and method for video gathering and processing
US20110276625A1 (en) Method and system for host independent keyboard, video, and mouse (kvm) redirection
US20140122687A1 (en) Method and system for switching between remote console sessions
US10705929B2 (en) Switching servers without interrupting a client command-response queue
US9426022B2 (en) SEA failover mechanism with minimized packet losses
US20090077218A1 (en) Software Method And System For Controlling And Observing Computer Networking Devices
WO2010079587A1 (ja) 管理装置及び管理方法及びプログラム
CN108255547B (zh) 一种应用程序控制方法及装置
US20210294706A1 (en) System recovery using a failover processor
US20240020081A1 (en) Multimedia redirection in collaborative sessions on virtual desktops
US20230205566A1 (en) Dynamic connection switching in virtual desktops under nested mode
US20240020179A1 (en) Handling application events occurring on inactive or disconnected virtual desktops
US20210303329A1 (en) Communication processing device, program and communication processing method
US20230281028A1 (en) Selectively switching client device remote control of host device between hardware- and software-based remote control modes
US20230195548A1 (en) Bridging virtual desktops under nested mode
WO2013037232A1 (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
WW01 Invention patent application withdrawn after publication

Application publication date: 20200505

WW01 Invention patent application withdrawn after publication