METHOD AND APPARATUS FOR PROVIDING VIRTUAL DESKTOP SERVICE

A method and an apparatus for providing a virtual desktop service to provide an optimal virtual desktop service in accordance with distances between virtualization servers and a user are provided. A virtual desktop service suitable for a request of the user is provided to the user so that loads of servers may be dispersed and power usage of the servers may be minimized. That is, in an environment where the virtualization servers that provide the virtual desktop service are locally dispersed, the virtual machines may be allocated to a virtualization server with a shortest network delay based on network distances from the virtualization servers to the user. In addition, after a server power usage amount is predicted in accordance with a virtual machine usage type of the user, a virtualization server may be selected in accordance with the prediction result.

CROSS-REFERENCE TO RELATED APPLICATION

This application claims priority to and the benefit of Korean Patent Application No. 10-2013-0083791 filed in the Korean Intellectual Property Office on Jul. 16, 2013, the entire contents of which are incorporated herein by reference.

BACKGROUND OF THE INVENTION

(a) Field of the Invention

The present invention relates to a method and an apparatus for providing a virtual desktop service in cloud computing for virtualizing a desktop.

(b) Description of the Related Art

In general, in a server virtualization computing environment, virtual machines are allocated to users based on performances and loads of resources (central processor units (CPU), memories, disk capacities, and a network) of virtualization servers. At this time, in a virtual desktop service, since screens of virtual machines are remotely transmitted to users, quality of service may vary in accordance with network delay caused by distances between dispersed users and dispersed virtualization servers.

In a dispersed network environment, a plurality of servers that provide virtual machines may be locally concentrated and may be dispersed in a wide area. When the plurality of servers are dispersed in a wide area, there are limitations of a method of allocating the virtual machines based on loads of hardware resources.

SUMMARY OF THE INVENTION

Therefore, according to an exemplary embodiment of the present invention, a method and an apparatus for allocating a virtual machine to provide a virtual desktop service in accordance with distances between virtualization servers and a user and a server usage pattern of the user are provided.

According to an exemplary embodiment of the present invention, a method of providing a virtual desktop service to a user is provided. The virtual desktop service providing method includes determining whether a plurality of virtualization servers included in a network are dispersed, when it is determined that the plurality of virtualization servers are dispersed, measuring network distances between the user and the plurality of virtualization servers, selecting at least one virtualization server among the plurality of virtualization servers based on the measured network distances, and transmitting driving commands on virtual machines to the selected virtualization server.

Selecting the virtualization server may include selecting a virtualization server with the shortest network distance among the plurality of virtualization servers.

In the virtual desktop service providing method, selecting the virtualization server may include, when m virtualization servers with the shortest network distance exist among the plurality of virtualization servers, comparing resource usage rates of the m virtualization servers with each other and selecting a virtualization server with the smallest resource usage rate.

The virtual desktop service providing method may further include, when resource usage rates of the m virtualization servers are similar to each other, comparing the numbers of virtual machines that are being driven in the m virtualization servers with each other and selecting a virtualization server with the smallest number of virtual machines that are being driven among the m virtualization servers.

The virtual desktop service providing method may further include sequentially selecting the m virtualization servers when the numbers of virtual machines that are being driven in the m virtualization servers are equal to each other.

The virtual desktop service providing method may further include, when the plurality of virtualization servers are concentrated, comparing performances of the plurality of virtualization servers with each other and selecting a virtualization server with highest performance among the plurality of virtualization servers.

According to another exemplary embodiment of the present invention, another method of providing a virtual desktop service to a user is provided. The virtual desktop service providing method includes, when a virtual desktop service request is received from the user, grouping a work type of the user, selecting a predetermined virtualization server in accordance with the grouping result, and transmitting driving commands on virtual machines to the selected virtualization server.

The virtual desktop service providing method may further include, when a virtual desktop service request is received from the user, predicting a server power usage amount in accordance with a usage pattern of the user, selecting a virtualization server based on the server power usage amount, and transmitting driving commands on virtual machines to the selected virtualization server.

In the virtual desktop service providing method, predicting the server power usage amount may include calculating the usage pattern through an average resource usage amount of the user in a predetermined period.

In the virtual desktop service providing method, calculating the usage pattern may include calculating the usage pattern by a data mining technique.

According to another exemplary embodiment of the present invention, an apparatus for providing a virtual desktop service to a user is provided. The virtual desktop service providing apparatus includes a distance measurer for, when a plurality of virtualization servers included in a network are dispersed, measuring network distances between the user and the plurality of virtualization servers, a scheduler for selecting at least one virtualization server among the plurality of virtualization servers as a virtualization server for driving virtual machines in accordance with a policy and transmitting driving commands on the virtual machines to the selected virtualization server, and a service provider for, when the virtual machines are driven, providing the virtual desktop service to the user.

In the virtual desktop service providing apparatus, the scheduler may select a virtualization server with the shortest measured network distance.

In the virtual desktop service providing apparatus, when m virtualization servers with the shortest measured network distance exist, the scheduler may compare resource usage rates of the m virtualization servers with each other to select a virtualization server with a smallest resource usage rate.

In the virtual desktop service providing apparatus, when the resource usage rates of the m virtualization servers are similar to each other, the scheduler may select a virtualization server with the smallest number of virtual machines that are being driven.

In the virtual desktop service providing apparatus, when the numbers of virtual machines that are being driven in the m virtualization servers are equal to each other, the scheduler may sequentially select the m virtualization servers.

In the virtual desktop service providing apparatus, the scheduler may predict a server power usage amount in accordance with a usage pattern of the user, and may select a virtualization server based on the predicted server power usage amount.

In the virtual desktop service providing apparatus, the scheduler may calculate the usage pattern through an average resource usage amount of the user in a predetermined period.

DETAILED DESCRIPTION OF THE EMBODIMENTS

In the entire specification, unless explicitly described to the contrary, the word “comprise” and variations such as “comprises” or “comprising” will be understood to imply the inclusion of stated elements but not the exclusion of any other elements. In addition, the terms “. . . unit”, “. . . er”, “module”, and “block” described in the specification mean units for processing at least one function or operation, which may be realized by hardware, software, or a combination of hardware and software.

FIG. 1is a view illustrating a virtual desktop service according to an exemplary embodiment of the present invention.

Referring toFIG. 1, a network that provides a virtual desktop service includes a management server110and a plurality of virtualization servers120connected to the management server.

The management server110may provide a virtual desktop realized by the plurality of virtualization servers120to users100through a wide area network (WAN) or a local area network (LAN).

The management server110includes a distance measurer111, a policy memory112, a scheduler113, a database114, and a service provider115.

The distance measurer111measures distances between users and the plurality of virtualization servers120connected to the management server110. At this time, “the distances” may be distances on a network (i.e., network distances) between the users and the virtualization servers120.

The policy memory112may provide a policy to the scheduler113when the management server110selects at least one virtualization server among the plurality of virtualization servers120in order to provide the virtual desktop service to the users. The policy may be provided to the scheduler113with reference to information such as addresses of the virtualization servers120stored in the database114and allocation states of virtual machines121.

The scheduler113selects a virtualization server120in accordance with the policy to transmit execute commands on virtual machines121to the selected virtualization server120and to store the result in the database114.

In the database114, information such as the addresses of the virtualization servers120, selection states of the virtualization servers120, and states of the virtual machines121allocated to each of the virtualization servers120are stored. In addition, in the database114, information such as service usage patterns of the users and power usage amounts of the virtualization servers120may be stored.

The service provider115may provide a virtual desktop service to the users when virtual machines121are allocated to the virtualization server120selected by the scheduler113.

The virtualization server120may drive the virtual machines121for providing the virtual desktop service to the users. That is, a hypervisor122of the virtualization server120may emulate the virtual machines121using hardware123included in the virtualization server120.

In addition, the virtualization server120includes an agent124for receiving a request from the scheduler113of the management server110to allocate the virtual machines. The agent124may deliver usage amount information of various resources (a central processor unit (CPU), a memory, a network, and a disk) of the virtualization server120, and allocation states and power usage statues of the virtual machines121to the database114of the management server110.

FIGS. 2 and 3are flowcharts illustrating processes of providing a virtual desktop service according to an exemplary embodiment of the present invention.

Referring toFIGS. 2 and 3, first, when a user requests a virtual desktop service from the management server110through a communication network (S201), the scheduler113of the management server110selects a virtualization server120in which virtual machines are to be driven. At this time, the scheduler113may select a plurality of virtualization servers120in a similar range. According to an exemplary embodiment of the present invention, when resource usage rates of the virtualization servers are less than 50%, it is determined that virtualization servers whose resource usage rates are within ±5% are in a similar range, when resource usage rates of the virtualization servers are no less than 50% and less than 70%, it is determined that virtualization servers whose resource usage rates are within ±2% are in a similar range, and when resource usage rates of the virtualization servers are no less than 70%, it is determined that virtualization servers whose resource usage rates are within ±1% are in a similar range.

First, the management server110determines whether a usage pattern of a user is input to the database114(S202) to predict a server power usage amount in accordance with the input usage pattern (S203). Then, the management server110may select the virtualization server120in accordance with the predicted server power usage amount (S204).

The usage pattern of the user is calculated through an average usage amount of resources used by the user for a predetermined period. The usage pattern of the user may be calculated by a data mining technique.

