对虚拟桌面实例池的管理的制作方法

文档序号:15235209发布日期:2018-08-21 20:26阅读:205来源:国知局

许多公司和其他组织运营计算机网络,所述计算机网络使众多计算系统互连以支持它们的业务,诸如其中计算系统位于同一位置(例如,作为本地网络的一部分)或者替代地位于多个不同的地理位置(例如,经由一个或多个专用或公共中间网络加以连接)。例如,容纳大量互连的计算系统的数据中心已变得司空见惯,诸如由单个组织运营并供所述组织使用的专用数据中心和由实体进行商业运营来向顾客或客户提供计算资源的公共数据中心。一些公共数据中心运营商为由各种客户所拥有的硬件提供网络访问、电力以及安全安装设施,而其他公共数据中心运营商提供还包括可供其客户使用的硬件资源的“全方位服务”设施。然而,随着典型的数据中心规模和范围的不断扩大,提供、操纵和管理物理计算资源的任务变得越来越复杂。

用于商用硬件的虚拟化技术的出现已针对为具有多样化需求的许多客户管理大规模计算资源而提供益处,从而允许各种计算资源有效且安全地由多个客户共享。例如,虚拟化技术可以通过为每个用户提供由单个物理计算机托管的一个或多个虚拟机而允许所述单个物理计算机在多个用户之间共享,其中每个这样的虚拟机都是充当不同逻辑计算系统的软件模拟,所述软件模拟给用户一种他们是给定硬件资源的唯一操作者和管理者的错觉,同时还在各种虚拟机之间提供应用程序隔离和安全性。此外,一些虚拟化技术还能够提供跨越两个或更多个物理资源的虚拟资源,诸如具有多个虚拟处理器的跨越多个不同物理计算系统的单个虚拟机。利用虚拟化,单个物理计算设备可以以动态方式创建、维护或删除虚拟机。反过来,用户又可从数据中心请求计算机资源,并“按需”地或至少“按请求”地为用户提供数量不同的虚拟机资源。其中一些虚拟化资源可用于实施可托管远程计算会话的虚拟桌面实例。

为了客户的利益而实施虚拟桌面实例的服务提供商通常在每次客户与其虚拟桌面实例断开连接时(例如,通过注销)关闭底层服务提供商资源。当客户想要重新连接到其虚拟桌面实例时,可能需要很长时间才能恢复服务提供商资源。此外,重新启动之前在服务提供商资源上运行的任何应用程序也可能需要很长时间,客户才能继续工作(例如,比登录到本地计算机时长两个数量级)。

附图说明

图1是示出根据至少一些实施方案的示例性提供商网络环境的框图。

图2是示出根据至少一些实施方案的示例性提供商网络的框图,所述提供商网络向客户提供存储虚拟化服务和硬件虚拟化服务。

图3是示出了根据至少一些实施方案的联网计算环境的框图,所述联网计算环境包括与服务提供商计算机网络进行通信的客户端计算设备。

图4是示出了根据至少一些实施方案的示例性服务提供商数据中心的框图。

图5是示出了用于管理虚拟桌面实例的资源的方法的一个实施方案的流程图。

图6是示出了用于检测客户端已经从虚拟桌面实例断开连接(或者已经通过不活动有效地从虚拟桌面实例断开连接)的方法的一个实施方案的流程图。

图7是示出了用于通过应用一个或多个关闭策略来确定是否关闭和/或何时关闭虚拟桌面实例的计算资源实例的方法的一个实施方案的流程图。

图8是示出了用于建立虚拟桌面实例的连接和断开连接的预测模型的方法的一个实施方案的流程图。

图9是示出了响应于断开连接和重新连接来管理虚拟桌面实例的服务提供商资源的方法的一个实施方案的流程图。

图10是示出了用于初始化和修改虚拟桌面实例的配置和/或关闭策略的方法的一个实施方案的流程图。

图11是示出了根据至少一些实施方案的向客户端组织提供具有虚拟桌面实例池的虚拟桌面服务的示例提供商网络的框图。

图12是示出了根据至少一些实施方案的提供带有虚拟桌面实例池的虚拟桌面服务的示例提供商网络的进一步方面的框图,虚拟桌面实例池包括池中的不同插槽的连接和断开连接的虚拟桌面实例。

图13是示出了根据至少一些实施方案的提供带有虚拟桌面实例池的虚拟桌面服务的示例提供商网络的进一步方面的框图,包括当池中的所有插槽都已经被已连接的实例占用时向客户端设备提供对池外部的虚拟桌面实例的访问。

图14是示出了根据至少一些实施方案的提供带有虚拟桌面实例池的虚拟桌面服务的示例提供商网络的其他方面的框图,包括池中的断开连接的虚拟桌面实例的回收。

图15是示出了根据至少一些实施方案的提供带有虚拟桌面实例池的虚拟桌面服务的示例提供商网络的进一步方面的框图,其包括向客户端设备提供对池中的重启的虚拟桌面实例的访问。

图16是示出了用于管理虚拟桌面实例池的方法的一个实施方案的流程图。

图17是示出用于回收池中的断开连接的虚拟桌面实例的方法的一个实施方案的流程图。

图18是示出了根据不同实施方案的示例性计算机系统框图,所述示例性计算机系统实现本文所描述的一些或所有技术。

虽然在本文中通过举例针对若干实施方案和示意性附图描述了实施方案,但是本领域的技术人员应认识到,实施方案不限于所描述的实施方案或附图。应理解,附图和对其的详细描述并非旨在将实施方案限于所公开的特定形式,而相反,其意图在于涵盖落入由所附权利要求书限定的精神和范围内的所有修改、等效物和替代方案。本文中使用的标题都仅用于组织目的,并且并不意图用于限制本说明书或权利要求书的范围。贯穿本申请所使用的词语“可”是在许可的意义上(即意指具有可能性)、而非强制的意义上(即意指必须)使用。类似地,词语“包括”表示包括但不限于。

具体实施方式

本文描述了用于管理虚拟桌面实例池的系统、方法和计算机可读介质的各种实施方案。在向客户提供虚拟化计算资源的服务提供商系统中,虚拟桌面服务可以向客户提供虚拟桌面实例。客户端组织和提供商网络可以达成以下协议:提供商网络将为客户端组织的用户预留一个虚拟桌面实例池。该池可以包括预定的或固定数量的插槽。任何插槽可以由连接的虚拟桌面实例,断开连接(但仍然在运行)的虚拟桌面实例填充或者没有虚拟桌面实例(即,空插槽)填充。客户端组织中的用户数量通常可能会超过池中的插槽数。如果所有插槽都被已连接的实例占用,则客户端组织中的用户可能会被拒绝对池进行访问。例如,当已连接的实例的比率接近完全消耗全部插槽时,可以回收断开连接(但正在运行)的实例,并使其可用于满足新的连接请求。可以基于实例闲置的持续时间(例如,优先保留最近断开连接的实例)、实例重新启动的预期持续时间(例如,优先保留将花费最长时间来重新启动的断开连接的实例)、用户的相对排名或其他特征(例如,优先保留排名较高或优先级较高的用户的断开连接的实例)和/或其他合适的标准,来选择要回收的断开连接的实例。在一些情况下,如果池充满了已连接的实例,则可以对池进行动态扩展,或者可以向客户端设备提供对池外部的虚拟桌面实例(例如,按小时计费的实例)的访问。

虚拟桌面实例的资源管理

在不同实施方案中,本文所描述的系统和方法通过网络环境内的一个或多个计算系统来实现。在图18中示出了可以在其上实现本文所描述的用于管理虚拟桌面实例的资源的技术的实施方案的示例计算机系统。在本文中,通常在服务提供商的背景下来描述用于实现这些技术的各种系统和方法的实施方案,所述服务提供商通过中间网络(诸如互联网),向客户提供虚拟化资源(例如,虚拟化计算和存储资源),所述虚拟化资源在服务提供商的提供商网络上实现。图1-4和图11(以及其对应描述)示出和描述示例性环境,在所述示例性环境中,可实现本文所描述的系统和方法的实施方案,并且不旨在是限制的。在至少一些实施方案中,通过提供商网络向服务提供商的客户提供的资源中的至少一些可以是在与其他客户共享的多租户硬件上和/或专用于特定客户的硬件上实现的虚拟化计算资源。每个虚拟化计算资源都可被称为资源实例。资源实例可例如租赁给服务提供商的客户。例如,服务提供商的客户可经由服务的api,来访问提供商网络的一个或多个服务,以便获得并配置资源实例以及建立和管理包括资源实例的虚拟网络配置(例如,虚拟化专用网络)。

在一些实施方案中,资源实例可例如根据硬件虚拟化技术来实现,所述硬件虚拟化技术使得多个操作系统能够同时在主计算机上(即,作为主机上的虚拟机(vm))运行。主机上的管理程序或虚拟机监视器(vmm)可通过虚拟平台呈现主机上的vm并且监测vm的执行。每个vm都可设置有一个或多个专用ip地址;主机上的vmm可以知道主机上的vm的专用ip地址。采用这种硬件虚拟化技术的系统的示例在图4中示出,并在下文中进行详细描述。

示例性提供商网络环境

本小节描述了其中可实现如本文所述的方法的实施方案的示例性提供商网络环境。然而,这些示例性提供商网络环境并非旨在进行限制。在各种实施方案中,在这些提供商网络环境中,服务提供商可代表顾客托管可以由最终用户访问的虚拟化资源实例。例如,与代表其托管虚拟化资源实例的顾客相关联的最终用户(例如,相同组织或企业的成员)可以能够使用客户端设备上的客户端应用程序来访问虚拟化资源实例。在一些实施方案中,虚拟化资源实例可被配置为实现虚拟桌面实例。

图1示出了根据至少一些实施方案的示例性提供商网络环境。提供商网络100可通过一个或多个虚拟化服务110向客户提供资源虚拟化,所述一个或多个虚拟化服务110允许客户购买、租借或以其他方式获得虚拟化资源(包括但不限于计算和存储资源)的实例112,这些虚拟化资源是在一个或多个数据中心中的一个或多个提供商网络内的设备上实现的。专用ip地址116可与资源实例112相关联;专用ip地址是提供商网络100上的资源实例112的内部网络地址。在一些实施方案中,提供商网络100还可提供公共ip地址114和/或公共ip地址范围(例如,第四版互联网协议(ipv4)地址或第六版互联网协议(ipv6)地址),客户可从提供商100那里获得这些ip地址。

通常,提供商网络100可经由虚拟化服务110,允许服务提供商的客户(例如,运营客户网络150a、150b或150c的客户,所述客户网络中的每一个都可包括一个或多个客户端设备152)动态地将指派或分配给客户的至少一些公共ip地址114与指派给客户的特定资源实例112相关联。提供商网络100还可允许客户将先前映射到分配给客户的一个虚拟化计算资源实例112的公共ip地址114重新映射到同样分配给客户的另一个虚拟化计算资源实例112。例如,通过使用由服务提供商提供的虚拟化计算资源实例112和公共ip地址114,服务提供商的客户(诸如客户网络150a的操作者)可实现客户特定的应用程序,并且将客户的应用程序呈现在中间网络140(诸如互联网)上。然后,中间网络140上的其他网络实体120可生成到由客户网络150a发布的目的地公共ip地址114的流量;流量被路由到服务提供商数据中心,并且在数据中心处经由网络底层路由到当前映射到目的地公共ip地址114的虚拟化计算资源实例112的专用ip地址116。类似地,来自虚拟化计算资源实例112的响应流量可经由网络底层路由回到中间网络140上,到源实体120。

如本文所使用的专用ip地址是指提供商网络中的资源实例的内部网络地址。专用ip地址只可在提供商网络内路由。源于提供商网络外部的网络流量不直接路由至专用ip地址;替代地,流量使用映射至资源实例的公共ip地址。提供商网络可包括提供网络地址转换(nat)或类似功能以执行从公共ip地址到专用ip地址以及反之亦然的映射的网络设备或设施。

如本文所使用的,公共ip地址是由服务提供商或客户分配至资源实例的可在互联网上路由的网络地址。路由至公共ip地址的流量例如经由1:1网络地址转换(nat)进行转换,并转发至资源实例的相应专用ip地址。

一些公共ip地址可由提供商网络基础设施指派给特定资源实例;这些公共ip地址可被称为标准公共ip地址或简单地称为标准ip地址。在至少一些实施方案中,将资源实例的标准ip地址映射至专用ip地址是所有资源实例类型的默认启动配置。

可将至少一些公共ip地址分配给提供商网络100的客户或由其获得;然后,客户可将分配给他们的公共ip地址指派给分配给客户的特定资源实例。这些公共ip地址可被称为客户端公共ip地址或简单地称为客户端ip地址。替代如标准ip地址的情况下那样由提供商网络100指派给资源实例,客户端ip地址可由客户经由例如由服务提供商提供的api指派给资源实例。与标准ip地址不同,客户端ip地址可以由相应客户根据需要或希望,分配给客户账户,并重新映射到其他资源实例。在一些实施方案中,客户端ip地址与客户的账户相关联,而不是与特定资源实例相关联,并且客户可控制该ip地址,直到客户选择释放它为止。与常规静态ip地址不同,客户端ip地址可允许客户端通过将客户端的公共ip地址重新映射到与客户的账户相关联的任何资源实例,来屏蔽资源实例或可用性区域故障。客户端ip地址例如可使得客户端能够通过将客户端ip地址重新映射到替换资源实例,来解决客户端的资源实例或软件的问题。

还应注意,在一些实施方案中,经由虚拟化服务110可供客户端(例如,客户端设备152)使用的资源实例112可包括多个网络接口。例如,它们中的至少一些可包括用于与客户网络150的各种组件进行通信的一个网络接口,以及用于与提供商网络100外部的另一个网络(未示出)上的资源或其他网络实体进行通信的另一网络接口。

图2是根据至少一些实施方案的另一示例性提供商网络环境的框图,所述提供商网络环境向客户提供存储虚拟化服务和硬件虚拟化服务。在此示例中,硬件虚拟化服务220向客户提供多个计算资源224(例如,vm)。计算资源224可例如租赁给提供商网络200的客户(例如,实现客户网络250的客户)。每个计算资源224都可设置有一个或多个专用ip地址。提供商网络200可被配置为将数据包从计算资源224的专用ip地址路由到公共互联网目的地,以及从公共互联网源路由到计算资源224。

提供商网络200可使得例如经由本地网络256联接到中间网络240的客户网络250能够经由联接到中间网络240并联接到提供商网络200的硬件虚拟化服务220,实现虚拟计算系统292。在一些实施方案中,硬件虚拟化服务220可提供一个或多个api202(例如,web服务接口),经由api202,客户网络250可以(例如)经由控制台294访问由硬件虚拟化服务220提供的功能。在至少一些实施方案中,在提供商网络200处,客户网络250上的每个虚拟计算系统292都可对应于租赁或以其他方式提供给客户网络250的计算资源224。

