CN101971162A - 将基于服务器的桌面虚拟机架构扩展到客户机上 - Google Patents

将基于服务器的桌面虚拟机架构扩展到客户机上 Download PDF

Info

Publication number
CN101971162A
CN101971162A CN200980105185XA CN200980105185A CN101971162A CN 101971162 A CN101971162 A CN 101971162A CN 200980105185X A CN200980105185X A CN 200980105185XA CN 200980105185 A CN200980105185 A CN 200980105185A CN 101971162 A CN101971162 A CN 101971162A
Authority
CN
China
Prior art keywords
disk
client
virtual machine
user
virtual
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.)
Granted
Application number
CN200980105185XA
Other languages
English (en)
Other versions
CN101971162B (zh
Inventor
亚龙·霍尔珀林
亚德·沙姆沙姆
克里斯蒂安·M·勒罗伊
杰瑞德·I·L·昌
马修·埃克尔斯顿
冯季
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.)
Weirui LLC
Original Assignee
VMware LLC
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 VMware LLC filed Critical VMware LLC
Publication of CN101971162A publication Critical patent/CN101971162A/zh
Application granted granted Critical
Publication of CN101971162B publication Critical patent/CN101971162B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • G06F9/45537Provision of facilities of other operating environments, e.g. WINE
    • 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
    • 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/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • 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
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • 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
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • 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
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

基于服务器的桌面虚拟机架构可被扩展到客户机上。在一个实施方式中,从客户端系统远程访问用户桌面。该远程桌面是由在服务器系统上运行的第一虚拟机产生的,该服务器系统可包含一个或多个服务器计算机。在该第一虚拟机的执行过程中,对相应虚拟磁盘的写被定向到增量磁盘文件或重做日志。在该客户端系统上创建该虚拟磁盘的拷贝。当用户决定“登出”他或她的桌面时,该第一虚拟机被终止(如果它正在运行的话)而在该客户端系统上创建该增量磁盘的拷贝。一旦该增量磁盘在该客户端系统上存在,可以使用该虚拟磁盘和增量磁盘在该客户端系统上启动第二虚拟机以提供对该客户端系统处的用户桌面的本地访问。这使得用户能够在此时访问他或她的桌面而不必连接到网络上。

Description

