一种基于虚拟网络计算的远程访问方法和装置转让专利

申请号 : CN201210458838.6

文献号 : CN103812913B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 蔡志峰郭中华

申请人 : 新华三技术有限公司

摘要 :

本申请公开了一种基于VNC的远程访问的方法,该方法包括:在VNC代理感知到与VM的连接断开时,从虚拟机管理平台获取该VM当前的位置信息,使用获取的位置信息与该VM建立连接,使所述VNC客户端能够通过虚拟桌面继续远程访问该VM。基于同样的发明构思,本申请还公开了一种装置,能够实现VNC客户端侧虚拟桌面的不间断访问。

权利要求 :

1.一种基于虚拟网络计算VNC的远程访问方法,该方法应用于包含VNC客户端、VNC服务器、VNC代理和虚拟机管理平台的系统中,其中,所述VNC服务器上创建了多个虚拟机VM,其特征在于,所述方法包括:该VNC代理通过与所述VNC服务器上的VM以及所述VNC客户端分别建立连接,使所述VNC客户端能够远程访问所述VM;

该VNC代理当感知到与所述VNC服务器上的所述VM的连接断开时,从所述虚拟机管理平台获取该VM的当前位置信息,若获取该VM当前的位置信息,使用获得的位置信息与所述VM建立连接,使所述VNC客户端能够继续远程访问该VM;否则,断开与所述VNC客户端的连接;

当所述VNC代理感知到与所述VNC服务器上的所述VM的连接断开时,所述方法进一步包括:若接收到所述VNC客户端发送给所述VM的数据时,将接收到的数据缓存;

当使用获得的位置信息与所述VM建立连接时,所述方法进一步包括:若确定本地缓存了所述VNC客户端发送给所述VM的数据时,将所述缓存的数据顺序发送给所述VM。

2.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:

当所述VM迁移或关机时,该VNC代理感知到与所述VNC服务器上的所述VM的连接断开;

当所述VM迁移时,所述VNC代理获取该VM当前的位置信息;当所述VM关机时,所述VNC代理未能获取该VM当前的位置信息。

3.根据权利要求1-2任意一项所述的方法,其特征在于,所述从所述虚拟机管理平台获取该VM的当前位置信息,若获取该VM当前的位置信息,使用获得的位置信息与所述VM建立连接,使所述VNC客户端能够继续远程访问该VM;否则,断开与所述VNC客户端的连接,包括:若该VNC代理在第一预设时间内接收到所述虚拟机管理平台获取并发送的携带该VM的当前位置信息的消息时,获取所述VM当前的位置信息,使用获得的位置信息与所述VM建立连接,使所述VNC客户端能够继续远程访问该VM;

若在第一预设时间内接收到所述虚拟机管理平台发送的该VM关机的消息,或在第一预设时间内未接收到所述虚拟机管理平台获取并发送的携带该VM的当前位置信息的消息时,断开与所述客户端的连接。

4.根据权利要求1-2任意一项所述的方法,其特征在于,所述从所述虚拟机管理平台获取该VM的当前位置信息,若获取该VM当前的位置信息,使用获得的位置信息与所述VM建立连接,使所述VNC客户端能够继续远程访问该VM;否则,断开与所述VNC客户端的连接,包括:该VNC代理向所述虚拟机管理平台发送查询所述VM当前位置信息的请求;

在第二预设时间内接收所述虚拟机管理平台的发送的携带所述VM当前的位置信息的应答消息时,获取所述VM当前的位置信息,使用获得的位置信息与所述VM建立连接,使所述VNC客户端能够继续远程访问该VM;

在第二预设时间内接收到所述虚拟机管理平台发送的该VM关机的消息时,断开与所述客户端的连接;

在第二预设时间内既未接收到所述虚拟机管理平台发送的携带所述VM当前的位置信息的应答消息,也未接收到该VM关机的消息时,再次向所述虚拟机管理平台发送查询所述VM当前位置信息的请求,直到达到预设次数还未接收到所述虚拟机管理平台发送的携带所述VM当前的位置信息的应答消息,或该VM关机的消息时,记录错误日志,并断开与所述VNC客户端的连接。

