KR20230062126A - 고성능 가상 데스크탑 서비스를 위한 vm 이미지 관리 시스템 및 방법 - Google Patents

고성능 가상 데스크탑 서비스를 위한 vm 이미지 관리 시스템 및 방법 Download PDF

Info

Publication number
KR20230062126A
KR20230062126A KR1020210147085A KR20210147085A KR20230062126A KR 20230062126 A KR20230062126 A KR 20230062126A KR 1020210147085 A KR1020210147085 A KR 1020210147085A KR 20210147085 A KR20210147085 A KR 20210147085A KR 20230062126 A KR20230062126 A KR 20230062126A
Authority
KR
South Korea
Prior art keywords
virtual machine
image
user
disk
basic
Prior art date
Application number
KR1020210147085A
Other languages
English (en)
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 KR1020210147085A priority Critical patent/KR20230062126A/ko
Priority to US17/976,279 priority patent/US20230134506A1/en
Publication of KR20230062126A publication Critical patent/KR20230062126A/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
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • 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
    • 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/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/45583Memory management, e.g. access or allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

고성능 가상 데스크탑 서비스를 제공하는 VM(Virtual Machine) 이미지 관리 방법이 제공된다. 상기 방법은 사용자에 상응하는 클라이언트로부터 가상머신 실행 서비스 요청을 수신하는 단계; 상기 요청에 대응하여 사용자 가상머신 디스크 이미지로부터 논리적인 가상머신 이미지를 구축하는 단계; 및 상기 논리적인 가상머신 이미지를 기반으로 구동한 가상머신을 상기 클라이언트로 제공하는 단계를 포함하고, 상기 요청에 대응하여 사용자 가상머신 디스크 이미지로부터 논리적인 가상머신 이미지를 구축하는 단계는, 사용자 가상머신 디스크 이미지와 대응되는 운영체제 및 응용 소프트웨어가 설치된 기본 가상머신 이미지를 메인 메모리 상에 탑재하는 단계; 사용자 가상머신 디스크 이미지가 없는 경우 깨끗한 이미지를 디스크 상에서 생성하는 단계; 및 상기 사용자 가상머신 디스크 이미지와 메인 메모리 상의 기본 가상머신 이미지의 연결고리를 생성하는 단계를 포함한다.

Description