For example, there is a large probability that a user who uses a virtual machine all day is in charge of work related to web searching. In this case, a network usage amount is large and all performances of a CPU and a memory that are allocated are not used. The user is estimated to have a network type (NT) user usage pattern. That is, after averaging usage amounts of resources such as a CPU, a memory, a network, and a disk used by the user, when the average value is substituted for a power usage predicting technique, a server power usage amount of the user may be predicted. User patterns such as a CPU type (CT), a network type (NT), a memory type (MT), and a disk type (DT) may exist.

However, when the usage pattern of the user is not input to the database114, the management server110considers a dispersion degree of the virtualization servers120(S205) to measure distances between the user and the virtualization servers120when the virtualization servers120are dispersed (S206). The distances between the user and the virtualization servers120are distances on a network, and may be measured by an algorithm such as Internet distance maps (IDMaps), M-coop, king, and virtual landmarks.

Then, the management server110counts the number of virtualization servers120closest to the user on the network (with shortest network delay) (S207), and when one virtualization server120closest to the user exists, the virtualization server120is selected (S208).

When m virtualization servers120separated from the user by the same distance on the network exist, the management server110compares specifications of a plurality of virtual machines that are being driven in the m virtualization servers120with each other (S209) to select a virtualization server120with a smallest resource usage rate (S210).

That is, when the m virtualization servers120are connected to the management server110, the management server provides weight values to CPUs, memories, and disks used by the virtualization servers120, and compares the quantized values of the virtualization servers120with each other to select the virtualization server120with the smallest resource usage rate.

However, when resource usage rates of the m virtualization servers120are similar to each other, the management server110compares the numbers of virtual machines that are being driven in the respective virtualization servers120with each other (S211), and selects the virtualization server120with the smallest number of virtual machines that are being driven (S212).

That is, when the m virtualization servers120are connected to the management server110, the numbers of virtual machines allocated to the respective virtualization servers120may be compared with each other to select the virtualization server120in which the smallest number of virtual machines are being driven.

In addition, when there is no difference in performance among the virtualization servers120, resource usage rates of the respective virtualization servers120are in similar ranges, and when the numbers of virtual machines that are being driven in the virtualization servers120are equal to each other, the respective virtualization servers120are sequentially selected (S213). That is, when the m virtualization servers120are connected to the management server110, the management server110may sequentially select the respective virtualization servers120to allocate the virtual machines.

On the other hand, when the virtualization servers120are locally concentrated, the management server110does not measure distances between the user and the virtualization servers120but compares performances of the plurality of virtualization servers120(S214) to select a virtualization server120with highest performance (S215). According to an exemplary embodiment of the present invention, a server with smallest power consumption may be determined as the virtualization server120with highest performance. That is, according to the exemplary embodiment of the present invention, when the virtualization servers120are locally concentrated, a server with a smallest power usage amount may be most preferentially selected.

However, when there is no difference in performance among the virtualization servers120, the management server110compares specifications (specifications of CPUs, memories, and disks) of a plurality of virtual machines that are being driven in the respective virtualization servers120with each other (S209) to select the virtualization server120with a smallest resource usage rate (S210).

However, when there is no difference in performance among the virtualization servers120and resource usage rates of the respective virtualization servers120are similar to each other, the management server110selects the virtualization server120with the smallest number of virtual machines that are being driven therein (S212).

In addition, when there is no difference in performance among the virtualization servers120, resource usage rates of the respective virtualization servers120are similar to each other, and when the numbers of virtual machines that are being driven in the respective virtualization servers120are equal to each other, the respective virtualization servers120are sequentially selected (S213).

The management server110may allocate virtual machines that perform similar work to one virtualization server120in accordance with a work type of the user. When virtual machines that perform similar work are driven in one virtualization server120, performance may be improved using caching when a virtual desktop service is provided.

In this case, when a specific user requests a virtual desktop service for corresponding work, the management server110may select a virtualization server120designated in accordance with a work type of a specific user. Therefore, users that perform similar work are grouped to use virtual machines allocated to the same virtualization server120and to share a CPU, a memory, and cache.

Referring toFIG. 3, the scheduler113of the management server110then selects the virtualization server120, and the agent124of the virtualization server120receives a request from the scheduler113to allocate virtual machines to the virtualization server120(S301).

Then, the service provider115of the management server110may provide a virtual desktop service to the user through the virtual machines performed by the selected virtualization server120(S302).

As described above, according to the exemplary embodiment of the present invention, a virtual desktop service suitable for a request of a user is provided to the user so that loads of servers may be dispersed and power usage of the servers may be minimized. That is, in an environment where the virtualization servers that provide the virtual desktop service are locally dispersed, the virtual machines may be allocated to a virtualization server with a shortest network delay based on network distances from the virtualization servers to the user. In addition, after a server power usage amount is predicted in accordance with a virtual machine usage type of the user, a virtualization server may be selected in accordance with the prediction result.