将基于服务器的桌面虚拟机架构扩展到客户机上
技术领域
本申请主张2008年2月26日提交的美国临时申请61/031,613的权益,该申请通过参考全部并入本文。
背景技术
人们已经意识到,计算机虚拟化的好处在于大大增加了计算硬件平台的计算效率和灵活性。例如,计算机虚拟化允许多个虚拟计算装置(computing machine)运行在一个通用计算硬件平台上。与物理计算硬件平台类似,虚拟计算装置包括存储介质,比如虚拟硬盘,虚拟处理器以及与计算环境有关的其它系统元件。例如,虚拟硬盘可以存储操作系统、数据和用于虚拟机的应用文件。
基于服务器的计算允许联网客户端系统(相对于服务器远程设置)访问该服务器上的计算资源。例如,客户端可以使用远程桌面协议(比如RDP或VNC)远程访问桌面并将用户输入(比如键盘或鼠标输入)传送到该远程系统。基于服务器的计算有助于计算资源的集中管理。然而,一个缺点是没有最好的计算体验。例如,图形密集型(graphic intensive)应用和本地设备(比如USB器件、打印机等)不能按照期望操作。而且,用户必须与该网络保持连接以能够访问该服务器上存储的用户桌面。
作为基于服务器的计算的替代方案,客户端计算允许用户远离企业网络并处于脱机方式,即,不连接到网络或因特网。然而,从企业管理的立场来看,当遇到比如更新操作系统和应用、增强安全性、符合许可、锁定信息、强制遵循各种策略和数据备份这类任务时,客户端计算带来不希望的低效。
发明内容
通过将基于服务器的桌面虚拟机架构扩展到客户机可以解决上述挑战。在一个实施方式中,从客户端系统远程访问用户桌面。该远程桌面是由在服务器系统上运行的第一虚拟机产生的,该服务器系统可包含一个或多个服务器计算机。在该第一虚拟机的执行过程中,对相应磁盘的写被重定向到增量磁盘文件或重做日志。在该客户端系统上创建该虚拟磁盘的拷贝。当用户决定“登出”他或她的桌面时,该第一虚拟机被终止(如果它正在运行的话)而在该客户端系统上创建该增量磁盘的拷贝。一旦该增量磁盘在该客户端系统上存在,可以使用该虚拟磁盘和增量磁盘在该客户端系统上启动第二虚拟机以提供对该客户端系统处的用户桌面的本地访问。这使得用户能够在此时访问他或她的桌面而不必连接到网络上。
附图说明
图1显示了提供到中心管理的用户桌面的访问的简单的示例性虚拟桌面构造(VDI)系统。
图2显示了一种示例性的虚拟化计算机系统的逻辑表示。
图3A、3B、3C和3D显示了用实例方式描绘图1的虚拟桌面构造的操作的方框图。
图4显示了显示用于在有自动后台同步的情况下将用户连接到远程桌面的示例性程序的流程图。
图5显示了用实例方式表示用于实现桌面登出(check-out)程序的方法的流程图。
具体实施方式
图1显示了提供对中心管理的用户桌面的访问的简单的示例性虚拟桌面构造(VDI)系统10。术语“桌面”指的是一种人机接口环境,用户可以通过该人机接口环境启动、与其交互并管理该用户的应用、设置和数据。传统上,桌面由操作系统呈现在视频显示器上,而用户使用鼠标和键盘与该桌面进行交互。所有的应用、文件等等可以显示在该桌面上而用户输入通常由用户可以在该显示器上看到的应用接收。人们还知道术语“桌面”被用于指示可以被放置在用户的书桌上或书桌附近的物理计算机系统或“物理桌面”,以与“膝上型电脑”或“掌上式电脑”相区别,但是本文中使用的术语“桌面”本身唯一指示上述人机接口环境,而不是物理计算机系统。使用计算机虚拟化,用户的计算机系统,包括操作系统设置、应用和应用设置,以及数据可以作为虚拟机从一个物理计算机传送或拷贝到另一个物理计算机。当用这种方式拷贝虚拟机时,用户可以从包含原始虚拟机的物理计算机系统或包含该拷贝的物理计算机系统访问他或她的“桌面”。因此该“桌面”不再束缚于(tied to)一个特定的物理计算机系统。
VDI系统10包括VDI服务器系统11,VDI服务器系统11与若干个VDI客户端系统12、14和16通过网络13数据通信。网络13可以是任何架构,比如局域网(LAN),或可私有或公开访问的广域网,比如因特网。应该意识到,图1显示了一种典型的VDI网络服务器系统11的简化表示,该VDI网络服务器系统11可包括其它组件比如防火墙、连接代理(connection broker)和负载平衡器,以及后端存储网络、数据库服务器等。每个客户端系统12、14、16可包括用户界面40(只显示了一个),通过该用户界面40用户可以与他或她的桌面交互。
图2显示了一种示例性的虚拟化计算机系统20的逻辑表示。如同下面会更详细地解释的,VDI服务器系统11和VDI客户端系统12、14和16可包括物理硬件平台22、运行在硬件平台22上的虚拟化软件80以及通过虚拟化软件80运行在硬件平台22上的一个或多个虚拟机70。因此虚拟化软件80在逻辑上介于硬件平台22的物理硬件和在虚拟机70“内”运行的来宾(guest)系统软件72之间。
硬件平台22可以是一种具有一个或多个系统总线28的通用计算系统,该系统总线28使得各种硬件平台组件彼此数据通信。例如,使用系统总线(一个或多个)28使一个或多个处理器24与存储器(memory)26数据通信。存储器26可包含一种多个存储器的系统,其中存储器包括只读存储器(ROM)、随机存取存储器(RAM)、缓冲存储器和各种寄存器存储器。非易失性数据存储器30包括用于存储软件或数据的一个或多个磁盘驱动器或其它机器可读介质或海量数据存储系统。存储器26和/或非易失性数据存储器30可以存储虚拟化软件80和在虚拟机70中运行的来宾系统软件72。可以提供用户界面40,该用户界面40包括键盘控制器(未示)、鼠标控制器(未示)、视频控制器(未示)和音频控制器(未示),其中每一个都连接到相应的用户装置(未示)。对于服务器计算机系统通常来说,对于VDI服务器系统11(图1)用户界面和装置可以被或不被包括或连接到硬件平台22。相反,用户交互可以远程进行,如同数据中心管理领域通常知道的那样。网络接口50使得数据通信能够通过网络,比如网络13(图1),进行。网络接口50可以协助使用网络协议(比如TCP/IP)进行的通信。
虚拟化软件80是计算机虚拟化领域中熟知的。虚拟化软件80执行系统资源管理和虚拟机仿真。虚拟机仿真可以由虚拟机监控(VMM)组件执行。在典型实现中,每个虚拟机70(只显示了一个)具有相应的VMM实例(instance)。根据实现,虚拟化软件80可以是非寄生的(unhosted)或寄生的(hosted)。非寄生的虚拟化软件通常依赖专门的虚拟化内核以管理系统资源,而寄生的虚拟化软件依赖商品操作系统-“主机操作系统”-比如Windows或Linux来管理系统资源。在寄生的虚拟化系统中,该主机操作系统可以被认为是虚拟化软件80的一部分。
虚拟机70在概念上包含虚拟硬件装置(如虚拟化软件80所仿真的)的状态和来宾系统软件72的内容。如图2中所示,来宾系统软件72包括来宾操作系统74和来宾应用78。来宾操作系统74可以是一种商品操作系统,比如Windows或GNU/Linux。虚拟化软件80负责管理到达和来自虚拟机70的输入和输出,包括将用户界面输出导向本地用户接口40或远程桌面客户端。
图3A和3B显示了可扩展的VDI系统100的简化框图,该可扩展的VDI系统100具有对用户桌面的远程(或中心化)访问和本地访问,允许单个用户远程或本地访问他或她的桌面。可扩展的VDI系统100包括服务器系统110和客户端系统120。VM 118在服务器系统110上执行并可以由用户经由客户端系统120访问。VM 118包含上面参考图2所述的所有的用户应用和数据,并且使用虚拟化软件117执行。在一个实施方式中,虚拟化软件117包含非寄生虚拟化软件。另外,尽管图中显示只有一个VM 118在服务器110中在执行,然而任意数量的VM可以在执行,每个与一个或多个相应用户有关。
虚拟化软件117将用户I/O导向远程桌面主机115。远程桌面主机115向远程桌面客户端125发送用户的图形和声音。类似地,远程桌面客户端125向远程桌面主机115发送用户的输入,例如键盘和鼠标输入。远程桌面客户端125通过用户界面124向该用户呈现该用户的桌面,用户界面124可包含各种用户I/O装置。
除了远程桌面客户端125外,客户端系统120还包括虚拟机128以及虚拟化软件127。虚拟机128可以访问虚拟磁盘132,该虚拟磁盘132是作为一个或多个文件残存在物理磁盘130上的磁盘映像,其中物理磁盘130连接到客户端系统120。虚拟磁盘132由虚拟化软件127维持。在一个实施方式中,虚拟化软件127包含寄生的虚拟化软件,如同前面所述的,该寄生的虚拟化软件与该客户端的主机操作系统协同运行。虚拟磁盘132在开始时可以是从虚拟磁盘142拷贝的(或者反过来)从而在一个特定状态下,虚拟磁盘132和142是完全相同的,或者在逻辑上等同而并非完全相同的。在逻辑上等同的意思是每个虚拟磁盘包含相同的文件系统和数据文件,它们在逻辑上是在完全相同的文件系统架构中相关的,尽管实际的磁盘扇区可能不是以相同方式排列。两个完全相同的磁盘也是逻辑上等同的。
服务器系统110包括物理磁盘140或与物理磁盘140通信,该物理磁盘140是服务器系统110能够访问的。物理磁盘40(其被虚拟化软件117用于存储用户的虚拟磁盘)是用于相应虚拟机的磁盘映像文件。当该用户在VM 118上工作时,它可以对虚拟磁盘142进行写操作(issue writes),虚拟磁盘142作为一个或多个文件存在于物理磁盘140上。然而,虚拟化软件117可以被配置为将写操作重定向到增量磁盘144而不是将改变直接写到虚拟磁盘142。增量磁盘144可包含重做日志(redo log)或其它的“差别”文件。实质上,增量磁盘144对虚拟磁盘142维持一个修改列表而实际上不对虚拟磁盘142进行任何改变。增量磁盘是虚拟化领域熟知的,并且在例如美国专利7,356,679中更详细地描述过。当虚拟机118进行读操作时,虚拟化软件117访问增量磁盘144以确定数据是否在那里,如果不是的话,它就访问虚拟磁盘142,增量磁盘144的父磁盘映像。然后虚拟化软件117将该数据输送到虚拟机118,就像发生过物理装置的简单的磁盘读取一样。
当用户可能决定“登出”他的虚拟机从而它可以被离线(即,在不访问服务器系统110的情况下)访问时,他或她可以向管理软件(未示,下面会更详细地描述)这种期望。在这时候,虚拟机118被“关机(powered off)”而增量磁盘144被拷贝到该用户的物理磁盘130以在该用户的物理磁盘130上创建增量磁盘134。一旦这种下载完成并被验证,形成增量磁盘144的写操作被合并到虚拟磁盘142且该增量磁盘134以类似方式被合并到虚拟磁盘132,从而虚拟磁盘132和虚拟磁盘142被维持在逻辑上等同的状态,但是现在被更新以反映用户留下的最新的状态。
在一个实施方式中,该用户可以简单的挂起(suspend)而不是关掉虚拟机118,无论在哪种情况下,VM状态136也被从虚拟化软件117下载下来,其维持了虚拟机118的状态。
图3B显示了可扩展的VDI系统100,其中该用户正通过本地运行虚拟机128离线访问他或她的桌面。在这种情况下,虚拟化软件127在客户端系统120上运行虚拟机128而不使用远程桌面客户端125。因此,该用户可以从任何网络断开并离线工作。虚拟化软件127不直接修改虚拟磁盘132。相反,它创建增量磁盘134,该增量磁盘134包含如同前面参考图3A中的增量磁盘144所述的该用户对虚拟磁盘132执行的所有改变。
在某一点,该用户可要求或被要求将他或她的桌面“登入(check in)”到服务器系统110中。此时,虚拟机128被“关机(power down)”而虚拟化软件127连接到服务器110并将增量磁盘134拷贝到服务器的数据存储器140以创建增量磁盘144。在一个实施方式中,该虚拟机可以被挂起而不是关机,而VM状态146被上传到服务器系统10。在拷贝增量磁盘或该增量磁盘134加上状态146后,增量磁盘134、144分别被合并到虚拟磁盘132、142。“合并”的意思是每一个增量磁盘中包含的磁盘写操作分别被写到虚拟磁盘文件132、142。在这种登入程序后,每一个虚拟磁盘132、142是完全相同或者至少是在逻辑上等同的从而用户可以使用虚拟机118从他或她上次停止使用虚拟机128的地方开始计算。
正如现在将会更详细地描述的,可以对上面描述的登入、登出功能的基本操作做出各种改进和优化。
图3C显示了可扩展的VDI系统100的更详细的视图。用户的桌面是由残留在连接到服务器系统110的物理磁盘140上的一个或多个文件141限定的。文件141包括用于策略(policies)149、虚拟磁盘142、增量磁盘144和VM状态146的文件。策略可以使用数据库和/或通过作为元数据关联或嵌入在虚拟磁盘142中的配置文件存储。可以提供额外的桌面文件148以限定可以由相应的用户或用户组访问的额外的桌面。
如图3C所示,客户端系统120包括VDI客户端122,VDI客户端122与服务器系统110上的管理服务器112通信。管理服务器112认证客户端120的用户,处理访问用户桌面的请求并实施策略149。策略149可限定特定的桌面对谁以及在什么情况下是可以获得的。例如,策略149可以是针对发出该请求的用户的,尽管全局策略、基于用户位置或组或所请求的服务的策略也可能是适用(in place)的。
在一个实施方式中,管理服务器112是安装在单独的物理计算机系统上的服务器应用程序,其通过网络13与客户端系统120及服务器系统110的其他组件通信,如同上面所述,该服务器系统110可包含多个服务器装置。在本实施例中,当用户与客户端系统120上的VDI客户端125交互时,对与该用户有关的桌面的请求通过网络13被发送到服务器110。如上所述,服务器系统110可包括多个VM(只显示了一个),其中每一个对应于一个或多个用户。管理服务器112接收用户的请求,认证该用户和/或该请求,根据需要启动或恢复(resume)VM 118,并将VDI客户端125与远程桌面服务器115连接。
VDI客户端122包括表示层124,表示层124提供了允许用户与VDI客户端122(并因此与服务器系统110)交互的图形用户界面。在一个实施方式中,VDI客户端122在因特网浏览器中执行或协同因特网浏览器执行。
在某一点,如同上面参考3A和3B所述的,该用户可能希望“登入”或“登出”他或她的桌面。在这种情况下,该虚拟磁盘或增量磁盘被从客户端系统120拷贝到服务器系统110或反过来(根据该用户是“登入”还是“登出”该桌面)。如果该用户是登出该桌面到一个没有该虚拟磁盘的本地拷贝的计算机,那么增量磁盘144可以与服务器系统110上的虚拟磁盘142和被拷贝到该用户的本地客户端系统120的整个虚拟磁盘合并。因为该虚拟磁盘可能是非常大的,所以由于很大的数据量和可能有限的带宽,这种初始的登出可能是非常耗时的。根据用户的活动,甚至在后续的登入和登出程序过程中传输的增量磁盘也可能变得相当大,例如,可能安装了一个新应用或者现有应用或操作系统组件可能大规模升级过或打过补丁。
在一个实施方式中,登入和登出用户桌面所需的时间可以通过在后台(也就是说,当用户与虚拟机交互时,而不打扰用户的活动或该虚拟机的操作)在客户端系统120和服务器系统110之间传输数据而减少。这可以被称为后台同步或后台数据传输。后台数据传输可以响应客户端系统120的用户自动进行,其中该用户是被授权访问VM 118的。用这种方式,虚拟磁盘142的准确和更新后的表现可以被传送到客户端系统120并从客户端系统120传输而不会引人注意地使用户从他的计算体验中分散注意力。当用户从新的客户端系统110远程开始工作时,虚拟磁盘142可以在后台传输直到获得了作为客户端系统120上的虚拟磁盘132的完整的拷贝。然后,对虚拟磁盘142的改变在后台被传送到客户端系统120以开始建造增量磁盘132。当用户决定登出他或她的桌面时,对虚拟磁盘142的至少大部分改变已经被传送到了120。同样地,当用户决定登入他或她的桌面时,对虚拟磁盘132的至少大部分改变已经被传送到了服务器系统110。
当用户决定注销他们与他们的桌面的会话(session)时,增量磁盘144和增量磁盘134之间任何的差别会通过传输最后的改变而解决。在完成客户端系统120和服务器系统110之间的通信后,增量磁盘144中表示的变化可以被写到虚拟磁盘142。在一个实施方式中,这在VM 118的操作被终止以后会发生以确保VM 118的稳定状态,同时更新虚拟磁盘142。VM 118的操作的终止可包括关闭VM118或挂起VM 118的运转。关闭VM通常涉及执行该VM中运行的来宾操作系统的关机程序。在这种程序中,处理被结束而当前残留在存储器中的任何瞬态的或缓存的数据被写到磁盘。当VM被关机时存在很少或没有状态信息,然而挂起操作涉及停止执行并通过写入VM状态文件146而保留该虚拟机的状态。
一旦增量磁盘144与虚拟磁盘142合并,增量磁盘144可以被擦除、标记为删除、要么被识别为不再有效。使得虚拟磁盘132与虚拟磁盘142和对任一个虚拟磁盘进行的改变一致被称为同步。当VM128的本地执行以与上面参考终止上述虚拟机118的操作描述的同样的方式终止后,该用户的虚拟机可以以这种方式同步。
管理服务器112可建立或实施一个策略,该策略阻止虚拟机118的操作直到可以确定没有对应于虚拟机118的虚拟机128没有与虚拟机118同步。也就是说,如果该用户已经离线与他或她的桌面交互,由此导致增量磁盘134的创建的话,那么管理服务器112可阻止VM 118的使用直到增量磁盘134所表示的变化被传送到服务器系统110并与虚拟磁盘142合并。
维持对应于该用户的桌面的信息的同步可包括实现对该用户桌面的策略管理。策略149的实施例包括有关是否以及在什么条件下用户的桌面的拷贝可以被传送到客户端系统120、登出该桌面多久以后可以再登入回服务器系统110、对虚拟机128/118的使用的限制等等。虚拟化软件127和/或VDI客户端122可以被配置为实施所建立的策略,例如使用加密以阻止对存储在虚拟磁盘132上的数据以及相关的增量磁盘的未授权访问。
在一个实施方式中,当用户启动VDI客户端122时,可以向他或她呈现请求认证信息的登录屏幕。然后VDI客户端将认证信息传送到服务器系统110,例如,传送到远程桌面服务器112。远程桌面服务器确认该用户的认证并向管理服务器112发送对应于该用户的认证信息的现有桌面的请求。管理服务器112从远程桌面服务器115接收请求并将提供的用户标识符与映射表114进行比较,映射表114就爱功能该用户标识符关联于服务器系统110上的一个或多个虚拟机。在识别与该用户标识符有关的(一个或多个)虚拟机时,管理服务器112提供连接信息,或者协助VDI客户端110和远程桌面服务器115之间的连接以使远程用户访问相应的桌面。
在另一个实施方式中,被传送到服务器系统110的用户请求可包括本地桌面状态信息。本地状态信息还可以响应来自远程桌面服务器115的查询而从该请求单独提供。本地状态信息可包括帮助鉴别该用户的本地客户端系统120和服务器系统110的状态之间的差别的信息。例如,本地状态信息可包括该用户是不是已经离线访问他或她的桌面,导致增量磁盘134的创建。如果存在增量磁盘134的话,那么管理服务器112在允许访问虚拟机118之前会在后台开始传送该差别。如果该传送时间被规划为非常冗长的话,那么用户可以在后台同步过程中立即连接到本地VM 128。如果没有增量磁盘134,但是存在增量磁盘144的话,那么可以允许到VM 118的连接,同时伴随相应的自动后台同步。
在一个实施方式中,后台数据传送可以响应周期性查询而进行,当客户端系统120访问服务器系统110时该周期性查询自动进行。在另一个实施方式中,后台数据传送可以仅仅应客户端系统120的用户的请求而进行。例如,该用户可以请求本地客户端系统110与服务器系统110在考虑到离线的情况下同步。对于很少离线的用户,这个特性的使用可能显著减少网络资源上的负载。策略149可要求,允许(即,让用户决定)或阻止连续的、周期性的或由用户启动的同步。
在用图3D的实例表示的一个实施方式中,用户数据和系统数据被保持在单独的虚拟驱动器中。在这种实施方式中,要被传送的数据量可以通过只将用户数据写到增量用户数据磁盘135或145而进一步减少(取决于该用户是本地还是远程访问他或她的桌面)。例如,用于用户在服务器系统110上的桌面的信息可以被分类为存储在系统盘152(其可以作为物理磁盘150上的磁盘映像文件而存在)中的系统信息,以及存储在虚拟用户数据磁盘(UDD)143中的用户数据。同样地,对这两个磁盘的改变可以被存储在两个单独的增量磁盘中:增量系统磁盘144和增量UDD磁盘145。
在一个实施方式中,系统信息包括应用信息78和来宾系统软件72(图2)而用户数据包括文档、设置、针对用户的属性等。大部分操作系统,比如Windows、OSX
Figure BPA00001204771500121
和Gnu-Linux,包括用于在分离的磁盘上保持系统和用户数据的工具(facility)。通过使用虚拟化以为系统数据和用户数据两者制造单独的增量映像,管理服务器112可以被配置为将数据的传送限制为只是存储在虚拟UDD 143上的用户信息。在这种情况下,对该系统所做的任何改变(并因此被写入到系统磁盘中的)将会被丢弃而系统磁盘152会因此被返回到具有该用户的桌面的每个登入和登出的已知有效状态,因为那个信息不被传送。而且,在客户端系统112和服务器系统110之间传送的信息的量可以被减少为只是用户数据。
在一个实施方式中,对系统磁盘152的改变(在该虚拟机的操作过程中被保持在单独的增量系统磁盘144中)可以经受对该用户适用的任何策略。也就是说,它们可以被丢弃或合并回包含系统数据、操作系统和应用的该虚拟磁盘上。如果增量系统磁盘144被丢弃,那么系统磁盘152可以被认为是“永久系统磁盘”,因为无论在任何特定的用户会话过程中该用户对该系统做了什么改变它都会保持在一个已知的良好状态。
对系统磁盘的修改可以被封装在补丁文件154中,例如,当操作系统或应用被更新或制造商释出新版本时。这些改变可以通过创建补丁文件154而应用到系统磁盘152,其中该补丁文件154限定了当前系统磁盘和更新后的系统磁盘之间的差别。该补丁文件可以被应用到系统磁盘152以创建打过补丁的系统磁盘,并且还被传输到客户端系统120,以高效地对该客户端系统上的系统磁盘132打补丁。
在可以与本文描述的其它实施方式共存的另一个实施方式中,文件系统信息被分析以鉴别与被删除了的文件有关的扇区。然后在传送该增量磁盘映像时这些扇区被省略以进一步减少被传送的数据量。该分析和省略可以发生在增量磁盘传送的时候,或者可以作为一个单独的步骤执行,其中在该单独的步骤中该增量磁盘在传送之前被预处理(pre-process)。在这种情况下,该虚拟磁盘的拷贝可能不完全相同,但是仍然是在逻辑上等同的。
图4显示了流程图200,流程图200显示了用于在有自动后台同步的情况下将用户连接到远程桌面的示例性程序。该程序开始于开始框202并流向操作204,在操作204中,服务器系统120(图3A-3D)接收到访问对应于客户端系统120的该用户的认证信息的桌面的请求。对接收到这种请求做出响应,该程序进行到操作206,在操作206中服务器系统110确认用户的认证。如果该认证是无效的,那么该程序进行到操作208,在操作208中,访问被拒绝而该程序停止。如果认证有效,那么该程序进行到操作210,在操作210中该用户被连接到与该用户标识符对应的桌面。在将该用户连接到在该服务器系统上执行的该虚拟机上的他或她的桌面后,该程序进行到操作212,在操作212中服务器系统110确定客户端系统120是否具有对应于该用户桌面的虚拟磁盘的正确拷贝。如果不是的话,那么该程序进行到操作214,在操作214中虚拟磁盘142在后台(也就是说,在用户访问并与该服务器系统上的虚拟机118交互的同时)被传送到客户端系统120。这个操作继续,直到客户端系统120已经具有了用于相应桌面的虚拟磁盘的完整而正确的拷贝。
如果,在操作212中,确定该客户端系统具有该虚拟磁盘的正确拷贝,那么该程序进行到操作216。如同前面提到的,在用户与该服务器系统上的该虚拟机的交互过程中,对该虚拟磁盘的改变被写到增量磁盘。在操作216中,服务器系统110确定该客户端系统是否有该增量磁盘映像的最新(up-to-date)拷贝。如果没有的话,那么该程序进行到操作218,在操作218中该服务器系统上的该增量磁盘被拷贝到该用户的客户端系统。只要该用户与该虚拟机交互并且因此对该虚拟磁盘产生了改变,这个程序就会发生。在某一点,该用户可以注销、关机或挂起正在该服务器系统上执行的虚拟机,在那一点,任何剩余的改变都被拷贝到该客户端系统。然后该程序终止于完成框220。
在一个实施方式中,后台同步可以在客户端系统120和服务器系统110之间的通信会话过程中的任何时间启动。该后台同步可以自动发生(例如,根据由管理员设置的策略)或根据用户的请求发生。
例如,该请求或策略可以指定该用户的客户端系统定期更新。在这种情况下,服务器系统110确定从最近的更新以后是否已经过去了特定长的时间。除了严格的时间测量之外,确定更新时间的其它方式当然也是可以实现的,例如,时钟可以测量过去的时间的量,或者该系统可以等待直到该用户空闲,即,暂时不与该系统交互。如果该客户端系统不是最新的,并且根据服务器系统110中虚拟磁盘的当前状态,即,是否存在增量磁盘144(图3A-3D),系统110,与客户端系统120协同,开始传送虚拟磁盘142和/或向虚拟磁盘142传送包含修改的增量磁盘144。
在一个实施方式中,随着VM 118的执行,对增量磁盘144的新的改变被附加到增量磁盘144,并定期传送到用户系统120。服务器系统110记住多少增量磁盘已经被传送到了客户端系统120,从而在每个更新间隔只有附加的部分被传输。
在另一个实施方式中,在每个更新间隔当前的增量磁盘被关闭而新的增量磁盘被创建。当前的增量磁盘(其包含对以前的增量磁盘中包含的信息的修改)被传输而新的改变被写到该新的增量磁盘。用这种方式,一系列的连锁(chained)快照被创建并被传送到客户端系统120,然后客户端系统120重新组合或将它们合并到单一的增量磁盘或者直接合并到该虚拟磁盘。在一个实施方式中,每个增量磁盘在传送到客户端系统110之前被扫描和/或清除掉恶意软件(malware),比如病毒。该扫描可以以非打扰性的方式在后台执行。
图5显示了流程图250,流程图250用实例表示了用于实现桌面登出程序的方法。该程序开始于开始框252并且继续到操作254,在操作254中该服务器系统认证请求访问的用户。根据具体实现,在这时候该用户可以或可以不立即连接到他或她的远程桌面。然后该程序进行到操作256,在操作256中服务器系统接收由用户发出的登出该桌面的请求。然后该程序进行到操作258,在操作258中该服务器系统确定该策略和用户权限是否允许该用户的桌面对该用户的登出。如果不是的话,该程序进行到操作260,在操作260中一个消息被传送到该客户端系统,其中该消息表明他或她有在当前时间登出他或她的桌面的特权。然后该程序终止于完成框274。如果,在操作258中,确定该用户的确具有登出该桌面的权限,那么该程序进行到操作262以确定该用户的桌面是否已经登出,例如,登出到不同的客户端系统,以及是否因为又登入回来所以看上去没有。用户桌面状态可以被保持在例如用户数据库或包含该虚拟磁盘映像的该文件中的或该文件的状态字段、元数据字段或子部分。如果该用户的桌面当前是登出的,那么该程序进行到操作260而服务器系统120向客户端系统12发送登出访问拒绝消息。这确保了每次只有一个该用户的拷贝可以被登出。在一个实施方式中,当桌面在“登出”状态时该用户被阻止远程访问他或她的桌面,在“登出”状态时远程访问他或她的桌面可能导致该虚拟机的“分叉”以及同步的丧失。如果在操作262中确定该桌面当前已经不是登出的,那么该程序进行到操作264,在操作264中该用户的虚拟机如果运行的话就被终止。终止该虚拟机可以包括使其关机或者将该虚拟机挂起并将该状态保存到磁盘中。
然后该程序进行到操作266,在操作266中该客户端系统被查询以确定它是否有该系统磁盘的当前拷贝以及该服务器系统上可能存在的任何增量磁盘。如果没有的话,那么该程序进行到操作268,在操作268中该虚拟磁盘和增量映像根据需要被拷贝或更新,然后该程序进行到操作270。如果,在操作266中,确定该客户端系统已经有了该虚拟磁盘的当前拷贝或任何增量磁盘,那么该程序直接进行到操作270。
在操作270中,该用户或元数据被更新以反映该用户的桌面的现在“登出”的状态。然后该程序进行到操作272,在操作272中该用户被允许通过在本地客户端系统上运行该本地虚拟机而访问他或她的桌面。然后该程序终止于完成框274。
在一个实施方式中,用户可以被准许远程访问他或她的桌面,即便它登出到了客户端系统。尽管该桌面可以是在登出状态,然而这不妨碍客户端系统120的用户利用服务器系统110的资源远程访问他或她的桌面。例如,该客户端系统120可能经历系统故障,比如硬盘驱动器失灵或被病毒/恶意软件感染。在这种情况下,该用户可能选择丢弃本地虚拟机对服务器系统110上相应的虚拟机的访问,尽管还没有将该桌面登入到该服务器系统。替代地,在理解对该服务器系统的任何改变都会丢失的情况下该用户可以被允许访问该服务器系统上的桌面。例如,如果一个用户不能访问他们的客户端系统,即,他们远离他们的计算机但是需要访问他们的桌面,例如,为了读取文件爱你或访问电子邮件或企业内部站点,他们仍将能够远程访问他们的桌面,然而是旧版本的,并且不存在任何最近保存的数据。
在另一个改进中,该系统可以自动地(或应用户请求)对包含在数据存储器140(即,增量磁盘144或145(图3A-3D))上的信息执行病毒/恶意软件扫描。病毒/恶意软件扫描的结果可以记录在系统上和/或提供到客户端系统120或存储在结果文件(未示)中。类似地,客户端系统120的用户可以通过在数据存储器140上产生本地增量磁盘的拷贝而使用服务器系统110执行本地增量磁盘134的病毒/恶意软件扫描。在病毒/恶意软件扫描完成后,该本地增量磁盘的拷贝可以被删除,或者合并到虚拟磁盘142中。
此处描述的各种实施方式使用了各种涉及在存储计算机系统中的数据的由计算机实现的操作。例如,这些操作可以请求对物理量进行物理操作,通常而非必然,这些量会采用电或磁信号的形式,其中它们或它们的表现方式能够被存储、传送、结合、比较或者以其它方式被操作。进一步,这种操作通常用术语指示,比如产生、识别、确定或比较。此处所述的形成本发明的一个或多个实施方式的一部分的任何操作可以是有用的机器操作。另外,本发明的一个或多个实施方式还涉及用于执行这些操作的器件或装置。该装置可以是为特定需要的目的特别建造的,或者它可以是由存储在该计算机中的计算机程序选择性激活或者配置的。特别是,可以使用写入了与本文的教导相一致的计算机程序的各种通用机械,或者更方便的是建造一台更专门为执行所需操作而建造的装置。
此处所述的各种实施方式可以用其它计算机系统配置实现,包括手持装置、微处理机系统、基于微处理器的或可编程的消费电子产品、微型计算机、大型计算机等等。
本发明的一个或多个实施方式可以被实现为嵌入一个或多个计算机可读介质中的一个或多个计算机程序或实现为一个或多个计算机程序模块。术语计算机可读介质指的是可以储存数据的任何数据存储系统,该数据以后被输入到计算机系统中。计算机可读介质可以是基于任何现有的或后来研发出来的用于以使计算机程序能够被计算机读取的方式包含该计算机程序的技术。计算机可读介质的实施例包括硬盘驱动器、网络附属存储器(NAS)、只读存储器、随机存取存储器(例如,闪存存储器设备)、CD(光盘)CD-ROM、CD-R或CD-RW、DVD(数字多功能磁盘)、磁带和其它光学和非光学数据存储器系统。该计算机可读介质还可以分布在网络耦合的计算机系统上从而该计算机可读代码可以分布式存储和执行。
尽管为了清楚理解本发明已经相当详细地描述了本发明的一个或多个实施方式,然而显然,可以在权利要求书的范围内进行一些改变和修改。相应地,所述实施方式应当被认为是说明性的而非限制性的,权利要求书的范围不被限制于此处给出的细节,而是可以在权利要求书的范围和等同内进行修改。在各权利要求书,各元件和/或步骤不暗示任何特定的操作顺序,除非在该权利要求中明确陈述。
另外,尽管所述虚拟化方法通常假定虚拟机呈现与特定硬件系统相协调的界面,然而本领域的普通技术人员将会意识到,所述方法可以结合不直接对应于任何特定硬件系统的虚拟化来使用。可以设想符合各种实施方式的虚拟化系统,实现为寄生实施方式、非寄生实施方式或趋向于在这两者之间的模糊区别地带的。而且,各种虚拟化操作可以全部或部分以硬件实现。例如,一种硬件实现方式可以使用查找表作为对安全的非磁盘数据的存储器访问请求的修改。
许多变形、修改、补充和改进是可能的,无论虚拟化程度如何。因此该虚拟化软件可包括执行虚拟化功能的主机、控制台或来宾操作系统。此处作为单一实例描述的各元件、操作或架构可以提供多种实例。最终,各种元件、操作和数据存储间的界限在一定程度上是随意的,而在具体说明性配置的背景下描绘了特定的操作。可以设想功能的其它分配方式,均落入本发明的范围。通常,在示例性配置中作为独立元件呈现的架构和功能可以作为结合在一起的架构或元件而实现。类似地,作为单一元件呈现的架构和功能可以作为独立元件实现。这些以及其它变形、修改、补充和改进可以落入所附权利要求的范围。

