CN102446121B - Allocating virtual machines according to user-specific virtual machine metrics - Google Patents

Allocating virtual machines according to user-specific virtual machine metrics Download PDF

Info

Publication number
CN102446121B
CN102446121B CN201110148568.4A CN201110148568A CN102446121B CN 102446121 B CN102446121 B CN 102446121B CN 201110148568 A CN201110148568 A CN 201110148568A CN 102446121 B CN102446121 B CN 102446121B
Authority
CN
China
Prior art keywords
user
virtual machine
virtual
certain embodiments
computing equipment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201110148568.4A
Other languages
Chinese (zh)
Other versions
CN102446121A (en
Inventor
R·夏普
D·斯科特
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 CN102446121A publication Critical patent/CN102446121A/en
Application granted granted Critical
Publication of CN102446121B publication Critical patent/CN102446121B/en
Active 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3438Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
    • 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/45562Creating, deleting, cloning 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/4557Distribution of virtual machine instances; Migration and load balancing
    • 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/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Abstract

The performance monitoring system allocates virtual machines to users or user sessions according to a user categorization that is determine using user session information and virtual machine metrics. A session monitor of the performance monitoring system is notified that a user session terminated, where the user session accessed a virtual machine. The session monitor responsively records the user session information and obtains virtual machine metrics for the virtual machine from a virtual machine performance monitor. The performance monitoring system updates a user workload profile using the user session information and the virtual machine metrics, and categorizes the user of the user session according to the user workload profile. Upon receiving a request from a user for a virtual machine, a virtual desktop infrastructure requests a virtual machine from a virtual machine manager. The virtual machine manager responsively allocates a virtual machine to the user according to the user's categorization.

Description

According to the virtual machine Distribution Indexes virtual machine that user specifies
Technical field
The application relates generally to and distributes virtual machine to user.The virtual machine index that the application particularly relates to based on distributing to particular user distributes virtual machine.
Background technology
In many systems, the performance index associated with virtualization system can be stored or be associated with one or more virtual machine.As in these virtual machines of user's initialization one, make the determination about where performing virtual machine.In many instances, this determines that being based in part on performance index that are stored or that associate with virtual machine makes.Therefore, in this example and many other systems, virtualization system partly determines where perform virtual machine according to the performance index associated with virtual machine.
Sometimes make based on the performance of that virtual machine about the decision where performing virtual machine.These performance index can comprise the value, bandwidth availability ratio etc. of average utilization of processor utilization, memory usage, expression computational resource.In many instances, these indexs are not only virtual machine performance but also are the results of user behavior.When elected device of selecting a good opportunity is to perform virtual machine, such hypothesis can be made: these performance index represent that virtual machine will be applied to the load on machine, and described machine is selected for execution virtual machine.In (pooled) virtual desktop framework (VDI) environment in pond, virtual machine can be distributed from virtual machine pool or group to user.Therefore the load be applied on the machine performing virtual machine is the common result signing in the activity that user on virtual machine and virtual machine carry out.Now it is desirable that not only consider the utilization factor index of virtual machine, and more specifically consider which user signs in the system of virtual machine when utilization factor index is recorded.The utilization factor index recorded for particular user can be used to determine that user may apply charge capacity on a virtual machine.Virtual machine can be distributed to user according to the possible charge capacity applied on a virtual machine.
Summary of the invention
In one aspect, described herein is for determining where to perform virtual machine or how carrying out the method and system of configuring virtual machine according to the index be associated with user and the virtual machine that is assigned to user.In many virtualization systems, the performance index of the history partly associated by virtual machine determine where to perform virtual machine and how configuring virtual machine.Distributing in the environment of virtual machine to user from virtual machine pool or group, the operating load be applied on physical computing machine by virtual machine may be not only virtual machine but also be the result of the user of accesses virtual machine.Method and system described herein is by selecting execution environment and configuring this virtual machine with the performance index of history of the virtual machine being assigned to this user and solve this problem based on user for virtual machine.
In yet another aspect, described herein is method and system for distributing virtual machine to user according to the classification of user, and wherein the classification of user determines according to the first user session information of history and virtual machine index.The session monitor that computing machine performs receives the notice of first user session termination, wherein first user session access first virtual machine.In response to the termination of first user session, session monitor record first user session information.Then virtual machine index for the first virtual machine can be obtained from virtual machine performance watch-dog.Then, Network Performance Monitor uses first user session information and the first virtual machine index to upgrade first user workload profiles (profile).First user workload profiles corresponds to the first user of first user session.Then, according to first user workload profiles, first user is classified.Then virtual desktop framework can receive the request to virtual machine from first user.In response to this request of reception, the classification according to first user distributes virtual machine to first user.
In certain embodiments, session monitor performs outside virtual desktop framework.
In other embodiments, according to first user workload profiles, first user can be classified as severe user, moderate user or slight user.
In certain embodiments, recorded first user session information can be mapped to the first obtained virtual machine index by Network Performance Monitor.
In other embodiments, the classification of first user can be stored in storage repository.
In one embodiment, the sort module that the computing machine outside virtual desktop framework performs can perform the classification to first user.
In other embodiments, session monitor receives the notice that the second user conversation stops, and wherein the second user conversation accesses the second virtual machine.Then, session monitor can record the second user session information, and can obtain the virtual machine index for the second virtual machine.Then, Network Performance Monitor uses the second user session information and the second virtual machine index to upgrade the second user job load profiles.Second user job load profiles may correspond to the second user in the second user conversation.In certain embodiments, sort module can use the second user job load profiles to classify to the second user according to the second user job load profiles.
In certain embodiments, virtual desktop framework is by responding the request of first user to virtual machine from virtual machine manager request virtual machine.The request that virtual machine manager sends in response to virtual desktop framework, can distribute virtual machine according to the classification of first user to first user.In certain embodiments, distribute virtual machine can comprise and carry out configuring virtual machine according to the classification of first user.In other embodiments, distribute virtual machine can comprise and select virtual machine according to the classification of first user.
Accompanying drawing explanation
Some illustrative examples drawings describing system and method described herein below, wherein identical Reference numeral relates to identical element.Embodiment described by these should be understood to schematically illustrating disclosed method and system, instead of for any restriction of the application.
Figure 1A describes the embodiment of the remote access network environment of the computing equipment provided executable application programs;
Figure 1B and Fig. 1 C is the block diagram of the embodiment describing computing equipment;
Fig. 2 A and Fig. 2 B is the block diagram of the embodiment describing virtualized environment;
Fig. 3 is the block diagram of the embodiment describing virtualized environment and virtual desktop architecture environment;
Fig. 4 describes the process flow diagram referring to the embodiment of calibration method for recording virtual machine utilization factor;
Fig. 5 A and Fig. 5 B is the process flow diagram of the embodiment of the method described for distributing virtual machine to user;
Fig. 6 is the process flow diagram describing the embodiment upgrading user job load profiles.
Embodiment
Figure 1A describes an embodiment of computing environment 101, and this computing environment comprises the one or more client computer 102A-102N (total is called " client computer 102 ") communicated with one or more server 106A-106N (total is called " server 106 ").Network is installed between client computer 102 and server 106.
In one embodiment, computing environment 101 can comprise the equipment be arranged between server 106 and client computer 102.This equipment ALARA Principle client/server connects, and load balance client computer can connect between multiple back-end server in some cases.
Client computer 102 can be considered to a group of single client computer 102 or client computer 102 in certain embodiments, and server 106 can be considered to a group of individual server 106 or server 106.In one embodiment, single client computer 102 communicates with a not only server 106, and in another embodiment, and individual server 106 communicates with a not only client computer 102.In another embodiment, single client computer 102 communicates with individual server 106.
In certain embodiments, client computer 102 can be called as any one in term below: client computer 102, client, client computer, customer equipment, client computing device, local machine, remote machine, client node, end points, end node or the second machine.In certain embodiments, server 106 can be called as any one in following term: server, local machine, remote machine, server zone, host computer device or the first machine.
In one embodiment, client computer 102 can be virtual machine 102C.Virtual machine 102C can be any virtual machine, and virtual machine 102C can be any virtual machine of supervisory routine (hypervisor) or any other supervisory routine management of being developed by XenSolution, Citrix Systems, IBM, VMware company in certain embodiments.In other embodiments, virtual machine 102C can be managed by any supervisory routine, and in other embodiments, virtual machine 102C can be managed by the supervisory routine performed on a server 106 or the supervisory routine performed on client 102.
In certain embodiments, client computer 102 can perform, operate or otherwise provide application, this application can be any one in following application: software, program, executable instruction, virtual machine, supervisory routine, web browser, based on the client computer of web, client-server is applied, thin-client computing client, ActiveX control, Java small routine, to communicate relevant software to the networking telephone (VoIP) of similar soft IP phone, the application of Streaming video and/or audio frequency, be convenient to the application of real-time data communication, HTTP client computer, FTP client computer, Oscar client computer, any other set of Telnet client computer or executable instruction.Other embodiments comprise the customer equipment 102 showing the application output produced by the application being positioned at long-distance support on long-range machine at server 106 or other.In these embodiments, customer equipment 102 display application can export in application window, browser or other output windows.In one embodiment, application is desktop, and in other embodiments, application is the application producing desktop.
In certain embodiments, server 106 performs and long-rangely presents client or other clients or program, the display translation that these clients or program use thin-client or remote display protocol to catch to be produced by the application performed on a server 106 and application display translation is transferred to remote client 102.Thin-client or remote display protocol can be any one of following agreement: independent computing architecture (ICA) agreement manufactured by the Citrix Systems company being positioned at Florida State Ft.Lauderdale; Or by being positioned at Washington, the RDP (RDP) of Microsoft (Microsoft) the company manufacture of Redmond.
Computing environment can comprise a not only server 106A-106N, and such server 106A-106N is aggregated in server zone 106 in logic together.Server zone 106 can comprise geographically dispersion and the server 106 be aggregated to together in logic in server zone 106, or mutually between position close and the server 106 be aggregated to together in logic in server zone 106.In certain embodiments, the server 106A-106N geographically disperseed in server zone 106 can use WAN, MAN or LAN to communicate, and wherein different geographic regions can be characterized as being: any combination in the different regions in different continent, continent, country variant, not Tonzhou, different cities, different campus, not chummery or aforementioned geographic position.In certain embodiments, server zone 106 can be managed as single entity, and in other embodiments, server zone 106 can comprise multiple server zone 106.
In certain embodiments, server zone 106 can comprise the operating system platform of execution type similar in fact (such as, WINDOWS NT, Unix, Linux or SNOW LEOPARD manufactured by the Microsoft company of Washington, Redmond) server 106.In other embodiments, server zone 106 can comprise the first group of server 106 performing first kind operating system platform and the second group of server 106 performing Second Type operating system platform.In other embodiments, server zone 106 can comprise the server 106 performing dissimilar operating system platform.
In certain embodiments, server 106 can be any type of server.In other embodiments, server 106 can be any one of following services device type: the server 106 of file server, application server, web server, proxy server, equipment, the network equipment, gateway, application gateway, gateway server, virtualized server, deployment server, SSL vpn server, fire wall, web server, application server or master application server, executed activity catalogue or execution provide the server 106 of the application acceleration program of firewall functionality, application function or load balance function.In certain embodiments, server 106 can be the radius server comprising remote authentication Dial-In User Service.Comprise in the embodiment of equipment at server 106, server 106 can be by any one equipment manufactured of following manufacturer: Citrix application network group, Silver Peak Systems company, RiVerbed Thechnology company, F5Networks company or Juniper NetWorks company.Some embodiments comprise first server 106A, and it receives from the request of client computer 102, the second server 106B that forwards the request to, and use the response from second server 106B to respond the request that client computer 102 produces.First server 106A can obtain client computer 102 can list of application, and the address information relevant to posting the application server 106 that carries in list of application the application identified.First server 106A also can use web interface to provide response to client requests, and directly communicate with client computer 102 with provide to client computer 102 to the identification access of applying.
In certain embodiments, server 106 can perform any one in following application: data are applied to the thin-client of client computer, long-range display presents application, any part of the CITRIX ACCESS SUITE of Citrix Systems company to use thin-client protocol transmission application display, such as METAFRAM or CITRIX PRESENTATION SERVER; The MICROSOFT WINDOWS Terminal Service that Microsoft company manufactures or the ICA client developed by Citrix Systems company.Another embodiment comprises the server 106 for such as following application server: the mail server providing E-mail service, the MICROSOFT EXCHANGE such as manufactured by Microsoft company; Web or Internet server, desktop sharing server, the application server of Collaboration Server or any other type.In other embodiments server 106 perform following classes post carry server application any one: the WEBEX that the GOTOMEETING that CitrixOnline Division company provides, the WebEx company being positioned at California Santa Clara provide, or the Microsoft Office LIVE MEETING that Microsoft company provides.
In certain embodiments, client computer 102 can be the client node of seeking to conduct interviews to the resource that server 106 provides.In other embodiments, server 106 can be client computer 102 or client node provide to post the access of the resource of carrying.In certain embodiments, server 106 runs as host node, and it can communicate with one or more client computer 102 or server 106 like this.In certain embodiments, host node identifiable design and provide to one or more client computer 102 or server 106 and carry the relevant address information of the server 106 of application of asking to posting.In other embodiments, host node can be the cluster of server zone 106, client computer 102, client node 102, or equipment.
Network 104 transmitting data that one or more client computer 102 and/or one or more server 106 can be installed between the machine and equipment in computing environment 101.Network 104 can comprise one or more subnet, and can be installed in the client computer 102 be comprised in computing environment 101, server 106, between computing machine and any combination of equipment.Network 104 can be in certain embodiments: LAN (Local Area Network) (LAN), Metropolitan Area Network (MAN) (MAN), wide area network (WAN), the major network 104 comprising the multiple subnets 104 between client computer 102 and server 106, Your Majesty's common network 104 with private subnets 104, has the main private 104 of common subnet 104 or has the main private 104 of private subnets 104.Network 104 can be any following network type in a further embodiment: point to point network, radio network, communication network, data communication network, computer network, ATM (asynchronous transfer mode) network, SONET (Synchronous Optical Network) network, SDH (SDH (Synchronous Digital Hierarchy)) network, wireless network, cable network or comprise the network 104 of such as infrared channel or Landsat band wireless link.The topology of network 104 in various embodiments can be different, and possible network topology comprises: bus-network topology, hub-and-spoke network topology, ring network be topological, based on the network topology of repeater or tiered star network topology.Extra embodiment comprises the network 104 of the mobile telephone network using agreement to communicate between mobile device, wherein, agreement can be any one of following agreement: AMPS, TDMA, CDMA, GSM, GPRS UMTS or can transmit other any agreements of data between mobile device.
Be the embodiment of computing equipment 100 shown in Figure 1B, wherein client computer 102 as shown in Figure 1A and server 106 can be deployed as and/or be executed in any embodiment of described herein and illustrated computing equipment 100.The system bus 150 be comprised in computing equipment 100 can communicate with following assemblies: CPU (central processing unit) 121, primary memory 122, memory storage 128, input and output (I/O) controller 123, display device 124A-124N, erecting equipment 116 and network interface 118.Memory storage 128 comprises in one embodiment: operating system, software program and client proxy 120.In certain embodiments, I/O controller 123 is also connected to keyboard 126 and indicating equipment 127.The I/O controller 123 being connected to a not only input-output device 130A-130N can be comprised in other embodiments.
Fig. 1 C describes an embodiment of computing equipment 100, and wherein client computer 102 as shown in Figure 1A and server 106 can be deployed as and/or be executed in any embodiment of described herein and illustrated computing equipment 100.The system bus 150 be comprised in computing equipment 100 can communicate with following assemblies: bridge 170 and an I/0 equipment 130A.In another embodiment, bridge 170 also communicates with main central processing unit 121, and wherein CPU (central processing unit) 121 can communicate with cache memory 140 with the 2nd I/O equipment 130B, primary memory 122 further.I/O port, port memory 103 and primary processor are comprised in CPU (central processing unit) 121.
Any one CPU (central processing unit) 121 characterized configured by following assemblies can be comprised: respond and process the logical circuit of the instruction from main storage unit 122 taking-up in the embodiment of computing equipment 100; Microprocessor unit, such as: the microprocessor unit manufactured by Intel Company; The microprocessor unit manufactured by motorola inc; The microprocessor unit manufactured by the Transmeta Company of California Santa Clara; The RS/6000 processor that such as International Business Machine Corporation (IBM) (International Bussiness Machines) manufactures; The processor manufactured by Advanced Micro Devices company; Or any other combination of logical circuit.Other embodiments of CPU (central processing unit) 122 can comprise following any combination: microprocessor, microcontroller, have single process core CPU (central processing unit), there is the CPU (central processing unit) of two process cores or there is the CPU (central processing unit) of a not only process core.
Although Fig. 1 C describes the computing equipment 100 comprising single CPU (central processing unit) 121, computing equipment 100 can comprise one or more processing unit 121 in certain embodiments.In these embodiments, computing equipment 100 can store and perform firmware or other executable instructions, and these firmwares or instruction, when being performed, guide one or more processing unit 121 perform instruction simultaneously or in a data slice, perform instruction simultaneously.In other embodiments, computing equipment 100 can store and perform firmware or other executable instructions, and these firmwares or instruction, when being performed, guide a part for each execution one group of instruction of one or more processing unit.Such as each processing unit 121 can be instructed to the particular module in the part of executive routine or program.
In certain embodiments, processing unit 121 can comprise one or more process core.Such as processing unit 121 can have two cores, four cores, 8 cores etc.In one embodiment, processing unit 121 can comprise one or more parallel processing core.The process of processing unit 121 in certain embodiments endorse access as global address space free memory or in other embodiments, the storer of computing equipment 100 can be segmented and be assigned to the particular core of processing unit 121.In one embodiment, the one or more process core in computing equipment 100 or each addressable local storage of processor.In yet another embodiment, the storer of computing equipment 100 can be shared between one or more processor or process core, and other storeies can by par-ticular processor or processor subset access.Comprise in the embodiment of a not only processing unit at computing equipment 100, multiple processing unit can be comprised in single integrated circuit (IC).In certain embodiments, these multiple processors link together by inner high speed bus, and this bus can be called as component interconnect bus.
One or more processing unit 121 is comprised at computing equipment 100, or processing unit 121 comprises in the embodiment of one or more process core, processor can perform single instruction (SIMD) simultaneously on multislice data, or processor can perform multiple instruction (MIMD) simultaneously on multislice data in other embodiments.In certain embodiments, computing equipment 100 can comprise SIMD and the MIMD processor of any amount.
In certain embodiments, computing equipment 100 can comprise image processor or Graphics Processing Unit (not shown).Graphics Processing Unit can comprise any combination of software and hardware, and can input graphics data and graphics command, the figure played up from inputted data and instruction render graphics and output.In certain embodiments, Graphics Processing Unit can be comprised in the inside of processing unit 121.In other embodiments, computing equipment 100 can comprise one or more processing unit 121, and wherein at least one processing unit 121 is dedicated to process and render graphics.
Comprise the CPU (central processing unit) by communicating with cache memory 140 also referred to as the second bus of dorsal part bus in an embodiment of computing equipment 100, and comprise the CPU (central processing unit) 121 using system bus 150 to communicate with cache memory 140 in another embodiment of computing equipment 100.In certain embodiments, local system bus 150 also make by CPU (central processing unit) for communicating with the I/O equipment 130A-130N of a not only type.In certain embodiments, local system bus 150 can be any one of following classes bus: VESA VL bus, isa bus, eisa bus, MCA (MCA) bus, pci bus, PCI-X bus, PCI-Express bus or NuBus.Other embodiments of computing equipment 100 comprise the I/O equipment 130A-130N of the video display 124 for communicating with CPU (central processing unit) 121.Comprise the processor 121 being connected to I/O equipment 130A-130N by any one of following connection in other forms of computing equipment 100, these connections are as follows:.Super transmission (HyperTransport), fast I/O or InfiniBand.The further embodiment of computing equipment 100 comprises processor 121, and this processor uses local interconnect bus to communicate with an I/O equipment 130A, and uses directly connection to communicate with the 2nd I/O equipment 130B.
In certain embodiments, computing equipment 100 comprises main storage unit 122 and cache memory 140.Cache memory 140 can be any type of memory, and can be following classes storer any one in certain embodiments: SRAM, BSRAM or EDRAM.The cache memory 140 that other embodiments comprise and main storage unit 122, it can be any one of following classes storer: static random-access memory (SRAM), Burst (train of impulses) SRAM or SynchBurst SRAM (BSRAM), dynamic RAM DRAM, fast page mode DRAM (FPM DRAM), strengthen DRAM (EDRAM), growth data exports RAM (EDO RAM), growth data exports DRAM (EDO DRAM), train of impulses growth data exports DRAM (BEDO DRAM), enhancement mode DRAM (EDRAM), synchronous dram (SDRAM), JEDEC SRAM, PC100 SDRAM, Double Data transfer rate SDRAM (DDR SDRAM), strengthen SDRAM (ESDRAM), synchronization link DRAM (SLDRAM), direct Rambus DRAM (DRDRAM), the storer of ferroelectric RAM (FRAM) or any other type.Further embodiment comprises the CPU (central processing unit) 121 by following manner access primary memory 122, and these modes comprise: system bus 150, port memory 103 or allow processor 121 to access storer 122 other connect, bus or port.
An embodiment of computing equipment 100 supports any one of following erecting equipment 116: the tape drive of CD-ROM drive, CD-R/RW driver, DVD-ROM driver, multiple format, USB device, bootable medium, bootable CD, such as KNOPPIX the bootable CD for GNU/Linux distribution, hard disk drive or be suitable for application or any miscellaneous equipment of software are installed.Application in certain embodiments can comprise the arbitrary portion of client proxy 120 or client proxy 120.It can be the memory device 128 of one or more hard disk drive or one or more Redundant Array of Independent Disks (RAID) that computing equipment 100 can also comprise, and memory device is configured to store a part for operating system, software, program application or at least client proxy 120 here.The further embodiment of computing equipment 100 comprises the erecting equipment 116 as memory device 128.
Computing equipment 100 also can comprise network interface 118 with by multiple connection, include but not limited to standard telephone line, LAN or wide-area network link (such as 802.11, T1, T3,56kb, X.25, SNA, DECNET), broadband connection (as ISDN, frame relay, ATM, gigabit Ethernet, the upper Ethernet of SONET (Ethernet-over-SONET)), wireless connections or above-mentioned certain combination any or whole, be connected to LAN (Local Area Network) (LAN), wide area network (WAN) or the Internet.Use various communications protocols (such as TCP/IP, IPX, SPX, NetBIOS, Ethernet, ARCNET, SONET, SDH, fiber distributed data interface (FDDI), RS232, RS485, IEEE802.11, IEEE802.11a, IEEE802.11b, IEEE802.11g, CDMA, GSM, WiMax and direct asynchronous connection) also can connect.A form of computing equipment 100 comprises can by any type and/or the gateway of form or such as security socket layer (SSL) or Transport Layer Security (TLS), or the network interface 118 that the tunnel protocol of Gitrix gateway protocol that manufactures of Citrix Systems company communicates with other computing equipments 100 '.The form of network interface 118 can comprise built-in network adapter, network interface unit, PCMCIA network interface card, card bus network adapter, wireless network adapter, USB network adapter, modulator-demodular unit or be applicable to computing equipment 100 to be connected to can communicate and perform in any miscellaneous equipment of the network of method and system as described herein any one.
The embodiment of computing equipment 100 comprises any one of following I/O equipment 130A-130N: keyboard 126, indicating equipment 127, mouse, Trackpad, light pen, trace ball, microphone, plotting sheet, video display, loudspeaker, ink-jet printer, laser printer and thermal printer, maybe can perform any other input-output apparatus of method and system described herein.I/O controller 123 can connect multiple I/O equipment 130A-130N to control one or more I/O equipment in certain embodiments.Some embodiments of I/O equipment 130A-130N are configured to provide and store or install medium 116, and the USB storage device that other embodiments can be the USB flash memory drive wire of the equipment that reception is such as manufactured by Twintech Industry company provides USB (universal serial bus) (USB).I/O equipment 130 can be system bus 150 and external communication bus in other embodiments, as connected in series in usb bus, Apple Desktop Bus, RS-232, bridge between SCSI bus, FireWire bus, FireWire800 bus, industry ethernet, AppleTalk bus, Gigabit Ethernet bus, asynchronous transfer mode bus, HIPPI bus, Super HIPPI bus, SerialPlus bus, SCI/LAMP bus, Fiber Channel bus or Serial Attached SCSI bus.
In certain embodiments, computing equipment 100 can connect multiple display device 124A-124N, computing equipment 100 can connect single display device 124 in other embodiments, and still in other embodiments computing equipment 100 can connect the display device 124A-124N of identical type or form or the display device of different types or form.The embodiment of display device 124A-124N can by such as under type support and realization: the video adapter of one or more I/O equipment 130A-130N, I/O controller 123, I/O equipment 130A-130N and the combination of I/O controller 123, any combination supporting the hardware and software of display device 124A-124N, any type and/or form, video card, driver and/or storehouse, to dock with display device 124A-124N, to communicate, to be connected or to use display device.In certain embodiments, computing equipment 100 can be configured to use one or more display device 124A-124N, and these configurations comprise: have multiple connector to dock with multiple display device 124A-124N; Multiple video adapter and each video adapter are connected with one or more in display device 124A-124N; There is operating system to be arranged to and support multiple display device 124A-124N; The circuit being comprised in computing equipment 100 inside is used to be connected with software and to use multiple display device 124A-124N; Make host computer device 100 that the display device of secondary computing equipment can be used as the display device 124A-124N for host computer device with the executive software in host computer device 100 and multiple secondary computing equipment.Other embodiment of computing equipment 100 can comprise the multiple display device 124A-124N provided by multiple secondary computing equipment, and described multiple display device 124A-124N is connected to host computer device 100 by network.
In certain embodiments, computing equipment 100 can perform any operating system, and in other embodiments, computing equipment 100 can perform any one of following operating system: the such as operating system of the MICROSOFT WINDOWS of the version of WINDOWS 3.x, WINDOWS 95, WINDOWS 98, WINDOWS 2000, WINDOWS NT 3.51, WINDOWS NT 4.0, WINDOWS CE, WINDOWS XP and WINDOWS VISTA; The Unix of different release version and (SuSE) Linux OS; Any version of the MAC OS produced by Apple Computer (Apple Computer); The OS/2 produced by International Business Machine Corporation (IBM); Any embedded OS; Any real time operating system; Any open source operating system; Any proprietary operating systems; Arbitrarily for the operating system of mobile computing device, or other operating system arbitrarily.In other embodiments, computing equipment 100 can perform multiple operating system.Such as computing equipment 100 can perform another virtual platform that PARALLELS maybe can perform or manage the virtual machine of execution first operating system, and computing equipment 100 performs the second operating system being different from the first operating system.
Computing equipment 100 can be presented as any one of following computing equipment: evaluation work station, desktop computer, on knee or notebook, server, handheld computer, mobile phone, portable communication device, apparatus for media playing, games system, mobile computing device, net book, the IPOD serial equipment of being produced by Apple Computer, by any one of the PLAYSTATION serial equipment of Sony Corporation, by any one of the Nintendo serial equipment of Nintendo Company, any one of the XBOX serial equipment of being produced by Microsoft maybe can communicate and have enough processor abilities and memory capacity with the calculating of other type any and/or form of performing method and system described herein or telecommunications or media device.In other embodiments, computing equipment 100 can be enable (java-enabled) cell phone of any one mobile device of such as following mobile device: JAVA or personal digital assistant (PDA), such as i55sr, i58sr, i85s, i88s, i90c, i95c1 or im1100, above these manufacture by Motorola Inc.; Manufactured by Kyocera company 6035 or 7135; I300 or i330 manufactured by Samsung Electronics Co., Ltd.; By Palm Company Treo180,270,600,650,680,700p, 700w or 750 smart phones; Or there is any computing equipment of different processor, operating system and the input equipment consistent from equipment; Maybe can perform any other mobile computing device of method and system described herein.In other embodiments, computing equipment 100 can be any one in following mobile computing device: arbitrary series of blackberry, blueberry (Blackberry), or other handheld devices of being produced by Research In Motion Limited; The iPhone produced by Apple Computer; Palm Pre; Palm PC; Pda phone or any other handheld mobile device.
Fig. 2 A illustrates an embodiment of virtualized environment.The hardware layer be included in computing equipment 201 can comprise one or more physical disks 204, one or more physical equipment 206, one or more concurrent physical processor 208 and physical storage 216.In certain embodiments, firmware 212 can be stored in the memory component of physical storage 216 and to be performed by one or more concurrent physical processor 208.Computing equipment 210 also can comprise the operating system 214 performed in the memory component being stored in physical storage 216 and by one or more concurrent physical processor 208.Further, supervisory routine 202 can be performed by one or more concurrent physical processor 208 in the memory component of physical storage 216 by storage.One or more virtual machine 232A-C (being generically and collectively referred to as 232) performs on one or more concurrent physical processor 208.Each virtual machine 232 can have virtual disk 226A-C and virtual processor 228A-C.In certain embodiments, the first virtual machine 232A can perform the control program 220 comprising instrument storehouse 224 on virtual processor 228A.In other embodiments, one or more virtual machine 232B-C can perform client operating system 230A-B on virtual processor 228B-C.
With further reference to Fig. 2 A, in the more details of an embodiment, described virtualized environment comprises Type2 supervisory routine 202, or performs the supervisory routine in the operating system 214 on computing equipment 201.In certain embodiments, Type2 supervisory routine performs and the level execution of virtual machine on supervisory routine in operating system 214 environment.In many examples, Type2 supervisory routine performs in the context of the operating system of user, and such Type2 supervisory routine and operating system of user carry out alternately.
In certain embodiments, virtualized environment comprises computing equipment 201.Computing equipment 201 can be any computing equipment, and computing equipment 201 can be any computing machine described herein, equipment or computing machine in certain embodiments.Although Fig. 2 A shows single computing equipment 201, the module being stored by computing equipment 201 and performed in certain embodiments, program, virtual machine and order can be performed by a not only computing equipment 201.Still in other embodiments, computing equipment 201 can be server zone.
In one embodiment, computing equipment 201 can comprise hardware layer 210, and this hardware layer comprises the one or more hardware communicated with computing equipment 201.In certain embodiments, hardware layer 210 can comprise any hardware be comprised in computing equipment 201.In certain embodiments, hardware layer 210 can comprise one or more physical disks 204, one or more physical equipment 206, one or more concurrent physical processor 208 and storer 216.
In certain embodiments, hardware layer 210 can comprise one or more physical disks 204.Physical disks 204 can be any hard disk, and physical disks 204 can be any hard disk described herein in certain embodiments.In certain embodiments, hardware layer 210 can comprise a physical disks 204.In other embodiments, hardware layer 210 can comprise a not only physical disks 204.In certain embodiments, computing equipment 201 can communicate as the external hard disc of physical disks 204 with being comprised in hardware layer 210.
In other embodiments, hardware layer 210 can comprise processor 208.In certain embodiments, processor 208 can be any processor, and in other embodiments, processor 208 can be any processor described herein.Processor 208 can comprise one or more process core.Computing equipment 201 can comprise one or more processor 208 in other embodiments.In certain embodiments, computing equipment 201 can comprise one or more different processor, such as processing unit, Graphics Processing Unit or physical engine.
In certain embodiments, physical equipment 206 can be any equipment be comprised in computing equipment 201.In certain embodiments, physical equipment 206 can be any combination of the equipment comprised in computing equipment 201 and the external unit communicated with computing equipment 201.In certain embodiments, computing equipment 201 can comprise one or more physical equipment 206.Physical equipment 206 can be any one in following equipment: network interface unit, video card, keyboard, mouse, input equipment, display, display device, loudspeaker, CD-ROM drive, memory device, USB (universal serial bus) connect, are connected to any equipment of computing equipment 201, any equipment communicated with computing equipment 201, printer, scanner or any other equipment or any equipment described herein.
Hardware layer 210 also can comprise the physical storage 216 that can comprise any type memory.Physical storage 216 can comprise any type of memory described herein in certain embodiments.Physical storage 216 can store data, and can store one or more program or executable instruction set in certain embodiments.Shown in Fig. 2 A, firmware 212 is stored in the embodiment in the physical storage 216 of computing equipment 201.Be stored in program in physical storage 216 or executable instruction can performed by the one or more processors 208 on computing equipment 201.
In certain embodiments, firmware 212 can be any combination of executable instruction and hardware, and it controls the hardware communicated with computing equipment 201 or the hardware be comprised in computing equipment 201.In certain embodiments, firmware 212 can control the one or more hardware in hardware layer 210.In many embodiment:, firmware 212 can performed by the one or more processors 208 in computing equipment 201.In certain embodiments, firmware 212 can be the startup firmware of such as basic input/output (BIOS).On computing equipment 201 perform additional firmware 212 can with BIOS interfaces.
In one embodiment, computing equipment 201 can comprise the operating system 214 performed by one or more concurrent physical processor 208.In certain embodiments, operating system 214 is operating system of user of hardware device in the direct access hardware layer 210 of energy.Operating system 214 can be any operating system and in certain embodiments, operating system 214 can be any operating system described herein.Fig. 2 A shows an embodiment, performs in the context of operating system 214 that wherein supervisory routine 202 performs on computing equipment 201.In this embodiment, operating system 214 can be called as host (host) operating system 214, and other operating systems can be called as client (guest) operating system.Client operating system can comprise the client operating system 230A-B performed on virtual machine 232 and/or control program 220.
In certain embodiments, computing equipment 201 can comprise supervisory routine 202.In certain embodiments, supervisory routine 202 can be performed to manage the program of the virtual machine of arbitrary quantity by processor 208 on computing equipment 201.Supervisory routine 202 can be called as monitor of virtual machine, or platform virtualization software.In certain embodiments, supervisory routine 202 can be monitor the executable instruction of virtual machine and any combination of hardware that perform on the computing device.Although Fig. 2 A shows the virtualized environment comprising Type2 supervisory routine 202, computing equipment 201 can perform the supervisory routine of any other type.Such as, computing equipment 201 can perform the virtualized environment comprising Type1 supervisory routine 202.In certain embodiments, computing equipment 201 can perform one or more supervisory routine 202.These one or more supervisory routines 202 can be the supervisory routines of identical type, or can be dissimilar supervisory routine in other embodiments.
In certain embodiments, supervisory routine 202 can provide virtual resource in any mode of the operating system 230 or control program 220 of simulating direct access system resources to the operating system 230 performed on virtual machine 232 or control program 220.System resource can comprise: physical equipment, physical disks, concurrent physical processor, physical storage 216 and any other assembly be comprised in computing equipment 201 hardware layer 210.In these embodiments, supervisory routine 202 can be used to simulation virtual hardware, divide the virtual machine that physical hardware, virtualize physical hardware and execution provide the access to computing environment.Still in other embodiments, supervisory routine 202 is the scheduling of virtual machine 232 control processor and memory partition that perform on computing equipment 201.Supervisory routine 202 can comprise the supervisory routine manufactured by the VMWare company being positioned at California Palo Alto; XEN supervisory routine, the product of increasing income that its exploitation is supervised by the Xen.org group that increases income; The HyperV provided by Microsoft, virtual server and Virtual PC supervisory routine, or other.In certain embodiments, computing equipment 201 executive supervisor 202, this supervisory routine creates the virtual machine platform that client operating system can perform thereon.In these embodiments, computing equipment 201 can be called as home server.The example of such computing equipment is the XEN SERVER provided by the Citrix Systems company being positioned at Florida State Fort Lauderdale.
In one embodiment, the virtual machine 232A-B (total is expressed as 232) that performs wherein of supervisory routine 202 creation of operating system 230.Such as, in one of these embodiments, supervisory routine 202 loaded virtual machine reflection is to create virtual machine 232.These embodiments another in, supervisory routine 202 is executive operating system 230 in virtual machine 232.Still these embodiments another in, virtual machine 232 executive operating system 230.
In one embodiment, supervisory routine 202 controls the execution of at least one virtual machine 232.In yet another embodiment, the abstract of at least one hardware resource provided by computing equipment 201 is supplied at least one virtual machine 232 by supervisory routine 202.This abstract virtual or virtual view that also can be called as available hardware on computing equipment 201, internal memory, processor and other system resource.In certain embodiments, hardware or hardware resource can be available any hardware resources in hardware layer 210.In other embodiments, supervisory routine 202 controls the mode of available concurrent physical processor 208 in virtual machine 232 access computation equipment 201.Control can comprise the access of concurrent physical processor 208 to determine how whether virtual machine 232 access processor 208 and concurrent physical processor performance should present to virtual machine 232.
In certain embodiments, computing equipment 201 can be posted and carries or perform one or more virtual machine 232.Virtual machine 232 can be called as territory, client and/or DOMAIN U.Virtual machine 232 is one group of executable instruction, when it is performed by processor 208, and the operation of analog physical computing machine, thus virtual machine 232 can similar physical computing equipment executive routine or process.Although Fig. 2 A computing equipment 201 posts the embodiment of carrying 3 virtual machines 232, in other embodiments, computing equipment 201 can be posted and carry any amount of virtual machine 232.In certain embodiments, supervisory routine 202 provides physical hardware, internal memory, processor and the unique virtual view to this virtual machine available other system resource for each virtual machine 232.In certain embodiments, this unique virtual view can based on following any one: virtual machine is permitted; To the policy engine that one or more virtual machine identifier is applied; The user of accesses virtual machine; The application performed on a virtual machine; By the network that virtual machine is accessed; Or any other similar standard.In other embodiments, supervisory routine 202 provides physical hardware, storer, processor and the substantially similar virtual view to this virtual machine available other system resource to each virtual machine 232.
Each virtual machine 232 can comprise virtual disk 226A-C (being generically and collectively referred to as 226) and virtual processor 228A-C (being generically and collectively referred to as 228).In certain embodiments, virtual disk 226 is virtualized view of one or more physical disks 204 of computing equipment 201, or the virtualized view of a part for one or more physical disks 204 of computing equipment 201.The virtualized view of physical disks 204 can be produced, provide and be managed by supervisory routine 202.In certain embodiments, supervisory routine 202 can be the unique views that each virtual machine 232 provides physical disks 204.Therefore, in these embodiments, when compared with other virtual disks 226, the virtual disk 226 be comprised in each virtual machine 232 can be unique.
Virtual processor 228 can be the virtualized view of one or more concurrent physical processors 208 of computing equipment 201.In certain embodiments, the virtualized view of concurrent physical processor 208 can be produced, provide and be managed by supervisory routine 202.In certain embodiments, virtual processor 228 has all same characteristic features of at least one concurrent physical processor 208 substantially.In other embodiments, virtual processor 228 provides the modified view of concurrent physical processor 208, thus at least some feature of virtual processor 228 can be different from corresponding concurrent physical processor 208.
Control program 220 can perform at least one client operating system that should be used for managing and being configured in virtual machine 232 and in certain embodiments computing equipment performs.In certain embodiments, control program 220 can be called as control operation system, control domain, territory 0 or dom 0.In certain embodiments, control program 220 can be DOMAIN 0 or the DOM 0 of XEN supervisory routine.Control program 220 can perform management application or program with show further can the person of being managed with the user interface of the function and/or managing virtual machines 232 that visit each virtual machine 232.In certain embodiments, the user interface produced by supervisory routine can be used to stop virtual machine 232 execution, for virtual machine 232 Resources allocation, to assign authority or the management safety certificate relevant to virtual machine 232 for virtual machine 232.In certain embodiments, control program 220 can start new virtual machine 232 or stop the virtual machine 232 that performing.In other embodiments, control program 220 can hardware directly in access hardware layer 210 and/or resource.Still In yet another embodiment, control program 220 with the program performed on computing equipment 210 and outside the context of virtual machine 232 and can apply interfaces.Similarly, control program 220 with the program performed in the context of virtual machine 232 and can apply interfaces.
In one embodiment, supervisory routine 202 can perform the control program 220 in virtual machine 232.Supervisory routine 202 can create and start virtual machine 232.Perform in the embodiment of the control program 220 in virtual machine 232 in supervisory routine 202, this virtual machine 232 also can be called as control virtual machine 232.Still In yet another embodiment, control program 220 performs in the virtual machine 232 of physical resource on authorized direct access computation equipment 201.
In certain embodiments, the control program 220A (not shown) on the first computing equipment 201A (not shown) can exchange data with the control program 220B (not shown) on the second computing equipment 201B (not shown).In these embodiments, the first computing equipment 201A can away from the second computing equipment 201B.Control program 220A-B exchanges data by the communication link between the supervisory routine 202A (not shown) that performs on the first computing equipment 201A and the supervisory routine 202B (not shown) performed on the second computing equipment 201B.By this communication link, the commutative data about other available physical resources in processor and resource pool of computing equipment 201A-B.Such as, and by the connection between supervisory routine 202A-B, supervisory routine 202A-B ALARA Principle is distributed in the resource pool on one or more computing equipment 201A-B, the available resources on the first computing equipment 201A and the second computing equipment 201B.Supervisory routine 202A-B also can these resources virtual make them become available for the virtual machine 232 performed on computing equipment 201A-B.In the another situation of the present embodiment, single supervisory routine 202 ALARA Principle and the virtual machine 232 controlling to perform on two computing equipment 201A-B.
In certain embodiments, control program 220 is mutual with one or more client operating system 230A-B (being generically and collectively referred to as 230).Control program 220 communicates with client operating system 230 by supervisory routine 202.By supervisory routine 202, client operating system 230 can any other assembly in request access physical disks 204, concurrent physical processor 208, storer 216, physical equipment 206 and hardware layer 210.Still in other embodiments, client operating system 230 communicates with control program 220 by the communication channel set up by supervisory routine 202, such as, such as, by making it available multiple shared drive pages by supervisory routine 202.
In certain embodiments, control program 220 comprises the network backend driver for directly communicating with the network hardware that computing equipment 201 provides.In these embodiments one, network backend driver handles is from least one virtual machine request of at least one client operating system 230.In other embodiments, control program 220 comprises the block rear end driver for communicating with memory element on computing equipment 201.At one of these embodiments, block rear end driver is according at least one request read data and write data from memory element received from client operating system 230.
In yet another embodiment, control program 220 comprises instrument storehouse 224.In yet another embodiment, instrument storehouse 224 be provided for mutual with supervisory routine 202, to communicate with other control programs 220 (such as, on the second computing equipment 201B) or the function of virtual machine 232 on Management Calculation equipment 201.In yet another embodiment, instrument storehouse 224 comprises the application through customization of the management function for providing improvement to the keeper of virtual machine cluster.In certain embodiments, at least one of instrument storehouse 224 and control program 220 comprises the Administration API providing interface, and described interface is used for Remote configuration and controls the virtual machine of operation on computing equipment 201.In other embodiments, control program 220 is communicated with supervisory routine 202 by instrument storehouse 224.
In one embodiment, supervisory routine 202 performs client operating system 230 in the virtual machine 232 created by supervisory routine 202.In yet another embodiment, client operating system 230 provides access to the resource in computing environment to the user of computing equipment 201.Still In yet another embodiment, resource comprise program, application, document, file, multiple application, multiple file, executable program file, desktop environment, computing environment and to the user of computing equipment 201 can other resources.Still In yet another embodiment, resource can be sent to computing equipment 201 by multiple access method, these access methods include but not limited to following methods: tradition is directly installed on computing equipment 201, be sent on computing equipment 201 by the method for application stream, the output data that the execution of upper for the second computing equipment 201 ' resource produces are sent to computing equipment 201 and convey to computing equipment 201 by presentation level protocol, will by the second computing equipment 201, the output data that the virtual machine execution resource of upper execution produces are sent to computing equipment 201, or perform from the movable memory equipment of the such as USB device be connected to computing equipment 201 or perform by the virtual machine performed at equipment 201 and produce and export data.In certain embodiments, computing equipment 201 transmits the output data that produced by the execution of resource to another computing equipment 201 '.
In one embodiment, the virtual machine that client operating system 230 and this client operating system 230 perform thereon combines, and is formed and is unaware of the virtual machine that it is the Full-virtualization of virtual machine; Such machine can be called as " Domain U HVM (hardware virtual machine) virtual machine ".In yet another embodiment, Full-virtualization machine comprise simulation basic input/output (BIOS) software in case in Full-virtualization machine executive operating system.Still In yet another embodiment, Full-virtualization machine can comprise provides the driver of function by communicating with supervisory routine 202.In such embodiments, driver typically recognizes that oneself performs in virtualized environment.
In yet another embodiment, the performed thereon virtual machine of client operating system 230 and this client operating system 230 combines, and is formed and recognizes that it is the virtual machine of the para-virtualization (paravirtualized) of virtual machine; Such machine can be called as " Domain U PV virtual machine ".In yet another embodiment, para-virtualization machine comprises in Full-virtualization machine the extra driver do not comprised.Still In yet another embodiment, para-virtualization machine comprises and is comprised in network backend driver in control program 220 and block driver as above.
Shown in Fig. 2 B is another embodiment of the virtualized environment that Type1 supervisory routine 202 is described.The supervisory routine 202 that computing equipment 201 performs can hardware directly in access hardware layer 210 and resource.The virtual machine 232 managed by supervisory routine 202 can be the virtual machine 232C of unsafe virtual machine 232B and/or safety.Although the embodiment illustrating the virtualized environment in host operating system 214, Fig. 2 B in the virtualized environment described by Fig. 2 A does not perform host operating system.
With further reference to Fig. 2 B, in more detail, virtualized environment comprises Type1 supervisory routine 202.Type1 supervisory routine 202 performs on " naked metal " in certain embodiments, thus supervisory routine 202 all application that can directly access computation equipment 201 perform and all resources on process, computing equipment 201 and all hardware on computing equipment 201 or all hardware that communicates with computing equipment 201.Although Type2 supervisory routine 202 is by host operating system 214 access system resources, Type1 supervisory routine 202 can directly access all system resource.Type1 supervisory routine 202 can directly perform on one or more concurrent physical processors of computing equipment 201, and can comprise the routine data be stored in physical storage 216.
In the virtualized environment adopting Type1 supervisory routine 202 to configure, host operating system can performed by one or more virtual machine 232.The user of such computing equipment 201 can assign one or more virtual machine 232 as the individual machines of this user.This virtual machine is by allowing user to simulate host operating system alternately with computing equipment 201 by the substantially the same mode that host operating system 214 and computing equipment 201 are mutual with user.
Virtual machine 232 can be the virtual machine 232C of unsafe virtual machine 232B and safety.Although Fig. 2 B shows safe virtual machine and unsafe virtual machine, they are also referred to as privileged and unprivileged virtual machine sometimes.In certain embodiments, can based on the safety of relatively determining virtual machine of virtual machine with other virtual machines performed in identical virtualized environment.Such as, if the first virtual machine access resources pond then the second virtual machine do not access same resource pool; When the first virtual machine is considered to secure virtual machine 232A, the second virtual machine can be considered to unsafe virtual machine 232B.In certain embodiments, the ability that virtual machine 323 accesses one or more system resource can use the configuration interface produced by control program 220 or supervisory routine 202 to be configured.In other embodiments, the visit capacity that virtual machine 232 can bear can be the arbitrary result of the set checking following standard: the user of accesses virtual machine, the one or more application performed on a virtual machine, virtual machine identifier, the risk class being assigned to virtual machine based on one or more factor or any other similar standard.
In certain embodiments, dangerous virtual machine 232B can be prevented from resource that access security virtual machine 232A can access, hardware, memory location and application.Such as secure virtual machine 232C may have access to one or more corporate resource, and dangerous virtual machine 232B can not access any corporate resource.
Shown in Fig. 3 is be included in the computing equipment 201 that virtualized environment 302 performs and the embodiment performing the computing equipment 203 of virtual desktop framework (VDI) platform 310 and the system of performance monitoring system 316.The virtualized environment 302 that computing equipment 201 performs can be arbitrary virtualized environment described herein.Illustrated embodiment describes the virtualized environment 302 comprising supervisory routine 202, control virtual machine 232A, one or more additional virtual machine 232B.Control virtual machine 232A and can comprise the control program 220 communicated with the virtual disk 226A comprising metadata 322A, and control virtual machine 232A and can perform VDI client 320.Additional virtual machine 232B can perform the client operating system 230A communicated with the virtual disk 226B comprising metadata 322B.Computing equipment 201 can comprise the hardware layer 210 with supervisory routine 202 interfaces.Another computing equipment 203 can comprise VDI platform 310, this VDI platform 310 comprises one group of VDI user conversation 314 and virtual desktop agency 350, and described one group of VDI user conversation 314 comprises one or more user conversation 304A-N (being generically and collectively referred to as user conversation 304 herein).In certain embodiments, computing equipment 203 also can perform another computing equipment 203 of virtual machine manager 352. also enforceability energy supervisory system 316 of the virtual machine pool 312 can accessing one or more virtual machine 232A-N (being generically and collectively referred to as virtual machine 232 herein), and described performance monitoring system 316 comprises categorizing system 318, user job is responsible for profile storage repository 322, virtual machine index storage repository 324, virtual machine performance watch-dog 326, conversation recording storage repository 330 and session monitor 332.
With further reference to Fig. 3, in the more details of an embodiment, computing equipment 201 and another computing equipment 203 can be any computing equipments 100 described herein.In certain embodiments, computing equipment 201,203 can be computing machine or the mobile device of server 106, client computer 102 or another type.Computing equipment 201,203 can be called as the first computing machine, second computer, the 3rd computing machine etc.And computing equipment 201,203 can communicate mutually on the network of all any networks 104 as described here.As computing equipment 201,203 can be any computing machine 100 described herein, and hardware layer 210 also can be any hardware layer 210 described herein and can comprise any computer hardware described herein.
The virtualized environment 302 performed on computing equipment 201 can be any virtualized environment described herein.Especially, virtualized environment 302 can comprise the supervisory routine configuration shown in Fig. 2 A or the configuration of the supervisory routine shown in Fig. 2 B.In one embodiment, the supervisory routine 202 be comprised in virtualized environment 302 can be any supervisory routine 202, or any supervisory routine 202 described herein.In certain embodiments, supervisory routine 202 can be contained in any supervisory routine configuration of those configurations such as described by Fig. 2 A and 2B.
Fig. 3 shows the computing equipment 302 comprising virtualized environment 302, and this virtualized environment 302 comprises the control virtual machine 232 of all arbitrary control virtual machines 232 as described herein.Control the control program 220 that virtual machine 232 can perform all arbitrary control programs 220 as described here, and the virtual disk 226 of all arbitrary virtual disks 226 as described here can be comprised.Although Fig. 3 illustrates the virtualized environment 302 comprising and control virtual machine 232A and another virtual machine 232B, in certain embodiments, virtualized environment 302 can comprise any amount of virtual machine 232.Virtual machine 232 can perform the client operating system 230 of all arbitrary client operating systems 230 as described herein, and can comprise the virtual disk 226 of all arbitrary virtual disks 226 as described here.
In one embodiment, the virtual disk 226 be comprised in each virtual machine 232 also can comprise metadata 322A-B (being generically and collectively referred to as metadata 322) or associated.Virtual disk 226 can comprise, storing metadata 322 or otherwise associated.In certain embodiments, metadata 322 can be the metadata of arbitrary form, such as: electronic information, e-file, label, image, document, text, form, list or comprise any other form of electronic data of information.Metadata 322 can comprise the information about virtual disk 226, the type of such as coiling, with coil the functional characteristic, the compression scheme for coiling that are associated, or about any other information of dish.
VDI client 320 can be performed by control virtual machine 232.In certain embodiments, VDI client 320 can be performed by any virtual machine, and computing equipment 201 or supervisory routine 202 can perform VDI client 320 in other embodiments.VDI client 320 can be set up and the program of the communication link of the VDI platform 310 performed in remote computing device 203 or application.When setting up link with VDI platform 310, the resource that VDI platform 310 manages can be transmitted or download to VDI client 320 as a stream, and send VDI platform 310 information about other virtual machines 232, such as virtual machine performance index or user activity data.In certain embodiments, VDI client 320 can to communicate with sink virtual machine data with VDI platform 310.Use this virtual-machine data, VDI client 320 from this virtual-machine data instantiation, execution or otherwise can produce virtual machine.
In one embodiment, VDI client 320 uses Virtual Channel to communicate with remote computer.In other embodiments, VDI client 320 can use Virtual Channel and any client computer performed on any remote computer or any application communication.In certain embodiments, Virtual Channel can be communication port or any other communication link using ICA agreement.
Although Fig. 3 illustrates VDI client 320, virtualized environment 302 can not comprise VDI client 320 in certain embodiments.In one embodiment, VDI client 320 also can communicate with virtual machine manager 352.In certain embodiments, virtual machine manager 352 can be the XENSERVER application that Citrix Systems issues.In yet another embodiment, virtualized environment 302 can not comprise VDI client 320, but comprises control program 220, and described control program 220 applies with the deploying virtual machine performed on the remote computer or virtual machine manager communicates.
In certain embodiments, in virtualized environment 302 perform control virtual machine 232A any other virtual machine 232 or application can communicate with performance monitoring system 316 to transmit the virtual machine performance index of the virtual machine 232 for performing in virtualized environment 302.In certain embodiments, virtual machine performance index can comprise any following index: the use amount statistics of dish; Processor load is added up; Bandwidth use amount is added up; Average load is added up; Throughput statistics; About the use quantitative statistics of the computational resource in any one time cycle; Perform the time that concrete process is used; How long virtual machine has employed; The utilizability of computation of Period system resource at any time; And any other relevant virtual machine performance index.Although in certain embodiments, control virtual machine 232A and directly communicate with performance monitoring system 316, in other embodiments, control virtual machine 232A and indirectly communicated with performance monitoring system 316 by virtual machine manager 352.
In other embodiments, in virtualized environment 302 perform control virtual machine 232A any other virtual machine 232 or application directly or indirectly can communicate to transmit to performance monitoring system 316 user session information recorded with performance monitoring system 316.In certain embodiments, particular user may have access to the one or more virtual machines 232 in virtualized environment 302.Available system resource on this user-accessible virtual machine, can use the network with virtual machine interface, or otherwise mutual with virtual machine.In certain embodiments, by mutual with virtual machine, user can produce user profile, user data, user's statistics or user performance information.This user profile can be bundled in specific user or user conversation and the information that can be produced in response to the User Activity in user conversation context by interception and data and obtain.User profile can comprise: user's requested resource amount during user conversation 304; The number of applications that user accesses; The user produced by user during user conversation 304 asks caused average load amount; User identifier; Meet user and ask required amount of bandwidth; And any other relevant user performance information.
In certain embodiments, user session information can comprise the start time of recording user session and the conversation recording of end time.The user session information being transferred to performance monitoring system 316 can comprise conversation recording, and can comprise any following message in certain embodiments: user's access or the time cycle (such as, date and time) otherwise used; The user identifier of user; And the identifier of virtual machine that user accesses.
In certain embodiments, when virtual machine index is transferred to performance monitoring system 316, these indexs are recorded according to the user of accesses virtual machine or store.Such as when user stops user conversation, the user session information produced during user conversation and virtual machine index can be transferred to performance monitoring system 316.In certain embodiments, virtual machine index can be mapped in user session information by this way, and namely virtual machine index can be stored together with indicator, and described indicator indication index produces during the session described by user session information.Therefore, if virtual machine index is stored in a database, the record so comprising virtual machine index can comprise be identified in this user conversation during create the field of the user conversation of virtual machine index.This field can comprise the information about user or user conversation further.In some instances, this field can point to another record or the set of stored information, and it further describes the classification of user conversation, user, user job load profiles or user.In certain embodiments, the set of the virtual machine information stored and the combination of Session ID can be called as user job load profiles.
In other embodiments, when virtual machine index to combine with user session information in case building work load profiles or produce the record of the virtual machine index that user specifies time, virtual machine index can be deleted according to user session information or is modified.Such as, during when user session information indicating user session persistence from time A to the time of time B, any virtual machine index produced outside the time cycle lasting till time B from time A is deleted.Similarly, if extra virtual machine index is identified as producing during the time cycle lasting till time B from time A, then these indexs are affixed to stored virtual machine index.Moment when can occur in when profile to the workload profiles of the virtual machine index that user specifies or the amendment of record or record generation or after a while.In certain embodiments, the operating load record that workload profiles storage 322 (such as, performance databasies) can be stored herein performs amendment.
In one embodiment, remote computing device 203 can perform VDI platform 310.Virtual desktop framework (VDI) platform 310 can be can realize and any platform of managing virtual desktop framework.In one embodiment, VDI platform 310 can with perform on computing equipment 203 other apply or interprogram communication, and in certain embodiments, can to communicate with performance monitoring system 316.In other embodiments, VDI platform 310 can communicate with virtual machine manager 352.
VDI platform 310 can be any platform that the XEN DESKTOP product line manufactured by the Citrix Systems company of the Fort Lauderdale being positioned at Florida State provides.In one embodiment, VDI platform 310 can be the platform setting up user conversation between user and VDI platform 310.Although Fig. 3 shows the virtual machine pool outside VDI platform 310, in certain embodiments, VDI platform 310 may have access to the virtual machine 232 of virtual machine pool 312 and can distribute virtual machine 232 to user conversation.In other embodiments, VDI platform 310 can distribute virtual desktop and other similar resource to user conversation.VDI platform 310 also ALARA Principle is assigned to the virtual resource of user conversation and can performs load balance function with based on the virtual resource between multiple standards load balance user conversation.In certain embodiments, VDI platform 310 is called as virtual desktop framework, virtual desktop architecture environment or virtual desktop architecture system.
In certain embodiments, VDI platform 310 can comprise virtual desktop agency 350.In certain embodiments, virtual desktop agency 350 can receive the request to virtual machine from user and ask by asking from virtual machine pool 312 virtual machine to respond those.Although Fig. 3 illustrates the embodiment wherein performing virtual desktop agency 350 in VDI platform 310, in other embodiments, VDI platform 310 can not comprise virtual desktop agency 350.In those embodiments, VDI platform 310 can perform the function of virtual desktop agency 350.Such as, VDI platform 310 can receive the request to virtual machine, and can responsively for the user sending virtual machine request to VDI platform 310 asks virtual machine.In one embodiment, VDI platform 310 can to the user conversation transfer of virtual machine of user or user, and virtual machine manager 352 can to the user conversation transfer of virtual machine of user or user in other embodiments.
In certain embodiments, VDI platform 310 ALARA Principle user conversation pond or user conversation group 314 (being generically and collectively referred to as user conversation pond 314 herein).User conversation pond or group 314 can be included in the one or more user conversations 304 created between user and VDI platform 310.In certain embodiments, when use the user be positioned at away from the client computing device of computing equipment 203 ask virtual desktop or virtual machine, or request access virtual desktop or virtual machine time, user conversation 304 can be produced.In other embodiments, user conversation 304 can be created when user signs in VDI platform 310 by remote client computer.Still comprise the user conversation 304 created when user's request accesses available application or resource by virtual machine or virtual desktop in other embodiments.
In certain embodiments, user conversation 304 can be the session between computing equipment 203 and the user of client computer, or the session between VDI platform 310 and the user of client computer.In one embodiment, in response to the user's request logging in user's request of VDI platform 310, access application or resource, or the user's request to virtual machine and virtual desktop, VDI platform 310 can create user conversation 304.User can access some aspects of VDI platform 310 from user conversation 304, and similarly, in user conversation 304, user can be mutual with the virtual machine 232 being assigned to user.
Computing equipment 203 can store and/or perform pond or the group (being generically and collectively referred to as virtual machine pool 312 herein) of virtual machine.This virtual machine pool or group can comprise one, two or more virtual machine 232.In certain embodiments, virtual machine 232 can be virtual machine template, and when virtual machine template is continuously streamed or download to virtualized environment 302, virtual machine template can be configured and perform produce or instantiation virtual machine 232.In other embodiments, virtual machine 232 can be the set of executable instruction, application or other computational resources, described in be integrated into when being continuously streamed or downloading in virtualized environment 302, can be configured and perform produce or instantiation virtual machine 232.Although Fig. 3 illustrates wherein virtual machine pool 312 and does not rely on Another application and the embodiment existed, in certain embodiments virtual machine pool 312 can manage by virtual machine manager 352.Still in other embodiments, virtual machine pool 312 can be stored and be performed in the context of virtual machine manager 352.Still in other embodiments, virtual machine pool 312 can be maintained on the remote computer.Still in other embodiments, virtual machine pool 312 can be safeguarded by the virtual machine manager 352 performed on the remote computer.Such as, virtual machine pool 312 can by perform on the remote computer XENSERVER application safeguard.Still in other embodiments, virtual machine pool 312 can be safeguarded by VDI platform 310.These embodiments any one in, VDI platform 310 can be able to ask this application to make certain virtual machine in virtual machine pool 312 become available with the application communication in managing virtual machines pond 312.
Computing equipment 203 also can perform virtual machine manager 352.Virtual machine manager 352 according to one group of standard configuration virtual machine and otherwise can distribute virtual machine to user.In certain embodiments, virtual machine manager 352 can communicate with performance monitoring system 316 to obtain user job load profiles, the classification of user, virtual machine index, user session information or other user's indexs or virtual machine index.Virtual machine manager 352 can use this information to determine how configuring virtual machine, which virtual machine are assigned to user or user conversation or where perform virtual machine.In certain embodiments, virtual machine manager 352 can managing virtual machines pond 312.In other embodiments, virtual machine manager 352 can be the XENSERVER application that Citrix Systems issues.Although Fig. 3 illustrates the virtual machine manager 352 performed on uniform machinery with VDI platform 310 and performance monitoring system 316, virtual machine manager 352 can perform on the remote machine in other embodiments.
In certain embodiments, virtual machine manager 352 distributes virtual machine can to the user of user conversation and user conversation.Distribute virtual machine to user conversation or user can comprise generation virtual machine or select virtual machine.When distribution comprises generation or configuring virtual machine, virtual machine manager 352 can create virtual machine according to user's request.These demands can be transmitted by any other set of user, user conversation, keeper, user profiles or virtual machine standard.In certain embodiments, the assembly of virtual machine dynamically can be determined according to the User Activity in past.Still in other embodiments, virtual machine can be configured according to the classification of user or produce at least in part, and such as users classification is severe, moderate or slight user.When distribution comprises selection virtual machine, virtual machine manager 352 can select virtual machine from the pond of existing virtual machine.This selection can be made according to the classification of user or user conversation standard, user profiles, user or similar information.
In certain embodiments, computing equipment 203 can execution performance supervisory system 316.In certain embodiments, VDI platform 310 can communicate with performance monitoring system 316.In other embodiments, the application interface that performance monitoring system 316 can be appeared by VDI platform 310 communicates with VDI platform 310, or is communicated with VDI platform 310 by the intercommunication passage set up between VDI platform 310 and performance monitoring system 316.In one embodiment, performance monitoring system 316 performs outside VDI platform 310, and performance monitoring system 316 is performed as the independent utility not relying on VDI platform 310.In other embodiments, performance monitoring system 316 can be contained in VDI platform 310.Still in other embodiments, VDI platform 310 and performance monitoring system 316 can perform on the computing machine separated, and such VDI platform 310 can perform on a computer and performance monitoring system 316 performs on the second computer away from the first computing machine.In this embodiment, the application interface that VDI platform 310 is shown by Virtual Channel and/or VDI platform 310 and/or performance monitoring system 316 communicates with the performance monitoring system 316 on network.
Virtual machine indication information and user session information can be shared between VDI platform 310 and performance monitoring system 316.In certain embodiments, when VDI platform 310 receives the VDI session informations that record of agency 306 or virtual machine index, that information can be forwarded to performance monitoring system 316 by VDI platform 310.In other embodiments, performance monitoring system 316 by application interface or communication channel and VDI platform 310 mutual, make performance monitoring system 316 can substantially automatic reception VDI act on behalf of 306 record and be transferred to any virtual machine indication information or the user session information of VDI platform 310.Still in other embodiments, VDI agency 306 can directly to the performance monitoring system 316 transfer of virtual machine indication information on remote computer 203 and user session information.Still in other embodiments, performance monitoring system 316 directly can receive user session information and/or virtual machine indication information from virtualized environment 302.
Performance monitoring system 316 can comprise virtual machine index storage repository 324 and conversation recording storage repository 330.In one embodiment, virtual machine index storage repository 324 can be database or other storage repository of storage virtual machine index.Virtual machine index 324 can virtual machine corresponding to it and being stored, and in certain embodiments, also can be stored according to the user of accesses virtual machine, and such as virtual machine can be stored for particular user.Performance monitoring system 316 also can comprise conversation recording and store 330.In certain embodiments, conversation recording stores 330 and stores user session information.User session information can user corresponding to session information and being stored.In other embodiments, user session information can user corresponding to session information and virtual machine and be stored.Although Fig. 3 illustrates conversation recording separately and stores 330 and virtual machine index storage 324, user session information and virtual machine indication information can be stored in same warehouse in certain embodiments.
In certain embodiments, performance monitoring system 316 can comprise user job load profiles storage 322.User job load profiles stores 322 can store the user job load produced from user session information and virtual machine index.In certain embodiments, it can be independent storage repository that user job load profiles stores 322, and in other embodiments, user job load profiles store 322 can with conversation recording store 330 or virtual machine index store 324 and be combined into single storage repository.Still in other embodiments, user job load profiles stores 322 and can store user job load profiles according to the user of correspondence and/or virtual machine.In certain embodiments, user job load profiles can refer to the record of the virtual machine index that user specifies.These indexs can be the virtual machine performance data be associated with particular user or user conversation.In certain embodiments, user job load profiles can comprise the pointer pointing to particular user or user conversation.This pointer for be identified in store in another record, storage repository or database user profile, user session information or user classified information.
Performance monitoring system 316 also can comprise virtual machine performance watch-dog 326 and session monitor 332.In certain embodiments, virtual machine performance watch-dog 326 and session monitor 332 inquire about virtual machine performance index and user session information to the control program 220 in virtualized environment 302.In other embodiments, virtual machine performance watch-dog 326 and session monitor 332 directly can obtain virtual machine performance index and user session information from VDI platform 310.Still in other embodiments, virtual machine performance watch-dog 326 and session monitor 332 can obtain virtual machine performance index and user session information from the VDI client 320 performed virtualized environment 302.Although Fig. 3 shows virtual machine performance watch-dog 326 separately and session monitor 332, in certain embodiments, the two respective function can by an independent watch-dog process.In certain embodiments, virtual machine performance index be asked and be obtained to virtual machine performance watch-dog 326 can.When receiving virtual machine performance index, virtual machine performance watch-dog 326 can store the index received in virtual machine storage repository 324.Session monitor 332 can be asked and be obtained user session information.When receiving user session information, session monitor 332 can store at conversation recording the session information that in 330, storage receives.
In certain embodiments, performance monitoring system 316 can comprise categorizing system 318, and described categorizing system 318 can according to user job load profiles sorted users, and described user job load profiles can be stored in user job load profiles and store in 322.Categorizing system 318 can be browsed user job load profiles data and use these data that user is divided into one or more class.These classification can be predefined or dynamically can produce according to the user job load profiles data stored in user job load profiles storage 322.Such as, users classification can be " slightly ", " moderate " or " severe " user according to the workload profiles of each user by categorizing system 318.In certain embodiments, classification reflects the resource quantity that each user consumes.Such as, classification can reflect usual the used disk size of particular user, the network bandwidth or cpu cycle.In one embodiment, classification " slightly ", " moderate " or " severe " can comprise determines that the using portion of user exceedes number percent or the multiple of predetermined threshold values.
Shown in Fig. 4 is for recording virtual machine index and an embodiment of the method 400 these indexs be associated with user.VDI platform 310 or virtual desktop agency 350 can receive user's request (step 402) logging in VDI platform 310.As response, VDI platform 310 can initialising subscriber session (step 404) and virtual machine manager 352 can distribute virtual machine (step 406) to user.Then, VDI platform 310 can transmit to performance monitoring system 316 information (step 408) that virtual machine has been transferred to user by instruction, and then, performance monitoring system 316 can for user identifier record virtual machine index (step 410).
With further reference to Fig. 4, and in the more details of some embodiments, method 400 can comprise user's request (step 402) receiving and log in VDI platform 310.In certain embodiments, user's request is by using the user of remote client computer to send.User's request can be the request logging in VDI platform 310, and in other embodiments, request can be the request to virtual machine, the request to desktop or perform the request of application.In one embodiment, user's request tackled by VDI platform 310, and virtual desktop agency 350 interception user request in other embodiments.
VDI platform 310 or virtual desktop agency 350 respond (step 404) by initialising subscriber session to reception user request.In certain embodiments, this user conversation can be associated with the user sending this request or otherwise represent the user sending this request.Therefore, the user session information of user conversation can be the information of the User Activity represented in user conversation.In certain embodiments, VDI platform 310 can start new user conversation for user, and VDI platform 310 can restart the user conversation be associated with user of institute's buffer memory in other embodiments.
In certain embodiments, during initialization user conversation, VDI platform 310 can ask virtual machine manager 352 to distribute or designated virtual machine (step 406) to user.Distribute virtual machine to user and can comprise streaming, download or otherwise to the user conversation transfer of virtual machine of user.In certain embodiments, VDI platform 310 receive the user of virtual machine is asked time, be transferred to the request that user distributes virtual machine.In other embodiments, VDI platform 310 when initialising subscriber session, can be transferred to the request that user distributes virtual machine.
When to the user conversation transfer of virtual machine of user, instruction virtual machine can be assigned to the information transmission of user to performance monitoring system (step 408).In certain embodiments, VDI platform 310 also can be transferred to the user conversation of user by notified virtual machine.Still in other embodiments, method 400 can not comprise the step of notice performance monitoring system 316; But virtual machine manager 352 can be performance monitoring system 316 and manages acquisition user session information and virtual machine index.The identifier of transfer of virtual machine, the feature of virtual machine or other identifying informations can be comprised to the information of user conversation transfer of virtual machine to performance monitoring system 316 or VDI platform transmission instruction.Identifier can be virtual machine ID, virtual machine title, virtual machine sequence number or other identifiers.Virtual machine feature can comprise the type and size of the virtual disk be comprised in virtual machine, the operating system be comprised in virtual machine, the virtual cpu be comprised in virtual machine, be comprised in the application in virtual machine and be transferred to any other feature of virtual machine of user conversation of user.
The user session information that recording responses asks initialising subscriber session to produce in user and be assigned to the virtual machine index (step 410) of virtual machine of user conversation.Although method 400 comprises the step of recording user session information and virtual machine index, this step can comprise for user identifier record virtual machine index in certain embodiments.In these embodiments, can not recording user session information.But, record user identifications can accord with and use user identifier for particular user storage virtual machine index.In certain embodiments, virtual machine index can by perform in virtual machine control program 220, VDI client 320 or application any one record.When user conversation stops, virtual machine index can be transferred to any one of VDI platform 310, virtual machine manager 352 or performance monitoring system 316.In other embodiments, during user conversation, virtual machine index can be transmitted or transmit as a stream any one of VDI platform 310, virtual machine manager 352 or performance monitoring system 316.Similarly, user session information can by perform in virtual machine control program 220, VDI client 320 or application any one record.When user conversation stops or user conversation the term of execution, user session information can be transmitted or transmit as a stream any one of VDI platform 310, virtual machine manager 352 or performance monitoring system 316.Be continuously streamed or be transferred in the embodiment of VDI platform 310 or virtual machine manager 352 at user conversation and/or virtual machine index, this information and index can be transferred to performance monitoring system 316, and these information and index are finally stored in performance monitoring system 316 and for generation of user job load profiles.
Shown in Fig. 5 A is an embodiment of method 500 for distributing virtual machine to user or user conversation.VDI platform 310 or virtual desktop agency 350 receive user's request (step 504) to virtual machine or virtual desktop, then send the request (step 508) to virtual machine virtual desktop proxy response.Distribute virtual machine (step 512) to the user conversation of the user sending request, and virtual desktop agency 350 receives the information (step 516) about distributed virtual machine.Then, virtual desktop agency 350 is by distributed virtual machine notice performance monitoring system 316 (step 520).
With further reference to Fig. 5 A, and in the more details of some embodiments, VDI platform 310 or virtual desktop agency 350 receive the request (step 504) to virtual machine.This request can be that the client computer of being accessed by user, user conversation or user or the client computer performing user conversation send.In certain embodiments, this request can make VDI platform 310 authenticated and initialising subscriber session.In other embodiments, user can send the request to virtual machine after initialising subscriber session.In certain embodiments, this request can comprise information such as: the application that user asks; User identifier; User name; User conversation identifier; User use to send the hardware configuration of the client computer of request; User use to send the type of the operating system of the execution on the client computer of request or the type of supervisory routine; First-selected CPU configuration; Or other such information.
When the request is received, VDI platform 310 or virtual desktop agency 350 send the request (step 508) to virtual machine.This request can directly be sent to virtual machine pool 312, or can be sent to virtual machine manager 352 in certain embodiments.In certain embodiments, virtual desktop agency 350 can comprise the information of the client computer of accessing about user, user conversation, initial user request, user, or other the such information to virtual machine request.In other embodiments, when receiving the virtual machine request from virtual desktop agency 350, the information of the client computer that virtual machine manager 352 can use to VDI platform 310 or virtual desktop agency 350 inquiry about user, user or user conversation.
Virtual machine manager 352, in response to reception request, obtains information and distributes virtual machine (step 512) to user conversation.In certain embodiments, virtual machine manager 352 first from performance monitoring system 316 obtain following any one: for sending the workload profiles of the user of request; Or for the classification of the user that sends request.Virtual machine manager 352 is by transmitting user identifier to performance monitoring system 316, and such as, user name or user ID, obtain this information.And then performance monitoring system 316 can use user identifier to store 322 retrieval user workload profiles from workload profiles, and uses user identifier from the classification of categorizing system 318 retrieval user.In a further embodiment, virtual machine manager 352 can obtain information or any specific configuration information of identifying of user in the request of the client computer used about user from VDI platform 310.Use the information that obtains from performance monitoring system 316 and/or VDI platform 310, virtual machine manager 352 can produce and/or configuring virtual machine or select virtual machine.In the embodiment of virtual machine manager 352 configuring virtual machine, virtual machine manager 352 transmits according to obtained information configuration virtual machine and to the user conversation of user or transmits this virtual machine as a stream.Select in the embodiment of virtual machine at virtual machine manager 352, virtual machine manager 352 retrieve about available virtual machine information, select to process the virtual machine of the operating load of user, and this virtual machine can be transmitted to the user conversation of user.Such as, if workload profiles designated user is severe user, so virtual machine manager 352 can select the virtual machine that can adapt to severe user.Still in other embodiments, virtual machine manager 352 can select virtual machine and according to this virtual machine of specified configuration of user.Described in Fig. 5 B is the further embodiment of distributing virtual machine (step 512) to user conversation.
When being assigned with virtual machine to user conversation, virtual machine manager 352 can by this virtual machine notice virtual desktop agency 350 or VDI platform 310 (step 516).This notice can comprise the message that instruction virtual machine has been assigned to the user conversation of user.In other embodiments, this notice can comprise the identifier of the virtual machine that user distributes.Still in other embodiments, this notice can comprise the list of the feature of virtual machine.Other embodiments also can comprise the notice comprising above-mentioned any combination.
In certain embodiments, method 500 also comprises the step (step 520) of distributed virtual machine notice performance monitoring system 316.In other embodiments, method 500 can not comprise this step.
Shown in Fig. 5 B is an embodiment of method 550 for distributing virtual machine to user according to the classification of user or user job load profiles.Virtual machine manager 352 can receive the request (step 554) to virtual machine.When receiving this request, virtual machine manager 352 can be classification or the workload profiles (step 556) of asking the user of virtual machine to identify user, and virtual machine manager 352 can distribute virtual machine (step 558) according to the classification of user and/or workload profiles to user.
With further reference to Fig. 5 B, and in the more details of some embodiments, method 550 can be performed by virtual machine manager 352.In other embodiments, method 550 can be performed by VDI platform 310.
In certain embodiments, virtual machine manager 352 can receive the request (step 554) to virtual machine.In other embodiments, virtual machine pool can receive the request to virtual machine.This request can be sent by user or user conversation and can customer identification information be comprised, such as, user identifier.Still in other embodiments, this request can be sent in receiving the request from user conversation by virtual desktop proxy response.
When receiving the request to virtual machine, virtual machine pool or virtual machine manager 352 can be user and identify users classification and/or workload profiles (step 556).Receive in the request in the embodiment of user identifier at virtual machine manager 352, virtual machine manager 352 can use this user identifier to obtain users classification and/or workload profiles for user.In other embodiments, virtual machine manager 352 can directly to the identifier of VDI platform 310 or user conversation inquiring user.Acquisition users classification and/or workload profiles can comprise inquires about to performance monitoring system 316, categorizing system 318 or user job load profiles storage 322 information be associated with particular user.By storing any one transmission user identifier of 322 to categorizing system 318, performance monitoring system 316 and/or user job load profiles, these entities can obtain the information be associated with the user corresponding to user identifier, such as record.Such as, performance monitoring system 316 can receive the user identifier of user, and can obtain the workload profiles stored for this user identifier and/or the users classification stored for this user identifier.Store information for identifier can comprise and use user identifier to mark or flag data or be stored in same record or as metadata store together with other information by user identifier.The workload profiles obtained and/or users classification then can be sent back to virtual machine manager 352 or virtual machine pool.In other embodiments, virtual machine manager 352 or virtual machine pool can retrieve workload profiles and/or users classification.
When identifying workload profiles and/or users classification for user, virtual machine manager 352 can distribute virtual machine (step 558) to user.Distribute virtual machine to user can comprise to the user conversation of user distribution virtual machine.In certain embodiments, virtual machine manager 352 can distribute virtual machine to the user sending request, and VDI platform 310 can distribute virtual machine to user in other embodiments.In these embodiments, virtual machine information can be forwarded to VDI platform 310 by virtual machine manager 352, and then this virtual machine information can be transferred to the user conversation of user by VDI platform 310.Distribute virtual machine to user can comprise generation and configure new virtual machine, and then transmit this virtual machine to the user conversation of user.Distribute virtual machine to user in other embodiments can comprise select virtual machine from the pond of existing virtual machine, and then to user user conversation transmission selected by virtual machine.Select or to produce and/or configuring virtual machine can realize according to any set of user, computing equipment or virtual machine standard.
In certain embodiments, distribute virtual machine to user to realize according to the classification of user.In these embodiments, virtual machine manager 352 can use obtained class of subscriber to determine and which virtual machine is distributed to user.Such as, if user is slight user, the virtual machine being applicable to slight user can be assigned to the user conversation of user or user.
In other embodiments, distribute virtual machine to user to realize according to the analysis of the workload profiles to user.When obtaining the workload profiles of user, virtual machine manager 352 can determine that whether user is slight, moderate or severe user by analytical work load profiles.When the classification of user is determined, virtual machine manager 352 can use determined classification to distribute suitable virtual machine to user.
Being for sorted users and upgrading an embodiment of the method 600 of workload profiles shown in Fig. 6.Performance monitoring system 316 can receive user conversation stop notice (step 604) and responsively recording user session information (step 608) and record virtual machine index (step 612).Then, performance monitoring system 316 can use user session information and virtual machine index to upgrade workload profiles (step 616), and uses workload profiles to classify (step 620) to user.
With further reference to Fig. 6, and in the more details of some embodiments, performance monitoring system 316 cocoa receives the notice (step 604) that user conversation stops.In certain embodiments, performance monitoring system 316 can receive this notice from virtual machine manager 352, and in other embodiments, performance monitoring system 316 can receive this notice from VDI platform 310.In certain embodiments, this notice can comprise user conversation identifier, user identifier and/or virtual machine identifier.Performance monitoring system 316 can use these identifiers to identify, store and retrieve the information be associated with this user afterwards, such as, and user identifier and/or virtual machine index.In certain embodiments, the application performed in performance monitoring system 316 can receive this notice.Such as, in one embodiment, session monitor 332 is from performance monitoring system 316 or the notice directly receiving user conversation termination from VDI platform 310 or virtual machine manager 352.Still in other embodiments, when the session monitor 332 of direct termination performance supervisory system 316, this notice can be sent by user conversation.
Session monitor 332, in response to the notice receiving user conversation termination, is then stopped conversation recording user session information (step 608).Any one that can comprise from following source of recording user session information obtains user session information: virtual machine manager 352; VDI platform 310; VDI client 320; Or from the storage repository the client computer that the user of stopped user conversation uses.In certain embodiments, user conversation the term of execution, user session information can be streamed to performance monitoring system 316.In these embodiments, recording user session information can comprise from temporary storage cell retrieval user session information and is stored in conversation recording storage 330 or stops certain record in (close out) conversation recording storage 330.In many examples, recording user session information can comprise and user session information is stored in together with identification marking user conversation record and stores in 330, and described identification marking indicating user session information carrys out the user conversation of the user identified in self termination notice.Although session monitor 332 recording user session information in one embodiment, but performance monitoring system 316 or the Another application recording user session information that performs in the context of performance monitoring system 316 in other embodiments.
Then, performance monitoring system 316 can record virtual machine index (step 612).Virtual machine index is the index of virtual machine for accessing user conversation (user conversation such as, stopped) period user or performance data.These indexs can comprise any machine index described herein or performance data.In certain embodiments, performance monitoring system 316 or any application of performing in the context of performance monitoring system 316 can record virtual machine index.In other embodiments, virtual machine performance watch-dog 326 can storage virtual machine index.Any one that can comprise from following source of storage virtual machine index obtains virtual machine index: virtual machine manager 352; VDI platform 310; VDI client 320; Or from the storage repository the client computer that the user of stopped user conversation uses.In certain embodiments, user conversation the term of execution, virtual machine index can be streamed to performance monitoring system 316.In these embodiments, record virtual machine index can comprise from temporary storage cell retrieval virtual machine index and be stored in virtual machine index storage 324 or stop certain record in virtual machine index storage 324.In many examples, record virtual machine index can comprise and virtual machine index is stored in virtual machine index together with identification marking stores in 324, and described identification marking instruction virtual machine index produces during the user conversation stopping the user identified in notice.User and/or user conversation also may correspond to the virtual machine stopping identifying in notice, thus this user accesses this virtual machine during user conversation.
In certain embodiments, performance monitoring system 316 can use recorded user session information and the user of virtual machine index to stopped user conversation to upgrade user job load profiles (step 616).Upgrade user job load profiles can comprise be stored in user conversation during the virtual machine index that produces and by the user of those virtual machine Index Mappings to user conversation.Virtual machine Index Mappings can be comprised mark to user or otherwise user identifier is associated with virtual machine index.In other embodiments, virtual machine Index Mappings can be comprised to user virtual machine index is associated with user conversation record.In certain embodiments, performance monitoring system 316 uses the user identifier be comprised in termination notice to store 322 from user job load profiles and obtains user job load profiles.When acquisition corresponds to the user job load profiles of the user of stopped user conversation, performance monitoring system 316 then can use recorded virtual machine index to upgrade the user job load profiles obtained.In certain embodiments, upgraded user job load profiles then can be stored in user job load profiles storage 322 by performance monitoring system 316.In other embodiments, performance monitoring system 316 can store upgraded user job load profiles after categorizing system 318 pairs of users classification.In one embodiment, the process upgrading user job load profiles can be performed by categorizing system 318.
The categorizing system 318 performed in the context of performance monitoring system 316 can use upgraded workload profiles to classify (step 620) to user.In certain embodiments, once user job load profiles is updated, the notice that reception user can be classified by categorizing system 318.User may be classified, and thus, carries out classifying can comprising using reflect that the new classification of the virtual machine index recorded is to upgrade the classification of user to user.The classification of user can be represent user conversation during any value of resource quantity of using of user.In certain embodiments, these values can be slight, moderate and severe user, and its mild or moderate user uses considerably less resource and severe user uses quite a large amount of resources.Resource can comprise computation period, any other computational resource of internal memory use amount and user's access.The one group of threshold values can specified based on keeper, or make if whether user is the determination of slight, moderate or severe user according to one group of threshold values that historical data is empirically determined.To user carry out classify can comprise the user checking stopped user conversation workload profiles, to user specify classification and this classification is stored in storage repository.
Although described with reference to the accompanying drawings and illustrated some example embodiment, should be appreciated that these embodiments are only illustrative and be not limited to method and system described herein.Additionally, method and system described herein or their Partial Feature can be realized in hardware, programmable device, firmware, software or combinations thereof.The part of method and system described herein or method and system described herein also can at such as magnetic medium (such as, hard disk driver, floppy drive), realize in the readable storage medium of the processor of light medium (CD, digital versatile disc) or semiconductor storage medium (volatile with non-volatile) or machine-readable medium.

Claims (22)

1. for distributing the method for virtual machine according to users classification, wherein according to the first user session information of history and virtual machine performance index to users classification, described method comprises:
The notice of first user session termination is received, first user session access first virtual machine by the session monitor performed on computing machine;
By the termination record first user session information of session monitor in response to first user session;
Obtain the first virtual machine performance index for the first virtual machine from virtual machine performance watch-dog, wherein, the first virtual machine described in described first virtual machine performance index expression is applied to the load be selected on the machine performing this first virtual machine;
First user session information and the first virtual machine performance index is used to upgrade first user workload profiles by Network Performance Monitor;
According to first user workload profiles, the first user corresponding to first user session is classified;
By virtual desktop framework from the request of first user reception to virtual machine; And
In response to reception described request, the classification according to first user distributes virtual machine to first user.
2. the process of claim 1 wherein that reception notification also comprises to be received by the session monitor performed outside virtual desktop framework.
3. the process of claim 1 wherein that classification also comprises of to be categorized as by first user according to first user workload profiles in severe user, moderate user and slight user.
4. the process of claim 1 wherein that renewal first user workload profiles also comprises recorded first user session information is mapped in the first obtained virtual machine performance index.
5. the method for claim 1, also comprises and the classification of first user being stored in storage repository.
6. the process of claim 1 wherein that classification also comprises to be classified by the sort module that the computing machine outside virtual desktop framework performs.
7. the method for claim 1, also comprises:
Receive the notice that the second user conversation stops, described second user conversation accesses the second virtual machine;
Record the second user session information;
Obtain the second virtual machine performance index being used for the second virtual machine; And
The second user session information and the second virtual machine performance index is used to upgrade the second user job load profiles.
8. the method for claim 7, also comprises and classifying to the second user corresponding to the second user conversation according to the second user job load profiles.
9. the process of claim 1 wherein that distributing virtual machine to first user also comprises by virtual desktop framework from virtual machine manager request virtual machine, described virtual machine manager distributes virtual machine according to the classification of first user.
10. the process of claim 1 wherein that distribution virtual machine also comprises the classification configurations virtual machine according to first user.
11. the process of claim 1 wherein that distribution virtual machine also comprises the categorizing selection virtual machine according to first user.
12. for distributing the system of virtual machine according to the classification of user, wherein according to the first user session information of history and virtual machine performance index to users classification, described system comprises:
The session monitor that computing machine performs, for:
Receive the notice of first user session termination, first user session access first virtual machine,
First user session information is recorded in termination in response to first user session, and
Obtain the first virtual machine performance index for the first virtual machine from virtual machine performance watch-dog, wherein, the first virtual machine described in described first virtual machine performance index expression is applied to the load be selected on the machine performing this first virtual machine;
Network Performance Monitor:
First user session information and the first virtual machine performance index is used to upgrade first user workload profiles,
Wherein according to first user workload profiles, the first user corresponding to first user session is classified; And
The virtual desktop framework that computing machine performs, for:
The request to virtual machine is received from first user, and
In response to reception described request, come to distribute virtual machine to first user according to the classification of first user.
The system of 13. claims 12, wherein session monitor performs outside virtual desktop framework.
The system of 14. claims 12, wherein according to first user workload profiles, first user is classified as one in severe user, moderate user and slight user.
The system of 15. claims 12, wherein recorded first user session information is also mapped in the first obtained virtual machine performance index by Network Performance Monitor.
The system of 16. claims 12, also comprises the storage repository for storing first user classification.
The system of 17. claims 12, be also included in the sort module that the computing equipment outside virtual desktop framework performs, wherein sort module is classified to first user.
The system of 18. claims 12, wherein,
Network Performance Monitor
Receive the notice that the second user conversation stops, the second user conversation accesses the second virtual machine,
Record the second user session information, and
Obtain the second virtual machine performance index being used for the second virtual machine; And
Network Performance Monitor uses the second user session information and the second virtual machine performance index to upgrade the second user job load profiles.
The system of 19. claims 18, also comprises the sort module of classifying to the second user corresponding to the second user conversation according to the second user job load profiles.
The system of 20. claims 12, wherein virtual desktop framework is by coming from virtual machine manager request virtual machine to distribute virtual machine to first user, and virtual machine manager distributes virtual machine according to the classification of first user to first user.
The system of 21. claims 20, wherein virtual machine manager is by coming according to the classification configurations virtual machine of first user to distribute virtual machine to first user.
The system of 22. claims 20, wherein virtual machine manager is by coming according to the categorizing selection virtual machine of first user to distribute virtual machine to first user.
CN201110148568.4A 2010-10-12 2011-06-01 Allocating virtual machines according to user-specific virtual machine metrics Active CN102446121B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/902,542 US8856783B2 (en) 2010-10-12 2010-10-12 Allocating virtual machines according to user-specific virtual machine metrics
US12/902542 2010-10-12

Publications (2)

Publication Number Publication Date
CN102446121A CN102446121A (en) 2012-05-09
CN102446121B true CN102446121B (en) 2015-04-15

Family

ID=44503493

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110148568.4A Active CN102446121B (en) 2010-10-12 2011-06-01 Allocating virtual machines according to user-specific virtual machine metrics

Country Status (4)

Country Link
US (3) US8856783B2 (en)
EP (1) EP2442226B1 (en)
CN (1) CN102446121B (en)
HK (1) HK1168162A1 (en)

Families Citing this family (183)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9069599B2 (en) * 2008-06-19 2015-06-30 Servicemesh, Inc. System and method for a cloud computing abstraction layer with security zone facilities
US9489647B2 (en) 2008-06-19 2016-11-08 Csc Agility Platform, Inc. System and method for a cloud computing abstraction with self-service portal for publishing resources
US9021046B2 (en) * 2010-01-15 2015-04-28 Joyent, Inc Provisioning server resources in a cloud resource
US9244705B1 (en) * 2010-05-28 2016-01-26 Bromium, Inc. Intelligent micro-virtual machine scheduling
US10095530B1 (en) 2010-05-28 2018-10-09 Bromium, Inc. Transferring control of potentially malicious bit sets to secure micro-virtual machine
US9386021B1 (en) 2011-05-25 2016-07-05 Bromium, Inc. Restricting network access to untrusted virtual machines
US8972980B2 (en) 2010-05-28 2015-03-03 Bromium, Inc. Automated provisioning of secure virtual execution environment using virtual machine templates based on requested activity
US8752047B2 (en) 2010-05-28 2014-06-10 Bromium, Inc. Automated management of virtual machines to process untrusted data based on client policy information
US9116733B2 (en) 2010-05-28 2015-08-25 Bromium, Inc. Automated provisioning of secure virtual execution environment using virtual machine templates based on requested activity
US8364820B2 (en) * 2010-06-01 2013-01-29 Cisco Technology Inc. Data center resource usage and cost determination
US9729464B1 (en) 2010-06-23 2017-08-08 Brocade Communications Systems, Inc. Method and apparatus for provisioning of resources to support applications and their varying demands
US8631406B2 (en) * 2010-06-30 2014-01-14 Sap Ag Distributed cloud computing architecture
US20150106813A1 (en) * 2010-10-21 2015-04-16 Brocade Communications Systems, Inc. Method and apparatus for provisioning of resources to support applications and their varying demands
US8707083B2 (en) * 2010-12-03 2014-04-22 Lsi Corporation Virtualized cluster communication system
US20120185527A1 (en) * 2010-12-22 2012-07-19 Aventura Hq, Inc. Distributed virtual desktop architecture
US8621081B2 (en) * 2010-12-29 2013-12-31 Verizon Patent And Licensing Inc. Hypervisor controlled user device that enables available user device resources to be used for cloud computing
US10003672B2 (en) * 2011-02-09 2018-06-19 Cisco Technology, Inc. Apparatus, systems and methods for deployment of interactive desktop applications on distributed infrastructures
FR2972548B1 (en) * 2011-03-08 2013-07-12 Thales Sa DEVICE FOR IMPROVING FAULT TOLERANCE OF A PROCESSOR
US8555276B2 (en) 2011-03-11 2013-10-08 Joyent, Inc. Systems and methods for transparently optimizing workloads
US8806483B2 (en) * 2011-04-13 2014-08-12 International Business Machines Corporation Determining starting values for virtual machine attributes in a networked computing environment
KR101228424B1 (en) * 2011-05-18 2013-01-31 백인호 System for virtual desktop file access service used in mobile device and method for the same
US9052953B2 (en) * 2011-05-23 2015-06-09 Citrix Systems, Inc. Autonomous computer session capacity estimation
US10546118B1 (en) 2011-05-25 2020-01-28 Hewlett-Packard Development Company, L.P. Using a profile to provide selective access to resources in performing file operations
US9251481B2 (en) * 2011-06-13 2016-02-02 Accenture Global Services Limited Distributed metering and monitoring system
ITMI20111209A1 (en) * 2011-06-30 2012-12-31 Ibm MONITORING AT USER LEVEL IN A CLOUDING ENVIRONMENT
US8910128B2 (en) * 2011-07-19 2014-12-09 Salesforce.Com, Inc. Methods and apparatus for application performance and capacity analysis
US9590820B1 (en) 2011-09-02 2017-03-07 Juniper Networks, Inc. Methods and apparatus for improving load balancing in overlay networks
US8635152B2 (en) 2011-09-14 2014-01-21 Microsoft Corporation Multi tenancy for single tenancy applications
US20130067469A1 (en) * 2011-09-14 2013-03-14 Microsoft Corporation Load Balancing By Endpoints
US8701174B1 (en) * 2011-09-27 2014-04-15 Emc Corporation Controlling access to a protected resource using a virtual desktop and ongoing authentication
US8694786B2 (en) * 2011-10-04 2014-04-08 International Business Machines Corporation Virtual machine images encryption using trusted computing group sealing
US20130093776A1 (en) * 2011-10-14 2013-04-18 Microsoft Corporation Delivering a Single End User Experience to a Client from Multiple Servers
US9311160B2 (en) 2011-11-10 2016-04-12 Verizon Patent And Licensing Inc. Elastic cloud networking
US9235856B2 (en) * 2011-11-10 2016-01-12 Verizon Patent And Licensing Inc. Providing overlay networks via elastic cloud networking
US9218212B2 (en) * 2011-11-11 2015-12-22 International Business Machines Corporation Pairing physical devices to virtual devices to create an immersive environment
US8782224B2 (en) 2011-12-29 2014-07-15 Joyent, Inc. Systems and methods for time-based dynamic allocation of resource management
CA2764354A1 (en) 2012-01-16 2013-07-16 Giovanni J. Morelli Host-emulator bridge system and method
CA2764362A1 (en) * 2012-01-16 2013-07-16 Giovanni J. Morelli Rdp session monitor/control system and application
CA2764283A1 (en) 2012-01-16 2013-07-16 Giovanni J. Morelli Mobile device control application for improved security and diagnostics
US20130191882A1 (en) * 2012-01-19 2013-07-25 Sap Ag Access control of remote communication interfaces based on system-specific keys
JP5659318B2 (en) * 2012-04-11 2015-01-28 株式会社日立国際電気 Wireless system, wireless base station, and management apparatus
US9251181B2 (en) * 2012-06-18 2016-02-02 International Business Machines Corporation Dynamic map template discovery and map creation
TWI470550B (en) * 2012-06-26 2015-01-21 Wistron Corp Communication method of virtual machines and server-end system
WO2014016845A1 (en) * 2012-07-25 2014-01-30 Hewlett-Packard Development Company L.P. Computer device and method for converting gesture
US20140047114A1 (en) * 2012-08-13 2014-02-13 Cisco Technology, Inc. Virtual desktop policy control
US9298512B2 (en) 2012-08-25 2016-03-29 Vmware, Inc. Client placement in a computer network system using dynamic weight assignments on resource utilization metrics
US10225164B2 (en) * 2012-09-07 2019-03-05 Oracle International Corporation System and method for providing a cloud computing environment
EP2895953B1 (en) * 2012-09-12 2019-03-27 Greeneden U.S. Holdings II, LLC System and method for providing dynamic elasticity of contact center resources
US9336030B1 (en) * 2012-09-18 2016-05-10 Amazon Technologies, Inc. Placement and tuning of virtual machines
US9262188B1 (en) * 2012-09-19 2016-02-16 Emc Corporation Virtual asset management in data center
US9098617B1 (en) * 2012-09-27 2015-08-04 Emc Corporation Data analytics lifecycle automation
US9729614B2 (en) * 2012-10-01 2017-08-08 Datacastle Corporation Resilient data node for improving distributed data management and bandwidth utilization
US9342353B2 (en) * 2012-10-06 2016-05-17 International Business Machines Corporation Techniques for implementing information services with tenant specific service level agreements
US20140108647A1 (en) * 2012-10-11 2014-04-17 Brocade Communications Systems, Inc. User Feedback in Network and Server Monitoring Environments
US9575618B2 (en) * 2012-10-19 2017-02-21 Google Inc. Multi-user process management
US9104463B2 (en) * 2012-11-07 2015-08-11 International Business Machines Corporation Automated and optimal deactivation of service to enable effective resource reusability
US9912812B2 (en) 2012-11-21 2018-03-06 Genesys Telecommunications Laboratories, Inc. Graphical user interface for configuring contact center routing strategies
US9912813B2 (en) 2012-11-21 2018-03-06 Genesys Telecommunications Laboratories, Inc. Graphical user interface with contact center performance visualizer
CN104995615B (en) * 2012-12-27 2018-03-30 英特尔公司 The reservation and execution mirror image write-in of local computing device
US9262493B1 (en) 2012-12-27 2016-02-16 Emc Corporation Data analytics lifecycle processes
US9569233B2 (en) 2012-12-31 2017-02-14 F5 Networks, Inc. Elastic offload of prebuilt traffic management system component virtual machines
US9608933B2 (en) * 2013-01-24 2017-03-28 Hitachi, Ltd. Method and system for managing cloud computing environment
US9251115B2 (en) * 2013-03-07 2016-02-02 Citrix Systems, Inc. Dynamic configuration in cloud computing environments
US10142406B2 (en) 2013-03-11 2018-11-27 Amazon Technologies, Inc. Automated data center selection
US10313345B2 (en) 2013-03-11 2019-06-04 Amazon Technologies, Inc. Application marketplace for virtual desktops
US9002982B2 (en) 2013-03-11 2015-04-07 Amazon Technologies, Inc. Automated desktop placement
US9104456B2 (en) 2013-03-14 2015-08-11 Joyent, Inc. Zone management of compute-centric object stores
US8826279B1 (en) 2013-03-14 2014-09-02 Joyent, Inc. Instruction set architecture for compute-based object stores
US8943284B2 (en) 2013-03-14 2015-01-27 Joyent, Inc. Systems and methods for integrating compute resources in a storage area network
US8677359B1 (en) 2013-03-14 2014-03-18 Joyent, Inc. Compute-centric object stores and methods of use
US9282124B2 (en) 2013-03-14 2016-03-08 Twilio, Inc. System and method for integrating session initiation protocol communication in a telecommunications platform
US8881279B2 (en) 2013-03-14 2014-11-04 Joyent, Inc. Systems and methods for zone-based intrusion detection
US8793688B1 (en) * 2013-03-15 2014-07-29 Joyent, Inc. Systems and methods for double hulled virtualization operations
US9503527B1 (en) * 2013-03-15 2016-11-22 Cisco Technology, Inc. Personalized phone registration based on virtual desktop infrastructure
US8775485B1 (en) 2013-03-15 2014-07-08 Joyent, Inc. Object store management operations within compute-centric object stores
US9092238B2 (en) 2013-03-15 2015-07-28 Joyent, Inc. Versioning schemes for compute-centric object stores
WO2014153649A1 (en) 2013-03-28 2014-10-02 Sphere 3D Inc. Systems and methods for providing an emulator
DE112013007000B4 (en) * 2013-05-20 2020-09-10 Mitsubishi Electric Corporation Supervisory control device
US9584364B2 (en) 2013-05-21 2017-02-28 Amazon Technologies, Inc. Reporting performance capabilities of a computer resource service
US20140359127A1 (en) * 2013-06-03 2014-12-04 Microsoft Corporation Zero touch deployment of private cloud infrastructure
US9710291B2 (en) 2013-06-19 2017-07-18 Empire Technology Development Llc Processor-optimized library loading for virtual machines
US9684866B1 (en) 2013-06-21 2017-06-20 EMC IP Holding Company LLC Data analytics computing resource provisioning based on computed cost and time parameters for proposed computing resource configurations
US10623243B2 (en) 2013-06-26 2020-04-14 Amazon Technologies, Inc. Management of computing sessions
US10686646B1 (en) 2013-06-26 2020-06-16 Amazon Technologies, Inc. Management of computing sessions
US20150006730A1 (en) * 2013-06-27 2015-01-01 Sap Ag Enabling multi-tenant virtual servers in a cloud system
US10545775B2 (en) * 2013-06-28 2020-01-28 Micro Focus Llc Hook framework
US9811435B2 (en) * 2013-09-03 2017-11-07 Cisco Technology, Inc. System for virtual machine risk monitoring
US9235630B1 (en) 2013-09-25 2016-01-12 Emc Corporation Dataset discovery in data analytics
US9495195B2 (en) * 2013-10-04 2016-11-15 Hitachi, Ltd. Resource migration between virtual containers based on utilization rate and performance degradation
US9912570B2 (en) 2013-10-25 2018-03-06 Brocade Communications Systems LLC Dynamic cloning of application infrastructures
US20150130815A1 (en) * 2013-11-11 2015-05-14 Amazon Technologies, Inc. Multiple parallel graphics processing units
US9582904B2 (en) 2013-11-11 2017-02-28 Amazon Technologies, Inc. Image composition based on remote object data
US9578074B2 (en) 2013-11-11 2017-02-21 Amazon Technologies, Inc. Adaptive content transmission
US9641592B2 (en) 2013-11-11 2017-05-02 Amazon Technologies, Inc. Location of actor resources
US9634942B2 (en) 2013-11-11 2017-04-25 Amazon Technologies, Inc. Adaptive scene complexity based on service quality
US9413830B2 (en) 2013-11-11 2016-08-09 Amazon Technologies, Inc. Application streaming service
US9805479B2 (en) 2013-11-11 2017-10-31 Amazon Technologies, Inc. Session idle optimization for streaming server
US9604139B2 (en) 2013-11-11 2017-03-28 Amazon Technologies, Inc. Service for generating graphics object data
US10430614B2 (en) 2014-01-31 2019-10-01 Bromium, Inc. Automatic initiation of execution analysis
US9405572B2 (en) * 2014-04-07 2016-08-02 International Business Machines Corporation Optimized resource allocation and management in a virtualized computing environment
WO2015172107A1 (en) 2014-05-09 2015-11-12 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
US10432699B2 (en) * 2014-06-26 2019-10-01 Vmware, Inc. Crowd-sourced operational metric analysis of virtual appliances
RU2656815C1 (en) * 2014-06-28 2018-06-06 Хуавэй Текнолоджиз Ко., Лтд. Method and device for network resource balancing
KR101613130B1 (en) * 2014-08-08 2016-04-18 숭실대학교산학협력단 Multi smartphone and control method thereof
US10055240B2 (en) 2014-09-23 2018-08-21 At&T Intellectual Property I, L.P. Service creation and management
US10257184B1 (en) * 2014-09-29 2019-04-09 Amazon Technologies, Inc. Assigning policies for accessing multiple computing resource services
US9766917B2 (en) * 2014-10-29 2017-09-19 Red Hat Israel, Ltd. Limited virtual device polling based on virtual CPU pre-emption
US9411628B2 (en) * 2014-11-13 2016-08-09 Microsoft Technology Licensing, Llc Virtual machine cluster backup in a multi-node environment
US10176098B2 (en) 2014-11-17 2019-01-08 Hitachi, Ltd. Method and apparatus for data cache in converged system
US10897616B2 (en) * 2014-12-08 2021-01-19 Harmonic, Inc. Dynamic allocation of CPU cycles vis-a-vis virtual machines in video stream processing
US9430269B1 (en) 2015-02-09 2016-08-30 International Business Machines Corporation Feedback analysis for virtual machines manager scheduling
US10897793B2 (en) 2015-03-18 2021-01-19 Nec Corporation Communication system, communication apparatus, communication method, and non-transitory medium
US9870260B2 (en) 2015-03-20 2018-01-16 International Business Machines Corporation Managing a set of assets for a user in a shared pool of configurable computing resources
US9699205B2 (en) * 2015-08-31 2017-07-04 Splunk Inc. Network security system
US10055241B1 (en) 2015-09-04 2018-08-21 Cisco Technology, Inc. Virtual machine aware fibre channel
US10079799B2 (en) * 2015-10-14 2018-09-18 Cisco Technology, Inc. Using domain name server queries for managing access control lists
DE212016000022U1 (en) 2015-10-23 2017-08-21 Traeger Pellet Grills, Llc Smoke generation Dangerous Preparations system
US10455022B2 (en) 2015-10-23 2019-10-22 Traeger Pellet Grills, Llc Cloud system for controlling outdoor grill with mobile application
US10791208B2 (en) * 2015-10-23 2020-09-29 Traeger Pellet Grills, Llc Mobile application for controlling outdoor grill
US11825010B2 (en) * 2015-10-23 2023-11-21 Traeger Pellet Grills, Llc Mobile application for controlling outdoor grill
US9678785B1 (en) 2015-11-30 2017-06-13 International Business Machines Corporation Virtual machine resource allocation based on user feedback
US10547559B2 (en) * 2015-12-26 2020-01-28 Intel Corporation Application-level network queueing
US10037221B2 (en) 2015-12-28 2018-07-31 Amazon Technologies, Inc. Management of virtual desktop instance pools
US10719305B2 (en) 2016-02-12 2020-07-21 Nutanix, Inc. Virtualized file server tiers
JP6620595B2 (en) * 2016-02-25 2019-12-18 富士通株式会社 Information processing system, information processing apparatus, management apparatus, processing program, and processing method
US11218418B2 (en) 2016-05-20 2022-01-04 Nutanix, Inc. Scalable leadership election in a multi-processing computing environment
US9898328B2 (en) * 2016-06-06 2018-02-20 Vmware, Inc. Auto-adaptive virtual desktop persistence
CN106020936A (en) * 2016-06-07 2016-10-12 深圳证券通信有限公司 Virtual machine dispatching method and device for financial cloud platform on basis of operating loads
US10382456B2 (en) 2016-09-19 2019-08-13 Citrix Systems, Inc. Remote computing system providing malicious file detection and mitigation features for virtual machines
US20180136985A1 (en) * 2016-11-17 2018-05-17 International Business Machines Corporation Asset placement management in a shared pool of configurable computing resources
US11562034B2 (en) 2016-12-02 2023-01-24 Nutanix, Inc. Transparent referrals for distributed file servers
US10824455B2 (en) 2016-12-02 2020-11-03 Nutanix, Inc. Virtualized server systems and methods including load balancing for virtualized file servers
US10728090B2 (en) 2016-12-02 2020-07-28 Nutanix, Inc. Configuring network segmentation for a virtualization environment
US11568073B2 (en) 2016-12-02 2023-01-31 Nutanix, Inc. Handling permissions for virtualized file servers
US11294777B2 (en) 2016-12-05 2022-04-05 Nutanix, Inc. Disaster recovery for distributed file servers, including metadata fixers
US11281484B2 (en) 2016-12-06 2022-03-22 Nutanix, Inc. Virtualized server systems and methods including scaling of file system virtual machines
US11288239B2 (en) 2016-12-06 2022-03-29 Nutanix, Inc. Cloning virtualized file servers
CN106815060A (en) * 2017-01-19 2017-06-09 携程旅游网络技术(上海)有限公司 Virtual machine distribution method and system
US11150936B2 (en) * 2017-01-23 2021-10-19 Hysolate Ltd. Techniques for binding user identities to appropriate virtual machines with single sign-on
US10699003B2 (en) 2017-01-23 2020-06-30 Hysolate Ltd. Virtual air-gapped endpoint, and methods thereof
US11010352B2 (en) * 2017-01-23 2021-05-18 Hysolate Ltd. Unified file system on air-gapped endpoints
US11153322B2 (en) 2017-01-23 2021-10-19 Hysolate Ltd. Techniques for seamlessly launching applications in appropriate virtual machines
US10567548B2 (en) * 2017-01-25 2020-02-18 Wipro Limited System and method for determining service prioritization in virtual desktop infrastructure
US10237294B1 (en) 2017-01-30 2019-03-19 Splunk Inc. Fingerprinting entities based on activity in an information technology environment
US10334030B2 (en) * 2017-03-31 2019-06-25 A10 Networks, Inc. Load balancing between computing clouds
US10620930B2 (en) 2017-05-05 2020-04-14 Servicenow, Inc. Software asset management
AU2018200022B2 (en) * 2017-05-05 2019-04-18 Servicenow, Inc. Software asset management
US20210336839A1 (en) * 2017-05-24 2021-10-28 3S International, Llc. Method of scaling reliability of computing network
US20190068478A1 (en) * 2017-08-28 2019-02-28 Lakeside Software, Inc. System and method for collecting performance and usage data from computing devices
US10832213B2 (en) * 2017-10-06 2020-11-10 Citrix Systems, Inc. System and method for managing a workspace environment of a computer processing system
CN109656646B (en) * 2017-10-11 2022-05-24 阿里巴巴集团控股有限公司 Remote desktop control method, device, equipment and virtualization chip
CN109753338B (en) * 2017-11-06 2023-03-21 阿里巴巴集团控股有限公司 Virtual GPU (graphics processing Unit) utilization rate detection method and device
WO2019135773A1 (en) * 2018-01-08 2019-07-11 Hewlett-Packard Development Company, L.P. Brokering servers based on remote access performance
US10728343B2 (en) 2018-02-06 2020-07-28 Citrix Systems, Inc. Computing system providing cloud-based user profile management for virtual sessions and related methods
US10389550B1 (en) 2018-04-10 2019-08-20 Cisco Technology, Inc. Priority tagging based solutions in FC SANs independent of target priority tagging capability
US20190317825A1 (en) * 2018-04-16 2019-10-17 Kazuhm, Inc. System for managing deployment of distributed computing resources
CN108762885B (en) * 2018-04-27 2023-01-20 北京奇艺世纪科技有限公司 Virtual machine creating method and device, management equipment and terminal equipment
US11086826B2 (en) 2018-04-30 2021-08-10 Nutanix, Inc. Virtualized server systems and methods including domain joining techniques
US11824785B2 (en) 2018-05-04 2023-11-21 Citrix Systems, Inc. Systems and methods for remote computing session display based upon user input event prioritization
US11036525B2 (en) 2018-05-04 2021-06-15 Citrix Systems, Inc. Computer system providing hierarchical display remoting optimized with user and system hints and related methods
US11194680B2 (en) 2018-07-20 2021-12-07 Nutanix, Inc. Two node clusters recovery on a failure
US11036555B2 (en) * 2018-07-25 2021-06-15 Vmware, Inc. Virtual processor allocation with execution guarantee
US11770447B2 (en) 2018-10-31 2023-09-26 Nutanix, Inc. Managing high-availability file servers
US11012374B2 (en) 2019-05-20 2021-05-18 Citrix Systems, Inc. Systems and methods for virtual session connection using component-based connection leases
US11362943B2 (en) 2019-05-20 2022-06-14 Citrix Systems, Inc. System and method for validating virtual session requests
US20200394084A1 (en) * 2019-06-13 2020-12-17 Citrix Systems, Inc. Systems and methods for controlling delivery of notifications on a per user basis
US11044174B2 (en) 2019-08-26 2021-06-22 Citrix Systems, Inc. Systems and methods for disabling services in a cluster
US11467775B2 (en) 2019-10-15 2022-10-11 Hewlett Packard Enterprise Development Lp Virtual persistent volumes for containerized applications
US11385922B2 (en) * 2019-10-16 2022-07-12 EMC IP Holding Company LLC Elastic cloud service with data driven cost reduction for VMS in the cloud
US10817328B1 (en) 2020-01-30 2020-10-27 Coupang Corp. Systems and methods for virtual server resource usage metric evaluation and performance tracking
US10817329B1 (en) 2020-02-07 2020-10-27 Coupang Corp. Systems and methods for centralization and diagnostics for live virtual server performance data
US11687267B2 (en) 2020-04-14 2023-06-27 Hewlett Packard Enterprise Development Lp Containerized application manifests and virtual persistent volumes
US11768809B2 (en) 2020-05-08 2023-09-26 Nutanix, Inc. Managing incremental snapshots for fast leader node bring-up
US11693573B2 (en) 2020-06-18 2023-07-04 Hewlett Packard Enterprise Development Lp Relaying storage operation requests to storage systems using underlying volume identifiers
CN111861383A (en) * 2020-06-29 2020-10-30 国网河北省电力有限公司景县供电分公司 On-line home office safety platform
US11960773B2 (en) * 2020-07-31 2024-04-16 Hewlett Packard Enterprise Development Lp Modifying virtual persistent volumes based on analysis of performance metrics
US20220156124A1 (en) * 2020-08-31 2022-05-19 Turbonomic, Inc. Systems and methods for managing resources in a virtual desktop infrastructure
EP4268073A1 (en) * 2020-12-23 2023-11-01 Services Pétroliers Schlumberger Delivering applications via an on-demand virtual machine system
KR20220106435A (en) 2021-01-22 2022-07-29 주식회사 피아몬드 Method and system for collecting user inforamtion according to providing virtual desktop infrastructure service
CN115242637B (en) * 2021-04-23 2023-10-17 深圳富联富桂精密工业有限公司 Remote desktop gateway allocation method, computer device and storage medium
TWI778597B (en) * 2021-04-23 2022-09-21 新加坡商鴻運科股份有限公司 Deployment method of remote desktop gateways, computer device, and storage medium
US11924089B2 (en) * 2022-01-31 2024-03-05 Microsoft Technology Licensing, Llc Convergence for time sensitive cloud applications

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101313278A (en) * 2005-12-02 2008-11-26 国际商业机器公司 Maintaining session states within virtual machine environments
CN101410803A (en) * 2006-01-24 2009-04-15 思杰系统有限公司 Methods and systems for providing access to a computing environment
CN101656718A (en) * 2008-08-18 2010-02-24 英业达股份有限公司 Network server system and method for establishing and starting virtual machine thereof

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2002351911A1 (en) * 2001-11-07 2003-05-19 Harald Kuck Providing isolation through process attachable virtual machines
JP4119239B2 (en) * 2002-12-20 2008-07-16 株式会社日立製作所 Computer resource allocation method, resource management server and computer system for executing the method
US7299468B2 (en) * 2003-04-29 2007-11-20 International Business Machines Corporation Management of virtual machines to utilize shared resources
US20070008884A1 (en) 2003-10-08 2007-01-11 Bob Tang Immediate ready implementation of virtually congestion free guarantedd service capable network
US8549149B2 (en) * 2004-12-30 2013-10-01 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP multiplexing
US7756972B2 (en) 2005-12-06 2010-07-13 Cisco Technology, Inc. System for power savings in server farms
JP4367406B2 (en) * 2005-12-12 2009-11-18 株式会社日立製作所 Computer allocation method
US8151323B2 (en) * 2006-04-12 2012-04-03 Citrix Systems, Inc. Systems and methods for providing levels of access and action control via an SSL VPN appliance
US20080059556A1 (en) 2006-08-31 2008-03-06 Egenera, Inc. Providing virtual machine technology as an embedded layer within a processing platform
US9354960B2 (en) * 2010-12-27 2016-05-31 Red Hat, Inc. Assigning virtual machines to business application service groups based on ranking of the virtual machines
US9300598B2 (en) * 2007-10-03 2016-03-29 Virtela Technology Services Incorporated Virtualized application acceleration infrastructure
WO2009055368A2 (en) * 2007-10-21 2009-04-30 Citrix Systems, Inc. Systems and methods to adaptively load balance user sessions to reduce energy consumption
US8868675B2 (en) * 2008-12-04 2014-10-21 Cisco Technology, Inc. Network optimization using distributed virtual resources
US20100146506A1 (en) * 2008-12-08 2010-06-10 Electronics And Telecommunications Research Institute SYSTEM AND METHOD FOR OFFERING SYSTEM ON DEMAND (SoD) VIRTUAL-MACHINE
US7996525B2 (en) * 2008-12-31 2011-08-09 Sap Ag Systems and methods for dynamically provisioning cloud computing resources
US8336049B2 (en) * 2009-02-05 2012-12-18 Vmware, Inc. Virtual machine utility computing method and system
US8291416B2 (en) * 2009-04-17 2012-10-16 Citrix Systems, Inc. Methods and systems for using a plurality of historical metrics to select a physical host for virtual machine execution
US8289975B2 (en) 2009-06-22 2012-10-16 Citrix Systems, Inc. Systems and methods for handling a multi-connection protocol between a client and server traversing a multi-core system
US8387060B2 (en) * 2009-10-01 2013-02-26 Dell Products L.P. Virtual machine resource allocation group policy based on workload profile, application utilization and resource utilization
EP2659651B1 (en) * 2010-12-29 2019-10-23 Citrix Systems Inc. Systems and methods for policy based integration to horizontally deployed wan optimization appliances
US9384058B2 (en) * 2011-03-02 2016-07-05 Radware, Ltd. Method for executing virtual application delivery controllers having different application versions over a computing device
US9323577B2 (en) * 2012-09-20 2016-04-26 Amazon Technologies, Inc. Automated profiling of resource usage
US9231871B2 (en) * 2013-11-25 2016-01-05 Versa Networks, Inc. Flow distribution table for packet flow load balancing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101313278A (en) * 2005-12-02 2008-11-26 国际商业机器公司 Maintaining session states within virtual machine environments
CN101410803A (en) * 2006-01-24 2009-04-15 思杰系统有限公司 Methods and systems for providing access to a computing environment
CN101656718A (en) * 2008-08-18 2010-02-24 英业达股份有限公司 Network server system and method for establishing and starting virtual machine thereof

Also Published As

Publication number Publication date
HK1168162A1 (en) 2012-12-21
EP2442226B1 (en) 2013-08-07
US8856783B2 (en) 2014-10-07
US10019128B2 (en) 2018-07-10
US20150007180A1 (en) 2015-01-01
US9069438B2 (en) 2015-06-30
CN102446121A (en) 2012-05-09
EP2442226A1 (en) 2012-04-18
US20120089980A1 (en) 2012-04-12
US20150012864A1 (en) 2015-01-08

Similar Documents

Publication Publication Date Title
CN102446121B (en) Allocating virtual machines according to user-specific virtual machine metrics
US9531796B2 (en) Methods and systems for load balancing using forecasting and overbooking techniques
CN102202049B (en) Network policy implementation for multi-virtual machine appliance
US20190306026A1 (en) Client-directed placement of remotely-configured service instances
US9286087B2 (en) Storage optimization selection within a virtualization environment
US9619371B2 (en) Customized application performance testing of upgraded software
US9280683B1 (en) Multi-service cloud storage decision optimization process
US8656021B2 (en) Methods and apparatus for constructing an execution environment in which the application operates
US10498824B2 (en) Requesting storage performance models for a configuration pattern of storage resources to deploy at a client computing environment
US9203700B2 (en) Monitoring client information in a shared environment
US10601920B2 (en) Publishing configuration patterns for storage resources and storage performance models from client systems to share with client systems in a network computing environment
US20170134339A1 (en) Management of clustered and replicated systems in dynamic computing environments
US11023156B2 (en) Dynamic API allocation based on data-tagging
Kim et al. A cloud computing-based analysis system for the National R&D Information concerning with the data security
US20180246860A1 (en) Dynamic cognitive optimization of web applications
JP2023544192A (en) Tag-driven scheduling of computing resources for function execution
Banerjee et al. An approach towards amelioration of an efficient VM allocation policy in cloud computing domain
US20230056965A1 (en) Dynamic multi-stream deployment planner
US20230214253A1 (en) Method and system for managing telemetry services for composed information handling systems
US20220244994A1 (en) Resource and Asset Lifecycle Costing

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