CN103858102B - 用于分布式虚拟桌面基础设施的系统和方法 - Google Patents

用于分布式虚拟桌面基础设施的系统和方法 Download PDF

Info

Publication number
CN103858102B
CN103858102B CN201280050422.9A CN201280050422A CN103858102B CN 103858102 B CN103858102 B CN 103858102B CN 201280050422 A CN201280050422 A CN 201280050422A CN 103858102 B CN103858102 B CN 103858102B
Authority
CN
China
Prior art keywords
client
ftp
desktop
virtual machine
user
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
Application number
CN201280050422.9A
Other languages
English (en)
Other versions
CN103858102A (zh
Inventor
S.格雷厄姆
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.)
Citrix Systems Inc
Original Assignee
Citrix Systems Inc
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 Citrix Systems Inc filed Critical Citrix Systems Inc
Publication of CN103858102A publication Critical patent/CN103858102A/zh
Application granted granted Critical
Publication of CN103858102B publication Critical patent/CN103858102B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

分布式虚拟桌面基础设施系统包括至少一个管理服务器和多个客户端管理应用。管理服务器包括至少一个处理器,并且被编程和/或被配置为确定用于至少一个用户的多个客户端系统的家乡系统。多个客户端管理应用与至少一个管理服务器通信,并且被配置为在多个客户端系统上执行且在至少一个客户端系统上显示在家乡系统上执行的至少一个虚拟机的虚拟桌面。也描述了相关的系统和方法。

Description