Claims (26)

1.一种将基于服务器的桌面虚拟机架构扩展到客户机的方法,所述方法包括:
通过通信网络远程访问用户桌面,该远程访问包括在客户端系统和服务器系统之间发送和接收用户输入/输出,该服务器系统运行提供该用户桌面的虚拟机的服务器实例,该虚拟机的该服务器实例通过虚拟化软件在与数据存储系统通信的物理计算机系统上执行;虚拟化软件将来自该虚拟机的该服务器实例的磁盘读请求导向虚拟磁盘,该虚拟磁盘包含容纳于该数据存储系统上的一个或多个文件中的虚拟磁盘映像,该虚拟化软件将来自该虚拟机的该服务器实例的磁盘写请求导向增量磁盘,该增量磁盘包含对该虚拟磁盘的修改,该客户端系统具有远程桌面客户端以接收该用户输入/输出并将该用户输入/输出发送到该客户端系统的用户界面;
在该客户端系统上创建该虚拟磁盘的本地拷贝;
将来自该客户端系统的登出请求发送到该服务器系统以在本地访问该用户桌面;
如果该虚拟机的该服务器实例当前正在执行的话,终止该虚拟机的该服务器实例;
在该客户端系统上创建该增量磁盘的拷贝;以及
使用该客户端系统上的虚拟化软件执行该客户端系统上的该虚拟机的客户端实例以将来自该虚拟机的该客户端实例的磁盘读请求导向至少该虚拟磁盘的该本地拷贝并将来自该虚拟机的该客户端实例的用户输入/输出导向该客户端系统的该用户界面。
2.根据权利要求1所述的方法,其中该创建该虚拟磁盘的该本地拷贝是在该虚拟机的该服务器实例运行的时候执行的。
3.根据权利要求1所述的方法,进一步包括,在该虚拟机的该服务器实例运行的时候,在该客户端系统接收对存储在该服务器系统上的该增量磁盘中的该虚拟磁盘的修改。
4.根据权利要求1所述的方法,进一步包括在执行该虚拟机的该客户端实例之前将该增量磁盘的该拷贝与该虚拟磁盘的该本地拷贝合并。
5.根据权利要求1所述的方法,进一步包括:
将来自该虚拟机的该客户端实例的磁盘写导向本地增量磁盘;
将来自该客户端系统的登入请求发送到该服务器系统以远程访问该用户桌面;
如果该虚拟机的该客户端实例正在运行的话,终止该虚拟机的该客户端实例;
将该本地增量磁盘的拷贝发送到该服务器系统;以及
远程访问该虚拟机的该服务器实例。
6.根据权利要求5所述的方法,进一步包括,在该服务器系统上,在将该本地增量磁盘的该拷贝发送到该服务器系统以后,在启动该虚拟机的该服务器实例之前,将该增量磁盘和该本地增量磁盘与该虚拟机合并。
7.根据权利要求5所述的方法,进一步包括,在该虚拟机的该客户端实例的执行开始之后并在将该本地增量磁盘的该拷贝发送到该服务器系统之前,阻止对该虚拟机的该服务器实例的访问。
8.根据权利要求1所述的方法,进一步包括,在该虚拟机的该服务器实例的执行过程中,定期创建额外的增量磁盘并将该额外的增量磁盘发送到该客户端系统,该额外的增量磁盘中的每一个都是增量磁盘链的一部分。
9.根据权利要求1所述的方法,进一步包括,在该服务器系统上,保持该用户桌面的桌面状态为登入或登出,其中当该用户桌面上次是使用该虚拟机的该服务器实例远程访问时,该桌面状态是登入,而当该用户桌面上次是使用该虚拟机的该客户端实例本地访问时,该桌面状态是登出;当该增量磁盘的该拷贝在该客户端系统上创建之后,该服务器系统认为该桌面状态是登出。
10.根据权利要求1所述的方法,其中:
该虚拟化软件模拟用户数据磁盘和系统磁盘,该用户数据磁盘和该系统磁盘是该虚拟机中执行的来宾系统软件能够访问的,该来宾系统软件在该用户数据磁盘中存储用户数据并在该系统磁盘中存储操作系统和应用文件,该用户数据包括用户文档和设置;
该数据存储系统上的该虚拟磁盘是虚拟用户数据磁盘而该增量磁盘是增量用户数据磁盘;以及
该用户桌面的该远程访问进一步包括:
将用户数据磁盘读请求导向该虚拟用户数据磁盘并将系统磁盘读请求导向虚拟系统磁盘,该虚拟系统磁盘是存储在该数据存储系统或另一个数据存储系统上的一个或多个文件中的磁盘映像;以及
将系统磁盘写请求导向增量系统磁盘并将用户数据磁盘写请求导向该增量用户数据磁盘,该增量系统磁盘包含对该虚拟系统磁盘的修改而该增量用户数据磁盘包含对该虚拟用户数据磁盘的修改。
11.根据权利要求10所述的方法,进一步包括当该增量磁盘的该拷贝的创建执行时丢弃该增量系统磁盘。
12.根据权利要求10所述的方法,进一步包括当该增量磁盘的该拷贝的创建执行时在该客户端系统上创建该增量系统磁盘的拷贝。
13.根据权利要求1所述的方法,进一步包括在执行该虚拟机的该客户端实例之前针对该服务器系统的恶意软件扫描该增量磁盘。
14.一种用于将基于服务器的桌面虚拟机架构扩展到客户机的实体机器可读介质,该实体机器可读介质包含在客户端系统上实现一种方法的计算机程序指令,所述方法包括:
通过通信网络远程访问用户桌面,该远程访问包括在客户端系统和服务器系统之间发送和接收用户输入/输出,该服务器系统运行提供该用户桌面的虚拟机的服务器实例,该虚拟机的该服务器实例通过虚拟化软件在与数据存储系统通信的物理计算机系统上执行;虚拟化软件将来自该虚拟机的该服务器实例的磁盘读请求导向虚拟磁盘,该虚拟磁盘包含容纳于该数据存储系统上的一个或多个文件中的虚拟磁盘映像,该虚拟化软件将来自该虚拟机的该服务器实例的磁盘写请求导向增量磁盘,该增量磁盘包含对该虚拟磁盘的修改,该客户端系统具有远程桌面客户端以接收该用户输入/输出并将该用户输入/输出发送到该客户端系统的用户界面;
在该客户端系统上创建该虚拟磁盘的本地拷贝;
将来自该客户端系统的登出请求发送到该服务器系统以在本地访问该用户桌面,该登出请求使得如果该虚拟机的该服务器实例当前正在执行的话,终止该虚拟机的该服务器实例;
在该客户端系统上创建该增量磁盘的拷贝;以及
使用该客户端系统上的虚拟化软件执行该客户端系统上的该虚拟机的客户端实例以将来自该虚拟机的该客户端实例的磁盘读请求导向至少该虚拟磁盘的该本地拷贝并将来自该虚拟机的该客户端实例的用户输入/输出导向该客户端系统的该用户界面。
15.根据权利要求14所述的介质,其中该创建该虚拟磁盘的该本地拷贝是在该虚拟机的该服务器实例运行的时候执行的。
16.根据权利要求14所述的介质,其中该方法进一步包括,在该虚拟机的该服务器实例运行的时候,在该客户端系统接收对存储在该服务器系统上的该增量磁盘中的该虚拟磁盘的修改。
17.根据权利要求14所述的介质,其中该方法进一步包括在执行该虚拟机的该客户端实例之前将该增量磁盘的该拷贝与该虚拟磁盘的该本地拷贝合并。
18.根据权利要求14所述的介质,其中该方法进一步包括:
将来自该虚拟机的该客户端实例的磁盘写导向本地增量磁盘;
将来自该客户端系统的登入请求发送到该服务器系统以远程访问该用户桌面;
如果该虚拟机的该客户端实例正在运行的话,终止该虚拟机的该客户端实例;
将该本地增量磁盘的拷贝发送到该服务器系统;以及
在将该本地增量磁盘的拷贝发送到该服务器系统之后远程访问该虚拟机的该服务器实例。
19.根据权利要求18所述的介质,其中在向该本地增量磁盘的该拷贝发送到该服务器系统以后,在启动该虚拟机的该服务器实例之前,该增量磁盘和该本地增量磁盘与该虚拟机合并。
20.根据权利要求18所述的介质,其中该方法进一步包括在该虚拟机的该客户端实例的执行开始之后并在将该本地增量磁盘的该拷贝发送到该服务器系统之前,阻止对该虚拟机的该服务器实例的访问。
21.根据权利要求14所述的介质,其中该方法进一步包括:
在该虚拟机的该服务器实例的执行过程中,定期创建额外的增量磁盘并将该额外的增量磁盘发送到该客户端系统,该额外的增量磁盘中的每一个都是增量磁盘链的一部分。
22.根据权利要求14所述的介质,其中:
该虚拟化软件模拟用户数据磁盘驱动和系统磁盘驱动,该用户数据磁盘驱动和该系统磁盘驱动是该虚拟机中执行的来宾系统软件能够访问的,该来宾系统软件在该用户数据磁盘驱动中存储用户数据并在该系统磁盘驱动中存储操作系统和应用文件,该用户数据包括用户文档和设置;
该数据存储系统上的该虚拟磁盘是虚拟用户数据磁盘而该增量磁盘是增量用户数据磁盘;
该用户桌面的该远程访问进一步包含:
将用户数据磁盘读请求导向该虚拟用户数据磁盘并将该系统磁盘读请求导向虚拟系统磁盘,该虚拟系统磁盘是存储在该数据存储系统或另一个数据存储系统上的一个或多个文件中的磁盘映像;以及
将系统磁盘写请求导向增量系统磁盘并将用户数据磁盘写请求导向该增量用户数据磁盘,该增量系统磁盘包含对该虚拟系统磁盘的修改而该增量用户数据磁盘包含对该虚拟用户数据磁盘的修改;以及
其中在该客户端系统上创建该增量磁盘的拷贝包括从该服务端系统下载对该用户数据磁盘驱动的改变而不下载对该系统磁盘驱动的改变。
23.根据权利要求22所述的介质,其中当该增量磁盘的该拷贝的创建执行时该服务器系统丢弃该增量系统磁盘。
24.根据权利要求22所述的介质,其中该方法进一步包括当该增量磁盘的该拷贝的创建执行时在该客户端系统上创建该增量系统磁盘的拷贝。
25.根据权利要求14所述的介质,其中该服务器系统在执行该虚拟机的该客户端实例之前针对该服务器系统的恶意软件扫描该增量磁盘。
26.一种用于将基于服务器的桌面虚拟机架构扩展到客户机的实体机器可读介质,该实体机器可读介质包含在服务器系统上实现一种方法的计算机程序指令,所述方法包括:
运行提供该用户桌面的虚拟机的服务器实例,该虚拟机的该服务器实例通过虚拟化软件在该服务器系统上的物理计算机上执行,该物理计算机与数据存储系统通信;该虚拟化软件将来自该虚拟机的该服务器实例的磁盘读请求导向虚拟磁盘,该虚拟磁盘包含容纳于该数据存储系统上的一个或多个文件中的虚拟磁盘映像,该虚拟化软件将来自该虚拟机的该服务器实例的磁盘写请求导向增量磁盘,该增量磁盘包含对该虚拟磁盘的修改,该客户端系统具有远程桌面客户端以接收该用户输入/输出并将该用户输入/输出发送到该客户端系统的用户界面;
在客户端系统和服务器系统之间发送和接收用户输入/输出;
向该客户端系统发送该虚拟磁盘的拷贝;
接收来自该客户端系统的登出请求;
响应该登出请求,如果该虚拟机的该服务器实例当前正在执行的话,终止该虚拟机的该服务器实例,向该客户端系统发送该增量磁盘的拷贝从而该用户可以使用在该客户端系统上执行的该虚拟机的客户端实例访问该桌面;以及
保持该用户桌面的桌面状态的记录为登入或登出,其中当该用户桌面上次是使用该虚拟机的该服务器实例远程访问时,该桌面状态是登入,而当该用户桌面上次是使用该虚拟机的该客户端实例本地访问时,该桌面状态是登出;当该增量磁盘的该拷贝发送到该客户端系统上之后,该服务器系统认为该桌面状态是登出。
CN200980105185XA 2008-02-26 2009-02-20 将基于服务器的桌面虚拟机架构扩展到客户机上 Active CN101971162B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US3161308P 2008-02-26 2008-02-26
US61/031,613 2008-02-26
PCT/US2009/034731 WO2009108579A2 (en) 2008-02-26 2009-02-20 Extending server-based desktop virtual machine architecture to client machines

