CN104981776B - 对个人虚拟磁盘的系统更新 - Google Patents

对个人虚拟磁盘的系统更新 Download PDF

Info

Publication number
CN104981776B
CN104981776B CN201480008191.4A CN201480008191A CN104981776B CN 104981776 B CN104981776 B CN 104981776B CN 201480008191 A CN201480008191 A CN 201480008191A CN 104981776 B CN104981776 B CN 104981776B
Authority
CN
China
Prior art keywords
disk layer
renewal
virtual machine
virtual
disk
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.)
Expired - Fee Related
Application number
CN201480008191.4A
Other languages
English (en)
Other versions
CN104981776A (zh
Inventor
迈克尔·拉金
沙希基兰·乌利
威廉·德福雷斯特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 CN104981776A publication Critical patent/CN104981776A/zh
Application granted granted Critical
Publication of CN104981776B publication Critical patent/CN104981776B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Debugging And Monitoring (AREA)

Abstract

公开了用于更新虚拟桌面基础架构系统中的一批软件资源的方法和系统。与磁盘层的分级结构中的例如基本、部门或用户虚拟磁盘的虚拟磁盘元件的组相关的虚拟机被提供以一个或多个可用软件资源的更新。可用于部署在虚拟桌面基础架构系统中的更新由控制器服务器记录在数据库中。控制器服务器采用与磁盘的分级结构中的每个磁盘层相关的在其上应用可用更新的所有虚拟机的编目。控制器服务器将一个或多个更新应用于识别出的虚拟机,并将更新应用结果存储在数据库中。控制器服务器结合一个或多个更新在之前应用的情况,将所述更新应用于与在磁盘层的分级结构中的后代磁盘层相关的虚拟机。

Description

对个人虚拟磁盘的系统更新
本申请要求2013年2月11日提交的标题为“对个人虚拟磁盘的系统更新(SystemUpdates with Personal Virtual Disks)”且指定William DeForeest等人为发明人的编号为13/764,295的美国专利申请的优先权,该申请通过引用被全部并入本文。
领域
本申请总体上涉及计算机虚拟化和创建并管理虚拟机。特别是,其中的各个方面涉及在桌面虚拟化系统中的虚拟机的更新的管理。
背景
在传统上,个人计算机配置包括操作系统、应用和用户设置的组合,其中的每个都由所有者或管理员持续不断的进行单独的管理。然而,很多组织现在使用桌面虚拟化系统来提供更灵活的选择以处理他们的用户的变化的需要。在桌面虚拟化系统中,用户的计算环境(例如,操作系统、应用和/或用户设置)可与用户的物理计算设备(例如,智能电话、膝上型计算机、台式计算机)分离。使用客户端-服务器技术,“虚拟化桌面”可存储在远程服务器中并由远程服务器管理,而不是存储在客户端计算设备的本地存储器中。
存在几种不同类型的桌面虚拟化系统。作为例子,虚拟桌面基础架构(VDI)指运行存在于服务器上的虚拟机内部的用户桌面的过程。VDI和其它基于服务器的桌面虚拟化系统可为每个用户提供个性化桌面,同时允许集中式管理和安全。在这样的系统中的服务器可包括虚拟桌面镜像和系统配置信息的存储器以及提供虚拟机并允许用户互连到它们的软件部件。例如,VDI服务器可包括一个或多个超级管理器(虚拟机管理器)以创建并维护多个虚拟机、管理超级管理器的软件、连接中间人和提供并管理虚拟桌面的软件。VDI管理是复杂和冗长乏味的过程。
桌面虚拟化系统可包括一个或多个虚拟磁盘层,其包括磁盘层或“磁盘树”的分级结构。在磁盘层的分级结构中的每个磁盘层由一个或多个虚拟磁盘组成。这些磁盘层的构造可通过各种装置而发生。磁盘树牵涉在操作系统引导期间执行的运行时的融合,其提供与包含在每个磁盘树中的数据有关的信息,并导致一个或多个虚拟机的产生用于由最终用户使用。
概述
根据前述背景,下文介绍了本公开的简化概述,以便提供对本文描述的一些方面的基本理解。该概述并不是广泛概述,且并不打算识别关键或重要元件或描绘权利要求的范围。下面的概述仅仅介绍以简化形式描述的各个方面,以作为下面提供的更详细描述的序言。
更新VDI系统中的计算机系统在现代计算中即便不是每星期一次或每日一次的事件,也是每月一次的事件。最新发现的安全威胁、软件的新版本和增加新应用都可能需要改变存储在计算机磁盘中的数据。例如,在通常都部署了VDI系统的信息技术部门中,可能存在管理可用更新并使用算法和由操作人员做出的选择的结合来将它们发布到目标计算机系统的中央更新管理系统。然而,目标系统设置的选择可能是非常广泛和不精确的。此外,操作人员或许可能以各种可能的系统作为目标,且依赖于针对系统的过滤过程来防止系统误差。因此,本文描述的方面提供用于更新在虚拟桌面基础架构系统中的一批软件资源的改进的系统和方法。如本文所使用的,更新可包括补丁、软件更新和可能需要应用于一个或多个软件资源的任何其它软件维护。
根据本公开的某些方面,配置成接收一个或多个软件资源的多个更新的更新管理数据库将一个或多个更新发布到磁盘层的分级结构。控制器服务器将一个或多个更新记录在数据存储装置中。控制器服务器接着识别磁盘层的分级结构中的每个磁盘层的多个虚拟机,并将一个或多个更新应用于在磁盘层的分级结构中的预定磁盘层中的一个或多个虚拟机。应用一个或多个更新的尝试的结果存储在控制器服务器处。如果对给定目标虚拟机的更新是成功的,则一个或多个所发布的更新对与磁盘层的分级结构中的后续磁盘层相关的多个虚拟机中的每个虚拟机的应用被暂停。如果对给定目标虚拟机的更新是不成功的,则一个或多个所发布的更新应用于与紧接着预定磁盘层的后代磁盘层相关的多个虚拟机中的每个虚拟机。这个迭代的过程继续,直到所有虚拟机都已经作为了所发布的更新的目标或作为一个或多个所发布的更新的目标的所有剩余的虚拟机都是已经成功地被更新的系统的后代为止。
根据本公开的另外的各个方面,更新管理数据库可接收一个或多个软件资源的更新。控制器服务器将这个新的更新记录在数据仓库中,并识别可作为更新的目标的一个或多个可用软件资源。此外,控制器服务器识别在具有作为更新的目标的一个或多个识别出的软件资源的磁盘层的分级结构中的每个磁盘层。控制器服务器还确定和识别在具有一个或多个识别出的软件资源的磁盘层的分级结构中的最低磁盘层。之后,控制器服务器可将在识别出的磁盘层中的适当的虚拟机作为目标以接收更新,且每个后代虚拟机——如果有的话——可在将更新应用于后代磁盘层的后续迭代期间接收更新。
附图的简要说明
在以通用术语如此描述了本公开的各个方面之后,现在将参考附图,附图不一定按比例绘制,且其中:
图1示出了示例操作环境,本公开的各个方面可在其中被实现。
图2示出了可根据本文描述的一个或多个例证性方面使用的计算设备。
图3示出了可根据本文描述的一个或多个例证性方面使用的计算设备。
图4是描绘根据本文描述的一个或多个例证性方面的虚拟化服务器的实施方式的方框图。
图5示出了描绘根据本文描述的一个或多个例证性方面的虚拟桌面基础架构系统的实施方式的方框图。
图6是示出根据本文描述的一个或多个例证性方面的用于监控并管理在虚拟桌面基础架构系统中的软件资源的更新的某些部件的方框图。
图7是示出根据本文描述的一个或多个例证性方面,更新虚拟桌面基础架构系统中的一批软件资源的示例过程的流程图。
详细描述
在下面关于各种实施方式的描述中,参考了构成其中的一部分的附图,且在附图中通过例证的方式示出了各个实施方式,而本文所述的各个方面可在所述各个实施方式中实施。应理解,可利用其它实施方式,且可做出结构和功能修改,而不偏离本公开的范围和精神。
如本领域中的技术人员在阅读下面的公开时将认识到的,本文描述的各个方面可体现为方法、数据处理系统或计算机程序产品。因此,这些方面可采取全硬件的实施方式、全软件的实施方式或组合软件和硬件的各个方面的实施方式的形式。此外,这些方面可采取由具有计算机可读程序代码或指令的一个或多个计算机可读存储介质存储、实现在存储介质中或存储介质上的计算机程序产品的形式。可利用任何适当的计算机可读存储介质,其中包括硬盘、CD-ROM、光学存储设备、磁性存储设备和/或其任何组合。此外,表示如本文所述的数据或事件的各种信号可在源和目的地之间以通过信号传导介质例如金属线、光纤和/或无线传输介质(例如,空气和/或空间)传播的电磁波的形式被传送。
此外,应理解,本文使用的措辞和术语是为了描述的目的,且不应被视为限制性的。更确切地,本文使用的短语和术语应被给予其最广泛的解释和含义。“包括(including)”和“包括(comprising)”及其变形的使用意欲包括在其后列出的项及其等同项以及另外的项及其等同项。
图1示出可根据本公开的一个或多个例证性实施方式使用的示例计算环境100中的通用计算设备101(例如计算服务器106a)的示例方框图。根据一个或多个方面,通用计算设备101可以是在配置成为客户端访问设备提供虚拟机的单服务器或多服务器桌面虚拟化系统(例如云系统)中的服务器106a。通用计算设备101可具有用于控制服务器及其相关部件(包括随机存取存储器(RAM)105、只读存储器(ROM)107、输入/输出(I/O)模块109和存储器115)的整体操作的处理器103。
I/O模块109可包括鼠标、键盘、触摸屏、扫描仪、光学阅读器和/或手写笔(或其它输入设备),通用计算设备101的用户可通过这些输入设备提供输入,并且也可包括用于提供音频输出的扬声器和用于提供文本、视听和/或图形输出的视频显示设备中的一个或多个。软件可存储在存储器115和/或其它存储装置内以向处理器103提供用于使通用计算设备101能够执行各种功能的指令。例如,存储器115可存储由通用计算设备101使用的软件,例如操作系统117、应用程序119和相关数据库121。可选地,通用计算设备101的一些或所有计算机可执行指令可实现在硬件或固件(未示出)中。
通用计算设备101可在支持连接到例如终端140(也被称为客户端设备)的一个或多个远程计算机的连接的联网环境中操作。终端140可以是包括上面关于通用计算设备101描述的很多或全部元件的个人计算机或服务器。在图1中描绘的网络连接包括局域网(LAN)125和广域网(WAN)129,但还可包括其它网络。当在LAN联网环境中使用时,通用计算设备101可通过网络接口或适配器123连接到LAN 125。当在WAN联网环境中使用时,通用计算设备101可包括调制解调器127或用于建立例如计算机网络130(例如互联网)的WAN 129上的通信的其它网络接口。将理解的是,所述网络连接是例证性的,且可使用建立计算机之间的通信链路的其它装置。
通用计算设备101和/或终端140也可以是包括各种其它部件例如电池、扬声器和天线(未示出)的移动终端(例如,移动电话、智能电话、PDA、笔记本计算机等)。
本公开接合很多其它通用或专用计算系统环境或配置进行操作。可能适合于接合本公开使用的公知的计算系统、环境和/或配置的例子包括但不限于个人计算机、服务器计算机、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子设备、网络PC、小型计算机、大型计算机、包括上述系统或设备中的任何一个的分布式计算环境等。
如图1所示,一个或多个客户端设备140可与一个或多个服务器106a-106n(在本文通称为“服务器106”)通信。在一个实施方式中,计算环境100可包括安装在服务器106和客户端机器140之间的器具。该器具可管理客户端/服务器连接,且在一些情况下可使在多个后端服务器106当中的客户端连接负载平衡。
客户端机器140可在一些实施方式中被称为单个客户端机器140或单组客户端机器140,而服务器106可被称为单个服务器106或单组服务器106。在一个实施方式中,单个客户端机器140与多于一个服务器106通信,而在另一实施方式中,单个服务器106与多于一个客户端机器140通信。在又一实施方式中,单个客户端机器140与单个服务器106通信。
客户端机器140在一些实施方式中可通过下列项中的任何一项引用:客户端机器140、客户端、客户端计算机、客户端设备、客户端计算设备、本地机器、远程机器、客户端节点、端点、端点节点或第二机器。服务器106在一些实施方式中可通过下列项中的任何一项引用:服务器、本地机器、远程机器、服务器群、主机计算设备或第一机器。
在一个实施方式中,客户端机器140可以是虚拟机。虚拟机可以是任何虚拟机,而在一些实施方式中,虚拟机可以是由Citrix系统、IBM、VMware开发的超级管理器或任何其它超级管理器管理的任何虚拟机。在一些方面中,虚拟机可由超级管理器管理,而在其它方面中,虚拟机可由在服务器106上执行的超级管理器或在客户端140上执行的超级管理器管理。
客户端机器140可执行、操作或以另外的方式提供应用,所述应用可以是下列项中的任何一项:软件、程序、可执行指令、虚拟机、超级管理器、网络浏览器、基于网络的客户端、客户端-服务器应用、瘦客户端计算客户端、ActiveX控件、Java小应用程序、与软IP电话等互联网语音协议(VoIP)通信有关的软件、用于流式传送视频和/或音频的应用、用于便于实时数据通信的应用、HTTP客户端、FTP客户端、Oscar客户端、Telnet客户端或任何其它可执行指令集。又一些其它实施方式包括显示由在服务器106或其它位于远处的机器上远程地执行的应用程序所产生的应用程序输出的客户端设备140。在这些实施方式中,客户端设备140可在应用程序窗口、浏览器或其它输出窗口中显示应用程序的输出。在一个例子中,应用程序是桌面,而在其它例子中,应用程序是产生桌面的应用程序。桌面可包括提供操作系统的实例的用户界面的图形外壳,本地和/或远程应用程序可集成在该操作系统实例中。如本文中所使用的,应用程序是在操作系统的实例(并且,可选地同样包括桌面)被加载之后执行的程序。
服务器106在一些实施方式中执行远程呈现客户端或其它客户端或程序,其使用瘦客户端或远程显示协议来捕获由在服务器106上执行的应用程序所产生的显示输出并将应用程序显示输出传输到远程客户端140。瘦客户端或远程显示协议可以是下列协议中的任何一个:由弗洛里达州罗德岱堡的Citrix系统公司出品的独立计算体系结构(ICA)协议或由华盛顿州雷德蒙德的微软公司出品的远程桌面协议(RDP)。
计算环境可包括多于一个服务器106A-106N,使得服务器106A-106N在逻辑上一起集中在服务器群106中,例如一起集中在云计算环境中。服务器群106可包括在地理上分散并在逻辑上一起集中在服务器群106中的服务器106或彼此靠近放置并在逻辑上一起集中在服务器群106中的服务器106。在服务器群106内的在地理上分散的服务器106A-106N在一些实施方式中可使用WAN、MAN或LAN进行通信,其中不同的地理区域可通过下列项进行表示:不同的大陆、大陆的不同区域、不同的国家、不同的州、不同的城市、不同的校区、不同的房间或前述地理位置的任何组合。在一些实施方式中,服务器群106可作为单个实体进行管理,而在其它实施方式中,服务器群106可包括多个服务器群106。
在一些实施方式中,服务器群106可包括执行实质上类型相似的操作系统平台(例如,由华盛顿州雷德蒙德的微软公司出品的WINDOWS NT、UNIX、LINUX或SNOW LEOPARD)的服务器106。在其它实施方式中,服务器群106可包括执行第一类型的操作系统平台的第一组服务器106和执行第二类型的操作系统平台的第二组服务器106。服务器群106在其它实施方式中可包括执行不同类型的操作系统平台的服务器106。
服务器106在一些实施方式中可以是任何服务器类型。在其它实施方式中,服务器106可以是下列服务器类型中的任何一个:文件服务器、应用服务器、web服务器、代理服务器、器具、网络器具、网关、应用网关、网关服务器、虚拟化服务器、部署服务器、SSL VPN服务器、防火墙、web服务器、应用服务器或作为主应用服务器、执行活动目录的服务器106、或执行提供防火墙功能、应用功能或负载平衡功能的应用加速程序的服务器106。在一些实施方式中,服务器106可以是包括远程认证拨入用户服务的RADIUS服务器。在服务器106包括器具的实施方式中,服务器106可以是由下列制造商中的任何一个制造的器具:Citrix应用网络集团、SilverPeak系统公司、Riverbed技术公司、F5网络公司或Juniper网络公司。一些实施方式包括从客户端机器140接收请求、将请求转发到第二服务器106n并使用来自第二服务器106n的响应对客户端机器140产生的请求做出响应的第一服务器106A。第一服务器106A可获取客户端机器140可采用的应用的列表以及与托管在该应用的列表内识别的应用的应用服务器106相关的地址信息。第一服务器106A可接着使用web接口呈现对客户端的请求的响应,并与客户端140直接通信以给客户端140提供对所识别的应用的访问。
服务器106在一些实施方式中可执行下列应用中的任何一个:使用瘦客户端协议来将应用显示数据传输到客户端的瘦客户端应用;远程显示呈现应用;Citrix系统公司的CITRIX ACCESS SUITE的任何部分如METAFRAME或CITRIX PRESENTATION SERVER;由微软公司出品的MICROSOFT WINDOWS终端服务;或由Citrix系统有限公司开发的ICA客户端。另一实施方式包括作为应用服务器的服务器106,例如提供电子邮件服务例如由微软公司制造的MICROSOFT EXCHANGE的电子邮件服务器、web或互联网服务器、桌面共享服务器、合作服务器或任何其它类型的应用服务器。又一些其它实施方式包括执行下列类型的托管服务器应用中的任何一个的服务器106:由Citrix在线子有限公司提供的GOTOMEETING;由加利福尼亚州圣塔克拉拉的WebEx有限公司提供的WEBEX或由微软公司提供的Microsoft OfficeLIVE MEETING。
客户端机器140在一些实施方式中可以是寻求对由服务器106提供的资源的访问的客户端节点。在其它实施方式中,服务器106可以给客户端140或客户端节点提供对托管资源的访问。服务器106在一些实施方式中起主节点的作用,使得它与一个或多个客户端140或服务器106通信。在一些实施方式中,主节点可识别与托管所请求的应用的服务器106相关的地址信息并将该地址信息提供到一个或多个客户端140或服务器106。在又一些其它实施方式中,主节点可以是服务器群106、客户端140、客户端节点140的集合或器具。
一个或多个客户端140和/或一个或多个服务器106可通过在计算环境100内的机器和器具之间安装的网络130传输数据。网络130可包括一个或多个子网络,并可安装在客户端140、服务器106、被包括在计算环境100内的计算设备和器具的任何组合之间。在一些实施方式中,网络130可以是:局域网(LAN)、城域网(MAN)、广域网(WAN)、由位于客户端机器140和服务器106之间的多个子网络组成的主网络104、具有专用子网络的主公共网络130(例如互联网)、具有公共子网络的主专用网络130或具有专用子网络的主专用网络130。又一些实施方式包括网络130,其可以是下列网络类型中的任何一种:点对点网络、广播网络、电信网络、数据通信网络、计算机网络、ATM(异步传输模式)网络、SONET(同步光网络)网络;SDH(同步数字体系)网络、无线网络、有线线路网络或包括无线链路的网络,其中的无线链路可以是红外信道或卫星频带。网络130的网络拓扑在不同的实施方式内可以不同,可能的网络拓扑包括:总线网络拓扑、星形网络拓扑、环形网络拓扑、基于中继器的网络拓扑或分层星形网络拓扑。额外的实施方式可包括使用协议在移动设备之间进行通信的多个移动电话网络组成的网络,其中协议可以是下列协议中的任何一个:AMPS、TDMA、CDMA、GSM、GPRSUMTS或能够在移动设备之间传输数据的任何其它协议。
在图2中示出计算设备200的实施方式,其中图1所示的客户端机器140和服务器106可被部署为本文所示和所述的计算设备200的任何实施方式和/或在本文所示和所述的计算设备200的任何实施方式上执行。包括在计算设备200内的是与下列部件通信的系统总线250:中央处理单元221、主存储器222、存储内存228、输入/输出(I/O)控制器223、显示设备224A-224N、安装设备216和网络接口218。在一个实施方式中,存储内存228包括:操作系统、软件例程和客户端代理220。I/O控制器223在一些实施方式中进一步连接到键盘226和指示设备227。其它实施方式可包括连接到多于一个输入/输出设备223A-230N的I/O控制器223。
图3示出计算设备300的一个实施方式,其中图1所示的客户端机器140和服务器106可被部署为本文所示和所述的计算设备300的任何实施方式和/或在本文所示和所述的计算设备300的任何实施方式上执行。包括在计算设备300内的是与下列部件通信的系统总线350:桥370和第一I/O设备330a。在另一实施方式中,桥370进一步与主中央处理单元321通信,其中中央处理单元321可进一步与第二I/O设备330b、主存储器322和高速缓冲存储器340通信。包括在中央处理单元321内的是I/O端口、存储器端口303和主处理器。
计算设备300的实施方式可包括由下列部件配置中的任何一个特征化的中央处理单元321:响应于并处理从主存储器单元322取出的指令的逻辑电路;微处理器单元例如由英特尔公司制造的微处理器单元;由摩托罗拉公司制造的微处理器单元;由加利福尼亚州圣塔克拉拉的Transmeta公司制造的微处理器;RS/6000处理器,例如由国际商业机器公司制造的处理器;处理器,例如由超微半导体公司制造的处理器;或逻辑电路的任何其它组合。中央处理单元322的又一些其它实施方式可包括下列部件的任何组合:微处理器、微控制器、具有单个处理核心的中央处理单元、具有两个处理核心的中央处理单元或具有多于一个处理核心的中央处理单元。
虽然图3示出包括单个中央处理单元321的计算设备300,在一些实施方式中,计算设备300可包括一个或多个处理单元321。在这些实施方式中,计算设备300可存储并执行固件或其它可执行指令,指令在被执行时指导一个或多个处理单元321同时执行指令或在单条数据上同时执行指令。在其它实施方式中,计算设备300可存储并执行固件或其它可执行指令,指令在被执行时指导一个或多个处理单元各自执行一组指令的一部分。例如,每个处理单元321可被指示执行程序的一部分或在程序内的特定模块。
在一些实施方式中,处理单元321可包括一个或多个处理核心。例如,处理单元321可具有两个核心、四个核心、八个核心等。在一个实施方式中,处理单元321可包括一个或多个并行处理核心。处理单元321的处理核心可在一些实施方式中访问可用的存储器作为全局地址空间,或在其它实施方式中,在计算设备300内的存储器可被分割并分配到在处理单元321内的特定核心。在一个实施方式中,在计算设备300中的一个或多个处理核心或处理器可各自访问本地存储器。在又一实施方式中,在计算设备300内的存储器可在一个或多个处理器或处理核心之间被共享,而其它存储器可由特定的处理器或处理器的子集访问。在计算设备300包括多于一个处理单元的实施方式中,多个处理单元可被包括在单个集成电路(IC)中。所述多个处理器在一些实施方式中可由可被称为元件互连总线的内部高速总线链接在一起。
在计算设备300包括一个或多个处理单元321或包含一个或多个处理核心的处理单元321的实施方式中,处理器可执行同时对于多条数据的单个指令(SIMD),或在其它实施方式中可执行同时对于多条数据的多个指令(MIMD)。在一些实施方式中,计算设备100可包括任何数量的SIMD和MIMD处理器。
计算设备300在一些实施方式中可包括图形处理器或图形处理单元(未示出)。图形处理单元可包括软件和硬件的任何组合,并可进一步输入图形数据和图形指令,根据输入的数据和指令渲染图形,并输出所渲染的图形。在一些实施方式中,图形处理单元可包括在处理单元321中。在其它实施方式中,计算设备300可包括一个或多个处理单元321,其中至少一个处理单元321专用于处理并渲染图形。
计算设备300的一个实施方式包括经由也被称为后侧总线的辅助总线与高速缓冲存储器340通信的中央处理单元321,而计算设备300的另一实施方式包括经由系统总线350与高速缓冲存储器通信的中央处理单元321。本地系统总线350在一些实施方式中也可由中央处理单元使用以与多于一种类型的I/O设备330a-330n通信。在一些实施方式中,本地系统总线350可以是下列类型的总线中的任何一种:VESA VL总线、ISA总线、EISA总线、微通道体系结构(MCA)总线、PCI总线、PCI-X总线、PCI-Express总线或NuBus。计算设备300的其它实施方式包括I/O设备330a-330n,其包括与中央处理单元321通信的视频显示器224。计算设备300的又一些其它版本包括经由下列连接中的任何一种连接到I/O设备330a-330n的处理器321:HyperTransport、快速I/O和InfiniBand。计算设备300的另外的实施方式包括与使用本地互连总线的一个I/O设备330a和使用直接连接的第二I/O设备330b通信的处理器321。
计算设备300在一些实施方式中包括主存储器单元322和高速缓冲存储器340。高速缓冲存储器340可以是任何存储器类型,且在一些实施方式中可以是下列类型的存储器中的任何一种:SRAM、BSRAM或EDRAM。其它实施方式包括高速缓冲存储器340和主存储器单元322,其可以是下列类型的存储器中的任何一种:静态随机存取存储器(SRAM)、突发式SRAM或同步突发式SRAM(BSRAM);动态随机存取存储器(DRAM);快速页面模式DRAM(FPMDRAM);增强DRAM(EDRAM)、扩展数据输出RAM(EDO RAM);扩展数据输出DRAM(EDO DRAM);突发扩展数据输出DRAM(BEDO DRAM);增强DRAM(EDRAM);同步DRAM(SDRAM);JEDEC SRAM;PC100SDRAM;双倍数据率SDRAM(DDRSDRAM);增强SDRAM(ESDRAM);同步链路DRAM(SLDRAM);直接Rambus DRAM(DRDRAM);铁电RAM(FRAM);或任何其它类型的存储器。另外的实施方式包括可经由系统总线350、存储器端口303或允许处理器321访问存储器322的任何其它连接、总线或端口来访问主存储器322的中央处理单元321。
计算设备200/300的一个实施方式提供对下列安装设备216中的任何一个的支持:CD-ROM驱动器、CD-R/RW驱动器、DVD-ROM驱动器、各种形式的磁带驱动器、USB设备、可引导介质、可引导CD、用于GNU/Linux发布例如的可引导CD、硬盘驱动器或适合于安装应用程序或软件的任何其它设备。应用在一些实施方式中可包括客户端代理220或客户端代理220的任何部分。计算设备200/300还可包括存储设备228,其可以是一个或多个硬盘驱动器、或独立磁盘的一个或多个冗余阵列;其中存储设备配置成存储操作系统、软件、程序应用或客户端代理220的至少一部分。计算设备200、300的另一实施方式包括用作存储设备228的安装设备216。
计算设备200、300还可包括网络接口218以通过各种连接——包括但不限于标准电话线、LAN或WAN链路(例如802.11、T1、T3、56kb、X.25、SNA、DECNET)、宽带连接(例如ISDN、帧中继、ATM、千兆比特以太网、SONET上的以太网)、无线连接或任何或所有上述连接的某种组合通过接口连接到局域网(LAN)、广域网(WAN)或互联网。也可使用各种通信协议(例如TCP/IP、IPX、SPX、NetBIOS、以太网、ARCNET、SONET、SDH、光纤分布数据接口(FDDI)、RS232、RS485、IEEE 802.11、IEEE 802.11a、IEEE 802.11b、IEEE 802.11g、CDMA、GSM、WiMax和直接异步连接)建立连接。计算设备200、300的一个版本包括能够经由任何类型和/或形式的网关或隧道协议例如安全套接层(SSL)或传输层安全(TLS)或由Citrix系统有限公司出品的Citrix网关协议与额外的计算设备200’、300’通信的网络接口218。网络接口218的版本可包括下列项中的任何一项:内置网络适配器、网络接口卡、PCMCIA网卡、卡式总线网络适配器、无线网络适配器、USB网络适配器、调制解调器或适合于使计算设备200、300通过接口连接到能够通信并执行本文所述的方法和系统的网络的任何其它设备。
计算设备200、300的实施方式包括下面的I/O设备230a-230n中的任何一种:键盘226、指示设备227、鼠标、轨迹垫、光笔、轨迹球、麦克风、绘图板、视频显示器、扬声器、喷墨打印机、激光打印机和染料升华打印机或能够执行本文所述的方法和系统的任何其它输入/输出设备。I/O控制器223在一些实施方式中可连接到多个I/O设备230a-230n以控制一个或多个I/O设备。I/O设备230a-230n的一些实施方式可配置成提供存储或安装介质216,而其它实施方式可提供用于接收USB存储设备例如由Twintech工业有限公司制造的设备的USB闪存驱动线的通用串行总线(USB)接口。又一些其它实施方式包括I/O设备230,其可以是在系统总线250和外部通信总线例如USB总线、Apple桌面总线、RS-232串行连接、SCSI总线、FireWire总线、FireWire 800总线、以太网总线、AppleTalk总线、千兆比特以太网总线、异步传输模式总线、HIPPI总线、超HIPPI总线、SerialPlus总线、SCI/LAMP总线、FibreChannel总线或串行连接小型计算机系统接口总线之间的桥。
在一些实施方式中,计算设备200、300可连接到多个显示设备224a-224n,在其它实施方式中,计算设备100可连接到单个显示设备224,而在又一些其它实施方式中,计算设备200、300连接到相同显示类型或显示形式的显示设备224a-224n,或连接到不同类型或形式的显示设备。显示设备224a-224n的实施方式可由下列部件支持和启动:一个或多个I/O设备230a-230n;I/O控制器223;I/O设备230a-230n和I/O控制器223的组合;能够支持显示设备224a-224n的硬件和软件的任何组合;通过接口连接、通信、连接或以另外的方式使用显示设备224a-224n的任何类型和/或形式的视频适配器、视频卡、驱动器和/或库。计算设备200、300在一些实施方式中可配置成使用一个或多个显示设备224A-224N,这些配置包括:具有多个连接器来通过接口连接到显示设备224A-224N;具有多个视频适配器,每个视频适配器连接到一个或多个显示设备224A-224N;具有配置成支持多个显示器224A-224N的操作系统;使用包括在计算设备200内的电路和软件来连接到并使用多个显示设备224A-224N;以及执行主计算设备200和多个辅助计算设备上的软件以使主计算设备200能够使用辅助计算设备的显示器作为主计算设备200的显示设备224A-224N。计算设备200的又一些其它实施方式可包括由多个辅助计算设备提供并经由网络连接到主计算设备200的多个显示设备224A-224N。
在一些实施方式中,计算设备200可执行任何操作系统,而在其它实施方式中,计算设备200可执行下列操作系统中的任何一种:MICROSOFTWINDOWS操作系统的多个版本,例如WINDOWS 3.x、WINDOWS 95、WINDOWS 98、WINDOWS 2000、WINDOWS NT 3.51、WINDOWS NT4.0、WINDOWS CE、WINDOWS XP和WINDOWS VISTA;Unix和Linux操作系统的不同发行版本;由苹果计算机公司出品的MAC OS的任何版本;由国际商用机器公司出品的OS/2;任何嵌入式操作系统;任何实时操作系统;任何开源操作系统;任何专用操作系统;移动计算设备的任何操作系统;或任何其它操作系统。在又一实施方式中,计算设备200可执行多个操作系统。例如,计算设备200可执行PARALLELS或另一虚拟化平台(其可执行或管理执行第一操作系统的虚拟机),而计算设备200执行不同于第一操作系统的第二操作系统。
计算设备200可实现在下列计算设备的任何一种中:计算工作站、台式计算机、膝上型或笔记本计算机、服务器、手持计算机、移动电话、便携式远程通信设备、媒体播放设备、游戏系统、移动计算设备、上网本、由苹果计算机公司制造的IPOD系列设备的设备、由索尼公司制造的PLAYSTATION系列设备中的任何一种、由任天堂公司制造的任天堂系列设备中的任何一种、由微软公司制造的XBOX系列设备中的任何一种、或能够通信并具有足够的处理器能力和存储器容量来执行本文描述的方法和系统的任何其它类型和/或形式的计算设备、远程通信设备或媒体设备。在其它实施方式中,计算设备100可以是移动设备,例如下列移动设备中的任何一种:启用JAVA的手机或个人数字助理(PDA),例如都由摩托罗拉公司制造的i55sr、i58sr、i85s、i88s、i90c、i95cl或im1100;由京瓷公司制造的6035或7135;由三星电子有限公司制造的i300或i330;由Palm公司制造的TREO 180、270、600、650、680、700p、700w或750智能电话;具有不同的处理器、操作系统和与设备兼容的输入设备的任何计算设备;或能够执行本文所述的方法和系统的任何其它移动计算设备。在又一些其它实施方式中,计算设备200可以是下列移动计算设备中的任何一种:任何一个系列的黑莓或由RIM(Research In Motion)有限公司制造的其它手持设备、由苹果计算机公司制造的iPhone、Palm Pre、Pocket PC、PocketPC电话或任何其它手持移动设备。
在一些实施方式中,计算设备200可具有不同的处理器、操作系统和与设备兼容的输入设备。例如,在一个实施方式中,计算设备200是由Palm公司制造的TREO 180、270、600、650、680、700p、700w或750智能电话。在这些实施方式的一些中,TREO智能电话在PalmOS操作系统的控制下操作并包括手写笔输入设备以及五向导航器设备。
在其它实施方式中,计算设备200是移动设备,例如启用JAVA的手机或个人数字助理(PDA),例如都由伊利诺斯州绍姆堡的摩托罗拉公司制造的i55sr、i58sr、i85s、i88s、i90c、i95cl或im1100、由日本京都的京瓷制造的6035或7135或由韩国首尔的三星电子有限公司制造的i300或i330。在一些实施方式中,计算设备200是由芬兰的诺基亚或由瑞典隆德的索尼爱立信移动通信AB制造的移动设备。
在又一些其它实施方式中,计算设备200是黑莓手持或智能电话,例如由RIM有限公司制造的设备,包括黑莓7100系列、8700系列、7700系列、7200系列、黑莓7520或黑莓Pearl 8100。在又一些其它实施方式中,计算设备200是智能电话、Pocket PC、Pocket PC电话或支持微软Windows移动软件的其它手持移动设备。而且,计算设备200可以是任何工作站、台式计算机、膝上型或笔记本计算机、服务器、手持计算机、移动电话、任何其它计算机、或能够通信并具有足够的处理器能力和存储器容量来执行本文描述的操作的其它形式的计算或远程通信设备。
在一些实施方式中,计算设备200是数字音频播放器。在这些实施方式之一中,计算设备200是数字音频播放器,例如由加利福尼亚州库比蒂诺的苹果计算机公司制造的Apple IPOD、IPOD Touch、IPOD NANO和IPOD SHUFFLE设备系列。在这些实施方式的另一个中,数字音频播放器可以起便携式媒体播放器和大容量存储设备的作用。在其它实施方式中,计算设备200是数字音频播放器,例如由新泽西州的里奇菲尔德公园的三星电子美国制造的DigitalAudioPlayer Select MP3播放器或由伊利诺斯州绍姆堡的摩托罗拉公司制造的Motorola m500或m25数字音频播放器。在又一些其它实施方式中,计算设备200是便携式媒体播放器,例如由创新科技有限公司制造的Zen Vision W、Zen Vision系列、Zen便携式媒体中心设备或MP3播放器的数字MP3系列。在又一些其它实施方式中,计算设备200是支持文件格式(包括但不限于MP3、WAV、M4A/AAC、WMA保护的AAC、AIFF、可听有声读物、苹果无损音频文件格式和.mov、.m4v和.mp4、MPEG-4(H.264/MPEG-4AVC)视频文件格式)的便携式媒体播放器或数字音频播放器。
在一些实施方式中,计算设备200包括设备的组合,例如与数字音频播放器或便携式媒体播放器组合的移动电话。在这些实施方式之一中,计算设备200是组合数字音频播放器和移动电话的Motorola RAZR或Motorola ROKR系列。在这些实施方式的另一个中,计算设备200是由加利福尼亚州库比蒂诺的苹果计算机公司制造的iPhone智能电话。
图1-3示出例证性桌面虚拟化系统的高层体系结构。如图所示,桌面虚拟化系统可以是单服务器或多服务器系统或云系统,包括配置成向一个或多个客户端访问设备140提供虚拟机和/或虚拟应用的至少一个虚拟化服务器106。如在本文中使用的,桌面指图形环境或空间,其中一个或多个应用可被托管和/或执行。桌面可包括为操作系统的实例提供用户界面的图形壳,本地和/或远程应用可集成在操作系统中。如在本文所使用的,应用程序是在操作系统(和可选地,还有桌面)的实例被加载之后执行的程序。操作系统的每个实例可以是真实的(例如每个设备一个操作系统)或虚拟的(例如在单个设备上运行的OS的很多实例)。每个应用可在本地设备上执行或在远程定位的设备(例如远程设备)上执行。
在图4中示出计算设备401的一个实施方式,其被配置为在虚拟化环境中的虚拟化服务器,例如单服务器、多服务器或云计算环境。图1所示的虚拟化服务器401可被部署为图1所示的服务器106或图2和3所示的计算设备200和300的一个或多个实施方式和/或由图1所示的服务器106或图2和3所示的计算设备200和300的一个或多个实施方式实现。包括在虚拟化服务器401中的是可包括一个或多个物理磁盘404、一个或多个物理设备406、一个或多个物理处理器408和物理存储器416的硬件层。在一些实施方式中,固件412可存储在物理存储器416中的存储器元件内并可由一个或多个物理处理器408执行。虚拟化服务器401还可包括可存储在物理存储器416中的存储器元件中并由一个或多个物理处理器408执行的操作系统414。而且,超级管理器402可存储在物理存储器416中的存储器元件中,并可由一个或多个物理处理器408执行。在一个或多个物理处理器408上执行的可以是一个或多个虚拟机432A-C(总体表示为432)。每个虚拟机432可具有虚拟磁盘426A-C和虚拟处理器428A-C。在一些实施方式中,第一虚拟机432A可在虚拟处理器428A上执行包括工具堆栈424的控制程序420。在其它实施方式中,一个或多个虚拟机432B-C可在虚拟处理器428B-C上执行客户操作系统430A-B。
进一步参考图4且更详细地,虚拟服务器401可包括具有与虚拟化服务器401通信的一个或多个硬件的硬件层410。在一些实施方式中,硬件层410可包括一个或多个物理磁盘404、一个或多个物理设备406、一个或多个物理处理器408和一个或多个存储器416。物理部件404、406、408和416可包括例如上面在图1-3中描述的任何部件。例如,物理磁盘404可包括永久存储器存储设备、临时存储器存储设备、磁盘驱动器(例如光盘驱动器、软盘驱动器、磁带驱动器)、硬盘、外部硬盘驱动器、闪存、网络附接存储设备、存储区域网络或虚拟化服务器401可访问的任何其它存储库。物理设备406可包括被包括在虚拟服务器401中的任何设备和/或被包括在虚拟服务器401中的设备和与虚拟化服务器401通信的外部设备的任何组合。物理设备406可以是例如网络接口卡、视频卡、键盘、鼠标、输入设备、监视器、显示设备、扬声器、光学驱动器、存储设备、通用串行总线连接、打印机、扫描仪、网络元件(例如路由器、防火墙、网络地址转换器、负载平衡器、虚拟专用网(VPN)网关、动态主机配置协议(DHCP)路由器等)、或连接到虚拟化服务器401或与虚拟化服务器401通信的任何设备。在硬件层410中的物理存储器416可包括任何类型的存储器。物理存储器416可存储数据,且在一些实施方式中可存储一个或多个程序或可执行指令集。图4示出实施方式,其中固件412存储在虚拟化服务器401的物理存储器416内。存储在物理存储器416中的程序或可执行指令可由虚拟化服务器401的一个或多个处理器408执行。
虚拟化服务器401还可包括超级管理器402。在一些实施方式中,超级管理器402可以是由处理器408在虚拟化服务器401上执行以创建并管理任何数量的虚拟机432的程序。超级管理器402可被称为虚拟机监视器或平台虚拟化软件。在一些实施方式中,超级管理器402可以是可执行指令和监控在计算设备上执行的虚拟机的硬件的任何组合。超级管理器402可以是类型2超级管理器或在虚拟化服务器401上执行的操作系统414内执行的超级管理程序。类型2超级管理器在一些实施方式中在操作系统414环境内执行,且虚拟机在高于超级管理器的层上执行。在很多实施方式中,类型2超级管理器在用户的操作系统的上下文内执行,使得类型2超级管理器与用户的操作系统进行交互。在其它实施方式中,在虚拟化环境中的一个或多个虚拟化服务器401可包括类型1超级管理器(未示出)。类型1超级管理器可通过直接访问在硬件层410内的硬件和资源来在虚拟化服务器401上执行。也就是说,虽然类型2超级管理器402通过主机操作系统414访问系统资源,类型1超级管理器可直接访问所有系统资源,而不需要主机操作系统414。类型1超级管理器可直接在虚拟化服务器401的一个或多个物理处理器408上执行,并可包括存储在物理存储器416中的程序数据。
超级管理器402在一些实施方式中可以用模拟直接访问系统资源的操作系统430或控制程序420的任何方式向操作系统430或在虚拟机432上执行的控制程序420提供虚拟资源。系统资源可包括:物理设备406、物理磁盘、物理处理器、物理存储器416和包括在虚拟化服务器401的硬件层410中的任何其它部件。在这些实施方式中,超级管理器402可用于模拟虚拟硬件、划分物理硬件、虚拟化物理硬件或执行提供对计算环境的访问的虚拟机。在又一些其它实施方式中,超级管理器402为在虚拟化服务器401上执行的虚拟机432进行处理器调度控制和存储器划分。超级管理器402可包括由加利福尼亚州帕罗奥多的VMWare公司出品的那些超级管理器;XEN超级管理器——一种开源产品,其开发由开源Xen.org社区监督;由微软或其它公司提供的HyperV、VirtualServer或虚拟PC超级管理器。在一些实施方式中,虚拟化服务器401执行创建虚拟机平台的超级管理器402,客户操作系统可在该虚拟机平台上执行。在这些实施方式中,虚拟化服务器401可被称为主机服务器。这样的虚拟化服务器的例子是由佛罗里达州罗德岱堡的Citrix系统公司提供的XEN SERVER。
超级管理器402可创建一个或多个虚拟机432B-C(总体上用432表示),客户操作系统430在其中执行。在一些实施方式中,超级管理器402可加载虚拟机镜像以创建虚拟机432。在其它实施方式中,超级管理器402可执行在虚拟机432内的客户操作系统430。在又一些其它实施方式中,虚拟机432可执行客户操作系统430。
除了创建虚拟机432以外,超级管理器402还可控制至少一个虚拟机432的执行。在其它实施方式中,超级管理器402可给至少一个虚拟机432呈递由虚拟化服务器401提供的至少一个硬件资源(例如在硬件层410内可用的任何硬件资源)的简要说明。在其它实施方式中,超级管理器402可控制虚拟机432访问在虚拟化服务器401内可用的物理处理器408的方式。控制对物理处理器408的访问可包括确定虚拟机432是否应访问处理器408,以及如何将物理处理器能力呈递到虚拟机432。
如在图4的例子中所示,虚拟化服务器401可托管或执行一个或多个虚拟机432。虚拟机432是一组可执行指令,其在由处理器408执行时模仿物理计算机的操作,使得虚拟机器432可执行程序和进程,与实际计算设备非常相似。虽然图4示出了其中的虚拟化服务器401托管三个虚拟机432的实施方式,但在其它实施方式中,虚拟化服务器401可托管任何数量的虚拟机432。超级管理器402在一些实施方式中给每个虚拟机432提供虚拟机432可用的物理硬件、存储器、处理器和其它系统资源的唯一虚拟视图。在一些实施方式中,唯一虚拟视图可基于下列项中的任何一个:虚拟机许可;针对一个或多个虚拟机标识符的策略引擎的应用;访问虚拟机的用户;在虚拟机上执行的应用程序;由虚拟机访问的网络;或任何其它类似的标准。例如,超级管理器402可创建一个或多个非安全虚拟机432和一个或多个安全虚拟机432。可防止非安全虚拟机432访问可允许安全虚拟机432访问的资源、硬件、存储器位置和程序。在其它实施方式中,超级管理器402可给每个虚拟机432提供物理硬件、存储器、处理器和虚拟机432可用的其它系统资源的实质上类似的虚拟视图。
每个虚拟机432可包括虚拟磁盘426A-C(总体上用426表示)和虚拟处理器428A-C(总体上用428表示)。虚拟磁盘426在一些实施方式中是虚拟化服务器401的一个或多个物理磁盘404或虚拟化服务器401的一个或多个物理磁盘404的一部分的虚拟化视图。物理磁盘404的虚拟化视图可由超级管理器402产生、提供并管理。在一些实施方式中,超级管理器402给每个虚拟机432提供物理磁盘404的不同视图。因此在这些实施方式中,当与其它虚拟磁盘426比较时,包括在每个虚拟机432中的虚拟磁盘426可以是不同的。
虚拟处理器428可以是虚拟化服务器401的一个或多个物理处理器408的虚拟化视图。在一些实施方式中,物理处理器408的虚拟化视图由超级管理器402产生、提供并管理。在一些实施方式中,虚拟处理器428具有至少一个物理处理器408的实质上所有的相同特征。在其它实施方式中,虚拟处理器408提供物理处理器408的修改的视图,使得虚拟处理器428的至少一些特征不同于对应的物理处理器408的特征。
图5示出描绘根据本文描述的一个或多个例证性方面的虚拟桌面基础架构系统的实施方式的方框图。简要概括的说,系统包括多个虚拟机。参考图5,示出说明例证性桌面虚拟化系统的高层体系结构的框图。在本例中,可被称为桌面虚拟化系统的虚拟桌面基础架构系统包括配置成向一个或多个客户端访问设备600提供虚拟桌面的服务器500(例如VDI服务器)。服务器500包括处理器508和存储器516,并可包括上面讨论的通用计算设备101的一个或多个特征。
在本例中,服务器500包括能够创建并管理在服务器500上的虚拟机的超级管理器512。超级管理器512是可直接在服务器500的硬件上执行或可在服务器500的操作系统内执行的软件层。超级管理器512可包括上面讨论的通用计算设备402的一个或多个特征。虽然在本例中只示出一个超级管理器502,但在桌面虚拟化系统中的服务器可包括多个不同的超级管理器512,每个超级管理器512支持它自己的一组虚拟机540。虚拟机540可包括上面讨论的通用计算设备432的一个或多个特征。
服务器500还可包括虚拟工作区软件510。虚拟工作区软件510可包括具有控制超级管理器512、创建并管理虚拟机530并允许最终用户在客户端访问设备600处对虚拟机530进行经授权访问的功能的一个或多个软件部件。如在本例中所示的,虚拟工作区软件510可在服务器500内的超级管理器512上执行。例如,虚拟工作区软件510可在它管理的超级管理器512上作为虚拟机运行。在其它例子中,虚拟工作区软件510可在不同于服务器500的单独机器上作为应用程序运行,并可经由网络协议与超级管理器512通信。
由虚拟工作区软件510创建和/或管理的每个虚拟机540可支持在客户端设备600处的用户的一个或多个虚拟桌面。客户端600可通过网络(例如互联网130)连接到虚拟机540以发起在客户端设备600(例如瘦客户端、膝上型计算机或移动设备等)处的用户的虚拟桌面。例如,用户可使用web浏览器软件来访问由虚拟工作区软件510提供的基于web的控制台。在其它例子中,图形用户干扰客户端应用可安装在被设计成连接到客户端设备600并与虚拟工作区软件510通信。当在客户端设备600处的用户试图访问虚拟工作区软件510以发起虚拟桌面会话或执行桌面虚拟化系统的任何管理或行政功能时,虚拟工作区软件510可对用户进行认证以确认用户有适当的权限来执行用户所请求的功能。在用户被认证之后,虚拟工作区软件510可为用户的虚拟桌面会话选择虚拟机540,并给用户提供所选择的虚拟机540的互联网协议(IP)地址和/或可将用户的访问设备600连接到在虚拟机540上运行的远程桌面协议客户端。此外,虚拟工作区软件510可控制超级管理器512以为客户端600创建运行虚拟桌面的虚拟机540。
在一个实施方式中,桌面虚拟化系统可包括一个或多个VDI服务器500。在另一实施方式中,桌面虚拟化系统可包括磁盘层的一个或多个分级结构。在一些实施方式中,磁盘层的分级结构可存储在VDI服务器500上,如图5所示。在其它实施方式中,磁盘层的分级结构可存储在由超级管理器512可访问的任何存储设备上。可被称为“磁盘树”的磁盘层的每个分级结构由多个磁盘层组成。在每个“磁盘树”中的磁盘层的数量可以任意多。例如,图5示出包括三个磁盘层(例如501、502、503)的“磁盘树”的一个实施方式。在磁盘层的分级结构中的最低磁盘层是基本磁盘层501,其包括单个基本虚拟磁盘515。在这些实施方式的一些中,桌面虚拟化系统利用操作系统软件资源和全局地所需的软件资源的基本虚拟磁盘515。在磁盘层的分级结构中的下一层是部门磁盘层502,其包括在桌面虚拟化系统中的每个部门的一系列虚拟磁盘520。在这些实施方式的其它实施方式中,桌面虚拟化系统根据每个部门的应用和软件资源利用部门磁盘层502。在磁盘层的分级结构中的最高层是用户磁盘层503,其可包括对应于桌面虚拟化系统中的一个或多个用户的一系列虚拟磁盘530。在这些实施方式的另一些中,桌面虚拟化系统根据每个用户的应用和软件资源利用用户磁盘层503。
在磁盘层的分级结构中的多个磁盘层的构造可通过各种装置例如差分磁盘或个人虚拟磁盘而发生。这些系统将执行一个或多个“磁盘树”的运行时的融合,根据规定来自给定磁盘层的哪些资源优先于在其它磁盘层中的匹配或冲突资源的一组规则或启发法提供包含在每个磁盘树中的数据的统一视图。这个引导-时间组合在操作系统引导期间在足够早的阶段被执行以允许用与引导的持续时间一致的方式组合磁盘层。因此,引导-时间组合产生一组完备的虚拟机540用于由在桌面虚拟化系统中的每个最终用户使用。在一些实施方式中,磁盘组合算法用于在引导VDI服务器500时组合多个磁盘层。因此,对于所期望的任何数量的虚拟机,VDI服务器500可选择包括期望操作系统类型和那个特定的虚拟机的版本的单个基本磁盘(例如基本虚拟磁盘515)。在一些实施方式中,基本虚拟磁盘515也可包括所有衍生的虚拟机实例可全局采用的任何软件应用或其它资源。
例如,具有多个“磁盘树”布置的桌面虚拟化系统可包含在虚拟化系统中的每个不同的操作系统版本的一个或多个基本虚拟磁盘。因此,每个虚拟基本磁盘515可产生其自身在较高磁盘层(例如502、503)中的后代虚拟磁盘和所产生的虚拟机540的“树”。假定很多虚拟机可合并基本虚拟磁盘515,那么只有一个实例需要被存储和管理。桌面虚拟化系统的这个实施方式节省在其他方式下存储和维护用户所操作的每个虚拟机的单独版本将会需要的非常大量的磁盘存储和计算机循环。这个相同的分析适用于从基本虚拟磁盘515派生的虚拟磁盘“树”。例如,部门磁盘层502可包括雇员的整个部门,其中每个部门可具有多个虚拟磁盘520以存储那个部门所独有的应用和软件资源。同样,只有在桌面虚拟化系统中的每个用户所独有的数据、应用和软件资源才存储在用户磁盘层503中的独有磁盘(例如530A-E)处。例如,用户对他或她自己最喜爱的浏览器、文档阅读器或其它独有的应用的安装可存储在用户磁盘层503中的用户虚拟磁盘530中。用户磁盘层503常常被称为个人虚拟磁盘(PVD)。
图6是示出根据本文描述的一个或多个例证性方面的用于管理桌面虚拟化系统内的更新的系统的某些部件的方框图。简要概括地说,系统包括更新管理服务器601、控制器服务器620和VDI服务器500。桌面虚拟化系统还包括更新历史数据库611、虚拟机编目数据库615、更新编目数据库612和一个或多个软件资源的多个更新。更新管理服务器601接收待部署到桌面虚拟化环境中的虚拟机的一个或多个软件资源的多个更新。更新管理服务器601发布在所接收的多个更新中的一个或多个所建议的更新。控制器服务器620从更新管理服务器601请求一个或多个所发布的更新的标识。控制器服务器620接收一个或多个所发布的更新的标识,并将所述更新存储在更新编目数据库612中。控制器服务器620识别在VDI服务器500内的磁盘层的一个或多个分级结构中的预定磁盘层的多个虚拟机540,在VDI服务器500上应用在多个更新中的一个或多个更新。
控制器服务器620将多个更新中的一个或多个更新应用于与在VDI服务器500内的磁盘层的分级结构中的预定磁盘层相关的多个虚拟机中的每个虚拟机。控制器服务器620分析接收多个更新中的一个或多个更新的多个虚拟机中的每个虚拟机以确认在多个更新中的一个或多个更新是否成功地应用于预定磁盘层。与尝试安装多个更新中的一个或多个更新的每个更新的结果有关的信息被传输到控制器服务器620。控制器服务器620将更新安装结果存储在更新历史数据库611中。控制器服务器620确定是否将多个更新中的一个或多个更新应用于在VDI服务器500内的磁盘层的分级结构中的后续(即更高的)磁盘层。在控制器服务器620确定在多个更新中的更新已成功地应用于预定磁盘层的情况下,则暂停将该更新应用于磁盘层的分级结构中的后续磁盘层。在控制器服务器620确定在多个更新中的更新未成功地应用于预定磁盘层的情况下,将该更新应用于磁盘层的分级结构中的后续磁盘层的多个虚拟机中的每个虚拟机。
在一些实施方式中,更新管理服务器601发送对待部署到桌面虚拟化环境中的一个或多个虚拟机的一个或多个软件资源的多个更新中的至少一个更新的请求。在所述实施方式的某些实施方式中,VDI管理器识别一个或多个更新以传输到更新管理服务器601。在另一实施方式中,更新管理服务器601传输对在桌面虚拟化环境中的应用可采用的多个更新的请求。在其它实施方式中,在桌面虚拟化系统中的一个或多个软件资源的多个更新存储在更新数据库610中。在又一些其它实施方式中,更新数据库610存储由更新管理服务器601接收的所有系统更新的编目。在一些实施方式中,更新数据库610与更新编目数据库612通信以交换关于所有系统更新的编目的数据。在其它实施方式中,代表存储在更新数据库610中的所有系统更新的编目的数据被复制以产生更新编目数据库612。在又一些其它实施方式中,更新管理服务器601可将代表所有系统更新的编目的数据传送到更新编目数据库612。
在另一实施方式中,更新数据库可由存在于虚拟机上的控制器服务器访问。在这些实施方式的一个中,更新数据库可与存在于磁盘层的分级结构中的一个或多个虚拟磁盘上的本地数据库交换数据。在这些实施方式的另一个中,存在于虚拟机上的控制器可与更新管理服务器601通信以识别桌面虚拟化系统的可用更新。
在一些实施方式中,用户可识别在多个更新中的一个或多个更新以应用于在桌面虚拟化环境中的虚拟机。在其它实施方式中,桌面虚拟化环境可包括图形用户界面。在这些实施方式的一些中,图形用户界面可配置成指示用于部署在桌面虚拟系统中的多个可用更新。在这些实施方式的其它实施方式中,图形用户界面可配置成指示作为在VDI服务器500内的磁盘层的一个或多个分级结构的每个磁盘层中的一个或多个虚拟机的后代的多个虚拟机。在这些实施方式的另一个中,图形用户界面可配置成指示代表磁盘层的分级结构中的后续磁盘层中紧接着的后代虚拟磁盘的多个虚拟机中的一个或多个虚拟机。在这些实施方式的又一个中,图形用户界面可配置成允许用户识别一个或多个虚拟机以接收用于部署在桌面虚拟系统中的多个可用更新中的一个或多个更新。
在一个实施方式中,控制器服务器620在更新编目数据库612中存储待部署在桌面虚拟系统中的多个更新中的一个或多个可用更新。在另一实施方式中,控制器服务器620识别在磁盘层的一个或多个分级结构中的预定磁盘层,在预定磁盘层上应用一个或多个可用更新。在这些实施方式的一些中,控制器服务器620通过分析待应用于桌面虚拟化系统的一个或多个可用更新来识别预定磁盘层。在这些实施方式的另一个中,控制器服务器620从虚拟机编目数据库615取回与待应用于桌面虚拟化系统的一个或多个可用更新有关的信息。
在一些实施方式中,控制器服务器620存储在桌面虚拟化系统中的一个或多个虚拟机内部。在这些实施方式的一个中,控制器与更新管理服务器601通信以识别桌面虚拟化系统的一个或多个可用更新。
在一些实施方式中,虚拟机编目数据库615存储关于在桌面虚拟化系统内的虚拟机的编目的数据。在其它实施方式中,虚拟机编目数据库615存储关于由虚拟机管理服务器602管理的虚拟机的编目的数据。在所述实施方式的某些实施方式中,虚拟机编目数据库615识别与预定磁盘层相关的一个或多个虚拟机。例如,参考图5,虚拟机编目数据库615可识别与部门磁盘层520相关的一个或多个虚拟机。作为另一例子,虚拟机编目数据库615可识别与基本虚拟磁盘515相关的一个或多个虚拟机。在一些实施方式中,虚拟机编目数据库615识别VDI服务器500中的磁盘层的一个或多个分级结构中的每个虚拟机之间的关系。例如,参考图5,虚拟机编目数据库615可识别VDI服务器500中的每个虚拟机,并确定在基本磁盘层501中的哪些虚拟机与部门磁盘层502中的哪组虚拟机相关。在其它实施方式中,虚拟机编目数据库615识别作为预定磁盘层中的虚拟磁盘的后代的一个或多个虚拟磁盘。例如,参考图5,虚拟机编目数据库615可识别作为基本虚拟磁盘515的后代的每个部门虚拟磁盘520。在另一例子中,虚拟机编目数据库615可识别作为部门虚拟磁盘520的后代的每个用户虚拟磁盘530。在一些实施方式中,虚拟机编目数据库615将一个或多个虚拟机的标识传输到控制器服务器620。在其它实施方式中,控制器服务器620识别作为预定磁盘层的一个或多个虚拟机的后代的每个虚拟机,更新在预定磁盘层上被成功地应用。
在一个实施方式中,控制器服务器620处理存储在虚拟机编目数据库615中的数据以确定在磁盘层的分级结构中的预定磁盘层。在一些实施方式中,控制器服务器620从虚拟机编目数据库615接收一个或多个虚拟机的标识以确定在磁盘层的分级结构中的预定磁盘层。在另一实施方式中,控制器服务器620识别由待应用于桌面虚拟化系统的一个或多个可用更新作为目标的一个或多个资源或软件资源。控制器服务器620处理由可用更新作为目标的软件资源的识别以确定在具有识别出的可用软件资源的桌面虚拟化系统中的磁盘层的每个分级结构的最低磁盘层(即最小的后代)。在又一实施方式中,控制器服务器620将更新应用于预定磁盘层的多个虚拟机。在再一实施方式中,控制器服务器620将一个或多个更新应用于在具有可用的目标软件资源的桌面虚拟化系统中的磁盘层的每个分级结构的最低磁盘层。在这些实施方式的一个中,控制器服务器620根据磁盘组合算法将更新应用于在后代磁盘层中的一个或多个虚拟机。在这些实施方式的另一个中,控制器服务器620将更新应用于在与磁盘层的分级结构中的后续磁盘层中的紧接着的后代虚拟磁盘相关的多个虚拟机中的一个或多个虚拟机。在这些实施方式的又一个中,控制器服务器620将更新应用于在与磁盘层的分级结构中的紧接着的后代磁盘层中的一个或多个虚拟磁盘相关的多个虚拟机中的一个或多个虚拟机。
在一个实施方式中,控制器服务器620将存储在更新数据库610中的每个更新应用于在VDI服务器500内的磁盘层的一个或多个分级结构中的每个磁盘层处的每个虚拟机。在这些实施方式的一些中,控制器服务器620以磁盘层下降的顺序将每个更新应用于磁盘层的分级结构中的每个虚拟机。例如,参考图5,控制器服务器620首先将存储在更新数据库610中的所有更新应用于在基本磁盘层501处的每个虚拟机。接着,控制器服务器620将存储在更新数据库610中的所有更新应用于在部门磁盘层502处的每个虚拟机。最后,控制器服务器620将存储在更新数据库610中的所有更新应用于在用户磁盘层503处的每个虚拟机。在一些实施方式中,控制器服务器620查询更新历史数据库611以确定目标虚拟机是否已经被提供了更新。在其它实施方式中,控制器服务器620查询更新历史数据库611以确定磁盘层是否已经被提供了更新。在另一实施方式中,控制器服务器620可以不将更新应用于被识别为已经接收到定向更新的磁盘层中的虚拟机。在一些实施方式中,控制器服务器620将更新应用于作为预定磁盘层的一个或多个虚拟机的后代的每个虚拟机,更新在该预定磁盘层上已被成功地应用。在控制器服务器存在于虚拟机的其它实施方式中,控制器服务器可与更新历史数据库通信以确定特定的更新将应用于哪个软件应用或资源。
在另一实施方式中,控制器服务器620确定更新是否应用于(例如安装到)在磁盘层的分级结构内的预定磁盘层的一个或多个目标虚拟机。在所述实施方式的某些实施方式中,如果更新成功地应用于与预定磁盘层相关的一个或多个目标虚拟机,则控制器服务器620暂停对磁盘层的分级结构中的任何其余虚拟机应用更新。在这些实施方式的另一个中,如果更新未成功地应用于与预定磁盘层相关的一个或多个目标虚拟机,则控制器服务器620将更新应用于在与磁盘层的分级结构中的后续磁盘层中的紧接着的后代虚拟磁盘相关的多个虚拟机中的一个或多个虚拟机。在这些实施方式的又一个中,如果更新未成功地应用于与预定磁盘层相关的一个或多个目标虚拟机,则控制器服务器620将更新应用于在与磁盘层的分级结构中的紧接着的后代磁盘层中的一个或多个虚拟磁盘相关的多个虚拟机中的一个或多个虚拟机。在其它实施方式中,控制器服务器620识别作为预定磁盘层的一个或多个虚拟机的后代的每个虚拟机,更新已在该预定磁盘层上被成功地应用。在一些实施方式中,控制器服务器620将所尝试的更新安装的标识信息传输到更新历史数据库611。在其它实施方式中,控制器服务器620将更新安装结果存储在更新历史数据库611中。在又一些其它实施方式中,更新历史数据库611从控制器服务器620请求所尝试的更新安装的标识信息。在一个实施方式中,更新历史数据库611产生对尝试应用可用于部署到VDI服务器500内的虚拟机的多个更新中的一个或多个更新的历史进行标识的报告。
在一些实施方式中,VDI服务器500包括磁盘层的一个或多个分级结构。在磁盘层的每个分级结构中的每个磁盘层包括与该磁盘层相关的一个或多个虚拟磁盘。在一个实施方式中,控制器服务器620与VDI服务器500通信以识别需要更新的磁盘层的一个或多个分级结构中的一个或多个磁盘层。在另一实施方式中,控制器服务器620与虚拟机编目数据库615通信以识别需要更新的VID服务器500中的一个或多个虚拟机。在又一实施方式中,虚拟机管理服务器602在VDI服务器500上执行。在一些实施方式中,虚拟机管理服务器602可与控制器服务器620通信以识别具有由一个或多个可用更新作为目标的软件资源的虚拟机540。在其它实施方式中,虚拟机管理服务器602可与控制器服务器620通信以识别具有由一个或多个可用更新作为目标的软件资源的磁盘层。在另一实施方式中,虚拟机管理服务器602可使由更新作为目标的每个可用软件资源与在磁盘层的分级结构中的一个或多个磁盘层相关联。在这些实施方式的一个中,虚拟机管理服务器602可将每个关联存储在数据库中。在这些实施方式的另一个中,虚拟机管理服务器602可将目标软件资源与在磁盘层的分级结构中的一个或多个磁盘层关联的有关数据传输到控制器服务器620。在一些实施方式中,控制器服务器620可使由更新作为目标的每个可用软件资源与在磁盘层的分级结构中的一个或多个磁盘层相关联。
图7是示出根据本文描述的一个或多个例证性方面更新虚拟桌面基础架构中的一批软件资源的示例过程的流程图。在步骤701中,更新管理服务器接收一个或多个软件资源的多个更新。在一个实施方式中,VDI管理器识别一个或多个更新以传输到更新管理服务器601。在另一实施方式中,更新管理服务器601传输对可用于一个或多个软件资源的多个更新的请求。在又一实施方式中,更新管理服务器601可将代表所有系统更新的编目的数据传送到更新编目数据库612。在其它实施方式中,在桌面虚拟化系统中的一个或多个软件资源的多个更新存储在更新数据库610中。在又一些其它实施方式中,在桌面虚拟化系统中的一个或多个软件资源的多个更新存储在更新数据库610中。
在步骤702中,识别在磁盘层的分级结构中的每个磁盘层的多个虚拟机,在所述磁盘层上将应用多个更新。在一个实施方式中,虚拟机编目数据库615识别与磁盘层的分级结构中的预定磁盘层相关的一个或多个虚拟机,在所述磁盘层上将应用多个更新。在一些实施方式中,虚拟机编目数据库615识别作为预定磁盘层中的虚拟磁盘的后代的一个或多个虚拟磁盘。在其它实施方式中,虚拟机编目数据库615将一个或多个虚拟机的标识传输到控制器服务器620。在另一实施方式中,控制器服务器620识别作为预定磁盘层的一个或多个虚拟机的后代的每个虚拟机,在预定磁盘层上将应用多个更新。在再一实施方式中,控制器服务器620处理存储在虚拟机编目数据库615中的数据以确定磁盘层的分级结构中的预定磁盘层。在又一实施方式中,控制器服务器620识别由待应用于桌面虚拟化系统的一个或多个作为可用更新目标的一个或多个资源或软件资源。
在步骤703中,多个更新应用于在磁盘层的分级结构中的预定磁盘层的多个虚拟机中的每个虚拟机。在一个实施方式中,控制器服务器620将多个更新应用于磁盘层的分级结构中的预定磁盘层的多个虚拟机。在另一实施方式中,控制器服务器620将一个或多个更新应用于具有可用的目标软件资源的桌面虚拟化系统中的磁盘层的每个分级结构的最低磁盘层中的多个虚拟机。在这些实施方式的一个中,控制器服务器620根据磁盘组合算法将更新应用于后代磁盘层中的一个或多个虚拟机。在这些实施方式的另一个中,控制器服务器620将更新应用于与磁盘层的分级结构中的紧接着的后代磁盘层中的一个或多个虚拟磁盘相关的多个虚拟机中的一个或多个虚拟机。在一些实施方式中,控制器服务器620将多个更新中的每个更新应用于VDI服务器500内的磁盘层的一个或多个分级结构中的每个磁盘层处的每个虚拟机。在这些实施方式的一个中,控制器服务器620以磁盘层下降的顺序将多个更新中的每个更新应用于磁盘层的分级结构中的每个虚拟机。
在步骤704中,控制器服务器确认多个更新中的一个或多个更新是否已成功地应用于预定磁盘层中的一个或多个虚拟机。在一些实施方式中,控制器服务器620将所尝试的更新安装的标识信息传输到更新历史数据库611。在其它实施方式中,控制器服务器620将更新安装结果存储在更新历史数据库611中。在又一些其它实施方式中,更新历史数据库611从控制器服务器620请求所尝试的更新安装的标识信息。在另一实施方式中,更新历史数据库611产生对尝试应用可用于部署在桌面虚拟化系统中的多个更新中的一个或多个更新的历史进行标识的报告。
在步骤705中,控制器服务器确定是否将多个更新中的一个或多个更新应用于在磁盘层的分级结构中的后续磁盘层中的一个或多个虚拟机,其中,当在多个更新中的一个更新已成功地应用于预定磁盘层中的一个或多个虚拟机时,暂停对与磁盘层的分级结构中的后续磁盘层相关的多个虚拟机中的每个虚拟机应用更新;然而,当在多个更新中的一个更新未成功地应用于预定磁盘层中的一个或多个虚拟机时,所述更新则被应用于与磁盘层的分级结构中的后续磁盘层相关的多个虚拟机中的每个虚拟机。在一些实施方式中,如果更新成功地应用于与预定磁盘层相关的一个或多个目标虚拟机,则控制器服务器620暂停对在磁盘层的分级结构中的任何其余虚拟机应用更新。在另一实施方式中,如果更新未成功地应用于与预定磁盘层相关的一个或多个目标虚拟机,则控制器服务器620将更新应用于与磁盘层的分级结构中紧接着的后代磁盘层中的一个或多个虚拟磁盘相关的多个虚拟机中的一个或多个虚拟机。
本公开的方面结合其例证性实施方式进行了描述。通过对本公开的阅读,本领域中的普通技术人员将想到在所附权利要求的范围和精神内的很多其它实施方式、修改和变化。例如,本领域中的普通技术人员将认识到,在例证性附图中示出的步骤可以用不同于所列出的顺序的其它顺序执行,而且,根据本公开的各个方面,所示的一个或多个步骤可以是可选的。本领域中的技术人员可具体地结合前述教导来进行修改。例如,前面提到的实施方式的每个元件可单独使用或与其它实施方式的元件进行组合或进行子组合使用。还将认识和理解的是,可进行修改而不偏离下面的权利要求的精神和范围。

Claims (20)

1.一种用于更新虚拟桌面基础架构系统中的一批软件资源的方法,所述方法包括:
接收一个或多个软件资源的多个更新;
识别磁盘层的分级结构中的预定磁盘层中的多个虚拟机,所述多个虚拟机上将应用所述多个更新;
将所述多个更新应用于与磁盘层的所述分级结构中的所述预定磁盘层相关的所述多个虚拟机中的每个虚拟机;
确认所述多个更新中的一个或多个更新是否已成功地应用于所述预定磁盘层中的一个或多个虚拟机;
确定是否将所述多个更新中的一个或多个更新应用于磁盘层的所述分级结构中的后续磁盘层中的一个或多个虚拟机,其中:
i.当所述多个更新中的更新已成功地应用于所述预定磁盘层中的一个或多个虚拟机时,暂停将该更新应用于与磁盘层的所述分级结构中的后续磁盘层相关的所述多个虚拟机中的每个虚拟机;
ii.当所述多个更新中的更新未成功地应用于所述预定磁盘层中的一个或多个虚拟机时,将该更新应用于与磁盘层的所述分级结构中的所述后续磁盘层相关的所述多个虚拟机中的每个虚拟机。
2.如权利要求1所述的方法,还包括识别作为与所述预定磁盘层相关的一个或多个虚拟机的后代的多个虚拟机,该一个或多个虚拟机上已成功地应用了更新。
3.如权利要求2所述的方法,还包括将所述更新应用于作为与所述预定磁盘层相关的所述一个或多个虚拟机的后代的所述多个虚拟机中的每个虚拟机,该一个或多个虚拟机上已成功地应用了更新。
4.如权利要求1所述的方法,还包括将所接收到的多个更新中的每个更新存储在数据库中。
5.如权利要求1所述的方法,还包括存储磁盘层的所述分级结构中的一个或多个磁盘层的多个虚拟机中的每个虚拟机的更新确认结果。
6.如权利要求1所述的方法,还包括使每个软件资源与磁盘层的所述分级结构中的一个或多个磁盘层相关联。
7.如权利要求1所述的方法,还包括查询以确定一个或多个目标磁盘层的更新状态。
8.一种用于识别虚拟桌面基础架构系统内的磁盘层的方法,在该磁盘层上将执行更新,所述方法包括:
接收一个或多个软件资源的更新;
识别作为所述更新的目标的一个或多个可用软件资源;
识别在磁盘层的分级结构中具有作为所述更新的目标的一个或多个识别出的软件资源的每个磁盘层;
确定在磁盘层的所述分级结构中的具有所述一个或多个识别出的软件资源的最低磁盘层,其中所确定的最低磁盘层不同于磁盘层的所述分级结构中的最低磁盘层;
将所述更新应用于所确定的最低磁盘层中的一个或多个软件资源,使得第一多个虚拟机被更新并且第二多个虚拟机不被更新,其中所述第一多个虚拟机和所述第二多个虚拟机至少部分地基于所确定的最低磁盘层中的不同软件资源而形成。
9.如权利要求8所述的方法,还包括响应于确定所述更新未成功应用到至少部分地基于所确定的最低磁盘层中的软件资源形成的特定虚拟机,将所述更新应用到从所确定的最低磁盘层派生的并且用于形成特定虚拟机的磁盘层中的软件资源。
10.如权利要求8所述的方法,还包括识别作为与磁盘层的所述分级结构中的所确定的最低磁盘层相关的所述一个或多个虚拟机的后代的多个虚拟机。
11.如权利要求10所述的方法,还包括将所述更新应用于识别出的多个虚拟机中的每个虚拟机。
12.如权利要求8所述的方法,还包括将每个接收到的更新存储在数据库中。
13.如权利要求8所述的方法,还包括将每个识别出的软件资源与磁盘层的所述分级结构中的一个或多个磁盘层相关联。
14.如权利要求8所述的方法,还包括查询以确定一个或多个目标磁盘层的更新状态。
15.一种用于更新在虚拟桌面基础架构中的一批软件资源的系统,包括:
更新管理服务器,其接收一个或多个软件资源的多个更新;
控制器服务器,其识别磁盘层的分级结构中的预定磁盘层的多个虚拟机,在所述多个虚拟机上将应用所述多个更新,将所述多个更新应用于与磁盘层的所述分级结构中的所述预定磁盘层相关的所述多个虚拟机中的每个虚拟机,确认所述多个更新中的一个或多个更新是否已成功地应用于所述预定磁盘层中的一个或多个虚拟机,确定是否将所述多个更新中的一个或多个更新应用于磁盘层的所述分级结构中的后续磁盘层中的一个或多个虚拟机,其中:
i.当所述多个更新中的更新成功地应用于所述预定磁盘层中的一个或多个虚拟机时,暂停将该更新应用于与磁盘层的所述分级结构中的后续磁盘层相关的所述多个虚拟机中的每个虚拟机;
ii.当所述多个更新中的更新未成功地应用于所述预定磁盘层中的一个或多个虚拟机时,将该更新应用于与磁盘层的所述分级结构中的所述后续磁盘层相关的所述多个虚拟机中的每个虚拟机。
16.如权利要求15所述的系统,其中,所述控制器服务器还配置成将每个识别出的软件资源与磁盘层的所述分级结构中的一个或多个磁盘层相关联。
17.如权利要求15所述的系统,其中,所述控制器服务器还配置成将所述更新应用于作为与所述预定磁盘层相关的一个或多个虚拟机的后代的多个虚拟机中的每个虚拟机,该一个或多个虚拟机上已成功地应用了所述更新。
18.如权利要求15所述的系统,还包括图形用户界面。
19.如权利要求18所述的系统,其中,所述图形用户界面还配置成允许用户识别一个或多个虚拟机以接收所述多个更新中的一个或多个更新。
20.如权利要求18所述的系统,其中,所述图形用户界面还配置成指示作为每个磁盘层中的一个或多个虚拟机的后代的多个虚拟机。
CN201480008191.4A 2013-02-11 2014-02-10 对个人虚拟磁盘的系统更新 Expired - Fee Related CN104981776B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/764,295 2013-02-11
US13/764,295 US8997080B2 (en) 2013-02-11 2013-02-11 System updates with personal virtual disks
PCT/US2014/015549 WO2014124360A1 (en) 2013-02-11 2014-02-10 System updates with personal virtual disks

Publications (2)

Publication Number Publication Date
CN104981776A CN104981776A (zh) 2015-10-14
CN104981776B true CN104981776B (zh) 2018-04-24

Family

ID=50231526

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480008191.4A Expired - Fee Related CN104981776B (zh) 2013-02-11 2014-02-10 对个人虚拟磁盘的系统更新

Country Status (4)

Country Link
US (2) US8997080B2 (zh)
EP (1) EP2954410B8 (zh)
CN (1) CN104981776B (zh)
WO (1) WO2014124360A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10333820B1 (en) 2012-10-23 2019-06-25 Quest Software Inc. System for inferring dependencies among computing systems
US9141400B2 (en) * 2012-12-21 2015-09-22 Unisys Corporation Technique for deploying operating systems in a virtualized environment
US9843624B1 (en) * 2013-06-13 2017-12-12 Pouya Taaghol Distributed software defined networking
US11005738B1 (en) 2014-04-09 2021-05-11 Quest Software Inc. System and method for end-to-end response-time analysis
CN107844360B (zh) * 2014-04-30 2021-10-01 华为技术有限公司 一种硬盘执行应用代码的方法及装置
US10291493B1 (en) 2014-12-05 2019-05-14 Quest Software Inc. System and method for determining relevant computer performance events
US10187260B1 (en) 2015-05-29 2019-01-22 Quest Software Inc. Systems and methods for multilayer monitoring of network function virtualization architectures
US10200252B1 (en) * 2015-09-18 2019-02-05 Quest Software Inc. Systems and methods for integrated modeling of monitored virtual desktop infrastructure systems
US10387181B2 (en) * 2016-01-12 2019-08-20 International Business Machines Corporation Pre-deployment of particular virtual machines based on performance and due to service popularity and resource cost scores in a cloud environment
US10506012B2 (en) 2016-05-19 2019-12-10 Citrix Systems, Inc. Adding and removing virtual disks remotely to a streaming machine
US10185575B2 (en) 2016-05-20 2019-01-22 Citrix Systems, Inc. Computing device for operating a machine session with persistent read cache and non-persistent write cache and related methods
US10230601B1 (en) 2016-07-05 2019-03-12 Quest Software Inc. Systems and methods for integrated modeling and performance measurements of monitored virtual desktop infrastructure systems
US11700137B2 (en) * 2017-08-26 2023-07-11 Vmware, Inc. Collaborative access to virtual desktops
US11108868B2 (en) 2019-01-13 2021-08-31 Vmware, Inc. Live switching of collaborative virtual desktop sessions
US10986215B2 (en) * 2019-07-09 2021-04-20 Vmware, Inc. Access control in the remote device of network redirector
US20220382849A1 (en) * 2021-05-25 2022-12-01 Vmware, Inc. Credentials management and usage in application modernization

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101452397A (zh) * 2008-11-27 2009-06-10 上海交通大学 虚拟化环境中的强制访问控制方法及装置

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6009274A (en) * 1996-12-13 1999-12-28 3Com Corporation Method and apparatus for automatically updating software components on end systems over a network
US7016944B1 (en) * 1999-09-30 2006-03-21 Apple Computer, Inc. System and method for passive detection and context sensitive notification of upgrade availability for computer information
GB2364143A (en) * 2000-06-30 2002-01-16 Nokia Corp Resource allocation
ITTO20010264A1 (it) * 2001-03-21 2002-09-21 Telecom Italia Lab Spa Procedimento per l'aggiornamento delle condizioni di programmazione di server di rete, relativo sistema e prodotto informatico.
US7165260B2 (en) * 2002-06-12 2007-01-16 Fsl, L.L.C. Layered computing systems and methods for insecure environments
US7945897B1 (en) * 2002-06-12 2011-05-17 Symantec Corporation Method and system for running an application in a clean operating environment using a layered computing system
US7210143B2 (en) * 2002-07-17 2007-04-24 International Business Machines Corporation Deployment of applications in a multitier compute infrastructure
US7337184B1 (en) * 2002-07-17 2008-02-26 International Business Machines Corporation Topology mapping of a multitier compute infrastructure
US20040187140A1 (en) * 2003-03-21 2004-09-23 Werner Aigner Application framework
US8321858B1 (en) * 2003-12-31 2012-11-27 Google Inc. Systems and methods for providing software updates
US7665085B2 (en) * 2004-03-15 2010-02-16 Ramco Systems Limited Flexible deployment of software applications
US7698685B2 (en) * 2005-10-12 2010-04-13 Microsoft Corporation Discovery, qualification, and activation of software add-in components
US20070174429A1 (en) * 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
US8555274B1 (en) * 2006-03-31 2013-10-08 Vmware, Inc. Virtualized desktop allocation system using virtual infrastructure
US8776041B2 (en) * 2007-02-05 2014-07-08 Microsoft Corporation Updating a virtual machine monitor from a guest partition
US8161478B2 (en) * 2007-05-10 2012-04-17 Embotics Corporation Management of computer systems by using a hierarchy of autonomic management elements
US8205194B2 (en) * 2007-06-29 2012-06-19 Microsoft Corporation Updating offline virtual machines or VM images
US8434077B2 (en) * 2007-10-18 2013-04-30 International Business Machines Corporation Upgrading virtual resources
US20110040812A1 (en) * 2007-12-20 2011-02-17 Virtual Computer, Inc. Layered Virtual File System
MX2010009362A (es) 2008-02-26 2010-12-06 Vmware Inc Extension de arquitectura de maquina virtual de escritorio basada en servidor para maquinas de cliente.
US8365167B2 (en) 2008-04-15 2013-01-29 International Business Machines Corporation Provisioning storage-optimized virtual machines within a virtual desktop environment
US20090265699A1 (en) * 2008-04-18 2009-10-22 Telefonaktiebolaget Lm Ericsson (Publ) Methods and systems for embedding upgrade steps for layered architectures
US8819657B1 (en) * 2008-09-18 2014-08-26 Symantec Corporation Method and apparatus for maintaining data consistency in a virtualized application during software update installation
CN101727331B (zh) * 2008-10-24 2013-03-20 国际商业机器公司 升级活动虚拟机的客户操作系统的方法和设备
US20110055299A1 (en) * 2008-12-18 2011-03-03 Virtual Computer, Inc. Managing User Data in a Layered Virtual Workspace
US8332848B2 (en) 2009-03-12 2012-12-11 Red Hat Israel, Ltd. Mechanism for staged upgrades of a virtual machine system
US8359594B1 (en) * 2009-06-30 2013-01-22 Sychron Advanced Technologies, Inc. Automated rapid virtual machine provisioning system
US8316125B2 (en) * 2009-08-31 2012-11-20 Red Hat, Inc. Methods and systems for automated migration of cloud processes to external clouds
US8756597B2 (en) * 2010-02-05 2014-06-17 Novell, Inc. Extending functionality of legacy services in computing system environment
US8533701B2 (en) * 2010-03-15 2013-09-10 Microsoft Corporation Virtual machine image update service
US8312471B2 (en) * 2010-04-26 2012-11-13 Vmware, Inc. File system independent content aware cache
US8364819B2 (en) * 2010-05-28 2013-01-29 Red Hat, Inc. Systems and methods for cross-vendor mapping service in cloud networks
US8489699B2 (en) * 2010-08-13 2013-07-16 Vmware, Inc. Live migration of virtual machine during direct access to storage over SR IOV adapter
US8627310B2 (en) * 2010-09-30 2014-01-07 International Business Machines Corporation Capturing multi-disk virtual machine images automatically
JP5932837B2 (ja) * 2011-01-19 2016-06-08 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation コードを更新および認証するための方法およびシステム、プログラムの完全性を試験する方法およびシステム
US8683466B2 (en) 2011-05-24 2014-03-25 Vmware, Inc. System and method for generating a virtual desktop
US8819660B2 (en) * 2011-06-29 2014-08-26 Microsoft Corporation Virtual machine block substitution
US20130007736A1 (en) * 2011-06-30 2013-01-03 Hiroshi Nakajima Information processing apparatus, method of processing information and storage medium
US8813076B2 (en) * 2011-11-17 2014-08-19 International Business Machines Corporation Virtual machine updates
KR101554113B1 (ko) * 2011-12-23 2015-09-17 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 장치 집합체에서 리소스 활용의 최적화
US9176752B1 (en) * 2012-12-04 2015-11-03 Amazon Technologies, Inc. Hardware-based mechanisms for updating computer systems
US9459856B2 (en) * 2013-01-02 2016-10-04 International Business Machines Corporation Effective migration and upgrade of virtual machines in cloud environments

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101452397A (zh) * 2008-11-27 2009-06-10 上海交通大学 虚拟化环境中的强制访问控制方法及装置

Also Published As

Publication number Publication date
CN104981776A (zh) 2015-10-14
EP2954410B8 (en) 2020-02-26
WO2014124360A9 (en) 2015-08-06
US10019177B2 (en) 2018-07-10
WO2014124360A1 (en) 2014-08-14
US8997080B2 (en) 2015-03-31
EP2954410B1 (en) 2019-12-18
US20150160877A1 (en) 2015-06-11
EP2954410A1 (en) 2015-12-16
US20140229934A1 (en) 2014-08-14

Similar Documents

Publication Publication Date Title
CN104981776B (zh) 对个人虚拟磁盘的系统更新
CN104956329B (zh) 在云计算环境中的网络方案
CN104981783B (zh) 在云计算环境中的动态配置
CN104487943B (zh) 受信文件间接操作的方法和装置
CN104487959B (zh) 虚拟机的安全管理
CN104067231B (zh) 使用虚拟交换代理控制网络接口
CN104246703B (zh) 为云资源指定状态
CN102754077B (zh) 可从外部媒体装置引导的安全虚拟化环境
CN104601622B (zh) 一种部署集群的方法和系统
CN102272726B (zh) 便于异构处理器池虚拟化的系统和方法
CN104106051A (zh) 标记云计算环境中的物理资源
CN102202049B (zh) 用于多虚拟机设备的网络策略实现
CN102971706B (zh) 将信息从安全虚拟机重定向到不安全虚拟机
CN104765620B (zh) 一种程序模块部署的方法和系统
CN104137050B (zh) 具有分级更新的远程显示
CN102971722B (zh) 用于创建和传送加密的虚拟盘的系统和方法
CN102804140B (zh) 用于将设备驱动程序导入到客户计算环境中的方法和系统
CN104067288A (zh) 存储加密
CN104115471A (zh) 托管的服务中的客户端带宽模拟
CN104067265A (zh) 用于支持在云中的安全应用部署的系统和方法
CN104303151A (zh) 用于在服务器上远程执行的应用的壳集成
CN107430669A (zh) 计算系统和方法
CN113454594A (zh) 用于云服务的本机代码生成
CN104487932B (zh) 用于远程应用和桌面的语音识别支持
CN104424012B (zh) 用于提供自定义虚拟装置的方法和设备

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180424

CF01 Termination of patent right due to non-payment of annual fee