Independent access to virtual machine desktop content
First Claim
1. A virtual desktop management server computing system comprising:
- a memory;
a computer processor;
ana control layer module comprising;
first logic instructions stored in the memory that when executed on the computer processor, cause the computer processor to receive a client application request from a client device for user data stored in a remote location from the client device in a centralized datastore communicatively coupled to the server computing system; and
second logic instructions stored in the memory that when executed in response to a request from the first logic instructions, cause the computer processor to;
determine the remote location of the stored user data being requested;
determine whether the remote location of the requested user data is on a virtual disk that is associated with a virtual desktop of a first virtual machine assigned to the user that is not currently running;
in response to a determination that the first virtual machine is currently running, instruct the virtual machine to obtain the requested user data;
in response to a determination that the first virtual machine is not currently running;
identify one or more hypervisors that have access to the virtual disk stored in the centralized datastore;
select a control virtual machine that is running on one of the one or more hypervisors, wherein the control virtual machine is distinct from the first virtual machine assigned to the user, and wherein the control virtual machine, when instantiated on a particular hypervisor, provides on demand access to user data for a plurality of users located on respective virtual disks accessible by the particular hypervisor when the corresponding virtual machines are not running;
cause a connection to the control virtual machine; and
cause the control virtual machine to mount the virtual disk;
access the user data from the virtual disk; and
generate a client view of the user data;
wherein the connection to the control virtual machine, the mounting of the virtual disk, and the providing access to the requested data occurs while the virtual disk is not accessible through the associated non-running virtual machine assigned to the identified user.
4 Assignments
0 Petitions
Accused Products
Abstract
Methods, systems, and techniques for facilitating access to content stored remotely, for example, as part of a virtual machine infrastructure or elsewhere in a networked environment, using a uniform mechanism are provided. Example embodiments provide an Enhanced Virtual Desktop Management Server/System with a Content Abstraction Layer which enables users to access their data stored as part of a virtual machine environment, or replicated otherwise on a network, using a generic API. The API can be incorporated into a web browser or other third party interface to provide access to the users'"'"' data without needing to remote a bitmap representation of a virtual desktop display. Accordingly, users can access their data, applications, and settings regardless of the type of access device and regardless of whether the corresponding virtual desktop is running in the data center, provisioned in the datacenter but running on a client device, or not running at all.
-
Citations
25 Claims
-
1. A virtual desktop management server computing system comprising:
-
a memory; a computer processor;
ana control layer module comprising; first logic instructions stored in the memory that when executed on the computer processor, cause the computer processor to receive a client application request from a client device for user data stored in a remote location from the client device in a centralized datastore communicatively coupled to the server computing system; and second logic instructions stored in the memory that when executed in response to a request from the first logic instructions, cause the computer processor to; determine the remote location of the stored user data being requested; determine whether the remote location of the requested user data is on a virtual disk that is associated with a virtual desktop of a first virtual machine assigned to the user that is not currently running; in response to a determination that the first virtual machine is currently running, instruct the virtual machine to obtain the requested user data; in response to a determination that the first virtual machine is not currently running; identify one or more hypervisors that have access to the virtual disk stored in the centralized datastore; select a control virtual machine that is running on one of the one or more hypervisors, wherein the control virtual machine is distinct from the first virtual machine assigned to the user, and wherein the control virtual machine, when instantiated on a particular hypervisor, provides on demand access to user data for a plurality of users located on respective virtual disks accessible by the particular hypervisor when the corresponding virtual machines are not running; cause a connection to the control virtual machine; and cause the control virtual machine to mount the virtual disk; access the user data from the virtual disk; and generate a client view of the user data; wherein the connection to the control virtual machine, the mounting of the virtual disk, and the providing access to the requested data occurs while the virtual disk is not accessible through the associated non-running virtual machine assigned to the identified user. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A virtual desktop management server comprising:
-
a memory; a computer processor; and first logic instructions stored in the memory that when executed on the computer processor, cause the computer processor to receive a client application request, from a client device, for user data that is stored in a remote location from the client device; and second logic instructions stored in the memory that when executed in response to a request from the first logic instructions, cause the computer processor to; determine the remote location of the stored user data being requested; determine whether the remote location of the requested user data is on a target virtual disk that is associated with a virtual desktop of a first virtual machine assigned to the user that is not currently running; in response to a determination that the first virtual machine is currently running, instruct the virtual machine to obtain the requested user data; in response to a determination that the first virtual machine is not currently running; identify one or more hypervisors that have access to the virtual disk stored in the centralized datastore; select a control virtual machine that is running on one of the one or more hypervisors, wherein the control virtual machine is distinct from the first virtual machine assigned to the user, and wherein the control virtual machine, when instantiated on a particular hypervisor, provides on demand access to user data for a plurality of users located on respective virtual disks accessible by the particular hypervisor when the corresponding virtual machines are not running; cause the control virtual machine to mount the target virtual disk; access the requested user data from the target virtual disk; and generate a client view of the user data; wherein the mounting of the target virtual disk and the access of the requested user data occurring while the target virtual disk is not accessible to the user through the associated non-running virtual machine assigned to the user. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A non-transitory computer-readable storage medium containing instructions that control a computer processor in a computing system to perform a method comprising:
-
receiving a request from a client device for user data that is stored in a remote location from the client device; determining the remote location of the stored user data being requested; determining whether the remote location of the requested user data is on a target virtual disk that is associated with a virtual desktop of a first virtual machine assigned to the user that is not currently running; in response to a determination that the first virtual machine is currently running, instruct the virtual machine to obtain the requested user data; in response to a determination that the first virtual machine is not currently running; identify one or more hypervisors that have access to the target virtual disk; select a control virtual machine that is running on one of the one or more hypervisors, wherein the control virtual machine is distinct from the first virtual machine assigned to the user, and wherein the control virtual machine, when instantiated on a particular hypervisor, provides on demand access to user content for a plurality of users located on respective virtual disks accessible by the particular hypervisor when a corresponding virtual machines are not running; executing the control virtual machine without causing a connection session between the client device and the control virtual machine to be established; causing the control virtual machine to mount the target virtual disk to access the requested user data; retrieving the requested data from the virtual disk without running the non-running virtual machine assigned to the identified user, and without causing a connection session to be established by the client device to access the virtual disk; and returning the requested user data to the client device in response to the request by generating a client view of the user data while the virtual disk is not accessible through the associated non-running virtual machine assigned to the user. - View Dependent Claims (20, 21, 22, 23, 24, 25)
-
Specification