Publications (2)

Publication Number Publication Date
CN101971162A true CN101971162A (zh) 2011-02-09
CN101971162B CN101971162B (zh) 2012-11-21

Family

ID=40999459

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980105185XA Active CN101971162B (zh) 2008-02-26 2009-02-20 将基于服务器的桌面虚拟机架构扩展到客户机上

Country Status (10)

Country Link
US (6) US8640126B2 (zh)
EP (1) EP2248041B1 (zh)
JP (1) JP5198584B2 (zh)
KR (1) KR101178752B1 (zh)
CN (1) CN101971162B (zh)
AU (1) AU2009219470B2 (zh)
CA (1) CA2713876C (zh)
MX (1) MX2010009362A (zh)
RU (1) RU2432605C1 (zh)
WO (1) WO2009108579A2 (zh)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102427448A (zh) * 2011-11-03 2012-04-25 中兴通讯股份有限公司 在虚拟桌面中使用客户端输入法的方法、终端及服务端
CN102760081A (zh) * 2011-04-29 2012-10-31 国际商业机器公司 虚拟机资源分配的方法和装置
CN101741866B (zh) * 2010-02-01 2012-12-12 浪潮(北京)电子信息产业有限公司 一种在线存储系统及方法
CN103200215A (zh) * 2012-01-08 2013-07-10 佳都新太科技股份有限公司 一种在https上实现XenServer虚拟机远程控制的方法
CN103593227A (zh) * 2013-11-08 2014-02-19 何钦淋 在客户端运行桌面虚拟系统的方法及客户端
CN103677840A (zh) * 2013-12-18 2014-03-26 浪潮电子信息产业股份有限公司 一种在作业调度软件中查看及操作应用图形界面的方法
CN103917982A (zh) * 2011-03-16 2014-07-09 赛门铁克公司 保护虚拟桌面基础设施中的登出虚拟机的技术
CN105579960A (zh) * 2013-06-26 2016-05-11 亚马逊技术有限公司 计算会话的管理
CN105653342A (zh) * 2016-02-01 2016-06-08 福建升腾资讯有限公司 一种Windows池桌面自动入域的方法及系统
TWI608420B (zh) * 2014-10-20 2017-12-11 緯創資通股份有限公司 虛擬機器監控方法及其系統
CN107810475A (zh) * 2015-06-30 2018-03-16 威睿公司 用于虚拟计算环境的软件生命周期管理的方法和装置
CN108536515A (zh) * 2018-03-02 2018-09-14 武汉噢易云计算股份有限公司 Vdi的虚拟机播放客户机的音乐cd的方法及系统
CN108667887A (zh) * 2017-07-03 2018-10-16 无锡辰云科技股份有限公司 基于融合计算的桌面虚拟方法、装置和系统
US10313345B2 (en) 2013-03-11 2019-06-04 Amazon Technologies, Inc. Application marketplace for virtual desktops
CN110908756A (zh) * 2019-11-18 2020-03-24 西安雷风电子科技有限公司 一种云端桌面实时融合切换方法及系统
CN110928624A (zh) * 2019-11-15 2020-03-27 联思智云(北京)科技有限公司 用于用户终端的云桌面调用方法、装置及终端
US10616129B2 (en) 2013-03-11 2020-04-07 Amazon Technologies, Inc. Automated desktop placement
US20210126924A1 (en) * 2009-11-30 2021-04-29 Red Hat, Inc. Monitoring cloud computing environments
CN113419799A (zh) * 2013-04-09 2021-09-21 思杰系统有限公司 使用云同步数据提供本机桌面

Families Citing this family (182)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7617501B2 (en) * 2004-07-09 2009-11-10 Quest Software, Inc. Apparatus, system, and method for managing policies on a computer having a foreign operating system
US7904949B2 (en) 2005-12-19 2011-03-08 Quest Software, Inc. Apparatus, systems and methods to provide authentication services to a legacy application
US8087075B2 (en) 2006-02-13 2011-12-27 Quest Software, Inc. Disconnected credential validation using pre-fetched service tickets
US8429712B2 (en) 2006-06-08 2013-04-23 Quest Software, Inc. Centralized user authentication system apparatus and method
US8086710B2 (en) 2006-10-30 2011-12-27 Quest Software, Inc. Identity migration apparatus and method
WO2009085977A2 (en) * 2007-12-20 2009-07-09 Virtual Computer, Inc. Virtual computing management systems and methods
AU2009219470B2 (en) 2008-02-26 2012-06-21 VMware LLC Extending server-based desktop virtual machine architecture to client machines
US8560593B2 (en) * 2008-03-27 2013-10-15 Dell Software Inc. System for provisioning, allocating, and managing virtual and physical desktop computers in a network computing environment
US8572607B2 (en) * 2008-05-19 2013-10-29 Novell, Inc. System and method for performing designated service image processing functions in a service image warehouse
EP2283422B1 (en) * 2008-05-20 2018-07-18 Citrix Systems, Inc. Methods and systems for patching multiple disk images derived from a common base disk image
US8255806B2 (en) 2008-09-15 2012-08-28 Vmware, Inc. Unified secure virtual machine player and remote desktop client
EP2356563B1 (en) * 2008-10-24 2018-06-27 Citrix Systems, Inc. Methods and systems for providing a modifiable machine base image with a personalized desktop environment in a combined computing environment
CN101727331B (zh) * 2008-10-24 2013-03-20 国际商业机器公司 升级活动虚拟机的客户操作系统的方法和设备
US8707299B1 (en) * 2008-11-14 2014-04-22 Symantec Corporation Method and apparatus for preserving virtual desktops for e-discovery through an agent-less solution
US9214004B2 (en) 2008-12-18 2015-12-15 Vmware, Inc. Watermarking and scalability techniques for a virtual desktop planning tool
US8788079B2 (en) 2010-11-09 2014-07-22 Vmware, Inc. Monitoring audio fidelity and audio-video synchronization
US9674562B1 (en) 2008-12-18 2017-06-06 Vmware, Inc. Quality evaluation of multimedia delivery in cloud environments
US9286088B2 (en) * 2009-03-09 2016-03-15 Microsoft Technology Licensing, Llc User interface for interaction with virtual machine
US9177145B2 (en) * 2009-03-24 2015-11-03 Sophos Limited Modified file tracking on virtual machines
JP5360199B2 (ja) * 2009-03-31 2013-12-04 富士通株式会社 仮想計算機システム、情報処理装置、コンピュータプログラム及び接続制御方法
WO2010129487A1 (en) 2009-05-02 2010-11-11 Citrix Systems, Inc. Methods and systems for providing a consistent profile to overlapping user sessions
US8281018B2 (en) * 2009-06-22 2012-10-02 Red Hat Israel, Ltd. Method for automatically providing a client with access to an associated virtual machine
US8135818B2 (en) * 2009-06-22 2012-03-13 Red Hat Israel, Ltd. Automatic virtual machine migration in mixed SBC/CBC environment
US8738781B2 (en) * 2009-06-22 2014-05-27 Red Hat Israel, Ltd. Launching a virtual machine associated with a client during startup
US8341213B2 (en) * 2009-06-22 2012-12-25 Red Hat Israel, Ltd. Method for improving boot time of a client having a virtualized operating environment
US8255984B1 (en) 2009-07-01 2012-08-28 Quest Software, Inc. Single sign-on system for shared resource environments
US20120131323A1 (en) * 2009-09-21 2012-05-24 Yves Gattegno System including a virtual disk
US20110131330A1 (en) * 2009-12-02 2011-06-02 International Business Machines Corporation Collocating desktop virtual machines to proximity of the user
US8667050B2 (en) * 2009-12-09 2014-03-04 Citrix Systems, Inc. Methods and systems for displaying, on a first machine, data associated with a drive of a second machine, without mapping the drive
US10146566B2 (en) * 2009-12-21 2018-12-04 Microsoft Technology Licensing, Llc Enabling virtual desktop connections to remote clients
JP5499688B2 (ja) * 2009-12-23 2014-05-21 富士通株式会社 計算機システム、情報処理装置、仮想計算機運用方法及びプログラム
US8887172B2 (en) * 2009-12-31 2014-11-11 Microsoft Corporation Virtualized management of remote presentation sessions using virtual machines having load above or below thresholds
US9477531B2 (en) * 2010-01-27 2016-10-25 Vmware, Inc. Accessing virtual disk content of a virtual machine without running a virtual desktop
US8392838B2 (en) * 2010-01-27 2013-03-05 Vmware, Inc. Accessing virtual disk content of a virtual machine using a control virtual machine
US9009219B2 (en) 2010-01-27 2015-04-14 Vmware, Inc. Native viewer use for service results from a remote desktop
US9274821B2 (en) * 2010-01-27 2016-03-01 Vmware, Inc. Independent access to virtual machine desktop content
US8316120B2 (en) * 2010-02-02 2012-11-20 Microsoft Corporation Applicability detection using third party target state
US8549272B2 (en) * 2010-02-10 2013-10-01 Dell Products L.P. Information handling system image management deployment of virtual machine images to physical information handling systems
US9703586B2 (en) 2010-02-17 2017-07-11 Microsoft Technology Licensing, Llc Distribution control and tracking mechanism of virtual machine appliances
JP5533005B2 (ja) * 2010-02-17 2014-06-25 富士通株式会社 情報処理装置、計算機システム及びプログラム
JP5493976B2 (ja) * 2010-02-18 2014-05-14 富士通株式会社 情報処理装置、計算機システム及びプログラム
US8601056B2 (en) * 2010-03-09 2013-12-03 Avistar Communications Corporation Scalable high-performance interactive real-time media architectures for virtual desktop environments
CN102196003B (zh) * 2010-03-12 2015-09-23 新奥特(北京)视频技术有限公司 一种监控系统的远程控制方法及装置
US8898668B1 (en) * 2010-03-31 2014-11-25 Netapp, Inc. Redeploying baseline virtual machine to update a child virtual machine by creating and swapping a virtual disk comprising a clone of the baseline virtual machine
US8453145B1 (en) 2010-05-06 2013-05-28 Quest Software, Inc. Systems and methods for instant provisioning of virtual machine files
US9311509B2 (en) * 2010-05-09 2016-04-12 Citrix Systems, Inc. Creation and delivery of encrypted virtual disks
US8893004B2 (en) 2010-05-12 2014-11-18 International Business Machines Corporation User interface proxy method and system
US9547562B1 (en) 2010-08-11 2017-01-17 Dell Software Inc. Boot restore system for rapidly restoring virtual machine backups
JP4922443B2 (ja) * 2010-08-26 2012-04-25 株式会社東芝 コンピュータシステム、情報処理装置およびセキュリティ保護方法
TWI505189B (zh) * 2010-08-27 2015-10-21 Ibm 用於虛擬裝置之自動升級之方法、電腦程式及系統
CN102419753B (zh) * 2010-09-28 2014-02-12 联想(北京)有限公司 信息处理设备、信息处理方法和信息处理系统
CN102447723B (zh) * 2010-10-12 2015-09-09 运软网络科技(上海)有限公司 客户端虚拟化架构
US8417737B2 (en) 2010-10-20 2013-04-09 Microsoft Corporation Online database availability during upgrade
US9075661B2 (en) 2010-10-20 2015-07-07 Microsoft Technology Licensing, Llc Placing objects on hosts using hard and soft constraints
US8799453B2 (en) 2010-10-20 2014-08-05 Microsoft Corporation Managing networks and machines for an online service
US8751656B2 (en) * 2010-10-20 2014-06-10 Microsoft Corporation Machine manager for deploying and managing machines
US8386501B2 (en) 2010-10-20 2013-02-26 Microsoft Corporation Dynamically splitting multi-tenant databases
US8756696B1 (en) 2010-10-30 2014-06-17 Sra International, Inc. System and method for providing a virtualized secure data containment service with a networked environment
US9336117B2 (en) 2010-11-09 2016-05-10 Vmware, Inc. Remote display performance measurement triggered by application display upgrade
US8850550B2 (en) 2010-11-23 2014-09-30 Microsoft Corporation Using cached security tokens in an online service
CN102487380B (zh) * 2010-12-01 2016-09-07 中兴通讯股份有限公司 桌面虚拟化终端托管方法及系统
US9721030B2 (en) 2010-12-09 2017-08-01 Microsoft Technology Licensing, Llc Codeless sharing of spreadsheet objects
KR20120072241A (ko) * 2010-12-23 2012-07-03 한국전자통신연구원 클라우드 컴퓨팅 환경에서의 클라우드 간 개인 가상 머신 이동 시스템 및 그 방법
US20120216052A1 (en) * 2011-01-11 2012-08-23 Safenet, Inc. Efficient volume encryption
US10225335B2 (en) 2011-02-09 2019-03-05 Cisco Technology, Inc. Apparatus, systems and methods for container based service deployment
US8862933B2 (en) 2011-02-09 2014-10-14 Cliqr Technologies, Inc. Apparatus, systems and methods for deployment and management of distributed computing systems and applications
US9967318B2 (en) 2011-02-09 2018-05-08 Cisco Technology, Inc. Apparatus, systems, and methods for cloud agnostic multi-tier application modeling and deployment
US10678602B2 (en) 2011-02-09 2020-06-09 Cisco Technology, Inc. Apparatus, systems and methods for dynamic adaptive metrics based application deployment on distributed infrastructures
US10003672B2 (en) * 2011-02-09 2018-06-19 Cisco Technology, Inc. Apparatus, systems and methods for deployment of interactive desktop applications on distributed infrastructures
US8856486B2 (en) * 2011-02-23 2014-10-07 Citrix Systems, Inc. Deploying a copy of a disk image from source storage to target storage
US9542215B2 (en) * 2011-09-30 2017-01-10 V3 Systems, Inc. Migrating virtual machines from a source physical support environment to a target physical support environment using master image and user delta collections
US8959569B2 (en) * 2011-03-18 2015-02-17 Juniper Networks, Inc. Security enforcement in virtualized systems
FR2973185B1 (fr) * 2011-03-22 2013-03-29 Sagem Defense Securite Procede et dispositif de connexion a un reseau de haute securite
JP5772127B2 (ja) * 2011-03-25 2015-09-02 富士通株式会社 仮想マシン管理方法、情報処理装置および仮想マシン管理プログラム
US8990405B2 (en) 2011-04-01 2015-03-24 Hewlett-Packard Development Company, L.P. Methods, systems and articles of manufacture to resume a remote desktop session
US8966581B1 (en) 2011-04-07 2015-02-24 Vmware, Inc. Decrypting an encrypted virtual machine using asymmetric key encryption
US9176744B2 (en) * 2011-05-20 2015-11-03 Citrix Systems, Inc. Quickly provisioning a virtual machine by identifying a path to a differential file during pre-boot
US8719522B1 (en) * 2011-06-27 2014-05-06 Emc Corporation Virtual desktop backup and restore
KR101507919B1 (ko) 2011-07-01 2015-04-07 한국전자통신연구원 가상 데스크탑 서비스를 위한 방법 및 장치
US10983747B2 (en) 2011-07-15 2021-04-20 Vmware, Inc. Remote desktop mirroring
US10976981B2 (en) 2011-07-15 2021-04-13 Vmware, Inc. Remote desktop exporting
RU2486562C2 (ru) * 2011-08-26 2013-06-27 Российская Федерация, от имени которой выступает Министерство промышленности и торговли Российской Федерации (Минпромторг РФ) Способ построения автоматизированной системы, реализующей принципы виртуализации рабочих мест и изоморфного масштабирования
WO2013039481A1 (en) 2011-09-13 2013-03-21 Empire Technology Development Llc Operation transfer from an origin virtual machine to a destination virtual machine
CN102355501B (zh) * 2011-09-28 2017-06-13 华为技术有限公司 一种数据处理方法、接入审核设备及系统
US20130093776A1 (en) * 2011-10-14 2013-04-18 Microsoft Corporation Delivering a Single End User Experience to a Client from Multiple Servers
US8769519B2 (en) 2011-12-08 2014-07-01 Microsoft Corporation Personal and pooled virtual machine update
CN103150204B (zh) * 2011-12-23 2016-06-29 腾讯科技(深圳)有限公司 操作系统桌面管理方法和装置
CN103188307A (zh) * 2011-12-30 2013-07-03 旭智科技(深圳)有限公司 新型云应用方法及系统
US8839447B2 (en) * 2012-02-27 2014-09-16 Ca, Inc. System and method for virtual image security in a cloud environment
JP5670369B2 (ja) * 2012-03-08 2015-02-18 株式会社東芝 情報処理装置、イメージファイル管理方法およびプログラム
CN102662741B (zh) 2012-04-05 2014-04-02 华为技术有限公司 虚拟桌面的实现方法、装置和系统
US9237195B2 (en) * 2012-04-27 2016-01-12 Netapp, Inc. Virtual storage appliance gateway
KR101239290B1 (ko) * 2012-07-23 2013-03-06 (주)엔텍 제로 클라이언트를 지원하는 가상화 서버의 가상 머신 설정을 위한 시스템 및 방법
US9977698B2 (en) * 2012-07-31 2018-05-22 V3 Systems Holdings, Inc. Virtual machine migration into the cloud
US9117093B2 (en) * 2012-09-26 2015-08-25 Ca, Inc. Centralized, policy-driven maintenance of storage for virtual machine disks (VMDKS) and/or physical disks
US9841984B2 (en) 2012-10-04 2017-12-12 Avocent Huntsville, Llc System and method for creating virtual disk images for use with remote computer
US10198285B2 (en) 2012-10-04 2019-02-05 Vertiv It Systems, Inc. System and method for creating virtual disk images for use with remote computer
US9372760B1 (en) * 2012-10-19 2016-06-21 Veritas Technologies Llc Systems and methods for securely storing backup data while facilitating fast failovers
US9921884B1 (en) * 2012-11-01 2018-03-20 Amazon Technologies, Inc. Local and remote access to virtual machine image filesystems
US9485233B1 (en) * 2012-11-02 2016-11-01 Wyse Technology L.L.C. Virtual desktop accelerator support for network gateway
US9262212B2 (en) * 2012-11-02 2016-02-16 The Boeing Company Systems and methods for migrating virtual machines
US9374351B1 (en) 2012-11-02 2016-06-21 Wyse Technology L.L.C. Virtual desktop accelerator support for network gateway
US9992185B1 (en) 2012-11-02 2018-06-05 Wyse Technology L.L.C. Virtual desktop accelerator support for network gateway
KR101379835B1 (ko) * 2012-11-28 2014-04-02 성균관대학교산학협력단 가상 머신에 가상 배터리를 제공하는 가상 머신 모니터, 가상 머신 호스트 시스템 및 가상 배터리 관리 방법
US9092161B2 (en) * 2012-12-05 2015-07-28 Red Hat Israel, Ltd. Selection of allocation policy and format for virtual machine disk images
US10162873B2 (en) * 2012-12-21 2018-12-25 Red Hat, Inc. Synchronization of physical disks
US20140188977A1 (en) * 2012-12-28 2014-07-03 Futurewei Technologies, Inc. Appratus, method for deploying applications in a virtual desktop interface system
US9549019B2 (en) * 2013-01-09 2017-01-17 Red Hat Israel, Ltd. Managing a logical client for a virtual machine
US10284668B2 (en) 2013-01-09 2019-05-07 Red Hat Israel, Ltd. Managing a logical client for an application
US8997080B2 (en) * 2013-02-11 2015-03-31 Citrix Systems, Inc. System updates with personal virtual disks
US9201755B2 (en) * 2013-02-14 2015-12-01 Vmware, Inc. Real-time, interactive measurement techniques for desktop virtualization
US9148350B1 (en) 2013-03-11 2015-09-29 Amazon Technologies, Inc. Automated data synchronization
US10142406B2 (en) * 2013-03-11 2018-11-27 Amazon Technologies, Inc. Automated data center selection
CA2852597C (en) * 2013-05-23 2020-02-04 Ellison Information Manufacturing Inc. Method and system for input driven process flow management
US20140359213A1 (en) * 2013-05-31 2014-12-04 Microsoft Corporation Differencing disk improved deployment of virtual machines
EP2813945A1 (en) * 2013-06-14 2014-12-17 Tocario GmbH Method and system for enabling access of a client device to a remote desktop
US10686646B1 (en) * 2013-06-26 2020-06-16 Amazon Technologies, Inc. Management of computing sessions
US9264289B2 (en) * 2013-06-27 2016-02-16 Microsoft Technology Licensing, Llc Endpoint data centers of different tenancy sets
US9639384B2 (en) * 2013-08-20 2017-05-02 Vmware, Inc. Method and system for fast provisioning of virtual desktop
JP6382819B2 (ja) * 2013-08-21 2018-08-29 株式会社東芝 データベースシステム、ノード、管理装置、プログラムおよびデータ処理方法
JP6122126B2 (ja) 2013-08-27 2017-04-26 株式会社東芝 データベースシステム、プログラムおよびデータ処理方法
US9851993B2 (en) * 2013-09-24 2017-12-26 International Business Machines Corporation Virtual machine template optimization
US9537932B2 (en) * 2013-10-23 2017-01-03 Microsoft Technology Licensing, Llc Emulating test distributed application on server
US9485099B2 (en) 2013-10-25 2016-11-01 Cliqr Technologies, Inc. Apparatus, systems and methods for agile enablement of secure communications for cloud based applications
US10353633B2 (en) * 2013-12-19 2019-07-16 Sony Interactive Entertainment LLC Mass storage virtualization for cloud computing
WO2015099690A1 (en) * 2013-12-23 2015-07-02 Citrix Systems, Inc. Method and system for optimizing virtual disk provisioning
US9720719B2 (en) 2013-12-23 2017-08-01 Citrix Systems, Inc. Method and system for optimizing virtual disk provisioning
US9264517B2 (en) 2014-02-19 2016-02-16 Vmware, Inc. Wide area aggregated communications
CN104901923B (zh) * 2014-03-04 2018-12-25 新华三技术有限公司 一种虚拟机访问装置和方法
US9430213B2 (en) 2014-03-11 2016-08-30 Cliqr Technologies, Inc. Apparatus, systems and methods for cross-cloud software migration and deployment
US9734191B2 (en) * 2014-03-31 2017-08-15 Dell Products, L.P. Asynchronous image repository functionality
US10542049B2 (en) 2014-05-09 2020-01-21 Nutanix, Inc. Mechanism for providing external access to a secured networked virtualization environment
US9280376B2 (en) 2014-05-13 2016-03-08 Dell Products, Lp System and method for resizing a virtual desktop infrastructure using virtual desktop infrastructure monitoring tools
US10318489B2 (en) * 2014-05-21 2019-06-11 Vmware, Inc. Avoiding full file replication using sparse files
JP2015225632A (ja) * 2014-05-30 2015-12-14 日本電気株式会社 シンクライアント端末装置、サーバ装置、方法、およびプログラム
CN106804112B (zh) * 2014-06-17 2021-11-16 诺基亚通信公司 用于控制虚拟机的方法和装置
US10956041B2 (en) 2014-06-26 2021-03-23 Vmware, Inc. Online snapshot consolidation using I/O mirroring
US20160026492A1 (en) * 2014-07-24 2016-01-28 Samsung Electronics Co., Ltd. Electronic apparatus for executing virtual machine and method for executing virtual machine
US20160044139A1 (en) * 2014-08-07 2016-02-11 Hsiu-Ping Lin Methods and systems for communications between apps and virtual machines
US10073902B2 (en) * 2014-09-24 2018-09-11 Microsoft Technology Licensing, Llc Snapshot and replication of a multi-stream application on multiple hosts at near-sync frequency
US20170054792A1 (en) * 2014-11-20 2017-02-23 Otoy, Inc. Systems and methods for deploying applications
KR101929048B1 (ko) 2015-06-24 2018-12-13 한국전자통신연구원 인메모리 기반 가상 데스크탑 서비스를 위한 장치 및 방법
KR102328193B1 (ko) 2015-06-24 2021-11-18 한국전자통신연구원 가상 데스크탑 서비스를 위한 장치 및 방법
KR101977726B1 (ko) 2015-11-17 2019-05-14 한국전자통신연구원 가상 데스크탑 서비스 방법 및 장치
US10192055B2 (en) 2016-01-10 2019-01-29 Apple Inc. Log in/log out process for EDU mode
US10133868B2 (en) 2016-01-10 2018-11-20 Apple Inc. Switching users and sync bubble for EDU mode
WO2017129657A1 (en) * 2016-01-29 2017-08-03 British Telecommunications Public Limited Company Disk encryption
US10809998B2 (en) 2016-02-12 2020-10-20 Nutanix, Inc. Virtualized file server splitting and merging
US11218418B2 (en) 2016-05-20 2022-01-04 Nutanix, Inc. Scalable leadership election in a multi-processing computing environment
KR102568985B1 (ko) * 2016-06-22 2023-08-23 한국전자통신연구원 오프라인 가상 데스크탑 제공 장치, 오프라인 가상 데스크탑 단말 및 오프라인 가상 데스크탑 제공 방법
US10318330B2 (en) * 2016-11-30 2019-06-11 Salesforce.Com, Inc. Data-persisting temporary virtual machine environments
US11568073B2 (en) 2016-12-02 2023-01-31 Nutanix, Inc. Handling permissions for virtualized file servers
US10824455B2 (en) 2016-12-02 2020-11-03 Nutanix, Inc. Virtualized server systems and methods including load balancing for virtualized file servers
US11562034B2 (en) 2016-12-02 2023-01-24 Nutanix, Inc. Transparent referrals for distributed file servers
US10728090B2 (en) 2016-12-02 2020-07-28 Nutanix, Inc. Configuring network segmentation for a virtualization environment
US11294777B2 (en) 2016-12-05 2022-04-05 Nutanix, Inc. Disaster recovery for distributed file servers, including metadata fixers
US11288239B2 (en) 2016-12-06 2022-03-29 Nutanix, Inc. Cloning virtualized file servers
US11281484B2 (en) 2016-12-06 2022-03-22 Nutanix, Inc. Virtualized server systems and methods including scaling of file system virtual machines
US11587196B2 (en) * 2017-04-10 2023-02-21 Dell Products L.P. Information handling system remote desktop protocol selection
US11144412B2 (en) 2017-06-05 2021-10-12 Vmware, Inc. Virtual machine image file synchronization using delta bitmaps and delta files
KR101946862B1 (ko) 2017-06-08 2019-04-29 (주)필라웨어 사용자 인사 정보에 기반한 가상 데스크탑/가상 어플리케이션 환경 관리 시스템
WO2019074556A1 (en) * 2017-10-11 2019-04-18 Avocent Huntsville, Llc SYSTEM AND METHOD FOR CREATING VIRTUAL DISK IMAGES FOR USE WITH A REMOTE COMPUTER
KR102492793B1 (ko) * 2018-01-03 2023-01-30 주식회사 케이티 가상 데스크탑 서비스 제공 시스템 및 가상 데스크탑 서비스 제공 방법
US10430227B2 (en) 2018-01-09 2019-10-01 Microsoft Technology Licensing, Llc Fast instantiation of virtual machines in distributed computing systems
US10693945B2 (en) * 2018-01-24 2020-06-23 Vmware, Inc. File and folder redirection for virtual desktops via image scanning
CN108306969B (zh) * 2018-02-02 2021-05-25 西安雷风电子科技有限公司 一种idv云桌面的智能接入系统及智能接入方法
US10664323B2 (en) 2018-03-07 2020-05-26 Microsoft Technology Licensing, Llc Live migration of virtual machines in distributed computing systems
US11086826B2 (en) 2018-04-30 2021-08-10 Nutanix, Inc. Virtualized server systems and methods including domain joining techniques
US11194680B2 (en) 2018-07-20 2021-12-07 Nutanix, Inc. Two node clusters recovery on a failure
PT115089A (pt) * 2018-10-19 2020-04-20 Eurotux Informatica S A Sistema e método para comutação gradual de ambiente de computação entre computador local e computador remoto.
US11770447B2 (en) 2018-10-31 2023-09-26 Nutanix, Inc. Managing high-availability file servers
US10809935B2 (en) * 2018-12-17 2020-10-20 Vmware, Inc. System and method for migrating tree structures with virtual disks between computing environments
US20210117208A1 (en) * 2019-10-18 2021-04-22 Vmware, Inc. User profile migration to virtual desktop infrastructure
US11221784B2 (en) * 2019-11-01 2022-01-11 Hiveio Inc. Method and system for user data backup within a virtual desktop environment
US11263039B2 (en) * 2019-11-15 2022-03-01 Vmware, Inc. High performance attachable writeable volumes in VDI desktops
US11768809B2 (en) 2020-05-08 2023-09-26 Nutanix, Inc. Managing incremental snapshots for fast leader node bring-up
US11368726B1 (en) * 2020-06-11 2022-06-21 Francisco Matías Saez Cerda Parsing and processing reconstruction of multi-angle videos
EP3929740A1 (de) * 2020-06-26 2021-12-29 Siemens Aktiengesellschaft Verfahren zur orchestrierung einer container-basierten anwendung auf einem endgerät
US20230066137A1 (en) 2021-08-19 2023-03-02 Nutanix, Inc. User interfaces for disaster recovery of distributed file servers
EP4160397A1 (en) * 2021-10-01 2023-04-05 Brian Pritchard Methods and systems for emulating application-specific workstations on personal computers
US11979454B2 (en) 2022-08-29 2024-05-07 Vertiv It Systems, Inc. Writeback to a virtual media mapped image in HTML5
CN116775223B (zh) * 2023-08-18 2023-11-10 西安雷风电子科技有限公司 一种idv和vdi虚拟桌面融合使用的方法

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4025475B2 (ja) * 1999-11-10 2007-12-19 日本電気株式会社 データベース交換システム
US7313614B2 (en) 2000-11-02 2007-12-25 Sun Microsystems, Inc. Switching system
US20020156971A1 (en) * 2001-04-19 2002-10-24 International Business Machines Corporation Method, apparatus, and program for providing hybrid disk mirroring and striping
US7275105B2 (en) * 2002-01-16 2007-09-25 Laszlo Systems, Inc. Enabling online and offline operation
US7032131B2 (en) * 2002-03-26 2006-04-18 Hewlett-Packard Development Company, L.P. System and method for ensuring merge completion in a storage area network
US9171049B2 (en) * 2002-06-13 2015-10-27 Salesforce.Com, Inc. Offline simulation of online session between client and server
US7793060B2 (en) * 2003-07-15 2010-09-07 International Business Machines Corporation System method and circuit for differential mirroring of data
US7555531B2 (en) 2004-04-15 2009-06-30 Microsoft Corporation Efficient algorithm and protocol for remote differential compression
JP4242819B2 (ja) * 2004-10-06 2009-03-25 株式会社日立製作所 オフライン作業可能な端末を有する計算機システム
US7536525B2 (en) * 2004-11-09 2009-05-19 Dell Products L.P. Virtual machine hot cloning including freezing and unfreezing memory in a distributed network
US20060122955A1 (en) * 2004-12-02 2006-06-08 Alex Bethlehem System and method for launching a resource in a network
US8274518B2 (en) * 2004-12-30 2012-09-25 Microsoft Corporation Systems and methods for virtualizing graphics subsystems
US20060184937A1 (en) * 2005-02-11 2006-08-17 Timothy Abels System and method for centralized software management in virtual machines
US20070094659A1 (en) * 2005-07-18 2007-04-26 Dell Products L.P. System and method for recovering from a failure of a virtual machine
US7447854B1 (en) 2005-12-30 2008-11-04 Vmware, Inc. Tracking and replicating changes to a virtual disk
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
US7739738B1 (en) * 2006-03-15 2010-06-15 Symantec Corporation Enabling clean file cache persistence using dual-boot detection
US20070260702A1 (en) * 2006-05-03 2007-11-08 University Of Washington Web browser architecture for virtual machine access
US9392078B2 (en) * 2006-06-23 2016-07-12 Microsoft Technology Licensing, Llc Remote network access via virtual machine
US20080086540A1 (en) * 2006-10-06 2008-04-10 James Scott Method and system for executing a normally online application in an offline mode
AU2007309183A1 (en) 2006-10-20 2008-05-02 Citrix Systems,Inc. Methods and systems for accessing remote user files associated with local resources
US20100306773A1 (en) 2006-11-06 2010-12-02 Lee Mark M Instant on Platform
US9270781B2 (en) * 2007-02-15 2016-02-23 Citrix Systems, Inc. Associating virtual machines on a server computer with particular users on an exclusive basis
US20080235361A1 (en) * 2007-03-21 2008-09-25 David Crosbie Management layer method and apparatus for dynamic assignment of users to computer resources
US20080301770A1 (en) * 2007-05-31 2008-12-04 Kinder Nathan G Identity based virtual machine selector
US9069638B2 (en) 2007-06-11 2015-06-30 Red Hat, Inc. Update system to synchronize changes from external sources for a java virtual machine
US7970903B2 (en) 2007-08-20 2011-06-28 Hitachi, Ltd. Storage and server provisioning for virtualized and geographically dispersed data centers
AU2009219470B2 (en) 2008-02-26 2012-06-21 VMware LLC Extending server-based desktop virtual machine architecture to client machines
US8255806B2 (en) 2008-09-15 2012-08-28 Vmware, Inc. Unified secure virtual machine player and remote desktop client

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210126924A1 (en) * 2009-11-30 2021-04-29 Red Hat, Inc. Monitoring cloud computing environments
US11949709B2 (en) * 2009-11-30 2024-04-02 Red Hat, Inc. Monitoring cloud computing environments
CN101741866B (zh) * 2010-02-01 2012-12-12 浪潮(北京)电子信息产业有限公司 一种在线存储系统及方法
CN103917982B (zh) * 2011-03-16 2016-09-28 赛门铁克公司 保护虚拟桌面基础设施中的登出虚拟机的技术
CN103917982A (zh) * 2011-03-16 2014-07-09 赛门铁克公司 保护虚拟桌面基础设施中的登出虚拟机的技术
CN102760081A (zh) * 2011-04-29 2012-10-31 国际商业机器公司 虚拟机资源分配的方法和装置
US9128765B2 (en) 2011-04-29 2015-09-08 International Business Machines Corporation Assigning restored virtual machine based on past application usage of requesting user
CN102760081B (zh) * 2011-04-29 2016-01-27 国际商业机器公司 虚拟机资源分配的方法和装置
CN102427448A (zh) * 2011-11-03 2012-04-25 中兴通讯股份有限公司 在虚拟桌面中使用客户端输入法的方法、终端及服务端
CN102427448B (zh) * 2011-11-03 2017-07-14 南京中兴软件有限责任公司 在虚拟桌面中使用客户端输入法的方法、终端及服务端
CN103200215A (zh) * 2012-01-08 2013-07-10 佳都新太科技股份有限公司 一种在https上实现XenServer虚拟机远程控制的方法
US10616129B2 (en) 2013-03-11 2020-04-07 Amazon Technologies, Inc. Automated desktop placement
US10313345B2 (en) 2013-03-11 2019-06-04 Amazon Technologies, Inc. Application marketplace for virtual desktops
CN113419799A (zh) * 2013-04-09 2021-09-21 思杰系统有限公司 使用云同步数据提供本机桌面
CN105579960A (zh) * 2013-06-26 2016-05-11 亚马逊技术有限公司 计算会话的管理
CN105579960B (zh) * 2013-06-26 2019-04-12 亚马逊技术有限公司 计算会话的管理
CN103593227A (zh) * 2013-11-08 2014-02-19 何钦淋 在客户端运行桌面虚拟系统的方法及客户端
CN103593227B (zh) * 2013-11-08 2017-02-22 何钦淋 在客户端运行桌面虚拟系统的方法及客户端
CN103677840A (zh) * 2013-12-18 2014-03-26 浪潮电子信息产业股份有限公司 一种在作业调度软件中查看及操作应用图形界面的方法
TWI608420B (zh) * 2014-10-20 2017-12-11 緯創資通股份有限公司 虛擬機器監控方法及其系統
CN107810475A (zh) * 2015-06-30 2018-03-16 威睿公司 用于虚拟计算环境的软件生命周期管理的方法和装置
CN105653342B (zh) * 2016-02-01 2018-09-28 福建升腾资讯有限公司 一种Windows池桌面自动入域的方法及系统
CN105653342A (zh) * 2016-02-01 2016-06-08 福建升腾资讯有限公司 一种Windows池桌面自动入域的方法及系统
CN108667887A (zh) * 2017-07-03 2018-10-16 无锡辰云科技股份有限公司 基于融合计算的桌面虚拟方法、装置和系统
CN108536515A (zh) * 2018-03-02 2018-09-14 武汉噢易云计算股份有限公司 Vdi的虚拟机播放客户机的音乐cd的方法及系统
CN110928624A (zh) * 2019-11-15 2020-03-27 联思智云(北京)科技有限公司 用于用户终端的云桌面调用方法、装置及终端
CN110908756A (zh) * 2019-11-18 2020-03-24 西安雷风电子科技有限公司 一种云端桌面实时融合切换方法及系统
CN110908756B (zh) * 2019-11-18 2024-02-02 西安雷风电子科技有限公司 一种云端桌面实时融合切换方法及系统

