Search

US-12625715-B2 - Method and system for a common-attribute virtual desktop infrastructure (VDI) environment with tiered memory capabilities

US12625715B2US 12625715 B2US12625715 B2US 12625715B2US-12625715-B2

Abstract

A method for managing a virtual desktop infrastructure (VDI) environment includes: obtaining a plurality of target resource specific pool specific configuration templates for a target resource, in which each of the plurality of target resource specific pool specific configuration templates is associated with one or a plurality of virtual desktop (VD) pools, in which the target resource is memory; obtaining a common configuration template set; generating a VD pool configuration for each of the plurality of VD pools using the plurality of target resource specific pool specific configuration templates and the common configuration template set to obtain a plurality of VD pool configurations; selecting a default VD pool from the plurality of VD pools; and deploying, based on the selection, a plurality of VDs into the default VD pool using a VD pool configuration associated with the default VD pool.

Inventors

  • John Kelly
  • Dharmesh M. Patel

Assignees

  • DELL PRODUCTS L.P.

Dates

Publication Date
20260512
Application Date
20220418

Claims (19)

  1. 1 . A method for managing a virtual desktop infrastructure (VDI) environment, the method comprising: obtaining a plurality of target resource specific pool specific configuration templates for a target resource, wherein each of the plurality of target resource specific pool specific configuration templates is associated with one of a plurality of virtual desktop (VD) pools, wherein the target resource is memory, wherein the plurality of target resource specific pool specific configuration templates is generated based a user's preference identifying names of applications, a type of a VD image, a version of the VD image, wherein the VD image is a preconfigured image of an operating system and accessibility of the user to the VD image depends on a configuration defined by an administrator, wherein a service manager stores at least one migration criterion of a default VD pool issued by the administrator; obtaining a common configuration template set; generating a VD pool configuration for each of the plurality of VD pools using the plurality of target resource specific pool specific configuration templates and the common configuration template set to obtain a plurality of VD pool configurations; selecting, based on the user's preference, a default VD pool from the plurality of VD pools; deploying, based on the selection, a plurality of VDs into the default VD pool using a VD pool configuration associated with the default VD pool; after the deploying: migrating, based on a determination, a VD of the plurality of VDs that requires additional target resource amount from the default VD pool to a target VD pool of the plurality of VD pools, wherein a type of the target resource of the default VD pool and a type of the target resource of the target VD pool are the same.
  2. 2 . The method of claim 1 , further comprising: monitoring each of the plurality of VDs to obtain target resource utilization information; and making a second determination, based on the target resource utilization information, that at least one migration criterion of the default VD pool is satisfied, wherein the target VD pool is a second VD pool with higher target resource amount, wherein the target VD pool is associated with a VD pool configuration of the plurality of VD pool configurations, and wherein the VD pool configuration is associated with a target resource specific pool specific configuration template that is different than a target resource specific pool specific configuration template associated with the default VD pool.
  3. 3 . The method of claim 2 , wherein making the second determination that at least the one migration criterion of the default VD pool is satisfied comprises: comparing the target resource utilization information of each of the plurality of VDs with at least the one migration criterion of the default VD pool.
  4. 4 . The method of claim 2 , wherein at least the one migration criterion comprises memory access time service level agreement threshold value.
  5. 5 . The method of claim 1 , wherein each of the plurality of target resource specific pool specific configuration templates comprises target resource related VD pool configuration parameters.
  6. 6 . The method of claim 1 , wherein the memory is dynamic random access memory.
  7. 7 . The method of claim 1 , wherein the common configuration template set comprises non-target resource related VD pool configuration parameters.
  8. 8 . A method for managing a virtual desktop infrastructure (VDI) environment, the method comprising: obtaining a plurality of target resource specific pool specific configuration templates for a target resource, wherein each of the plurality of target resource specific pool specific configuration templates is associated with one of a plurality of virtual desktop (VD) pools, wherein the target resource is memory, wherein the plurality of target resource specific pool specific configuration templates is generated based a user's preference identifying names of applications, a type of a VD image, a version of the VD image, wherein the VD image is a preconfigured image of an operating system and accessibility of the user to the VD image depends on a configuration defined by an administrator, wherein a service manager stores at least one migration criterion of a default VD pool issued by the administrator; obtaining a common configuration template set; generating a VD pool configuration for each of the plurality of VD pools using the plurality of target resource specific pool specific configuration templates and the common configuration template set to obtain a plurality of VD pool configurations; selecting, based on the user's preference, a default VD pool from the plurality of VD pools; deploying, based on the selection, a plurality of VDs into the default VD pool using a VD pool configuration associated with the default VD pool; monitoring each of the plurality of VDs to obtain target resource utilization information, wherein the target resource utilization information is associated with the target resource; making a determination, based on the target resource utilization information, that at least one migration criterion of the default VD pool is satisfied; making a second determination, based on the determination, that an additional target resource amount is required; and migrating, based on the second determination, a VD of the plurality of VDs that requires the additional target resource amount from the default VD pool to a target VD pool of the plurality of VD pools, wherein a type of the target resource of the default VD pool and a type of the target resource of the target VD pool are the same, wherein the target VD pool is a second VD pool with higher target resource amount, wherein the target VD pool is associated with a VD pool configuration of the plurality of VD pool configurations, and wherein the VD pool configuration is associated with a target resource specific pool specific configuration template that is different than a target resource specific pool specific configuration template associated with the default VD pool.
  9. 9 . The method of claim 8 , wherein making the determination that at least the one migration criterion of the default VD pool is satisfied comprises: comparing the target resource utilization information of each of the plurality of VDs with at least the one migration criterion of the default VD pool.
  10. 10 . The method of claim 8 , wherein at least the one migration criterion comprises memory access time service level agreement threshold value.
  11. 11 . The method of claim 8 , wherein each of the plurality of target resource specific pool specific configuration templates comprises target resource related VD pool configuration parameters.
  12. 12 . The method of claim 8 , wherein the memory is persistent memory.
  13. 13 . The method of claim 8 , wherein the common configuration template set comprises non-target resource related VD pool configuration parameters.
  14. 14 . A non-transitory computer readable medium comprising computer readable program code, which when executed by a computer processor enables the computer processor to perform a method for managing a virtual desktop infrastructure (VDI) environment, the method comprising: obtaining a plurality of target resource specific pool specific configuration templates for a target resource, wherein each of the plurality of target resource specific pool specific configuration templates is associated with one of a plurality of virtual desktop (VD) pools, wherein the target resource is memory, wherein the plurality of target resource specific pool specific configuration templates is generated based a user's preference identifying names of applications, a type of a VD image, a version of the VD image, wherein the VD image is a preconfigured image of an operating system and accessibility of the user to the VD image depends on a configuration defined by an administrator, wherein a service manager stores at least one migration criterion of a default VD pool issued by the administrator; obtaining a common configuration template set; generating a VD pool configuration for each of the plurality of VD pools using the plurality of target resource specific pool specific configuration templates and the common configuration template set to obtain a plurality of VD pool configurations; selecting, based on the user's preference, a default VD pool from the plurality of VD pools; deploying, based on the selection, a plurality of VDs into the default VD pool using a VD pool configuration associated with the default VD pool; after the deploying: migrating, based on a determination, a VD of the plurality of VDs that requires additional target resource amount from the default VD pool to a target VD pool of the plurality of VD pools, wherein a type of the target resource of the default VD pool and a type of the target resource of the target VD pool are the same.
  15. 15 . The non-transitory computer readable medium of claim 14 , further comprising: monitoring each of the plurality of VDs to obtain target resource utilization information; and making a second determination, based on the target resource utilization information, that at least one migration criterion of the default VD pool is satisfied, wherein the target VD pool is a second VD pool with higher target resource amount, wherein the target VD pool is associated with a VD pool configuration of the plurality of VD pool configurations, and wherein the VD pool configuration is associated with a target resource specific pool specific configuration template that is different than a target resource specific pool specific configuration template associated with the default VD pool.
  16. 16 . The non-transitory computer readable medium of 15 , wherein making the second determination that at least the one migration criterion of the default VD pool is satisfied comprises: comparing the target resource utilization information of each of the plurality of VDs with at least the one migration criterion of the default VD pool.
  17. 17 . The non-transitory computer readable medium of 15 , wherein at least the one migration criterion comprises memory access time service level agreement threshold value.
  18. 18 . The non-transitory computer readable medium of 14 , wherein each of the plurality of target resource specific pool specific configuration templates comprises target resource related VD pool configuration parameters.
  19. 19 . The non-transitory computer readable medium of 14 , wherein the common configuration template set comprises non-target resource related VD pool configuration parameters.