5.一种基于虚拟网络计算VNC的远程访问装置,可应用于包含虚拟网络计算VNC客户端、VNC服务器、VNC代理和虚拟机管理平台的系统中的VNC代理上,其中,所述VNC服务器上创建了多个虚拟机VM,其特征在于,该装置包括:建立连接单元、感知单元、获取单元和处理单元;

所述建立连接单元,用于通过与所述VNC服务器上的VM以及所述VNC客户端分别建立连接,使所述VNC客户端能够远程访问所述VM;若所述获取单元从所述虚拟机管理平台获取该VM当前的位置信息,使用获得的位置信息与所述VM建立连接,使所述VNC客户端能够继续远程访问该VM;

所述感知单元,用于感知本设备与所述VM的连接是否断开;

所述获取单元,用于当所述感知单元感知到本设备与所述VM的连接断开时,从所述虚拟机管理平台获取该VM当前的位置信息;

所述处理单元,用于若所述获取单元未从所述虚拟机管理平台获取该VM当前的位置信息,断开与所述VNC客户端的连接;

所述装置进一步包括:接收单元、缓存单元和发送单元;

所述接收单元,用于接收所述VNC客户端发送给所述VM的数据;

所述缓存单元,用于当所述接收单元接收所述VNC客户端发送给所述VM的数据时,将接收到的数据缓存;

所述发送单元,用于当所述建立连接单元使用获得的位置信息与所述VM建立连接时,若所述缓存单元中缓存了所述VNC客户端发送给所述VM的数据,将所述缓存的数据顺序发送给所述VM。

6.根据权利要求5所述的装置,其特征在于,

当所述VM迁移或关机时,所述感知单元感知到与所述VNC服务器上的所述VM的连接断开,其中,当所述VM迁移时,所述获取单元获取该VM当前的位置信息;当所述VM关机时,所述获取单元未能获取该VM当前的位置信息。

7.根据权利要求5-6任意一项所述的装置,其特征在于,

所述接收单元,进一步用于接收所述虚拟机管理平台获取并发送的携带该VM的当前位置信息的消息;接收所述虚拟机管理平台发送的该VM关机的消息;

所述获取单元,用于当所述接收单元在第一预设时间内接收到所述虚拟机管理平台获取并发送的携带该VM的当前位置信息的消息;

所述处理单元,用于当所述接收单元在第一预设时间内接收到所述虚拟机管理平台发送的该VM关机的消息,或在第一预设时间内未接收到所述虚拟机管理平台获取并发送的携带该VM的当前位置信息的消息时,断开与所述客户端的连接。

8.根据权利要求5-6任意一项所述的装置,其特征在于,

所述发送单元,进一步用于向所述虚拟机管理平台发送查询所述VM当前位置信息的请求;用于当所述接收单元在第二预设时间内既未接收到所述虚拟机管理平台发送的携带所述VM当前的位置信息的应答消息,也未接收到该VM关机的消息时,再次向所述虚拟机管理平台发送查询所述VM当前位置信息的请求;

所述接收单元,进一步用于接收所述虚拟机管理平台发送的携带所述VM当前的位置信息的应答消息;接收所述虚拟机管理平台发送的该VM关机的消息;

所述获取单元,用于所述接收单元接收到所述虚拟机管理平台的发送的携带所述VM当前的位置信息的应答消息时,获取所述VM当前的位置信息;

所述处理单元,进一步用于当所述接收单元接收到所述虚拟机管理平台发送的该VM关机的消息时,断开与所述客户端的连接;用于当所述发送单元向所述虚拟机管理平台发送查询所述VM当前位置信息的请求的次数达到预设次数,所述接收单元还未接收到所述虚拟机管理平台发送的携带所述VM当前的位置信息的应答消息,或该VM关机的消息时,记录错误日志,并断开与所述VNC客户端的连接。

说明书 :

一种基于虚拟网络计算的远程访问方法和装置

技术领域

[0001] 本申请涉及通信技术领域,特别涉及一种基于虚拟网络计算的远程访问方法和装置。

背景技术

[0002] 随着硬件速度的不断提高,服务器性能大大提升,数据中心中的部分服务器的使用率有所下降,为了提高服务器硬件利用率,降低数据中心的运维成本,近年来,虚拟化技术得到了很大的发展。
[0003] 通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。通过虚拟机软件,我们可以在一台物理计算机上模拟出一台或多台虚拟的计算机,这些虚拟机完全就像真正的计算机那样进行工作,例如可以安装操作系统、安装应用程序、访问网络资源等等。从用户的角度看,它只是运行在你物理计算机上的一个应用程序,但是对于在虚拟机中运行的应用程序而言,它就像是在真正的计算机中进行工作。
[0004] 虚拟网络计算(Virtual Network Computing,VNC),是一款优秀的远程控制工具软件。虚拟机迁移是指把源物理主机上的虚拟机迁移到目的物理主机,并且能够在目的物理主机上正常运行,通过虚拟机迁移,可以简化系统的维护与管理,实现系统的负载均衡,增强系统的容错能力,优化系统电源管理,节约能源。目前,虚拟机迁移可以实现其上运行的业务不间断。
[0005] VNC代理在VNC客户端和VNC服务端之间转发消息。VNC代理在VNC客户端和VNC服务端之间起到屏蔽作用,避免了客户端和服务器端的直接接触,提高安全性。由于所有消息通过代理进行转发,可以在代理上对消息进行审计,增加必要的密钥、密码或加密等措施,提高安全性。
[0006] 在VNC客户端通过虚拟桌面连接的VM迁移后,之前虚拟桌面的连接会断开,VM的当前位置信息,即该VM当前在哪个VNC服务器上、以及在该新的VNC服务器上的vnc-server端口号是多少,VNC代理并不知道,因此,老的连接必将由于无数据超时而关闭,VNC客户端通过vnc-viewer必须重新建立到迁移后的host主机上的该VM的连接,才可以通过虚拟桌面再次访问该VM。

发明内容

[0007] 有鉴于此,本申请提供一种基于VNC的远程访问方法和装置,能够实现虚拟桌面的不间断访问。
[0008] 为解决上述技术问题,本发明的技术方案是这样实现的:
[0009] 一种基于虚拟网络计算VNC的远程访问方法,该方法应用于包含VNC客户端、VNC服务器、VNC代理和虚拟机管理平台的系统中,其中,所述VNC服务器上创建了多个VM,所述方法包括:
[0010] 该VNC代理通过与所述VNC服务器上的VM以及所述VNC客户端分别建立连接,使所述VNC客户端能够远程访问所述VM;
[0011] 该VNC代理当感知到与所述VNC服务器上的所述VM的连接断开时,从所述虚拟机管理平台获取该VM的当前位置信息,若获取该VM当前的位置信息,使用获得的位置信息与所述VM建立连接,使所述VNC客户端能够继续远程访问该VM;否则,断开与所述VNC客户端的连接。
[0012] 一种装置,可应用于包含VNC客户端、VNC服务器、VNC代理和虚拟机管理平台的系统中的VNC代理上,其中,所述VNC服务器上创建了多个VM,该装置包括:建立连接单元、感知单元、获取单元和处理单元;
[0013] 所述建立连接单元,用于通过与所述VNC服务器上的VM以及所述VNC客户端分别建立连接,使所述VNC客户端能够远程访问所述VM;若所述获取单元从所述虚拟机管理平台获取该VM当前的位置信息,使用获得的位置信息与所述VM建立连接,使所述VNC客户端能够继续远程访问该VM;
[0014] 所述感知单元,用于感知本设备与所述VM的连接是否断开;
[0015] 所述获取单元,用于当所述感知单元感知到本设备与所述VM的连接断开时,从所述虚拟机管理平台获取该VM当前的位置信息;
[0016] 所述处理单元,用于若所述获取单元未从所述虚拟机管理平台获取该VM当前的位置信息,断开与所述VNC客户端的连接。
[0017] 综上所述,本申请通过在VNC代理感知到与VM的连接断开时,从虚拟机管理平台获取该VM当前的位置信息,使用获取的位置信息与该VM建立连接,使所述VNC客户端能够通过虚拟桌面继续远程访问该VM,能够实现VNC客户端侧虚拟桌面的不间断访问。

附图说明

[0018] 图1为本发明实施例中基于VNC的远程访问方法流程图;
[0019] 图2为本发明具体实施例中VNC代理获取VM的位置信息的流程示意图[0020] 图3为本发明具体实施例中虚拟机迁移时远程访问不间断的VNC代理系统的结构示意图;
[0021] 图4为本发明具体实施例中基于上述技术的装置的结构示意图。

具体实施方式

[0022] 为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明所述方案作进一步地详细说明。
[0023] 本发明实施例中提出一种基于VNC的远程访问方法,该方法应用于包含VNC客户端、VNC服务器、VNC代理和虚拟机管理平台的系统中,其中,所述VNC服务器上创建了多个VM,能够实现VNC客户端侧虚拟桌面的不间断访问。
[0024] 参见图1,图1为本发明实施例中基于VNC的远程访问方法流程图。具体步骤为:
[0025] 步骤101,VNC代理通过与所述VNC服务器上的VM以及所述VNC客户端分别建立连接,使所述VNC客户端能够远程访问所述VM。
[0026] VNC代理与虚拟机管理平台交互,当接收到虚拟机管理平台发送的虚拟机所在VNC服务器的IP地址和端口、密码等信息时,确定某一VNC客户端需要远程访问该VM时,VNC代理根据虚拟机管理平台指定的服务器的IP地址以及目的VM在VNC服务器上的端口信息向VNC服务器发起连接建立到该VM的连接,并在本地启动监听,将监听的端口和密码等信息返回给虚拟机管理平台,该虚拟机管理平台使VNC客户端通过所述监听的端口和连接密码向该VNC代理建立连接,当该VNC客户端认证通过时,建立了与VNC代理与VNC客户端的连接,这样整个连接的虚拟桌面即建立成功,VNC客户端能够远程访问所述VM。虚拟机VM的桌面将在VNC客户端侧显示,用户可以方便使用VM,如同使用本地某台物理主机的显示终端一样。
[0027] 步骤102,该VNC代理当感知到与所述VNC服务器上的所述VM的连接断开时,从所述虚拟机管理平台获取该VM的当前位置信息,若获取该VM当前的位置信息,使用获得的位置信息与所述VM建立连接,使所述VNC客户端能够继续远程访问该VM;否则,断开与所述VNC客户端的连接。
[0028] 当所述VM迁移或关机时,该VNC代理都会感知到与所述VNC服务器上的所述VM的连接断开。当所述VM迁移时,所述VNC代理获取该VM当前的位置信息,即虚拟机管理平台会获知该VM当前的位置信息,VNC代理会从虚拟机管理平台获取该VM当前的位置信息当所述VM关机时;当该VM关机时,所述VNC代理不能获取该VM当前的位置信息,即虚拟机管理平台会获知该VM当前的状态为关机状态,虚拟机管理平台获知该VM关机,该VM位置信息并未变化,则VNC代理不会从虚拟机管理平台获知该VM当前位置信息,这时会断开与VNC客户端的连接,因此本发明实施例中,在VM迁移时,VNC客户端能够不间断的远程访问VNC服务器上的VM,在VM关机时断开与VNC客户端的连接,使VNC客户端及时获知VM的工作状态。
[0029] 步骤102中,当所述VNC代理感知到与所述VNC服务器上的所述VM的连接断开时,若接收到所述VNC客户端发送给所述VM的数据时,将接收到的数据缓存;当使用获得的位置信息与所述VM建立连接时,若确定本地缓存了所述VNC客户端发送给所述VM的数据时,将所述缓存的数据顺序发送给所述VM。
[0030] 这样当VNC代理及时与该VM连接上时,不会发生数据丢失现象。当然在具体实现时,还可以设置一个缓存区的上限,当数据缓存达到该上限时,将后续接收到的数据丢弃,这样是为了在VNC代理能够承受的存储能力下进行基本的保护。当使用获得的位置信息与所述VM建立连接时,优先将所述缓存的数据顺序发送给所述VM,这样更好的实现了远程访问的不间断。
[0031] 在VNC代理感知到与所述VM的连接断开时,由于该VM迁移或关机的原因,是否能够获得该VM当前的位置信息时,有两种方式,具体如下:
[0032] 第一种为被动获取的方式,具体为:
[0033] 当VNC代理感知到与所述VNC服务器上的所述VM的连接断开时,若该VNC代理在第一预设时间内接收到所述虚拟机管理平台获取并发送的携带该VM的当前位置信息的消息时,获取所述VM当前的位置信息,使用获得的位置信息与所述VM建立连接,使所述VNC客户端能够继续远程访问该VM;
[0034] 若在第一预设时间内接收到所述虚拟机管理平台发送的该VM关机的消息,或在第一预设时间内未接收到所述虚拟机管理平台获取并发送的携带该VM的当前位置信息的消息时,断开与所述客户端的连接。
[0035] 由上可见,在被动获取方式中,VNC代理感知到与所述VNC服务器上的所述VM的连接断开时,等待虚拟机管理平台发送该VM的位置信息,或状态信息即该VM关闭状态,第一预设时间内接收到虚拟机管理平台发送的消息时,根据接收消息处理,如果超出第一预设时间还未接收到任何消息,这样可以直接与所述VNC客户端断开,做错误处理,如记录日志等。具体实现为,在VNC代理上启动HTTP服务,对虚拟机管理平台提供ReSTful接口,虚拟机管理平台将VM当前的位置信息通过HTTP消息推给VNC代理。
[0036] 第二种为主动获取方式,具体为:
[0037] 当VNC代理感知到与所述VNC服务器上的所述VM的连接断开时,该VNC代理向所述虚拟机管理平台发送查询所述VM当前位置信息的请求。
[0038] 该VNC代理在第二预设时间内接收所述虚拟机管理平台的发送的携带所述VM当前的位置信息的应答消息时,获取所述VM当前的位置信息,使用获得的位置信息与所述VM建立连接,使所述VNC客户端能够继续远程访问该VM。
[0039] 该VNC代理在第二预设时间内接收到所述虚拟机管理平台发送的该VM关机的消息时,断开与所述客户端的连接。
[0040] 该VNC代理在第二预设时间内既未接收到所述虚拟机管理平台发送的携带所述VM当前的位置信息的应答消息,也未接收到该VM关机的消息时,再次向所述虚拟机管理平台发送查询所述VM当前位置信息的请求,直到达到预设次数还未接收到所述虚拟机管理平台发送的携带所述VM当前的位置信息的应答消息,或该VM关机的消息时,记录错误日志,并断开与所述VNC客户端的连接。具体实现为,在虚拟机管理平台上启动虚拟机位置信息查询服务,对VNC代理提供ReSTful接口。
[0041] 参见图2,图2为本发明具体实施例中VNC代理获取VM的位置信息的流程示意图。具体步骤为:
[0042] 步骤201,VNC代理向所述虚拟机管理平台发送查询所述VM当前位置信息的请求。
[0043] 步骤202,VNC代理在第二预设时间内是否接收到虚拟机管理平台发送的信息,如果是,执行步骤203;否则,执行步骤206。
[0044] 步骤203,VNC代理确定接收到的信息,是否携带该VM当前的位置信息,如果是,执行步骤204;否则,执行步骤205。
[0045] 步骤204,VNC代理获取所述VM当前的位置信息,使用获得的位置信息与所述VM建立连接,使所述VNC客户端能够继续远程访问该VM,结束本流程。
[0046] 步骤205,VNC代理断开与所述VNC客户端的连接,结束本流程。
[0047] 步骤206,VNC代理确定发送请求次数是否达到预设次数,如果是,执行步骤207;否则,执行步骤201。
[0048] 步骤207,VNC代理记录错误日志,并断开与所述VNC客户端的连接。
[0049] 下面结合附图,以同客户端建立和VNC服务器上的VM分别建立连接后,VM迁移为例,详细描述VNC代理如何实现远程访问的。
[0050] 参见图3,图3为本发明具体实施例中虚拟机迁移时远程访问不间断的VNC代理系统的结构示意图。
[0051] 图3中,各客户端、各服务器和VNC代理上都部署了VNC。
[0052] 以客户端1需要远程访问服务器1上的VM1连接为例。
[0053] 通过VNC客户端在IE等浏览器上登录虚拟机管理平台,执行登录“远程桌面”命令,虚拟机管理平台同VNC代理交互,将VM1所在的服务器1的IP,在vnc-server1上的端口port和密码password等信息告知VNC代理,在创建虚拟机时,通过qemu-kvm指定该创建的虚拟机在vnc-server1上的端口。
[0054] VNC代理向指定的IP上的vnc-server1的指定端口port,使用密码password建立到虚拟机VM的桌面的连接。
[0055] VNC代理启动vnc-viewer1侧的监听,并将监听端口listen_port和连接密码password返回给虚拟机管理平台。
[0056] 虚拟机管理平台在用户侧的浏览器上通过java Web Star启动VNC客户端1上的vnc-viewer1。
[0057] VNC客户端1通过vnc-viewer1依据指定的listen_port向VNC代理建立连接,并使用password认证通过,这样从VNC客户端1到VNC代理到VM1的整个连接的虚拟桌面即建立成功,VM1的桌面将在VNC客户端侧显示,用户可以方便的使用VM1,如同使用本地的某台物理主机的显示终端一样。
[0058] 上述为VNC建立同VM1和VNC客户端的连接,具体实现同现有实现,这里不再进行更详细的描述。
[0059] 管理员或虚拟机管理平台基于LB负载均衡或业务上的需要,将虚拟机VM1从服务器1迁移到服务器2上。
[0060] VNC代理感知到同VM1的连接断开,主动向虚拟机管理平台发送查询VM1的位置信息的请求,包括服务器2的IP地址以及vnc-server2的端口号等。
[0061] VNC代理接收到虚拟及管理平台发送的携带VM1的位置信息的应答信息时,获取VM1当前的位置信息,即服务器2的IP地址以及vnc-server2的端口号。VNC代理使用服务器2的IP地址和vnc-server2的端口号等与VNC服务器2上的VM1建立连接,实现了VNC虚拟桌面在虚拟机迁移过程中的不间断运行,改善了客户使用虚拟桌面的体验。
[0062] 本发明具体实施例中基于同样的发明构思,还提出一种装置,可应用于包含VNC客户端、VNC服务器、VNC代理和虚拟机管理平台的系统中的VNC代理上,其中,所述VNC服务器上创建了VM。参见图4,图4为本发明具体实施例中基于上述技术的装置的结构示意图。该装置包括:建立连接单元401、感知单元402、获取单元403和处理单元404。
[0063] 建立连接单元401,用于通过与所述VNC服务器上的VM以及所述VNC客户端分别建立连接,使所述VNC客户端能够远程访问所述VM;若获取单元403从所述虚拟机管理平台获取该VM当前的位置信息,使用获得的位置信息与所述VM建立连接,使所述VNC客户端能够继续远程访问该VM。
[0064] 感知单元402,用于感知本设备与所述VM的连接是否断开。
[0065] 获取单元403,用于当感知单元402感知到本设备与所述VM的连接断开时,从所述虚拟机管理平台获取该VM当前的位置信息。
[0066] 处理单元404,用于若获取单元403未从所述虚拟机管理平台获取该VM当前的位置信息,断开与所述VNC客户端的连接。
[0067] 较佳地,
[0068] 当所述VM迁移或关机时,感知单元402感知到与所述VNC服务器上的所述VM的连接断开,其中,当所述VM迁移时,获取单元403获取该VM当前的位置信息;当VM关机时,获取单元403未能获取该VM当前的位置信息。
[0069] 较佳地,该装置进一步包括:接收单元405、缓存单元406和发送单元407。
[0070] 接收单元405,用于接收所述VNC客户端发送给所述VM的数据。
[0071] 缓存单元406,用于当接收单元405接收所述VNC客户端发送给所述VM的数据时,将接收到的数据缓存。
[0072] 发送单元407,用于当建立连接单元401使用获得的位置信息与所述VM建立连接时,若缓存单元406中缓存了所述VNC客户端发送给所述VM的数据,将所述缓存的数据顺序发送给所述VM。
[0073] 较佳地,
[0074] 接收单元405,进一步用于接收所述虚拟机管理平台获取并发送的携带该VM的当前位置信息的消息;接收所述虚拟机管理平台发送的该VM关机的消息;
[0075] 获取单元403,用于当接收单元405在第一预设时间内接收到所述虚拟机管理平台获取并发送的携带该VM的当前位置信息的消息。
[0076] 处理单元404,用于当接收单元405在第一预设时间内接收到所述虚拟机管理平台发送的该VM关机的消息,或在第一预设时间内未接收到所述虚拟机管理平台获取并发送的携带该VM的当前位置信息的消息时,断开与所述客户端的连接。
[0077] 较佳地,
[0078] 发送单元407,进一步用于向所述虚拟机管理平台发送查询所述VM当前位置信息的请求;用于当接收单元405在第二预设时间内既未接收到所述虚拟机管理平台发送的携带所述VM当前的位置信息的应答消息,也未接收到该VM关机的消息时,再次向所述虚拟机管理平台发送查询所述VM当前位置信息的请求。
[0079] 接收单元405,进一步用于接收所述虚拟机管理平台发送的携带所述VM当前的位置信息的应答消息;接收所述虚拟机管理平台发送的该VM关机的消息。
[0080] 获取单元403,用于接收单元405接收到所述虚拟机管理平台的发送的携带所述VM当前的位置信息的应答消息时,获取所述VM当前的位置信息。
[0081] 处理单元404,进一步用于当接收单元405接收到所述虚拟机管理平台发送的该VM关机的消息时,断开与所述客户端的连接;用于当发送单元407向所述虚拟机管理平台发送查询所述VM当前位置信息的请求的次数达到预设次数,接收单元405还未接收到所述虚拟机管理平台发送的携带所述VM当前的位置信息的应答消息,或该VM关机的消息时,记录错误日志,并断开与所述VNC客户端的连接。
[0082] 上述实施例的单元可以集成于一体,也可以分离部署;可以合并为一个单元,也可以进一步拆分成多个子单元。
[0083] 综上所述,本发明具体实施例中在VNC代理感知到与VM的连接断开时,从虚拟机管理平台获取该VM当前的位置信息,使用获取的位置信息与该VM建立连接,使所述VNC客户端能够通过虚拟桌面继续远程访问该VM,能够实现虚拟桌面的不间断访问。
[0084] VM的关机和迁移都会使VNC代理感知到与VM的连接断开,当VM迁移时,会获得该VM迁移后的位置信息,根据该位置信息与该VM建立连接,使VNC客户端侧能够通过虚拟桌面远程不间断访问该VM;当VM关机时,不会多次尝试连接,及时断开与VNC客户端的连接,使客户端侧及时获知该VM关机,提高了虚拟桌面的使用体验。
[0085] 在VNC代理同迁移前的VNC服务器上的VM的连接断开后,VNC代理缓存所有从VNC客户端发送过来的数据。在VNC代理同迁移后的VM建立连接之后,将这些缓存数据发给该VM,这样在重新建立连接的过程中,临时缓存数据,更好的实现了客户侧的虚拟桌面的不间断。
[0086] 以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。