用于分布式虚拟桌面基础设施的系统和方法
对相关申请的交叉引用
该申请要求来自2011年10月13日提交的美国临时专利申请(No.61/546,701)以及2008年12月18日提交的美国专利申请(No.12/338,452)的优先权的权益,这两者通过引用整体并入。
技术领域
本发明一般涉及虚拟桌面基础设施,并且更具体地涉及用于提供、执行和/或与分布式虚拟桌面基础设施交互的系统和方法。
背景技术
传统上,虚拟桌面基础设施(VDI)要求大量的基础设施来运行在数据中心中的全部虚拟机工作负荷。同时,由终端用户用来访问VDI会话的瘦客户端一般相比于正常胖客户端不提供更大目的的服务。在合适地配置的瘦客户端与完全鲁棒的胖客户端之间的价格差是小的。此外,用户经常在访问VDI的同时想要或需要执行一些本地处理,这导致他们从传统的膝上型或桌上型计算系统访问他们的VDI会话。
然而,用于访问VDI会话的瘦客户端引起胜过传统的胖客户端计算的优点,因为信息技术(IT)支持可以为VDI会话提供有保证的服务水平协议(SLA),因为IT控制了全部的环境。此外,带有固定客户端装备的环境可以提供会话可移植性,这在传统的计算的情况下是不可能的(例如,在患者房间之间移动的医生/护士可以使用在每一个房间中的硬件来连接到现有的VDI会话)。
发明内容
所以,本发明的目标是提供用于提供分布式VDI、执行分布式VDI和/或与分布式VDI交互的系统和方法,其解决了上面提到的与现有系统相关联的缺陷中的一些或全部。
在本发明的一个优选的且非限制性的实施例中,提供了一种用于提供分布式虚拟化桌面的计算机实现的方法,该方法在包括至少一个处理器的至少一个计算机上执行,该方法包括:在第一计算机处接收用于至少一个用户的用户凭证数据;向管理服务器发射用户凭证数据的至少一部分以及第一计算机的识别信息;从中央管理服务器接收至少部分基于用户凭证数据的用于至少一个用户的家乡系统的标识,家乡系统包括执行包括桌面的至少一个虚拟机的第二计算机;以及在第一计算机处接收来自第二计算机的显示数据,显示数据被配置为生成在第一计算机上的桌面的至少一部分的表示,使得当在第二计算机上的至少一个虚拟机正在执行的同时至少一个用户能够访问桌面。
在一个示例中,第一计算机和第二计算机包括配置为与管理服务器通信的客户端管理应用。在进一步的示例中,第一计算机和第二计算机通过局域网(LAN)进行通信。在另一个示例中,来自第二计算机的显示数据通过直接连接由第一计算机接收,所述直接连接由至少一个网络地址转换(NAT)网关的遍历来促进。此外,计算机实现的方法可以进一步包括步骤:从第一计算机接收存储状态的副本;以及识别在从第一计算机接收存储状态的副本期间修改的存储状态的至少一部分。
在一些情况下,该方法可以以如下步骤继续:接收存储状态的至少一部分的副本;识别在接收存储状态的至少一部分的副本期间修改的存储状态的至少一个其它部分,其中存储状态的至少一个其它部分是存储状态的至少一部分的子集;以及接收存储状态的至少一个其它部分的副本。将进一步理解的是,该方法可以进一步涉及重复地识别在复制和接收所识别的存储状态的部分的先前迭代期间改变的存储状态的各部分,直到没有进一步识别所改变的存储状态的部分或者所改变的存储状态的部分在预先确定的阈值以下。
根据本发明的另一个优选的且非限制性的实施例,提供了一种用于提供分布式虚拟化桌面的系统,该系统包括至少一个管理服务器,所述管理服务器包括至少一个处理器,所述至少一个管理服务器被配置为:处理用于用户的用户凭证数据以及用于第一计算装置的装置标识数据,用户凭证数据和装置标识数据是从第一计算装置接收的;至少部分地基于用户凭证数据和装置标识数据中的至少一部分确定用于用户的家乡系统,家乡系统包括执行包括至少一个桌面的至少一个虚拟机的第二计算装置;以及向第一计算装置发射配置为促进在第一计算装置与第二计算装置之间的直接连接的数据,使得在至少一个虚拟机继续在第二计算装置上执行的同时第一计算装置显示至少一个桌面。
在系统的一个示例中,管理服务器可以被进一步配置为使第一和第二计算装置中的至少一个在虚拟机正在执行的同时将虚拟机从第二计算装置迁移到第一计算装置。虚拟机可以通过以下步骤来进行迁移:从第二计算机复制虚拟机的存储状态,识别在存储状态的复制期间改变的存储状态的至少一个部分,以及从第二计算装置复制存储状态的至少一部分。
在一个实施例中,第一和第二计算装置可以包括配置为与管理服务器通信的客户端管理应用。此外,在一个示例中,第一和第二计算装置可以通过局域网(LAN)进行通信。在另一个实施例中,管理服务器可以被进一步配置为接收用于在第二计算装置上的至少一个桌面的桌面状态和桌面状况中的至少一个。桌面状态和桌面状况中的至少一个可以以预先确定的间隔被发射到第一计算装置。在进一步的实施例中,管理服务器可以被进一步配置为给第一计算装置和第二计算装置中的至少一个通电。
根据本发明的进一步优选的且非限制性的实施例,提供了一种分布式虚拟桌面基础设施系统,包括至少一个管理服务器,所述管理服务器包括至少一个处理器,所述至少一个管理服务器被配置为将多个中央管理的虚拟机提供给多个客户端系统,至少一个管理服务器被进一步配置为确定用于至少一个用户的多个客户端系统的家乡系统;以及与至少一个管理服务器通信的多个客户端管理应用,所述多个客户端管理应用被配置为在多个客户端系统上执行,并且在至少一个客户端系统上显示在家乡系统上执行的至少一个虚拟机的虚拟桌面。
在分布式虚拟桌面基础设施系统的一个实施例中,如果家乡系统对于由至少一个用户使用的第一计算装置是本地的,则从对于第一计算装置是本地的至少一个虚拟机显示虚拟桌面。在另一个实施例中,多个客户端管理应用被配置为当至少一个虚拟机在家乡系统上执行的同时将至少一个虚拟机从家乡系统迁移到至少一个客户端系统。在进一步的实施例中,分布式虚拟桌面基础设施系统可以进一步包括与多个客户端系统通信的存储区域网络。在一个示例中,家乡系统是多个系统的至少一个其它客户端系统,并且至少一个客户端系统通过与至少一个其它客户端系统的通信链路来显示虚拟桌面。
在参考附图考虑下面的描述和所附的权利要求(所有这些形成该说明书的一部分,其中,相同的参考数字指定在各种附图中的对应部分)时,本发明的这些和其它特征和特性以及操作的方法和结构的相关元件的功能和部件的组合和制造的经济将变得更明显。然而,将明白地理解的是,附图是仅为了图示和描述的目的,而不意在为定义本发明的限制。如在说明书和权利要求中使用的,“一”、“一个”和“该”的单数形式包括复数对象,除非上下文另有清楚地指示。
附图说明
图1是根据本发明的原理的分布式VDI系统的示意性视图;
图2是根据本发明的原理的分布式VDI系统的另一个示意性视图;
图3是根据本发明的原理的分布式VDI系统的进一步的示意性视图;
图4是根据本发明的原理的用于提供分布式VDI系统的方法的流程图;以及
图5是根据本发明的原理的用于在分布式VDI系统中迁移虚拟机的方法的流程图。
具体实施方式
为了下文中描述的目的,将理解的是,本发明可以假定各种可替换的变化和布置序列,除了明确指定与之相反。也将理解的是,在附图中图示的以及在下面的说明书中描述的特定装置和过程仅是本发明的示例性实施例。因此,特定的布置、协议、硬件组件、接口和/或与本文中公开的实施例相关的其它特性不被认为是进行限制。
如本文中使用的,术语“通信”和“传送”指的是一个或多个信号、消息、命令和/或其它类型的数据的接收或转移。因为将与另一个单元或组件通信的一个单元或组件意指一个单元或组件能够从其它单元或组件接收数据和/或将数据发射到其它单元或组件。这可以指的是直接或间接连接,其可以本质上是有线和/或无线的。此外,两个单元或组件可以彼此通信,即使所发射的数据可以在第一和第二单元或组件之间被修改、处理、路由等等。例如,第一单元可以与第二单元通信,即使第一单元被动地接收数据而不主动地将数据发射到第二单元。作为另一个示例,如果中间单元处理来自一个单元的数据并将处理后的数据发射到第二单元,第一单元可以与第二单元通信。将理解的是,大量其它布置是可能的。
根据本发明的一个优选的且非限制性的实施例,分布式视频桌面基础设施(VDI)系统可以与用于以磁盘图像的形式和/或数据的其它形式来提供中央管理的虚拟机(VM)的系统一起使用,所述数据被分布到在管理程序平台上的客户端系统且由其执行。在并入的美国专利申请(No.12/338,452)中描述的系统和方法(包括但不限于其中描述的虚拟工作区管理体系结构和工作区执行引擎)可以用来提供并执行虚拟机。例如,管理服务器可以中央地存储若干虚拟机且允许对其进行中央管理。管理服务器可以将虚拟机的磁盘图像提供给客户端系统,以在客户端系统上在本地执行虚拟机。然而,将理解的是,分布式VDI系统的各种其它的实现可以是可能的。
如本文中使用的,术语“管理服务器”指的是能够从多个客户端系统发射和接收数据的一个或多个计算装置,其包括硬件和/或软件组件、模块、功能等等。管理服务器包括或可以使用一个或多个数据结构,所述数据结构包括用于多个客户端系统的识别信息。这样的数据结构可以包括例如将多个用户与各自的客户端系统相关联的关系数据库。如本文中使用的,术语“家乡系统”指的是与特别的用户相关联和/或分配给特别的用户的客户端系统。数据库也可以指示什么样的客户端系统没有特别的用户与之相关联和/或没有将特别的用户分配给其。用于多个客户端系统的识别信息可以包括例如系统名称、IP地址、MAC地址等等。管理服务器也可以提供用于客户端系统的连接信息,诸如:端口号、状况、操作系统、存储信息等等,以促进在客户端之间的直接连接(例如,远程桌面协议(RDP)会话或其它方式)。
如本文中使用的术语“客户端系统”、“客户端计算机”、“客户端装置”、“计算装置”等等指的是包括配置为与网络和管理服务器通信的硬件和/或软件的一个或多个计算装置。在一个优选的且非限制性的实施例中,每一个客户端系统被提供有客户端管理应用,其作为后台进程运行且帮助管理来自客户端侧的分布式VDI。在一个非限制性实施例中,客户端管理应用是作为在客户端系统上的后台进程运行的守护程序。客户端系统的处理能力用来提供分布式VDI的至少一部分,并且促进本文中描述的分布式VDI系统的功能。然而,将理解的是,客户端系统的实施例可以采取各种形式。
参考图1,根据一个优选的且非限制性的实施例示出了分布式VDI系统1000。分布式VDI系统1000包括客户端系统客户端1 102、客户端2 104和客户端3 106。此外,系统1000包括与客户端系统102、104、106中的每一个客户端系统通信的管理服务器114。如可以看到的,客户端系统102、104、106通过网络环境116(诸如局域网(LAN)、宽域网(WAN)、互联网等等)与管理服务器114通信。在该示例中,客户端1 102和客户端2 104通过通信链路118(诸如不通过管理服务器114路由的直接连接)彼此通信。在该示例中,客户端1 102是用于第一用户的家乡系统,并且客户端2 104是用于第二用户的家乡系统。同样地,客户端1 102与在客户端1 102上正在执行的包括桌面108的虚拟机相关联。
继续参考图1,当第一用户将用户凭证录入到客户端2 104时,客户端2 104显示分配给第一用户和/或与第一用户相关联的虚拟机的桌面108(即,作为虚拟桌面),同时该虚拟机正在客户端1 102上同步执行。该远程桌面通信118可以在不必停止在客户端1 102上的虚拟机和虚拟桌面108的执行的情况下被执行。因此,第一用户能够在客户端1 102客户端系统执行必要的处理以运行在客户端2上的桌面108的同时远程地访问该虚拟桌面108且与其交互。将理解的是,用于虚拟桌面108的通信链路118可以通过远程桌面协议(RDP)或者由任何其它方式来建立。客户端3 106与管理服务器114通信且执行包括桌面110的虚拟机。
如本文中使用的,术语“凭证”和“用户凭证”指的是用于至少一个用户的识别和/或认证数据。例如,特别的用户的凭证可以包括姓名、登录、口令、IP地址、标识号、密钥、证书等等。将理解的是,凭证也可以包括用来识别和/或认证用户的任何形式的数据输入,诸如:生物测定输入、视觉输入、可听的输入等等。
当用户将凭证输入到客户端系统中时,客户端系统至少基于该用户的凭证来确定客户端系统是否是用于该特别的用户的家乡系统。继续参考图1,该确定也可以由管理服务器114来执行,所述管理服务器114接收凭证数据的至少一部分,并在一些情况下接收来自客户端系统(例如,客户端2 104)的识别信息,并且基于所接受到的数据做出确定。在一个优选的但非限制性的实施例中,正在使用的客户端系统(例如,客户端2 104)首先基于它本地具有的信息来确定它是否是用于用户的家乡系统,并且如果客户端系统104不是用于用户的家乡系统,则它将用于客户端系统104的识别信息和/或凭证数据传送到管理服务器114,并且接收配置为允许客户端系统104建立与第二客户端系统(例如,客户端102)的通信链路118的数据,所述第二客户端系统(例如,客户端102)是用于该用户的家乡系统,并且正执行包括桌面108的虚拟机。
仍参考图1,在客户端系统102、104、106上透明地呈现远程虚拟机的桌面。因此,无论特别的客户端系统是否是用于本地用户的家乡系统,该特别的客户端系统的本地用户被提供有基本上相同的经历,就好像他或她正在本地使用他或她的家乡系统。如果客户端系统是用于本地用户的家乡系统,则客户端管理应用可以立即显示由在该系统上执行的虚拟机提供的用户的桌面。否则,客户端系统可以识别用于本地用户的家乡系统,建立与家乡系统的通信,并且显示正在家乡系统上同步执行的虚拟机的虚拟桌面。
用于特别的用户的家乡系统可以通过以下步骤来从一个客户端系统改变到另一个客户端系统:将用户的数据存储在存储区域网络(SAN)上并允许在SAN中的不同的客户端系统安装该数据。在一个优选的且非限制性的实施例中,如果当用户登录到不同的客户端系统上时用户的虚拟机不主动在家乡系统上运行,或者如果用户想要通过家乡重新安置过程来移动他的家乡系统,则可以提供家乡系统的基于SAN的迁移。然而,将理解的是,可以以各种其它方式并且使用数据转移的各种方法来初始化家乡重新安置过程。如果当用户登录到不同的客户端系统上时用户的虚拟机不主动在家乡系统上运行,则家乡系统接收命令来卸载SAN逻辑存储单元(例如,一个或多个逻辑单元号(LUN)、一个或多个SCSI装置ID等等),并且清除它存储的指示它是用于该用户的家乡系统的信息。一旦SAN逻辑存储单元被从家乡系统卸载,则使将变成用于用户的新的家乡系统的客户端系统(即,虚拟机将被迁移到的客户端系统)安装SAN LUN或一个或多个其它存储单元,并且使其变成用于该用户的家乡系统。
现在参考图2,示出了根据另一个优选的且非限制性的实施例的分布式VDI系统1000。客户端系统客户端1 102、客户端2 104和客户端3 106与SAN 120通信,所述SAN 120包括网络存储装置124。SAN也与诸如互联网的外部网络122通信。管理服务器114与外部网络122和管理服务器存储装置126通信,所述管理服务器存储装置126包括客户端信息数据库128。例如,在客户端2 104处的用户可能想要在客户端2 104上使用他的或她的家乡系统。在将用户凭证提供给客户端2 104之后,凭证被传送到管理服务器114。管理服务器114使用客户端信息数据库128来确定用户(例如,用户1)与客户端1 102相关联。在该示例中,用户1与在客户端信息数据库128中的客户端1相关联,用户2与客户端2 104相关联,并且客户端3 106没有与之相关联的特别的用户。
继续参考图2,在将客户端1 102识别为用于对客户端2 104是本地的用户的家乡系统之后,管理服务器将该信息传送到客户端2 104,和正在其上执行的客户端管理应用。利用它接收到的信息,客户端系统客户端2 104通过SAN 120在连接118上建立了与客户端系统客户端1 102的通信。在该示例中,可以将客户端1 102的端口号和/或内部IP地址提供给客户端2 104,虽然可以使用其它标识符。如果客户端2和客户端1不是相同的SAN 120的一部分,则外部IP地址和端口号可以用来帮助通过NAT网关连接客户端1 102和客户端2104。一旦在客户端1 102和客户端2 104之间建立了通信链路118,则在客户端1 102上运行的虚拟机的桌面108被输送到客户端2 104,并且来自客户端2 104的输入数据被中继到客户端1 102。
在一些情况下,用户可能想要迁移他的或她的家乡系统,以便完全地接收本地化的运行时环境,或者如果在本地客户端系统之间的通信中遭遇错误,则将他的或她的家乡系统迁移到在用于用户的当前家乡系统上运行的远程虚拟机。可以执行家乡重新安置过程以通过在虚拟机运行的同时首先转移虚拟机存储状态的副本来迁移虚拟机。因为虚拟机正在运行,所以可以在用户通过RDP或通过一些其它方法而正与虚拟机交互的同时透明地执行该过程。
继续参考图2,使用客户端2 104来访问客户端1 102的用户(例如,用户1)可能想要将包括桌面108的虚拟机从客户端1 102迁移到客户端2 104。在该情况下,在虚拟机在客户端系统客户端1 102上被访问的同时可以通过利用SAN以及与SAN 120、客户端1 102和客户端2 104通信的存储器存储装置124来执行动态迁移。在动态迁移中,客户端1 102已经安装了存储器存储装置124的至少一部分,并且接收命令来将虚拟机迁移到客户端2 104。作为响应,客户端1 102将虚拟机的整个存储状态转移到存储器存储装置124,并且追踪在转移期间改变的存储器部分(例如,存储页面、块或其它单元)。随后转移所追踪的存储器部分,并且重复追踪新的改变的过程,直到不存在改变的存储器部分,直到已经执行了预先确定的数量的迭代,直到预先确定的时间间隔期满,和/或直到改变的存储部分的数量在预先确定的阈值以下。
由图5描绘了合适的家乡重新安置过程,虽然将理解的是,可以采用任何数量的方法。在图示的示例中,将第一装置的虚拟机存储状态迁移到在SAN内的第二装置。在该转移期间,追踪改变的存储单元。虽然该方法示出了循环过程,所述循环过程出现直到改变的单元的数量小于预先确定的值,但是其它参数可以用来确定何时停止追踪和转移所改变的存储单元。例如,并且如本文中解释的,循环可以出现,直到不存在改变的数据部分,直到改变的数据部分的量下降到预先定义的阈值以下,和/或直到已经执行了预先定义的数量的迭代。
在家乡重新安置过程或者虚拟机迁移的其它形式期间,当存储正被转移的同时改变的数据部分(例如,存储页面、块或其它单元)可以由客户端管理应用的追踪功能追踪。以这种方式,在执行每一个完全的转移之后,可以复制在完全的转移期间改变的部分。如已经解释的,可以重复地执行在转移数据期间追踪改变的数据部分的过程,直到不存在改变的数据部分,直到改变的数据部分的量下降到预先定义的阈值以下,和/或直到已经执行了预先定义的数量的迭代。一旦该循环过程结束,暂停虚拟机且转移改变的数据的最后部分。在该阶段处,在两个客户端系统上呈现完全的虚拟机状态。然后,在当前家乡系统上关闭虚拟机文件,并且从该客户端系统卸下LUN。然后可以将LUN安装到新的家乡系统(即,目标客户端系统)上并重新打开虚拟机文件。然后可以终止先前用来远程地访问虚拟机和桌面的RDP会话或其它连接,并且可以在新的家乡系统上创建新的桌面以在本地重新开始虚拟机。
在一个优选的且非限制性的实施例中,分布式VDI系统1000的功能可以显现为对于终端用户相同,而不管由该用户使用的客户端系统。现在参考图4,示出了根据本发明的一个优选的且非限制性的实施例的用于将分布式VDI提供给客户端系统的方法的流程图。通过用户将凭证信息提供给第一装置(即,客户端系统)来开始该方法。例如,用户可以接近客户端系统,并且将凭证录入到登记提示中、扫描智能卡或者以其它方式提供凭证。如果客户端系统是用户的家乡系统(例如,分配给用户和/或与用户相关联的客户端系统),则用户将立即看到用于该系统的正常、本地的桌面。
如果客户端系统不是用户的家乡系统,客户端系统提供对在它们的家乡系统上运行的一个或多个它们的桌面的访问,就好像在本地执行。在该后者的环境中,实际上在客户端系统上运行的任何桌面可能对于用户是不可见的。如果用户不具有分配给它和/或与它相关联的家乡系统,并且客户端系统不与任何用户相关联和/或被分配给任何用户,则该客户端系统可以被分配给该用户和/或与该用户相关联,客户端系统变成该用户的家乡系统。如果客户端系统与另一个用户相关联和/或被分配给另一个用户,则用户可以被分配进一步的客户端系统作为它的家乡系统。如果将与用户的家乡系统相关联的用户的数据存储在对于家乡系统和由用户访问的不同的客户端系统两者可访问的SAN上,则可以如本文中描述的完成用户的桌面的转移。例如,桌面迁移可以由在管理的LAN和/或SAN上的网络策略控制。
在一个优选的且非限制性的实施例中,管理服务器114包括一个或多个协议来执行许多功能。例如,管理服务器114可以被配置为向客户端系统传送什么样的用户与客户端系统相关联和/或被分配给客户端系统的内容,并且将“无主”的客户端系统(即,未建立的用于任何特别的用户的家乡系统)关联和/或分配为用于用户的家乡系统。此外,管理服务器114可以被配置为与客户端系统通信以指示不同的客户端系统用来访问与用户的家乡系统相关联的一个或多个桌面。这样的指示可以使客户端管理应用改变它更新管理服务器114的频率,从而减小了向服务器114的登记时间。
客户端管理应用可以管理用于该应用正运行于其上的客户端系统的客户端识别信息,并且将该客户端识别信息发射到管理服务器114和/或在不同的客户端系统上运行的其它客户端管理应用。客户端识别信息在访问虚拟机中可以由不同的客户端系统使用。该信息可以包括例如用来识别每一个客户端系统和/或可以用来发起RDP会话的桌面的IP元组,诸如IP地址和端口号。如果与彼此通信的客户端系统不在相同的LAN上或以其它方式在网络地址翻译(NAT)网关之后,则识别用于远程客户端系统的信息的客户端可以由本地连接客户端系统用来遍历其它客户端系统的NAT网关或以其它方式促进通信链路的建立。例如,如果NAT模式是有效的,则客户端管理应用可以使用端口转发来向在不同的客户端系统上运行的另一个客户端管理应用提供远程访问。
此外,用于客户端系统的客户端识别信息也可以包括在该客户端系统上的每一个桌面的状态和/或状况。该识别信息允许其它的客户端系统实现接口,所述接口给出了在客户端系统上运行的桌面正在其它的客户端系统上本地运行的外观。远程地连接到客户端系统的其它客户端系统可以借助管理服务器来定期地接收该识别信息,维持客户端系统的安全性,使得它可以防止进来的连接且仅允许到管理服务器的输出连接。
继续参考图2,客户端管理应用也可以用来控制在客户端系统(例如,客户端1102)上运行的每一个桌面的状态。例如,客户端管理应用可以能够起动停止的虚拟机或者停止正在执行的虚拟机。正由用户用来远程地访问远程客户端系统102(用于该用户的家乡系统)的客户端系统(例如,客户端2 104)可以将请求传送到管理服务器114以改变在用户的家乡系统102上执行的虚拟机的状态。然后,管理服务器114会将请求提供给下一次它轮询的家乡系统102。所以,正被远程地访问的客户端系统102将以快速的频率与管理服务器114通信。然而,将理解的是,也可以使用变化的频率以及不频繁的轮询。
在一些示例中,代替在每一个间隔处交换状况信息,它可以仅当改变时进行通信。正在使用的在家乡系统102与客户端系统104之间的通信交换可以涉及消息的交换,使得家乡系统发送状态改变并接收命令,并且正在使用的客户端系统104接收状态改变并发送命令。这些通信的频率可以通过管理策略来设置,或者可以由客户端管理应用和/或管理服务器114来预先设置。
继续参考图1和2,在客户端2 104客户端系统上运行的客户端管理应用从客户端1102客户端系统接收图形数据。在客户端1 102客户端系统上运行的客户端管理应用可以被配置为生成图形用户接口(GUI)数据(诸如以扩展的标记语言(XML)格式或相关的元数据运送的信息),并且将其发射到管理服务器114。对于在客户端2 104客户端系统上要虚拟化的每一个桌面,所以客户端管理应用可以创建窗口管理器工作区,并且通过使用从管理服务器114接收的客户端1 102客户端系统的识别信息来在该工作区中提供桌面的全屏实例。可以由窗口管理器工作区把窗口管理器工作区像任何其它的虚拟机工作区一样来对待。
当用户命令停止的虚拟机起动时,由用户使用的客户端系统将命令发射到管理服务器114。显示状态改变,并且当客户端系统指示虚拟机正在运行且具有IP地址或者用于RDP客户端的充足的其它识别信息时,正在使用的客户端系统创建了桌面并执行了RDP客户端。最初可以执行虚拟网络计算(VNC)客户端,使得引导过程可以由用户看到,并且随后,一旦虚拟机在运行可以切换RDP会话。RDP服务器也可以在Dom0域中实现,例如,其与用于虚拟机的帧缓存器集成,使得仅需要在客户端系统之间发射屏幕更新,来代替发射表示桌面的整个屏幕。
在一个优选的且非限制性的实施例中,管理服务器114可以被配置为远程地管理并控制客户端系统的电力。在该实施例中,如果用户的家乡系统被断开电源或正在休眠,并且对于用户是远程的,则它将需要被接通以允许对虚拟机和桌面的远程访问。此外,如果无主的系统将被分配给用户或与用户相关联以作为用户的家乡系统且是关断的或正在休眠,则它可能必须被接通。例如,电力管理功能可以通过使用英特尔vPRO技术来用主动管理技术(AMT)实现,此外,传统的在LAN上唤醒机制可以用来使休眠的LAN连接的装置开始运行。将理解的是,可以通过任何其它硬件和/或软件方式来管理电力。管理服务器114也可以被配置为处理错误。例如,如果不能建立与用户的家乡系统的通信,或者如果用户的家乡系统没有被通电,则可以通过管理服务器114和任何数量的脚本和/或预先确定的错误消息来通知正由该用户使用的客户端系统,以允许用户理解并可能减轻该错误。
现在参考图3,示出了根据一个优选的且非限制性的实施例的分布式VDI系统。管理服务器114与第一客户端系统140和第二客户端系统142通信。每一个客户端系统包括可以在客户端系统中的任意一个客户端系统上可访问的一个或多个虚拟机148、150、144、146。在图示的示例中,第一客户端系统140当前正在执行Joe的Windows 7虚拟机148和Joe的Windows XP虚拟机150,并且第二客户端系统142当前正在执行Fred的Windows 7虚拟机44和Fred的Linux虚拟机146。在该示例中,第一客户端系统140是Joe的家乡系统,并且当前正由Fred使用。
继续参考图3,第二客户端系统142是用于用户Fred的家乡系统。用户Fred通过呈现他的凭证来登录到第一客户端系统140中。这些凭证可以被转发到管理服务器114,所述管理服务器114可以确定用户Fred期望通过第一客户端系统140访问他的桌面144、146。可替换地,Fred的凭证可以由在第一客户端系统140上运行的客户端管理应用来检查,所述第一客户端系统140确定第一客户端系统104不是Fred的家乡系统。在这样的确定之后,Fred可以被呈现有分布式VDI启动屏幕152,所述分布式VDI启动屏幕152可以类似于在美国专利申请(No.12/338,452)中描述的NxTop虚拟机用户访问屏幕。启动屏幕152为了允许Fred访问他的家乡系统142虚拟机桌面144、146的目的而促进与管理服务器114的通信。在一个示例中,分布式VDI启动屏幕152可以与用户访问屏幕相同,该用户访问屏幕本该在Fred要登录到他的家乡系统142时呈现给他。
继续参考图3,Fred选定现有的虚拟机桌面或启动新的虚拟机桌面。在第一客户端系统140上的用户Fred与Fred的家乡系统142之间的通信通过管理服务器114来促成,以促进在客户端系统140、142和管理服务器114之中的状态信息的平滑操作和一致性。一旦用户Fred已经选定了虚拟机桌面144,则可以使得能够进行在远程客户端系统142与执行虚拟机桌面144的主机客户端系统140之间的常规的远程桌面通信。例如,机器和客户端状态信息以及可以促进在客户端140、142和管理服务器114之中适当同步化的其它数据可以继续在客户端系统之中进行通信以维持在管理服务器114上的虚拟机的状况。
例如,分布式VDI系统可以用在医院环境中,其中,医生、护士和其它职员在房间之间移动,并且在整个移位中使用不同的计算机硬件。在该情况下,用户将能够继续访问在任何数量的房间中的任何数量的终端上的正在运行的虚拟桌面。终端(例如,计算装置)可以在相同的LAN和/或SAN上,并且每次使用新的终端时可以从集中式的SAN数据存储装置安装和卸载虚拟机,或者使用RDP来仅虚拟化用户想要访问的正在运行的桌面。
虽然为了说明的目的已经基于当前被认为是最实际且优选的实施例的内容详细地描述了本发明,但是将理解的是,这样的细节只是为了该目的,且该发明不被限制为所公开的实施例,而相反,意在覆盖在所附权利要求的精神和范围内的修改和等效布置。例如,将理解的是,本发明预期的是,在一定程度上可能的是,任何实施例的一个或多个特征能够与任何其它实施例的一个或多个特征相组合。