Also Published As

Publication number Publication date
RU2432605C1 (ru) 2011-10-27
US20240078126A1 (en) 2024-03-07
WO2009108579A2 (en) 2009-09-03
US8640126B2 (en) 2014-01-28
US20160371111A1 (en) 2016-12-22
EP2248041B1 (en) 2015-04-29
WO2009108579A3 (en) 2009-11-26
US20210117223A1 (en) 2021-04-22
EP2248041A4 (en) 2013-01-23
AU2009219470A1 (en) 2009-09-03
US20090216975A1 (en) 2009-08-27
JP5198584B2 (ja) 2013-05-15
CA2713876A1 (en) 2009-09-03
CN101971162B (zh) 2012-11-21
KR101178752B1 (ko) 2012-09-10
KR20100123847A (ko) 2010-11-25
MX2010009362A (es) 2010-12-06
US10896054B2 (en) 2021-01-19
US9444883B2 (en) 2016-09-13
AU2009219470B2 (en) 2012-06-21
US20140189816A1 (en) 2014-07-03
EP2248041A2 (en) 2010-11-10
US10061605B2 (en) 2018-08-28
JP2011513816A (ja) 2011-04-28
CA2713876C (en) 2014-11-04
US20180341511A1 (en) 2018-11-29
US11669359B2 (en) 2023-06-06

Similar Documents

Publication Publication Date Title
CN101971162B (zh) 将基于服务器的桌面虚拟机架构扩展到客户机上
EP2302509B1 (en) Synchronization of server-side cookies with client-side cookies
US9952782B1 (en) Method and system for accessing data between different virtual disk formats in a virtualization environment
JP5976230B2 (ja) リソース管理システムおよびリソース管理方法
US8707308B1 (en) Method for dynamic management of system resources through application hints
US10379891B2 (en) Apparatus and method for in-memory-based virtual desktop service
US7484206B2 (en) Synchronization of password and user data during migration from a first operating system platform to a second operating system platform
US10740133B2 (en) Automated data migration of services of a virtual machine to containers
US20150381435A1 (en) Migrating private infrastructure services to a cloud
US8924969B2 (en) Virtual machine image write leasing
EA013001B1 (ru) Способ и устройство для управления компьютерной файловой системой с использованием деревьев файловой системы
JP2011076605A (ja) 仮想マシン・イメージの実行方法及びシステム
US11080041B1 (en) Operating system management for virtual workspaces
CN104040525B (zh) 通过网络连接访问覆盖介质
JP4497993B2 (ja) 電子配付物の配付制御システム及び方法
US20140297597A1 (en) Computer system and management method for the same
JP2008511931A (ja) 遠隔計算システムのためのローカルに動作されるデスクトップ環境
US10476757B1 (en) Architecture for implementing centralized management for a computing environment
JP5134149B1 (ja) ネットワークシステム及びその制御方法
CN104202332A (zh) 基于Linux内核的移动设备虚拟化系统及即时安装方法
US11986961B2 (en) Machine learning model operation management system and machine learning model operation management method
KR101563292B1 (ko) 가상 세션 관리자를 이용한 클라우드 가상화 시스템 및 방법
WO2013145434A1 (ja) ネットワークシステム及びその制御方法
CN118369659A (zh) 用于在共享管理环境中构建和验证数据库软件的技术
WO2018011914A1 (ja) データアーカイブシステム、および、データアーカイブ方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP03 Change of name, title or address

Address after: California, USA

Patentee after: Weirui LLC

Country or region after: U.S.A.

Address before: California, USA

Patentee before: VMWARE, Inc.

Country or region before: U.S.A.

CP03 Change of name, title or address