客户端可从虚拟计算系统292的实例和/或另一个客户端设备290或控制台294(例如)经由一个或多个api202,访问存储虚拟化服务210的功能,以访问来自由提供商网络200提供的虚拟数据存储216的数据以及将数据存储到虚拟数据存储216。在一些实施方案中,可在客户网络250处提供虚拟化数据存储网关(未示出),所述虚拟化数据存储网关可本地高速缓存(例如)频繁被访问的至少一些数据或重要数据,并且可经由一个或多个通信信道与虚拟化数据存储服务210进行通信,以从本地高速缓存上传新的或经修改的数据,使得数据的主存储(虚拟化数据存储216)得以维持。在至少一些实施方案中,用户可经由虚拟计算系统292和/或在另一个客户端设备290上挂载并访问虚拟数据存储216的一个或多个存储卷218,所述一个或多个存储卷218中的每一个都让用户感觉好像是本地虚拟化存储区298。

虽然在图2中未示出,但是还可通过api202,从提供商网络200内的资源实例来访问虚拟化服务。例如,客户、设施服务提供商或其他实体可经由api202从提供商网络200上的相应专用网络内访问虚拟化服务,以请求分配专用网络内或另一个专用网络内的一个或多个资源实例。注意,在一些实施方案中,硬件虚拟化服务220可被配置为提供已经被配置为实现虚拟桌面实例的计算资源224,所述虚拟桌面实例可让用户感觉好像是本地桌面(由虚拟计算系统292实现)。还应注意,在一些实施方案中,经由硬件虚拟化服务220可供客户端使用的计算资源224可包括多个网络接口。例如,它们中的至少一些可包括用于与客户网络250的各种组件进行通信的一个网络接口,以及用于与提供商网络200外部的另一个网络(未示出)上的计算资源或其他网络实体进行通信的另一个网络接口。

在一些实施方案中,服务提供商网络的各种组件可被配置为用于生成和管理在客户端计算设备与程序执行服务(pes)平台的一个或多个远程数据中心计算机所托管的虚拟桌面实例之间的远程计算会话。许多数据中心可以组织为单个pes平台的一部分,所述pes平台可以促进pes的顾客对数据中心的资源的利用。在一些实施方案中,pes可包括几百个或几千个数据中心计算机。例如,在一些实施方案中,客户端计算设备可在一个或多个远程计算会话期间访问虚拟桌面实例,并且虚拟桌面实例可给用户提供客户端桌面环境的所有能力,但集中提供客户端所访问的服务。

在一些实施方案中,用户可经由客户端计算设备传输加载诸如远程计算应用程序之类的应用程序的请求。在接收到请求之后,客户端计算设备可与pes平台进行通信以便开始远程计算会话。在一个实施方案中,在客户端计算设备与pes平台之间的通信可包括登录信息。在其他实施方案中,通信还可包括标识资源使用信息、处理要求、或有关客户端计算设备的用户的远程计算会话的持续时间或条件的规则的信息。客户端计算设备可另外传送关于设备状态的各种信息,包括但不限于,设备资源(例如,处理能力、存储器、存储设备、网络使用等)的当前或未来可用性。通过使用所接收的信息,pes平台可标识一个或多个虚拟桌面实例,用于在一个或多个远程计算会话中执行。在一个示例中,pes平台可实例化数据中心计算机上的虚拟机实例,或导致其实例化,虚拟机实例可包括操作系统。然后,客户端计算设备可与虚拟机建立远程计算会话,操作系统的用户界面(例如,操作系统的输出,诸如图形用户界面、声音等)可经由虚拟机实例或虚拟桌面实例的特定网络接口,发送到客户端计算设备,并且向用户呈现(例如,图形用户界面可在客户端计算设备的显示器上呈现)。操作系统可使用与用户相关联的并且存储在可由pes访问的桌面存储上的桌面配置文件,来通过设置桌面背景、屏幕保护程序、桌面布局、指针优选项、声音设置等来配置用户的虚拟桌面实例。然后,诸如鼠标和键盘活动之类的用户输入可发送到虚拟机(经由虚拟机实例或虚拟桌面实例的特定网络接口),并且注入到操作系统中,好像用户直接在虚拟机处执行活动。

在一些实施方案中,pes平台可在远程计算会话期间接收或产生数据,所述数据与客户端计算设备和所述客户端计算设备上的虚拟桌面实例的交互相关联。数据可包括用户数据和优选项、文件等。在接收到数据之后,pes平台可将数据保存到与虚拟桌面实例相关联的桌面存储。在一些实施方案中,桌面存储可在卷上或在另一个逻辑块存储设备上实现。在一些实施方案中,pes可创建数据的备份副本,或另外将数据存储到中央存储库。保存的数据可随后用于恢复由于故障(诸如虚拟桌面实例、托管虚拟桌面实例的服务器、网络等的故障)而中断的远程计算会话。通过保存用户数据,pes平台可确保在对客户端计算设备用户的延迟和中断最小的情况下,重新建立远程计算会话。

在一些实施方案中,所提供的虚拟桌面实例可根据在pes的用户配置文件存储处存储的用户配置文件来进行配置。虚拟桌面实例的配置也可根据监测的对实例的使用情况来调整。在一些实施方案中,用户配置文件可由与控制用户的使用的实体相关联的管理员设置。用户配置文件可指出与执行一个或多个虚拟桌面实例的pes计算机相关联的各种存储器和处理要求,以及对虚拟桌面实例的要求。例如,用户配置文件可指出在用户使用虚拟桌面实例时可以访问的程序。用户配置文件还可指出与远程计算会话相关联的最大时间或费用。pes可在放置和配置虚拟桌面实例时,将用户的用户配置文件考虑在内。此外,还可随着时间的推移,基于用户与虚拟桌面的交互来调整放置决定和配置决定。

图3是示出了示例性联网计算环境300的框图,所述示例性联网计算环境300包括通过通信网络304与服务提供商计算机网络305进行通信的客户端计算设备306。客户端计算设备306可用于向用户提供对远程操作系统和应用程序的访问。在各种实施方案中,客户端计算设备306可以对应于各种各样的计算设备,包括个人计算设备、膝上型计算设备、手持式计算设备、终端计算设备、移动设备(例如,移动电话、平板计算设备、电子书阅读器等)、无线设备、各种电子设备和设施等。在一些实施方案中,客户端计算设备306包括用于通过通信网络304(诸如广域网或局域网)建立通信的必要硬件和软件组件。例如,客户端计算设备306可以配备有促进经由互联网或内部网络进行通信的联网设备和浏览器软件应用程序。客户端计算设备306可以具有不同的本地计算资源,诸如中央处理单元和架构、存储器、大容量存储设备、图形处理单元、通信网络可用性和带宽等。

在一个实施方案中,客户端计算设备306可运行远程计算应用程序330。远程计算应用程序330可请求对服务提供商计算机网络305所托管的虚拟桌面实例的访问。远程计算应用程序330还可管理客户端计算设备306与服务提供商计算机网络305之间的远程计算会话。如图3所示,服务提供商计算机网络305也可包括pes平台302。图3中所示出的pes平台302对应于与服务提供商相关联的一个或多个数据中心的逻辑关联。pes平台302可与诸如例如数据中心计算机310之类的多个数据中心计算机相关联。每个数据中心计算机310都可托管一个或多个虚拟桌面实例314。例如,数据中心计算机310可通过在物理设备上执行虚拟机来托管虚拟桌面实例。虚拟机可执行操作系统和应用程序软件的实例以便创建虚拟桌面实例。由pes302执行的每个虚拟桌面实例都可以由一个或多个客户端计算设备(诸如客户端计算设备306)进行访问。

在一些实施方案中,数据中心计算机310可与服务提供商计算机网络305内的专用网络地址(诸如ip地址)相关联,以使得它们不能由客户端计算设备306直接进行访问。虚拟桌面实例314可与公共网络地址相关联,可通过服务提供商计算机网络305的边缘处的网关来获得所述公共网络地址。因此,虚拟桌面实例314可以由客户端计算设备306经由公共网络地址直接进行寻址。相关领域的技术人员将认识到,每个数据中心计算机310都将包括物理计算设备资源和软件,以便执行多个虚拟桌面实例314或动态地实例化虚拟桌面实例314。此类实例化可基于诸如来自客户端计算设备306的特定请求。

如图3所示,数据中心计算机310可包括一个或多个实例管理器322。实例管理器322可以与相应实例314位于同一计算机上,或位于单独的计算机上。实例管理器322可跟踪在数据中心计算机310上执行的实例的进度,监测和协调在用户经由客户端计算设备与实例314交互时由用户所创建的数据的存储,以及监测数据中心计算机310和在客户端计算设备306上运行的远程计算应用程序的总体健康和状态。实例管理器322可与pes平台302的数据中心管理组件301交换通过跟踪和监测收集到的信息,以便有效管理数据中心计算机310与客户端计算设备306之间的各种远程计算会话。在一些实施方案中,本文所描述的用于检测虚拟桌面实例上的活动或不活动、监测和跟踪与各种虚拟桌面实例的连接、断开连接以及重新连接以及确定是否和/或何时关闭底层虚拟化计算资源的技术可以由实例管理器322来执行。

如图3所示,服务提供商网络305还可包括存储服务平台303。存储服务平台303可包括,或连接到,一个或多个存储服务器307。存储服务器307可用于存储由虚拟桌面实例314生成或利用的数据。由虚拟桌面实例314生成或利用的数据可基于客户端计算设备306与pes302之间的经由一个或多个远程计算会话的交互。

在一些实施方案中,存储服务平台303按逻辑组织和维护与桌面存储中的托管的虚拟桌面实例314相关联的信息。与桌面存储中维护的虚拟桌面实例314相关联的信息可包括,但不限于,用户优选项、用户或顾客特定的策略、与程序数据执行相关联的信息、用户内容、对用户内容的引用等。例如,用户用来在其他存储设备上存储音乐、文件等的文件夹(包括通过存储服务提供商)还可经由对那些存储位置的引用映射到桌面存储。也就是说,输入/输出操作(诸如打开这些文件夹中的文件的请求)可重定向到桌面存储。由此,当用户试图打开存储在其文件夹中的文件时,请求可由在虚拟桌面实例中运行的操作系统重定向到桌面存储。除用户所创建的数据之外,用户的桌面配置文件也可存储在与用户的虚拟桌面实例相关联的桌面存储上,所述用户的桌面配置文件可包括例如桌面的配置信息,诸如背景图片、字体、图标布置等。在一些实施方案中,服务提供商计算机网络305可以能够通过将数据存储在独立于数据中心计算机310的存储服务器上,来减轻运行虚拟桌面实例314的数据中心计算机310的故障或与数据中心计算机310上的虚拟桌面实例314的执行相关联的错误的影响。另外,服务提供商网络305还可通过在桌面存储中维护信息,来促进与多个虚拟桌面实例314的客户端交互。在一些实施方案中,如果一个虚拟桌面实例314发生故障,则可以启动新实例,并可以将其附接到相同桌面存储,所述桌面存储先前附接到发生故障的虚拟桌面实例314。

在各种实施方案中,桌面存储可以跨多个服务器分布,出于性能目的,它们可以在不同网络区域的服务器之间复制,或出于备份或故障性能目的,它们可以跨具有独立故障配置文件的多个服务器复制。例如,服务器可附接到不同电源或冷却系统,服务器可定位在数据中心的不同机房中或不同数据中心中,和/或服务器可附接到不同路由器或网络交换机。在一些实施方案中,桌面存储可位于一个存储服务器上,并且对桌面存储进行的改变可复制到不同存储服务器上的另一个桌面存储。此类复制可创建用户的数据的备份副本。如果桌面存储发生故障或虚拟桌面实例314失去其到桌面存储的连接,则pes302可将虚拟桌面实例314的连接从桌面存储切换到备份桌面存储。

如图3所示,pes平台302还可包括中央存储设备(诸如pes存储库340),用于存储由存储服务器307上的各种桌面存储和备份存储所存储的数据。数据中心计算机310和存储服务器307可以还包括促进通信的额外软件或硬件组件,所述额外软件和/或硬件组件包括但不限于负载平衡或负载共享软件/硬件组件,用于选择支持所请求的应用程序的虚拟机的实例且/或向dns名称服务器提供信息以促进请求路由。

如在此示例中所示出的,服务提供商计算机网络305可包括用户配置文件存储308。用户配置文件存储308可用于存储,例如,在用户使用虚拟桌面实例314时用户可以访问的各种程序。所存储的用户配置文件还可指出与不同用户的远程计算会话相关联的最大时间或费用。pes平台302可在放置、配置和/或管理虚拟桌面实例314时将用户配置文件考虑在内。pes平台302也可包括,或连接到,虚拟桌面图像存储309。虚拟桌面图像存储309可包括操作系统的未按照用户配置文件应用自定义的模板映像。

在一些实施方案中,数据中心计算机310和存储服务器307可被认为是按逻辑分组的,而不管组件或组件的某些部分是否在物理上是分开的。例如,服务提供商计算机网络305可在分开的位置提供虚拟桌面实例314和存储组件。另外,尽管数据中心计算机310在图3中被示为与pes平台302逻辑相关联,但是,数据中心计算机310可以以最适合其用户的各种人口统计特征的方式进行地理分布。另外,相关领域的技术人员将认识到,服务提供商计算机网络305可以与各种额外的计算资源相关联,此类额外的计算设备用于管理内容和资源等。例如,服务提供商计算机网络305(和/或在其上实现的各种虚拟桌面实例314)可被配置为通过通信网络304或通过另一个通信网络与其他网络实体320进行通信(例如,虚拟桌面实例314中的至少一些可包括可用于访问一个或多个其他网络实体320的网络接口,所述网络接口是与可用于跟客户端计算设备306进行通信的网络接口分开和不同的)。这些其他网络实体320可包括,例如,其他客户网络或其计算设备、提供用于满足从客户端计算设备306接收到的请求的资源的计算系统、和/或通过互联网访问其他服务、应用程序、或数据的网络或其计算设备。

在一些实施方案中,可基于各种情景来确定与用户或客户端计算设备相关联的处理要求。在一些实施方案中,所述确定可基于在启动远程计算应用程序330时的用户请求。例如,可以向用户呈现显示资源和应用程序的各种选项的图形用户界面(gui)。然后,用户可选择他们希望访问的应用程序、或可替代地选择那些应用程序的版本。例如,一个用户可能希望访问应用程序的基本版本,而另一个用户可能希望访问相同应用程序的专业版本。所述确定还可基于如由与用户相关联的实体的管理员所确定的、为某些用户预先选择的选项。例如,可作为用户可能希望访问的不同的应用程序包的列表,向用户呈现预先选择的选项。在一些情况下,可根据用户的历史使用数据作出该确定,一旦从用户那里接收到请求,pes平台302就可作出确定。在其他情况下,一旦发起远程计算会话,处理要求的确定可基于对用户的过程使用进行的实时监测。在此类情况下,对适当资源实例的选择可在建立会话之后动态改变,并且动态地更换为新实例的动作可如上文参考图3所描述的那样执行。在一些实施方案中,远程计算应用程序330可请求代表客户端打开虚拟桌面会话,响应于此,可以实例化虚拟桌面实例314,将其配置供客户端使用,和/或通过网络304连接到客户端计算设备306(例如,经由虚拟桌面实例314的两个网络接口中的一个)。

在一些实施方案中,实现vm和vmm的服务提供商网络可使用互联网协议(ip)隧道技术,以便通过网络底层,在提供商网络内的不同主机上的客户端资源实例之间,封装并路由客户端数据包。提供商网络可包括物理网络底层,所述物理网络底层包括联网设备,诸如路由器、交换机、网络地址转换器(nat)等以及各设备之间的物理连接。提供商网络可采用ip隧道技术来提供覆盖网络,经由所述覆盖网络,已封装的数据包(即已经用覆盖网络元数据标记的客户端数据包,所述元数据包括但不限于用于通过覆盖网络路由的覆盖网络地址信息)可经由隧道或覆盖网络路线,通过网络底层传递。ip隧道技术可提供用于在网络底层上创建覆盖网络的映射和封装系统,并且可为覆盖网络层(公共ip地址)和网络底层(专用ip地址)提供单独的命名空间。在至少一些实施方案中,可对照映射目录检查覆盖网络层中的已封装数据包,以便确定其隧道底层目标(专用ip地址)应当是什么。ip隧道技术可提供覆盖在物理网络底层上的虚拟网络拓扑;呈现给客户端的接口(例如,服务api)附接到覆盖网络,使得当客户端资源实例提供数据包将被发送到的ip地址时,通过与可确定ip覆盖地址位于何处的映射服务进行通信,ip地址在虚拟空间中被启用。图4中示出了覆盖网络技术的示例性使用,并在下文中进行详细描述。

在各种实施方案中,主机上的客户端资源实例可根据有状态协议(诸如传输控制协议(tcp))和/或根据无状态协议(诸如用户数据报协议(udp))与同一主机或不同主机上的其他客户端资源实例进行通信。然而,客户端数据包由发送方vmm根据覆盖网络协议来封装,而由接收方vmm来解封。主机上的vmm,在接收到来自该主机上的客户端资源实例的并且发往另一客户端资源实例的ip地址的客户端数据包(例如,tcp或udp数据包)之后,根据覆盖网络(或ip隧道)协议,封装或标记客户端数据包,并将已封装数据包发送到覆盖网络上,以进行传递。然后,已封装数据包可根据ip隧道技术,经由覆盖网络,路由到另一vmm。另一vmm将覆盖网络封装从数据包剥离,并将客户端数据包(例如,tcp或udp数据包)递送到主机上的实现目标客户端资源实例的适当vm。换言之,在一些实施方案中,尽管在服务提供商计算环境(例如,服务提供商数据中心)中可能存在单个基础物理网络,但是,本文所描述的封装可允许其看起来好像每个客户端应用程序(或一个或多个客户端应用程序在其上执行的每个客户端资源实例)都正在其自身虚拟网络上运行(例如,多个客户端应用程序的数据包可在相同物理网络上行进,但可能看起来好像发往每个客户端应用程序的流量都在专用网络上行进)。

在一些实施方案中,覆盖网络可以是根据无连接(或无状态)ip协议实现的无状态网络。在一些此类实施方案中,发送方vmm将已封装数据包发送到覆盖网络上用于进行路由和递送,但不接收有关数据包的递送的确认(ack)或其他响应。在其他实施方案中,vmm可接收有关已封装数据包的递送的ack或其他响应。

图4示出了根据至少一些实施方案的示例性数据中心(例如,使用ip隧道技术在网络底层上实现覆盖网络的数据中心)。如在此示例中所示出的,提供商数据中心400可包括网络底层,所述网络底层包括联网设备412,诸如路由器、交换机、网络地址转换器(nat)等。至少一些实施方案可采用互联网协议(ip)隧道技术来提供覆盖网络,可使用隧道,经由所述覆盖网络,通过网络底层410,来传递已封装数据包。ip隧道技术可提供用于在网络(例如,图4的数据中心400中的本地网络)上创建覆盖网络的映射和封装系统,并且可为覆盖层(公共ip地址)和网络底层410层(专用ip地址)提供单独的命名空间。可对照映射目录(例如,由映射服务430提供)检查覆盖层中的数据包,以确定它们的隧道底层目标(专用ip地址)应该是什么。ip隧道技术提供虚拟网络拓扑(覆盖网络);呈现给客户端的接口(例如,服务api)附接到覆盖网络,使得当客户端提供客户端想要将数据包发送到的ip地址时,通过与知道ip覆盖地址位置的映射服务(例如,映射服务430)进行通信,ip地址在虚拟空间中被启用。

在至少一些实施方案中,ip隧道技术可将ip覆盖地址(公共ip地址)映射到底层ip地址(专用ip地址),将数据包封装在两个命名空间之间的隧道中,并且经由隧道将数据包递送到正确端点,在该端点处,封装从数据包剥离。在图4中,示出了从主机420a上的虚拟机(vm)424a到中间网络440上的设备(例如,计算系统470、本地网络450上的计算系统452、或数据中心46)的示例性覆盖网络隧道434a、以及主机420b上的vm424b与主机420a上的vm424a之间的示例性覆盖网络隧道434b。在一些实施方案中,可在发送之前以覆盖网络数据包格式封装数据包,并且可在接收到之后剥离覆盖网络数据包。在其他实施方案中,替代以覆盖网络数据包形式封装数据包,可在发送之前将覆盖网络地址(公共ip地址)嵌入在数据包的底层地址(专用ip地址)中,并且在接收到之后将覆盖网络地址从数据包地址剥离。作为示例,可使用32位ipv4(第四版互联网协议)地址作为公共ip地址来实现覆盖网络,而ipv4地址可作为在底层网络上作为专用ip地址使用的128位ipv6(第六版互联网协议)地址的一部分来嵌入。

其中可实现本文所描述的用于管理虚拟桌面实例的资源的技术的实施方案的至少一些网络可包括硬件虚拟化技术,该技术使得多个操作系统能够同时在主计算机(例如,图4的主机420a和420b)上运行(即作为主机420上的虚拟机(vm)424)。vm424(其中一些可被配置为实现虚拟桌面实例,以供客户端使用)可例如租赁给网络提供商的客户。主机420上的管理程序或虚拟机监视器(vmm)422可用作主机420上的vm424和/或其他虚拟化资源实例的实例管理器,其可包括给主机上的vm424呈现虚拟平台,并监测vm424的执行。在一些实施方案中,本文所描述的用于检测虚拟桌面实例上的活动或不活动、监测和跟踪与各种虚拟桌面实例的连接,断开连接以及重新连接以及确定是否和/或何时关闭底层虚拟化计算资源的技术可以由vmm422来执行。每个vm424可设置有一个或多个专用ip地址;主机420上的vmm422可以知道主机上的vm424的专用ip地址。映射服务430可以知道路由器或在本地网络上提供ip地址的其他设备的所有网络ip前缀和ip地址。这包括服务于多个vm424的vmm422的ip地址。映射服务430可例如集中在一个服务器系统上,或可替代地可分布在网络上的两个或更多个服务器系统或其他设备之间。网络可使用例如映射服务技术和ip隧道技术,以例如在数据中心400网络内的不同主机420上的vm424之间路由数据包;需注意,可使用内部网关协议(igp)在这种本地网络内交换路由信息。

此外,诸如提供商数据中心400网络之类的网络(有时称为自治系统(as))可使用映射服务技术、ip隧道技术和路由服务技术,来将数据包从vm424路由到互联网目的地,以及从互联网源路由到vm424。需注意,外部网关协议(egp)或边界网关协议(bgp)通常用于在互联网上的源与目的地之间进行互联网路由。图4示出了根据至少一些实施方案的实现网络的示例性提供商数据中心400,所述网络提供资源虚拟化技术并且通过连接到互联网转接提供商的边缘路由器414,提供完全互联网访问。提供商数据中心400可例如使得客户端能够通过硬件虚拟化服务(诸如图2中的硬件虚拟化服务220)实现虚拟计算系统(vm424),并且能够通过存储虚拟化服务(诸如图2中的存储虚拟化服务210)在存储资源418上实现虚拟化数据存储416。

在一些实施方案中,数据中心400网络可实现ip隧道技术、映射服务技术和路由服务技术,以路由来往于虚拟化资源的流量,例如将数据包从数据中心400中的主机420上的vm424路由到互联网目的地,以及从互联网源路由到vm424。互联网源和目的地可包括例如连接到中间网络440的计算系统470和连接到本地网络450的计算系统452,本地网络450连接到中间网络440(例如,通过将网络450连接到互联网转接提供商的边缘路由器414)。提供商数据中心400网络还可在数据中心400中的资源之间路由数据包,例如从数据中心400中的主机420上的vm424路由到同一主机或数据中心400中的其他主机420上的其他vm424。在一些实施方案中,至少一些vm424可包括两个或更多个网络接口。例如,它们可包括可用于在vm424与提供商代表其托管vm424的客户端之间的通信的一个网络接口、以及可用于访问在除提供商网络和客户网络之外的网络上的外部资源、计算系统、数据中心、或互联网目的地的第二(分开和不同的)网络接口,所述提供商网络和客户网络中的任一个或两者可采用ip隧道技术,如本文所描述的。

提供数据中心400的服务提供商还可提供另外的数据中心460,所述另外的数据中心460包括类似于数据中心400的硬件虚拟化技术并且也可连接到中间网络440。数据包可从数据中心400转发至其他数据中心460,例如从数据中心400中的主机420上的vm424转发至另一个类似数据中心460中的另一个主机上的另一个vm,并且反之亦然。

虽然上文描述了使得多个操作系统能够作为主机上的虚拟机(vm)同时在主计算机上运行的硬件虚拟化技术,其中vm可租赁给网络提供商的客户,但是,硬件虚拟化技术还可用于以类似方式将其他计算资源(例如,存储资源418)作为虚拟化资源提供给网络提供商的客户。

注意,公共网络广义上可定义为向多个实体提供开放访问并且在多个实体之间提供互连性的网络。互联网或万维网(www)是公共网络的示例。共享网络广义上可定义为访问仅限于两个或更多个实体的网络,其不同于访问通常不受限的公共网络。共享网络可包括例如一个或多个局域网(lan)和/或数据中心网络,或互连以形成广域网(wan)的两个或更多个lan或数据中心网络。共享网络的示例可包括但不限于公司网和其他企业网。共享网络的范围可以介于覆盖局部地区的网络到全球网络之间。需注意,共享网络可与公共网络共享至少一些网络基础设施,并且共享网络可联接到一个或多个其他网络,所述一个或多个其他网络可包括公共网络,在其他网络与共享网络之间的访问受控。与公共网络(诸如互联网)相比,共享网络也可被视为专用网络。在各实施方案中,无论是共享网络还是公共网络都可用作提供商网络与客户网络之间的中间网络,或提供商网络与其他网络实体(例如,除提供商网络和提供商代表其托管vm424的客户网络之外的网络上的外部资源、计算系统、数据中心、或互联网目的地)之间的中间网络。

在一些实施方案中,尽管存在执行本文所描述的客户端应用程序和其他进程的物理计算机,但是,客户端应用程序可作为虚拟机在物理计算机上运行。例如,云计算环境的内部进程可在云计算环境中的控制平面层(或管理程序)中执行,所述云计算环境的内部进程被配置为管理这些虚拟机的创建、为这些虚拟机提供资源、和/或代表客户端和/或其应用程序执行其他管理任务(例如,监测资源使用、顾客记账、服务计费等)。相比之下,客户端应用程序(例如,实现应用程序组件的每个资源实例)可在云计算环境的数据平面层中执行。在这些层下面,在一些实施方案中,对于每个主机节点(或对于多个主机节点)可能仅存在一个物理网络卡,但每个资源实例都可执行,好像它具有其自己的网络(例如,虚拟网络)。在一些实施方案中,每个资源实例都可具有其自己的数据平面网络连接,但可进行本地api调用(例如,对同一节点上的组件的调用),而不需要依赖这些数据平面网络连接。

在一些实施方案中,顾客可具有在本地机器上运行的应用程序,但可提供云计算环境中的资源实例,以便在本地机器发生故障的情况下使用。在一些实施方案中,多个资源实例可在云计算环境中执行,以便代表客户端实现分布式应用程序。在不同实施方案中,云计算环境可以是其中每个应用程序(和/或每个虚拟专用网络)都可具有其自己的命名空间的多租户环境。在一些实施方案中,每个客户端都可具有其自己的分配的网络连接和/或吞吐能力(带宽)。例如,可提供(例如,指定或保留)数据平面网络中的网络连接和/或吞吐能力,以供各种客户端使用。

在各种实施方案中,虚拟计算服务的提供商可在提供商网络上为至少一些客户实现专用网络。例如,服务提供商网络上的客户的虚拟专用网络可以使客户能够将其客户网络上的其现有基础设施(例如,客户端设备)连接到一组逻辑上隔离的资源实例(例如,vm和存储设备或卷),并扩展诸如安全服务、防火墙和入侵检测系统等管理功能以包含其资源实例。在一些实施方案中,客户的虚拟化专用网络可通过专用通信信道,连接到客户网络。专用通信信道可以是例如根据网络隧道技术或通过中间网络的其他对等连接实现的隧道。中间网络可以是例如共享网络或公共网络(诸如互联网)。或者,可以通过虚拟专用网络和客户网络之间的直接专用连接来实现专用通信信道。

为了在提供商网络上为客户建立虚拟专用网络,可以将一个或多个资源实例(例如,vm存储设备或卷)分配给虚拟专用网络。请注意,其他资源实例可以在提供商网络上保持可用,以供其他客户端使用。还可将一个公共ip地址范围分配给虚拟化专用网络。此外,还可将提供商网络的一个或多个联网设备(路由器、交换机等)分配给虚拟化专用网络。可以在虚拟专用网络处的专用网关和客户网络处的网关之间建立专用通信信道。在至少一些实施方案中,除了或替代专用网关,虚拟化专用网络可包括公共网关,所述公共网关使得虚拟化专用网络内的资源能够通过中间网络(代替或除了通过专用通信信道)与其他实体(例如,网络实体)直接进行通信,并且反之亦然。在一些实施方案中,虚拟专用网络可以但并非必须细分为两个或更多个子网(未示出)。在其他实施方案中,一个或多个vm可以被配置为通过专用网关(例如,经由被配置用于在vm和客户端设备之间进行通信的网络接口),通过专用通信信道访问客户网络,并通过公共网关,通过备用通信信道,来访问其他网络实体。

在一些实施方案中,客户可以将特定客户端公共ip地址分配给虚拟专用网络中的特定资源实例。然后,中间网络上的网络实体可以将流量发送到由客户端发布的公共ip地址;流量可以由提供商网络路由到相关联的资源实例。从资源实例返回的流量可由提供商网络通过中间网络路由回网络实体。需注意,在资源实例与网络实体之间路由流量可能需要进行网络地址转换,以在资源实体的公共ip地址与专用ip地址之间进行转换。至少一些实施方案可以允许客户将客户的虚拟专用网络中的公共ip地址重新映射到客户外部网络上的设备。当接收到数据包(例如,来自网络实体)时,网络可以确定数据包所指出的目的地ip地址已经被重新映射到外部网络上的端点,并且通过专用通信信道、备用通信信道或中间网络,来处理数据包到相应端点的路由。响应流量可通过提供商网络从端点路由到网络实体,或可替代地可由客户网络直接路由到网络实体。从网络实体的角度来看,可能看起来好像网络实体正在与提供商网络上的客户端的公共ip地址进行通信。但是,网络实体实际上可能正在与客户网络上的端点进行通信。

虚拟桌面实例的基于连接的资源管理

在各种实施方案中,服务提供商可采用上文所描述的一个示例性提供商网络(或另一合适的提供商网络环境),以便实现云计算环境中的托管的桌面服务。在此类实施方案中,顾客可访问云计算环境中的提供商网络,以便请求云中的一个或多个虚拟桌面实例的实例化和/或配置,并且可随后向一个或多个最终用户提供对那些虚拟桌面实例的访问(例如,通过客户端应用程序)。例如,组织或企业内的管理员可以在服务提供商处建立账户,可以与服务提供商签约以建立一定数量的虚拟桌面实例,并且(一旦建立了虚拟桌面实例),可以提供用于访问这些虚拟桌面实例的凭证。在此示例中,一旦已经建立虚拟桌面实例并且已经提供凭证,一个或多个最终用户可在其客户端设备(例如,计算机、平板设备,或其他移动设备)上启动客户端应用程序,并且输入虚拟桌面实例的凭证,在这之后他们可登录到虚拟桌面环境中。尽管虚拟桌面环境由云计算环境中的虚拟化资源实例来实现,但是,可能在最终用户看来好像它是本地桌面,并且它可能操作起来好像它是用户连接到的独立计算机。在一些实施方案中,虚拟桌面环境可提供对生产力软件和其他软件程序的访问,就好像用户登录到组织或企业所拥有的物理计算机中,用户通常将访问生产力软件和其他软件程序那样。

在一些实施方案中,这些虚拟桌面实例可替换台式计算机,例如,虚拟桌面运行的软件程序与组织或企业(代表其实例化和配置虚拟桌面)的成员将在位于办公室环境中的台式计算机上访问的软件程序相同(例如,执行最终用户生产力任务的应用程序)。注意,这些应用程序可能是或也可能不是独立式应用程序。例如,在一些情况下,每个虚拟桌面实例(和/或在其上运行的应用程序)都可以是组织或企业的活动目录框架的一部分,并且一旦在用户登录到虚拟桌面实例时由用户呈现的凭证被认证,就可以能够访问组织或企业的现有网络上的共享文件或其他资源。

在本文所描述的系统的一些实施方案中,在有客户端连接到虚拟桌面实例时,以及没有客户端连接到虚拟桌面实例时,计算资源实例管理器(或服务提供商网络上的另一组件)可以实现本文所描述的用于管理实现虚拟桌面实例的资源的一些或全部技术。在一些实施方案中,这些技术可以包括智能地丢弃未连接的会话(例如,关闭用于虚拟桌面实例的底层计算资源实例),同时在未算入底层计算资源实例的存储卷中维护虚拟桌面实例的数据)。这可以允许服务提供商更有效地管理其资源(例如,如果容量紧张,或者仅仅是为了避免未被使用的资源产生费用)。在一些实施方案中,当连接或重新连接到虚拟桌面实例时,本文所描述的系统可以向客户提供高度的可用性并且提供良好的客户(和/或最终用户)体验,同时允许服务提供商在资源没有被使用(例如,当客户或最终用户未连接时)回收资源。如本文更详细地描述的,在一些实施方案中,服务提供商可以实现基于连接和/或“时间段”的方法来管理用于虚拟桌面实例的资源,这可以或可以不延续到其为那些虚拟桌面实例向客户计费的方法中。

在一些实施方案中,当服务提供商(或服务提供商网络上的计算资源实例管理器)检测到没有用户连接到特定虚拟桌面实例时,服务提供商(或计算资源实例管理器)可以在某一不活动的分钟数(根据可配置和/或预定义的阈值)之后,关闭底层计算资源实例。如前所述,当计算资源实例关闭时,虚拟桌面实例的存储卷可能仍然被维护,但可以与虚拟桌面实例和计算资源实例分离(卸载)。在一些实施方案中,如果用户重新连接到先前被关闭的虚拟桌面实例,则服务提供商(或计算资源实例管理器)可以启动计算资源实例并附接适当的存储卷(例如,按需)。

在一些实施方案中,服务提供商(或计算资源实例管理器)可以跟踪每个虚拟桌面实例何时“正在使用中”,这意味着客户(例如,服务提供商客户组织中的最终用户)登录/连接(例如通过客户端)到虚拟桌面实例。服务提供商(或计算资源实例管理器)可以测量用户连接的时间量(例如,以小时长度为单位的时间段的数量),而不管他们是否实际使用资源来执行任务,以及虚拟工作空间处于活动状态,但用户未连接到虚拟桌面实例的时间量(例如,以小时长度为单位的时间段的数量)。在一些实施方案中,对于用户已连接的时间段,以及虚拟工作空间活动,但是用户没有连接到虚拟桌面实例的时间段,向客户组织收费的方式不同(例如,收取不同的金额)。在一些实施方案中,只有当连接是从客户端断开的时,虚拟桌面实例才可以被认为是断开的(并且其底层计算资源实例符合被关闭条件)。在其他实施方案中,可以认为虚拟桌面实例由于不活动而被有效地断开。

在图5中通过流程图示出了管理虚拟桌面实例的资源的方法的一个实施方案。如510所示,在该示例中,方法可以包括(在服务提供商处)代表客户或特定最终用户接收来自客户端的连接到虚拟桌面实例的请求(例如登录到虚拟桌面实例的请求)。如520所示,方法可以包括服务提供商(例如,服务提供商网络上的资源管理逻辑)为虚拟桌面实例提供计算资源和存储资源(如果尚未提供的话)。例如,如果这是第一次接收到虚拟桌面实例的登录请求,则服务提供商可能需要提供和配置虚拟化计算资源和/或存储资源以实现虚拟桌面实例。如530所示,方法还可以包括启动虚拟桌面实例(例如,引导底层计算资源并附接用于虚拟桌面实例的存储资源),并在虚拟桌面实例上启动虚拟桌面会话。

如该示例所示,在稍后的某个时间点,方法可以包括接收来自客户端的与虚拟桌面实例断开连接的请求,如540所示。如550所示,方法可以包括服务提供商根据资源管理策略,在客户端断开连接之后关闭用于虚拟桌面实例的计算资源(但不一定立即)。例如,资源管理策略可以包括指定用于关闭虚拟桌面实例的计算资源的标准的策略(例如,指定它们应当在断开连接后两小时关闭或者仅在下午7点到早上7点之间关闭)。在稍后的某个时间点,方法可以包括接收来自客户端的重新连接到虚拟桌面实例的请求,如560所示。例如,该请求可以与先前的连接请求来自同一机器上的客户端,或来自最终用户用来访问虚拟桌面实例的另一机器上的客户端。响应于重新连接请求,方法可以包括重启虚拟桌面实例的计算资源,并在虚拟桌面实例上启动新的虚拟桌面会话,如570所示。注意,在一些实施方案中,随着代表客户或特定最终用户接收到与虚拟桌面实例断开连接和重新连接的额外请求,可以重复540-570中所示的操作。

在各种实施方案中,服务提供商(或计算资源实例管理器)可以采用不同的机制来确定是否存在到特定虚拟桌面实例的连接。例如,在一些实施方案中,服务提供商(或计算资源实例管理器)可以测量流经网络接口的通信流量的字节数(或速率),以确定用户是否正在使用虚拟桌面实例。在一些实施方案中,流式传输协议包括双向通信信道,而服务提供商可以向客户端设备发送代表像素输出的信息。在此示例中,如果用户正在观看视频,则该像素数据可能具有非常高的变化率。服务提供商也可以从客户端那里获得返回的信息(例如,鼠标点击和键盘输入),即使它们是加密的,其也可以提供用于确定虚拟桌面实例上的活动或不活动的统计信息。在此示例中,服务提供商(或计算资源实例管理器)可以查看关于数据包的总数、它们被传送的量等的启发,并且可以确定所观察到的流量的模式或特性是否匹配已知的(或先前观察到的)虚拟桌面实例上的活动或不活动的模式或特征。如果它与已知的(或先前观察到的)不活动的模式或特征相匹配,则可以认为虚拟桌面实例有效地断开连接,并且其底层计算资源实例可能有资格关闭(根据适用的关闭策略)。在其他实施方案中,当建立虚拟桌面会话时,可以为该会话建立会话网关。例如,会话网关组件可以为一个或多个虚拟桌面会话提供隧道,并且可以检测这些会话何时被丢弃或以其他方式终止。在一些实施方案中,在特定虚拟桌面实例上活动会话的存在或不存在(如由会话网关检测到的)可以提供客户端是否连接到虚拟桌面实例的清晰画面。

更具体地,在一些实施方案中,如果在检测过程中用户在虚拟桌面实例上具有登录会话,则可以认为用户连接到虚拟桌面实例(例如,在虚拟桌面实例上具有活动会话)。在一些实施方案中,服务提供商系统可以支持多种协议,其中的每一种协议都使用不同的机制来检测活动会话。在一个示例中,如果系统支持pcoip协议,则每个虚拟桌面实例都可以包括能够从虚拟桌面实例流式传输屏幕像素的软件代理。在本示例中,代理可以支持两种登录方法:标准模式和控制台模式。该代理可以每秒钟发出一次会话统计信息,其中一项信息是表示以秒为单位的会话持续时间的属性。当会话开始时,此属性从零转换为非零值,而当pcoip会话关闭时从非零值转换为零。虚拟桌面实例上的第二软件代理可以公开api,可以通过该api获取该信息,以确定在特定虚拟桌面实例上是否存在活动会话。在一些实施方案中,该api可以由监测服务定期调用,并且可以将检索到的数据提供给用户或客户组织。

在另一示例中,如果系统支持webrtc协议,则每个虚拟桌面实例都可以包括代理,该代理能够从虚拟桌面实例流式传输屏幕像素。该代理可以创建管道以实现webrtc代理和第二软件代理之间的进程间通信。webrtc代理可以发出与用户的虚拟桌面实例和虚拟桌面实例上的活动会话的健康状况相关的消息。第二代理可以附接到管道、读取这些消息、并响应由监视服务进行的api调用,以确定用户的虚拟桌面实例的健康状态和/或活动会话的存在(或不存在)。

在又一示例中,如果系统支持rdp协议,则用户可以从客户的虚拟专用云登录到虚拟桌面实例中。在此示例中,可以支持两种登录方法:标准模式和控制台模式。每个虚拟桌面实例上的代理都可以查询操作系统级别的审计账户,以检测连接(登录)和断开连接(注销)尝试(事件)。这些事件的登录类型可用于区分控制台模式和标准模式。注意,在服务提供商系统支持多种协议(诸如本文所述的三种协议)的一些实施方案中,该代理可以充当各种监测服务的单一联系点。在这样的实施方案中,该代理还可以执行被描述为由其他两个协议中的“第二软件代理”执行的功能。

在图6中通过流程图示出了用于检测客户端已经与虚拟桌面实例断开连接(或者已经通过不活动有效地从虚拟桌面实例断开连接)的方法的一个实施方案。如在610处所示,在该示例中,方法可以包括客户端连接到由服务提供商资源代表最终用户实现的虚拟桌面实例。在一些实施方案中,方法可以包括服务提供商的代理(例如,在服务提供商资源上实现的逻辑)开始监测客户端和实现虚拟桌面实例的资源之间的通信信道(例如,双向通信信道),如620所示。如630所示,方法可以包括代理收集关于发送的数据包数量、数据包发送速率和/或其他活动指示符和启发的信息。

如该示例所示,如果服务提供商网络上的网关组件在任何时刻检测到明确的断开连接(例如,通过检测到虚拟桌面会话已经结束,被示为对640的肯定回答),或者如果在任何时刻,代理确定所收集到的数据包信息指出不活动(被示为对650的肯定回答),则该方法可以包括服务提供商应用一个或多个策略来确定是否以及何时关闭虚拟桌面实例的计算资源以响应明确的断开连接或明显不活动(如660所示)。在一些实施方案中,代理可监测双向流式传输数据,并将观察到的流量模式与已知或先前观察到的活动或不活动模式进行比较,以确定最终用户是否正在积极地使用虚拟桌面实例。

如该示例所示,直到并且除非检测到这些条件中的任一条件,该方法可以包括代理继续收集关于传输的数据包数量、数据包传输速率和/或其他活动指示符和启发的信息和/或网关组件正在监测明确的断开连接的指示。这在图6中通过从对640的否定的回答到650以及从对650的否定的回答到630的路径来示出。注意,在至少一些实施方案中,网关组件和服务提供商机器上的代理可以并行操作。还要注意的是,在一些实施方案中,服务提供商可以实现网关组件(诸如此处描述的网关组件)或者监测通信信道的代理,但不能同时实现这两个组件。一般而言,在各种实施方案中,本文所描述的系统可以实现比本文所描述的机制更多、更少或不同的机制,用于检测客户端已经从虚拟桌面实例断开或者已经通过不活动而有效地从虚拟桌面实例断开。

如本文所描述的,在本文所描述的系统的一些实施方案中,服务提供商(或计算资源实例管理器)可以应用某些智能和/或机器学习,以便响应于客户端的断开来决定是否和/或何时关闭虚拟桌面实例的计算资源实例。在一些实施方案中,这样的决定可以取决于基于时间的关闭标准。例如,关闭标准可以指定在底层计算资源实例关闭之前客户端必须与虚拟桌面实例断开连接的时间长度。在另一示例中,关闭标准可以指定在上午8点至下午6点之间不关闭计算资源实例,即使用户从虚拟桌面实例断开,或者可以指定在这段时间内在断开连接后到关闭计算资源实例之前存在更长的时间阈值。

本文所描述的系统的一些实施方案可以支持使用客户定义的资源管理策略,其可以包括客户定义的关闭策略。这可以允许客户(或客户组织内的最终用户)更多地控制用于向客户提供服务的资源的状态。例如,在一些实施方案中,服务提供商客户组织内的it管理员可能能够指定响应于从虚拟桌面实例断开连接,何时以及是否应该关闭计算资源实例的标准。

