KR101544487B1 - Virtual desktop service system for client that has multiple user accounts - Google Patents
Virtual desktop service system for client that has multiple user accounts Download PDFInfo
- Publication number
- KR101544487B1 KR101544487B1 KR1020120136550A KR20120136550A KR101544487B1 KR 101544487 B1 KR101544487 B1 KR 101544487B1 KR 1020120136550 A KR1020120136550 A KR 1020120136550A KR 20120136550 A KR20120136550 A KR 20120136550A KR 101544487 B1 KR101544487 B1 KR 101544487B1
- Authority
- KR
- South Korea
- Prior art keywords
- virtual machine
- user
- router
- virtual
- service
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
- Computer And Data Communications (AREA)
Abstract
본 발명은, 복수의 사용자 계정들을 갖는 클라이언트에 대한 가상 데스크톱 서비스 시스템에 관한 것으로, 클라이언트별로, 복수의 사용자 가상머신들과, 이러한 사용자 가상머신들의 가상 데스크톱 서비스를 지원하기 위한 시스템 가상머신들인 라우터 가상머신, 데스크톱 딜리버리 제어 가상머신 및 액티브 디렉토리 가상머신으로 구성된 가상 데스크톱 시스템을 제공함으로써, 하나의 데이터 센터에서 복수의 기업이나 조직 클라이언트들에게 서로 분리된 가상 데스크톱 서비스를 제공할 수 있게 된다.The present invention relates to a virtual desktop service system for a client having a plurality of user accounts, comprising: a plurality of user virtual machines for each client; a virtual virtual machine for supporting virtual desktop services of the user virtual machines; By providing a virtual desktop system consisting of machines, desktop delivery control virtual machines and Active Directory virtual machines, it is possible to provide separate virtual desktop services to multiple corporate or organizational clients in a single data center.
Description
본 발명은, 복수의 사용자 계정들을 갖는 클라이언트에 대한 가상 데스크톱 서비스 제공을 위한 시스템에 관한 것으로, 하나의 데이터 센터에서 복수의 기업이나 조직 클라이언트들에게 서로 분리된 가상 데스크톱 서비스를 제공할 수 있는 가상 데스크톱 서비스 시스템에 관한 것이다.The present invention relates to a system for providing a virtual desktop service for a client having a plurality of user accounts, and more particularly, to a virtual desktop service capable of providing virtual desktop services separated from each other to a plurality of companies or organization clients in a single data center Service system.
데스크톱 가상화는 SBC(Server-Based Computing)과 VDI(Virtual Desktop Infrastructure) 로 나뉠수 있다. SBC는 서버 운영체제에서 제공하는 터미널 서비스를 통해 가상 데스크톱 환경을 사용자에게 제공하는 반면, VDI는 서버에 데스크톱 환경을 위한 가상머신을 생성하고, 이처럼 생성된 가상머신에 운영체제와 어플리케이션을 설치하여 사용자에게 제공할 가상 데스크톱 환경을 구현한다는 점에서 차이가 있다. 이들 중에서, VDI 서비스는 보다 사용자의 로컬 데스크톱 환경과 유사한 데스크톱 환경을 가질 수 있다는 점에서 각광을 받고 있다.Desktop virtualization can be divided into Server-Based Computing (SBC) and Virtual Desktop Infrastructure (VDI). While SBC provides users with a virtual desktop environment through terminal services provided by the server operating system, VDI creates a virtual machine for the desktop environment on the server and installs the operating system and applications on the created virtual machine to the user There is a difference in that it implements a virtual desktop environment. Among these, VDI services are attracting attention in that they can have a desktop environment similar to a user's local desktop environment.
복수의 사용자 계정들을 갖는 클라이언트 즉, 기업이나 조직 단위로 VDI 서비스를 제공하는 경우에, 종래에는 클라이언트별로 하나의 물리적 하드웨어 및 가상화 소프트웨어를 제공하여 왔다.In the case of providing a VDI service to a client having a plurality of user accounts, that is, a company or an organization unit, conventionally, one physical hardware and virtualization software have been provided for each client.
그러나, VDI 서비스를 원하는 기업이나 조직 단위의 클라이언트들의 수가 늘어남에 따라, 단일한 데이터 센터 내에서 다수의 기업이나 조직 단위의 클라이언트들에게 VDI 서비스를 제공할 수 있는 시스템이 필요한 실정이다.However, as the number of clients in an enterprise or organizational unit that desires a VDI service increases, a system capable of providing VDI services to a plurality of enterprise or organizational unit clients within a single data center is needed.
본 발명이 이루고자 하는 기술적 과제는, 하나의 데이터 센터에서 복수의 기업이나 조직 클라이언트들에게 서로 분리된 가상 데스크톱 서비스를 제공할 수 있는 가상 데스크톱 서비스 시스템을 제공하는 데에 있다.SUMMARY OF THE INVENTION It is an object of the present invention to provide a virtual desktop service system capable of providing virtual desktop services separated from each other to a plurality of companies or organization clients in a single data center.
본 발명이 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not intended to limit the invention to the particular embodiments that are described. It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention, There will be.
상기의 기술적 과제를 이루기 위한, 가상 데스크톱 서비스 시스템은 데이터 센터의 물리적 컴퓨팅 자원을 가상화한 가상 컴퓨팅 자원을 이용하여 가상 데스크톱 환경을 제공하는 복수의 사용자 가상머신들; 상기 사용자 가상머신에 IP를 할당하여 상기 사용자 가상머신과 외부 네트워크와의 통신을 중개하고, 상기 사용자 가상머신의 사설 네트워크 내에서의 통신을 라우팅하는 적어도 하나 이상의 라우터 가상머신; 상기 사용자 가상머신과 상기 사용자 가상머신에 접근하는 사용자 계정 사이의 세션을 연결하고 상기 사용자 가상머신에서 제공하는 가상 데스크톱 서비스를 관리하는 데스크톱 딜리버리 제어 가상머신; 및 상기 사용자 가상머신 및 데스크톱 딜리버리 제어 가상머신 중 적어도 하나 이상에 접근하는 사용자 계정을 인증하는 액티브 디렉토리 가상머신을 포함한다.According to an aspect of the present invention, there is provided a virtual desktop service system including: a plurality of user virtual machines for providing a virtual desktop environment using virtual computing resources that virtualize physical computing resources in a data center; At least one router virtual machine for assigning an IP to the user virtual machine to mediate communication between the user virtual machine and the external network and for routing communication in the private network of the user virtual machine; A desktop delivery control virtual machine for connecting a session between the user virtual machine and a user account accessing the user virtual machine and managing a virtual desktop service provided by the user virtual machine; And an Active Directory virtual machine for authenticating a user account accessing at least one of the user virtual machine and the desktop delivery control virtual machine.
보다 바람직하게는, 클라이언트 별로 라우터 가상머신, 데스크톱 딜리버리 제어 가상머신 및 액티브 디렉토리 가상머신을 포함하는 서로 독립된 시스템 가상머신 집합을 가질 수 있다.More preferably, each client may have a separate set of system virtual machines including a router virtual machine, a desktop delivery control virtual machine, and an active directory virtual machine.
보다 바람직하게는, 상기 라우터 가상머신은 상기 사용자 가상머신들에 유동 IP를 할당하는 DHCP 서버를 포함할 수 있다.More preferably, the router virtual machine may include a DHCP server that assigns a dynamic IP to the user virtual machines.
보다 바람직하게는, 상기 라우터 가상머신은 상기 사용자 가상머신들의 수에 따라 동적으로 증설 혹은 감축될 수 있다.More preferably, the router virtual machine may be dynamically added or reduced according to the number of user virtual machines.
보다 바람직하게는, 상기 라우터 가상머신과 외부 퍼블릭 네트워크 간의 제1서브네트워크, 서비스 공급자의 관리 시스템에서 상기 라우터 가상머신, 상기 액티브 디렉토리 가상머신 및 상기 데스크톱 딜리버리 제어 가상머신을 제어하기 위한 제2서브네트워크, 상기 사용자 가상머신에서 상기 라우터 가상머신, 상기 액티브 디렉토리 가상머신 및 상기 데스크톱 딜리버리 제어 가상머신과 통신하기 위한 제3서브네트워크는 서로 논리적으로 분리될 수 있다.More preferably, a first sub-network between the router virtual machine and an external public network, a second sub-network for controlling the router virtual machine, the active directory virtual machine and the desktop delivery control virtual machine in a management system of the service provider, , The third sub-network for communicating with the router virtual machine, the active directory virtual machine and the desktop delivery control virtual machine in the user virtual machine may be logically separated from each other.
보다 바람직하게는, 상기 라우터 가상머신이 복수 개인 경우에, 상기 제3서브네트워크는 상기 복수 개의 라우터 가상머신들 각각에 할당되어 서로 논리적으로 분리된 복수 개의 서브네트워크들을 포함할 수 있다.More preferably, when there are a plurality of router virtual machines, the third subnetwork may include a plurality of subnetworks allocated to each of the plurality of router virtual machines and logically separated from each other.
보다 바람직하게는, 상기 라우터 가상머신이 복수 개인 경우에, 상기 서브 네트워크는 상기 복수 개의 라우터 가상머신들 사이의 라우팅 정보를 공유하기 위한 서브네트워크를 더 포함할 수 있다.More preferably, when there are a plurality of router virtual machines, the subnetwork may further include a subnetwork for sharing routing information between the plurality of router virtual machines.
상기의 기술적 과제를 이루기 위한, 가상 데스크톱 서비스 준비 방법은 데이터 센터의 물리적 컴퓨팅 자원을 가상화한 가상 컴퓨팅 자원을 이용하여 가상 데스크톱 환경을 제공하는 사용자 가상머신의 외부 네트워크와의 통신을 중개하고 사용자 가상머신의 서브 네트워크 내에서의 통신을 라우팅하는 라우터 가상머신을 생성하는 라우터가상머신생성단계; 라우터 가상머신으로부터 서브 네트워크의 IP를 할당받아 할당받은 IP를 기초로 사용자 가상머신에 접근하는 사용자 계정을 인증하는 액티브 디렉토리 가상머신을 생성하는 액티브디렉토리생성단계; 및 라우터 가상머신으로부터 서브 네트워크의 IP를 할당받아 할당받은 IP를 기초로 사용자 가상머신과 사용자 계정 간의 세션을 연결하고 사용자 가상머신에서 제공하는 가상 데스크톱 서비스를 관리하는 데스크톱 딜리버리 가상머신을 생성하는 데스크톱딜리버리생성단계; 및 데스크톱 딜리버리 가상머신의 IP의 기정의된 포트를 기초로 라우터 가상머신의 포트포워딩 규칙을 업데이트하는 단계를 포함한다.According to an aspect of the present invention, there is provided a method of preparing a virtual desktop service, comprising: mediating communication with an external network of a user virtual machine that provides a virtual desktop environment using virtual computing resources that virtualize physical computing resources of a data center; A router virtual machine creation step of creating a router virtual machine for routing communication in a sub-network of the router; An active directory creation step of creating an active directory virtual machine for authenticating a user account for accessing a user virtual machine based on an IP allocated to a subnetwork from a router virtual machine; And a desktop delivery that allocates the IP of the subnetwork from the router virtual machine and connects the session between the user virtual machine and the user account based on the allocated IP, and manages the virtual desktop service provided by the user virtual machine Desktop delivery that creates the virtual machine Generating step; And updating the port forwarding rules of the router virtual machine based on the default port of the IP of the desktop delivery virtual machine.
보다 바람직하게는, 라우터가상머신생성단계는 서비스망과 논리적으로 분리된 관리망을 통해서 관리용 IP를 할당받는 단계; 할당받은 관리용 IP를 기초로 라우터 가상머신을 생성하는 단계; 생성된 라우터 가상머신에 대한 공인 IP 및 서비스 IP 할당을 요청하는 단계; 및 요청에 대한 응답으로 할당받은 공인 IP 및 서비스 IP를 기초로 라우터 가상머신의 초기 설정을 업데이트하는 단계를 포함한다.More preferably, the step of generating a router virtual machine comprises: allocating a management IP through a management network logically separated from a service network; Generating a router virtual machine based on the assigned management IP; Requesting a public IP and a service IP allocation for the generated router virtual machine; And updating the initial configuration of the router virtual machine based on the public IP and the service IP allocated in response to the request.
보다 바람직하게는, 액티브디렉토리생성단계는 서비스망과 논리적으로 분리된 관리망을 통해서 관리용 IP를 할당받는 단계; 할당받은 관리용 IP를 기초로 액티브 디렉토리 가상머신을 생성하는 단계; 생성된 액티브 디렉토리 가상머신에 대한 서비스 IP 할당을 라우터 가상머신에 요청하는 단계; 및 요청에 대한 응답으로 할당받은 서비스 IP를 기초로 액티브 디렉토리의 초기 설정을 업데이트하는 단계를 포함한다.More preferably, the step of generating an active directory comprises: allocating a management IP through a management network logically separated from the service network; Creating an Active Directory virtual machine based on the assigned management IP; Requesting a router virtual machine for a service IP allocation for the generated active directory virtual machine; And updating the initial settings of the active directory based on the service IP assigned in response to the request.
보다 바람직하게는, 데스크톱딜리버리생성단계는 서비스망과 논리적으로 분리된 관리망을 통해서 관리용 IP를 할당받는 단계; 할당받은 관리용 IP를 기초로 데스크톱 딜리버리 가상머신을 생성하는 단계; 생성된 데스크톱 딜리버리 가상머신에 대한 서비스 IP 할당을 라우터 가상머신에 요청하는 단계; 및 요청에 대한 응답으로 할당받은 서비스 IP를 기초로 데스크톱 딜리버리 가상머신의 초기 설정을 업데이트하는 단계를 포함한다.More preferably, the desktop delivery generating step comprises: receiving a management IP through a management network logically separated from a service network; Creating a desktop delivery virtual machine based on the allocated management IP; Requesting a router virtual machine for a service IP allocation for the generated desktop delivery virtual machine; And updating the initial settings of the desktop delivery virtual machine based on the service IP assigned in response to the request.
본 발명에 따르면, 하나의 데이터 센터에서 복수의 기업이나 조직 클라이언트들에게 서로 분리된 가상 데스크톱 서비스를 제공할 수 있다.According to the present invention, it is possible to provide virtual desktop services separated from each other to a plurality of companies or organizational clients in one data center.
특히, 클라이언트 별로 서로 다른 하드웨어 및 소프트웨어에 대한 요구를 보다 충실하게 반영하여, 클라이언트의 IT 환경에 부합하는 가상 데스크톱 서비스를 제공할 수 있다.In particular, it is possible to provide a virtual desktop service conforming to the client's IT environment by faithfully reflecting demands of different hardware and software for each client.
도 1은 본 발명의 바람직한 일 실시예에 따른 가상 데스크톱 서비스 시스템의 전체적인 구성을 도시한 도면이다.
도 2는 본 발명의 바람직한 일 실시예에 따른 가상 데스크톱 서비스 시스템의 일 구성요소인 VMS의 개념적인 구성을 도시한 도면이다.
도 3a 및 3b들은 본 발명의 바람직한 일 실시예에 따른 가상 데스크톱 서비스 시스템의 VMS에서 사용되는 서비스 API의 제어 권한 및 해당 권한에 따라 수행가능한 서비스 API를 예시한 도면이다.
도 4a 내지 4b들은 본 발명의 바람직한 일 실시예에 따른 가상 데스크톱 서비스 시스템의 VMS에서 사용되는 서비스 API의 요청 및 응답 형식을 예시한 도면이다.
도 5는 본 발명의 바람직한 일 실시예에 따른 VMS의 서비스 프로세스 중 클라이언트 각각에 할당되는 시스템 VM을 생성하는 과정을 도시한 도면이다.
도 6은 본 발명의 바람직한 일 실시예에 따른 VMS의 서비스 프로세스 중 클라이언트 각각의 사용자 VM에서 VDI 서비스를 수행하기 위한 기본 환경을 설정하는 과정을 도시한 도면이다.
도 7은 본 발명의 바람직한 일 실시예에 따른 데이터 센터에서 제공하는 멀티태넌시 가상 데스크톱 서비스를 설명하기 위한 도면이다.
도 8은 본 발명의 바람직한 일 실시예에 따라 클라이언트별로 독립적으로 구성되는 네트워크 환경을 예시한 도면이다.
도 9는 본 발명의 바람직한 실시예에 따른 멀티 태넌시 가상 데스크톱 서비스의 특정 클라이언트에 속하는 사용자에게 대한 가상 데스크톱 환경을 생성하는 DeployVDI API의 처리 과정을 예시한 도면이다.1 is a diagram illustrating the overall configuration of a virtual desktop service system according to a preferred embodiment of the present invention.
2 is a diagram illustrating a conceptual configuration of a VMS that is a component of a virtual desktop service system according to an embodiment of the present invention.
FIGS. 3A and 3B are views illustrating service APIs that can be performed according to a control right of a service API used in a VMS of a virtual desktop service system according to a preferred embodiment of the present invention and a corresponding right.
4A and 4B are views illustrating a request and response format of a service API used in a VMS of a virtual desktop service system according to an exemplary embodiment of the present invention.
5 is a diagram illustrating a process of creating a system VM allocated to each of the clients in the VMS service process according to an exemplary embodiment of the present invention.
6 is a diagram illustrating a process of setting a basic environment for performing a VDI service in a user VM of each client in a service process of a VMS according to a preferred embodiment of the present invention.
FIG. 7 is a diagram for explaining a multitenancy virtual desktop service provided in a data center according to a preferred embodiment of the present invention.
8 is a diagram illustrating a network environment independently configured for each client according to an exemplary embodiment of the present invention.
9 is a diagram illustrating a process of a DeployVDI API for creating a virtual desktop environment for a user belonging to a specific client of the multi-TNS virtual desktop service according to the preferred embodiment of the present invention.
이하의 내용은 단지 본 발명의 원리를 예시한다. 그러므로 당업자는 비록 본 명세서에 명확히 설명되거나 도시되지 않았지만 본 발명의 원리를 구현하고 본 발명의 개념과 범위에 포함된 다양한 장치를 발명할 수 있는 것이다. 또한, 본 명세서에 열거된 모든 조건부 용어 및 실시예들은 원칙적으로, 본 발명의 개념이 이해되도록 하기 위한 목적으로만 명백히 의도되고, 이와 같이 특별히 열거된 실시예들 및 상태들에 제한적이지 않는 것으로 이해되어야 한다. 또한, 본 발명의 원리, 관점 및 실시예들 뿐만 아니라 특정 실시예를 열거하는 모든 상세한 설명은 이러한 사항의 구조적 및 기능적 균등물을 포함하도록 의도되는 것으로 이해되어야 한다. 또한, 이러한 균등물들은 현재 공지된 균등물뿐만 아니라 장래에 개발될 균등물 즉 구조와 무관하게 동일한 기능을 수행하도록 발명된 모든 소자를 포함하는 것으로 이해되어야 한다. The following merely illustrates the principles of the invention. Thus, those skilled in the art will be able to devise various apparatuses which, although not explicitly described or shown herein, embody the principles of the invention and are included in the concept and scope of the invention. Furthermore, all of the conditional terms and embodiments listed herein are, in principle, intended only for the purpose of enabling understanding of the concepts of the present invention, and are not intended to be limiting in any way to the specifically listed embodiments and conditions . It is also to be understood that the detailed description, as well as the principles, aspects and embodiments of the invention, as well as specific embodiments thereof, are intended to cover structural and functional equivalents thereof. It is also to be understood that such equivalents include all elements contemplated to perform the same function irrespective of currently known equivalents as well as equivalents to be developed in the future.
따라서, 프로세서 또는 이와 유사한 개념으로 표시된 기능 블록을 포함하는 도면에 도시된 다양한 소자의 기능은 전용 하드웨어뿐만 아니라 적절한 소프트웨어와 관련하여 소프트웨어를 실행할 능력을 가진 하드웨어의 사용으로 제공될 수 있다. 프로세서에 의해 제공될 때, 기능은 단일 전용 프로세서, 단일 공유 프로세서 또는 복수의 개별적 프로세서에 의해 제공될 수 있고, 이들 중 일부는 공유될 수 있다. 또한, 프로세서, 제어 또는 이와 유사한 개념으로 제시되는 용어의 사용은 소프트웨어를 실행할 능력을 가진 하드웨어를 배타적으로 인용하여 해석되어서는 아니 되고, 제한 없이 디지털 신호 프로세서(DSP) 하드웨어, 소프트웨어를 저장하기 위한 롬(ROM), 램(RAM) 및 비휘발성 메모리를 암시적으로 포함하는 것으로 이해되어야 한다. 주지 관용의 다른 하드웨어도 포함될 수 있다. Thus, the functions of the various elements shown in the drawings, including the functional blocks shown in the figures or similar concepts, may be provided by use of dedicated hardware as well as hardware capable of executing software in connection with appropriate software. When provided by a processor, the functions may be provided by a single dedicated processor, a single shared processor, or a plurality of individual processors, some of which may be shared. Also, the use of terms such as processor, control, or similar concepts should not be construed as exclusive reference to hardware capable of executing software, but may include, without limitation, digital signal processor (DSP) hardware, (ROM), random access memory (RAM), and non-volatile memory. Other hardware may also be included.
상술한 목적, 특징 및 장점들은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 더욱 분명해 질 것이다. 본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략하거나 간략하게 설명하는 것으로 한다. The above objects, features and advantages will become more apparent from the following detailed description in conjunction with the accompanying drawings. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.
한편 어떤 부분이 어떤 구성요소를 “포함”한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라, 다른 구성요소를 더 포함할 수 있는 것을 의미한다.On the other hand, when an element is referred to as " including " an element, it does not exclude other elements unless specifically stated to the contrary.
이하, 첨부된 도면을 참조하여 바람직한 실시예에 따른 본 발명을 상세히 설명하기로 한다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명의 바람직한 일 실시예에 따른 하나의 클라이언트에 대한 가상 데스크톱 서비스 시스템(100)의 전체적인 구성을 도시한 도면이다.FIG. 1 is a diagram illustrating the overall configuration of a virtual
도 1을 참조하면, 본 실시예에 따른 가상 데스크톱 서비스 시스템(100)은 각 클라이언트별로 할당되는 가상머신들의 집합인 클라이언트별 가상 데스크톱 시스템(110)과 이러한 클라이언트별 가상 데스크톱 시스템(110)들을 전체적으로 관리 및 제어하는 서비스 공급자의 중앙 관리 시스템(120)을 포함한다. 상기한 구성요소들 이외에 다른 구성요소들이 본 실시예에 따른 가상 데스크톱 서비스 시스템 100)에 포함될 수 있음은 자명하다.Referring to FIG. 1, the virtual
본 실시예에 따른 가상 데스크톱 서비스 시스템(100)의 구성요소들인 클라이언트별 가상 데스크톱 시스템(110) 및 중앙 관리 시스템(120)은 그 중 적어도 일부가 외부 단말장치나 외부 서버등과 통신하는 프로그램 모듈일 수 있으며, 이러한 프로그램 모듈들은 운영 시스템, 응용 프로그램 모듈 및 기타 프로그램 모듈로서 가상 데스크톱 서비스 시스템(100)에 포함될 수 있으며, 물리적으로는 다양한 종류의 공지된 기억 장치에 저장될 수 있다. 또한, 이러한 프로그램 모듈들은 가상 데스크톱 서비스 시스템(100)와 통신 가능한 원격 기억 장치에 저장될 수도 있다. 한편, 이러한 프로그램 모듈들은 본 발명에 따라 후술할 특정 업무를 수행하거나 특정 추상 데이터 유형을 실행하는 루틴, 서브루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포괄하지만, 본 발명 자체가 이에 한정되지는 않는다.The
본 실시예에 따른 클라이언트별 가상 데스크톱 시스템(110)은 복수의 사용자 계정들에 각각 할당되는 사용자 가상머신들(115)과, 클라이언트 별로 할당되어 개별 사용자 가상머신들의 가상 데스크톱 서비스를 지원하는 시스템 가상머신들(111 내지 114)을 포함한다.The
사용자 가상머신들(115)는 각각 데이터 센터의 물리적 컴퓨팅 자원을 가상화한 가상 컴퓨팅 자원을 이용하여 사용자 계정별로 가상의 데스크톱 환경을 제공하는 것으로, 로컬 데스크톱 환경에서 로컬의 물리적 컴퓨팅 자원을 이용하는 것과 근사한 수준의 가상 데스크톱 환경을 제공하기 위해 로컬 데스크톱 환경과 동일한 운영체제 및 어플리케이션들이 설치되어 구동될 수 있다.The user
시스템 가상머신들로는, 라우터 가상머신(RVM, 111~112), 액티브 디렉토리 가상머신(AD, 113) 및 데스크톱 딜리버리 제어 가상머신(DDC, 114)들이 해당될 수 있다.The system virtual machines may be a router virtual machine (RVM) 111 to 112, an active directory virtual machine (AD) 113, and a desktop delivery control virtual machine (DDC) 114.
즉, 본 실시예에 따르면, 클라이언트 별로 라우터 가상머신(RVM), 액티브 디렉토리 가상머신(AD) 및 데스크톱 딜리버리 제어 가상머신(DDC)을 포함하는 서로 독립된 시스템 가상머신 집합을 갖게 되며, 이를 위해, 클라이언트로부터 가상 데스크톱 서비스 요청을 받으면, 이러한 가상 데스크톱 서비스를 직접적으로 제공하기 위한 사용자 가상머신들의 생성 이전에 이러한 시스템 가상머신들을 별도로 생성하여 해당 클라이언트에 할당하고, 시스템 가상머신들 각각의 기능을 제공하기 위한 소프트웨어 패키지를 설치하는 과정을 먼저 거쳐야 한다.That is, according to the present embodiment, each client has a separate system virtual machine set including a router virtual machine (RVM), an active directory virtual machine (AD), and a desktop delivery control virtual machine (DDC) The virtual desktop services may be separately created and allocated to the clients prior to the creation of the user virtual machines to directly provide the virtual desktop services, You need to go through the process of installing the software package first.
라우터 가상머신(RVM, 111~112)은 사용자 가상머신들(115) 각각에 서비스 IP를 할당하여 사용자 가상머신들(115)과 외부 네트워크와의 통신을 중개하고, 사용자 가상머신들(115) 사이의 서브 네트워크 내에서의 통신을 라우팅하는 클라이언트별 가상의 서브 네트워크의 라우터 기능을 수행한다. 예컨대, 사용자 가상머신들(115)을 통해 제공되는 가상 데스크톱 환경에서 인터넷에 접근하기 위해서는 라우터 가상머신을 통해 접근하게 된다. 이때, 라우터 가상머신(RVM, 111~112)는 클라이언트의 외부 인터넷용 집선 스위치로서의 기능을 수행할 수 있다.The router virtual machine RVM 111 to 112 allocates a service IP to each of the user
아울러, 라우터 가상머신(RVM, 111~112)은 사용자 가상머신들(115)에 유동 IP를 할당하는 DHCP 서버를 포함할 수 있다. In addition, the router virtual machine (RVM, 111 to 112) may include a DHCP server for assigning a dynamic IP to the user
라우터 가상머신(RVM, 111~112)은 사용자 가상머신들의 개수에 따라 동적으로 추가 증설되거나(Scale-out), 감축될 수 있는 것이 바람직하다.It is desirable that the router virtual machine (RVM, 111 to 112) can be dynamically added or scaled-out according to the number of user virtual machines.
데스크톱 딜리버리 제어 가상머신(DDC, 114)은 사용자 가상머신과 사용자 가상머신에 접근하는 사용자 계정 사이의 세션을 연결하고 사용자 가상머신에서 제공하는 가상 데스크톱 서비스를 관리한다.A desktop delivery control virtual machine (DDC) 114 connects a session between a user virtual machine and a user account accessing the user virtual machine, and manages the virtual desktop service provided by the user virtual machine.
액티브 디렉토리 가상머신(AD, 113)은 사용자 가상머신들 및 데스크톱 딜리버리 제어 가상머신의 사용자 계정들의 정보를 관리하고, 이들에 접근하는 사용자 계정을 인증한다. 다시 말하면, 액티브 디렉토리 가상머신(114)는 각 고객별로 제공되는 가상머신들을 구성요소로 하는 클라이언트별 가상의 서브 네트워크에서의 사용자 계정 정보를 관리하는 액티브 디렉토리(Active directory) 서비스를 제공한다. 이를 위해서, 사용자 가상머신들 및 데스크톱 딜리버리 제어 가상머신이 모두 액티브 디렉토리 가상머신(113)의 액티브 디렉토리에 모두 조인이 되어야 한다.The Active Directory Virtual Machine (AD) 113 manages the information of the user accounts of the user virtual machines and the desktop delivery control virtual machine, and authenticates the user account that accesses them. In other words, the Active Directory
본 실시예에 따른 서비스 공급자의 중앙 관리 시스템(120)은 VMS(121), Portal(122), VSV(123) 및 VMS-UI(124)을 포함할 수 있다.The service provider's
VMS(121)는 데이터 센터 전체의 코어 관리 기능 및 VDI 확장 기능을 수행하는 구성요소로, 여기에서 코어 관리 기능은 데이터 센터에 속한 물리적인 컴퓨팅 자원들을 Zone/Pod/Cluster/Storage/Host 단위로 각각 관리하고, 데이터 센터 내의 전체 스토리지 및 네트워크 자원을 관리하고, 사용자 가상머신 및 시스템 가상머신에 설치될 패키지 또는 템플릿을 관리하고, 가상머신들의 생성 또는 추가시 활용할 가상머신들의 풀(pool)을 관리 혹은 제어하는 것을 가리키며, VDI 확장 기능은 클라이언트 별로 할당되는 데스크톱 딜리버리 제어 가상머신(113) 및 액티브 디렉토리 가상머신(114)의 제어 또는 설정 사항 변경 등을 통해 클라이언트별로 서로 독립적으로 제공되는 가상 데스크톱 서비스의 세부 사항들을 조정할 수 있다.The
Portal(122), VSV(123) 및 VMS-UI(124)는 모두 사용자 인터페이스를 제공하는 구성요소로서, Portal(122)은 클라이언트로부터 가상 데스크톱 서비스에 대한 청약 신청을 받고, 클라이언트에 제공되는 가상 데스크톱 서비스의 요금을 빌링하는 부분에 대한 사용자 인터페이스를 제공하며, VSV(123)은 상기한 VMS(121)의 관리 기능 중 VDI 확장 기능 부분에 관한 사용자 인터페이스를 제공하고, VMS-UI(124)는 상기한 VMS(121)의 관리 기능 중 코어 관리 기능 부분에 관한 사용자 인터페이스를 제공한다.The
도 2는 본 발명의 바람직한 일 실시예에 따른 가상 데스크톱 서비스 시스템의 일 구성요소인 VMS(200)의 개념적인 구성을 도시한 도면이다.2 is a diagram illustrating a conceptual configuration of a
도 2를 참조하면, 본 실시예에 따른 가상 데스크톱 서비스 시스템의 VMS(200)는 전술한 바와 같이, 데이터 센터 전체의 코어 관리 기능 및 VDI 확장 기능을 수행하기 위한 구성요소들로서, 코어부(210) 및 브로커부(220)를 구비한다.Referring to FIG. 2, the
VMS(200) 외부(예컨대, 도 1의 Portal, VSV 및 VMS UI 등)에서 RESTful 방식으로 서비스 API를 호출하여 코어부(210)의 API 계층(211)에 속한 프로그램 모듈이 활성화되고, 이들 각각의 프로그램 모듈들에 포함된 함수 호출에 의해 Command 계층(212) 상에서 인프라 또는 가상머신을 관리하는 코어 관리기능, AD 또는 DDC를 관리하는 VDI 기능, 모니터링 기능 및 스케줄링 기능 등이 수행될 수 있다.A program module belonging to the
본 실시예에서 서비스 API는 VMS(200) 외부(예컨대, 도 1의 Portal, VSV 및 VMS UI 등)에서 호출할 수 있는 API로 VMS(200) 외부에 대하여 가상 데스크톱 서비스를 구성하는 개별 기능들에 대한 요청 및 응답 포인트를 제공할 수 있다.In this embodiment, the service API is an API that can be called from outside the VMS 200 (for example, the portal, the VSV, and the VMS UI of FIG. 1) to the individual functions constituting the virtual desktop service And can provide a request and response point for the request.
브로커부(220)는 하이퍼바이저와 클라이언트에 각각 할당된 시스템 가상머신을 관리 또는 제어하기 위한 프로그램 모듈들로써, 하이퍼바이저 매니저(221), RVM 매니저(222), DDC 매니저(223), AD 매니저(224) 및 TVM 매니저(225) 등을 포함할 수 있다.The
여기에서 하이퍼바이저 매니저(221)은 시스템 VM의 신규 생성이 필요한 경우에 다수의 VM들이 미리 생성되어 있는 클러스터 풀(Cluster Pool)로부터 VM을 할당받아와, 필요한 종류의 시스템 VM으로 생성하여 해당 클라이언트에 할당한다.The
RVM 매니저(222), DDC 매니저(223), 및 TVM 매니저(225)는 각각 클라이언트별로 할당된 시스템 VM 들인 RVM, DDC 및 TVM을 각각 관리 및 제어하는 프로그램 모듈들로서, XML 기반의 분산 시스템 통신 방법인 XML-RPC 프로토콜을 통해 XML 형태로 원격 프로시저를 호출하는 방법으로 각각 대응하는 시스템 VM들을 관리 및 제어할 수 있다.The
AD 매니저(224)는 클라이언트 별로 할당된 디렉토리 서비스를 위한 시스템 VM인 AD를 관리 및 제어하는 프로그램 모듈로서, 바람직하게는, 디렉토리 서비스를 위한 통신 프로토콜인 LDAP을 이용할 수 있다. The
코어부(210)와 브로커부(220)는 서로 RESTful 방식의 API 호출을 통해 상호 간에 필요한 관리 및 제어를 위한 통신을 수행할 수 있다.The
본 실시예에서 서비스 API나 코어부(210) 및 브로커부(220) 간의 API에 사용되는 REST(REpresentational State Transfer)ful 방식은 중간의 매개체 없이 URI의 형태로 식별되는 서비스 리소스를 요청자가 HTTP 프로토콜의 POST/GET 함수를 통해 조작(CRUD) 및 제어할 수 있게 함으로써, 보다 편리하고 용이하게 상호간의 리소스 혹은 프로그램 모듈들을 호출하여 조작 또는 제어할 수 있게 한다.In this embodiment, the REST (REpresentational State Transfer) ful method used for the API between the service API, the
도 3a 및 3b들은 본 발명의 바람직한 일 실시예에 따른 가상 데스크톱 서비스 시스템의 VMS에서 사용되는 서비스 API의 제어 권한 및 해당 권한에 따라 수행가능한 서비스 API를 예시한 도면이다.FIGS. 3A and 3B are views illustrating service APIs that can be performed according to a control right of a service API used in a VMS of a virtual desktop service system according to a preferred embodiment of the present invention and a corresponding right.
도 3a를 참조하면, 본 실시예에 따른 서비스 API 중 A1은 서비스 전체의 관리자 계정에 부여되는 권한으로, 코어 관리 기능 중 인프라 관리 기능 모듈(Infra Manager)을 통해 모든 API에 대한 제어(READ & WRITE, RW)권한을 갖는다.Referring to FIG. 3A, among the service APIs according to the present embodiment, A1 is a right granted to an administrator account of the entire service. In the core management function, a control module (Infra Manager) , RW).
A2는 서비스의 모니터링용 관리자 계정에 부여되는 권한으로, 코어 관리 기능 중 인프라 관리 기능 모듈(Infra Manager)을 통해 모든 API에 대하여 생성 및 삭제를 제외한 나머지(READ ONLY, RO) 권한을 갖는다.A2 is a privilege granted to the administrator account for monitoring the service. It has the rest of the core management functions (READ ONLY, RO) excluding the creation and deletion of all APIs through the infrastructure management function module (Infra Manager).
B1는 개별 클라이언트의 VDI 관리자 계정에 부여되는 권한으로, VDI 관리 기능 모듈(VDI Manager)을 통해 클라이언트의 VDI 관리 API의 제어(READ & WRITE, RW)권한을 갖는다.B1 is a privilege granted to the VDI manager account of an individual client and has control (READ & WRITE, RW) of the VDI management API of the client through the VDI manager function module (VDI Manager).
B2는 개별 클라이언트의 VDI 모니터링용 관리자 계정에 부여되는 권한으로, VDI 관리 기능 모듈을 통해 클라이언트의 VDI 관리 API에 대해서 생성 및 삭제를 제외한 나머지(READ ONLY, RO) 권한을 갖는다.B2 is a privilege granted to an administrator account for VDI monitoring of an individual client. The VDI management function module has a READ ONLY and RO privilege except for creation and deletion of the VDI management API of the client through the VDI management function module.
도 3b를 참조하면, 서비스 API 중 DeploySVM는 각 클라이언트에 할당되는 RVM, AD, DDC와 같은 시스템 VM을 생성하는 것으로, A1 권한을 갖는 서비스 전체 관리자 계정에서만 호출할 수 있다.Referring to FIG. 3B, the DeploySVM of the service API creates a system VM such as RVM, AD, or DDC, which is allocated to each client, and can be called only from the service administrator account having the A1 privilege.
DeployVM는 시스템 VM이 아닌 일반 사용자 VM을 생성하는 것으로, A1 권한 뿐만 아니라, B1 권한을 갖는 클라이언트의 VDI 관리자 계정에서도 호출할 수 있다.DeployVM creates an ordinary user VM, not a system VM. It can be called from the VDI manager account of the client having the B1 privilege as well as the A1 privilege.
ListHost는 XenServer 등과 같은 하이퍼바이져 리스팅 API로, A1 또는 A2와 같은 권한을 갖는 서비스 관리자 계정에서 호출가능하다.ListHost is a hypervisor listing API, such as XenServer, that can be called from a service manager account with permissions such as A1 or A2.
도 4a 내지 4b들은 본 발명의 바람직한 일 실시예에 따른 가상 데스크톱 서비스 시스템의 VMS에서 사용되는 서비스 API의 요청 및 응답 형식을 예시한 도면이다.4A and 4B are views illustrating a request and response format of a service API used in a VMS of a virtual desktop service system according to an exemplary embodiment of the present invention.
도 4a를 참조하면, 본 실시예에 따른 서비스 API의 요청(request)은 session(411), method(412), request(413) 및 async(414)의 파라미터를 포함할 수 있으며, 서비스 리소스에 RESTful 방식으로 전달된다.Referring to FIG. 4A, a request for a service API according to the present embodiment may include a parameter of a session 411, a
session(411)은 문자열(string) 타입의 세션 키를 입력받는 파라미터에 해당하며, 본 실시예에 따른 서비스 API 중 SessionLogin API를 제외한 나머지 모든 API의 요청시 필수적이다.The session 411 corresponds to a parameter for inputting a session key of a string type, and is indispensable when requesting all APIs other than the SessionLogin API of the service API according to the present embodiment.
method(412)는 문자열(string) 타입으로 호출할 메소드 이름을 입력받는 파라미터에 해당한다. 본 실시예에서는 “ListZones”라는 이름의 메소드를 호출한다The method (412) corresponds to a parameter that receives a method name to be called as a string type. In the present embodiment, a method named " ListZones " is called
request(413)은 해당 메소드의 호출시 입력하도록 API 상에 정의된 파라미터 이른바 요청 파라미터들(request parameters)를 입력받는 부분으로, 본 실시예에서는 “ListZones”라는 이름의 메소드의 요청 파라미터로 ID를 입력받도록 API에서 정의하고 있고, 이에 따라 2라는 숫자 데이터를 ID에 대한 입력값으로 전달하고 있다.
async(414)는 해당 메소드가 Asyc job 실행권한이 있는 경우에 추가적으로 입력이 필요한 파라미터로, 해당 메소드를 Async job으로 실행할지 여부에 관한 boolean 타입의 값을 입력받는 부분으로, 본 실시예에서는 “ListZones”라는 이름의 메소드를 Async job으로 실행하지 않도록 해당 파라미터의 입력값으로 “false”를 전달하고 있다.The async 414 is a parameter that requires additional input when the corresponding method has an Asyc job execution right. The async 414 is a portion for receiving a boolean type value regarding whether to execute the method as an Async job. In this embodiment, "Is passed as" false "as the input value of the parameter so as not to execute the method named Async job.
도 4b를 참조하면, 본 실시예에 따른 서비스 API의 응답(request)은 status(421), response(422) 및 total count(423)의 응답값들을 포함할 수 있으며, 서비스 리소스로부터 RESTful 방식으로 제공받는다.Referring to FIG. 4B, a response of the service API according to the present embodiment may include response values of
status(421)은 문자열(string) 타입으로 요청에 따른 수행 상태를 전달하는 부분에 해당하며, 본 실시예에서는 “success”라는 상태값을 통해 수행 성공을 나타내고 있다.The
response(422)는 해당 메소드의 호출에 따른 수행 결과를 포함하는 응답값들(response values)을 전달하도록 하도록 API 상에 정의된 부분으로, 본 실시예에서는, 응답값으로 id가 “1”이고, “EPC-KR0”이란 이름을 가지며, “EPC-VDI-DEV MOK-DONG”이라는 의미를 갖는 데이터 레코드와, id가 “2”이고, “EPC-KR1”이란 이름을 가지며, “EPC-VDI-DEV MOK-CHEON”이라는 의미를 갖는 데이터 레코드를 리스트 형태로 해당 메소드의 호출에 따른 수행 결과로써, 전달하고 있다.
total count(423)는 해당 메소드가 리스트 형태의 데이터를 응답값으로 제공하는 LIST API인 경우에 추가적으로 반환되는 값으로, 응답값으로 제공하는 리스트에 속한 원소들(element)의 총 개수(total count)를 반환할 수 있다.The
이하의 표는 본 실시예에 따른 요청 및 응답 형식을 갖는 시스템 API의 대표적인 메소드들을 예시한다.The following table illustrates exemplary methods of a system API having a request and response format according to the present embodiment.
상기한 표를 참조하면, 본 실시예에 따른 시스템 API 중 DeploySVM는 A1 권한을 가진 계정에서 수행하는 프로그램 모듈에서만 제한적으로 호출될 수 있으며, 요청 파라미터로 serviceprofile_id, description, cpus, mem_size, host_id, storage_id, org_id, allocator를 가질 수 있으며, 이들 중 serviceprofile_id, cpus, mem_size, host_id, storage_id, org_id는 정수(integer) 형태의 입력값을 입력받을 수 있으며, 이들 중 serviceprofile_id는 메소드의 호출시 반드시 요청 파라미터로 포함되어야 하나, 나머지는 생략하거나 선택적으로 입력할 수 있다.Referring to the above table, the DeploySVM among the system APIs according to the present embodiment can be limitedly invoked only in a program module executed in an account having the A1 privilege. The request parameters include serviceprofile_id, description, cpus, mem_size, host_id, storage_id, serviceprofile_id, cpus, mem_size, host_id, storage_id, and org_id can be input as integer values. Of these, serviceprofile_id must be included as a request parameter in the method call. One can omit the rest or enter it selectively.
이러한 DeploySVM은 요청을 수행한 결과를, id, name, description, os_id, os_name, status, cpus, mem_size, vmtype_id, vmtype_name, system_type, org_id, org_name, host_id, host_name, cluster_id, cluster_name, pod_id, pod_name, zone_id, zone_name, created, uptime, boot, iso_id, iso_name, ha, locked, nics, disks에 각각 대응되는 응답값들을 통해 해당 메소드를 호출한 프로그램 모듈에 전달할 수 있으며, 이들 중 id, cpus, mem_size, vmtype_id, org_id, host_id, cluster_id, pod_id, zone_id, iso_id에 대응되는 응답값들은 정수(integer) 형태를 가지며, created, uptime에 대응되는 응답값들은 특정 시각(time)을 나타내며, nics, disks에 대응되는 응답값들은 리스트 형태를 갖는 것으로 정의된다These DeploySVMs are able to use the results of performing the requests as id, name, description, os_id, os_name, status, cpus, mem_size, vmtype_id, vmtype_name, system_type, org_id, org_name, host_id, host_name, cluster_id, cluster_name, pod_id, pod_name, zone_id, cpus, mem_size, vmtype_id, org_id, of which the corresponding method is called through the response values corresponding to zone_name, created, uptime, boot, iso_id, iso_name, ha, locked, nics and disks. response values corresponding to host_id, cluster_id, pod_id, zone_id, and iso_id have an integer type. Response values corresponding to created and uptime indicate a specific time. Response values corresponding to nics, disks, It is defined as having a list form
아울러, 본 실시예에 따른 시스템 API 중 DeployVDI는 A1 권한을 가진 계정 뿐만 아니라, B1이나 C1 권한의 계정에서 수행하는 프로그램 모듈에서도 호출될 수 있으며, 요청 파라미터로 serviceprofile_id, description, cpus, mem_size, host_id, storage_id, org_id, data_disks, allocator, user_uri를 가질 수 있으며, 이들 중 serviceprofile_id, cpus, mem_size, host_id, storage_id, org_id는 정수(integer) 형태의 입력값을 입력받을 수 있으며, 이들 중 serviceprofile_id, org_id, user_uri는 메소드의 호출시 반드시 요청 파라미터로 포함되어야 하나, 나머지는 생략하거나 선택적으로 입력할 수 있다.DeployVDI among the system APIs according to the present embodiment can be called not only by the account having the A1 privilege but also by the program module executed in the B1 or C1 privilege account. The request parameter includes serviceprofile_id, description, cpus, mem_size, host_id, serviceprofile_id, cpus, mem_size, host_id, storage_id, org_id can be input as an integer. Among them, serviceprofile_id, org_id, and user_uri can be input. When calling a method, it must be included as a request parameter, but the rest can be omitted or optionally input.
이러한 DeployVDI은 요청을 수행한 결과를, id, name, description, os_id, os_name, status, cpus, mem_size, vmtype_id, vmtype_name, system_type, org_id, org_name, host_id, host_name, cluster_id, cluster_name, pod_id, pod_name, zone_id, zone_name, created, uptime, boot, iso_id, iso_name, ha, nics, disks, user_uri, user_id, firstname, lastname, user_type, connection_status에 각각 대응되는 응답값들을 통해 해당 메소드를 호출한 프로그램 모듈에 전달할 수 있으며, 이들 중 id, cpus, mem_size, vmtype_id, org_id, host_id, cluster_id, pod_id, zone_id, iso_id에 대응되는 응답값들은 정수(integer) 형태를 가지며, created, uptime에 대응되는 응답값들은 특정 시각(time)을 나타내며, nics, disks에 대응되는 응답값들은 리스트 형태를 갖는 것으로 정의된다.These DeployVDIs can be used to send the result of the request to the server with the result of the request as id, name, description, os_id, os_name, status, cpus, mem_size, vmtype_id, vmtype_name, system_type, org_id, org_name, host_id, host_name, cluster_id, cluster_name, pod_id, pod_name, the corresponding method can be transmitted to the calling program module through the response values corresponding to zone_name, created, uptime, boot, iso_id, iso_name, ha, nics, disks, user_uri, user_id, firstname, lastname, user_type, connection_status. Response values corresponding to id, cpus, mem_size, vmtype_id, org_id, host_id, cluster_id, pod_id, zone_id and iso_id have an integer type and response values corresponding to created and uptime represent a specific time , nics, and disks are defined as having a list type.
도 5는 본 발명의 바람직한 일 실시예에 따른 VMS의 서비스 프로세스 중 클라이언트 각각에 할당되는 시스템 VM을 생성하는 과정을 도시한 도면이다.5 is a diagram illustrating a process of creating a system VM allocated to each of the clients in the VMS service process according to an exemplary embodiment of the present invention.
도 5를 참조하면, 본 실시예에 따라 클라이언트 각각에 할당되는 시스템 VM은 RVM, AD, DDC이며, 이에 따라 클라이언트별로 시스템 VM을 생성하기 위한 DeploySVM API를 입력 파라미터(serviceprofile_id)를 변경하여 3회에 걸쳐 호출함으로써, 클라이언트 각각에 VDI 서비스를 제공하기 위한 준비 과정을 수행할 수 있다.Referring to FIG. 5, the system VM allocated to each client according to the present embodiment is RVM, AD, and DDC, and the DeploySVM API for creating a system VM for each client is changed to an input parameter (serviceprofile_id) So as to perform preparations for providing the VDI service to each of the clients.
먼저, 시스템 VM 중 RVM을 생성하기 위해, WAS는 관리망을 통해서 관리용 인터페이스의 DHCP IP를 할당받고, RVM은 이러한 관리용 인터페이스의 DHCP IP를 기초로 생성된다. 이후에, WAS에게 해당 가상머신에 대한 추가 IP 즉, 인터넷 망에서의 IP(공인 IP)와, 서비스 망에서의 IP 설정을 요청한다. WAS에 의해 설정받은 추가 IP 정보를 기초로 사설망용 DHCP 설정 정보를 업데이트하고, 해당 RVM에 대한 포트 포워딩 정보가 존재하면, 이를 업데이트하고 기타 다른 설정 작업을 수행한다. 그리고, RVM의 초기 구동에 필요한 모든 설정을 마무리하고 RVM을 구동시킴으로써 일련의 RVM의 생성 과정(501)을 완료할 수 있다.First, in order to create an RVM among the system VMs, the WAS is allocated a DHCP IP of the management interface through the management network, and the RVM is created based on the DHCP IP of the management interface. Then, the WAS requests additional IP for the corresponding virtual machine, that is, IP (public IP) in the Internet network and IP setting in the service network. Updates the DHCP setting information for the private network based on the additional IP information set by the WAS, updates the port forwarding information for the corresponding RVM, and performs other setting operations. In addition, a series of RVM generation processes 501 can be completed by finishing all the settings required for the initial operation of the RVM and driving the RVM.
WAS는 RVM이 생성된 이후에, AD를 생성하기 위해, 관리망을 통해서 관리용 인터페이스의 DHCP IP를 할당받고, AD는 이러한 관리용 인터페이스의 DHCP IP를 기초로 생성되며, 이후에 RVM을 통해서 서비스 망에서의 IP를 할당받고, 기타 다른 설정 작업을 수행한다. 그리고, AD의 초기 구동에 필요한 모든 설정을 마무리하고 AD을 구동시킴으로써 일련의 AD의 생성 과정(502)을 완료할 수 있다.After the RVM is created, the WAS is assigned the DHCP IP of the management interface through the management network to generate the AD, the AD is generated based on the DHCP IP of the management interface, and then the service Allocate IP on the network and perform other configuration tasks. Then, a series of AD generation processes 502 can be completed by finishing all the settings necessary for the initial operation of the AD and driving the AD.
WAS는 RVM과 AD가 생성된 이후에, DDC를 생성하기 위해, 관리망을 통해서 관리용 인터페이스의 DHCP IP를 할당받고, DDC는 이러한 관리용 인터페이스의 DHCP IP를 기초로 생성되며, 이후에 RVM을 통해서 서비스망에서의 IP를 할당받고, 기타 다른 설정 작업을 수행한다. 그리고, DDC의 초기 구동에 필요한 모든 설정을 마무리하고 DDC을 구동시킴으로써 일련의 DDC의 생성 과정(503)을 완료할 수 있다.After RVM and AD are created, WAS is allocated DHCP IP of the management interface through the management network to generate DDC, DDC is generated based on the DHCP IP of the management interface, and then RVM The IP is allocated to the service network, and other configuration tasks are performed. Then, a series of DDC generation processes 503 can be completed by completing all the settings necessary for initial operation of the DDC and driving the DDC.
마지막으로, WAS는 VDI 서비스 사용자가 DDC에 접속할 수 있도록 DDC의 서비스 IP의 80번 포트를 RVM의 포트포워딩 룰에 포함시키고, 이를 업데이트하여 이후의 RVM의 포트 포워딩시 적용하도록 구현할 수 있다(POST PROCESS, 504).Finally, the WAS can be implemented to include port 80 of DDC's service IP in the port forwarding rule of the RVM so that the VDI service user can access the DDC, and update the port forwarding rule of the RVM so that it is applied to port forwarding of the RVM (POST PROCESS , 504).
도 6은 본 발명의 바람직한 일 실시예에 따른 VMS의 서비스 프로세스 중 클라이언트 각각의 사용자 VM에서 VDI 서비스를 수행하기 위한 기본 환경을 설정하는 과정을 도시한 도면이다.6 is a diagram illustrating a process of setting a basic environment for performing a VDI service in a user VM of each client in a service process of a VMS according to a preferred embodiment of the present invention.
도 6을 참조하면, VMS는 하이퍼바이저 매니저 모듈인 Xen Server를 통해 사용자 VM을 생성하고, 이에 IP를 할당하고, 할당된 IP를 기초로 사용자 VM을 부팅시키고, 사용자 VM에 필요한 초기 설정 정보를 획득하기 위해, getProvisioninginfo API를 호출하여, AD로부터 초기 설정에 필요한 정보를 획득하고, 이를 기초로 sysprep 설정 정보를 생성하고, 사용자 VM을 재부팅시킨후 생성된 sysprep 설정 정보에 맞게 운영체제 레벨의 초기 설정을 변경하고 사용자 VM을 재부팅시킨다.Referring to FIG. 6, the VMS creates a user VM through a hypervisor manager module Xen Server, allocates an IP to the user VM, boots the user VM based on the allocated IP, obtains initial setting information necessary for the user VM , The getProvisioninginfo API is called to obtain information necessary for the initial setup from the AD, generates sysprep configuration information based on the information, re-initializes the user VM, and then changes the initial configuration of the operating system level according to the generated sysprep configuration information And reboots the user VM.
사용자 VM이 재부팅되어 두번째로, getProvisioninginfo API를 호출하게 되면, DDC를 통해 사용자 VM이 VDI 서비스 사용자에 매핑되고, 해당 VDI 서비스 사용자가 DDC에 접속할 수 있도록 DDC의 서비스 IP의 80번 포트를 RVM의 포트포워딩 룰에 포함시켜 업데이트됨으로써, 사용자 VM에서 VDI 서비스를 수행하기 위한 기본 환경 설정 과정이 완료된다.When the user VM is rebooted and the getProvisioninginfo API is called, the user VM is mapped to the VDI service user through the DDC. The port of the service IP of the DDC is connected to the port of the RVM so that the VDI service user can access the DDC. And is updated in the forwarding rule, thereby completing the basic configuration process for performing the VDI service in the user VM.
도 7은 본 발명의 바람직한 일 실시예에 따른 데이터 센터(700)에서 제공하는 멀티태넌시 가상 데스크톱 서비스를 설명하기 위한 도면으로, 본 실시예에 따른 사용자 가상머신(715~716, 725, 735), RVM(711~712, 721, 731), AD(713, 723, 733) 및 DDC(714, 724, 734)는 도 1에 도시된 가상 데스크톱 서비스 시스템의 사용자 가상머신(115~116), 라우터 가상머신(111~112), 액티브 디렉토리 가상머신(113) 및 데스크톱 딜리버리 제어 가상머신(114)에 각각 대응될 수 있다. 따라서, 도 1에 도시된 가상 데스크톱 서비스 시스템에 관한 설명에서와 동일한 사항에 대해서는 이를 참조한다.FIG. 7 is a diagram for explaining a multitenancy virtual desktop service provided in the
본 실시예에 따른 멀티태넌시 가상 데스크톱 서비스는 다수의 독립된 클라이언트들이 동일한 형태의 가상 데스크톱 서비스를 하나의 데이터 센터(700)에서 제공받아야 하며, 특정 클라이언트에 대한 가상 데스크톱 서비스가 다른 클라이언트에 대한 가상 데스크톱 서비스에 영향을 주거나 받지 않아야 하며, 이를 위해 본 실시예에 따른 데이터 센터(700)는 클라이언트별 정보를 논리적으로 분리하여 관리하여야 하며, 아울러, 클라이언트별로 독립된 하드웨어 리소스와 독립된 네트워크 리소스를 포함하는 클라이언트별 가상 데스크톱 시스템을 제공한다.In the multi-tangent virtual desktop service according to the present embodiment, a plurality of independent clients must receive the same type of virtual desktop service from one
도 7을 참조하면, 본 실시예에 따른 클라이언트별 가상 데스크톱 시스템(710, 720, 730)은 클라이언트 별로 사용자 가상머신들, RVM, AC 및 DDC을 포함하는 사용자 및 시스템 가상머신들의 집합으로, 서로 독립적으로 동작하며, 서로에 대해 은닉되어 상호 시스템들 간의 보안성이 유지되는 것을 전제로 한다.Referring to FIG. 7, the client-specific
RVM(711, 721, 731)은 사용자 가상머신들(715, 725, 735) 각각에 서비스 IP를 할당해주어야 하고, 할당 가능한 IP의 개수는 한정되어 있으므로, 서비스되어야 할 사용자 가상머신의 수가 할당 가능한 IP의 개수를 넘는 경우에는, 추가적인 RVM(712)가 생성되어 multi-RVM의 형태로 구성되게 된다. 이 경우 IP 충돌 방지를 위해 기존의 RVM(711)에 연결된 사용자 가상머신들(715)과 기존의 RVM(711) 간의 네트워크와 추가적으로 생성된 RVM(712)과 연결된 사용자 가상머신들(716)과 추가적인 RVM 간의 네트워크가 서로 논리적으로 분리되어야 한다.The
도 8은 본 발명의 바람직한 일 실시예에 따라 클라이언트별로 독립적으로 구성되는 네트워크 환경을 예시한 도면으로, 본 실시예에 따른 사용자 가상머신(815~816), RVM(811~812), AD(813) 및 DDC(814)는 도 1에 도시된 가상 데스크톱 서비스 시스템의 사용자 가상머신(115~116), 라우터 가상머신(111~112), 액티브 디렉토리 가상머신(113) 및 데스크톱 딜리버리 제어 가상머신(114)에 각각 대응될 수 있다. 따라서, 도 1에 도시된 가상 데스크톱 서비스 시스템에 관한 설명에서와 동일한 사항에 대해서는 이를 참조한다.8 is a diagram illustrating a network environment independently configured for each client according to a preferred embodiment of the present invention. The user
도 8을 참조하면, 본 실시예에 따른 클라이언트별로 제공되는 가상 데스크톱 시스템은 복수의 서브네트워크들(Network A~E)에 연결되며, 이들 서브네트워크들은 이들 서브네트워크의 구성요소 노드들에 할당된 IP의 충돌을 방지하기 위해 VLAN을 통해서 서로 논리적으로 분리된다.8, a virtual desktop system provided for each client according to the present embodiment is connected to a plurality of subnetworks (Network A to E), and these subnetworks are connected to IPs Are logically separated from each other through the VLAN to prevent collision of the two.
Network A는 RVM(811)과 외부의 공중 네트워크(예컨대, 인터넷)간의 네트워크이다.The network A is a network between the
Network B는, 동일한 클라이언트에 할당된 시스템 가상머신들 즉, RVM(811~812), AD(813), DDC(814)와 서비스 공급자의 관리 시스템(820) 간의 네트워크이다.The network B is a network between system virtual machines assigned to the same client, that is, the
Network C는 사용자 가상머신을 통해 제공되는 VDI 서비스와 이러한 VDI 서비스를 지원하기 위한 시스템 가상머신들 즉, RVM(811), AD(813) 및 DDC(814) 간의 네트워크이다.Network C is a network between the VDI service provided through the user virtual machine and the system virtual machines (
Network D는 사용자 가상머신의 수가 RVM에서 할당 가능한 IP의 개수를 넘는 경우에 형성되는 Multi-RVM 환경에서, 사용자 가상머신들과 추가적인 RVM(812) 간의 네트워크로, Network C와 동일한 기능을 수행하되, Network C와는 논리적으로 분리되어야 한다.Network D is a network between the user virtual machines and the
Network E는 사용자 가상머신의 수가 RVM에서 할당 가능한 IP의 개수를 넘는 경우에 형성되는 Multi-RVM 환경에서, 복수의 RVM들(811, 812)간의 네트워크로, 각 RVM에서의 라우팅 정보를 공유하기 위한 용도로 사용될 수 있다.Network E is a network between a plurality of
도 9는 본 발명의 바람직한 실시예에 따른 멀티 태넌시 가상 데스크톱 서비스의 특정 클라이언트에 속하는 사용자에게 대한 가상 데스크톱 환경을 생성하는 DeployVDI API의 처리 과정을 예시한 도면이다.9 is a diagram illustrating a process of a DeployVDI API for creating a virtual desktop environment for a user belonging to a specific client of the multi-TNS virtual desktop service according to the preferred embodiment of the present invention.
본 실시예에 따른 DeployVDI API는 멀티 태넌시 가상 데스크톱 서비스를 제공하기 위해 클라이언트 별로 논리적으로 분리된 하드웨어 리소스의 가용성을 체크하고 해당 사용자 가상 데스크톱 환경을 구현할 가상머신의 리소스를 할당하는 일련의 사전 처리 과정(S902~S906)을 거칠 수 있다.The DeployVDI API according to the present embodiment includes a series of preprocessing processes for checking availability of hardware resources logically separated for each client and allocating resources of a virtual machine for implementing the corresponding user virtual desktop environment in order to provide a multitenancy virtual desktop service (S902 to S906).
먼저, 클라이언트의 관리자 계정을 통해 사용자 VM을 생성하기 위한 DeployVDI 메소드의 호출을 통해 DeployVDI 요청을 수신하면(S901), 해당 클라이언트에 할당된 서버들의 리스트를 조회하여(S902) 신규 사용자 VM에 할당가능한 서버가 있는지를 확인한다(S903).First, a DeployVDI request is received through a call to a DeployVDI method to create a user VM through an administrator account of the client (S901). A list of servers allocated to the client is inquired (S902) (Step S903).
신규 사용자 VM에 할당가능한 서버가 없는 경우에는 해당 클라이언트에 할당된 서버 리소스가 부족함을 알리는 메시지를 하이퍼바이저 매니저 등에 통지한다(S908). 하이퍼바이저 매니저는 이를 클라이언트의 관리자 계정에게 알려 새로운 서버 리소스의 할당을 위한 추가 결재 등을 요청하거나 데이터 센터의 현재 가용 서버 리소스를 확인하여 해당 클라이언트에 새로운 서버 리소스를 추가로 할당하는 등의 조치를 취할 수 있으나, 이는 설명의 편의를 위한 하나의 실시예에 불과하며, 본 발명에서 이를 한정하지는 않는다고 할 것이다.If there is no server assignable to the new user VM, the hypervisor manager notifies the hypervisor manager of a message indicating that the server resource allocated to the client is insufficient (S908). The hypervisor manager notifies the client's manager account of the request to request additional payment for allocation of a new server resource, or to check the currently available server resources in the data center and to allocate additional server resources to the client However, this is merely one embodiment for convenience of description, and the present invention is not limited thereto.
신규 사용자 VM에 할당가능한 서버가 있는 경우에는 해당 클라이언트에 할당된 스토리지 리소스들의 리스트를 조회하여(S904) 신규 사용자 VM에 할당가능한 스토리지 리소스가 있는지를 확인한다(S905).If there is a server that can be allocated to the new user VM, the list of storage resources allocated to the client is inquired (S904), and it is determined whether there is a storage resource allocatable to the new user VM (S905).
신규 사용자 VM에 할당가능한 스토리지 리소스가 없는 경우에는 해당 클라이언트 계정에서 할당된 스토리지 리소스가 부족함을 알리는 메시지를 하이퍼바이저 매니저 등에 통지한다(S909). 하이퍼바이저 매니저는 이를 클라이언트의 관리자 계정에게 알려 새로운 스토리지 리소스의 할당을 위한 추가 결재 등을 요청하거나 데이터 센터의 현재 가용 스토리지 리소스를 확인하여 해당 클라이언트에 새로운 스토리지 리소스를 추가로 할당하는 등의 조치를 취할 수 있으나, 이는 설명의 편의를 위한 하나의 실시예에 불과하며, 본 발명에서 이를 한정하지는 않는다고 할 것이다.If there is no storage resource allocable to the new user VM, the hypervisor manager notifies a message to the hypervisor manager indicating that the storage resource allocated by the client account is insufficient (S909). The hypervisor manager notifies the client's administrator account of the current storage resource in the data center, such as requesting additional payment for allocation of a new storage resource, or allocating a new storage resource to the client However, this is merely one embodiment for convenience of description, and the present invention is not limited thereto.
S903 및 S905 단계들을 통해 확인된 할당가능한 서버 및 스토리지 리소스들 중에 신규 사용자 VM에 할당할 서버 및 스토리지 리소스를 선택한다(S906). 예컨대, 할당 가능한 서버 리소스들 중에 현재 VM이 가장 적게 할당된 서버 리소스를 선택할 수 있으며, 또한 해당 클라이언트에 할당된 스토리지 리소스 중 선택된 서버 리소스에 연결된 스토리지를 선택할 수 있으며, 선택된 서버 리소스에 연결된 스토리지는 현재 VM이 가장 적게 할당된 스토리지 리소스를 선택할 수 있다.In step S906, the server and the storage resource to be allocated to the new user VM among the assignable servers and storage resources identified in steps S903 and S905 are selected. For example, among the allocatable server resources, a server resource with the smallest current VM can be selected. Also, the storage connected to the selected server resource can be selected among the storage resources allocated to the client, The VM can select the least allocated storage resource.
상기에서 기술한 바와 같이, 클라이언트 별로 논리적으로 분리된 하드웨어 리소스의 가용성을 체크하고 해당 사용자의 가상 데스크톱 환경을 구현할 사용자 가상머신의 리소스를 할당하는 일련의 사전 처리 과정(S902 내지 S906)을 거친 후 DeployVDI 메소드를 수행(S907)함으로써, 해당 사용자의 가상 데스크톱 환경을 구현할 사용자 가상머신을 생성한다.As described above, after a series of preprocessing steps (S902 to S906) for checking the availability of logically separated hardware resources for each client and allocating resources of the user virtual machine for implementing the virtual desktop environment of the user, DeployVDI Method (S907), thereby creating a user virtual machine for implementing the virtual desktop environment of the user.
본 발명에 따라 고객별로 가상 데스크톱 시스템을 구현하여 제공하는 경우에, 고객별로, 별도로 분리된 데이터 센터를 운영해야 할 필요 없이, 하나의 데이터 센터에서 복수의 기업이나 조직 클라이언트들에게 서로 분리된 가상 데스크톱 서비스를 제공할 수 있게 된다.According to the present invention, when a virtual desktop system is implemented and provided for each customer, it is possible to provide a plurality of virtual desktops separated from each other to a plurality of companies or organization clients in one data center, Service can be provided.
특히, 클라이언트 별로 서로 다른 하드웨어 및 소프트웨어에 대한 요구를 보다 충실하게 반영하되, 클라이언트 별로 컴퓨팅 자원이나 IP의 충돌 없이, 클라이언트 각각의 IT 환경에 부합하는 가상 데스크톱 서비스를 제공할 수 있게 된다.In particular, it is possible to provide a virtual desktop service that conforms to each IT environment of a client without competing computing resources or IPs, while faithfully reflecting demands of different hardware and software for each client.
본 발명에 따른 가상 데스크톱 시스템은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.The virtual desktop system according to the present invention can be implemented as a computer-readable code on a computer-readable recording medium. A computer-readable recording medium includes all kinds of recording apparatuses in which data that can be read by a computer system is stored. Examples of the computer-readable recording medium include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage, and the like. In addition, the computer-readable recording medium may be distributed over network-connected computer systems so that computer readable codes can be stored and executed in a distributed manner. In addition, functional programs, codes, and code segments for implementing the present invention can be easily inferred by programmers of the technical field to which the present invention belongs.
본 발명은 첨부된 도면에 도시된 일 실시예를 참고로 설명되었으나, 이는 예시적인 것에 불과하며, 당해 기술분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 수 있을 것이다. 따라서, 본 발명의 진정한 보호 범위는 첨부된 청구 범위에 의해서만 정해져야 할 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is clearly understood that the same is by way of illustration and example only and is not to be taken by way of limitation, You will understand. Accordingly, the true scope of protection of the present invention should be determined only by the appended claims.
Claims (11)
상기 사용자 가상머신에 IP를 할당하여 상기 사용자 가상머신과 외부 네트워크와의 통신을 중개하고, 상기 사용자 가상머신의 서브 네트워크 내에서의 통신을 라우팅하는 적어도 하나 이상의 라우터 가상머신;
상기 사용자 가상머신과 상기 사용자 가상머신에 접근하는 사용자 계정 사이의 세션을 연결하고 상기 사용자 가상머신에서 제공하는 가상 데스크톱 서비스를 관리하는 데스크톱 딜리버리 제어 가상머신; 및
상기 사용자 가상머신 및 데스크톱 딜리버리 제어 가상머신 중 적어도 하나 이상에 접근하는 사용자 계정을 인증하는 액티브 디렉토리 가상머신을 포함하는 것을 특징으로 하는 복수의 사용자 계정들을 갖는 클라이언트에 대한 가상 데스크톱 서비스 시스템.A plurality of user virtual machines for providing a virtual desktop environment using virtual computing resources that virtualize physical computing resources of a data center;
At least one router virtual machine for assigning an IP to the user virtual machine to mediate communication between the user virtual machine and the external network and to route communication in the sub network of the user virtual machine;
A desktop delivery control virtual machine for connecting a session between the user virtual machine and a user account accessing the user virtual machine and managing a virtual desktop service provided by the user virtual machine; And
And an Active Directory virtual machine for authenticating a user account accessing at least one of the user virtual machine and the desktop delivery control virtual machine.
클라이언트 별로 라우터 가상머신, 데스크톱 딜리버리 제어 가상머신 및 액티브 디렉토리 가상머신을 포함하는 서로 독립된 시스템 가상머신 집합을 갖는 것을 특징으로 하는 가상 데스크톱 서비스 시스템.The method according to claim 1,
Wherein each client has a set of independent system virtual machines including a router virtual machine, a desktop delivery control virtual machine, and an active directory virtual machine.
상기 라우터 가상머신은 상기 사용자 가상머신들에 유동 IP를 할당하는 DHCP 서버를 포함하는 것을 특징으로 하는 가상 데스크톱 서비스 시스템.The method according to claim 1,
Wherein the router virtual machine includes a DHCP server for assigning a dynamic IP to the user virtual machines.
상기 라우터 가상머신은 상기 사용자 가상머신들의 수에 따라 동적으로 증설 혹은 감축될 수 있는 것을 특징으로 하는 가상 데스크톱 서비스 시스템.The method according to claim 1,
Wherein the router virtual machine can be dynamically expanded or reduced according to the number of the user virtual machines.
상기 라우터 가상머신과 외부 퍼블릭 네트워크 간의 제1서브네트워크, 서비스 공급자의 관리 시스템에서 상기 라우터 가상머신, 상기 액티브 디렉토리 가상머신 및 상기 데스크톱 딜리버리 제어 가상머신을 제어하기 위한 제2서브네트워크, 상기 사용자 가상머신에서 상기 라우터 가상머신, 상기 액티브 디렉토리 가상머신 및 상기 데스크톱 딜리버리 제어 가상머신과 통신하기 위한 제3서브네트워크는 서로 논리적으로 분리된 것을 특징으로 하는 가상 데스크톱 서비스 시스템.The method according to claim 1,
A first sub-network between the router virtual machine and an external public network, a second sub-network for controlling the router virtual machine, the Active Directory virtual machine and the desktop delivery control virtual machine in a management system of the service provider, Wherein the router virtual machine, the active directory virtual machine, and the third subnetwork for communicating with the desktop delivery control virtual machine are logically separated from each other.
상기 라우터 가상머신이 복수 개인 경우에,
상기 제3서브네트워크는 상기 복수 개의 라우터 가상머신들 각각에 할당되어 서로 논리적으로 분리된 복수 개의 서브네트워크들을 포함하는 것을 특징으로 하는 가상 데스크톱 서비스 시스템.6. The method of claim 5,
When there are a plurality of router virtual machines,
Wherein the third subnetwork comprises a plurality of subnetworks allocated to each of the plurality of router virtual machines and logically separated from each other.
상기 라우터 가상머신이 복수 개인 경우에,
사설 네트워크는 상기 복수 개의 라우터 가상머신들 사이의 라우팅 정보를 공유하기 위한 서브네트워크를 더 포함하는 것을 특징으로 하는 가상 데스크톱 서비스 시스템.The method according to claim 6,
When there are a plurality of router virtual machines,
Wherein the private network further comprises a subnetwork for sharing routing information between the plurality of router virtual machines.
상기 라우터 가상머신으로부터 상기 서브 네트워크의 IP를 할당받아 상기 할당받은 서브 네트워크의 IP를 기초로 상기 사용자 가상머신에 접근하는 사용자 계정을 인증하는 액티브 디렉토리 가상머신을 생성하는 액티브디렉토리생성단계; 및
상기 라우터 가상머신으로부터 상기 서브 네트워크의 IP를 할당받아 상기 할당받은 서브 네트워크의 IP를 기초로 상기 사용자 가상머신과 상기 사용자 계정 간의 세션을 연결하고 상기 사용자 가상머신에서 제공하는 가상 데스크톱 서비스를 관리하는 데스크톱 딜리버리 가상머신을 생성하는 데스크톱딜리버리생성단계; 및
상기 데스크톱 딜리버리 가상머신의 상기 서브 네트워크의 IP의 기정의된 포트를 기초로 상기 라우터 가상머신의 포트포워딩 규칙을 업데이트하는 단계를 포함하는 것을 특징으로 하는 복수의 사용자 계정들을 갖는 클라이언트에 대한 가상 데스크톱 서비스 준비 방법.A router virtual machine that mediates communication with an external network of a user virtual machine that provides a virtual desktop environment using virtual computing resources that virtualize physical computing resources of a data center and routes communications within the sub-network of the user virtual machine A router virtual machine generation step of generating a router virtual machine;
An active directory creation step of creating an active directory virtual machine that is allocated an IP of the subnetwork from the router virtual machine and authenticates a user account accessing the user virtual machine based on the IP of the allocated subnetwork; And
A desktop for managing a virtual desktop service provided by the user virtual machine and for connecting a session between the user virtual machine and the user account based on the IP of the sub-network allocated to the sub-network from the router virtual machine, A desktop delivery generating step of generating a delivery virtual machine; And
Updating a port forwarding rule of the router virtual machine based on a predefined port of an IP of the subnetwork of the desktop delivery virtual machine. How to prepare.
상기 라우터가상머신생성단계는
상기 서브 네트워크를 포함하는 서비스망과 논리적으로 분리된 관리망을 통해서 관리용 IP를 할당받는 단계;
상기 할당받은 관리용 IP를 기초로 상기 라우터 가상머신을 생성하는 단계;
상기 생성된 라우터 가상머신에 대한 공인 IP 및 서비스 IP 할당을 요청하는 단계; 및
상기 요청에 대한 응답으로 할당받은 공인 IP 및 서비스 IP를 기초로 상기 라우터 가상머신의 초기 설정을 업데이트하는 단계를 포함하는 것을 특징으로 하는 복수의 사용자 계정들을 갖는 클라이언트에 대한 가상 데스크톱 서비스 준비 방법.9. The method of claim 8,
The router virtual machine creation step
Receiving an IP for management through a management network logically separated from a service network including the subnetwork;
Generating the router virtual machine based on the allocated management IP;
Requesting a public IP and a service IP allocation for the generated router virtual machine; And
And updating an initial configuration of the router virtual machine based on a public IP and a service IP allocated in response to the request.
상기 액티브디렉토리생성단계는
상기 서브 네트워크를 포함하는 서비스망과 논리적으로 분리된 관리망을 통해서 관리용 IP를 할당받는 단계;
상기 할당받은 관리용 IP를 기초로 상기 액티브 디렉토리 가상머신을 생성하는 단계;
상기 생성된 액티브 디렉토리 가상머신에 대한 서비스 IP 할당을 상기 라우터 가상머신에 요청하는 단계; 및
상기 요청에 대한 응답으로 할당받은 서비스 IP를 기초로 상기 액티브 디렉토리의 초기 설정을 업데이트하는 단계를 포함하는 것을 특징으로 하는 복수의 사용자 계정들을 갖는 클라이언트에 대한 가상 데스크톱 서비스 준비 방법.9. The method of claim 8,
The active directory creation step
Receiving an IP for management through a management network logically separated from a service network including the subnetwork;
Creating the active directory virtual machine based on the allocated management IP;
Requesting the router virtual machine for a service IP allocation for the generated active directory virtual machine; And
And updating the initial setting of the active directory based on the service IP allocated in response to the request. ≪ Desc / Clms Page number 19 >
상기 데스크톱딜리버리생성단계는
상기 서브 네트워크를 포함하는 서비스망과 논리적으로 분리된 관리망을 통해서 관리용 IP를 할당받는 단계;
상기 할당받은 관리용 IP를 기초로 상기 데스크톱 딜리버리 가상머신을 생성하는 단계;
상기 생성된 데스크톱 딜리버리 가상머신에 대한 서비스 IP 할당을 상기 라우터 가상머신에 요청하는 단계; 및
상기 요청에 대한 응답으로 할당받은 서비스 IP를 기초로 상기 데스크톱 딜리버리 가상머신의 초기 설정을 업데이트하는 단계를 포함하는 것을 특징으로 하는 복수의 사용자 계정들을 갖는 클라이언트에 대한 가상 데스크톱 서비스 준비 방법.9. The method of claim 8,
The desktop delivery generating step
Receiving an IP for management through a management network logically separated from a service network including the subnetwork;
Generating the desktop delivery virtual machine based on the allocated management IP;
Requesting the router virtual machine for a service IP allocation for the generated desktop delivery virtual machine; And
And updating an initial configuration of the desktop delivery virtual machine based on a service IP assigned in response to the request. ≪ Desc / Clms Page number 19 >
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20120068174 | 2012-06-25 | ||
KR1020120068174 | 2012-06-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140018076A KR20140018076A (en) | 2014-02-12 |
KR101544487B1 true KR101544487B1 (en) | 2015-08-13 |
Family
ID=50266401
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120136550A Active KR101544487B1 (en) | 2012-06-25 | 2012-11-28 | Virtual desktop service system for client that has multiple user accounts |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101544487B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230100304A (en) | 2021-12-28 | 2023-07-05 | 한국전자통신연구원 | Proviosion system, management apparatus, provision method of hybrid virtual service base on virtual desktop |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101711131B1 (en) | 2016-08-04 | 2017-02-28 | 주식회사 넷츠 | Provisioning method and apparatus using active directory |
KR101702650B1 (en) | 2016-08-04 | 2017-02-03 | 주식회사 넷츠 | Login control method and apparatus for active directory domain |
KR102107115B1 (en) * | 2018-08-22 | 2020-05-28 | 주식회사 머니브레인 | Distributed computing resources sharing system and computing apparatus thereof based on block chain system supporting smart contract |
KR102335124B1 (en) | 2021-06-25 | 2021-12-03 | 안태완 | Apparatus for manufacturing fermented feed |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011250209A (en) | 2010-05-27 | 2011-12-08 | Fujitsu Ltd | Router, information processing equipment and program |
-
2012
- 2012-11-28 KR KR1020120136550A patent/KR101544487B1/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011250209A (en) | 2010-05-27 | 2011-12-08 | Fujitsu Ltd | Router, information processing equipment and program |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230100304A (en) | 2021-12-28 | 2023-07-05 | 한국전자통신연구원 | Proviosion system, management apparatus, provision method of hybrid virtual service base on virtual desktop |
Also Published As
Publication number | Publication date |
---|---|
KR20140018076A (en) | 2014-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230037542A1 (en) | System and method for providing a cloud computing environment | |
US10827008B2 (en) | Integrated user interface for consuming services across different distributed networks | |
US11252228B2 (en) | Multi-tenant multi-session catalogs with machine-level isolation | |
US9094457B2 (en) | Automated network deployment of cloud services into a network | |
US8370481B2 (en) | Inventory management in a computing-on-demand system | |
US10148493B1 (en) | API gateway for network policy and configuration management with public cloud | |
US8301746B2 (en) | Method and system for abstracting non-functional requirements based deployment of virtual machines | |
US9152293B2 (en) | Server IP addressing in a computing-on-demand system | |
US9246765B2 (en) | Apparatus and methods for auto-discovery and migration of virtual cloud infrastructure | |
US9225596B2 (en) | Undifferentiated service domains | |
US9942273B2 (en) | Dynamic detection and reconfiguration of a multi-tenant service | |
US8290998B2 (en) | Systems and methods for generating cloud computing landscapes | |
US10360410B2 (en) | Providing containers access to container daemon in multi-tenant environment | |
CN116848528A (en) | Techniques for automatically configuring minimum cloud service access rights for container applications | |
US20120117571A1 (en) | Load balancer and firewall self-provisioning system | |
JP2019528005A (en) | Method, apparatus, and system for a virtual machine to access a physical server in a cloud computing system | |
US11201930B2 (en) | Scalable message passing architecture in a cloud environment | |
US10860342B2 (en) | Computer system providing cloud-based session prelaunch features and related methods | |
KR101544487B1 (en) | Virtual desktop service system for client that has multiple user accounts | |
WO2020247235A1 (en) | Managed computing resource placement as a service for dedicated hosts | |
US9417997B1 (en) | Automated policy based scheduling and placement of storage resources | |
Wang et al. | Provide virtual distributed environments for grid computing on demand | |
US10911371B1 (en) | Policy-based allocation of provider network resources | |
KR101529163B1 (en) | Registration system and method for virtual desktop service of client that has multiple user accounts | |
KR20130134920A (en) | Method for virtual machine auto-configuration and method for providing virtual machine auto-configuration service |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20121128 |
|
A201 | Request for examination | ||
PA0201 | Request for examination |
Patent event code: PA02012R01D Patent event date: 20130806 Comment text: Request for Examination of Application Patent event code: PA02011R01I Patent event date: 20121128 Comment text: Patent Application |
|
PG1501 | Laying open of application | ||
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20150115 Patent event code: PE09021S01D |
|
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20150702 |
|
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20150807 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20150810 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
FPAY | Annual fee payment |
Payment date: 20180801 Year of fee payment: 4 |
|
PR1001 | Payment of annual fee |
Payment date: 20180801 Start annual number: 4 End annual number: 4 |
|
FPAY | Annual fee payment |
Payment date: 20190731 Year of fee payment: 5 |
|
PR1001 | Payment of annual fee |
Payment date: 20190731 Start annual number: 5 End annual number: 5 |
|
PR1001 | Payment of annual fee |
Payment date: 20210728 Start annual number: 7 End annual number: 7 |
|
PR1001 | Payment of annual fee |
Payment date: 20220720 Start annual number: 8 End annual number: 8 |
|
PR1001 | Payment of annual fee |
Payment date: 20230801 Start annual number: 9 End annual number: 9 |
|
PR1001 | Payment of annual fee |
Payment date: 20240717 Start annual number: 10 End annual number: 10 |