Claims (18)

1.一种用于提供分布式虚拟化桌面的计算机实现的方法,所述方法在包括至少一个处理器的第一客户端计算机上执行,所述方法包括:
接收用于至少一个用户的用户凭证数据;
向管理服务器发射所述用户凭证数据以及所述第一客户端计算机的设备识别数据;
从中央管理服务器接收至少部分基于用户凭证数据的与所述至少一个用户相关联的家乡系统的标识,所述家乡系统包括在执行包括桌面的至少一个虚拟机的第二客户端计算机;
使用所接收的所述家乡系统的标识,建立在所述第一客户端计算机与所述第二客户端计算机之间的通信;以及
接收来自所述第二客户端计算机的显示数据,所述显示数据被配置为生成在所述第一客户端计算机上的所述桌面的至少一部分的表示,使得在所述第二客户端计算机上的至少一个虚拟机正在执行的同时所述至少一个用户能够访问所述桌面,
其中所述第一客户端计算机和所述第二客户端计算机包括配置为与所述管理服务器通信的客户端管理应用。
2.权利要求1所述的计算机实现的方法,其中所述第一客户端计算机和所述第二客户端计算机通过局域网(LAN)进行通信。
3.权利要求1所述的计算机实现的方法,其中在所述第二客户端计算机与所述第一客户端计算机之间的所述通信通过直接连接来建立,所述直接连接由至少一个网络地址翻译(NAT)网关的遍历促进。
4.权利要求1所述的计算机实现的方法,进一步包括:
从所述第二客户端计算机接收所述至少一个虚拟机的存储状态的副本;以及
在接收所述存储状态的所述副本的同时识别被修改的所述存储状态的至少一部分。
5.权利要求4所述的计算机实现的方法,进一步包括:
接收所述存储状态的所述至少一部分的副本;
在接收所述存储状态的所述至少一部分的所述副本的同时识别被修改的所述存储状态的至少一个其它部分;其中所述存储状态的所述至少一个其它部分是所述存储状态的所述至少一部分的子集;
接收所述存储状态的所述至少一个其它部分的副本。
6.权利要求5所述的计算机实现的方法,进一步包括:
重复地识别在复制和接收所识别的所述存储状态的部分的先前的迭代期间改变的所述存储状态的部分,直到识别没有进一步改变的所述存储状态的部分或者所改变的所述存储状态的部分小于预先确定的阈值。
7.一种用于提供分布式虚拟化桌面的系统,所述系统包括至少一个管理服务器,所述管理服务器包括至少一个处理器,所述至少一个管理服务器被配置为:
从第一客户端计算装置接收用于用户的用户凭证数据和用于所述第一客户端计算装置的装置标识数据;
至少部分地基于所述用户凭证数据识别与所述用户相关联的家乡系统,所述家乡系统包括执行包括至少一个桌面的至少一个虚拟机的第二客户端计算装置;以及
向所述第一客户端计算装置发射配置为促进在所述第一客户端计算装置与所述第二客户端计算装置之间的直接连接的数据,使得在所述至少一个虚拟机继续在所述第二客户端计算装置上执行的同时所述第一客户端计算装置显示所述至少一个桌面,
其中所述第一客户端计算装置和第二客户端计算装置包括配置为与所述管理服务器通信的客户端管理应用。
8.权利要求7所述的系统,其中所述管理服务器被进一步配置为在所述虚拟机正在执行的同时使所述第一客户端计算装置和第二客户端计算装置中的至少一个将虚拟机从所述第二客户端计算装置迁移到所述第一客户端计算装置。
9.权利要求8所述的系统,其中虚拟机通过以下步骤来进行迁移:从所述第二客户端计算机复制所述虚拟机的存储状态,识别在所述存储状态的所述复制期间改变的所述存储状态的至少一个部分,以及从所述第二客户端计算装置复制所述存储状态的所述至少一部分。
10.权利要求7所述的系统,其中所述第一客户端和第二客户端计算装置通过局域网(LAN)进行通信。
11.权利要求7所述的系统,其中所述管理服务器被进一步配置为接收用于在所述第二客户端计算装置上的至少一个桌面的桌面状态和桌面状况中的至少一个。
12.权利要求11所述的系统,其中桌面状态和桌面状况中的所述至少一个以预先确定的间隔被发射到所述第一客户端计算装置。
13.权利要求7所述的系统,其中所述管理服务器被进一步配置为给所述第一客户端计算装置和所述第二客户端计算装置中的至少一个通电。
14.一种分布式虚拟桌面基础设施系统,包括:
包括至少一个处理器的至少一个管理服务器,所述至少一个管理服务器被配置为将多个中央管理的虚拟机提供给多个客户端系统,所述至少一个管理服务器被进一步配置为确定用于至少一个用户的所述多个客户端系统的家乡系统,所述家乡系统执行包括桌面的至少一个虚拟机;
与所述至少一个管理服务器通信的多个客户端管理应用,所述多个客户端管理应用被配置为在所述多个客户端系统上执行,并且在至少一个客户端系统上显示在所述家乡系统上执行的至少一个虚拟机的虚拟桌面;以及
其中所述多个客户端管理应用被配置为在所述至少一个虚拟机正在所述家乡系统上执行的同时将所述至少一个虚拟机从所述家乡系统迁移到所述至少一个客户端系统,其中所述至少一个虚拟机的迁移包括从所述家乡系统复制所述至少一个虚拟机的存储状态,并识别在所述存储状态的所述复制期间改变的所述存储状态的至少一个部分。
15.权利要求14所述的分布式虚拟桌面基础设施系统,其中如果所述家乡系统对于正由所述至少一个用户使用的第一客户端计算装置是本地的,则从对于所述第一客户端计算装置本地的所述至少一个虚拟机显示所述虚拟桌面。
16.权利要求14所述的分布式虚拟桌面基础设施系统,其中所述多个客户端管理应用被配置为在所述至少一个虚拟机正在所述家乡系统上执行的同时将所述至少一个虚拟机从所述家乡系统迁移到所述至少一个客户端系统。
17.权利要求14所述的分布式虚拟桌面基础设施系统,进一步包括与所述多个客户端系统通信的存储区域网络。
18.权利要求14所述的虚拟桌面基础设施系统,其中所述家乡系统是所述多个系统中的至少一个其它客户端系统,并且其中所述至少一个客户端系统通过与所述至少一个其它客户端系统的通信链路来显示所述虚拟桌面。
CN201280050422.9A 2011-10-13 2012-10-15 用于分布式虚拟桌面基础设施的系统和方法 Active CN103858102B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201161546701P 2011-10-13 2011-10-13
US61/546701 2011-10-13
PCT/US2012/060252 WO2013056228A1 (en) 2011-10-13 2012-10-15 System and method for a distributed virtual desktop infrastructure

Publications (2)

Publication Number Publication Date
CN103858102A CN103858102A (zh) 2014-06-11
CN103858102B true CN103858102B (zh) 2018-09-18

Family

ID=48082577

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280050422.9A Active CN103858102B (zh) 2011-10-13 2012-10-15 用于分布式虚拟桌面基础设施的系统和方法

Country Status (3)

Country Link
EP (1) EP2766820B1 (zh)
CN (1) CN103858102B (zh)
WO (1) WO2013056228A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103677962B (zh) * 2013-12-20 2016-12-28 上海电机学院 基于虚拟化技术的桌面交付设备的实现系统及方法
US10268492B2 (en) * 2014-05-20 2019-04-23 Amazon Technologies, Inc. Low latency connections to workspaces in a cloud computing environment
CN104270342B (zh) * 2014-09-11 2017-10-20 深信服科技股份有限公司 虚拟桌面的访问方法和系统
CN104978197B (zh) * 2015-07-02 2018-06-26 深圳市云舒网络技术有限公司 一种计算机虚拟桌面的热插拔系统及其方法
US9665714B1 (en) * 2016-05-31 2017-05-30 AO Kaspersky Lab System and method of detecting malicious files on virtual machines in a distributed network
CN107707622B (zh) * 2017-08-30 2020-11-17 华为技术有限公司 一种访问桌面云虚拟机的方法、装置及桌面云控制器
CN108462738A (zh) * 2018-02-07 2018-08-28 广州华立科技职业学院 计算机屏显系统
CN111107117A (zh) * 2018-10-26 2020-05-05 中兴通讯股份有限公司 虚拟机及其远程控制方法、终端、宿主服务器和存储介质
CN112929410B (zh) * 2021-01-20 2022-04-22 深圳市瑞驰信息技术有限公司 一种支持云桌面多终端显示的系统及方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101754046A (zh) * 2008-12-18 2010-06-23 威睿公司 使用显示通道测量客户交互性能

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6928469B1 (en) * 1998-12-29 2005-08-09 Citrix Systems, Inc. Apparatus and method for determining a program neighborhood for a client node in a client-server network using markup language techniques
US6765918B1 (en) * 1999-06-16 2004-07-20 Teledata Networks, Ltd. Client/server based architecture for a telecommunications network
US7765284B2 (en) * 2002-10-24 2010-07-27 Hewlett-Packard Development Company, L.P. Dynamically modified, multiple-platform computer programs, and methods and apparatus utilizing same
JP4325524B2 (ja) * 2004-09-29 2009-09-02 日本電気株式会社 スイッチ装置とシステム並びにバックアップ及びリストア方法とプログラム
US8738781B2 (en) * 2009-06-22 2014-05-27 Red Hat Israel, Ltd. Launching a virtual machine associated with a client during startup
US8478725B2 (en) * 2009-09-14 2013-07-02 Vmware, Inc. Method and system for performing live migration of persistent data of a virtual machine

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101754046A (zh) * 2008-12-18 2010-06-23 威睿公司 使用显示通道测量客户交互性能

Also Published As

Publication number Publication date
WO2013056228A1 (en) 2013-04-18
CN103858102A (zh) 2014-06-11
EP2766820A1 (en) 2014-08-20
EP2766820B1 (en) 2021-07-07
EP2766820A4 (en) 2015-04-01

Similar Documents

Publication Publication Date Title
CN103858102B (zh) 用于分布式虚拟桌面基础设施的系统和方法
US9270785B2 (en) System and method for a distributed virtual desktop infrastructure
US9292319B2 (en) Global computing interface
CN107426034B (zh) 一种基于云平台的大规模容器调度系统及方法
CN105579965B (zh) 经由提供商定义接口的客户端驻地资源控制
CN104253865B (zh) 一种混合型桌面云服务平台的两级管理方法
CN105493099B (zh) 用于托管虚拟机的加密证实资源
JP7074130B2 (ja) 情報処理装置及び情報処理方法、並びにコンピュータ・プログラム
CN101430649B (zh) 基于虚拟机的虚拟计算环境系统
US7594007B2 (en) Distributed service management for distributed networks
CN109196474A (zh) 计算系统中的分布式操作控制
US9063905B2 (en) System and method for virtualized shared use environment with dynamic IP address injection
CN105138389A (zh) 一种集群中虚拟设备的管理方法及系统
CN105391652A (zh) 基于usb重定向实现usb设备网络共享的系统及方法
TW201434300A (zh) 跨越叢集邊界的服務遷移
EP3794807A1 (en) Apparatuses and methods for zero touch computing node initialization
US11240308B2 (en) Implicit discovery controller registration of non-volatile memory express (NVMe) elements in an NVME-over-fabrics (NVMe-oF) system
TWI707561B (zh) 虛擬網路功能的管理系統和管理方法
CN107294785A (zh) Cdn节点服务的自动部署方法及装置、计算机可读存储介质
JP2015180991A (ja) 画像形成装置、画像形成装置の制御方法およびプログラム
US10979289B2 (en) Apparatuses and methods for remote computing node registration and authentication
US11630697B2 (en) System and method of dynamic context workflow automation
US11212168B2 (en) Apparatuses and methods for remote computing node initialization using a configuration template and resource pools
CN100505735C (zh) 一种多节点智能网络应用服务系统中的会话管理方法
JP2013186755A (ja) 情報処理装置、イメージファイル管理方法およびプログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant