KR101977726B1 - 가상 데스크탑 서비스 방법 및 장치 - Google Patents

가상 데스크탑 서비스 방법 및 장치 Download PDF

Info

Publication number
KR101977726B1
KR101977726B1 KR1020150160829A KR20150160829A KR101977726B1 KR 101977726 B1 KR101977726 B1 KR 101977726B1 KR 1020150160829 A KR1020150160829 A KR 1020150160829A KR 20150160829 A KR20150160829 A KR 20150160829A KR 101977726 B1 KR101977726 B1 KR 101977726B1
Authority
KR
South Korea
Prior art keywords
virtual machine
virtual
server
virtual desktop
user terminal
Prior art date
Application number
KR1020150160829A
Other languages
English (en)
Other versions
KR20170057558A (ko
Inventor
김대원
김선욱
문종배
오명훈
오병택
오수철
김성운
최지혁
김학영
최완
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020150160829A priority Critical patent/KR101977726B1/ko
Priority to US15/354,651 priority patent/US10789083B2/en
Publication of KR20170057558A publication Critical patent/KR20170057558A/ko
Application granted granted Critical
Publication of KR101977726B1 publication Critical patent/KR101977726B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • H04L67/38
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer And Data Communications (AREA)

Abstract

가상 데스크탑 서비스 방법 및 장치가 개시된다. 본 발명에 따른 가상 데스크탑 서비스 방법은, 커넥션 브로커가 가상 데스크탑 서비스(Virtual Desktop Service)를 위한 사용자의 유저 프로파일을 확인하고, 상기 사용자 단말의 하드웨어에 적합한 가상 머신을 찾는 단계; 상기 커넥션 브로커가 상기 적합한 가상 머신이 없는 경우 가상머신 인프라스트럭처에 해당 가상머신 생성을 요청하고, 상기 적합한 가상 머신이 있는 경우 상기 커넥션 브로커가 해당 가상 머신에 사용자 프로파일을 적용하고 가상 데스트탑을 생성하는 단계; 및 상기 커넥션 브로커가 상기 생성된 가상 데스크탑을 상기 사용자 단말에 전송하기 위한 연결 정보를 상기 사용자 단말에 전송하고, 가상 데스크탑의 전송 프로토콜을 사용하여 상기 가상 데스크탑을 상기 사용자 단말에 전송하는 단계;를 포함한다.

Description

가상 데스크탑 서비스 방법 및 장치{APPARATUS AND METHOD FOR Virtual Desktop Services}
본 발명은 가상데스크탑 서비스를 위한 장치 및 방법에 관한 것으로 구체적으로는 서버 선택시 거리에 따란 정책, 네트워트 할당 및 변경 정책, 전력 관리 정책에 기반한 가상데스크탑 서비스를 위한 장치 및 방법에 관한 것이다.
요즈음, 데이터 저장 하드디스크와 애플리케이션 등을 인터넷 공간에 제공하는 서비스로서의 가상 데스크탑 서비스(Virtual Desktop Service)에 대한 연구 및 표준화 활동이 많이 이루어지고 있다.
한국공개특허 제2010-0123847호, 2009-0111576호 및 2009-0111576호 등은 가상 데스크탑 서비스 기술에 대하여 상세히 개시하고 있다. 하지만, 이러한 가상 데스크탑 서비스에 대한 아키텍처(Architecture)가 아직 표준화되지 않고 있는 상황이며, 이로 인해 사용자에게 가상 데스크탑 서비스를 효율적으로 제공하지 못하는 한계점이 있는 실정이다.
가상 데스크탑 서비스(VIRTUAL DESKTOP SERVICE)는 데이터를 저장하는 하드디스크와 응용 프로그램 등을 인터넷 공간에서 제공하는 서비스로서, 가상 데스크탑 서버에서 실행중인 가상 머신을 클라이언트 시스템에 접속하여 사용하는 서비스다.
한편, 통상 서버 가상화 컴퓨팅 환경에서는 가상화를 구현하는 서버의 자원(CPU, 메모리, 디스크 용량, 네트워크 등)의 성능과 부하를 기반으로 사용자에게 가상 머신을 할당한다. 이때, 가상 데스크톱 서비스에서는 가상 머신의 화면이 원격으로 사용자에게 전송되기 때문에 분산된 사용자와 분산된 가상 서버 사이의 거리에 따른 네트워크 지연에 의해서 서비스의 질이 달라질 수 있다. 분산 네트워크 환경에서 가상 머신(virtual machine)을 제공하는 복수의 서버는 지역적으로 밀집되어 있을 수도 있고, 넒은 지역에 분산되어 존재할 수도 있다. 복수의 서버가 넒은 지역에 분산되어 존재하는 경우, 하드웨어 자원의 부하를 기반으로 가상 머신을 할당하는 방법은 한계가 있다.
또한, 가상화 기술을 서버에 적용하여 하나의 서버에서 다수의 가상 머신을 가동하여 하드웨어 비용을 절감하는 서버 가상화 기술이 널리 사용되고 있다. 이러한 서버 가상화 환경에서는 하나의 네트워크 카드를 다수의 가상 머신이 공유하기 위해 네트워크 I/O 가상화 기술이 사용된다. 하지만, 소프트웨어를 사용하여 네트워크 I/O 가상화를 지원하는 경우 충분한 네트워크 I/O 성능을 제공하지 못한다. 이에, 하드웨어를 이용한 가상화 지원 방법들이 제안되고 있으며, 그 예로 SR-IOV(Single Root I/O Virtualization) 구조가 있다. SR-IOV 구조가 적용된 네트워크 카드는 소프트웨어의 도움없이 네트워크 I/O 가상화를 지원한다. 따라서, SR-IOV 구조가 적용된 네트워크 카드를 통해 서버 가상화 환경에서 충분한 네트워크 I/O 성능을 제공할 수 있다.
한편, 일반적으로 가장 많이 사용되는 전체 서버의 전력을 구하는 방법으로는 크게 하드디스크 레벨에서 전력을 산출하는 방법과 시뮬레이션 레벨에서 전력 산출 모델을 이용하는 방법으로 나뉠 수 있다.
하드디스크 레벨에서 전력을 산출하는 방법은 센서 또는 계측기를 이용하여 데이터의 변화량을 산출하는 방법으로 변화량을 빠르고 정확하게 산출할 수 있으나 현재 시스템에 대한 전력 산출만 가능하고 분석방법이나 미래에 대한 전력분석에 적용하기에는 어려운 단점이 있다. 또한, 이러한 방법은 전력소모량을 실시간으로 산출하기 위해서는 전력 산출 센서 장치가 서버의 동작상태에 상관없이 항상 서버에 의해서 소비되는 전력량을 감시하여야 한다. 이를 위해서는 전력산출 센서는 항상 즉, 하루 24시간 동안 동작하고 있어야 한다. 이는 오히려 서버의 전력소비량이 적고 그 사용시간이 매우 제한적인 경우에 있어서는 감시하기 위한 전력산출 센서에 의해 소비되는 소모전력이 무시할 수 없는 상태에 이르러 전력소비를 증가 시키는 문제점이 있다. 이와 관련하여, 한국공개특허 10-2011-0070297호는 "전력 산출장치 및 이를 이용한 전력 소모량 절감 방법"에 관한 기술을 개시하고 있다. 한편, 시뮬레이션 레벨에서 전력 산출 모델을 모델링하는 방법은 상세한 정보를 이용하여 분석 및 예측이 가능하여 많이 적용되고 있다. 그러나 시뮬레이션은 한 시간 이상 길게는 하루 이상의 분석 시간이 걸리는 경우가 빈번하고, 시뮬레이션의 응용 소프트웨어 변경 및 수정은 전문적인 지식을 요구하며, 경우에 따라서는 소프트웨어를 재설계함에 있어 다시 프로그래밍을 수행하고, 이를 다시 분석하는데 막대한 시간과 비용이 소요되는 문제점이 있다.
이러한 배경에서, 본 발명은 가상 데스크탑 서비스를 효율적으로 제공할 수 있는 아키텍처(Architecture)를 제공하는 데 주된 목적이 있다.
또한, 본 발명은 가상화를 구현하는 서버와 사용자 사이의 거리와 사용자의 서버 이용 패턴에 따라 가상 데스크톱 서비스를 제공하는 데 주된 목적이 있다.
발명의 목적은 하드웨어를 이용한 가상화 지원 구조가 적용된 네트워크 카드를 사용하는 서버 가상화 환경에서 네트워크 I/O 성능을 더욱 향상시킬 수 있는 가상 데스크탑 서비스 시스템 및 그것의 가상 데스크탑 서비스 제공 방법을 제공하는 데 있다.
본 발명은 가상 머신의 구성요소 별 소비 전력 비율과 소비 전력 변화량을 이용하여 가상 머신의 전체소비 전력량을 산출하여 서버의 전체 소비 전력량을 예측함으로써, 전력을 산출하는 하드디스크 없이도 서버의 전력 변화나 추이를 빠르게 예측할 수 있도록 하는 가상 머신을 이용한 서버 전력 예측 장치 및 그 방법을 제공하는데 그 목적이 있다.
상기한 목적을 달성하기 위한 본 발명에 따른 가상 데스크탑 서비스 장치에 의해 수행되는 가상 데스크탑 서비스 방법은, 커넥션 브로커가 가상 데스크탑 서비스(Virtual Desktop Service)를 위한 사용자의 유저 프로파일을 확인하고, 상기 사용자 단말의 하드웨어에 적합한 가상 머신을 찾는 단계; 상기 커넥션 브로커가 상기 적합한 가상 머신이 없는 경우 가상머신 인프라스트럭처에 해당 가상머신 생성을 요청하고, 상기 적합한 가상 머신이 있는 경우 상기 커넥션 브로커가 해당 가상 머신에 사용자 프로파일을 적용하고 가상 데스트탑을 생성하는 단계; 및 상기 커넥션 브로커가 상기 생성된 가상 데스크탑을 상기 사용자 단말에 전송하기 위한 연결 정보를 상기 사용자 단말에 전송하고, 가상 데스크탑의 전송 프로토콜을 사용하여 상기 가상 데스크탑을 상기 사용자 단말에 전송하는 단계;를 포함한다.
이 때, 상기 사용자 단말의 하드웨어에 적합한 가상 머신을 찾는 단계는 네트워크에 포함된 복수의 가상화 서버가 분산되어 있는지 확인하는 단계; 상기 복수의 가상화 서버가 분산되어 있다면, 상기 사용자와 상기 복수의 가상화 서버 사이의 네트워크 거리를 측정하는 단계; 측정된 네트워크 거리를 바탕으로 상기 복수의 가상화 서버 중 적어도 하나의 가상화 서버를 선택하는 단계; 그리고 상기 선택된 가상화 서버에 가상 머신에 대한 구동 명령을 전송하는 단계;를 더 포함할 수 있다.
이 때, 상기 사용자 단말의 하드웨어에 적합한 가상 머신을 찾는 단계는 제 1 네트워크 카드에 제공되는 적어도 하나의 가상 네트워크 인터페이스 또는 제 2 네트워크 카드를 이용하여 적어도 하나의 가상 머신 각각에 네트워크 연결을 제공하는 단계; 상기 적어도 하나의 가상 머신의 네트워크 사용량을 모니터링하는 단계; 및 상기 모니터링한 결과에 기초하여 상기 적어도 하나의 가상 머신에 상기 적어도 하나의 가상 네트워크 인터페이스를 재할당하는 단계를 더 포함할 수 있다.
이 때, 상기 사용자 단말의 하드웨어에 적합한 가상 머신을 찾는 단계는 서버에 할당된 가상 머신의 초기 전력량을 산출하는 단계; 상기 가상 머신의 구성요소 별 소비 전력 비율을 산출하는 단계; 일정시간 동안 상기 가상 머신의 구성요소 별 소비 전력 변화량을 산출하는 단계; 상기 가상 머신의 초기 전력량과 상기 구성요소 별 소비 전력 비율 및 상기 구성요소 별 소비 전력 변화량을 토대로 상기 가상 머신의 전체 소비 전력량을 산출하는 단계; 및 상기 서버의 초기 전력량에 상기 가상 머신의 전체 소비 전력량을 합하여 상기 서버의 전체 소비 전력량을 예측하는 단계;를 더 포함할 수 있다.
또한, 본 발명에 따른 가상 데스크탑 서비스 장치는, 가상 데스크탑 서비스(Virtual Desktop Service)을 사용하는 사용자 단말과 가상 데스크탑 서비스를 제공하는 복수의 서버들 간에 사용되는 전달 프로토콜의 코디네이션 작업을 수행하고, 상기 서버들 간에 사용자 로드를 관리하는 커넥션 브로커; 상기 가상 데스크탑 서비스를 위한 운영체제, 애플리케이션 및 사용자 프로파일들을 포함하는 소프트웨어 리소스를 제공하는 리소스 풀; 및 하드웨어 리소스를 지원하고 상기 하드웨어 리소스에 상기 소프트웨어 리소스에 저장된 소프트웨어를 동적으로 할당하는 가상머신 인프라스트럭처;를 포함한다.
이상에서 설명한 바와 같이 본 발명에 의하면, 가상 데스크탑 서비스를 효율적으로 제공할 수 있는 아키텍처(Architecture)를 제공하는 효과가 있다.
본 발명에 따르면, 가상화 데스크탑 매니저 및 클라이언트 장치를 가지는 DaaS 시스템이 적용되어, 데스크이상에서 설명한 바와 같이 본 발명에 의하면, 가상 데스크탑 서비스를 효율적으로 제공할 수 있는 아키텍처(Architecture)를 제공하는 효과가 있다.
본 발명에 따르면, 가상화 데스크탑 매니저 및 클라이언트 장치를 가지는 DaaS 시스템이 적용되어, 데스크탑 가상화를 이용한 멀티 피씨(PC) 시스템을 이용하여 효율적인 관리가 가능하며, 시스템 적용이 용이하고 기존 가상화 시스템에도 적용가능 할 수 있다.
본 발명에 따르면, 클라이언트 시스템의 전원 인가후 바로 가상 데스크탑 서비스에 접속 가능하며, 가상 데스크탑 서비스의 가상 머신 종료 시 클라이언트의 전원도 함께 종료됨으로써, 사용자들은 클라이언트를 구동하는 운영체제 및 가상 데스트탑 클라이언트 소프트웨어를 인지하지 않은 채 가상머신 서비스를 받을 수 있는 환경을 제공한다.
본 발명에 따르면, 가상 데스크탑 서비스를 위하여 사용자에게 할당될 사용자 OS 이미지와 사용자 디스크 이미지를 빠른 시간에 제공할 수 있다.
또한, 미리 준비된 이미지 디스크를 할당하므로, 가상머신 생성 및 이미지복사 등의 동작을 줄여서 서버 가상화 환경에서 서버 부하를 크게 개선할 수 있다.
본 발명에 따르면, 사용자에게 사용자의 요구에 적합한 가상 데스크톱 서비스를 제공됨으로써, 서버의 부하를 분산시키고, 서버의 전력 사용을 최소화 할 수 있다. 즉, 가상 데스크톱 서비스를 제공하는 가상화 서버가 지역적으로 분산된 환경이라면, 가상화 서버에 사용자까지의 네트워크 거리를 바탕으로 네트워크 지연이 가장 짧은 가상화 서버에 가상 머신이 할당될 수 있다.
본 발명에 따르면, 사용자의 가상 머신 활용 형태에 따라 서버 전력 사용량이 예측된 후 예측결과에 따라 가상화 서버가 선택될 수 있다.
본 발명에 따르면 가상 데스크탑 서비스 시스템 및 그것의 가상 데스크탑 서비스 제공 방법은 하드웨어를 이용한 가상화 지원 구조가 적용된 네트워크 카드를 사용하는 서버 가상화 환경에서 네트워크 자원을 동적으로 할당하여 네트워크 I/O 성능을 더욱 향상시킬 수 있다.
본 발명에 따르면 의한 가상 머신을 이용한 서버 전력 예측 장치 및 그 방법은 가상 머신의 구성요소 별 소비 전력 비율과 소비 전력 변화량을 이용하여 산출된 가상 머신의 전체 소비 전력량을 토대로 서버의 전체 소비전력량을 예측함으로써, 실제 서버의 전력을 산출하는 하드디스크 없이도 서버 전체의 전력 변화나 추이를 빠르게 예측할 수 있도록 하는 효과가 있다.
도 1은 본 발명의 실시예에 따른 가상 데스크탑 서비스를 위한 서비스 아키텍처를 나타낸 도면이다.
도 2는 본 발명의 실시예에 따른 가상 데스크탑 서비스를 위한 서비스 아키텍처에 대한 개념적인 다이어그램이다.
도 3은 본 발명의 실시예에 따른 가상 데스크탑 서비스를 위한 방법에 대한 흐름도이다.
도 4는 본 발명의 실시예에 따른 가상 데스크탑 서비스를 위한 기능상 계층화된 아키텍처를 나타낸 도면이다.
도 5는 본 발명의 실시예에 따른 가상 데스크탑 서비스를 위한 기능상 계층화된 아키텍처에 대한 개념적인 다이어그램이다.
도 6은 본 발명의 실시 예에 따른 가상 데스크톱 서비스를 제공하는 네트워크를 나타낸 도면이다.
도 7 및 도 8은 본 발명의 실시 예에 따른 가상 데스크톱 서비스의 제공과정을 나타낸 흐름도이다.
도 9은 본 발명의 일 실시예에 따른 가상 데스크탑 서비스 시스템을 보여주는 블록도이다.
도 10는 본 발명의 일 실시예에 따른 가상 데스크탑 서비스 제공 방법을 보여주는 흐름도이다.
도 11은 본 발명의 다른 실시예에 따른 가상 데스크탑 서비스 제공 방법을 보여주는 흐름도이다.
도 12는 본 발명의 또 다른 실시예에 따른 가상 데스크탑 서비스 제공 방법을 보여주는 흐름도이다.
도 13는 본 발명의 일 실시예에 따른 가상 데스크탑 서비스 제공 방법을 실행하는 컴퓨팅 시스템을 보여주는 블록도이다.
도 14은 본 발명에 따른 가상 머신을 이용한 서버 전력 예측 장치의 구성을 설명하기 위한 도면이다.
도 15는 본 발명에 따른 가상 머신을 이용한 서버 전력 예측 장치에 채용되는 소비 전력 변화량 산출부의 세부 구성을 설명하기 위한 도면이다.
도 16은 본 발명에 따른 가상 머신을 이용한 서버 전력 예측 방법의 순서를 설명하기 위한 도면이다.
도 17는 본 발명에 따른 가상 머신을 이용한 서버 전력 예측 방법에서 소비전력 변화량을 산출하는 단계를 설명하기 위한 도면이다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
도 1은 본 발명의 실시예에 따른 가상 데스크탑 서비스(Virtual DesktopService)를 위한 서비스 아키텍처(Service Architecture)를 나타낸 도면이다.
서비스 제공자(Service Provider)의 입장에서 종단-사용자(End-User)에게 가상 데스크탑 서비스를 제공하기 위하여 몇몇의 단계들이 있으며, 이러한 단계들은 도 1에 도시된 바와 같이, 커넥션 브로커(CB: Connection Broker, 110), 리소스풀(Resource Pool, 120) 및 가상머신 인프라스트럭처(Virtual MachineInfrastructure, 130)를 포함하는 3가지의 주요 액터들(Actors)에 의해 수행될 수 있다.
이하에서는, 3가지의 주요 액터들(Actors)의 기능에 대하여 도 2를 참조하여 설명한다. 도 2는 본 발명의 실시예에 따른 가상 데스크탑 서비스를 위한 서비스 아키텍처에 대한 개념적인 다이어그램(Conceptual Diagram)이다.
도 2를 참조하면, 커넥션 브로커(110)는 사용자 단말(20)이 가상 데스크탑(Virtual Desktop, 200)에 연결되도록 하는 소프트웨어 프로그램일 수 있으며, 사용자 단말(20)과 사용자 단말(20)의 소프트웨어를 승인하기(validate) 위한 사용자 인증(User Authentication, 211) 및 라이센스 확인(License Verification, 212)기능과, 사용자 단말(20)에 할당되는 가상머신(VM: Virtual Machine)의 관리 기능과, 가상머신의 활동 레벨(Activity Level)을 측정하는 서버의 모니터링 기능(213)과, 사용자 단말(20)과 서버 간에 동일한 프로토콜이 사용되도록 하는 프로토콜 코디네이션(Protocol Coordination, 214) 기능을 수행한다. 이러한 커넥션 브로커(110)는, 백업 스토리지(Backup Storage)와 가상 데스크탑 서비스 서버(Virtual Desktop Servers) 간의 연결(Connection)을 제공할 수 있다.
도 2를 참조하면, 리소스 풀(120)은, 요구형(On-Demand) 가상 데스크탑 서비스를 제공하기 위하여, 운영체제(OS: Operating Systems), 애플리케이션(Applications) 및 사용자 프로파일들(User Profiles) 등과 같은 3개의 다른 타입의 고성능 소프트웨어 리소스들(High-Capacity Software Resources)을 관리할 수 있다. 즉, 리소스 풀(120)은, 도 2에 도시된 바와 같이, 운영체제 풀(OS Pool, 221), 애플리케이션 풀(Application Pool, 222) 및 사용자 프로파일 풀(User Profile Pool, 223) 등을 포함한다. 이러한 리소스 풀(120)에 의해 관리되는 소프트웨어 리소스들은 스트리밍 형태로의 소정의 시간에 특정 가상머신으로 전달되고 특정 가상머신 상에서 실행된다.
그리고, 리소스 풀(120)은 커넥션 브로커(110)에 의한 요청으로 해당 소프트웨어 리소스에 관한 프로비전 정보(Provision Information, 224)를 제공할 수 있다. 위에서 언급한 사용자 프로파일은, 일 예로, 하드웨어 구성(예를 들면, CPU, RAM, I/O 등), 사용되는 운영체제(OS), 선택된 애플리케이션, 사용자의 컴퓨팅 환경 정보(예를 들면, 디스플레이 해상도, 인터넷 액세스 방식 등)에 대한 개별 정보를 포함할 수 있다. 이러한 사용자 프로파일은 사용자별로 관리될 수 있다.
도 2를 참조하면, 가상머신 인프라스트럭처(130)는, 하드웨어 리소스(Hardware Resources, 231)를 지원하고 가상머신(VM: Virtual Machine, 232)을 생성하는 주요 역할을 한다. 가상 데스크탑 서버(Virtual Desktop Server)에서, 일 예로, 하이퍼바이저(Hypervisor, 233)라고도 불리는 가상화 기술(Virtualization Technology)은 위에서 언급한 하드웨어 리소스(231)를 효율적으로 사용하기 위해서 매우 필요할 것 이다. 위에서 언급한 하이퍼바이저(233)는 물리적인 하드웨어 리소스들(231)을 추출(Abstract)하여 소프트웨어(234)의 상위 레벨로 동적으로 할당한다.
즉, 이러한 가상머신 인프라스트럭처(130)에서 지원되는 하드웨어 리소스(231)는, 물리적인 하드웨어 리소스(231)를 추출(Abstract)해서 소프트웨어(234)의 상위 레벨로 동적으로 할당하는 가상 데스크탑 서버 내에서의 하이퍼바이저(Hypervisor) 가상화 기술에 의해 효율적으로 사용될 수 있다. 결과적으로, 가상머신 인프라스트럭처(130)는 사용자 단말(20)의 소프트웨어(234)가 동작되는 가상머신들(232)을 제공한다. 이러한 가상머신들을 가상 데스크탑들(Virtual Desktops, 200)이라 한다.
아래에서는, 가상 데스크탑 서비스를 위한 방법을 도 3을 참조하여 설명하고, 이때, 가상 데스크탑 서비스를 위한 서비스 아키텍처에 대한 개념적인 다이어그램을 도시한 도 2를 함께 참조한다. 도 3은 본 발명의 실시예에 따른 가상 데스크탑 서비스를 위한 방법에 대한 흐름도이다.
도 3을 참조하면, 본 발명의 실시예에 따른 가상 데스크탑 서비스를 위한 방법은 사용자 단말 접속 및 사용자 확인 단계(S300), 가상머신 검색 단계(S302), 사용자 프로파일 적용 단계(S308), 세션 생성 단계(S310), 사용자 단말 연결 단계(S312), 경험 정보 커뮤니케이션 단계(S314), 로그-오프 동작 및 사용자 프로파일 업데이트 단계(S316) 등에 따라 진행된다.
사용자 단말 접속 및 사용자 확인 단계(S300)에서는, 사용자 단말(20)이 SSH(Secure Shell) 및 TLS(Transport Layer Security) 등 중 하나 이상의 보안 프로토콜을 통하여 접속되면, 커넥션 브로커(110)는 사용자 ID 및 비밀번호로 해당 사용자를 확인(Validate)한다. 가상머신 검색 단계(S302)에서, 커넥션 브로커(110)는, 가상머신 할당을 위해서, 해당하는 사용자 프로파일(User Profile)을 식별하고, 프로비저닝 기능(Provisioning Function)을 이용하여 사용자 단말(20)의 하드웨어 구성을 만족하고 컴퓨팅 환경에 최적인 가상머신을 검색한다.
이러한 가상머신 검색 단계(S302)에서의 검색 결과에 가상머신 검색 유무를 판단(S304)하여, 적당한 가상머신이 없으면, 커넥션 브로커(110)가 하드웨어 구성에 대한 정보를 전송함으로써 가상머신 인프라스트럭처(130)에게 가상머신 생성을 요청한다. 이에 따라, 가상머신 인프라스트럭처(130)에서 가상머신이 생성된다(S306).
사용자 프로파일 적용 단계(S308)에서, 가상머신이 할당되거나 생성된 이후, 커넥션 브로커(110)는, 사용자 프로파일을 할당되거나 생성된 가상머신에 적용(Apply)한다. 이러한 사용자 프로파일 적용 단계(S308)에서, 커넥션 브로커(110)는 가상 데스크탑(200)을 구성(Construct) 하기 위한 운영체제(OS) 및 애플리케이션을 설치(Installation)할 수 있다. 세션 생성 단계(S310)에서, 가상 데스크탑(200)을 전달하기 위한 세션(Session)이 가상머신 인프라스트럭처(130) 내에서 생성되고, 생성된 세션에 대한 세션 정보가 커넥션 브로커(110)로 디스패치(Dispatch)된다. 사용자 단말 연결 단계(S312)에서, 커넥션 브로커(110)는 세션 정보를 사용자 단말(20)로 전송하고, 사용자 단말(20)은 가상머신 인프라스트럭처(130)와 연결된다.
경험 정보 커뮤니케이션 단계(S314)에서, 사용자 단말(20)은 가상 데스크탑 전송 프로토콜(VDDP: Virtual Desktop Delivery Protocol)을 이용하여 가상 데스크탑(200)에 의해서 사용자들의 경험(Experience) 정보를 커뮤니케이션(Communication)한다. 로그-오프 동작 및 사용자 프로파일 업데이트 단계(S316)에서, 사용자 단말(20)은 가상 데스크탑 서비스가 종료될 때 사용자 데이터의 손실을 방지하기 위하여 로그-오프(Log-Off) 동작을 실행하고, 이러한 로그-오프 동작 도중에, 커넥션브로커(110)는 변경된 사용자 프로파일을 사용자 프로파일 풀(User Profile Pool,223) 내에 업데이트한다. 이러한 로그-오프 동작 및 사용자 프로파일 업데이트 단계(S316)에서, 커넥션 브로커(110)는 해당 가상머신이 이용 가능한 상태가 되도록 해당 가상머신을 리턴(Return) 시킬 수 있다.
이하에서는, 본 발명의 실시예에 따른 가상 데스크탑 서비스의 기능상 레이어(Functional Layer)에 대하여 도 4 및 도 5를 참조하여 설명한다. 도 4는 본 발명의 실시예에 따른 가상 데스크탑 서비스를 위한 기능상 계층화된 아키텍처(Functional Layered Architecture)를 나타낸 도면이다.
도 4를 참조하면, 본 발명의 실시예에 따른 가상 데스크탑 서비스를 위한 기능상 계층화된 아키텍처는, 사용자 레이어(User Layer, 410), 클라우드 액세스 및 퍼블리케이션 레이어(Cloud Access and Publication Layer, 420), 클라우드 네트워크 서비스 오케스트레이션 레이어(Cloud Network Service Orchestration Layer, 430), 클라우드 서비스 레이어(Cloud Services Layer, 440) 및 리소스 레이어(Resource Layer, 450) 등의 기능적인 레이어(Functional Layer)를 포함한다.
아래에서는, 위에서 언급한 기능적인 레이어 각각에 대하여 도 5를 참조하여 설명한다. 도 5는 본 발명의 실시예에 따른 가상 데스크탑 서비스를 위한 기능상 계층화된 아키텍처를 나타낸 도면이다.
도 5를 참조하면, 사용자 레이어(410)는, 사용자 단말(50)과 클라우드 인프라스트럭처(Cloud Infrastructure) 간의 인터랙션(Interaction)을 수행하고, 클라우드 서비스 요청을 전송하며, 클라우드 서비스 액세스를 수행하고, 클라우드 리소스를 관리하거나 모니터하기 위해 사용되고, 종단 사용자 기능(End User Function,511), 단말 적응 기능(Terminal Adaptation Function, 512), 관리 기능(Administration Function, 513), 파트너(510)와의 파트너 기능(Partner Function, 514) 및 인터-클라우드 기능(Inter-Cloud Function, 515) 등을 포함한다.
클라우드(Cloud)가 클라우드 서비스 요청을 수신할 때, 클라우드는 인터-클라우드 기능(515)을 통해 자신의 리소스 또는 다른 클라우드의 리소스를 조직(Orchestrate)하고, 클라우드 서비스를 사용자 레이어(515)를 통해 제공한다. 종단 사용자 기능(511)은 종단 사용자, 즉 사용자 단말(50)이 클라우드 서비스에 액세스하고 클라우드 서비스를 소비(consume)하도록 지원한다. 관리 기능(513)은 기업 관리자가 비즈니스 프로세스 내에서 클라우드 리소스 및 서비스를 관리하는 것을 지원한다. 파트너 기능(514)은 클라우드 서비스 공급자를 통해 파트너 관계를 가능하게 한다.
인터-클라우드 기능(515)은 여러 개의 CSP(Cloud Service Provider)들의 클라우드들과 인터커넥트(Interconnection)하기 위하여 인터커넥션 인터페이스 (Interconnection Interface) 및 브로커(Broker) 기능을 제공한다. 이러한 인터- 클라우드 기능(515)은 인터-클라우드 서비스 브로커 기능(Inter-Cloud Service Broker function), 인터-클라우드 포털 기능(Inter-Cloud Portal function) 등을 포함한다. 인터-클라우드 브로커 기능은 다른 CSP들(52)의 클라우드 서비스 및 리소스에 접근하기 위하여 클라우드 사용자들 또는 애플리케이션들에 대한 대체 가능한솔루션(Alternative Solution)을 제공한다. 가상 데스크탑 서비스를 위한 사용자 단말은 랩탑(Laptop), 데스크탑 PC, 씬클라이언트(Thin Client), 모바일 폰 등과 같이 다양한 종류일 수 있다. 또한, 단말 적응(Terminal Adaptation)은 다른 대역 환경에서 다른 주변기기(Peripherals)를 가지는 다양한 해상도 중에서 단말 장치가 적당한 데스크탑을 제공할 수 있도록 하는 기능을 의미한다.
도 5를 참조하면, 클라우드 액세스 및 퍼블리케이션 레이어(420)는, 수동 및 자동화된 클라우드 액션 및 소비(Cloud Actions and Consumption)를 위해 커먼 인 터페이스(Common Interface)를 제공하고, 클라우드 서비스 제공자(CSP: Cloud Service Provider)들의 서비스 및 리소스에 액세스하기 위한 클라우드 애플리케이션 프로그램 인터페이스(API: Application Program Interface)들을 사용하여 소비자 또는 비즈니스 프로세스들의 클라우드 서비스 소비 요청을 수락하고, 네트워크종료 기능(Network termination function), API 종료 기능(API termination function) 및 인터-클라우드 중재 기능(Inter-Cloud Mediation function) 등을 포함한다.
도 5를 참조하면, 클라우드 네트워크 서비스 오케스트레이션 레이어(430)는, 전체 정보 시스템 환경으로의 접근 또는 네트워크를 통한 원격 클라이언트 디바이스로의 접근을 인캡슐레이션(Encapsulation) 하고 전달하는 가상 데스크탑 전송 기능(Virtual Desktop Delivery Function, 531)과, 커넥션 브로커가 사용자 데스크탑세션을 인증하기 위하여 디렉토리 서버를 참조(Consult)함으로써 다른 보안 레벨에대한 개인화된 애플리케이션의 조합으로 승인된 접근을 제공하는 인증(Authentication) 엔티티(Entity), 사용자 단말과 가상 데스크탑 간에 다양한 통신 프로토콜이 있을 수 있는데, 커넥션 브로커가 사용자 데스크탑 세션이 인증 이후에 데이터 및 비디오 전송을 위한 공통 통신 프로토콜이 사용자 단말과 가상 데스크탑 간에 사용되도록 코디네이트하는 기능을 수행하는 코디네이션(Coordination) 엔티티, 커넥션 브로커가 가상머신의 런타임(Runtime) 상태 모니터링을 수행하고 필요한 애플리케이션에 대한 동작 환경을 보장하는 액션을 수행하는 모니터링 및 관리(Monitoring and Management) 엔티티, 및 커넥션 브로커가 사용자 단말(50)로 하여금 가상 데스크탑에 호스트되어 있는 승인된 애플리케이션에 접근할 수 있도록 하기 위하여 소프트웨어 라이센스 확인 기능을 제공하는 확인(Verification) 엔티티로 구성된 커넥션 브로커 기능(Connection Broker Function, 532) 등을 포함한다.
전술한 가상 데스크탑 전송 기능(Virtual Desktop Delivery Function, 531)에서, 가상 데스크탑 전송 프로토콜(VDDP)는 가상 데스크탑 전송 기능(531)의 핵심구성요소이며, 일 예로, 디스플레이, 입력, 커서, 제어 및 구성, 모니터링 정보 등의 모든 상호작용 정보(인터랙션 정보)를 전달하기 위해서 DaaS(Desktop as aService)를 위한 서버와 사용자 단말(50) 사이에 통신 채널을 제공한다. 또한, 전술한 모니터링 및 관리(Monitoring and Management) 엔티티에서 커넥션 브로커는, 새로 도달한 요청에 대하여 새로운 아이들(Idle) 가상머신 인스턴스(Virtual Machine Instance)를 할당하거나, 또는 시스템 실패(Failure)로부터 복구된 이후에 클라이언트 측 디바이스에 의해 제기된 요청에 대하여 이전 인스턴스(Previous Instance)를 할당하도록 가상머신 인프라스트럭처에게 지시하고, 커넥션 브로커가 새로운 로그인 사용자 세션(Login User Session)을 위하여 새로운 클라우드 가상머신을 준비하도록 가상머신 인프라스트럭처에게 요청할 수 있다. 전술한 클라우드 네트워크 서비스 오케스트레이션 레이어(430)는, 기록 기능(Records Function, 533), 구성 기능(Configuration Function, 534) 등을 더 포함한다.
도 5를 참조하면, 클라우드 서비스 레이어(440)는, 광대역 네트워크를 통해서 사용자 단말(50)에게 가상 데스크탑 서비스를 제공하는 DaaS(Desktop as a Service) 기능(541)과, 게스트 OS(Guest OS) 및 애플리케이션이 직렬화되어(Serialized) 저장되어 있는 광역 리소스 저장(Repository) 또는 저장 서버 세트(Repository Server Set) 이고, 클라우드 가상머신이 가상머신 인프라스트럭처에서 생성되도록 하는 가상 템플릿을 생성하기 위한 시각화된 모델링 툴(Visualized Modeling Tool)을 구비하며, 실행중인 가상 데스크탑으로부터 필요하고 운영체제,애플리케이션 소프트웨어, 사용자 프로파일 및 시스템 구성을 포함하는 리소스를 동적으로 어셈블(Assemble)하고 해당되는 이미지 파일을 생산하는 능력을 가지고, 상기 가상머신 인프라스트럭처와의 통신을 가능하게 하고 직렬화된 이미지 파일로부터 원격에서 가상 데스크탑을 생성하는 것을 가능하게 하는 네트워크 기반의 부트 스트랩 프로토콜(Boot Strap Protocol)을 지원하는 리소스 풀(Resource Pool)기능(545)을 포함한다. 전술한 클라우드 서비스 레이어(440)는, 도 5에 도시된 바와 같이, 서비스 오케스트레이션 기능(Service Orchestration function, 542), 서비스 퍼블리케이션기능(Service Publication function, 543) 및 서비스 적응 기능(Service Adaptation function, 544) 등을 더 포함할 수 있다.
도 5를 참조하면, 리소스 레이어(450)는, 컴퓨팅 리소스, 저장 리소스, 네트워크 리소스, 파워 리소스(Power Resource) 및 클라우드 컴퓨팅 환경 내에 필수적인 다른 구성들(Facilities)을 포함하는 물리적인 리소스(Physical Resource, 551)와, 가상머신, 가상 네트워크 리소스 및 가상 스토리지 리소스를 포함하는 가상 리
소스(Virtual Resource, 552)를 가진다. 가상머신은 XEN, KVM 등과 같은 각각 다른 서버 가상화 기술(Server Virtualization Technologies)에 의하여 가상머신 인프라스트럭처(553) 내에 생성되는 가상화 머신을 의미한다. 도 5를 참조하면, 본 발명의 실시예에 따른 가상 데스크탑 서비스를 위한 기능상 계층화된 아키텍처는 모니터링 및 SLA 기능과 관리, 지원 및 보안 기능을 포함하는 크로스 레이어 기능(Cross Layer Function, 560)을 더 제공할 수 있다.
위에서 언급한 가상머신 인프라스트럭처(553)는 HA 특성을 가지는 클러스트환경을 의미하며, 그 내부에서는 많은 실행 가상머신 인스턴스가 동일한 가상머신템플릿(Template)으로부터 생성되어 동일한 파라미터로 구성되어 있다. 거의 모든가상머신 인프라스트럭처(553)는 가상머신 이동 능력(Migration Capability)을 제공하고 있어서, 비즈니스 연속성을 유지하기 위하여 시스템 실패(Failure)의 경우실행중인 인스턴스가 다른 호스팅 서버로 이동하는 것을 가능하게 한다. 본 명세서에서 기재된 가상 데스크탑 서비스(Virtual Desktop Service)는 데이터 저장 하드디스크와 애플리케이션 등을 인터넷 공간에 제공하는 서비스일 수 있으며, 즉, 개인용 PC 또는 업무용 데스크탑을 실제 물리적 하드웨어를 이용하는 것이 아니라 데스크탑 가상화 기술을 적용하여 가상머신을 이용한 데스크탑 서비스일 수 있다. 이때 생성된 데스크탑 용 가상머신은 인터넷 데이터 센터 등 원격에 위치하고 언제 어디서나 마치 로컬 데스크탑처럼 사용이 가능하다. 본 명세서에서 기재된 가상 데스크탑 서비스(Virtual Desktop Service)는 DaaS(Desktop as a Service) 서비스 또는 클라우드 컴퓨팅(Cloud Computing) 서비스 또는 클라우드 데스크탑 서비스(Cloud Desktop Service) 등일 수 있다. 본 발명의 실시예에 따른 가상 데스크탑 서비스를 위한 아키텍처(서비스 아키텍처 및 기능상 계층화된 아키텍처)는, 가상 데스크탑 서비스를 사용자 단말로 제공하는 시스템(System) 또는 서버(Server)의 설계 방식이거나, 가상 데스크탑 서비스를 사용자 단말로 제공하는 시스템(System) 또는 서버(Server) 그 자체일 수도 있다.
이하 도 6, 7 및 8에서 전술한 내용은 도 2의 커넥션 브로커(110)에 의해 수행되거나 설계자의 변경에 의해 개별 구성으로 수행될 수 있다. 구체적인 내용을 도 6 내지 도 8을 통해 가상 데스크톱 서비스에 대해 다시 한번 설명한다.
도 6은 본 발명의 실시 예에 따른 가상 데스크톱 서비스를 제공하는 네트워크를 나타낸 도면이다.
도 6을 참조하면, 가상 데스크톱 서비스를 제공하는 네트워크는, 관리 서버(7110)와, 관리 서버에 연결된 복수의 가상화(virtualization) 서버(7120)를 포함한다. 관리 서버(7110)는, 복수의 가상화 서버(120)에서 구현된 가상 데스크톱을 광역 통신망(wide area network, WAN) 또는 근거리 통신망(local area network, LAN)등을 통하여 사용자들에게 제공할 수 있다. 관리 서버(7110)는 거리 측정부(7111), 정책부(7112), 스케줄러(7113), 데이터베이스(7114), 그리고 서비스 제공부(7115)를 포함한다. 거리 측정부(7111)는, 사용자와 관리 서버(7110)에 연결된 복수의 가상화 서버(7120) 사이의 거리를 측정한다. 정책부(7112)는, 관리 서버(7110)가 사용자에게 가상 데스크톱 서비스를 제공하기 위하여 복수의 가상화 서버(7120) 중 적어도 하나의 가상화 서버를 선택할 때, 스케줄러(7113)로 정책을 제공할 수 있다. 이때, 데이터 베이스(7114)에 저장된 각 가상화 서버(7120)의 주소, 가상 머신(7121)의 할당 현황 등의 정보를 참고하여 스케줄러(7113)로 정책을 제공할 수 있다. 스케줄러(7113)는, 정책에 따라서 가상화 서버(7120)를 선택하고, 선택한 가상화 서버(7120)로 가상 머신(7121)의 수행 명령을 전송하며, 그 결과를 데이터 베이스(7114)에 저장한다. 데이터 베이스(7114)에는 가상화 서버(7120)의 주소, 가상화 서버(7120)의 선택현황, 각 가상화 서버(7120)에 할당된 가상 머신(7121)의 현황 등의 정보가 저장되어 있다. 또한, 데이터 베이스(114)에는 사용자의 서비스 이용 패턴, 가상화 서버(7120)의 전력 사용량 등의 정보가 저장될 수 있다. 서비스 제공부(7115)는, 스케줄러(7113)에서 선택된 가상화 서버(7120)에 가상머신(7121)이 할당되면, 사용자에게 가상 데스크톱 서비스를 제공할 수 있다. 가상화 서버(7120)는, 사용자에게 가상 데스크톱 서비스를 제공하기 위한 가상 머신(7121)을 구동할 수 있다. 즉, 가상화 서버(7120)의 하이퍼바이저(7122)는 가상화 서버(7120)에 포함된 하드웨어(7123)를 이용하여 가상 머신(7121)을 에뮬레이트(emulate) 할 수 있다. 또한, 가상화 서버(7120)는 관리 서버(7110)의 스케줄러(7113)로부터 요청을 수신하여 가상 머신을 할당 하는 에이전트(7124)를 포함한다. 이때, 에이전트(7124)는 가상화 서버(7120)의 각종 자원(CPU, 메모리, 네트워크, 디스크 등)의 사용량 정보와 가상 머신(7121)의 할당 현황, 전력 사용현황 등을 관리 서버(7110)의 데이터 베이스(7114)로 전달할 수 있다.
도 7 및 도 8은 본 발명의 실시 예에 따른 가상 데스크톱 서비스의 제공과정을 나타낸 흐름도이다.
도 7 및 도 8을 참조하면, 먼저, 사용자가 통신망을 통하여 관리 서버(7110)로 가상 데스크톱 서비스를 요청(S7201)하면, 관리 서버(7110)의 스케줄러(7113)는 가상 머신이 구동될 가상화 서버(7120)를 선택한다. 이때, 스케줄러(7113)는 비슷한 범위에 있는 복수의 가상화 서버(7120)를 선택할 수 있다. 본 발명의 한 실시 예에서는, 가상화 서버의 자원 사용률이 50% 미만이라면 자원 사용률이 ±5% 이내에 속하는 가상화 서버를 비슷하다고 판단하고, 자원 사용률이 50% 이상 70% 미만이라면 ±2% 이내에 속하는 가상화 서버를 비슷한 범위로 판단하며, 자원 사용률이 그 이상일 경우 ±1% 이내에 속하는 가상화 서버를 비슷한 범위로 판단할 수 있다. 먼저, 관리 서버(7110)는 사용자의 이용 패턴이 데이터 베이스(7114)에 입력되어 있는지 확인하여(S7202), 입력된 이용 패턴에 따라 서버 전력 사용량을 예측한다(S7203). 이후, 관리 서버(7110)는 예측된 서버 전력 사용량에 따라 가상화 서버(7120)를 선택할 수 있다(S7204). 이때, 사용자의 이용 패턴이란 미리 정해진 기간 동안 사용자가 이용한 자원의 평균 사용량을 통해 산출된 패턴이다. 사용자의 이용 패턴은 데이터 마이닝(data mining) 기법을 통해 산출될 수 있다. 예를 들어, 하루 종일 가상 머신을 이용하는 사용자는 주로 웹 검색에 관한 업무를 담당할 확률이 크고, 그 경우 네트워크 사용량이 많고, 할당된 CPU 및 메모리의 성능은 모두 활용되지 않는다. 이런 사용자는 네트워크형(network type, NT)사용자 이용 패턴을 가지고 있는 것으로 평가된다. 즉, 사용자가 이용하는 CPU, 메모리, 네트워크, 디스크 등의 자원의 사용량을 평균한 후 평균한 값을 전력 사용예측 기법에 대입하면 사용자의 서버 전력 사용량이 예측될 수 있다. 사용자 패턴은 CPU형(central processor unit, CT), 네트워크형(NT), 메모리형(memory type,MT), 디스크형(disk type, DT) 등이 존재할 수 있다. 하지만, 데이터 베이스(7114)에 사용자의 이용 패턴이 입력되어 있지 않다면, 관리 서버(7110)는 가상화 서버(7120)의 분산 정도를 고려하여(S7205), 가상화 서버(7120)가 분산되어 있는 경우 사용자와 가상화 서버(7120) 사이의 거리를 측정한다(S7206). 이때, 사용자와 가상화 서버(7120) 사이의 거리는 네트워크 상의 거리이며, 아이디 맵스(Internet Distance Maps, IDMaps), 엠-쿱(M-Coop), 킹(King), 가상 랜드마크(Virtual Landmarks) 등의 알고리즘이 거리 측정에 사용될 수 있다. 그리고, 관리 서버(7110)는 사용자로부터 네트워크 상에서 가장 가까운(네트워크 지연이 짧은) 가상화 서버(7120)의 개수를 카운트한 뒤(S7207), 가장 가까운 가상화 서버(7120)가 1개 있다면 그 가상화 서버(7120)를 선택한다(S7208). 이때, 사용자로부터 네트워크 상으로 동일한 거리에 위치한 가상화 서버(7120)가 m개 있다면, 관리 서버(7110)는 m개의 가상화 서버(7120)에서 구동 중인 복수의 가상 머신의 사양을 비교(S7209)하여 자원 사용률이 낮은 가상화 서버(7120)를 선택한다(S7210). 즉, 관리 서버(7110)에 m개의 가상화 서버(7120)가 연결되어 있는 경우, 관리서버는 가상화 서버(7120)에서 사용되는 CPU, 메모리, 디스크 등에 가중치를 둔 후 정량화한 값을 가상화 서버(7120)별로 비교함으로써 사용률이 가장 낮은 가상화 서버(7120)를 선택할 수 있다. 하지만, m개의 가상화 서버(7120)의 자원 사용률도 비슷하다면, 관리 서버(7110)는 가상화 서버(7120)에서 구동 중인 가상 머신의 개수를 비교(S7211)하고, 구동 중인 가상 머신의 개수가 가장 적은 가상화 서버(7120)를 선택한다(S7212). 즉, 관리 서버(7110)에 m개의 가상화 서버(7120)가 연결되어 있는 경우, 각 가상화 서버(7120)에 할당된 가상 머신의 개수를 비교하여 가장 적은 가상 머신이 구동되고 있는 가상화 서버(7120)를 선택할 수 있다. 또한, 가상화 서버(7120) 사이에 성능 차이가 없고, 각 가상화 서버(7120)의 자원 사용률도 비슷한 범위에 속하며, 가상화 서버(120)에서 구동 중인 가상 머신의 수도 동일하다면, 각 가상화 서버(7120)를 순차적으로 선택한다(S7213). 즉, 관리서버(7110)에 m개의 가상화 서버(7120)가 연결되어 있는 경우, 관리 서버(7110)는 각 가상화 서버(7120)를 순차적으로 선택하여 가상 머신을 할당할 수 있다. 한편, 가상화 서버(7120)가 지역적으로 밀집되어 있다면, 관리 서버(7110)는 사용자와 가상화 서버(7120) 사이의 거리를 측정하지 않고, 복수의 가상화 서버(7120)의 성능을 비교(S7214)하여 성능이 가장 우수한 가상화 서버(7120)를 선택한다(S7215). 본 발명의 실시 예에서는 전력 소모가 가장 낮은 서버를 가장 우수한 가상화 서버(7120)로 판단할 수 있다. 즉, 본 발명의 실시 예에 따르면, 가상화 서버(7120)가 지역적으로 밀집된 상황에서는 전력 사용량이 가장 낮은 서버가 가장 우선적으로 선택될 수 있다. 하지만, 가상화 서버(7120) 사이에 성능 차이가 없다면, 관리 서버(7110)는 각 가상화 서버(7120)에서 구동 중인 복수의 가상 머신의 사양(cpu, 메모리, 디스크의 스펙)을 비교(S7209)하여 자원 사용률이 적은 가상화 서버(7120)를 선택한다(S7210). 하지만, 가상화 서버(7120) 사이에 성능 차이가 없고, 각 가상화 서버(7120)의 자원 사용률도 비슷하다면, 관리 서버(7110)는 가상화 서버(7120)에서 구동 중인 가상 머신의 수가 가장 적은 가상화 서버(7120)를 선택한다(S7212). 또한, 가상화 서버(7120) 사이에 성능 차이가 없고, 각 가상화 서버(7120)의 자원 사용률도 비슷하며, 가상화 서버(7120)에서 구동 중인 가상 머신의 수도 동일하다면, 각 가상화 서버(7120)를 순차적으로 선택한다(S7213). 이때, 관리 서버(7110)는 사용자의 업무 유형에 따라서, 유사한 업무가 수행되는 가상 머신을 하나의 가상화 서버(7120)에 할당할 수 있다. 유사한 업무를 수행하는 가상 머신이 하나의 가상화 서버(7120)에서 구동되면, 가상 데스크톱 서비스를 제공할 때 캐싱을 이용한 성능 향상을 기대할 수 있기 때문이다. 이 경우, 특정 사용자가 해당 업무를 위한 가상 데스크톱 서비스의 제공을 요청하면, 관리 서버(7110)는 특정 사용자를 위하여 업무 유형에 따라 지정된 가상화 서버(7120)를 선택할 수 있다. 따라서, 비슷한 업무를 하는 사용자들은 그룹화되어 동일한 가상화 서버(7120)에 할당된 가상 서버를 사용하게 되며, CPU, 메모리 및 캐시 등을 공유할 수 있게 된다.
도 8을 참조하면, 이후, 관리 서버(7110)의 스케줄러(7113)가 가상화 서버(7120)를 선택하고, 가상화 서버(7120)의 에이전트(7124)는 스케줄러(7113)로부터 요청을 수신하여 가상화 서버(7120)에 가상 머신을 할당할 수 있다(S7301). 이후, 관리 서버(7110)의 서비스 제공부(7115)는 선택된 가상화 서버(7120)에서 수행되는 가상 머신을 통해 사용자에게 가상 데스크톱 서비스를 제공할 수 있다(S7302).
이하 도 9 내지 13에서 전술한 내용은 도 2의 커넥션 브로커(110)에 의해 수행되거나 설계자의 변경에 의해 개별 구성으로 수행될 수 있다. 또한 구체적인 내용을 도 9 내지 도 13을 통해 가상 데스크탑 서비스에 대해 다시 한번 설명한다.
도 9은 본 발명의 일 실시예에 따른 가상 데스크탑 서비스 시스템을 보여주는 블록도이다.
도 9을 참조하면, 본 발명의 일 실시예에 따른 가상 데스크탑 서비스 시스템은 적어도 하나의 가상 머신(9110, 9120, 9130), 관리모듈(9200), 에이전트모듈(9300), 적어도 하나의 가상 네트워크 인터페이스 카드(9410,9420, 9430), 제 1 네트워크 카드(9500), 및 제 2 네트워크 카드(9600)를 포함할 수 있다. 본 발명의 일 실시예에 따른 가상 데스크탑 서비스 시스템은 소프트웨어 계층과 하드웨어 계층을 포함할 수 있다. 예를 들어, 소프트웨어 계층은 가상 데스크탑 서비스 시스템의 OS(Operating System) 상에서 구동될 수 있다. 소프트웨어 계층에는 적어도 하나의
가상 머신(9110, 9120, 9130), 관리모듈(9200), 에이전트 모듈(9300), 및 적어도 하나의 가상 네트워크 인터페이스 카드(9410, 9420, 9430)가 포함될 수 있다. 하드웨어 계층은 소프트웨어 계층의 네트워크 연결을 지원할 수 있다. 하드웨어 계층에는 제 1 네트워크 카드(9500) 및 제 2 네트워크 카드(9600)가 포함될 수 있다. 제 1 네트워크 카드(9500)는 예를 들어, 하드웨어를 이용한 가상화 지원 구조가 적용된 네트워크 카드일 수 있다. 하드웨어를 이용한 가상화 지원 구조는 예를 들어, SR-IOV(Single Root I/O Virtualization) 구조를 포함할 수 있다. 제 2 네트워크 카드(9600)는 일반적인 네트워크 카드일 수 있다. 적어도 하나의 가상 머신(9110, 9120, 9130)은 하이퍼바이저(hypervisor)에 의해 생성될 수 있다. 하지만, 이에 한정되는 것은 아니며, 도 9에 도시된 하이퍼바이저는 가상 머신 모니터(Virtual Machine Monitor; VMM)로 대체될 수 있다. 적어도 하나의 가상 머신(9110, 9120, 9130)은 각각 적어도 하나의 가상 네트워크 인터페이스 카드(9410, 9420, 9430)를 통해 제 1 네트워크 카드(9500) 또는 제 2 네트워크 카드(9600)에 연결될 수 있다. 또한, 적어도 하나의 가상 머신(9110, 9120, 9130) 각각은 관리모듈(9200)로부터 할당되는 제 1 네트워크 카드(9500)의 가상 네트워크 인터페이스(9510) 또는 제 2 네트워크 카드(9600)를 통해 네트워크(9700)에 연결될 수 있다. 예를 들어, 가상 네트워크 인터페이스(9510)는 하드웨어에 기반하여 구동될 수 있다. 적어도 하나의 가상 머신(9110, 9120, 9130) 각각은 가상 데스크탑(Virtual Desktops)으로도 불릴 수 있다. 관리모듈(9200)은 적어도 하나의 가상 머신(9110, 9120, 9130)에 네트워크 연결을 제공할 수 있다. 관리모듈(9200)은 적어도 하나의 가상 머신(9110, 9120, 9130)을 각각 적어도 하나의 가상 네트워크 인터페이스 카드(9410, 9420, 9430)를 통해 제 1 네트워크 카드(9500)의 가상 네트워크 인터페이스(9510, 9520, 9530)에 할당하거나 제 2 네트워크 카드(9600)에 할당할 수 있다. 예를 들어, 관리모듈(9200)은 에이전트 모듈(9300)로부터 전달되는 네트워크 연결 정보를 기초로 적어도 하나의 가상 머신(9110, 9120, 8130)에 네트워크연결을 제공할 수 있다. 예를 들어, 네트워크 연결 정보는 적어도 하나의 가상 머신(9110, 9120, 9130)이 어떠한 경로를 통해 네트워크에 연결되어 있는지를 나타내는 정보를 의미할 수 있다. 이하에서는, 설명의 편의를 위해 제 1 가상 머신(VM1, 9110) 내지 제 n 가상 머신(VMn, 9130)이 각각 가상 네트워크 인터페이스 카드(9410, 9420, 9430)를 통해 제 2 네트워크 카드(9600)에 연결되고, 제 2 네트워크 카드(9600)를 통해 네트워크(9700)에 연결되는 것으로 가정하여 설명한다. 관리모듈(9200)은 적어도 하나의 가상 머신(9110, 9120, 9130)의 네트워크 사용량을 모니터링 할 수 있다. 예를 들어, 관리모듈(9200)은 미리 정해진 주기에 따라 적어도 하나의 가상 머신(9110, 9120, 9130)의 네트워크 사용량을 모니터링할 수 있다. 관리모듈(9200)은 모니터링 결과에 기초하여 적어도 하나의 가상 머신(9110, 9120, 9130)으로의 네트워크 연결을 재설정할 수 있다. 예를 들어, 관리모듈(9200)은 모니터링 결과에 기초하여 적어도 하나의 가상 머신(9110, 9120, 9130) 중 네트워크 사용량이 기준값보다 많은 가상 머신(ex. 제 1 가상 머신(9110))의 네트워크 연결을 제 1 네트워크 카드(9500)의 가상 네트워크 인터페이스(VNIF1, 9510)로 변경할 수 있다. 관리모듈(9200)은 예를 들어, 적어도 하나의 가상 머신(9110, 9120, 9130) 중 하나로 구현될 수도 있다. 또한, 관리모듈(9200)은 다른 컴퓨터 상에 구현되어 적절한 인터페이스를 통해 네트워크에 연결될 수도 있고, 하이퍼바이저 내부에 구현될 수도 있다. 에이전트 모듈(9300)은 적어도 하나의 가상 머신(9110, 9120, 9130)에 대한 네트워크 연결 정보를 관리모듈(9200)에 제공할 수 있다. 에이전트 모듈(9300)은 하이퍼바이저 또는 가상 머신 모니터(VMM) 상에서 구동될 수 있다. 제 1 네트워크 카드(9500)는 하드웨어를 이용한 가상화 지원 구조가 적용된 네트워크 카드일 수 있다. 하드웨어를 이용한 가상화 지원 구조는 예를 들어, SR-IOV(Single Root I/O Virtualization) 구조일 수 있다. 제 1 네트워크 카드(9500)는 적어도 하나의 가상 네트워크 인터페이스들(9510), PF(Physical Function, 9520), 및 MAC/PHY(9530)를 포함할 수 있다. 적어도 하나의 가상 네트워크 인터페이스들(9510)은 네트워크(9700)와의 연결을 제공할 수 있으며, PF(9520)에 기반하여 동작할 수 있다. MAC/PHY(9530)는 MAC 계층 및 물리 계층으로 정의될 수 있다. 상술한 바와 같이, 본 발명의 일 실시예에 따른 가상 데스크탑 서비스 시스템은 적어도 하나의 가상 머신(9110, 9120, 9130)의 네트워크 사용량을 모니터링하고, 모니터링 결과에 따라 적어도 하나의 가상 네트워크 인터페이스(9510)를 적어도 하나의 가상 머신에 재할당할 수 있다. 따라서, 본 발명의 일 실시예에 따른 가상 데스크탑 서비스 시스템은 제 2 네트워크 카드(9600)를 통해 네트워크에 연결되는 가상 머신(ex. 제 1 가상 머신)의 네트워크 사용량이 기준값을 초과하는 경우 가상 머신(ex. 제 1 가상 머신)에 제 1 네트워크 카드(9500)의 가상 네트워크 인터페이스(VNIF1, 9510)를 할당하여 네트워크 I/O 성능을 향상시킬 수 있다. 결과적으로, 본 발명의 일 실시예에 따른 가상 데스크탑 서비스 시스템은 하드웨어를 이용한 가상화 지원 구조가 적용된 네트워크 카드(9400)를 사용하는 서버 가상화 환경에서 네트워크 자원을 동적으로 할당하여 네트워크 I/O 성능을 더욱 향상 시킬 수 있다.
도 10는 본 발명의 일 실시예에 따른 가상 데스크탑 서비스 제공 방법을 보여주는 흐름도이다.
도 10를 참조하면, 본 발명의 일 실시예에 따른 가상 데스크탑 서비스 제공 방법은 적어도 하나의 가상 머신 각각에 네트워크 연결을 제공하는 단계(S9110), 적어도 하나의 가상 머신의 네트워크 사용량을 모니터링하는 단계(S9120), 및 모니터링 결과에 기초하여 적어도 하나의 가상 머신의 네트워크 연결을 재설정하는 단계(S9130)를 포함할 수 있다.
이하에서는 도 9 및 도 10? 참조하여 상술한 S9110 단계 내지 S9130단계가 구체적으로 설명된다.
S8110 단계에서, 관리모듈(9200)은 제 1 네트워크 카드(9500) 및/또는제 2 네트워크 카드(9600)를 통해 적어도 하나의 가상 머신(9110, 9120, 9130)에 네트워크 연결을 제공할 수 있다. 예를 들어, 관리모듈(9200)은 제 2 네트워크 카드(9600)를 통해 적어도 하나의 가상 머신에 네트워크 연결을 제공하는 것으로 가정한다. 제 1 네트워크 카드(9500)는 하드웨어를 이용한 가상화 지원구조가 적용된 네트워크 카드일 수 있다. 예를 들어, 관리모듈(9200)은 에이전트 모듈(9300)로부터 전달되는 네트워크 연결 정보를 기초로 적어도 하나의 가상 머신에 네트워크 연결을 제공할 수 있다.
S9120 단계에서, 관리모듈(9200)은 적어도 하나의 가상 머신의 네트워크 사용량을 모니터링 할 수 있다. 예를 들어, 관리모듈(9200)은 미리 정해진 주기에 따라 네트워크 사용량을 모니터링 할 수 있다.
S9130 단계에서, 관리모듈(9200)은 모니터링 결과에 기초하여 적어도 하나의 가상 머신의 네트워크 연결을 재설정할 수 있다. 관리모듈(9200)은 다양한 기준에 따라 적어도 하나의 가상 머신의 네트워크 연결을 재설정할 수 있다. 예를 들어, 관리모듈(9200)은 적어도 하나의 가상 머신의 네트워크 사용량을 기준값과 비교하여 네트워크 연결을 재설정 할 수 있다. 예를 들어, 관리모듈(9200)은 제 2 네트워크 카드(9600)를 통해 네트워크에 연결되는 가상 머신(ex. 제 1 가상 머신)의 네트워크 사용량이 기준값을 초과하는 경우 가상 머신(ex. 제 1 가상 머신)에 제 1 네트워크 카드(9500)의 가상 네트워크 인터페이스(VNIF1, 9510)를 할당하여 네트워크 I/O 성능을 향상시킬 수 있다.
도 11은 본 발명의 다른 실시예에 따른 가상 데스크탑 서비스 제공방법을 보여주는 흐름도이다.
도 11에서는 설명의 불필요한 중복을 피하기 위하여 도 10에 도시된가상 데스크탑 서비스 제공 방법과의 차이점을 중심으로 설명한다.
도 11을 참조하면, 본 발명의 다른 실시예에 따른 가상 데스크탑 서비스 제공 방법은 적어도 하나의 가상 머신 각각에 네트워크 연결을 제공하는 단계(S9210), 적어도 하나의 가상 머신의 네트워크 사용량을 모니터링하는 단계(S9220), 적어도 하나의 가상 머신의 네트워크 사용량이 기준값보다 많은지 판단하는 단계(S9230), 및 적어도 하나의 가상 머신의 네트워크 연결을 재설정하는 단계(S9240)를 포함할 수 있다.
상술한 S9210 단계 및 S9220 단계는 도 10을 참조하여 설명한 S9110 단계 및 S9120 단계와 각각 실질적으로 동일할 수 있으므로 이하에서는 S9230 단계 및 S9240 단계를 중심으로 설명한다.
S9230 단계에서, 관리모듈(9200)은 모니터링 결과에 기초하여 적어도 하나의 가상 머신의 네트워크 사용량이 기준값보다 많은지를 판단할 수 있다. 판단결과, 적어도 하나의 가상 머신의 네트워크 사용량이 기준값보다 많은 경우 S9240 단계가 수행될 수 있다. 판단 결과, 모든 가상 머신의 네트워크 사용량이 기준값보다 많지 않은 경우 S9220 단계가 수행될 수 있다.
S9240 단계에서, 관리모듈(9200)은 적어도 하나의 가상 머신의 네트워크 연결을 재설정할 수 있다. 구체적으로, 관리모듈(9200)은 적어도 하나의 가상 머신 중 가상 머신(ex.제 1 가상 머신(9110))의 네트워크 사용량이 기준값 보다 많은 경우 제 1 가상 머신(9110)을 제 1 네트워크 카드(9500)의 가상 네트워크 인터페이스(VNIF1, 9510)를 통해 네트워크(9700)에 연결되도록 재설정할 수 있다.
또한, 관리모듈(9200)는 이에 한정하지 않고, 적어도 하나의 가상 머신(9120, 9130)의 네트워크 사용량이 기준값보다 많은 경우 가상 네트워크 인터페이스(VNIF2, VNIF3, 9510)들을 적어도 하나의 가상 머신(9120, 9130)에 재할당할 수 있다.
도 12는 본 발명의 또 다른 실시예에 따른 가상 데스크탑 서비스 제공 방법을 보여주는 흐름도이다.
도 12에서는 설명의 불필요한 중복을 피하기 위하여 도 10에 도시된 가상 데스크탑 서비스 제공 방법과의 차이점을 중심으로 설명한다.
도 12를 참조하면, 본 발명의 다른 실시예에 따른 가상 데스크탑 서비스 제공 방법은 에이전트 모듈이 구동되는 단계(S9310), 하드웨어를 이용한 가상화 지원 구조가 적용된 네트워크 카드의 존재 여부를 판단하는 단계(S9320), 적어도 하나의 가상 머신 각각에 네트워크 연결을 제공하는 단계(S9330), 적어도 하나의 가상 머신의 네트워크 사용량을 모니터링하는 단계(S9340), 모니터링 결과에 기초하여 적어도 하나의 가상 머신의 네트워크 연결을 재설정하는 단계(S9350), 및 하이퍼바이저가 적어도 하나의 가상 머신에 네트워크 인터페이스를 할당하는 단계(S9360)를 포함할 수 있다.
상술한 S9330 단계 내지 S9350 단계는 도 10를 참조하여 설명한 S9110단계 내지 S9130 단계와 각각 실질적으로 동일할 수 있으므로 이하에서는 S9310단계, S9320 단계 및 S9360 단계를 중심으로 설명한다.
S9310 단계에서, 에이전트 모듈(9300)이 구동될 수 있다. 예를 들어, 에이전트 모듈(9300)은 하이퍼바이저 또는 가상 머신 모니터(VMM) 상에서 구동될 수 있다. S9320 단계에서, 에이전트 모듈(9300)은 하드웨어를 이용한 가상화 지원 구조가 적용된 네트워크 카드의 존재 여부를 감지할 수 있다. 예를 들어, 에이전트 모듈(9300)은 가상 데스크탑 서비스 시스템에 제 1 네트워크 카드(9500)가 설치되어 있는지 여부를 감지할 수 있다.
S9360 단계에서, 하이퍼바이저 또는 가상 머신 모니터(VMM)는 적어도 하나의 가상 머신(9110, 9120, 9130, 도 9 참조)에 네트워크 인터페이스를 할당할 수 있다. 즉, S9360 단계는 일반적인 소프트웨어를 통한 네트워크 인터페이스 할당 과정으로 이해될 수 있다. S9360 단계는 가상 데스크탑 서비스 시스템에 제 1 네트워크 카드(9500) 및 제 2 네트워크 카드(9600)가 설치되어 있지 않은 경우에 수행될 수 있다.
도 13는 본 발명의 일 실시예에 따른 가상 데스크탑 서비스 제공 방법을 실행하는 컴퓨팅 시스템을 보여주는 블록도이다.
도 13을 참조하면, 컴퓨팅 시스템(91000)은 버스(91200)를 통해 연결되는 적어도 하나의 프로세서(91100), 메모리(91300), 사용자 인터페이스 입력 장치(91400), 사용자 인터페이스 출력 장치(91500), 스토리지(91600), 및 네트워크 인터페이스(91700)를 포함할 수 있다.
프로세서(91100)는 중앙 처리 장치(CPU) 또는 메모리(91300) 및/또는 스토리지(91600)에 저장된 명령어들에 대한 처리를 실행하는 반도체 장치일 수 있다. 메모리(91300) 및 스토리지(91600)는 다양한 종류의 휘발성 또는 불휘발성 저장 매체를 포함할 수 있다. 예를 들어, 메모리(91300)는 ROM(Read Only Memory) 및 RAM(Random Access Memory)을 포함할 수 있다.
따라서, 본 명세서에 개시된 실시예들과 관련하여 설명된 방법 또는 알고리즘의 단계는 프로세서(91100)에 의해 실행되는 하드웨어, 소프트웨어 모듈, 또는 그 2 개의 결합으로 직접 구현될 수 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드 디스크, 착탈형 디스크, CD-ROM과 같은 저장 매체(즉, 메모리(91300) 및/또는 스토리지 (91600))에 상주할 수도 있다. 예시적인 저장 매체는 프로세서(91100)에 커플링되며, 그 프로세서(91100)는 저장 매체로부터 정보를 판독할 수 있고 저장 매체에 정보를 기입할 수 있다. 다른 방법으로, 저장 매체는 프로세서(91100)와 일체형일 수도 있다. 프로세서 및 저장 매체는 주문형 집적회로(ASIC) 내에 상주할 수도 있다. ASIC는 사용자 단말기 내에 상주할 수도 있다. 다른 방법으로, 프로세서 및 저장 매체는 사용자 단말기 내에 개별 컴포넌트로서 상주할 수도 있다.
이하 도 14 내지 17에서 전술한 내용은 도 2의 커넥션 브로커(110)에 의해 수행되거나 설계자의 변경에 의해 개별 구성으로 수행될 수 있다. 또한 구체적인 내용을 도 14 내지 도 17을 통해 가상 데스크탑 서비스에 대해 다시 한번 설명한다.
도 14은 본 발명에 따른 가상 머신을 이용한 서버 전력 예측 장치의 구성을 설명하기 위한 도면이고, 도 15는 본 발명에 따른 가상 머신을 이용한 서버 전력 예측 장치에 채용되는 소비 전력 변화량 산출부의 세부 구성을 설명하기 위한 도면이다.
도 14를 참조하여 설명하면, 본 발명에 따른 가상 머신을 이용한 서버 전력예측 장치(8100)는 크게 초기 전력량 산출부(8110), 소비 전력 비율 산출부(8120), 소비 전력 변화량 산출부(8130), 전체 소비 전력량 산출부(8140) 및 전력 예측부(8150)를 포함한다.
먼저, 본 발명에 따른 가상 머신은 가상의 전력량을 산출하기 위해 할당되는 서버로, 미리 중앙처리장치의 종류, 메모리의 종류나 용량 그 외의 하드디스크 구성이 설정되어 있다. 또한, 본 발명에서 가상 머신은 필요에 따라 서버에 다수 개 할당될 수 있다.
초기 전력량 산출부(8110)는 서버에 할당된 가상 머신의 초기 전력량을 산출한다. 초기 전력량 산출부(8110)는 가상 머신이 대기상태(standby)일 때의 전력량과 가상 머신이 슬립상태(sleep)일 때의 전력량 및 가성 머신이 유휴상태(idle)일 때의 전력량의 합으로 산출된다.
즉, 초기 전력량 산출부(8110)는 다음의 수식 1에 의해 초기 전력량을 산출한다.
Figure 112015111759789-pat00001
이때, Pstart(S)는 초기 전력량이고, Pstandby는 가상 머신이 대기상태일 때의 전력량, Psleep는 가상 머신이 슬립상태일 때의 전력량 및 Pidle는 가상 머신이 유휴상태일 때의 전력량을 나타낸다.
소비 전력 비율 산출부(8120)는 가상 머신의 구성요소 별 소비 전력 비율을 개별적으로 산출한다. 즉, 소비 전력 비율 산출부(8120)는 특정시간 가상 머신의 전체 소비 전력량에 대한 가상 머신의 구성요소 별 소비 전력량의 비율을 나타내는 구성요소 별 소비 전력 비율을 산출한다. 이때, 가상 머신의 구성요소는 서버의 구성요소와 마찬가지로 중앙처리장치, 메모리 및 하드디스크 중 적어도 어느 하나를 포함하고 있다. 여기서, 가상 머신 한대당 차지하는 구성요소들의 소비 전력을 측정하면 전체 소비 전력의 약 70% 이상이 중앙처리장치, 메모리 및 하드디스크에 집중되어 있다. 자세하게는 중앙처리장치가 가장 많은 전력을 차지하고, 그 다음으로 많이 차지하는 구성요소는 메모리, 하드디스크 순이다.
즉, 소비 전력 비율 산출부(8120)는 다음의 수식 2에 의해 소비 전력 비율을 산출한다. 즉, 수식 2에 나타나는 것처럼 소비 전력 비율(α)을 고정하고 가상 머신의 전체 소비 전력량을 측정하게 되면 특정 시간에서의 구성요소 별 소비 전력비율이 산출된다. 이는 3차원 1차 연립 방정식의 해를 구하는 것과 동일하다.
Figure 112015111759789-pat00002
이때, Ucpu1, Umem1, Uhdd1은 제1 가상 머신의 중앙처리장치, 메모리, 하드디스크에 대한 각각의 소비 전력 변화량, Ucpu2, Umem2, Uhdd2은 제2 가상 머신의 중앙처리장치, 메모리, 하드 디스크에 대한 각각의 소비 전력 변화량, Ucpu3, Umem3, Uhdd3은 제3 가상 머신의 중앙처리장치, 메모리, 하드 디스크에 대한 각각의 소비 전력 변화량, αcpu, αmem, αhdd는 중앙처리장치, 메모리, 하드 디스크의 소비 전력 비율, Pvm1은 제1 가상 머신의 전체 소비 전력량, Pvm2는 제2 가상머신의 전체 소비 전력량, Pvm3은 제3 가상 머신의 전체 소비 전력량을 나타낸다.
소비 전력 변화량 산출부(8130)는 일정시간 동안 가상 머신의 구성요소 별 소비 전력 변화량을 산출한다. 이를 위해, 소비 전력 변화량 산출부(8130)는 도 15에 도시된 바와 같이 제1 소비 전력량 산출부(8131), 제2 소비 전력량 산출부(8132) 및 변화량 연산부(8133)를 포함한다. 제1 소비 전력량 산출부(8131)는 특정 시간에 가상 머신의 구성요소 별 제1 현재 소비 전력량을 산출한다. 제2 소비 전력량 산출부(8132)는 특정 시간으로부터 일정 시간 이후의 상기 가상 머신의 구성요소 별 제2 현재 소비 전력량을 산출한다. 변화량 연산부(8133)는 가상 머신의 구성요소 별로 제2 현재 소비 전력량에서 제1 현재 소비 전력량의 차이 값에 해당하는 소비 전력 변화량을 산출한다. 전체 소비 전력량 산출부(8140)는 가상 머신의 초기 전력량과 구성요소 별 소비 전력 비율 및 구성요소 별 소비 전력 변화량을 토대로 가상 머신의 전체 소비전력량을 산출한다. 즉, 전체 소비 전력량 산출부(8140)는 구성요소 별로 산출된 소비 전력 비율과 소비 전력 변화량을 각각 곱한 후 합산한 값에 앞서 수학식 1을 통해 산출된 가상 머신의 초기 전력량을 합하여 가상 머신의 전체 소비 전력량을 산출한다.
즉, 전체 소비 전력량 산출부(8140)는 다음의 수학식 3에 의해 전체 소비 전력량을 산출한다
Figure 112015111759789-pat00003
이때, Pvm은 가상 머신의 전체 소비 전력량이고, Pstart,vm(S)는 가상 머신의 초기 전력량이고, αcpu·Ucpu(t)는 가상 머신의 구성요소 중 중앙처리장치에 대한 소비 전력 비율과 t 시간에서 소비 전력 변화량의 곱이고, αmem·Umem(t)는 가상 머신의 성요소 중 메모리에 대한 소비 전력 비율과 t 시간에서 소비 전력 변화량의 곱이고, αhdd·Uhdd(t)는 가상 머신의 구성요소 중 하드 디스크에 대한 소비 전력 비율과 t 시간에서 소비 전력 변화량의 곱을 나타낸다.
전력 예측부(8150)는 서버의 초기 전력량에 가상 머신의 전체 소비 전력량을 합하여 서버의 전체 소비 전력량을 예측한다. 즉, 전체 예측부(8150)는 다음의 수학식 4에 의해 전체 소비 전력량을 산출한다.
Figure 112015111759789-pat00004
이때, Pserver는 서버의 전체 소비 전력량이고, Pstart,server(S)는 서버의 초기 전력량이고, Pvm1은 t 시간에서 제1 가상 머신의 전체 소비 전력량, Pvm2는 t시간에서 제2 가상 머신의 전체 소비 전력량, Pvm3은 t 시간에서 제3 가상 머신의 전체 소비 전력량 및 Pvmn은 t 시간에서 제n 가상 머신의 전체 소비 전력량을 나타낸다.
한편, 전력 예측부(8150)는 서버가 대기상태일 때의 전력량과 서버가 슬립상태일 때의 전력량 및 서버가 유휴상태일 때의 전력량의 합으로 서버의 초기 전력량을 산출한다.
즉, 전력 예측부(8150)는 다음의 수학식 5에 의해 서버의 초기 전력량을 산출한다.
Figure 112015111759789-pat00005
이때, Pstart,server(S)는 초기 전력량이고, Pstandby,server는 서버가 대기상태일 때의 전력량, Psleep,server는 서버가 슬립상태일 때의 전력량 및 Pidle,server는 서버가 유휴상태일 때의 전력량을 나타낸다.
도 16은 본 발명에 따른 가상 머신을 이용한 서버 전력 예측 방법의 순서를 설명하기 위한 도면이다.
도 16을 참조하여 설명하면, 본 발명에 따른 가상 머신을 이용한 서버 전력예측 방법은 앞서 설명한 가상 머신을 이용한 서버 전력 예측 장치를 이용하는 것으로 이하 중복되는 설명은 생략하기로 한다.
먼저, 서버에 할당된 가상 머신의 초기 전력량을 산출한다.(S8300) S8300 단계에서 초기 전력량은 가상 머신이 대기상태(standby)일 때의 전력량과 가상 머신이 슬립상태(sleep)일 때의 전력량 및 가성 머신이 유휴상태(idle)일 때의 전력량의 합으로 산출된다.
다음, 가상 머신의 구성요소 별 소비 전력 비율을 산출한다.(S8310) S8310 단계에서 소비 전력 비율은 구성요소 별로 특정시간 가상 머신의 전체 소비 전력량에 대한 가상 머신의 구성요소 별 소비 전력량의 비율로 산출된다.
다음, 일정시간 동안 가상 머신의 구성요소 별 소비 전력 변화량을 산출한 다.(S8320) S8320 단계를 통해 소비 전력 변화량을 산출하는 방법은 이후 도 17에서 자세하게 설명하기로 한다.
다음, 가상 머신의 초기 전력량과 구성요소 별 소비 전력 비율 및 구성요소별 소비 전력 변화량을 토대로 가상 머신의 전체 소비 전력량을 산출한다.(S8330) S8330 단계에서 전체 소비 전력량은 앞서 구성요소 별로 산출된 소비 전력 비율과 소비 전력 변화량을 각각 곱한 후 합산한 값에 가상 머신의 초기 전력량을 합하여 산출한다.
다음, 서버의 초기 전력량에 가상 머신의 전체 소비 전력량을 합하여 서버의 전체 소비 전력량을 예측한다.(S8340) S8340 단계에서 전체 소비 전력량은 서버의 초기 전력량에 가상 머신의 전체 소비 전력량을 합한 값으로 예측할 수 있다. 이때, 전력 예측부(8150)는 서버가 대기상태일 때의 전력량과 서버가 슬립상태일 때의 전력량 및 서버가 유휴상태일 때의 전력량의 합으로 서버의 초기 전력량을 산출한다.
도 17은 본 발명에 따른 가상 머신을 이용한 서버 전력 예측 방법에서 구성요소 별 소비 전력 변화량을 산출하는 단계를 설명하기 위한 도면이다.
도 17을 참조하여 설명하면, 구성요소 별 소비 전력 변화량을 산출하는 단계는 먼저, 특정 시간 가상 머신의 구성요소 별 제1 현재 소비 전력량을 산출한다.(S8400)
다음, 특정 시간으로부터 일정 시간 이후의 가상 머신의 구성요소 별 제2 현재 소비 전력량을 산출한다.(S8410)
다음, 가상 머신의 구성요소 별로 상기 제2 현재 소비 전력량에서 상기 제1현재 소비 전력량의 차이 값에 해당하는 소비 전력 변화량을 산출한다.(S8420)
이처럼, 본 발명에 의한 가상 머신을 이용한 서버 전력 예측 장치 및 그 방법은 가상 머신의 구성요소 별 소비 전력 비율과 소비 전력 변화량을 이용하여 산출된 가상 머신의 전체 소비 전력량을 토대로 서버의 전체 소비 전력량을 예측함으로써, 실제 서버의 전력을 산출하는 하드디스크 없이도 서버 전체의 전력 변화나 추이를 빠르게 예측할 수 있다.

Claims (10)

  1. 가상 데스크탑 서비스(Virtual Desktop Service)을 사용하는 사용자 단말에 할당되는 가상 머신(Virtual Machine)의 할당 작업을 수행하는 커넥션 매니저;
    상기 가상 데스크탑 서비스를 위한 운영체제, 애플리케이션 및 사용자 프로파일들을 포함하는 소프트웨어 리소스를 제공하는 리소스 풀; 및
    메모리 또는 CPU(central processor unit)를 포함하는 하드웨어 리소스를 지원하는 가상머신 인프라스트럭처;를 포함하고,
    상기 커넥션 매니저는 상기 사용자 단말과 상기 가상 데스크탑 서비스를 제공하는 서버들 간에 사용되는 전달 프로토콜의 코디네이션 작업을 수행하고,
    상기 리소스풀은 관리기능(management function)을 포함하고,
    상기 관리 기능은 리소스들의 사용자의 평균 사용에 관한 사용 패턴 정보에 기반하고,
    상기 관리 기능은, 네트워크 상에서 상기 사용자 단말로부터 서버까지의 물리적 거리의 최단 경로에 기반하고,
    상기 가상머신 인프라스트럭처는, 상기 가상 머신이 상기 사용자의 업무와 유사한 작업들을 수행하는 가상 머신인 경우, 상기 유사한 작업들과 상기 사용 패턴 정보를 이용하여 캐쉬 작업을 통해 상기 가상 데스크탑 서비스를 제공하는 가상 데스크탑 서비스 장치.
  2. 제 1 항에 있어서, 상기 커넥션 매니저는 상기 사용자 단말에 환경 파일들을 제공하고,
    상기 환경 파일은 상기 사용자 단말에 의해 설정된 요청에 대응하는 OS(operating system) 이미지이고,
    상기 환경 파일은 상기 가상 데스크탑 서비스가 제공되기 전에 미리 준비되는 가상 데스크탑 서비스 장치.
  3. 제 2 항에 있어서, 상기 가상머신 인프라스트럭처는 HA(high availability)를 지원하는 가상 데스크탑 서비스 장치.
  4. 제 3 항에 있어서, 상기 서버들의 복수의 가상머신들은 단일 하이퍼바이저 상에 생성되는 가상 데스크탑 서비스 장치.
  5. 제 4 항에 있어서, 상기 전달 프로토콜은 전체 정보 시스템 환경에 접속 또는 네트워크 상에 상기 사용자 단말에 접속을 압축 및 전달하는데 사용하는 가상 데스크탑 서비스 장치.
  6. 커넥션 매니저가 가상 데스크탑 서비스(Virtual Desktop Service)를 위한 사용자 단말의 사용자의 유저 프로파일을 확인하고, 상기 사용자 단말의 하드웨어에 적합한 가상 머신을 찾는 단계;
    상기 커넥션 매니저가 상기 적합한 가상 머신이 없는 경우 가상머신 인프라스트럭처에 해당 가상머신 생성을 요청하고, 상기 적합한 가상 머신이 있는 경우 상기 커넥션 매니저가 해당 가상 머신에 사용자 프로파일을 적용하고 가상 데스크탑을 생성하는 단계; 및
    상기 커넥션 매니저가 상기 생성된 가상 데스크탑을 상기 사용자 단말에 전송하기 위한 연결 정보를 상기 사용자 단말에 전송하고, 상기 가상 데스크탑의 전송 프로토콜을 사용하여 상기 가상 데스크탑을 상기 사용자 단말에 전송하는 단계;를 포함하고
    상기 가상 머신을 찾는 단계는
    리소스풀이 상기 커넥션 매니저에게, 상기 가상 데스크탑 서비스를 위한 운영체제, 애플리케이션 및 상기 사용자 프로파일을 포함하는 소프트웨어 리소스를 제공하고,
    상기 가상머신 인프라스트럭처는 메모리 또는 CPU(central processor unit)를 포함하는 하드웨어 리소스를 지원하고,
    상기 커넥션 매니저는 상기 사용자 단말과 상기 가상 데스크탑 서비스를 제공하는 서버들 간에 사용되는 전달 프로토콜의 코디네이션 작업을 수행하고,
    상기 리소스풀은 관리기능을 포함하고,
    상기 관리 기능은 리소스들의 사용자의 평균 사용에 관한 사용 패턴 정보에 기반하고,
    상기 관리 기능은, 네트워크 상에서 상기 사용자 단말로부터 서버까지의 물리적 거리의 최단 경로에 기반하고,
    상기 가상머신 인프라스트럭처는, 상기 가상 머신이 상기 사용자의 업무와 유사한 작업들을 수행하는 가상 머신인 경우, 상기 유사한 작업들과 상기 사용 패턴 정보를 이용하여 캐쉬 작업을 통해 상기 가상 데스크탑 서비스를 제공하는 가상 데스크탑 서비스 방법.
  7. 제 6 항에 있어서, 상기 커넥션 매니저는 상기 사용자 단말에 환경 파일들을 제공하고,
    상기 환경 파일은 상기 사용자 단말에 의해 설정된 요청에 대응하는 OS(operating system) 이미지이고,
    상기 환경 파일은 상기 가상 데스크탑 서비스가 제공되기 전에 미리 준비되는 가상 데스크탑 서비스 방법.
  8. 제 7 항에 있어서, 상기 가상머신 인프라스트럭처는 HA(high availability)를 지원하는 가상 데스크탑 서비스 방법.
  9. 제 8 항에 있어서, 상기 서버들의 복수의 가상머신들은 단일 하이퍼바이저 상에 생성되는 가상 데스크탑 서비스 방법.
  10. 제 9 항에 있어서, 상기 전달 프로토콜은 전체 정보 시스템 환경에 접속 또는 네트워크 상에 상기 사용자 단말에 접속을 압축 및 전달하는데 사용하는 가상 데스크탑 서비스 방법.
KR1020150160829A 2015-11-17 2015-11-17 가상 데스크탑 서비스 방법 및 장치 KR101977726B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150160829A KR101977726B1 (ko) 2015-11-17 2015-11-17 가상 데스크탑 서비스 방법 및 장치
US15/354,651 US10789083B2 (en) 2015-11-17 2016-11-17 Providing a virtual desktop service based on physical distance on network from the user terminal and improving network I/O performance based on power consumption

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150160829A KR101977726B1 (ko) 2015-11-17 2015-11-17 가상 데스크탑 서비스 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20170057558A KR20170057558A (ko) 2017-05-25
KR101977726B1 true KR101977726B1 (ko) 2019-05-14

Family

ID=58690602

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150160829A KR101977726B1 (ko) 2015-11-17 2015-11-17 가상 데스크탑 서비스 방법 및 장치

Country Status (2)

Country Link
US (1) US10789083B2 (ko)
KR (1) KR101977726B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102301393B1 (ko) 2020-12-04 2021-09-15 엠에스엘엠 주식회사 서버 블레이드를 이용한 메시 형상의 서비스형 데스크톱 플랫폼 장치

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9948493B2 (en) * 2014-04-03 2018-04-17 Centurylink Intellectual Property Llc Network functions virtualization interconnection gateway
US10496416B2 (en) * 2017-02-15 2019-12-03 Acronis International Gmbh System and method for automatic software installation and configuration
US10496527B2 (en) * 2017-07-25 2019-12-03 Belay Technologies, Inc. System and method for rapid and repeatable provisioning and regression testing plans
US11700137B2 (en) * 2017-08-26 2023-07-11 Vmware, Inc. Collaborative access to virtual desktops
US11520609B2 (en) * 2017-09-15 2022-12-06 International Business Machines Corporation Template-based software discovery and management in virtual desktop infrastructure (VDI) environments
EP3502890A1 (en) * 2017-12-22 2019-06-26 Bull SAS Method for managing resources of a computer cluster by means of historical data
US10778518B2 (en) 2018-04-24 2020-09-15 Dell Products, L.P. System and method to manage a server configuration profile based upon applications running on an information handling system
US10761858B2 (en) * 2018-04-24 2020-09-01 Dell Products, L.P. System and method to manage a server configuration profile of an information handling system in a data center
US10764133B2 (en) 2018-04-24 2020-09-01 Dell Products, L.P. System and method to manage server configuration profiles in a data center
CN108984465B (zh) * 2018-06-06 2021-08-20 华为技术有限公司 一种消息传输方法及设备
US11108868B2 (en) 2019-01-13 2021-08-31 Vmware, Inc. Live switching of collaborative virtual desktop sessions
JP7235296B2 (ja) * 2019-03-08 2023-03-08 Necソリューションイノベータ株式会社 セッション管理方法、セッション管理装置、プログラム
KR102109088B1 (ko) * 2019-09-05 2020-05-12 오케스트로 주식회사 가상 머신 예측 워크 로드 산출 방법 및 이를 구현하는 예측 장치
KR102347375B1 (ko) * 2019-09-05 2022-01-05 오케스트로 주식회사 복수의 예측 모델을 기초로 가상 머신 워크 로드 예측 방법
US11385922B2 (en) * 2019-10-16 2022-07-12 EMC IP Holding Company LLC Elastic cloud service with data driven cost reduction for VMS in the cloud
KR20220106435A (ko) * 2021-01-22 2022-07-29 주식회사 피아몬드 가상 데스크탑 인프라 서비스 제공에 따른 사용자 정보 수집 방법 및 시스템

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090282404A1 (en) 2002-04-05 2009-11-12 Vmware, Inc. Provisioning of Computer Systems Using Virtual Machines
US20150121061A1 (en) * 2013-10-28 2015-04-30 Citrix Systems, Inc. Systems and methods for managing a guest virtual machine executing within a virtualized environment

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001282729A (ja) 2000-03-30 2001-10-12 Casio Comput Co Ltd ユーザ環境設定システム、その方法及び記録媒体
KR101093800B1 (ko) 2004-09-24 2011-12-19 주식회사 케이티 클라이언트 단말에 대한 범용 가상 pc 서비스 제공방법, 그 방법 실행 프로그램을 기록한 저장매체, 범용가상 pc 서비스 제공 서버 및 서비스 제공 시스템
CN101326771B (zh) 2005-12-13 2010-09-15 国际商业机器公司 操作虚拟网络的方法和设备以及数据网络系统
US8549098B2 (en) 2006-01-12 2013-10-01 Broadcom Israel Research, Ltd. Method and system for protocol offload and direct I/O with I/O sharing in a virtualized network environment
US8151323B2 (en) 2006-04-12 2012-04-03 Citrix Systems, Inc. Systems and methods for providing levels of access and action control via an SSL VPN appliance
WO2009108579A2 (en) 2008-02-26 2009-09-03 Vmware, Inc. Extending server-based desktop virtual machine architecture to client machines
KR100931518B1 (ko) 2008-04-22 2009-12-14 주식회사 안철수연구소 가상 데스크탑을 이용한 프로그램 보호 방법
JP5153503B2 (ja) 2008-07-31 2013-02-27 インターナショナル・ビジネス・マシーンズ・コーポレーション 消費電力を推定するシステムおよび方法
US8707397B1 (en) * 2008-09-10 2014-04-22 United Services Automobile Association Access control center auto launch
KR101173335B1 (ko) 2008-12-19 2012-08-10 한국전자통신연구원 영상분할기반 초고해상도 비디오 부호화 및 복호화 장치, 및 그 제어 방법
CN102025589B (zh) 2009-09-18 2015-04-01 中兴通讯股份有限公司 虚拟专用网络的实现方法及系统
KR101284793B1 (ko) 2009-12-18 2013-07-10 한국전자통신연구원 전력 측정 장치 및 이를 이용한 전력 소모량 절감 방법
US8862714B2 (en) 2010-03-15 2014-10-14 Electronics And Telecommunications Research Institute Apparatus and method for virtualizing of network device
KR20110103889A (ko) 2010-03-15 2011-09-21 한국전자통신연구원 네트워크 장비의 가상화 장치 및 방법
KR101507919B1 (ko) * 2011-07-01 2015-04-07 한국전자통신연구원 가상 데스크탑 서비스를 위한 방법 및 장치
US9119035B2 (en) * 2012-05-22 2015-08-25 Cisco Technology, Inc. Location-based power management for virtual desktop environments
US10742698B2 (en) 2012-05-29 2020-08-11 Avaya Inc. Media contention for virtualized devices
JP6056488B2 (ja) * 2013-01-15 2017-01-11 富士通株式会社 消費電力量推定装置、及び消費電力量推定方法
US9137091B2 (en) 2013-02-20 2015-09-15 Novatel Wireless, Inc. Dynamic quality of service for control of media streams using feedback from the local environment
US9489227B2 (en) 2013-06-10 2016-11-08 Electronics And Telecommunications Research Institute Apparatus and method for virtual desktop service
KR102102169B1 (ko) * 2013-06-10 2020-05-29 한국전자통신연구원 가상 데스크탑 서비스를 위한 장치 및 가상 데스크탑 서비스 방법
KR101941282B1 (ko) 2013-07-16 2019-01-23 한국전자통신연구원 가상 데스크톱 서비스 제공 방법 및 장치
KR102102168B1 (ko) 2013-10-21 2020-04-21 한국전자통신연구원 가상 데스크탑 서비스 장치 및 방법
KR20150085309A (ko) 2014-01-15 2015-07-23 한국전자통신연구원 서버 가상 머신 제공 방법 및 시스템과 이를 지원하는 서버 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090282404A1 (en) 2002-04-05 2009-11-12 Vmware, Inc. Provisioning of Computer Systems Using Virtual Machines
US20150121061A1 (en) * 2013-10-28 2015-04-30 Citrix Systems, Inc. Systems and methods for managing a guest virtual machine executing within a virtualized environment

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102301393B1 (ko) 2020-12-04 2021-09-15 엠에스엘엠 주식회사 서버 블레이드를 이용한 메시 형상의 서비스형 데스크톱 플랫폼 장치

Also Published As

Publication number Publication date
US20170139738A1 (en) 2017-05-18
US10789083B2 (en) 2020-09-29
KR20170057558A (ko) 2017-05-25

Similar Documents

Publication Publication Date Title
KR101977726B1 (ko) 가상 데스크탑 서비스 방법 및 장치
KR101507919B1 (ko) 가상 데스크탑 서비스를 위한 방법 및 장치
US10057270B2 (en) Providing virtual desktops using resources accessed on public computer networks
US10089130B2 (en) Virtual desktop service apparatus and method
US11550603B2 (en) Method and system for sizing a cloud desktop fabric
US8612577B2 (en) Systems and methods for migrating software modules into one or more clouds
US10069693B1 (en) Distributed resource allocation
US8706869B2 (en) Distributed cloud placement software
US8904005B2 (en) Indentifying service dependencies in a cloud deployment
US8046767B2 (en) Systems and methods for providing capacity management of resource pools for servicing workloads
US20160139885A1 (en) Systems and methods for scaling a cloud infrastructure
US20200314168A1 (en) Distributed code execution involving a serverless computing infrastructure
US20130238780A1 (en) Managing risk in resource over-committed systems
Calyam et al. Utility-directed resource allocation in virtual desktop clouds
US10764159B2 (en) Dynamic system level agreement provisioning
JP2016527604A (ja) 事前設定および事前起動計算リソース
CN104937584A (zh) 基于共享资源的质量向经优先级排序的虚拟机和应用程序提供优化的服务质量
Lucas‐Simarro et al. Cost optimization of virtual infrastructures in dynamic multi‐cloud scenarios
JP2016103179A (ja) 計算機リソースの割り当て方法及び計算機システム
Hamdy et al. Resource allocation strategies in cloud computing: Overview
US11429454B2 (en) Cloud resource utilization management
US11755379B2 (en) Liaison system and method for cloud computing environment
US11831653B2 (en) Methods and systems for provisioning cloud computing services
US11405449B1 (en) Optimizing response time by load sharing in edge computing
US11831552B1 (en) LCS resource device access control and management system

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant