具有读高速缓存的供应服务(pvs)云流送

文档序号:1821538 发布日期:2021-11-09 浏览:2次 >En<

阅读说明:本技术 具有读高速缓存的供应服务(pvs)云流送 (Provisioning services (PVS) cloud streaming with read caching ) 是由 M·李 S·格雷厄姆 于 2021-01-14 设计创作,主要内容包括:一种计算系统包括通过通信网络流送基础盘映像的服务器,以及客户端机器。客户端机器包括存储包括网络驱动的预引导数据的读高速缓存,以及耦合到读高速缓存的处理器。处理器使用预引导数据启动客户端机器的预引导,并且在网络驱动运行之后,经由通信网络从服务器接收流送的基础盘映像以继续引导客户端机器。(A computing system includes a server that streams an underlying disk image over a communication network, and a client machine. The client machine includes a read cache storing pre-boot data including a network drive, and a processor coupled to the read cache. The processor initiates a pre-boot of the client machine using the pre-boot data and, after the network driver is running, receives a streamed base disk image from the server via the communication network to continue booting the client machine.)

具有读高速缓存的供应服务(PVS)云流送

技术领域

本公开涉及桌面虚拟化,并且更特别地涉及对客户端机器供应(provisioning)。

背景技术

许多组织现在正在使用桌面虚拟化来提供更灵活的选项,以解决其用户变化的需求。在桌面虚拟化中,用户的计算环境可以与用户的物理计算设备分离。

在用于桌面的集中管理的环境中,多个客户端机器可以基于单个“黄金主(goldenmaster)”桌面盘映像的副本来接收对计算环境的访问或执行计算环境。此黄金映像是虚拟机的共享模板,并且包括操作系统和应用。黄金映像也可以称为基础盘映像(base diskimage)。

用于基础盘映像的机器部署的一种方法是基于映像克隆。映像克隆可以利用xcopy操作将基础盘映像复制到每个客户端机器中的虚拟盘。一旦将基础盘映像部署到每个客户端机器,它就是分布式计算模型。该方法允许客户端机器在映像部署之后执行离线计算。

用于基础盘映像的机器部署的另一种方法是基于供应服务(provisioningservice)(PVS)。供应服务利用网络引导技术通过通信网络按需将基础盘映像流送(stream)到客户端机器。此方法要求客户端机器保持恒定的网络连接。

发明内容

一种计算系统包括通过通信网络流送基础盘映像的服务器,以及客户端机器。客户端机器包括被配置为存储包括网络驱动的预引导(preboot)数据的读高速缓存,以及耦合到读高速缓存的处理器。处理器被配置为使用预引导数据启动客户端机器的预引导,并且在网络驱动运行之后,经由通信网络从服务器接收流送的基础盘映像以继续引导客户端机器。

基础盘映像可以包括操作系统,并且预引导数据还可以包括包括网络驱动的操作系统的子集。

基础盘映像中的操作系统可以包括操作系统网络驱动,并且网络驱动被配置为与操作系统网络驱动相同。处理器可以进一步被配置为响应于网络驱动运行而从使用读高速缓存中的预引导数据切换到使用流送的基础盘映像中的数据。

处理器可以进一步被配置为在预引导时执行指令以针对预引导数据访问读高速缓存。更特别地,客户端机器可以进一步包括固件以提供要在预引导时执行的指令。固件例如可以是UEFI(统一可扩展固件接口)固件。

预引导数据可以包括操作系统内核,该操作系统内核包括网络驱动,并且随着操作系统内核开始运行,网络驱动连接到通信网络。

另一个方面涉及一种客户端机器,该客户端机器包括读高速缓存,该读高速缓存被配置为存储包括网络驱动的预引导数据,以及处理器,该处理器耦合到该读高速缓存。处理器被配置为使用预引导数据启动客户端机器的预引导,并且在网络驱动运行之后,经由通信网络从服务器接收流送的基础盘映像以继续引导客户端机器。

又一个方面涉及一种用于操作如上所述的客户端机器的方法。该方法包括将包括网络驱动的预引导数据存储在客户端机器内的读高速缓存中。该方法还包括使用预引导数据来启动客户端机器的预引导,并且在网络驱动运行之后,经由通信网络从服务器接收流送的基础盘映像以继续引导客户端机器。

附图说明

图1是其中可以实现本公开的各个方面的计算设备的网络环境的示意性框图。

图2是可用于实践图1中所示的客户端机器或远程机器的实施例的计算设备的示意性框图。

图3是其中可以实现本公开的各个方面的云计算环境的示意性框图。

图4是其中可以实现本公开的各个方面的、操作工作空间app的基于桌面、移动和web的设备的示意性框图。

图5是其中可以实现本公开的各个方面的计算设备的工作空间网络环境的示意框图。

图6是其中可以实现本公开的各个方面的具有包括读高速缓存的客户端机器的计算系统的示意性框图。

图7是图6中所示的计算系统的更详细的示意性框图。

图8是用于操作图6中所示的客户端机器的方法的流程图。

图9是用于操作图6中所示的客户端机器的方法的更详细的流程图。

具体实施方式

参考其中示出了示例性实施例的附图来进行本描述。然而,可以使用许多不同的实施例,并且因此该描述不应被解释为限于这里阐述的特定实施例。相反,提供这些实施例使得本公开将是彻底和完整的。贯穿全文,相同的数字表示相同的元素,并且在不同的实施例中使用撇号(prime notation)指示相似的元素。

在桌面虚拟化中,云服务提供商提供基于共享的“黄金主”桌面盘映像的副本操作的客户端机器。如上所述,该黄金映像也可以称为基础盘映像,并且包括操作系统和应用。有两种不同的方法将基础盘映像提供给客户端机器,客户端机器也可以称为虚拟机。

某些云服务提供商将基础盘映像从供应服务器流送到每个客户端机器,诸如例如Citrix Systems,Inc.的Citrix Provisioning Services(供应服务)(PVS)。基于在预引导期间提供网络驱动的每个客户端机器中的固件,这是可能的。网络驱动允许客户端机器从被流送到客户端机器的基础盘映像内的操作系统引导。流送基础盘映像的优势是,对基础盘映像进行一次(once)打补丁、更新和其他配置改变。然后,当每个客户端机器启动(bootup)时,它将使用更新的基础盘映像来启动。

其他云服务提供商将基础盘映像复制到每个客户端机器内的虚拟盘,诸如来自Microsoft Corp.的Azure Cloud和来自Google Inc.的Google Cloud Platform(云平台)。这些客户端机器在其固件中没有网络驱动,因为它们直接从被复制到其相应虚拟盘的基础盘映像中的操作系统引导。映像克隆的劣势是,当对基础盘映像进行改变时,然后每个客户端机器都需要在再次启动之前接收更新的基础映像的副本。要复制基础盘映像的次数取决于云服务提供商所支持的客户端机器的数量,例如,这可能涉及数百或数千个客户端机器。

本公开的技术和教导为不能够将基础盘映像流送到客户端机器的云服务提供商提供能够这样做的能力,因为客户端机器内的固件缺少网络驱动。如下面将详细解释的,这是利用具有提供在预引导期间使用的网络驱动的读高速缓存的客户端机器实现的。

先参考图1,可以在其中实现本公开的各个方面的非限制性网络环境10包括一个或多个客户端机器12A-12N、一个或多个远程机器16A-16N、一个或多个网络14、14'以及安装在计算环境10中一个或多个用具(appliance)18。客户端机器12A-12N经由网络14、14'与远程机器16A-16N通信。

在一些实施例中,客户端机器12A-12N经由中间用具18与远程机器16A-16N通信。所示的用具18位于网络14、14'之间并且也可以被称为网络接口或网关。在一些实施例中,用具108可以作为应用递送控制器(ADC)操作以向客户端提供对在在数据中心、云中部署的或跨客户端设备的范围作为软件即服务(SaaS)递送的业务应用和其他数据的访问,和/或提供诸如负载平衡之类的其他功能性等。在一些实施例中,可以使用多个用具18,并且可以将(一个或多个)用具18部署为网络14和/或14'的部分。

客户端机器12A-12N通常可以被称为客户端机器12、本地机器12、客户端12、客户端节点12、客户端计算机12、客户端设备12、计算设备12、端点12或端点节点12。远程机器16A-16N通常可以被称为服务器16或服务器场(farm)16。在一些实施例中,客户端设备12可以具有既充当寻求对由服务器16提供的资源的访问的客户端节点并且又充当提供对其他客户端设备12A-12N的托管资源的访问的服务器16的能力。网络14、14’通常可以被称为网络14。网络14可以以有线和无线网络的任何组合来配置。

服务器16可以是任何服务器类型,诸如例如:文件服务器;应用服务器;web服务器;代理服务器;用具;网络用具;网关;应用网关;网关服务器;虚拟化服务器;部署服务器;安全套接字层虚拟私有网络(SSL VPN)服务器;防火墙;web服务器;执行活动目录的服务器;云服务器;或执行提供防火墙功能性、应用功能性或负载平衡功能性的应用加速程序的服务器。

服务器16可以执行、操作或以其他方式提供可以是以下任意一个的应用:软件;程序;可执行指令;虚拟机;管理程序;web浏览器;基于web的客户端;客户端-服务器应用;瘦客户端计算客户端;ActiveX控件;Java applet;与互联网协议语音(VoIP)通信相关的软件,比如软IP电话;流式视频和/或音频的应用;用于促进实时数据通信的应用;HTTP客户端;FTP客户端;Oscar客户端;Telnet客户端;或可执行指令的任何其他集合。

在一些实施例中,服务器16可以执行远程呈现服务程序或其他程序,其使用瘦客户端或远程显示协议以捕捉由在服务器16上执行的应用生成的显示输出并将应用显示输出传输到客户端设备12。

在其他实施例中,服务器16可以执行虚拟机,该虚拟机向客户端设备12的用户提供对计算环境的访问。客户端设备12可以是虚拟机。可以通过例如管理程序、虚拟机管理器(VMM)或服务器16内的任何其他硬件虚拟化技术来管理虚拟机。

在一些实施例中,网络14可以是:局域网(LAN);城域网(MAN);广域网(WAN);主要公共网络14;以及主要私有网络14。附加实施例可以包括移动电话网络的网络14,其使用各种协议在移动设备之间进行通信。对于无线局域网(WLAN)内的短距离通信,协议可以包括802.11、蓝牙和近场通信(NFC)。

图2描绘了可用于实践客户端设备12、用具18和/或服务器16的实施例的计算设备20的框图。计算设备20包括一个或多个处理器22、易失性存储器24(例如,随机存取存储器(RAM))、非易失性存储器30、用户接口(UI)38、一个或多个通信接口26和通信总线48。

非易失性存储器30可以包括:一个或多个硬盘驱动器(HDD)或其他磁性或光学存储介质;一个或多个固态驱动器(SSD),诸如闪存驱动器或其他固态存储介质;一个或多个混合磁和固态驱动器;和/或一个或多个虚拟存储卷,诸如云存储装置,或此类物理存储卷和虚拟存储卷或其阵列的组合。

用户接口38可以包括图形用户接口(GUI)40(例如,触摸屏、显示器等)和一个或多个输入/输出(I/O)设备42(例如,鼠标、键盘、麦克风、一个或多个扬声器、一个或多个照相机、一个或多个生物计量扫描仪、一个或多个环境传感器以及一个或多个加速度计等)。

非易失性存储器30存储操作系统32、一个或多个应用34和数据36,使得例如由(一个或多个)处理器22从易失性存储器24执行操作系统32和/或应用34的计算机指令。在一些实施例中,易失性存储器24可以包括一个或多个类型的RAM和/或高速缓存存储器,其可以提供比主存储器更快的响应时间。可以使用GUI 40的输入设备输入数据,或从(一个或多个)I/O设备42接收数据。计算机20的各种元件可以经由通信总线48进行通信。

所示的计算设备20仅被示出为示例客户端设备或服务器,并且可以由具有任何类型的机器或机器的集合的任何计算或处理环境来实现,任何类型的机器或机器的集合可以具有能够如本文所述地操作的合适的硬件和/或软件。

(一个或多个)处理器22可以由一个或多个可编程处理器实现,以执行诸如计算机程序之类的一个或多个可执行指令,来执行系统的功能。如本文所使用的,术语“处理器”描述了执行功能、操作或操作的序列的电路。功能、操作或操作的序列可以被硬编码到电路中,或者通过保持在存储器设备中并由电路执行的指令的方式被软编码。处理器可以使用数字值和/或使用模拟信号来执行功、操作或操作的序列。

在一些实施例中,处理器可以以如下内容体现:一个或多个专用集成电路(ASIC)、微处理器、数字信号处理器(DSP)、图形处理单元(GPU)、微控制器、现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、多核处理器或具有关联存储器的通用计算机。

处理器22可以是模拟、数字或混合信号。在一些实施例中,处理器22可以是一个或多个物理处理器,或者一个或多个虚拟(例如,远程定位或云)处理器。包括多个处理器核的处理器和/或多个处理器可以提供功能性,所述功能性用于并行地同时执行指令或用于关于不止一条数据并行地同时执行一个指令。

通信接口26可以包括一个或多个接口,以使计算设备20能够通过各种有线和/或包括蜂窝连接的无线连接访问计算机网络,所述计算机网络诸如是局域网(LAN)、广域网(WAN)、个域网(PAN)或因特网。

在所描述的实施例中,计算设备20可以代表客户端设备的用户执行应用。例如,计算设备20可以执行由管理程序管理的一个或多个虚拟机。每个虚拟机可以提供执行会话,在该会话内,应用代表用户或客户端设备执行,所述会话诸如是托管的桌面会话。计算设备20还可以执行终端服务会话以提供托管的桌面环境。计算设备20可以提供对包括一个或多个应用、一个或多个桌面应用以及可以在其中执行一个或多个应用的一个或多个桌面会话的远程计算环境的访问。

示例虚拟化服务器16可以使用Fort Lauderdale, Florida的Citrix Systems,Inc.(“Citrix Systems”)提供的Citrix Hypervisor来实现。虚拟app和桌面会话可以进一步由也是来自Citrix Systems的Citrix Virtual Apps和Desktops(CVAD)提供。CitrixVirtual Apps and Desktops是一种应用虚拟化解决方案,其利用从任何设备的对包括虚拟app、桌面和数据会话的虚拟会话的通用访问加上实现可扩展VDI解决方案的选项增强了生产力。虚拟会话还可以包括例如软件即服务(SaaS)和桌面即服务(DaaS)会话。

参考图3,描绘了云计算环境50,其也可以被称为云环境、云计算或云网络。云计算环境50可以向多个用户或租户提供共享计算服务和/或资源的递送。例如,共享资源和服务可以包括但不限于网络、网络带宽、服务器、处理、存储器、存储装置、应用、虚拟机、数据库、软件、硬件、分析和智能。

在云计算环境50中,一个或多个客户端52A-52C(诸如上述那些)与云网络54通信。云网络54可以包括后端平台,例如服务器、存储装置、服务器场或数据中心。用户或客户端52A-52C可以对应于单个组织/租户或多个组织/租户。更特别地,在一个示例实现中,云计算环境50可以提供服务于单个组织的私有云(例如,企业云)。在另一个示例中,云计算环境50可以提供服务于多个组织/租户的社区或公共云。在其他实施例中,云计算环境50可以提供混合云,该混合云是公共云和私有云的组合。公共云可以包括由对于客户端52A-52C或企业/租户而言的第三方维护的公共服务器。服务器可能位于远程地理位置或其他位置的异地(off-site)。

云计算环境50可以提供资源池化,以通过多租户环境或多租户模型经由客户端52A-52C服务于多个用户,其中响应于相应环境中的不同需求而动态地分配和重新分配不同的物理和虚拟资源。多租户环境可以包括可以提供软件、应用或软件应用的单个实例来服务多个用户的系统或架构。在一些实施例中,云计算环境50可以提供按需自助服务(self-service),以针对多个客户端52A-52C跨网络单方地(unilaterally)供应计算能力(例如,服务器时间、网络存储)。云计算环境50可以提供弹性以响应于来自一个或多个客户端52的不同需求而动态地向外扩展(scale out)或向内扩展(scale in)。在一些实施例中,计算环境50可以包括或提供监视服务以监视、控制和/或生成对应于提供的共享服务和资源的报告。

在一些实施例中,云计算环境50可以提供不同类型的云计算服务的基于云的递送,不同类型的云计算服务诸如例如是软件即服务(SaaS)56、平台即服务(PaaS)58、基础设施即服务(IaaS)60和桌面即服务(DaaS)62。IaaS可以指代用户租用指定时间段内所需的基础设施资源的使用。IaaS提供商可以从大型池提供存储、联网、服务器或虚拟化资源,从而允许用户通过根据需要访问更多资源来快速向上扩展(scale up)。IaaS的示例包括Seattle, Washington的Amazon.com, Inc.提供的AMAZON WEB SERVICES、San Antonio,Texas的Rackspace US, Inc.提供的RACKSPACE CLOUD、Mountain View, California的Google Inc. 提供的Google Compute Engine或Santa Barbara, California的RightScale, Inc.提供的RIGHTSCALE。

PaaS提供商可以提供由IaaS提供的功能性,包括例如存储、联网、服务器或虚拟化以及附加资源,诸如例如操作系统、中间件或运行时资源。PaaS的示例包括由Redmond,Washington的Microsoft Corporation提供的WINDOWS AZURE、由Google Inc.提供的Google App Engine和由San Francisco, California的Heroku, Inc.提供的HEROKU。

SaaS提供商可以提供PaaS提供的资源,包括存储、联网、服务器、虚拟化、操作系统、中间件或运行时资源。在一些实施例中,SaaS提供商可以提供附加资源,包括例如数据和应用资源。SaaS的示例包括Google Inc.提供的GOOGLE APPS 、San Francisco,California的Salesforce.com Inc.提供的SALESFORCE或Microsoft Corporation提供的OFFICE 365。SaaS的示例还可以包括数据存储提供商,例如由San Francisco, California的Dropbox,Inc.提供的DROPBOX、由Microsoft Corporation提供的Microsoft ONEDRIVE、由Google Inc.提供的Google Drive或由Cupertino, California的Apple Inc.提供的Apple ICLOUD。

与SaaS相似,DaaS(也称为托管桌面服务)是虚拟桌面基础设施(VDI)的形式,其中虚拟桌面会话通常作为云服务与在虚拟桌面上使用的app一起递送。Citrix Cloud是DaaS递送平台的一个示例。DaaS递送平台可以被托管在公共云计算基础设施上,诸如来自Redmond, Washington的Microsoft Corporation的AZURE CLOUD(这里是“Azure”)或Seattle, Washington的Amazon.com,Inc.提供的AMAZON WEB SERVICES(这里是“AWS”),例如。在Citrix Cloud的情况中,Citrix Workspace app可用作用于将app、文件和桌面(无论是内部部署(on-premises)还是在云中)整合在一起的单个入口点以实现统一的体验。

现在将参考图4更加详细地讨论Citrix Workspace app提供的统一体验。CitrixWorkspace app在本文中通常称为工作空间app 70。工作空间app 70是用户如何访问其工作空间资源,其一个类别是应用。这些应用可以是SaaS app、web app或虚拟 app。工作空间app 70还赋予用户对其桌面的访问,其桌面可以是本地桌面或虚拟桌面。此外,工作空间app 70赋予用户对其文件和数据的访问,这些文件和数据可以存储在许多库中。文件和数据可以被托管在Citrix ShareFile上、被托管在内部部署网络文件服务器上或者被托管在一些其他云存储提供商中,一些其他云存储提供商诸如例如是Microsoft OneDrive或Google Drive Box。

为了提供统一的体验,可以定位用户所需的所有资源并且用户所需的所有资源可从工作空间app 70访问。工作空间app 70以不同的版本提供。工作空间app 70的一个版本是用于桌面72的已安装应用,其可以基于Windows、Mac或Linux平台。工作空间app 70的第二版本是用于移动设备74的已安装应用,其可以基于iOS或Android平台。工作空间app 70的第三版本使用超文本标记语言(HTML)浏览器来向用户提供对其工作空间环境的访问。当用户不想安装工作空间app或没有权限安装工作空间app时,例如在操作公共信息亭76时,使用工作空间app 70的web版本。

工作空间 app 70的这些不同版本中的每个都可以有利地提供相同的用户体验。这有利地允许用户在不同平台中从客户端设备72移动到客户端设备74移动到客户端设备76,并且仍然得到针对其工作空间的相同的用户体验。客户端设备72、74和76被称为端点。

如上所述,工作空间 app 70支持Windows、Mac、Linux、iOS和Android平台以及具有HTML浏览器(HTML5)的平台。工作空间app 70结合了多个引擎80-90,从而允许用户访问多种类型的app和数据资源。每个引擎80-90针对特定资源优化用户体验。每个引擎80-90还向组织或企业提供对用户活动和潜在安全威胁的洞察。

嵌入式浏览器引擎80将SaaS和web app保持被包含在工作空间app 70中,而不是在本地安装且不受管理的浏览器上启动它们。借助嵌入式浏览器,工作空间app 70能够在SaaS和web app中拦截用户选择的超链接,并在批准、拒绝或隔离访问之前请求风险分析。

高清晰度体验(HDX)引擎82建立到在Windows或Linux操作系统上运行的虚拟浏览器、虚拟 app和桌面会话的连接。使用HDX引擎82,Windows和Linux资源可以在端点上远程运行,而显示保持本地。为了提供最佳的可能用户体验,HDX引擎82利用不同的虚拟通道来适应改变的网络条件和应用需求。为了克服高延迟或高分组丢失网络,HDX引擎82自动实现优化的传输协议和更大的压缩算法。每个算法针对诸如视频、图像或文本之类的某类型的显示进行了优化。HDX引擎82标识应用中的这些类型的资源并将最适当的算法应用于屏幕的该部分。

对于许多用户而言,工作空间以数据为中心。内容协作引擎84允许用户将所有数据集成到工作空间中,而不管该数据驻留内部部署上还是在云中。内容协作引擎84允许管理员和用户创建到公司和用户特定的数据存储位置的连接器的集合。例如,这可以包括OneDrive、Dropbox和内部部署网络文件共享。用户可以将文件维持在多个库中并允许工作空间 app 70将它们合并到单个个性化库中。

联网引擎86标识端点或端点上的app是否需要到安全后端资源的网络连接性。联网引擎86可以为整个端点设备自动建立完全的VPN隧道,或者它可以创建app特定的μ-VPN连接。µ-VPN定义应用和端点设备可以访问什么后端资源,因此保护了后端基础设施。在许多情况下,某些用户活动受益于独特的基于网络的优化。如果用户请求文件副本,则工作空间app 70可以自动同时利用多个网络连接以更快地完成活动。如果用户发起VoIP呼叫,则工作空间 app 70通过跨多个网络连接复制呼叫来改进其质量。联网引擎86仅使用最先到达的分组。

分析引擎88报告用户的设备、位置和行为,其中基于云的服务标识任何潜在的异常,任何潜在的异常可能是被盗的设备、被黑客攻击的身份或准备离开公司的用户的结果。分析引擎88收集的信息通过自动实现防范措施(counter-measure)来保护公司资产。

管理引擎90使工作空间app 70保持最新(current)。这不仅为用户提供了最新能力,还包括额外的安全性增强。工作空间app 70包括自动更新服务,其基于可定制策略例行检查并自动部署更新。

现在参考图5,将讨论基于工作空间 app 70向用户提供统一体验的工作空间网络环境100。工作空间app 70的桌面、移动和web版本都与Citrix Cloud 104中运行的工作空间体验服务102进行通信。然后,工作空间体验服务102经由资源源(feed)微服务108拉入(pull in)所有不同的资源源16。就是说,来自Citrix Cloud 104中运行的其他服务的所有不同的资源均由资源源微服务108拉入。不同的服务可以包括虚拟app和桌面服务110、安全浏览器服务112、端点管理服务114、内容协作服务116和访问控制服务118。组织或企业订阅的任何服务都将被自动拉入工作空间体验服务102中并被递送到用户的工作空间app 70。

除了云源120之外,资源源微服务108可以拉入内部部署源122。云连接器124用于提供在内部部署数据中心中运行的虚拟app和桌面部署。例如,桌面虚拟化可以由Citrix虚拟app和桌面126、Microsoft RDS 128或VMware Horizon 130提供。除了云源120和内部部署源122外,例如来自物联网(IoT)设备134的设备源132可以由资源源微服务108拉入。站点聚合用于将不同资源绑定到用户的整体工作空间体验中。

云源120、内部部署源122和设备源132中的每个利用不同且独特类型的应用为用户提供工作空间体验。工作空间体验可以支持本地app、SaaS app、虚拟app和桌面浏览器app以及存储app。随着源继续增加和扩展,工作空间体验能够在用户的整体工作空间中包括附加资源。这意味着用户将能够接触(get to)他们需要访问的每一个应用。

仍然参考工作空间网络环境20,将描述关于如何向用户提供统一体验的一系列事件。统一体验始于用户使用工作空间app 70连接到Citrix Cloud 104中运行的工作空间体验服务102,并呈现其身份(事件1)。身份例如包括用户名和密码。

工作空间体验服务102将用户的身份转发到Citrix Cloud 104中的身份微服务140(事件2)。身份微服务140基于组织的工作空间配置向正确身份提供者142认证用户(事件3)。认证可以基于需要部署云连接器146的内部部署活动目录144。认证也可以基于AzureActive Directory 148或甚至第三方身份提供者150,诸如例如Citrix ADC或Okta 。

一旦被授权,工作空间体验服务102就从资源源微服务108请求授权资源的列表(事件4)。对于每个配置的资源源106,资源源微服务108从单签(single-sign)微服务152请求身份令牌(事件5)。

将资源源特定身份令牌传递给认证的每个资源的点(事件6)。通过Citrix CloudConnector 124与内部部署资源122进行联系。每个资源源106回复针对相应身份授权的资源的列表(事件7)。

资源源微服务108聚合来自不同资源源106的所有项目,并转发(事件8)到工作空间体验服务102。用户从工作空间体验服务102选择资源(事件9)。

工作空间体验服务102将请求转发到资源源微服务108(事件10)。资源源微服务108从单点登录(single sign-on)微服务152请求身份令牌(事件11)。用户的身份令牌被发送到工作空间体验服务102(事件12),其中生成启动票证并将其发送给用户。

用户发起到网关服务160的安全会话并呈现启动票证(事件13)。网关服务160发起到适当资源源106的安全会话并呈现身份令牌以无缝地认证用户(事件14)。一旦会话初始化,用户就能够利用资源(事件15)。通过单个访问点或应用递送整个工作空间有利地改进了生产率并流水线化用户的共同工作流程。

现在参考图6,当客户端机器210中的固件在预引导期间不提供网络驱动时,计算系统200为客户端机器210提供接收从服务器230流送的基础盘映像232的能力。固件用于在预引导过程期间执行硬件初始化。预引导过程是预引导执行环境(PXE)的部分,其允许尚未加载有操作系统的客户端机器210被配置和预引导。如下面将详细讨论的,客户端机器210包括具有读高速缓存212的存储器,该读高速缓存212包括预引导数据214。预引导数据214由固件访问,并且包括网络驱动,该网络驱动用于连接至通信网络240以接收流送的基础盘映像232。

所示的计算系统200包括服务器230,该服务器230被配置为通过通信网络240流送基础盘映像232。客户端机器210包括被配置为存储包括网络驱动的预引导数据214的读高速缓存212。处理器216耦合到读高速缓存212。处理器216被配置为使用预引导数据214来发起客户端机器210的预引导。在网络驱动运行之后,处理器216能够经由通信网络240从服务器230接收流送的基础盘映像232。

如上所述,基础盘映像232包括操作系统234和应用236。操作系统234包括操作系统网络驱动。预引导数据214中的网络驱动与操作系统网络驱动相同。操作系统234例如可以是来自Microsoft Corp.的Microsoft Windows。客户端机器210中的固件被预安装以在预引导过程期间执行硬件初始化,并且是客户端机器210上电时要运行的第一个软件。

固件例如可以是UEFI(统一可扩展固件接口)固件。如本领域技术人员容易理解的,UEFI固件旨在代替BIOS(基本输入/输出系统)固件。

当客户端机器旨在使用存储在客户端机器内的本地盘上的基础盘映像进行操作时,在其固件中不需要网络驱动。这是因为客户端机器将从存储在本地盘上的基础盘映像引导。因此,客户端机器210的制造商已从固件移除了网络驱动,因为不需要引导客户端机器210。

为了使诸如Azure和Google Cloud Platform之类的云服务提供商从使用存储在客户端机器210内的本地盘上的基础盘映像改变为使用从服务器230流送的基础盘映像232,客户端机器210中的处理器216需要在预引导期间访问通信网络240。如果客户端机器210不能访问通信网络240,则客户端机器210不能变得可操作。读高速缓存212包括操作系统234的子集,其包括操作系统网络驱动。读高速缓存器212允许客户端机器210进行预引导而不经由通信网络240与服务器230进行通信。当没有网络驱动时,读高速缓存器212有利地在固件预引导期间桥接间隙(gap)。

客户端机器210内的处理器216被配置为针对其中包括的预引导数据214访问到达高速缓存212。更特别地,处理器216执行客户端机器210内的操作系统加载器。处理器216在预引导期间通过本地配置文件检索所需的参数,而无需经由通信网络240连接到服务器230。使用本地配置文件配置客户端机器210的初始设置。所需的参数包含要转变到操作系统加载器的数据。

在读高速缓存器212中的网络驱动已经被加载并开始运行之后,发起经由通信网络240与服务器230的通信。响应于网络驱动运行,处理器216从使用读高速缓存212中的预引导数据214切换为使用流送的基础盘映像232中的数据。与服务器230的通信允许客户端机器210经由通信网络240(例如,经由流送)接收基础盘映像232的其余部分。

固件搜索数据以启动客户端机器210的操作系统。由于读高速缓存212中的预引导数据214支持操作系统的有限部分,因此指示处理器216使用读高速缓存212中的网络驱动来继续加载客户端机器210所需的操作系统234的其余部分。一旦网络驱动运行,客户端机器210就从预引导环境转变到接收流送的基础盘映像232中的数据的环境。

在一个实施例中,读高速缓存212中的预引导数据214与服务器230将要流送的基础盘映像232中的操作系统相同。该方法确保预引导数据214包含操作系统加载器、内核和引导时(boot-time)驱动启动所需的盘块。内核在操作系统的核心处并促进硬件和软件部件之间的交互。

预引导数据214与基础盘映像232中的操作系统相同的权衡在于,读高速缓存212的大小大于预引导客户端机器210实际需要的大小。在该方法中,例如,读高速缓存212的大小可以是大约10 GB。

为了减小读高速缓存212的大小,读高速缓存212中的预引导数据214可以是操作系统的子集。该方法可以基于对在预引导环境中操作系统加载器将加载什么文件的确定。例如,生成引导过程中使用的文件的起始最小列表,并有选择地添加预引导过程中所需的文件。由于基础盘映像232在不同的云服务提供商之间有所不同,因此该确定可以是迭代过程以标识预引导客户端机器210在读高速缓存212中需要哪些文件。

现在参考图7,将更详细地讨论计算系统200。服务器230包括基础盘映像232,用于服务于通信网络240上的任何数量的客户端机器210的任何数量的虚拟或物理的供应机器。基础盘映像232也可以称为基础虚拟硬盘(VHDX)。基础盘映像232包括客户端机器102的供应虚拟机使用的操作系统234和应用236。基础盘映像232可以在服务器230内的物理盘236的NTFS(新技术文件系统)文件系统234上执行。NTFS文件系统是Windows操作系统用于在物理盘236中的盘分区上存储和检索文件的文件系统。

更特别地,基础盘映像232包括任何软件、硬件或软件与硬件的组合、程序、可执行文件(executables)、功能、指令、数据或库的功能性。基础盘映像232可以包括操作任何应用或服务所需或使用的文件、程序、指令、应用或过程。基础盘映像232可以包括任何功能性以使能在客户端机器210上执行的供应机器的操作。

NTFS是操作系统用于在虚拟或物理盘上存储和检索文件的文件系统。NTFS可以是分层文件系统或非分层文件系统,并且可以被配置为在本文引用的任何操作系统上操作。NTFS可以是或包括文件分配表(FAT)归档系统(filing system)的功能性。

客户端机器210包括存储读高速缓存文件212的物理盘228,读高速缓存文件212驻留在物理盘228的NTFS文件系统227上。NTFS文件系统227可以呈现用于物理盘228的安装点D驱动器。安装点是驱动器,其代表由NTFS文件系统管理的物理盘228上的数据。客户端机器210进一步包括虚拟盘226。NTFS文件系统224可以呈现用于虚拟盘226的安装点C驱动器。C驱动器为客户端机器210中的处理器216提供环境以执行从服务器230流送的基础盘映像232提供的操作系统234、应用236和服务。

自举(bootstrap)功能220用于控制或管理用于启动客户端机器210的预引导和引导过程。自举功能220基于软件并且可以包括诸如UEFI应用之类的程序。

虚拟盘控制器218用于控制或管理客户端机器210的虚拟盘226。虚拟盘控制器218可以包括任何软件、硬件或软件与硬件的组合、程序、功能、可执行文件、指令、数据或库。虚拟盘控制器218可以在客户端机器210的启动或预引导期间响应于来自自举功能220的指令来启动虚拟盘226。

类似地,物理盘控制器222用于控制或管理客户端机器210的物理盘228。物理盘控制器222可以在客户端机器210的启动或预引导期间启动物理盘228。

在预引导期间,客户端机器210中的固件从位于物理盘228上的指定固件加载器启动。这是经由物理盘控制器222执行的。固件加载器在物理盘228内的FAT(文件分配表)分区上。固件加载器可以是EFI(可扩展固件接口)文件,该文件包括引导加载器可执行文件,该可执行文件包含关于如何进行引导过程的数据。EFI文件与UEFI固件关联。

固件加载器在无网络(networkless)预引导环境中操作。无网络预引导环境意味着客户端机器210在预引导期间不能连接到通信网络240。固件加载器使用本地配置文件检索所需的参数,并且本地配置文件可以是INI文件。INI文件是用于处理器216使用的初始化文件格式的文件扩展名。由于预引导数据214在读高速缓存212中可用,因此固件不需要在早期预引导期间与服务器230进行通信。

此时,固件加载器正在指望从虚拟盘226上的C驱动器针对操作系统加载器读取块。然而,固件加载器经由虚拟盘控制器218和自举功能220嵌入NTFS文件系统驱动以找到位于物理盘228上的读高速缓存文件212。读高速缓存文件212在客户端机器210的创建期间被部署,并且是基础盘映像232上的操作系统的子集。

在某些示例中,读高速缓存文件212可以是虚拟硬盘(VHDX)文件。一旦找到读高速缓存文件212,固件加载器就将其安装为虚拟盘。例如,虚拟盘可以是Microsoft Hyper-V虚拟硬盘。然后将虚拟盘226作为新添加的盘呈现给固件。固件加载器开始从虚拟盘226加载操作系统加载器。随着操作系统234引导,操作系统234将呈现安装点C驱动器。

在该预引导过程期间,从读高速缓存212加载包括网络驱动的操作系统内核。然后,将控制传递给操作系统内核,该操作系统内核选择网络接口控制器(NIC)以用于将网络驱动连接到通信网络240。此时,操作系统234转变为使用网络驱动从基础盘映像232流送数据,而不是使用读高速缓存212中的预引导数据。

现在参考图8,将讨论示出了用于操作客户端机器210的方法的一般流程图300。从一开始(框302),该方法包括在框304处将包括网络驱动的预引导数据214存储在客户端机器210内的读高速缓存212中。该方法还包括在框306处操作耦合至读高速缓存212的处理器216以使用预引导数据214发起客户端机器210的预引导。在网络驱动运行之后,在框308处,经由通信网络240从服务器230接收流送的基础盘映像。该方法在框310处结束。

现在参考图9,将讨论示出了用于操作客户端机器210的方法的更详细的流程图400。从一开始(框402),该方法包括在框404处启动固件加载器。固件加载器用于在预引导过程期间执行硬件初始化。在框406处,固件加载器访问具有包括网络驱动的预引导数据的读高速缓存212。

由于读高速缓存212是操作系统234的子集,因此操作系统234在框408处开始运行。在框410处关于网络驱动是否正在运行做出确定。如果网络驱动没有在运行,则该方法循环回到框408,直到网络驱动正在运行。如果网络驱动没有在运行,则客户端机器210不能连接到通信网络240。

当确定网络驱动正在运行时,则客户端机器210内的处理器216在框412处从使用读高速缓存212中的预引导数据以满足所需的块切换为使用在流送的基础盘映像232中接收的数据。客户端机器210经由接收的流送的基础盘镜像232中的数据继续引导过程。该方法在框414处结束。

下面的示例是另外的示例实施例,来自于其的其他排列和配置对于本领域技术人员而言将是清楚的。

示例1是一种计算系统,其包括被配置为通过通信网络流送基础盘映像的服务器和客户端机器。客户端机器包括被配置为存储包括网络驱动的预引导数据的读高速缓存,以及耦合至读高速缓存的处理器。处理器被配置为使用预引导数据发起客户端机器的预引导,并且在网络驱动运行之后,经由通信网络从服务器接收流送的基础盘映像以继续引导客户端机器。

示例2包括示例1的主题,其中基础盘映像包括操作系统,并且其中预引导数据还包括包括网络驱动的操作系统的子集。

示例3包括示例1-2中任一项的主题,其中,操作系统包括操作系统网络驱动,并且其中,网络驱动被配置为与操作系统网络驱动相同。

示例4包括示例1-3中任一项的主题,其中处理器还被配置为响应于网络驱动运行从使用读高速缓存中的预引导数据切换为使用流送的基础盘映像中的数据以继续引导客户端机器。

示例5包括示例1-4中任一项的主题,其中,处理器还被配置为在预引导时执行指令以针对预引导数据访问读高速缓存。

示例6包括示例1-5中任一项的主题,其中,客户端机器还包括提供要在预引导时执行的指令的固件,并且其中,固件包括UEFI(统一可扩展固件接口)固件。

示例7包括示例1-6中任一项的主题,其中,预引导数据包括包括网络驱动的操作系统内核,并且随着操作系统内核开始运行,网络驱动连接到通信网络。

示例8是一种客户端机器,包括读高速缓存,被配置为存储包括网络驱动的预引导数据,以及耦合到读高速缓存的处理器。处理器被配置为使用预引导数据发起客户端机器的预引导,并且在网络驱动运行之后,经由通信网络从服务器接收流送的基础盘映像以继续引导客户端机器。

示例9包括示例8的主题,其中基础盘映像包括操作系统,并且其中预引导数据还包括包括网络驱动的操作系统的子集。

示例10包括示例8-9中任一项的主题,其中,操作系统包括操作系统网络驱动,并且其中,网络驱动被配置为与操作系统网络驱动相同。

示例11包括示例8-10中任一项的主题,其中,处理器还被配置为从响应于网络驱动运行从使用读高速缓存中的预引导数据切换为使用流送的基础盘映像中的数据以继续引导客户端机器。

示例12包括示例8-11中任一项的主题,其中,处理器还被配置为在预引导时执行指令以针对预引导数据访问读高速缓存。

示例13包括示例8-12中任一项的主题,其中客户端机器还包括用于提供要在预引导时执行的指令的固件,并且其中,固件包括UEFI(统一可扩展固件接口)固件。

示例14包括示例8-13中任一项的主题,其中,预引导数据包括包括网络驱动的操作系统内核,并且随着操作系统内核开始运行,网络驱动连接到通信网络。

示例15是一种方法,包括由客户端机器在客户端机器内的读高速缓存中存储包括网络驱动的预引导数据,以及由客户端机器使用预引导数据发起客户端机器的预引导。在网络驱动运行后,客户端机器经由通信网络从服务器接收流送的基础盘映像以继续引导客户端机器。

示例16包括示例15的主题,其中基础盘映像包括操作系统,并且其中预引导数据还包括包括网络驱动的操作系统的子集。

示例17包括示例15-16中任一项的主题,其中,操作系统包括操作系统网络驱动,并且其中,网络驱动被配置为与操作系统网络驱动相同。

示例18包括示例15-17中任一项的主题,其中,客户端机器还被操作以响应于网络驱动运行从使用读高速缓存中的预引导数据切换为使用流送的基础盘映像中的数据。

示例19包括示例15-18中任一项的主题,还包括由客户端机器在预引导时执行指令以针对预引导数据访问读高速缓存。

示例20包括示例15-19中任一项的主题,其中,预引导数据包括包括网络驱动的操作系统内核,并且随着操作系统内核开始运行,网络驱动连接到通信网络。

如本领域的技术人员在阅读以上公开时将理解的,本文描述的各个方面可以体现为设备、方法或计算机程序产品(例如,具有用于执行所述操作或步骤的计算机可执行指令的非暂时性计算机可读介质)。因此,那些方面可以采取完全硬件实施例、完全软件实施例或组合软件和硬件方面的实施例的形式。

此外,此类方面可以采取计算机程序产品的形式,该计算机程序产品由一个或多个计算机可读存储介质存储,该计算机可读存储介质具有体现在该存储介质之中或之上的计算机可读程序代码或指令。可以利用任何合适的计算机可读存储介质,包括硬盘、CD-ROM、光学存储设备、磁性存储设备和/或其任何组合。

本领域技术人员将想到受益于前述描述和相关联的附图中呈现的教导的许多修改和其他实施例。因此,应当理解,前述内容不限于示例实施例,并且修改和其他实施例旨在被包括在所附权利要求书的范围内。

25页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:多核电子装置及其分组处理方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!