Description

BACKGROUND Computing devices may provide services. To provide the services, the computing devices may include hardware components and software components. The software components may store information usable to provide the services using the hardware components. BRIEF DESCRIPTION OF DRAWINGS Certain embodiments of the invention will be described with reference to the accompanying drawings. However, the accompanying drawings illustrate only certain aspects or implementations of the invention by way of example, and are not meant to limit the scope of the claims. FIG. 1 shows a diagram of a system in accordance with one or more embodiments of the invention. FIG. 2 shows a diagram of a back-end device in accordance with one or more embodiments of the invention. FIG. 3 shows a relationship diagram illustrating the computing resources utilized by a virtual desktop (VD) pool in accordance with one or more embodiments of the invention. FIGS. 4.1 and 4.2 show a method for managing a common-attribute virtual desktop infrastructure (VDI) environment with tiered memory capabilities in accordance with one or more embodiments of the invention. FIGS. 5.1-5.3 show an example back-end device in accordance with one or more embodiments of the invention. FIG. 6 shows a diagram of a computing device in accordance with one or more embodiments of the invention. DETAILED DESCRIPTION Specific embodiments of the invention will now be described in detail with reference to the accompanying figures. In the following detailed description of the embodiments of the invention, numerous specific details are set forth in order to provide a more thorough understanding of one or more embodiments of the invention. However, it will be apparent to one of ordinary skill in the art that the one or more embodiments of the invention may be practiced without these specific details. In other instances, well-known features have not been described in detail to avoid unnecessarily complicating the description. In the following description of the figures, any component described with regard to a figure, in various embodiments of the invention, may be equivalent to one or more like-named components described with regard to any other figure. For brevity, descriptions of these components will not be repeated with regard to each figure. Thus, each and every embodiment of the components of each figure is incorporated by reference and assumed to be optionally present within every other figure having one or more like-named components. Additionally, in accordance with various embodiments of the invention, any description of the components of a figure is to be interpreted as an optional embodiment, which may be implemented in addition to, in conjunction with, or in place of the embodiments described with regard to a corresponding like-named component in any other figure. Throughout this application, elements of figures may be labeled as A to N. As used herein, the aforementioned labeling means that the element may include any number of items, and does not require that the element include the same number of elements as any other item labeled as A to N. For example, a data structure may include a first element labeled as A and a second element labeled as N. This labeling convention means that the data structure may include any number of the elements. A second data structure, also labeled as A to N, may also include any number of elements. The number of elements of the first data structure, and the number of elements of the second data structure, may be the same or different. Throughout the application, ordinal numbers (e.g., first, second, third, etc.) may be used as an adjective for an element (i.e., any noun in the application). The use of ordinal numbers is not to imply or create any particular ordering of the elements nor to limit any element to being only a single element unless expressly disclosed, such as by the use of the terms “before”, “after”, “single”, and other such terminology. Rather, the use of ordinal numbers is to distinguish between the elements. By way of an example, a first element is distinct from a second element, and the first element may encompass more than one element and succeed (or preceded) the second element in an ordering of elements. As used herein, the phrase operatively connected, or operative connection, means that there exists between elements/components/devices a direct or indirect connection that allows the elements to interact with one another in some way. For example, the phrase ‘operatively connected’ may refer to any direct connection (e.g., wired directly between two devices or components) or indirect connection (e.g., wired and/or wireless connections between any number of devices or components connecting the operatively connected devices). Thus, any path through which information may travel may be considered an operative connection. In general, computing resources of pooled virtual desktops (VDs) share the same (e.g., fixe