고성능 가상 데스크탑 서비스를 위한 VM 이미지 관리 시스템 및 방법{SYSTEM AND METHOD FOR MANAGING VM IMAGES FOR HIGH-PERFORMANCE VIRTUAL DESKTOP SERVICES}
본 발명은 고성능 가상 데스크탑 서비스를 위한 VM 이미지 관리 시스템 및 방법에 관한 것이다.
코로나 시대의 비대면 사회로 접어들면서 물리적인 컴퓨팅 자원을 보유하고 쓰는 방식이 아니라, 원격지에 위치하는 서버에서 실행되는 데스크탑에 접속하여 사용하는 가상 데스크탑 서비스(Virtual Desktop Service) 방식이 많이 도입 및 운용되고 있다.
가상 데스크탑 서비스는 서버 상의 CPU, 메모리, 하드 디스크 등의 컴퓨팅 자원을 분할하여 가상머신(Virtual Machine, VM)으로 구성하고, 가상머신 상에 운용체제 및 응용 프로그램이 설치하여, 전용 클라이언트 프로그램을 통해 데스크탑 인터페이스 형태로 제공하는 서비스이다.
가상 데스크탑 서비스에서 가상 데스크탑을 위한 운용체제 및 응용 프로그램이 설치되어 있는 파일을 가상머신 이미지라 한다. 가상 데스크탑이 구동되고 및 운영되기 위해서는 저장장치에 기록된 가상머신 이미지에 접근해야 한다. 이때, 본 발명에서는 디스크 상에 저장된 가상머신 이미지는 가상머신 디스크 이미지라 부르도록 한다.
한 대의 가상 데스크탑 서버에는 적게는 한 개부터 많게는 수십 개의 가상 데스크탑이 동시에 운영될 수 있다. 만약, 부트스톰(Boot storm)과 같이 다수의 가상 데스크탑이 동시에 구동되는 경우, 각각의 가상머신 이미지에서 각각의 운영체제가 저장되어 있는 디스크에 입출력 부하가 집중됨으로써, 전체 시스템의 성능이 저하되는 문제가 발생한다. 특히, 디스크는 서버의 다른 자원(메인 메모리)에 비해 속도가 현저히 느리기 때문에 성능 저하 현상은 더 크게 발생한다.
또한, 가상머신 디스크 이미지는 일반적으로 대용량 파일이기 때문에 서버 간 이동 및 저장에 있어 많은 네트워크와 스토리지 자원들을 요구한다. 동일 집단에서 사용하는 가상머신 디스크 이미지들을 분석해 보면 동일한 운영체제 및 응용 소프트웨어 파일 블록들을 공통되게 포함하고 있다.
따라서, 시스템의 성능을 높이고 자원을 효율적으로 관리하기 위해서는 가상 데스크탑(가상 머신)에서 이렇게 공통된 파일 블록들은 공유하고, 각각의 가상 데스크탑에 대해 중복되지 않은 이미지 파일 블록들만 모아서 관리 및 운용하게 함으로써, 가상머신 디스크 이미지의 크기를 줄이고, 보다 유연하게 가상머신 디스크 이미지를 관리할 수 있는 기술이 필요하다.
공개특허공보 제10-2014-0098919호 (2014.08.11)
본 발명이 해결하고자 하는 과제는 사용자의 요청시 실시간으로 가상머신을 서비스함에 있어서, 운영체제와 응용 소프트웨어가 설치된 가상머신 이미지를 기본 가상머신 이미지로 구별하고 메인 메모리에 탑재하여 공용으로 활용하고, 사용자별로 업데이트되는 영역은 사용자별로 구별되는 사용자 가상머신 디스크 이미지에 저장하는, 고성능 가상 데스크탑 서비스를 위한 VM 이미지 관리 및 시스템 및 방법을 제공하는 것이다.
다만, 본 발명이 해결하고자 하는 과제는 상기된 바와 같은 과제로 한정되지 않으며, 또다른 과제들이 존재할 수 있다.
상술한 과제를 해결하기 위한 본 발명의 제1 측면에 따른 고성능 가상 데스크탑 서비스를 제공하는 VM(Virtual Machine) 이미지 관리 방법은 사용자에 상응하는 클라이언트로부터 가상머신 실행 서비스 요청을 수신하는 단계; 상기 요청에 대응하여 사용자 가상머신 디스크 이미지로부터 논리적인 가상머신 이미지를 구축하는 단계; 및 상기 논리적인 가상머신 이미지를 기반으로 구동한 가상머신을 상기 클라이언트로 제공하는 단계를 포함한다. 이때, 상기 요청에 대응하여 사용자 가상머신 디스크 이미지로부터 논리적인 가상머신 이미지를 구축하는 단계는, 사용자 가상머신 디스크 이미지와 대응되는 운영체제 및 응용 소프트웨어가 설치된 기본 가상머신 이미지를 메인 메모리에 탑재하는 단계; 사용자 가상머신 디스크 이미지가 없는 경우 깨끗한 이미지를 디스크 상에서 생성하는 단계; 및 상기 사용자 가상머신 디스크 이미지와 메인 메모리 상의 기본 가상머신 이미지의 연결고리를 생성하는 단계를 포함한다.
또한, 본 발명의 제2 측면에 따른 고성능 가상 데스크탑 서비스를 제공하는 VM 이미지 관리 시스템은 사용자에 상응하는 클라이언트로부터 가상머신 실행 서비스 요청을 수신하고, 요청에 대응하여 가상머신 서비스를 제공하는 통신모듈, 상기 가상머신 서비스를 제공하기 위한 프로그램이 저장된 저장장치 및 상기 저장장치에 저장된 프로그램을 실행시키는 프로세서를 포함한다. 이때, 상기 프로세서는 상기 프로그램을 실행시킴에 따라, 상기 가상머신 실행 서비스 요청에 대응하여, 사용자 가상머신 디스크 이미지와 대응되는 운영체제 및 응용 소프트웨어가 설치된 기본 가상머신 이미지를 메인 메모리 상에 탑재하고, 사용자 가상머신 디스크 이미지가 없을 경우 깨끗한 이미지를 디스크 상에서 생성하고, 상기 사용자 가상머신 디스크 이미지와 메인 메모리 상의 기본 가상머신 이미지의 연결고리를 생성하여 논리적인 가상머신 이미지를 구축하고, 상기 논리적인 가상머신 이미지를 기반으로 구동되는 가상머신을 상기 클라이언트로 제공한다.
상술한 과제를 해결하기 위한 본 발명의 다른 면에 따른 컴퓨터 프로그램은, 하드웨어인 컴퓨터와 결합되어 고성능 가상 데스크탑 서비스를 위한 VM 이미지 관리 방법을 실행하며, 컴퓨터 판독가능 기록매체에 저장된다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
전술한 본 발명의 일 실시예에 의하면, 사용자의 가상머신 이미지를 구성함에 있어, 사용자 블록과 운영체제 및 응용 소프트웨어 설치 블록을 분리하여, 디스크와 메인 메모리 상에 각각 탑재하고, 메인 메모리 상의 운영체제 및 응용 소프트웨어 설치 블록을 다수의 가상머신에서 공통 활용함으로써, 운영체제 및 응용 소프트웨어의 코드에 대한 입출력 시간을 줄일 수 있어, 전체적인 데스크탑 서비스의 성능을 높일 수 있다.
특히, 다수의 동일한 응용 소프트웨어를 활용하는 데스크탑 가상머신들이 동시에 구동되는 부트스톰 등의 경우, 가상머신이 구동되는 응답시간을 줄이고 전체적인 시스템의 처리량(throughput)을 극대화시킬 수 있다.
이와 더불어, 사용자 가상머신 디스크 이미지는 운영체제 및 응용 소프트웨어 설치 부분이 비워져 있기 때문에, 이동(migration)이나 보관 시 상대적으로 작은 크기로 관리될 수 있어, 보다 유연한 가상머신 디스크 이미지 파일 관리가 가능하다는 장점이 있다.
본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 고성능 가상 데스크탑 서비스를 제공하는 가상머신 이미지 관리 시스템을 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 가상머신 이미지 관리 방법의 순서도이다.
도 3은 일반적으로 사용자 가상머신 디스크 이미지를 생성하는 과정을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에서의 디스크 영역과 메인 메모리 영역에 저장된 가상머신 이미지를 나타낸 도면이다.
도 5는 본 발명의 일 실시예에서의 임의의 가상머신에 대한 논리적인 가상머신 이미지가 구축되는 개념을 나타낸 도면이다.
도 6은 본 발명의 일 실시예에서의 논리적인 가상머신 이미지를 액세스하기 위한 순서도를 나타낸 것이다.
도 7은 기본 가상머신 이미지 및 사용자 가상머신 디스크 이미지를 시스템에 배치하는 내용을 설명하기 위한 순서도이다.
도 8은 가상머신 실행 서비스 요청이 최초인 경우 기본 가상머신 이미지 및 사용자 가상머신 디스크 이미지를 시스템에 배치하는 내용을 설명하기 위한 순서도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야의 통상의 기술자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
도 1은 본 발명의 일 실시예에 따른 고성능 가상 데스크탑 서비스를 제공하는 가상머신 이미지 관리 시스템(100)을 설명하기 위한 도면이다.
본 발명의 일 실시예에 따른 가상머신 이미지 관리 시스템(100, 도 1에서의 서버 x, y)은 통신모듈(110), 저장장치(120), 메인 메모리(130) 및 프로세서(140)를 포함하여 구성된다.
통신모듈(110)은 사용자의 가상머신 실행 서비스 요청을 수신하고, 요청에 대응하여 가상머신 서비스를 제공한다.
도 1에서 사용자는 클라이언트 단말을 통해 요청 전달 및 서비스를 수행하며, 클라이언트는 커넥션 브로커를 통해 가상머신을 구동하는 서버와 연결된다. 그리고 클라이언트는 저장장치(120)에 저장된 가상머신 디스크 이미지(사용자 가상머신 디스크 이미지)를 기반으로 가상머신을 구동하여 가상 데스크탑을 제공받는다.
저장장치(120)에는 가상머신 서비스를 제공하기 위한 프로그램이 저장되며, 프로세서(140)는 저장장치(120)에 저장된 프로그램을 실행시킨다. 여기에서, 저장장치(120)는 전원이 공급되지 않아도 저장된 정보를 계속 유지하는 비휘발성 저장장치를 칭하는 것이다.
예를 들어, 저장장치(120)는 콤팩트 플래시(compact flash; CF) 카드, SD(secure digital) 카드, 메모리 스틱(memory stick), 솔리드 스테이트 드라이브(solid-state drive; SSD) 및 마이크로(micro) SD 카드 등과 같은 낸드 플래시 메모리(NAND flash memory), 하드 디스크 드라이브(hard disk drive; HDD) 등과 같은 마그네틱 컴퓨터 기억 장치 및 CD-ROM, DVD-ROM 등과 같은 광학 디스크 드라이브(optical disc drive) 등을 포함할 수 있다.
메인 메모리(130)에는 프로세서(140)에 의해 기본 가상머신 이미지가 탑재된다.
프로세서(140)는 클라이언트로부터의 서비스 요청에 대응하여, 사용자 가상머신 디스크 이미지와 대응되는 기본 가상머신 이미지를 일반 디스크가 아닌 메인 메모리(130) 상에 탑재한다.
또한, 프로세서(140)는 각 사용자가 가상머신을 사용하는 중에 업데이트하는 논리적인 이미지 영역을 디스크 상의 사용자 가상머신 디스크 이미지에 저장한다.
이와 같이 구축된 기본 가상머신 이미지와 사용자 가상머신 디스크 이미지의 두 이미지를 기반으로 구동되는 가상머신을 클라이언트로 제공한다.
이하에서는 도 2 내지 도 8을 참조하여 본 발명의 일 실시예에 따른 고성능 가상 데스크탑 서비스를 제공하는 가상머신 이미지 관리 시스템(100)에 의해 수행되는 방법에 대해 설명하도록 한다.
도 2는 본 발명의 일 실시예에 따른 가상머신 이미지 관리 방법의 순서도이다.
본 발명의 일 실시예에 따른 가상머신 이미지 관리 방법은, 먼저 사용자에 상응하는 클라이언트로부터 가상머신 실행 서비스 요청을 수신한다(S110).
다음으로, 사용자의 요청에 대응하여 사용자 가상머신 디스크 이미지로부터 논리적인 가상머신 이미지를 구축하고(S120), 논리적인 가상머신 이미지를 기반으로 구동한 가상머신을 클라이언트로 제공한다(S130).
도 3은 일반적으로 사용자 가상머신 디스크 이미지를 생성하는 과정을 설명하기 위한 도면이다.
먼저, 운영체제만이 설치된 가상머신 이미지가 준비되면(S10), 가상머신 이미지 상에 필요한 응용 소프트웨어를 설치하여(S20), 가상머신 이미지(OS+SWx VM 이미지)를 구축한다(S30).
이후, 가상머신 이미지를 클라이언트에게 배포하면(S40), 클라이언트별로(또는 사용자 별로) 가상머신 이미지(OS+SWx 사용자 VM 이미지)가 구축된다(S50).
그 다음, 가상머신 이미지는 가상머신이 동작하는 동안에는 물리적인 디스크 상에 존재하면서 데스크탑 서비스에 활용되다가(S60), 서비스를 종료하면 가상머신 디스크 이미지 상태로 저장된다(S70).
그리고 가상머신 이미지의 공통 부분을 따로 관리하지 않는 일반적인 시스템(100)에서는 운용 중에 사용되는 사용자 가상머신 이미지(S50)와, 사용자 가상머신 디스크 이미지(S70)는 압축 여부를 제외하고는 동일하다.
도 4는 본 발명의 일 실시예에서의 디스크 영역과 메인 메모리 영역에 저장된 가상머신 이미지를 나타낸 도면이다.
이와 달리, 본 발명의 일 실시예는, 대규모 가상 데스크탑 서비스에 있어서, 빠른 가상머신의 제공을 위해 가장 많은 데이터의 입출력을 발생시키는 운영체제 및 응용 소프트웨어가 설치된 가상머신 이미지(S30)를 기본 가상머신 이미지로 관리한다. 그리고 기본 가상머신 이미지를 메인 메모리(130) 상에 탑재하여 이용한다.
또한, 클라이언트 별로(또는 사용자 별로) 구별되는 사용자가 사용 중에 업데이트하는 이미지 영역을 사용자 가상머신 디스크 이미지로 저장장치(120) 즉, 디스크 상에 저장한다.
이처럼, 본 발명의 일 실시예는 다수의 사용자들이 공통적으로 사용하는 운영체제 및 응용 소프트웨어 부분은 기본 가상머신 이미지로 관리하여 메인 메모리(130) 상에 탑재하여 공통 활용하도록 하며, 사용자별로 업데이트되는 영역은 사용자 가상머신 디스크 이미지로 구성하여 디스크 상에 저장하도록 운영함으로써, 운영되는 실질적인 가상머신 이미지의 크기를 감소시켜 가상머신 이미지를 유연하게 관리하고 전체 시스템의 성능을 향상시킬 수 있다.
즉, 각각의 사용자 가상머신 디스크 이미지는 공통된 기본 가상머신 이미지를 제외한 구조로, 사용되지 않는 블록을 많이 포함하고 있기 때문에 압축하여 저장할 경우 그 크기가 기본 가상머신 이미지를 함께 포함하여 압축한 종래의 가상머신 이미지보다 매우 작아지게 되는 장점이 있다.
도 5는 본 발명의 일 실시예에서의 임의의 가상머신에 대한 논리적인 가상머신 이미지가 구축되는 개념을 나타낸 도면이다.
도 4의 구조에서 실제 User#2가 액세스하게 되는 논리적인 가상머신 이미지를 보여준다. User#2의 논리적인 가상머신 이미지는 기본 가상머신 이미지 위에 사용자 가상머신 디스크 이미지를 덮어 씌운 결과가 된다.
도 6은 본 발명의 일 실시예에서의 논리적인 가상머신 이미지를 액세스하기 위한 순서도를 나타낸 것이다.
먼저, 클라이언트의 가상머신의 커널에서 디스크 입출력이 발생하면, 해당 디스크 입출력이 쓰기 요청인지, 읽기 요청인지 여부를 판별한다(S210).
확인 결과 디스크 입출력이 쓰기 요청인 경우, 사용자 가상머신 디스크 이미지에서 요청된 블록에 대한 쓰기 연산을 수행하고(S220), 사용자 가상머신 디스크 이미지에서 해당 블록에 대한 블록 사용 기록을 저장한다(S230).
또한, 확인 결과 디스크 입출력이 읽기 요청인 경우에는, 사용자 가상머신 디스크 이미지에서 읽기 요청에 상응하는 블록이 존재하는지 여부를 확인한다(S240).
그리고 확인 결과 블록이 존재하는 경우, 사용자 가상머신 디스크 이미지에서 요청된 블록에 대한 읽기 연산을 수행한다(S250).
이와 달리, 확인 결과 블록이 존재하지 않는 경우, 메인 메모리(130) 상에 탑재된 기본 가상머신 이미지에서 상기 요청된 블록에 대한 읽기 연산을 수행한다(S260).
이때, 사용자 가상머신 디스크 이미지를 읽어 들이는 경우에는 디스크 입출력이 발생하지만, 기본 가상머신 이미지를 읽어 들이는 경우에는 메인 메모리(130)에 접근하여 블록에 대한 읽기 연산을 수행하기 때문에 디스크 입출력이 발생하지 않는다.
도 7은 기본 가상머신 이미지 및 사용자 가상머신 디스크 이미지를 시스템(100)에 배치하는 내용을 설명하기 위한 순서도이다.
현재, 서비스하고자 하는 사용자 가상머신 디스크 이미지와 대응되는 기본 가상머신 이미지가 메인 메모리(130) 상에 존재하는지 여부를 확인한다(S310).
확인 결과 메인 메모리(130) 상에 존재하지 않는 경우, 기본 가상머신 이미지를 메인 메모리(130) 상에 탑재시키는 것이 필요하다(S320). 이와 달리, 메인 메모리(130) 상에 존재하는 경우, 메인 메모리(130) 상의 기본 가상머신 이미지의 위치 정보를 파악한다(S330).
다음으로, 사용자 가상머신 디스크 이미지의 압축을 해제하여 사용자 가상머신 이미지로 구축하고(S340), 사용자 가상머신 이미지 상에 기본 가상머신 이미지의 위치 정보를 연결 및 기록한다(S350).
도 8은 가상머신 실행 서비스 요청이 최초인 경우 기본 가상머신 이미지 및 사용자 가상머신 디스크 이미지를 시스템(100)에 배치하는 내용을 설명하기 위한 순서도이다.
먼저, 기본 가상머신 이미지가 메인 메모리(130) 상에 존재하는지 여부를 확인한다(S410).
확인 결과 메인 메모리(130) 상에 존재하지 않는 경우, 기본 가상머신 이미지를 메인 메모리(130) 상에 탑재시키는 것이 필요하다(S420). 이와 달리, 메인 메모리(130) 상에 존재하는 경우, 메인 메모리(130) 상의 기본 가상머신 이미지의 위치 정보를 파악한다(S430).
그 다음, 내용이 비어 있는 사용자 가상머신 이미지를 생성한다(S440). 즉 사용자 가상머신 이미지를 신규 상태(unused)로 지정한다.
그리고, 사용자 가상머신 이미지에 기본 가상머신 이미지의 위치 정보를 연결 및 기록한다(S450).
한편, 상술한 설명에서, 단계 S110 내지 S450은 본 발명의 구현예에 따라서, 추가적인 단계들로 더 분할되거나, 더 적은 단계들로 조합될 수 있다. 또한, 일부 단계는 필요에 따라 생략될 수도 있고, 단계 간의 순서가 변경될 수도 있다. 한편, 도 2 내지 도 8의 내용은 도 1의 가상머신 이미지 관리 시스템(100)의 내용에도 적용될 수 있다.
이상에서 전술한 본 발명의 일 실시예에 따른 고성능 가상 데스크탑 서비스를 제공하는 가상머신 이미지 관리 방법은, 하드웨어인 컴퓨터와 결합되어 실행되기 위해 프로그램(또는 어플리케이션)으로 구현되어 매체에 저장될 수 있다.
상기 전술한 프로그램은, 상기 컴퓨터가 프로그램을 읽어 들여 프로그램으로 구현된 상기 방법들을 실행시키기 위하여, 상기 컴퓨터의 프로세서(CPU)가 상기 컴퓨터의 장치 인터페이스를 통해 읽힐 수 있는 C, C++, JAVA, Ruby, 기계어 등의 컴퓨터 언어로 코드화된 코드(Code)를 포함할 수 있다. 이러한 코드는 상기 방법들을 실행하는 필요한 기능들을 정의한 함수 등과 관련된 기능적인 코드(Functional Code)를 포함할 수 있고, 상기 기능들을 상기 컴퓨터의 프로세서가 소정의 절차대로 실행시키는데 필요한 실행 절차 관련 제어 코드를 포함할 수 있다. 또한, 이러한 코드는 상기 기능들을 상기 컴퓨터의 프로세서가 실행시키는데 필요한 추가 정보나 미디어가 상기 컴퓨터의 내부 또는 외부 메모리의 어느 위치(주소 번지)에서 참조되어야 하는지에 대한 메모리 참조관련 코드를 더 포함할 수 있다. 또한, 상기 컴퓨터의 프로세서가 상기 기능들을 실행시키기 위하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 통신이 필요한 경우, 코드는 상기 컴퓨터의 통신 모듈을 이용하여 원격에 있는 어떠한 다른 컴퓨터나 서버 등과 어떻게 통신해야 하는지, 통신 시 어떠한 정보나 미디어를 송수신해야 하는지 등에 대한 통신 관련 코드를 더 포함할 수 있다.
상기 저장되는 매체는, 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상기 저장되는 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있지만, 이에 제한되지 않는다. 즉, 상기 프로그램은 상기 컴퓨터가 접속할 수 있는 다양한 서버 상의 다양한 기록매체 또는 사용자의 상기 컴퓨터상의 다양한 기록매체에 저장될 수 있다. 또한, 상기 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장될 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100: 가상머신 이미지 관리 시스템
110: 통신모듈
120: 저장장치
130: 메인 메모리
140: 프로세서

Claims (17)

  1. 컴퓨터에 의해 수행되는 방법에 있어서,
    사용자에 상응하는 클라이언트로부터 가상머신 실행 서비스 요청을 수신하는 단계;
    상기 요청에 대응하여 사용자 가상머신 디스크 이미지로부터 논리적인 가상머신 이미지를 구축하는 단계; 및
    상기 논리적인 가상머신 이미지를 기반으로 구동한 가상머신을 상기 클라이언트로 제공하는 단계를 포함하고,
    상기 요청에 대응하여 사용자 가상머신 디스크 이미지로부터 논리적인 가상머신 이미지를 구축하는 단계는,
    사용자 가상머신 디스크 이미지와 대응되는 운영체제 및 응용 소프트웨어가 설치된 기본 가상머신 이미지를 메인 메모리 상에 탑재하는 단계;
    사용자 가상머신 디스크 이미지가 없는 경우 깨끗한 이미지를 디스크 상에서 생성하는 단계; 및
    상기 사용자 가상머신 디스크 이미지와 메인 메모리 상의 기본 가상머신 이미지의 연결고리를 생성하는 단계를 포함하는,
    고성능 가상 데스크탑 서비스를 제공하는 VM(Virtual Machine) 이미지 관리 방법.
  2. 제1항에 있어서,
    상기 요청에 대응하여 사용자 가상머신 디스크 이미지로부터 논리적인 가상머신 이미지를 구축하는 단계는,
    상기 운영체제만이 설치된 기본 가상머신 이미지를 준비하는 단계; 및
    상기 기본 가상머신 이미지 상에 응용 소프트웨어를 탑재하여 상기 기본 가상머신 이미지를 구축하는 단계를 포함하는,
    고성능 가상 데스크탑 서비스를 제공하는 VM 이미지 관리 방법.
  3. 제1항에 있어서,
    상기 요청에 대응하여 사용자 가상머신 디스크 이미지로부터 논리적인 가상머신 이미지를 구축하는 단계는,
    상기 기본 가상머신 이미지에 상기 사용자 가상머신 디스크 이미지를 덮어 씌워 논리적인 가상머신 이미지를 구축하는 것인,
    고성능 가상 데스크탑 서비스를 제공하는 VM 이미지 관리 방법.
  4. 제1항에 있어서,
    사용자의 가상머신 커널에서의 디스크 입출력이 쓰기 요청인 경우, 상기 요청에 대응하여 사용자 가상머신 디스크 이미지로부터 논리적인 가상머신 이미지를 구축하는 단계는,
    상기 사용자 가상머신 디스크 이미지에서 요청된 블록에 대한 쓰기 연산을 수행하는 단계; 및
    상기 사용자 가상머신 디스크 이미지에서 상기 블록에 대한 블록 사용 기록을 저장하는 단계를 포함하는,
    고성능 가상 데스크탑 서비스를 제공하는 VM 이미지 관리 방법.
  5. 제1항에 있어서,
    사용자의 가상머신 커널에서의 디스크 입출력이 읽기 요청인 경우, 상기 요청에 대응하여 사용자 가상머신 디스크 이미지로부터 논리적인 가상머신 이미지를 구축하는 단계는,
    상기 사용자 가상머신 디스크 이미지에서 상기 읽기 요청에 상응하는 블록이 존재하는지 여부를 확인하는 단계; 및
    상기 블록이 존재하는 경우 상기 사용자 가상머신 디스크 이미지에서 요청된 블록에 대한 읽기 연산을 수행하는 단계를 포함하는,
    고성능 가상 데스크탑 서비스를 제공하는 VM 이미지 관리 방법.
  6. 제5항에 있어서,
    상기 요청에 대응하여 사용자 가상머신 디스크 이미지로부터 논리적인 가상머신 이미지를 구축하는 단계는,
    상기 확인 결과 블록이 존재하지 않는 경우, 상기 메인 메모리 상에 탑재된 기본 가상머신 이미지에서 상기 요청된 블록에 대한 읽기 연산을 수행하는 단계를 포함하는,
    고성능 가상 데스크탑 서비스를 제공하는 VM 이미지 관리 방법.
  7. 제1항에 있어서,
    상기 논리적인 가상머신 이미지를 기반으로 구동한 가상머신을 상기 클라이언트로 제공하는 단계는,
    상기 사용자 가상머신 디스크 이미지의 압축을 해제하여 사용자 가상머신 이미지로 구축하는 단계; 및
    상기 사용자 가상머신 이미지에 상기 기본 가상머신 이미지의 위치 정보를 연결시키는 단계를 포함하는,
    고성능 가상 데스크탑 서비스를 제공하는 VM 이미지 관리 방법.
  8. 제7항에 있어서,
    상기 논리적인 가상머신 이미지를 기반으로 구동한 가상머신을 상기 클라이언트로 제공하는 단계는,
    상기 가상머신의 서비스를 위해 구축된 사용자 기본 가상머신 디스크 이미지와 대응되는 상기 기본 가상머신 이미지가 메인 메모리 상에 존재하는지 여부를 확인하는 단계; 및
    상기 확인 결과 존재하지 않는 경우, 상기 기본 가상머신 이미지를 메인 메모리 상에 탑재하는 단계를 포함하는,
    고성능 가상 데스크탑 서비스를 제공하는 VM 이미지 관리 방법.
  9. 제1항에 있어서,
    상기 가상머신 실행 서비스 요청이 최초인 경우, 상기 논리적인 가상머신 이미지를 기반으로 구동한 가상머신을 상기 클라이언트로 제공하는 단계는,
    상기 사용자 가상머신 이미지를 신규 상태로 지정하고, 상기 사용자 가상머신 이미지에 상기 기본 가상머신 이미지의 위치 정보를 연결시키는 것인,
    고성능 가상 데스크탑 서비스를 제공하는 VM 이미지 관리 방법.
  10. 고성능 가상 데스크탑 서비스를 제공하는 VM(Virtual Machine) 이미지 관리 시스템에 있어서,
    사용자에 상응하는 클라이언트로부터 가상머신 실행 서비스 요청을 수신하고, 요청에 대응하여 가상머신 서비스를 제공하는 통신모듈,
    상기 가상머신 서비스를 제공하기 위한 프로그램이 저장된 저장장치,
    상기 저장장치에 저장된 프로그램을 실행시키는 프로세서 및
    상기 프로세서에 의해 구축된 기본 가상머신 이미지를 탑재하는 메인 메모리를 포함하고,
    상기 프로세서는 상기 프로그램을 실행시킴에 따라, 상기 가상머신 실행 서비스 요청에 대응하여, 사용자 가상머신 디스크 이미지와 대응되는 운영체제 및 응용 소프트웨어가 설치된 기본 가상머신 이미지를 메인 메모리 상에 탑재하고, 사용자 가상머신 디스크 이미지가 없을 경우 깨끗한 이미지를 디스크 상에서 생성하고, 상기 사용자 가상머신 디스크 이미지와 메인 메모리 상의 기본 가상머신 이미지의 연결고리를 생성하여 논리적인 가상머신 이미지를 구축하고, 상기 논리적인 가상머신 이미지를 기반으로 구동되는 가상머신을 상기 클라이언트로 제공하는 것인,
    고성능 가상 데스크탑 서비스를 제공하는 VM 이미지 관리 시스템.
  11. 제10항에 있어서,
    상기 프로세서는 상기 운영체제만이 설치된 기본 가상머신 이미지를 준비하고, 상기 기본 가상머신 이미지 상에 응용 소프트웨어를 탑재하여 상기 기본 가상머신 이미지를 구축하는 것인,
    고성능 가상 데스크탑 서비스를 제공하는 VM 이미지 관리 시스템.
  12. 제10항에 있어서,
    상기 프로세서는 상기 기본 가상머신 이미지에 상기 사용자 가상머신 디스크 이미지를 덮어 씌워 상기 논리적인 가상머신 이미지를 구축하는 것인,
    고성능 가상 데스크탑 서비스를 제공하는 VM 이미지 관리 시스템.
  13. 제10항에 있어서,
    상기 프로세서는 사용자의 가상머신 커널에서의 디스크 입출력이 쓰기 요청인 경우, 상기 사용자 가상머신 디스크 이미지에서 요청된 블록에 대한 쓰기 연산을 수행하고, 상기 사용자 가상머신 디스크 이미지에서 상기 블록에 대한 블록 사용 기록을 저장하는 것인,
    고성능 가상 데스크탑 서비스를 제공하는 VM 이미지 관리 시스템.
  14. 제10항에 있어서,
    상기 프로세서는 사용자의 가상머신 커널에서의 디스크 입출력이 읽기 요청인 경우, 상기 사용자 가상머신 디스크 이미지에서 상기 읽기 요청에 상응하는 블록이 존재하는지 여부를 확인하고, 상기 블록이 존재하는 경우 상기 사용자 가상머신 디스크 이미지에서 요청된 블록에 대한 읽기 연산을 수행하는 것인,
    고성능 가상 데스크탑 서비스를 제공하는 VM 이미지 관리 시스템.
  15. 제14항에 있어서,
    상기 프로세서는 상기 확인 결과 블록이 존재하지 않는 경우, 상기 메인 메모리 상에 탑재된 기본 가상머신 이미지에서 상기 요청된 블록에 대한 읽기 연산을 수행하는 것인,
    고성능 가상 데스크탑 서비스를 제공하는 VM 이미지 관리 시스템.
  16. 제10항에 있어서,
    상기 프로세서는 상기 사용자 기본 가상머신 디스크 이미지와 대응되는 상기 기본 가상머신 이미지가 메인 메모리 상에 존재하는지 여부를 확인하고, 상기 확인 결과 존재하지 않는 경우, 상기 기본 가상머신 이미지를 메인 메모리 상에 탑재한 후,
    상기 사용자 가상머신 디스크 이미지의 압축을 해제하여 사용자 가상머신 이미지로 구축하고, 상기 사용자 가상머신 이미지에 상기 기본 가상머신 이미지의 위치 정보를 연결시키는 것인,
    고성능 가상 데스크탑 서비스를 제공하는 VM 이미지 관리 시스템.
  17. 제10항에 있어서,
    상기 프로세서는 상기 사용자의 가상머신 실행 서비스 요청이 최초인 경우, 상기 사용자 가상머신 이미지를 신규 상태로 지정하고, 상기 사용자 가상머신 이미지에 상기 기본 가상머신 이미지의 위치 정보를 연결시키는 것인,
    고성능 가상 데스크탑 서비스를 제공하는 VM 이미지 관리 시스템.
KR1020210147085A 2021-10-29 2021-10-29 고성능 가상 데스크탑 서비스를 위한 vm 이미지 관리 시스템 및 방법 KR20230062126A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020210147085A KR20230062126A (ko) 2021-10-29 2021-10-29 고성능 가상 데스크탑 서비스를 위한 vm 이미지 관리 시스템 및 방법
US17/976,279 US20230134506A1 (en) 2021-10-29 2022-10-28 System and method for managing vm images for high-performance virtual desktop services

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210147085A KR20230062126A (ko) 2021-10-29 2021-10-29 고성능 가상 데스크탑 서비스를 위한 vm 이미지 관리 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR20230062126A true KR20230062126A (ko) 2023-05-09

Family

ID=86146535

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210147085A KR20230062126A (ko) 2021-10-29 2021-10-29 고성능 가상 데스크탑 서비스를 위한 vm 이미지 관리 시스템 및 방법

Country Status (2)

Country Link
US (1) US20230134506A1 (ko)
KR (1) KR20230062126A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140098919A (ko) 2013-01-31 2014-08-11 한국전자통신연구원 실시간 가상 데스크탑 서비스를 위한 가상머신 제공 방법 및 서비스 게이트웨이

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140098919A (ko) 2013-01-31 2014-08-11 한국전자통신연구원 실시간 가상 데스크탑 서비스를 위한 가상머신 제공 방법 및 서비스 게이트웨이

Also Published As

Publication number Publication date
US20230134506A1 (en) 2023-05-04

Similar Documents

Publication Publication Date Title
JP6961844B2 (ja) ストレージボリューム作成方法および装置、サーバ、並びに記憶媒体
RU2446450C2 (ru) Преобразование машин в виртуальные машины
US9423983B2 (en) Intelligent storage controller
CN111488241A (zh) 在容器编排平台实现无代理备份与恢复操作的方法和系统
EP2189902A1 (en) Information processor
CN111198663B (zh) 控制数据存取操作的方法、系统、装置以及存储介质
CN110806911B (zh) 一种云桌面管控方法、装置及系统
EP4332764A1 (en) Virtual machine migration method and related apparatus
CN108475201B (zh) 一种虚拟机启动过程中的数据获取方法和云计算系统
US8688946B2 (en) Selecting an auxiliary storage medium for writing data of real storage pages
US20120084531A1 (en) Adjusting memory allocation of a partition using compressed memory paging statistics
CN114490023B (zh) 一种基于arm和fpga的高能物理可计算存储设备
CN105389190A (zh) 一种操作系统启动的方法、装置及系统
US11586471B2 (en) Computer system and control method for computer system
CN111767169A (zh) 数据处理方法、装置、电子设备及存储介质
US20220374256A1 (en) Information processing system, information processing apparatus, method of controlling the same, and storage medium
KR20230062126A (ko) 고성능 가상 데스크탑 서비스를 위한 vm 이미지 관리 시스템 및 방법
CN112948336B (zh) 数据加速方法及缓存单元、电子设备及存储介质
Caldwell et al. Fluidmem: Memory as a service for the datacenter
CN113821157B (zh) 一种本地磁盘挂载方法、装置、设备及存储介质
RU2666334C2 (ru) Способ обработки данных
CN114510375A (zh) 一种Flash芯片数据区域动态共享系统及方法
CN113722131A (zh) 用于促进存储设备中的快速崩溃恢复的方法和系统
KR102456017B1 (ko) 응용 프로그램간 파일 공유 장치 및 방법
CN113704165B (zh) 一种超融合服务器、数据处理方法及装置

Legal Events

Date Code Title Description
E902 Notification of reason for refusal