在一些实施方案中,可以由it管理员为代表其最终用户托管的虚拟桌面设置关闭优选项。在一个示例中,it管理员可以定义策略,该策略指定用于虚拟桌面实例的计算资源应当在最终用户断开连接两小时之后关闭(例如,因为it管理员不希望在不使用虚拟桌面实例的时间段内为虚拟桌面实例支付高费用)。能够指定计算资源实例在断开连接后应该继续运行多长时间可以允许it管理员给予最终用户断开连接、参加在不同的房间进行的会议,并重新连接的余地,而不必在这些事情之间关闭计算资源实例。在另一示例中,大学里的不信任学生使用虚拟桌面实例(以及底层计算资源实例)的it管理员可以通过为断开之后关闭计算资源实例设置短阈值来严格控制他们。在其他实施方案中,it管理员可以将对资源的至少一些控制委托给他们的最终用户。例如,it管理员可以允许至少一些最终用户为他们自己的虚拟桌面实例定义关闭策略或关闭标准。在一些实施方案中,资源管理策略或关闭策略可以明确地定义用于关闭虚拟桌面实例的计算资源实例的时间表。例如,如果最终用户预先知道他们何时将连接到虚拟桌面实例和/或从虚拟桌面实例断开连接,则最终用户可以定义用于关闭和/或重新启动虚拟桌面实例的计算资源实例的时间表。

在图7中通过流程图示出了通过应用一个或多个关闭策略来确定是否和/或何时关闭用于虚拟桌面实例的计算资源实例的方法的一个实施方案。在此示例中,服务提供商系统可以支持由客户组织(代表其实例化虚拟桌面实例)的it管理员和/或由最终用户指定关闭标准。例如,服务提供商可以允许it管理员为他们的组织选择或设置关闭策略和/或将关闭策略的选择或设置委派给单个最终用户(例如,针对代表他们实现的特定虚拟桌面实例)。如710所示,在该示例中,方法可以包括服务提供商(或者在服务提供商网络上实现的资源管理逻辑)确定客户端已经与由服务提供商网络上的计算和存储资源实例实现的虚拟桌面实例断开连接。

如果最终用户已经指定了关闭策略(被示为对720的肯定回答)或者如果客户组织的it管理员已经指定了关闭策略(被示为对730的肯定回答),则该方法可以包括服务提供商应用这些政策。例如,最终用户或it管理员可能已经定义了一个或多个条件,在该(这些)条件下,虚拟桌面实例的底层计算资源实例应该在断开连接之后关闭。如果最终用户和客户组织的it管理员都没有指定关闭策略(被示为对720和730的否定回答),则该方法可以包括服务提供商应用服务提供商的一个或多个默认关闭策略,如740所示。

如此示例所示,如果适用的关闭策略指定不应该关闭(例如,虚拟桌面实例的计算资源实例在合约期限内不应该被关闭,或者它们不应该响应于客户端的断开而被关闭),该方法可以包括服务提供商使虚拟桌面实例的计算资源实例保持活动状态。这在图7中通过从对750的肯定的回答到780的路径来示出。如果适用的关闭标准被满足(被示为对760的肯定回答),则方法可以包括关闭虚拟桌面实例的计算资源实例,如790所示。

在一些实施方案中,如果不符合适用的关闭标准,但是适用的关闭标准是基于时间的(例如,如果适用的策略指定仅在客户端断开连接之后已经过去了预定的时间段,或者仅在一天中的特定时间,关闭虚拟桌面实例的计算资源实例,则该方法可以包括在关闭计算资源实例之前等待基于时间的准则被满足。这在图7中通过对760的否定的回答,以及从对770的肯定的回答到760的反馈来示出。在这种情况下,一旦基于时间的标准被满足,该方法可以包括关闭虚拟桌面实例的计算资源实例,如790所示。

另一方面,如果不符合适用的关闭标准(被示为对760的否定回答)并且适用的关闭标准不是基于时间的(被示为对770的否定回答),则该方法可以包括服务提供商使虚拟桌面实例的计算资源实例保持活动状态,如780所示。注意,在其他实施方案中,在这些类型的关闭策略中,系统可能不能支持全部(例如,它可能不支持关闭策略的层次结构),或可能支持更多,更少或不同的机制来确定是否和/或何时关闭虚拟桌面实例的计算资源实例。

如本文所描述的,在一些实施方案中,服务提供商(或计算资源实例管理器)可以跟踪用户何时连接到虚拟桌面实例以及何时用户与虚拟桌面实例断开连接,并且可以识别虚拟桌面实例的使用模式(新模式、常用模式或先前观察到的模式)。这些模式又可用作构建用于关闭和重新启动计算资源实例的预测模型的输入(例如,基于最终用户或全客户端组织范围内),其目标是在用户尝试连接时,绝不让用于虚拟桌面实例的计算资源实例处于关闭状态和/或使虚拟桌面实例的计算资源实例带有连接运行而不是没有连接运行的时间量(例如,小时数或百分比)最大化。在一些实施方案中,由服务提供商(或计算资源实例管理器)收集到的信息也可以用作计费机制的输入,如本文所述。例如,在一些实施方案中,与虚拟桌面实例的连接和/或与虚拟桌面实例的断开都可以触发各种类型的计费事件。

在一个示例中,服务提供商(或计算资源实例管理器)可以在收集到的数据中识别用户通常在整个工作日频繁重新连接的模式。在该示例中,即使用户从虚拟桌面实例断开,服务提供商(或计算资源实例管理器)也可以使计算资源实例保持活动状态(例如,直到6:00)。在另一示例中,如果服务提供商(或计算资源实例管理器)在收集到的数据中识别出用户每天只断开连接一次,在一天的其余时间不重新连接的模式,则当用户从虚拟桌面实例断开连接时,服务提供商(或计算资源实例管理器)可以立即关闭该虚拟桌面实例的计算资源实例。

在一些实施方案中,服务提供商(或计算资源实例管理器)可以基于所收集到的数据,基于观察到的使用模式,来生成用于执行预测(主动)关闭和/或重新启动的模型。例如,如果服务提供商(或计算资源实例管理器)确定(例如通过查看连接日志)特定用户通常在上午9点连接到虚拟桌面实例,保持连接直到他们去吃中午饭(此时他们断开连接),在下午1点重新连接,并保持连接,直到下午5点他们离开办公室(此时他们断开连接),则服务提供商(或计算资源实例管理器)可以基于该模式集,决定预测性地(主动)在每个工作日上午8点(例如用户到达办公室前一小时)启动此虚拟桌面实例,并在每个工作日下午6点关闭该虚拟桌面实例。在此示例中,服务提供商可能不会以基于连接的费率向他们收费,直到他们实际连接(因此服务提供商可能在此情况下承担费用风险),但可能会给用户带来很好的体验,即快速登录,承担点费用风险也是值得的。在此示例中,服务提供商(或者计算资源实例管理器)可以自动关闭计算资源实例,并且可以自动重新启动它,但是用户不知道它被关闭(并且他们的应用程序被关闭),然后为他们重新启动。用户只会知道他们每天都会体验到快速登录。

在一个更复杂的示例中,在某个特定日上午10点连接到虚拟桌面实例的用户可能会参加会议,并且可能不会在下午3点之前重新连接,然后可能会在晚上6点断开连接。在此示例中,用户的连接/断开模式可能会在一天中变化,并且可能每天都不同。在此示例中,任何预测模型都可能会有非常低的置信区间。换句话说,因为该用户的连接/断开模式具有太多可变性,因此,服务提供商(或计算资源实例管理器)可能会陷入没有足够信心采取行动的境地。在该情况下,服务提供商(或计算资源实例管理器)可以应用默认关闭策略(例如,在断开连接之后关闭计算资源实例之前等待两小时,或者等到下午6点之后才关闭计算资源实例),或者可以应用其他一些低置信度的方法,使服务提供商能够回收容量而不必承担风险。注意,在各种实施方案中,服务提供商(或计算资源实例管理器)可以生成并应用关于何时关闭计算资源实例的预测性策略,可以生成并应用关于何时重新启动计算资源实例的预测性策略,或两者都进行。

在图8中通过流程图示出了用于为虚拟桌面实例建立连接和断开连接的预测模型的方法的一个实施方案。如810所示,在该示例中,该方法可以包括代表服务提供商客户提供用于虚拟桌面实例的计算资源实例和存储资源。如820所示,该方法可以包括开始监测并收集关于与虚拟桌面实例的连接和断开连接的数据。例如,这种监测和收集活动可以由服务提供商系统上的逻辑来执行。

该方法可以包括在最近收集到的数据中和/或在较长时间段(例如,许多天、一周和/或多个虚拟桌面会话)内累积的数据,识别虚拟桌面实例的新的和/或常用的使用模式,如830所示。该方法还可以包括至少部分地基于所识别的使用模式,开发或改进虚拟桌面实例的预测使用模型,并且基于该预测使用模型,开发或改进关闭策略,如840所示。例如,预测使用模型可以识别用户被预测连接到虚拟桌面实例的时间(并且在这些时间,底层计算资源实例已经处于活动状态可能是有利的)和/或用户被预测将从虚拟桌面实例断开连接的时间(并且在这些时间,关闭底层计算资源实例可能是安全的)。如该示例所示,当客户仍在租赁虚拟桌面实例时,该方法可以包括持续监测并收集关于与虚拟桌面实例的连接和断开连接的数据(如860所示),并且使用该信息来改进预测使用模型和/或关闭策略(例如,重复如830-840所示的操作)。这在图8中通过860到830的反馈示出。

在一些实施方案中,一旦客户不再租赁虚拟桌面实例(例如,一旦服务合同协议过期,被取消或被修改以使其不包括虚拟桌面实例),该方法可以包括服务提供商解除提供虚拟桌面实例的服务提供商资源。这在图8中通过从对850的肯定的回答到870的反馈来示出。在一些实施方案中,可以将关于所识别的使用模式和/或预测使用模型的信息提供给客户(例如,提供给客户组织内的it管理员和/或最终用户)。

在采用机器学习方法来确定何时以及是否关闭和/或重新启动虚拟桌面实例的计算资源实例的一个实施方案中,机器学习方法可以至少部分地基于这样的适应性函数:该适应性函数寻求避免当客户端请求到虚拟桌面实例的连接时而虚拟化计算资源实例处于关闭状态的情况,和/或基于这样的适应性函数:该适应性函数寻求使虚拟化计算资源实例处于活动状态但没有客户端连接到虚拟桌面实例的时间量最小化。例如,一个适应性函数可以指定在最终用户需要连接到虚拟桌面实例之前,应始终重新启动虚拟桌面实例的计算资源实例(或保持活动)。另一个适应性函数可以指定当没有用户连接到虚拟桌面实例时,用于虚拟桌面实例的计算资源实例处于活动状态的时间长度不超过特定小时数。在这两个适应性函数之间,服务提供商(或计算资源实例管理器)希望能够预测用户何时将要连接,在该时间点之前启动计算资源实例,然后在适当的时候关闭计算资源。

如前所述,在一些实施方案中,当用于虚拟桌面实例的计算资源实例被关闭时(例如根据关闭策略),虚拟桌面实例的所有数据(例如,在虚拟桌面实例上运行的应用程序的)可以继续保持在与计算资源实例相关联的一个或多个存储卷上以供虚拟桌面实例使用,尽管它们可以从计算资源实例分离(卸载)。在这样的实施方案中,当用户重新连接时,可以重启计算资源实例并且可以重新附加(挂载)存储卷,以便供虚拟桌面实例使用。这样,当用户重新连接时,他们的应用程序也可以重新启动。在一些实施方案中,当用户请求重新连接到虚拟桌面实例,但是之前实现(托管)虚拟桌面实例的计算资源实例被关闭时,可以为其他地方的虚拟桌面实例启动新的计算资源实例(例如,与先前的计算资源实例相同类型的实例或另一类型的计算资源实例),并且可以将相同的存储卷附接(挂载)到该新实例。

在图9中通过流程图示出了响应于断开连接和重新连接来管理用于虚拟桌面实例的服务提供商资源的方法的一个实施方案。如910所示,在该示例中,该方法可以包括响应于连接请求,提供并启动用于虚拟桌面实例的计算资源实例,并将一个或多个存储卷附接到计算资源实例。如920所示,该方法可以包括,在稍后的某个时间点,检测到用户已经与虚拟桌面实例断开连接。响应于断开连接(并且根据关闭策略),该方法可以包括从虚拟桌面实例的计算资源实例断开和卸载存储卷,但是继续在服务提供商网络上保持虚拟桌面实例的存储卷,如930所示。该方法还可以包括关闭虚拟桌面实例的计算资源实例,如940所示。

如该示例所示,该方法可以包括,在稍后的某个时间点,检测到用户已经重新连接到虚拟桌面实例,如950所示。响应于重新连接,该方法可以包括重启虚拟桌面实例的计算资源实例(如960所示)并且将存储卷重新附接并重新挂载到虚拟桌面实例的计算资源实例(如970所示)。

在一些实施方案中,例如,当用户请求重新连接到已经关闭了其底层计算资源实例的虚拟桌面实例时,用户可能能够指定虚拟桌面实例被托管在不同的计算资源实例类型上。例如,用户可以决定(并且可以在客户端一侧指出)他们想从标准性能实例移动到更高性能的实例(例如,通过从客户端gui的下拉菜单中选择实例类型)。在一些实施方案中,一旦新选择的计算资源实例已经启动并且被配置为托管虚拟桌面实例,则这可以是在关闭之后用户下一次重新连接的默认实例类型。在其中将在用户连接到虚拟桌面实例的时间段以更高费率对用户进行计费(例如,按小时计)的实施方案中,如果用户知道他们将要执行要求更高性能的任务,他们可以在该时间段内将其虚拟桌面实例的计算资源实例升级到更高性能(并且更昂贵)的实例类型,然后当他们不需要更高性能时,返回到先前的实例类型。相比之下,如果向用户按月收费,而不管他们连接到虚拟桌面实例的时间长短,或者是否与虚拟桌面实例断开连接,则他们可能希望使其虚拟桌面实例的高性能计算资源实例整个一个月都保持活动状态,如果他们将(或者可能)在一个月中的某个时间需要高性能计算资源实例。

在一些实施方案中,当用户重新连接到他们的虚拟桌面实例时,用户可能能够指定不同的存储容量。例如,他们可能会决定需要比最初为其虚拟桌面实例提供的存储容量更多的存储容量。在一些实施方案中,如果请求更多的存储容量,则除重新附接以前附接(挂载)的存储卷之外,服务提供商(或计算资源实例管理器)还在重新启动(或启动)计算资源实例时将一个或多个附加存储卷附接(挂载)到计算资源实例。在其他实施方案中,为虚拟桌面实例提供的存储容量的量可以是固定的和/或可以取决于计算资源实例类型。

在图10中通过流程图示出了用于初始化和修改虚拟桌面实例的配置和/或关闭策略的方法的一个实施方案。如1010所示,在该示例中,该方法可以包括从用户(例如,通过客户端)那里接收(例如,由服务提供商)指定虚拟桌面实例的计算资源实例类型、存储卷容量和关闭策略的请求。该方法可以包括为虚拟桌面实例提供和启动指定类型的计算资源实例,并且将一个或多个存储卷(例如,足以满足指定容量)附接到计算资源实例,如1020所示。如1030所示,该方法可以包括,在稍后的某个时间点,服务提供商系统检测到用户已经与虚拟桌面实例断开连接。

如1040所示,该方法可以包括,根据关闭策略,从计算资源实例断开和卸载存储卷,并且关闭虚拟桌面实例的计算资源实例。如1050所示,该方法还可以包括,在稍后的某个时间点,服务提供商系统接收到重新连接到虚拟桌面实例的请求。如果请求指定了不同的计算资源实例类型或存储容量(被示为对1060的肯定回答),则该方法可以包括重新启动或引导指定类型的计算资源实例(如1070所示)以及重新附接和重新挂载存储卷,同时增加或删除容量(如适用)(如1075所示)。

然而,如果请求没有指定不同的计算资源实例类型或存储容量(被示为对1060的否定回答),则该方法可包括重新启动虚拟桌面实例的计算资源实例(如1080所示)以及将存储卷重新附接和重新挂载到计算资源实例(如1085所示)。

在各种实施方案中,服务提供商可以在与不使用计算资源实例时使计算资源实例保持活动相关联的开支成本与为客户提供良好体验(例如,每次登录时快速连接)之间取得折衷,特别是当在基于连接或基于时间段的计费模式下操作时,在这种计费模式下,当资源未被使用时(例如,当没有用户连接到虚拟桌面实例时),他们不收取费用(或收费不多)。当在这种类型的计费模式下操作时,在向客户的收费减少的情况下,服务提供商可能需要管理他们的资源,使他们的成本也降低(以相似的比例)。在一些实施方案中,这可以通过关闭未连接的虚拟桌面实例的计算资源实例来促成,以便这些资源可以用于其他目的(例如,用于其他虚拟桌面实例)。

在各种实施方案中,客户或最终用户也可以在用户为他们的虚拟桌面实例所花费的费用与他们在重新连接到他们的虚拟桌面实例时所体验的性能(例如,如果计算资源实例已经关闭,则重新连接/登录需要花费的时间长度可能要更长多个数量级)之间取得折衷。

在一些实施方案中,如果服务提供商(或计算资源实例管理器)决定何时让计算资源实例运行(例如,使用默认或预测模型),则服务提供商可以承受该成本。但是,如果客户组织内的it管理员或最终用户做出这些选择(通过定义包括关闭标准的资源管理策略),则即使在断开连接之后,也可以针对计算资源实例保持活动的所有时间向客户收费(例如,以连接的费率)。例如,如果客户定义了关闭标准,指定计算资源实例在断开连接两小时之内不应关闭,则客户可能必须为断开连接后的额外两小时以连接费率支付费用。在一些实施方案中,系统可以实施混合方法,其中可以存在由服务提供商和/或由客户组织的it管理员定义的一些默认策略,但是这些默认策略可以在某些情况下被覆盖(例如,被较长时间连接的用户或从it管理员获得应用不同的策略的许可的用户)。

在为客户组织及其最终用户提供虚拟桌面实例的一些现有系统中,只要客户的虚拟桌面实例处于活动状态(无论最终用户是否连接到虚拟桌面实例、连接频率如何和/或连接时间有多长),就会按月向客户计费。例如,如果客户在某月20日创建了虚拟桌面实例,则在该月的其余时间(例如,从该月20日到30日),则将按比例向他们收费。但是,如果他们在某月1日有虚拟桌面实例,那么即使他们在该月2日删除虚拟桌面实例,也可能会向他们收取该虚拟桌面实例的整个月份的费用。如前所述,在一些实施方案中,本文所描述的系统可以替代地采用基于时间段的方法来对虚拟桌面实例进行资源管理和/或计费,该方法可以与基于连接的方法结合应用于资源管理以及计费。例如,在一个实施方案中,针对代表他们的最终用户托管的虚拟桌面实例,按小时向客户计费。

在一个示例中,在这样的组合计费模式下,可以基于两个不同维度向客户收取虚拟桌面实例的费用:

(1)它们实际使用虚拟桌面实例的小时数(或者更确切地说,一小时长时间段的数量,在一小时长时间段内,最终用户连接到虚拟桌面实例的持续时间为一小时长的任何一部分)。服务提供商(或计算资源实例管理器)可以跟踪最终用户使用虚拟桌面实例多长时间,并且可以将该信息作为应当以连接费率向客户收费的时间量(或时间段的数量),提供给计费机制。

(2)客户正在运行但未使用虚拟桌面实例的小时数(或更具体地说,一小时长时间段的数量,在一小时长时间段的任何一部分,没有最终用户连接到虚拟桌面实例)。服务提供商(或计算资源实例管理器)可以跟踪最终用户不使用虚拟桌面实例多长时间,并且可以将该信息作为应当以非连接费率向客户收费的时间量(或时间段的数量),提供给计费机制。

请注意,非连接费率可能远远低于连接费率,并且可能本质上是代表客户维护虚拟桌面实例和相关联的存储卷的费用。例如,在一个实施方案中,连接费率可以是每小时几美分(或几十美分),而非连接费率可以是每小时几分之一美分。在一些实施方案中,并且对于一些客户和工作负载,按以连接费率计费的时间和以非连接费率计费的时间向客户收取的综合费用可能远低于他们在按月计费方式下所支付的费用。在一些实施方案中,客户可能能够指定他们不需要服务提供商在与虚拟桌面实例断开连接之后维护与虚拟桌面实例相关联的存储卷(例如,如果他们不打算在特定的虚拟桌面会话之后重新连接到虚拟桌面实例,如果他们只打算在单个虚拟桌面会话期间使用虚拟桌面实例及其资源,或者如果他们对虚拟桌面实例的使用不依赖于在虚拟桌面会话之间维护虚拟桌面实例的任何历史或状态)。在这样的实施方案中,服务提供商可以在检测到不活动或明确的断开连接时断开与虚拟桌面实例相关联的存储卷,并且可以将其重新分配,用于其他用途(例如,在删除特定于虚拟桌面实例的任何信息之后)。在这样的实施方案中,当没有用户连接到虚拟桌面实例时,服务提供商可以为虚拟桌面实例向客户收取不同于标准非连接费率(例如,更低费率)的费率,因为服务提供商不必维护该特定虚拟桌面实例的存储卷。

在一些实施方案中,服务提供商系统可以采用基于时间段的方法来对虚拟桌面实例进行资源管理和/或计费,该方法可以与基于连接的方法结合应用于除小时时间段以外的时间段的资源管理和计费。例如,在不同的实施方案中,这种方法可以应用于一分钟、一天、一周、一个月或任何其他预定义时间段的时间段。

如前所述,在一些实施方案中,本文所描述的系统可能能够检测虚拟桌面实例的不活动,并且可以应用关闭策略,就好像虚拟桌面实例被有效地断开一样。例如,如果用户离开自己的笔记本电脑并且整个周末都保持连接到他们的虚拟计算实例(例如,当他们不使用它)时,服务提供商要做的最为客户着想的事情可能是断开虚拟桌面实例和/或关闭底层计算资源实例(根据预定义的关闭标准),而不是以连接费率向客户收费。

在一些实施方案中,服务提供商(或计算资源实例管理器)能够确定最终用户何时将来自实际虚拟桌面实例客户端以外的实体的某些东西流式传输到虚拟桌面实例。例如,为了响应最终用户报告其虚拟桌面实例的问题,it管理员可以从流式传输解决方案(例如由微软公司开发的远程桌面协议(rdp))连接到虚拟桌面实例(用于故障排除)。在一些实施方案中,虚拟桌面实例的组件可能能够识别何时这样的会话处于活动状态,并且服务提供商能够对该时间计费,即使前文所描述的监测机制可能未检测到该活动。在一些实施方案中,如果it管理员需要对虚拟桌面实例进行故障排除,则他们可以能够请求计算资源实例(至少暂时地)保持活动,而不管任何关闭策略是否适用。

注意,在一些实施方案中,本文所描述的用于实现对于虚拟桌面实例的基于连接的资源管理的概念可以应用于其中计算资源实例被汇集成池的系统中。例如,在不同的实施方案中,它们可以在多个资源池中的每个资源池(例如,特定于客户的资源池)内应用或者在服务提供商一侧管理的一个大型资源池内应用。

对虚拟桌面实例池的管理

在向客户端提供虚拟化计算资源的服务提供商系统中,如上文参考图1到图4所讨论的,虚拟桌面服务可以向客户端提供虚拟桌面实例。虚拟桌面服务可以为特定客户端预留虚拟桌面实例池。汇聚成池的实例可以连同其他类型的虚拟桌面实例一起提供,如上文参考图5到图10所讨论的,例如按需提供给任何客户并按小时费率收费的实例。

图11是示出了根据至少一些实施方案的向客户端组织提供具有虚拟桌面实例池的虚拟桌面服务的示例提供商网络的框图。如上文参考图1到图4所讨论的,提供商网络1100可以向一个或多个客户端提供对包括虚拟化计算资源的资源的访问。提供商网络1100可以包括虚拟桌面服务1120。虚拟桌面服务1120可以向客户端提供对虚拟桌面实例的访问,如上文例如参考图3所讨论的。如图11的示例所示,虚拟桌面服务1120可代表客户端实例化和管理多个虚拟桌面实例,例如实例1130a和1130b以及实例1130q和1130r至1130z。对于特定的客户端组织,可以在虚拟桌面实例池1131中预留一组虚拟桌面实例。

客户端组织可以表示提供商网络允许其访问一个或多个服务和/或资源(例如,访问虚拟化计算资源)的客户。客户端组织可以代表商业组织、政府组织、非营利组织、教育组织或任何其他合适的个人组织。客户端组织可以包括被允许访问提供商网络1100的服务和/或资源的最终用户(这里也称为用户)。最终用户可以使用诸如设备1160a和1160b到1160n到1160z的客户端设备来访问提供商网络1100。客户端设备1160a-1160z可以是用户特定的或者可以例如通过使用用户特定的访问凭证来在多个用户之间共享。客户端设备1160a-1160z可以链接在一个或多个客户网络1150中。客户网络1150可以通信地耦合到提供商网络1100的虚拟桌面服务1120。客户端设备1160a-1160z中的任何一个都可以使用图18所示的示例计算设备来实现。

虚拟桌面实例池1130可以具有限定数量的插槽,例如插槽1和2到n。客户端组织可以例如使用提供商网络1100的任何合适的编程接口和/或用户接口,提交或同意插槽的数量n。客户端组织可以同意为特定时间段的数量n个虚拟桌面插槽向提供商网络1100支付费用。例如,客户端组织可能同意每月为一百个虚拟桌面插槽向提供商网络进行支付(并且每月可能重复,直到任何一方取消或修改为止)。虚拟桌面插槽的数量n可以表示提供商网络同意在协议存续过程中的基本上所有时间提供的固定或预定数量的虚拟桌面的插槽。每个虚拟桌面插槽都可以表示连接到客户端组织中的客户端设备的虚拟桌面实例(例如,连接的虚拟桌面实例),断开连接但仍在运行的虚拟桌面实例(例如,断开连接的虚拟桌面实例,在本文中也被称为未使用的虚拟桌面实例)或空插槽(例如,没有虚拟桌面实例正在运行,无论是连接还是断开的插槽)。客户端组织可以为所有的插槽进行支付,而不管使用了哪些插槽或使用任何插槽的频率如何。通常,客户端组织内的最终用户(例如,有权访问虚拟桌面插槽的用户)的数量可能会超过虚拟桌面插槽的数量n。客户端组织内的不同最终用户可以在不同的时间点使用特定的插槽。

可以为客户端组织预留虚拟桌面实例的池1131。池1131可以包括运行并连接到客户端组织内的用户的虚拟桌面实例,诸如实例1130a和1130b。如下面将要讨论的,池1131还可以包括正在运行而未连接到用户的虚拟桌面实例。如图11的示例所示,池中的一个或多个插槽可以是空的(即,没有用正在运行的虚拟桌面实例填充),例如插槽n。预留实例池通常包括在预留给客户端组织访问的时间段内,拒绝其他客户端对实例进行访问。池1131中的实例的数量不得超过客户端组织的虚拟桌面插槽的数量n。在一个实施方案中,实例池1131可以包括初始化阶段之后的基本上全部时间的全部(或几乎全部)n个插槽中的运行实例。在一个实施方案中,池1131可以初始化为全部n个插槽都为空,而当接收或预期有连接请求时,可以将运行实例添加到池中。可以回收具有断开的实例的池1131中的插槽,例如,通过重新启动实例或者用正在运行并准备好接受新连接的新实例来替换该实例。

在一个实施方案中,只有当从客户端设备接收到连接请求时,才可以提供实例以供这些设备访问。可将断开连接的实例或用于实现它们的计算资源返回到池1131之外的一组可用实例和/或资源中。例如,实例1130q-1130z可以表示可用于多个客户端组织的更大的一组实例,并且可以响应于来自属于与池1131相关联的客户端组织的客户端设备1160a和1160b的连接请求,从该较大的实例组中预留实例1130a-1130b。这样,提供商网络1100中的一组底层资源可以在用于同一客户端或多个客户端的多个虚拟桌面实例池之间共享。

可以代表给定最终用户来实现虚拟桌面实例。服务提供商网络1100可以包括向提供商网络的一个或多个客户端组织或其他用户共同提供虚拟桌面服务的多个计算节点(例如,如图18所示的计算设备)。提供商网络1100可以实现在计算节点之一上执行的虚拟化计算资源实例,而虚拟化计算资源实例可以实现虚拟桌面实例,如上文参考图1到4所讨论的。一个或多个应用程序可以安装在虚拟桌面实例上并使用虚拟化计算资源实例来执行。虚拟桌面服务可以,例如,通过维护诸如配置数据和应用程序数据之类的可用于为虚拟桌面实例生成图形用户界面(gui)并运行应用程序的数据,来维护虚拟桌面。虚拟桌面可以包括与虚拟桌面实例相关联的一组资源的图形描绘(例如,一个或多个应用程序的图形指示符、与应用程序相关联的一个或多个窗口、用于浏览文件或文件夹的一个或多个界面元素,或用于浏览可用的应用程序或切换正在运行的应用程序的一个或多个界面元素等)。如图11的示例所示,客户端设备1160a可以经由虚拟桌面实例1130a访问虚拟桌面1135a,并且客户端设备1160b可以经由虚拟桌面实例1130b访问虚拟桌面1135b。虚拟桌面1135a和1135b可以以类似的方式(例如,配置有相同的一组应用程序)或以不同的方式(例如,配置有不同的一组应用程序)来配置。每个虚拟桌面实例1130a和1130b都可以包括相应的根驱动器以及相应的客户端设备的用户特有的相应的数据驱动器。

图12是示出了根据至少一些实施方案的提供带有虚拟桌面实例池的虚拟桌面服务的示例提供商网络的进一步方面的框图,虚拟桌面实例池包括池中的不同插槽的连接和断开连接的虚拟桌面实例。如上所述,池1131可以包括运行并连接到客户端组织内的用户的虚拟桌面实例,例如实例1130a和1130n。响应于来自与客户端组织的用户相关联的客户端设备的连接请求,可以执行到实例的连接。例如,在图11所示的状态与图12所示的状态之间,虚拟桌面服务1120可以接收来自客户端设备1160n的连接请求,并通过提供对插槽n中的虚拟桌面实例1130n的访问来作出响应。因此,客户端设备1160a可以经由虚拟桌面实例1130a访问虚拟桌面1135a,并且客户端设备1160n可以经由虚拟桌面实例1130n访问虚拟桌面1135n。

池1131还可以包括正在运行但未连接到用户的虚拟桌面实例,例如实例1130b。在图11所示的状态和图12所示的状态之间,客户端设备1160b可从其之前连接的虚拟桌面实例1130b断开连接。响应于来自客户端设备的明确断开连接请求或基于自动检测到断开连接(例如,如上文参考图5到10所讨论的),可以执行与实例的断开。断开的实例1130b可以保持运行并且可以占用池1131中的插槽(例如插槽2)。在一个实施方案中,断开的实例1130b可以保持与先前连接的客户端设备1160b的用户相关联的附接数据驱动器一起运行。通过使实例1130b保持运行(例如,在应用程序运行的情况下)并附接有用户特定的数据驱动器,在从客户端设备1160b的用户接收到连接请求的情况下,客户端设备1160b和实例1130b之间的连接可以更快速地恢复(例如,无需重新启动或重新提供虚拟桌面实例)。

图13是示出了根据至少一些实施方案的提供带有虚拟桌面实例池的虚拟桌面服务的示例提供商网络的进一步方面的框图,包括当池中的所有插槽都已经被已连接的实例占用时向客户端设备提供对池外部的虚拟桌面实例的访问。在一些情况下,池1131中的所有插槽1-n都可能被连接的实例消费。如图13的示例所示,池1131中的所有插槽都可以由运行并连接到相应的客户端设备1160a-1160n的虚拟桌面实例1130a-1130n使用。然而,客户端组织可以包括比池1131中的插槽数n更多的用户。如果从客户端组织的客户端设备接收到新的连接请求,而池1131中的所有n个插槽完全被连接的实例占用,则该用户可能被拒绝访问池中的虚拟桌面实例。可以向用户提供池1131中没有可用容量的通知。在一个实施方案中,可以仅在当前时间点拒绝对池1131的访问,并且可以将用户置于等待池中的可用实例的列表中,并相应地通知用户。

在一个实施方案中,当池充满连接的实例时,可以响应于新的连接请求而动态地增大池1131的大小。只有当客户端组织同意支付由提供商网络1100收取的额外或增加的费用时,才可以对池大小执行这种动态修改。在一个实施方案中,如图13的示例所示,用户可以替代地被允许对池1131外部的虚拟桌面实例1130z的访问。例如,用户可以被允许对按需可用并按小时收费的虚拟桌面实例1130z(例如,上文参考图5到10所讨论的虚拟桌面实例)的访问。只有当客户端组织同意支付由提供商网络1100收取的适当费用时,才可以准许池外的这种访问。

图14是示出了根据至少一些实施方案的提供带有虚拟桌面实例池的虚拟桌面服务的示例提供商网络的其他方面的框图,包括池中的断开连接的虚拟桌面实例的回收。如图14的示例所示,客户端设备1160a和1160b可以分别与实例1130a和1130b断开连接,而客户端设备1160n可以保持连接到虚拟桌面实例1130n。虚拟桌面服务1120可以包括用于虚拟桌面实例回收的功能1170。通过使用用于虚拟桌面实例回收的功能1170,虚拟桌面服务1120可以回收池1131中由断开连接但正在运行的实例占用的插槽。

在一个实施方案中,虚拟桌面实例回收功能1170可以在适当的时间点确定虚拟桌面插槽被连接的实例消费的预期速率。预期速率可以表示连接实例的增长速率或者池1131被连接实例填满的速度。预期速率可以(至少部分)基于对正在运行的实例的重新连接请求以及对新实例的新连接请求。基于预期的速率,虚拟桌面实例回收功能1170可以确定插槽是否正在接近被连接的实例完全使用。这样的确定可以基于任何合适的启发或阈值。例如,虚拟桌面实例回收功能1170可以基于新连接请求的速率,确定该池将在一小时内填满。如果是,则虚拟桌面实例回收功能1170可以选择断开的实例(如果有的话)以进行回收。回收也可以在其他合适的情况和策略下执行,例如,当池充满连接的实例时、等待新连接的列表已存在,并且现有实例之一被断开。

可以回收一个或多个断开的实例1130a和1130b。虚拟桌面实例(或其占用的插槽)的回收可以包括使用新的根驱动器重新启动实例,或者用已经经受任何相关安全过程并且准备好新连接的新实例替换该实例。可以应用任何合适的回收策略或标准来选择一个或多个断开的实例进行回收。在一个实施方案中,可基于实例闲置的持续时间来选择要进行回收的断开连接的实例,例如,以优先保留最近断开连接的实例。在一个实施方案中,可以基于预期的实例重启的持续时间,来选择要进行回收的断开的实例,例如,以优先保留将花费最长时间重启的断开的实例。在一个实施方案中,可以基于用户的相对排名或其他特征来选择要进行回收的断开的实例,例如,以为特定用户优先保留断开的实例。在一个实施方案中,池1131内的一个或多个实例可以被无限期地保留以供客户端组织内的一个或多个特定用户或供具有特定特性的用户访问;这些实例可以会始终保持运行,无论相应用户当前是否连接,并且可能不会被回收。

图15是示出了根据至少一些实施方案的提供带有虚拟桌面实例池的虚拟桌面服务的示例提供商网络的进一步方面的框图,其包括向客户端设备提供对池中的重启的虚拟桌面实例的访问。在图14所示的状态和图15所示的状态之间,虚拟桌面实例回收功能1170可以重新启动虚拟桌面实例1130a和1130b。然后,重新启动的实例1130a和1130b可以准备好用于新的连接请求。准备好的实例可以代表正在运行的,已经过任何安全过程的,以及已准备好接受来自用户的新连接请求的虚拟桌面实例。例如,准备好的实例可能表示出于安全目的已使用新的根驱动器重新启动的已回收的实例。但是,准备好的实例可能没有附接用户特定的数据驱动器,但可能已加入适当的域中。当从客户端设备1160c接收到新连接请求时,可以将对重新启动的虚拟桌面实例1130b的访问提供给客户端设备,以实现虚拟桌面1135c。向客户端设备1160c提供对实例1130b的访问可以包括将用户特定的数据驱动器附接到该实例。另一重新启动的实例1130a可以在池1131中保持可用,例如,直到接收到新的连接请求。

图16是示出了用于管理虚拟桌面实例池的方法的一个实施方案的流程图。如1610所示,可以确定客户端组织的虚拟桌面插槽的数量(即,定义的数量)。客户端组织可以表示提供商网络允许其访问一个或多个服务和/或资源(例如,访问虚拟化计算资源)的客户。客户端组织可以代表商业组织、政府组织、非营利组织、教育组织或任何其他合适的个人组织。客户端组织可以包括被允许访问服务和/或资源的最终用户。最终用户可以使用客户端设备来访问提供商网络。客户端设备可以是用户特定的或者可以例如通过使用用户特定的访问凭证来在多个用户之间共享。

客户端组织可以例如使用提供商网络的任何合适的编程接口和/或用户接口,提交或同意插槽的数量。客户端组织可以同意为特定时间段的若干个虚拟桌面插槽向提供商网络支付费用。例如,客户端组织可能同意每月为一百个虚拟桌面插槽向提供商网络进行支付(并且每月可能重复,直到任何一方取消或修改为止)。虚拟桌面插槽的数量可以表示提供商网络同意在协议存续过程中的基本上所有时间提供的固定或预定数量的虚拟桌面的插槽。每个虚拟桌面插槽都可以表示连接到客户端组织中的客户端设备的虚拟桌面实例(例如,连接的虚拟桌面实例),断开连接但仍在运行的虚拟桌面实例(例如,断开连接的虚拟桌面实例)或空插槽(例如,没有虚拟桌面实例正在运行,无论是连接还是断开的插槽)。客户端组织可以为所有的插槽进行支付,而不管使用了哪些插槽或使用任何插槽的频率如何。通常,客户端组织内的最终用户(例如,有权访问虚拟桌面插槽的用户)的数量可能会超过虚拟桌面插槽的数量。客户端组织内的不同最终用户可以在不同的时间点使用特定的插槽。

如1620所示,可以为客户端组织预留虚拟桌面实例池。实例池可以包含正在运行并连接到客户端组织内的用户的虚拟桌面实例以及正在运行且未连接到用户的虚拟桌面实例。预留实例池通常包括在预留给客户端组织访问的时间段内,拒绝其他客户端对实例进行访问。池中的实例数量不得超过客户端组织的虚拟桌面插槽数量。在一个实施方案中,实例池可以包括初始化阶段之后的基本上全部时间的全部(或几乎全部)插槽中的运行实例。在一个实施方案中,池可以初始化为全部插槽都为空,而当接收或预期有连接请求时,可以将运行实例添加到池中。可以回收具有断开的实例的池中的插槽,例如,通过重新启动实例或者用正在运行并准备好接受新连接的新实例来替换该实例。可以代表给定最终用户来实现虚拟桌面实例。

服务提供商网络可以包括向提供商网络的一个或多个客户端组织或其他用户共同提供虚拟桌面服务的多个计算节点(例如,如图18所示的计算设备)。提供商网络可以实现在计算节点之一上执行的虚拟化计算资源实例,而虚拟化计算资源实例可以实现虚拟桌面实例,如上文参考图1到4所讨论的。一个或多个应用程序可以安装在虚拟桌面实例上并使用虚拟化计算资源实例来执行。虚拟桌面服务可以,例如,通过维护诸如配置数据和应用程序数据之类的可用于为虚拟桌面实例生成图形用户界面(gui)并运行应用程序的数据,来维护虚拟桌面。与虚拟桌面实例相关联的一组资源的图形描绘(例如,一个或多个应用程序的图形指示符、与应用程序相关联的一个或多个窗口、用于浏览文件或文件夹的一个或多个界面元素,或用于浏览可用的应用程序或切换正在运行的应用程序的一个或多个界面元素等),而相关联的应用程序可统称为虚拟桌面。

如1630所示,可以接收针对池中的虚拟桌面实例的连接请求。可以从与客户端组织的最终用户相关联的客户端设备接收连接请求。连接请求可以由提供商网络的虚拟桌面服务通过与客户端组织的网络连接来接收。连接请求可以使用任何合适的编程接口和/或用户接口来接收,并且可以包括客户端组织的用户的访问凭证。

如1640所示,可以确定在当前时间已连接的实例是否消费了所有插槽。如果是这样,那么如1680所示,则用户可能被拒绝访问池中的虚拟桌面实例。可以向用户提供池中没有可用容量的通知。在一个实施方案中,可以仅在当前时间点拒绝对池的访问,并且可以将用户置于等待池中的可用实例的列表中,并相应地通知用户。在一个实施方案中,用户可以替代地被允许对池外部的虚拟桌面实例的访问。例如,用户可以被允许对按需可用并按小时收费的虚拟桌面实例(例如,上文参考图5到10所讨论的虚拟桌面实例)的访问。只有当客户端组织同意支付由提供商网络收取的适当费用时,才可以准许池外的这种访问。

如果并非所有插槽都由连接的实例占用,则如1650所示,可以确定池中的虚拟桌面实例是否准备好供用户使用。准备好的实例可以代表正在运行的,已经过任何安全过程的,以及已准备好接受来自用户的新连接请求的虚拟桌面实例。例如,准备好的实例可能表示出于安全目的已使用新的根驱动器重新启动的已回收的实例。但是,准备好的实例可能没有附接用户特定的数据驱动器,但可能已加入适当的域中。如1660所示,如果池中没有任何实例准备好,则可以在其中一个插槽中提供虚拟桌面实例。上文参考图5讨论了提供虚拟桌面实例,其一般包括预留和配置提供商网络的资源。在一个实施方案中,提供虚拟桌面实例可以包括用新的根驱动器引导实例。同样,准备好的实例可能没有附接用户特定的数据驱动器,但可能已加入适当的域中。如1670所示,可以为用户准备虚拟桌面实例,并且可以向用户提供对该实例的访问。为用户准备实例可以包括将与用户相关联的数据驱动器附接到实例。

图17是示出用于回收池中的断开连接的虚拟桌面实例的方法的一个实施方案的流程图。如1710所示,可以提供虚拟桌面实例池,并且可以向客户端组织提供对池的访问。实例池可以包含正在运行并连接到客户端组织内的用户的虚拟桌面实例以及正在运行且未连接到用户的虚拟桌面实例。池中的实例数量不得超过客户端组织的虚拟桌面插槽数量。客户端组织可以例如使用提供商网络的任何合适的编程接口和/或用户接口,提交或同意插槽的数量。客户端组织可以同意为特定时间段的若干个虚拟桌面插槽向提供商网络支付费用。例如,客户端组织可能同意每月为一百个虚拟桌面插槽向提供商网络进行支付(并且每月可能重复,直到任何一方取消或修改为止)。虚拟桌面插槽的数量可以表示提供商网络同意在协议存续过程中的基本上所有时间提供的固定或预定数量的虚拟桌面的插槽。客户端组织可以为所有的插槽进行支付,而不管使用了哪些插槽或使用任何插槽的频率如何。通常,客户端组织内的最终用户(例如,有权访问虚拟桌面插槽的用户)的数量可能会超过虚拟桌面插槽的数量。客户端组织内的不同最终用户可以在不同的时间点使用特定的插槽。

每个虚拟桌面插槽都可以表示连接到客户端组织中的客户端设备的虚拟桌面实例(例如,连接的虚拟桌面实例),断开连接但仍在运行的虚拟桌面实例(例如,断开连接的虚拟桌面实例)或空插槽(例如,没有虚拟桌面实例正在运行,无论是连接还是断开的插槽)。在一个实施方案中,实例池可以包括初始化阶段之后的基本上全部时间的全部(或几乎全部)插槽中的运行实例。在一个实施方案中,池可以初始化为全部插槽都为空,而当接收或预期有连接请求时,可以将运行实例添加到池中。可以回收具有断开的实例的池中的插槽,例如,通过重新启动实例或者用正在运行并准备好接受新连接的新实例来替换该实例。

如1720所示,给定的客户端设备可以连接到池中的虚拟桌面实例之一或从其中断开。响应于来自与客户端组织的用户相关联的客户端设备的连接请求,可以执行到实例的连接。响应于来自客户端设备的明确断开连接请求或基于自动检测到断开连接(例如,如上文参考图5到10所讨论的),可以执行与实例的断开。连接或断开可能会改变池的组成,即连接的实例、断开连接(但正在运行)的实例和空插槽的数量。

如1730所示,可以确定虚拟桌面插槽被连接的实例消费的预期速率。预期速率可以表示池被连接实例填满的速度。如1740所示,可以基于预期速率确定插槽是否正在接近被连接的实例完全使用。1740中所示的确定可以基于任何合适的启发或阈值。例如,可以基于新连接请求的速率,确定该池将在一小时内填满。如果是这样,则如1750所示,可以确定池中是否存在任何断开连接(也称为未使用)的实例。

如果是,则如1760所示,可以回收一个或多个断开的实例。虚拟桌面实例(或其占用的插槽)的回收可以包括使用新的根驱动器重新启动实例,或者用已经经受任何相关安全过程并且准备好新连接的新实例替换该实例。可以应用任何合适的回收策略或标准来选择一个或多个断开的实例进行回收。在一个实施方案中,可基于实例闲置的持续时间来选择要进行回收的断开连接的实例,例如,以优先保留最近断开连接的实例。在一个实施方案中,可以基于预期的实例重启的持续时间,来选择要进行回收的断开的实例,例如,以优先保留将花费最长时间重启的断开的实例。在一个实施方案中,可以基于用户的相对排名来选择要进行回收的断开的实例,例如,以为排名较高的用户优先保留断开的实例。

另外,本公开的实施方案可鉴于以下条款来描述:

1.一种系统,包括:

提供商网络中的多个计算节点,其共同向客户端组织提供虚拟桌面服务,其中每个所述计算节点都包括至少一个处理器和存储器,并且其中所述客户端组织包括多个用户;

其中所述虚拟桌面服务被配置为:

为所述客户端组织确定固定数量的虚拟桌面插槽,其中虚拟桌面插槽的所述固定数量少于所述客户端组织中的用户数量;

在池中提供多个虚拟桌面实例,其中所述虚拟桌面实例使用所述提供商网络的资源来实现,并且其中所述池中的虚拟桌面实例的数量不超过虚拟桌面插槽的所述固定数量;

从与所述用户中的第一用户相关联的第一客户端设备接收第一连接请求;

至少部分地基于确定在所述第一连接请求时所述池中的已连接的虚拟桌面实例的当前数量小于虚拟桌面插槽的所述固定数量,向所述第一客户端设备提供对所述池中的特定虚拟桌面实例的访问;

从与所述用户中的第二用户相关联的第二客户端设备接收第二连接请求;以及

至少部分地基于确定在所述第二连接请求时所述池中的已连接的虚拟桌面实例的当前数量与虚拟桌面插槽的所述固定数量一致,拒绝所述第二客户端设备对所述池中的所述多个虚拟桌面实例的访问。

2.根据条款1所述的系统,其中所述虚拟桌面服务还被配置为:

确定所述固定数量的虚拟桌面插槽被多个已连接的虚拟桌面实例消费的预期速率;以及

至少部分地基于所述预期速率,回收所述池中的一个或多个断开连接的虚拟桌面实例,其中一个或多个回收的虚拟桌面实例可用于新连接请求。

3.根据条款1所述的系统,其中所述虚拟桌面服务还被配置为:

至少部分地基于确定在所述第二时间点所述池中的已连接的虚拟桌面实例的所述当前数量与虚拟桌面插槽的所述固定数量一致,向所述第二客户端设备提供对所述池外的第二虚拟桌面实例的访问。

4.一种方法,包括:

由提供商网络的共同实现虚拟桌面服务的一个或多个计算设备执行:

为客户端组织预留池中的多个虚拟桌面实例,其中所述虚拟桌面实例使用所述提供商网络的资源来实现,其中所述池中的虚拟桌面实例的所述数量不超过所述客户端组织的虚拟桌面插槽的数量,其中所述客户端组织包括多个用户;

至少部分地基于确定在第一时间点所述池中的已连接的虚拟桌面实例的当前数量小于虚拟桌面插槽的所述数量,向与所述用户中的第一用户相关联的第一客户端设备提供对所述池中的特定虚拟桌面实例的访问;以及

至少部分地基于确定在第二时间点所述池中的已连接的虚拟桌面实例的当前数量与虚拟桌面插槽的所述数量一致,拒绝与所述用户中的第二用户相关联的第二客户端设备对所述池中的所述多个虚拟桌面实例的访问。

5.根据条款4所述的方法,还包括:

确定所述数量的虚拟桌面插槽被多个已连接的虚拟桌面实例消费的预期速率;以及

至少部分地基于所述预期速率,回收所述池中的一个或多个未使用的虚拟桌面实例,其中一个或多个回收的虚拟桌面实例可用于新连接请求。

6.根据条款5所述的方法,还包括:

至少部分地基于空闲持续时间来选择要回收的一个或多个未使用的虚拟桌面实例。

7.根据条款5所述的方法,还包括:

至少部分地基于预期的重新启动持续时间来选择要回收的一个或多个未使用的虚拟桌面实例。

8.根据条款5所述的方法,还包括:

至少部分地基于用户特性来选择要回收的一个或多个未使用的虚拟桌面实例。

9.根据条款4所述的方法,还包括:

至少部分地基于确定在所述第二时间点所述池中的已连接的虚拟桌面实例的所述当前数量与虚拟桌面插槽的所述数量一致,向所述第二客户端设备提供对所述池外的第二虚拟桌面实例的访问。

10.根据条款4所述的方法,其中在从所述第一客户端设备接收到连接请求之前,利用根存储卷来启动所述特定虚拟桌面实例,并且其中所述方法还包括:

接收来自所述第一客户端设备的所述连接请求;以及

向所述特定虚拟桌面实例添加与所述第一用户相关联的数据卷,其中所述数据卷至少部分地基于来自所述第一客户端设备的所述连接请求来添加。

11.根据条款4所述的方法,还包括:

确定所述第一用户已经从所述特定虚拟桌面实例断开连接;以及

回收所述特定虚拟桌面实例,包括:

从所述特定虚拟桌面实例分离根卷和数据卷;以及

用新的根卷来重新启动所述特定虚拟桌面实例。

12.根据条款4所述的方法,还包括:

将所述池中的另外一个所述虚拟桌面实例指定为所述客户端组织的所述用户中的一个特定用户的预留实例,其中如果所述预留实例从与所述用户中的所述一个特定用户相关联的客户端设备断开连接,所述预留实例不会被回收。

13.根据条款4所述的方法,还包括:

确定所述特定虚拟桌面实例与所述第一客户端设备断开连接;以及

将所述特定虚拟桌面实例返回到一组可用实例,其中所述可用实例组可由所述客户端组织和一个或多个其他客户端组织访问。

14.一种存储程序指令的计算机可读存储介质,所述程序指令是计算机可执行的以执行:

在用于客户端组织的池中提供多个虚拟桌面实例,其中所述虚拟桌面实例使用所述提供商网络的资源来实现,其中所述池中的虚拟桌面实例的数量不超过所述客户端组织的虚拟桌面插槽的数量,其中所述客户端组织包括多个用户,并且其中所述虚拟桌面插槽的所述数量小于所述客户端组织中的用户的所述数量;

至少部分地基于确定在第一时间点所述池中的已连接的虚拟桌面实例的当前数量小于虚拟桌面插槽的所述数量,向与所述用户中的第一用户相关联的第一客户端设备提供对所述池中的特定虚拟桌面实例的访问;以及

至少部分地基于确定在第二时间点所述池中的已连接的虚拟桌面实例的当前数量与虚拟桌面插槽的所述数量一致,拒绝与所述用户中的第二用户相关联的第二客户端设备对所述池中的所述多个虚拟桌面实例的访问。

15.根据条款14所述的计算机可读存储介质,其中所述程序指令还可由计算机执行以执行:

确定所述数量的虚拟桌面插槽被多个已连接的虚拟桌面实例消费的预期速率;以及

至少部分地基于所述预期速率,回收所述池中的一个或多个断开连接的虚拟桌面实例,其中一个或多个回收的虚拟桌面实例可用于新连接请求。

16.根据条款15所述的计算机可读存储介质,其中所述程序指令还可由计算机执行以执行:

至少部分地基于空闲持续时间来选择要回收的一个或多个断开连接的虚拟桌面实例。

17.根据条款15所述的计算机可读存储介质,其中所述程序指令还可由计算机执行以执行:

至少部分地基于预期的重新启动持续时间来选择要回收的一个或多个断开连接的虚拟桌面实例。

18.根据条款15所述的计算机可读存储介质,其中所述程序指令还可由计算机执行以执行:

至少部分地基于用户特性来选择要回收的一个或多个断开连接的虚拟桌面实例。

19.根据条款14所述的计算机可读存储介质,其中所述程序指令还可由计算机执行以执行:

至少部分地基于确定在所述第二时间点所述池中的已连接的虚拟桌面实例的所述当前数量与虚拟桌面插槽的所述数量一致,向所述第二客户端设备提供对所述池外的第二虚拟桌面实例的访问。

20.根据条款14所述的计算机可读存储介质,其中在从所述第一客户端设备接收到连接请求之前,利用根存储卷来启动所述特定虚拟桌面实例,并且其中所述程序指令还可由计算机执行以执行:

接收来自所述第一客户端设备的所述连接请求;以及

向所述特定虚拟桌面实例添加与所述第一用户相关联的数据卷,其中所述数据卷至少部分地基于来自所述第一客户端设备的所述连接请求来添加。

说明性系统

在至少一些实施方案中,实现如本文所述的用于管理虚拟桌面实例池的一些或全部技术的服务器可以包括计算机系统,该计算机系统包括或被配置为访问非临时性计算机可访问(例如,计算机可读)介质,例如图18所示的计算机系统2000。例如,在各种实施方案中,本文所描述的任何或全部计算机系统组件(包括,例如,服务提供商网络上的数据中心计算机和/或其他组件,它们共同提供虚拟计算服务和/或虚拟存储服务、虚拟化计算资源实例、虚拟机、虚拟机监视器或管理程序,会话网关组件、计算资源实例管理器和/或虚拟桌面实例;或客户网络上的客户端计算设备或其他组件)可以使用类似于计算机系统2000的已被配置为提供这些组件的功能的计算机系统来实现。在所示实施方案中,计算机系统2000包括经由输入/输出(i/o)接口2030耦合到系统存储器2020的一个或多个处理器(例如,处理器2010a和2010b到2010n)。计算机系统2000还包括耦合到i/o接口2030的一个或多个网络接口2040。在一些实施方案中,网络接口2040可包括两个或更多个网络接口,其包括例如,被配置用于在托管在计算机系统2000上的虚拟化计算资源与其客户端之间进行通信的网络接口,以及被配置用于在虚拟化计算资源与外部资源、计算系统、数据中心、或除提供商网络和代表其托管虚拟化计算资源的客户网络之外的网络上的互联网目的地之间进行通信的网络接口。

在各种实施方案中,计算机系统2000可以是包括一个处理器的单处理器系统,或包括若干处理器2010a-2010n(例如两个、四个、八个或另一合适数量)的多处理器系统。处理器2010a-2010n可以是能够执行指令的任何合适处理器。例如,在各种实施方案中,处理器2010a-2010n可为实施多种指令集架构(isa)(例如x86、powerpc、sparc或mipsisa或任何其他合适的isa)中的任何指令集架构的处理器。在多处理器系统中,每一个处理器2010a-2010n都通常可但并非必须实施相同isa。

系统储存器2020可被配置为存储可由处理器2010a-2010n访问的指令和数据。在各种实施方案中,系统储存器2020可使用任何合适储存器技术来实施,所述储存器技术诸如静态随机存取储存器(sram)、同步动态ram(sdram)、非易失性/快闪型储存器或任何其他类型的存储器。在所示实施方案中,实施一个或多个所需功能的程序指令和数据(诸如上述用于管理虚拟桌面实例的资源的那些方法、技术和数据)被示为作为代码2025和数据2026存储在系统存储器2020内。

在一个实施方案中,i/o接口2030可被配置为协调处理器2010、系统存储器2020和设备中的任何外围设备之间的i/o流量,所述外围设备包括网络接口2040或其他外围接口中的任何一种。在一些实施方案中,i/o接口2030可执行任何必需协议、时序或其他数据转换以将来自一个组件(例如,系统存储器2020)的数据信号转变成适合于由另一个组件(例如,处理器2010a-2010n)使用的格式。在一些实施方案中,i/o接口2030可包括对于通过各种类型的外围总线附接的设备的支持,所述外围总线诸如例如外围组件互连(pci)总线标准或通用串行总线(usb)标准的改变形式。在一些实施方案中,i/o接口2030的功能可分到两个或更多个单独的组件中,诸如例如北桥和南桥。另外,在一些实施方案中,i/o接口2030(诸如到系统储存器2020的接口)的一些或所有功能,可直接并入处理器2010a-2010n中。

网络接口2040可被配置为允许数据在计算机系统2000与附接到一个或多个网络2050的其他设备2060(例如像如附图中所示的其他计算机系统或设备)之间进行交换。在各个实施方案中,一个或多个网络接口2040可以支持通过任何合适有线或无线通用数据网络(例如像以太网网络类型)进行通信。另外,一个或多个网络接口2040可支持通过电信/电话网络(诸如模拟语音网络或数字光纤通信网络)、通过存储区域网络(诸如光纤信道san)或者通过任何其他合适类型的网络和/或协议进行通信。

在一些实施方案中,系统存储器2020可以是计算机可访问介质的一个实施方案,所述介质被配置为存储如上所述的程序指令和数据,所述程序指令和数据用于实现本文所描述的用于管理虚拟桌面实例的资源的技术的各种实施方案。然而,在其他实施方案中,可以在不同类型的计算机可访问介质上接收、发送或存储程序指令和/或数据。一般来说,计算机可访问(例如,计算机可读)介质可包括非暂时性存储介质或存储器介质,诸如磁性介质或光学介质,例如通过i/o接口2030联接到计算机系统2000的磁盘或dvd/cd。非暂时性计算机可访问(例如,计算机可读)存储介质还可以包括可作为系统存储器2020或另一类型的存储器包括在计算机系统2000的一些实施方案中的任何易失性或非易失性介质,诸如ram(例如,sdram、ddrsdram、rdram、sram等)、rom等。另外,计算机可访问介质可包括传输介质或信号,诸如通过通信介质(网络和/或无线链路)传送的电信号、电磁信号或数字信号,诸如可通过一个或多个网络接口2040来实现。

如在图中所示和本文所描述的各种方法表示方法的示例性实施方案。所述方法可以软件、硬件或其组合来实施。方法的顺序可以改变,并且可以添加各种要素、对其进行重新排序、组合、省略、修改等。

对于受益于本公开的本领域技术人员而言将明显的是,可以进行各种修改和改变。旨在包含所有这些修改和变化,并且相应地,以上描述应视为具有说明性而非限制性意义。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1