KR20150108682A - 복수의 가상머신을 포함하는 vdi 서버에서의 소프트웨어 설치방법 및 이를 이용하는 vdi 서버 - Google Patents

복수의 가상머신을 포함하는 vdi 서버에서의 소프트웨어 설치방법 및 이를 이용하는 vdi 서버 Download PDF

Info

Publication number
KR20150108682A
KR20150108682A KR1020140031798A KR20140031798A KR20150108682A KR 20150108682 A KR20150108682 A KR 20150108682A KR 1020140031798 A KR1020140031798 A KR 1020140031798A KR 20140031798 A KR20140031798 A KR 20140031798A KR 20150108682 A KR20150108682 A KR 20150108682A
Authority
KR
South Korea
Prior art keywords
file
software
installation
virtual
application pack
Prior art date
Application number
KR1020140031798A
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 KR1020140031798A priority Critical patent/KR20150108682A/ko
Publication of KR20150108682A publication Critical patent/KR20150108682A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

본 출원은 복수의 가상머신을 포함하는 VDI 서버에서의 소프트웨어 설치방법 및 이를 이용하는 VDI 서버에 관한 것으로서, 특히 본 발명의 일 실시예에 의한 복수의 가상머신을 포함하는 VDI 서버에서의 소프트웨어 설치방법은, 소프트웨어의 인스톨 프로그램에 후킹모듈(hooking module)을 연결하여, 상기 인스톨 프로그램이 설정하는 상기 소프트웨어의 레지스트리 설정정보와 서비스 프로그램 등록정보를 추출하고, 상기 인스톨 프로그램이 설치하는 설치파일 중에서 시스템 파일을 구별하는 후킹단계; 상기 후킹모듈을 이용하여 상기 인스톨 프로램이 설치하는 상기 소프트웨어의 설치파일들을 어플리케이션 팩에 저장하고, 상기 후킹모듈이 추출하는 시스템 파일의 파일명, 레지스트리 설정정보 및 서비스 프로그램 등록정보를 이용하여 DB파일을 생성하는 어플리케이션 팩 생성단계; 상기 DB파일을 이용하여 상기 어플리케이션 팩에서 상기 시스템 파일을 추출한 후, 상기 시스템 파일을 상기 소프트웨어를 설치하고자 하는 가상머신의 가상운영체제에 설치하고, 상기 DB 파일에 저장된 상기 레지스트리 설정정보 및 서비스 프로그램 등록정보를 상기 가상운영체제에 적용하는 개인설정단계; 및 상기 가상머신의 로컬디스크 상에 상기 소프트웨어의 설치폴더를 생성하고, 상기 설치폴더의 파일경로를 상기 어플리케이션 팩에 맵핑하는 공유설정단계를 포함할 수 있다.

Description

복수의 가상머신을 포함하는 VDI 서버에서의 소프트웨어 설치방법 및 이를 이용하는 VDI 서버 {Method for installing software for VDI server which includes plurality of virtual machine and VDI server using the same}
본 출원은 복수의 가상머신을 포함하는 VDI 서버에서의 소프트웨어 설치방법 및 이를 이용하는 VDI 서버에 관한 것으로서, 특히 소프트웨어의 효율적인 프로비저닝(provisioning)이 가능한, 복수의 가상머신을 포함하는 VDI 서버에서의 소프트웨어 설치방법 및 이를 이용하는 VDI 서버에 관한 것이다.
데스크탑 가상화는 SBC(ServerBased Computing)와 VDI(Virtual Desktop Infrastructure)로 나눌 수 있다. SBC는 서버 운영체제에서 제공하는 터미널 서비스를 통하여 가상 데스크탑 환경을 사용자에게 제공하는 반면, VDI는 서버에 데스크톱 환경을 위한 가상머신을 생성하고, 이처럼 생성된 가상머신에 운영체제와 어플리케이션을 설치하여 사용자에게 제공할 가상 데스크탑 환경을 구현한다는 점에서 차이가 있다. 이들 중에서, VDI 서비스는 보다 사용자의 로컬 데스크탑 환경과 유사한 데스크탑 환경을 가질 수 있다는 점에서 각광받고 있다.
공개특허공보 10-2014-0018076 (2014.02.12)
본 출원은, 소프트웨어의 효율적인 프로비저닝(provisioning)이 가능한 복수의 가상머신을 포함하는 VDI 서버에서의 소프트웨어 설치방법 및 이를 이용하는 VDI 서버을 제공하고자 한다.
본 발명의 일 실시예에 의한, 복수의 가상머신(VM: Virtual machine)을 포함하는 VDI(Virtual Desktop Infrastructure) 서버에서의 소프트웨어(software) 설치방법은, 소프트웨어의 인스톨 프로그램에 후킹모듈(hooking module)을 연결하여, 상기 인스톨 프로그램이 설정하는 상기 소프트웨어의 레지스트리 설정정보와 서비스 프로그램 등록정보를 추출하고, 상기 인스톨 프로그램이 설치하는 설치파일 중에서 시스템 파일(system file)을 구별하는 후킹단계; 상기 후킹모듈을 이용하여 상기 인스톨 프로램이 설치하는 상기 소프트웨어의 설치파일들을 어플리케이션 팩(Appalication Pack)에 저장하고, 상기 후킹모듈이 추출하는 시스템 파일의 파일명, 레지스트리 설정정보 및 서비스 프로그램 등록정보를 이용하여 DB파일(Data-Base file)을 생성하는 어플리케이션 팩 생성단계; 상기 DB파일을 이용하여 상기 어플리케이션 팩에서 상기 시스템 파일을 추출한 후, 상기 시스템 파일을 상기 소프트웨어를 설치하고자 하는 가상머신의 가상운영체제(Virtual Operating system)에 설치하고, 상기 DB 파일에 저장된 상기 레지스트리 설정정보 및 서비스 프로그램 등록정보를 상기 가상운영체제에 적용하는 개인설정단계; 및 상기 가상머신의 로컬디스크 상에 상기 소프트웨어의 설치폴더를 생성하고, 상기 설치폴더의 파일경로를 상기 어플리케이션 팩에 맵핑(mapping)하는 공유설정단계를 포함할 수 있다.
여기서 상기 후킹단계는, 적어도 ocx 파일 및 COM(Component Object Module) 파일을 상기 시스템 파일로 구별할 수 있다.
여기서 상기 어플리케이션 팩 생성단계는, 상기 어플리케이션 팩을 복수의 가상머신이 접근가능한 공유디스크상에 생성할 수 있다.
여기서 상기 공유설정단계는, 상기 시스템 파일 및 DB파일은 상기 설치폴더와의 맵핑에서 제외할 수 있다.
여기서 상기 공유설정단계는, 상기 설치폴더에 기 설정된 무결성 알고리즘을 적용할 수 있다.
여기서 상기 무결성 알고리즘은, 상기 설치폴더에 접근하면, 상기 어플리케이션 팩에 설치된 파일을 표시하고, 상기 설치폴더에 표시된 상기 어플리케이션 팩의 파일을 수정하면, 상기 수정된 파일을 상기 설치폴더에 저장하고, 상기 수정된 파일과 맵핑되는 상기 어플리케이션 팩의 파일경로는 차단할 수 있다.
여기서 상기 무결성 알고리즘은, 상기 설치폴더에 표시된 상기 어플리케이션 팩의 파일이 삭제되면, 상기 삭제된 파일과 맵핑되는 상기 어플리케이션 팩의 파일경로를 차단하여, 상기 삭제된 파일을 제외하고 표시할 수 있다.
여기서 상기 무결성 알고리즘은, 상기 설치폴더에 파일이 추가되는 경우에는, 상기 추가되는 파일을 상기 설치폴더에 저장하고, 상기 어플리케이션 팩의 파일과 동시에 상기 추가된 파일을 표시할 수 있다.
본 발명의 일 실시예에 의하면, 상술한 방법을 실행하기 위한 프로그램이 기록된 컴퓨터에서 판독 가능한 기록 매체가 있을 수 있다.
본 발명의 일 실시예에 의한 복수의 가상머신(VM: Virtual machine)을 포함하는 VDI(Virtual Desktop Infrastructure) 서버는, 소프트웨어의 인스톨 프로그램이 실행되면, 후킹모듈을 연결하여 상기 소프트웨어의 설치파일을 어플리케이션 팩에 저장하고, 상기 설치 파일 중에서 시스템 파일의 파일명과, 상기 소프트웨어의 레지스트리 설정정보 및 서비스 프로그램 등록정보를 추출하여 DB파일을 생성하는 소프트웨어 인스톨 런처; 상기 DB파일을 이용하여 상기 시스템 파일을 추출한 후, 상기 시스템 파일을 상기 소프트웨어를 설치하고자 하는 가상머신에 설치하고, 상기 DB 파일에 저장된 상기 레지스트리 설정정보 및 서비스 프로그램 등록정보를 상기 가상머신에 적용하며, 상기 가상머신의 로컬디스크 상에 상기 소프트웨어의 설치폴더를 생성하는 어플리케이션 관리모듈; 및 상기 설치폴더에 상기 어플리케이션 팩의 파일경로를 맵핑하는 파일드라이버를 포함할 수 있다.
덧붙여 상기한 과제의 해결수단은, 본 발명의 특징을 모두 열거한 것이 아니다. 본 발명의 다양한 특징과 그에 따른 장점과 효과는 아래의 구체적인 실시형태를 참조하여 보다 상세하게 이해될 수 있을 것이다.
본 발명의 일 실시예에 의한 복수의 가상머신을 포함하는 VDI 서버에서의 소프트웨어 설치방법 및 이를 이용하는 VDI 서버에 의하면, 소프트웨어의 효율적인 프로비저닝(provisioning)이 가능하다. 또한, 사용자 별로 중복된 소프트웨어의 설치로 인한 저장장치의 낭비를 방지할 수 있으며, 대용량 저장장치의 구축에 따른 비용증가와 운영, 관리 상의 어려움을 낮출 수 있다.
본 발명의 일 실시예에 의한 복수의 가상머신을 포함하는 VDI 서버에서의 소프트웨어 설치방법 및 이를 이용하는 VDI 서버에 의하면, 가상 데스크탑 환경에서 사용자에게 필요한 소프트웨어를 공유하여 사용하는 것이 가능하다.
도1 및 도2는 본 발명의 일 실시예에 의한 복수의 가상머신을 포함하는 VDI 서버를 나타내는 블록도이다.
도3은 본 발명의 일 실시예에 의한 복수의 가상머신을 포함하는 VDI 서버에서의 소프트웨어 설치방법을 나타내는 순서도이다.
이하, 첨부된 도면을 참조하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 바람직한 실시예를 상세히 설명한다. 다만, 본 발명의 바람직한 실시예를 상세하게 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다. 또한, 유사한 기능 및 작용을 하는 부분에 대해서는 도면 전체에 걸쳐 동일한 부호를 사용한다.
덧붙여, 명세서 전체에서, 어떤 부분이 다른 부분과 '연결'되어 있다고 할 때, 이는 '직접적으로 연결'되어 있는 경우뿐만 아니라, 그 중간에 다른 소자를 사이에 두고 '간접적으로 연결'되어 있는 경우도 포함한다. 또한, 어떤 구성요소를 '포함'한다는 것은, 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다.
도1 및 도2는 본 발명의 일 실시예에 의한 복수의 가상머신을 포함하는 VDI 서버를 나타내는 블록도이다.
도1 및 도2를 참조하면, 본 발명의 일 실시예에 의한 복수의 가상머신(VM: Virtual Machine)을 포함하는 VDI 서버(Virtual Desktop Server)는, 소프트웨어 인스톨 런처(110, software install launcher), 어플리케이션 관리모듈(120, application management module) 및 파일드라이버(130, file driver)를 포함할 수 있다.
이하, 도1 및 도2를 참조하여 본 발명의 일 실시예에 의한 복수의 가상머신을 포함하는 VDI 서버를 설명한다.
VDI 서버(100)는, 내부의 물리적인 컴퓨팅 자원을 가상화하여, 접속하는 사용자 단말(u1, u2)에게 개인용 데스크탑 컴퓨터를 사용하는 것과 근사한 효과를 제공하는 장치이다. 구체적으로, VDI 서버(100)는 각각의 사용자 단말(u1, u2)에 할당되는 복수의 가상머신(VM1, VM2)을 포함할 수 있으며, 각각의 가상머신(VM1, VM2)은 상기 VDI 서버(100)의 물리적 컴퓨팅 자원을 가상화할 수 있다. 즉, 상기 가상머신(VM1, VM2)은 대응하는 사용자 단말(u1, u2)에 대하여, 상기 가상화된 컴퓨팅 자원을 이용하여 가상의 데스크탑 환경을 제공할 수 있으며, 상기 가상의 데스크탑 환경은 물리적인 데스크 탑 환경과 유사하게, 각각의 가상머신(VM1, VM2) 별로 가상운영체제와 응용소프트웨어 등이 설치되어 구동될 수 있다.
종래에는, 사용자단말이 가상머신에 접속하여 어플리케이션 등의 응용소프트웨어를 설치하면, 각각의 가상머신에 개별적으로 할당되는 로컬 디스크에 상기 응용소프트웨어를 저장하였다. 다만, 상기 로컬 디스크는, 실제로는 VDI 서버 내부의 저장장치를 가상화하여 각각의 가상머신별로 할당하는 것이므로, 각각의 로컬 디스크에 동일한 어플리케이션을 중복하여 설치하는 것은 저장공간의 낭비로 볼 수 있다. 또한, 추후 VDI 서버의 저장공간이 부족해지는 경우에는, 상기 VDI 서버의 운영 및 관리 등에 어려움이 발생하는 등의 문제점이 있다.
한편, 본 발명의 일 실시예에 의한 VDI 서버(100)는, 도1에 도시한 바와 같이, 가상 운영체제, 응용소프트웨어, 사용자 데이터를 계층적으로 분리한 후, 필요에 따라 소프트웨어를 조합하여 사용자에게 제공할 수 있다. 즉, 본 발명의 일 실시예에 의하면, 각각의 가상머신(VM1, VM2)은 어플리케이션 등의 응용소프트웨어 영역을 공유할 수 있으므로, 저장공간을 보다 효율적으로 사용할 수 있다.
구체적으로, 본 발명의 일 실시예에 의한 VDI 서버(100)는, 도2에 도시한 바와 같이, 소프트웨어 인스톨 런처(110)를 포함할 수 있다. 사용자는 사용자단말(u1)을 이용하여 개별 가상머신(VM1)에 접속할 수 있으며, 상기 가상머신(VM1)에 구동하고자 하는 소프트웨어를 설치할 수 있다. 이 경우, 사용자는 상기 소프트웨어의 인스톨(install) 프로그램을 실행할 수 있으며, 이때 상기 소프트웨어 인스톨 런처(110)는, 상기 인스톨 프로그램에 후킹모듈(hooking module)을 연결할 수 있다. 상기 후킹모듈은, 상기 인스톨 프로그램이 설치하는 상기 소프트웨어의 설치경로를 변경할 수 있으며, 특히 상기 설치경로를 공유디스크(B) 상의 어플리케이션 팩(P)으로 변경할 수 있다. 여기서, 상기 공유디스크(B)는 상기 VDI 서버(100)의 저장공간 중에서, 각각의 가상머신(VM1, VM2)이 서로 공유하여 접근할 수 있는 저장공간에 해당할 수 있다. 즉, 상기 소프트웨어 인스톨 런처(110)는, 상기 소프트웨어가 설치되는 경로를 개별적인 가상머신(VM1, VM2)의 로컬디스크에서, 복수의 가상머신(VM1, VM2)이 서로 공유하는 공유디스크(D)로 변경하여 설치할 수 있다. 다만, 소프트웨어가 정상적으로 동작하기 위해서는, 일반적으로 운영체제로부터 설정정보, 파라미터 등을 제공받거나, 운영체제의 레지스트리 등을 참조할 필요가 있다. 하지만, 상술한 바와 같이, 상기 소프트웨어를 공유디스크에 설치하게 되면, 상기 소프트웨어와 연결되는 가상운영체제가 없으므로, 상기 소프트웨어는 정상적으로 동작하지 않게 된다.
이를 방지하기 위하여, 본 실시예에 의한 소프트웨어 인스톨 런처(110)는, 상기 어플리케이션 팩(P)에 설치되는 소프트웨어의 파일을 분석할 수 있으며, 상기 분석을 통하여 개별적인 가상머신의 로컬디스크 영역에 설치되어야 하는 파일 등을 추출할 수 있다. 구체적으로, 상기 소프트웨어 인스톨 런처(110)는, 상기 후킹 모듈을 이용하여 설치파일 중에서 시스템 파일을 구별할 수 있으며, 상기 인스톨 프로그램이 설정하는 상기 소프트웨어의 레지스트리 설정정보 및 서비스 프로그램 등록정보도 별도로 추출할 수 있다. 여기서, 상기 소프트웨어 인스톨 런처(110)는, 상기 추출된 시스템 파일의 파일명, 레지스트리 설정정보 및 서비스 프로그램 등록정보를 포함하는 DB파일을 생성할 수 있다. 상기 DB파일을 상기 어플리케이션 팩(P)에 저장될 수 있으며, 이후 상기 DB파일을 이용하여 시스템 파일을 각각의 가상운영체제에 설정하거나, 상기 레지스트리 설정정보 및 서비스프로그램 등록정보를 상기 가상운영체제에 각각 적용할 수 있다. 여기서, 상기 시스템 파일에는, COM(Component Object Mdole) 파일, ocx 파일 등이 포함될 수 있으며, 가상운영체제로 윈도우즈(Windows™)를 활용하는 경우에는 윈도우즈 폴더에 설치되는 파일도 상기 시스템 파일에 해당할 수 있다.
소프트웨어 인스톨 런처(110)가 어플리케이션 팩(P)을 생성하면, 어플리케이션 관리모듈(120)은 상기 DB파일을 이용하여 상기 가상머신의 운영체제에 상기 어플리케이션 팩(P)을 병합할 수 있다. 앞서 살핀 바와 같이, 상기 어플리케이션 팩(P)에 저장된 소프트웨어는, 가상머신의 가상운영체제로부터 소프트웨어의 동작에 필요한 정보 등을 제공받아야 구동될 수 있다. 따라서, 상기 어플리케이션 관리모듈(120)은, 상기 어플리케이션 팩(P)에 저장된 소프트웨어를 상기 가상머신의 가상운영체제에 병합시켜, 상기 가상운영체제로부터 상기 필요한 정보 등을 제공받을 수 있다. 구체적으로, 상기 어플리케이션 관리모듈(120)은 상기 DB파일을 이용하여 어플리케이션 팩(P)에 포함된 시스템 파일, 레지스트리 설정정보 및 서비스 프로그램 등록정보를 추출할 수 있으며, 상기 추출한 시스템 파일, 레지스트리 설정정보 및 서비스 프로그램 등록정보를 상기 소프트웨어를 설치하고자 하는 가상머신의 가상운영체제에 설치할 수 있다.
즉, 소프트웨어 인스톨 런처(110)는, 상기 DB파일에 저장된 시스템 파일의 파일명을 이용하여 각각의 시스템 파일을 상기 어플리케이션 팩(P)에서 찾을 수 있으며, 상기 시스템 파일을 상기 가상머신의 로컬디스크에 저장하여 상기 가상머신의 가상운영체제에 설치할 수 있다. 또한, 상기 소프트웨어 인스톨 런처(110)는, 상기 DB파일에 저장된 상기 레지스트리 설정정보를 상기 가상머신의 가상운영체제에 적용할 수 있으며, 상기 DB파일에 저장된 상기 서비스 프로그램 등록정보를 이용하여, 상기 소프트웨어를 실행하기 위하여 상기 가상머신의 가상운영체제에 필요한 서비스 프로그램을, 상기 가상머신의 가상운영체제 상에 등록할 수 있다. 여기서, 상기 시스템 파일, 레지스트리 설정정보 및 서비스 프로그램 등록정보는, 상기 가상머신의 로컬 디스크에 각각 저장될 수 있으며, 이때 상기 가상머신은 상기 로컬디스크 상에 상기 시스템 파일, 레지스트리 설정정보 및 서비스 프로그램 등록정보를 저장하기 위한 시스템 폴더를 생성할 수 있다.
한편, 상기 어플리케이션 관리모듈(120)은, 상기 공유디스크(B) 상에 설치된 어플리케이션 팩(P)에 대응하는 설치폴더를, 상기 가상머신의 로컬 디스크 상에 생성할 수 있다. 상기 설치폴더는 상기 어플리케이션 팩(P)과 연결될 수 있으며, 상기 어플리케이션 팩(P)에 저장된 파일 등은 상기 설치폴더에서 공유될 수 있다. 구체적으로, 상기 어플리케이션 관리모듈(120)은 파일드라이버(130)를 동작시킬 수 있으며, 상기 파일드라이버(130)는 상기 설치폴더에 상기 어플리케이션 팩(P)의 파일경로를 맵핑할 수 있다. 즉, 상기 파일드라이버(130)에 의하여, 상기 설치폴더에 상기 어플리케이션 팩이 저장된 것과 같이 공유될 수 있으며, 상기 어플리케이션 팩은 상기 소프트웨어가 설치되는 복수의 가상머신에 각각 공유될 수 있다.
특히, 상기 어플리케이션 관리모듈(120)은 상기 시스템 파일과 레지스트리 설정정보, 서비스 프로그램 등록정보 등이 저장되는 상기 가상머신의 시스템폴더의 정보와 상기 설치폴더의 정보를 상기 파일드라이버(130)로 전송할 수 있다. 이 경우, 상기 파일드라이버(130)는 상기 시스템폴더와 상기 설치폴더를 서로 연결할 수 있으며, 상기 파일드라이버(130)는 상기 설치폴더에 상기 어플리케이션 팩(P)의 파일경로를 맵핑할 수 있다. 즉, 실제로는 시스템 파일과 레지스트리 정보, 서비스 프로그램 등록정보만이 가상머신의 로컬 디스크에 저장되지만, 각각의 시스템 폴더, 설치 폴더 및 어플리케이션 팩(P)은 서로 연결될 수 있다. 따라서, 전체 소프트웨어가 상기 로컬 디스크에 저장된 것과 같이, 상기 소프트웨어가 상기 가상머신 상에서 정상적으로 동작할 수 있다.
다만, 상기 어플리케이션 팩(P)은 복수의 가상머신이 서로 공유하므로, 특정한 가상머신이 상기 어플리케이션 팩(P)에 접근하여 상기 어플리케이션 팩(P)의 내용을 변경하거나 수정하면, 다른 가상머신에서는 상기 소프트웨어를 정상적으로 동작하지 못하게 되는 등의 문제가 발생할 수 있다. 이를 해결하기 위하여, 본 실시예에서는, 설치폴더에 기 설정된 무결성 알고리즘을 적용할 수 있다.
구체적으로, 사용자가 상기 설치폴더에 접근하면, 상기 가상머신은 상기 어플리케이션 팩(P)에 설치된 파일을 표시할 수 있다. 즉, 실제로 상기 설치폴더에는 상기 어플리케이션 팩(P)에 설치된 소프트웨어의 파일은 저장되어 있지 않으나, 공유디스크(A) 상에 저장된 상기 어플리케이션 팩(P)을 대신 표시할 수 있다. 이후, 사용자가 상기 설치폴더에 표시된 상기 어플리케이션 팩(P)의 파일을 수정하거나 변경하면, 상기 수정된 파일은 상기 설치폴더에 저장하고, 상기 수정된 파일과 맵핑되는 상기 어플리케이션팩의 파일경로는 차단할 수 있다. 즉, 상기 수정된 내용은 해당하는 가상머신에서만 적용될 수 있도록, 상기 수정된 파일을 로컬 디스크에 저장할 수 있으며, 상기 어플리케이션 팩(P)에는 원본이 유지되도록 할 수 있다. 마찬가지로, 사용자가 상기 설치폴더에 표시된 상기 어플리케이션 팩의 파일을 삭제하면, 상기 삭제된 파일과 맵핑되는 상기 어플리케이션 팩의 파일경로를 차단하여, 이후 상기 설치폴더에 접근하면 상기 삭제된 파일을 제외하고 표시할 수 있다. 또한, 사용자가 상기 설치폴더에 파일을 추가하는 경우에는, 상기 추가되는 파일을 상기 설치폴더에 저장할 수 있으며, 상기 어플리케이션 팩의 파일과 동시에 상기 추가된 파일을 표시할 수 있다.
도3은 본 발명의 일 실시예에 의한, 복수의 가상머신을 포함하는 VDI 서버에서의 소프트웨어 설치방법을 나타내는 순서도이다.
도3을 참조하면, 본 발명의 일 실시예에 의한 복수의 가상머신을 포함하는 VDI 서버에서의 소프트웨어 설치방법은, 후킹단계(S100), 어플리케이션 팩 생성단계(S200), 개인설정단계(S300) 및 공유설정단계(S400)를 포함할 수 있다.
이하, 도3을 참조하여 본 발명의 일 실시예에 의한 복수의 가상머신을 포함하는 VDI 서버에서의 소프트웨어 설치방법을 설명한다.
먼저, 사용자는 사용자단말을 이용하여 개별 가상머신에 접속할 수 있으며, 상기 가상머신에 소프트웨어를 설치하기 위하여, 소프트웨어의 인스톨 프로그램을 실행할 수 있다. 여기서, 상기 인스톨 프로그램은 상기 가상머신의 로컬디스크에 상기 소프트웨어의 설치를 시작할 수 있으며, 이때, 후킹단계(S100)를 통하여 상기 인스톨 프로그램에 후킹모듈(hooking module)을 연결할 수 있다. 즉, 상기 후킹단계(S100)에서는 소프트웨어의 인스톨 프로그램에 후킹모듈을 연결하여, 상기 인스톨 프로그램이 설치하는 설치파일을 분석할 수 있으며, 상기 분석을 통하여 상기 소프트웨어의 레지스트리 설정정보, 서비스 프로그램 등록정보 및 상기 인스톨 프로그램이 설치하는 설치파일 중에서 시스템 파일 등을 판별할 수 있다.
일반적으로, 소프트웨어가 정상적으로 동작하기 위해서는, 운영체제 등으로부터 설정정보, 파라미터 등을 제공받거나, 운영체제의 레지스트리 등을 참조할 필요가 있다. 따라서, 소프트웨어를 공유디스크 상에 설치한 후, 복수의 가상머신이 상기 소프트웨어를 공유하여 사용하도록 하기 위해서는, 상기 소프트웨어를 각각의 가상머신에 연결하여야 한다. 그러므로, 상기 후킹단계(S100)에서는 상기 후킹모듈을 이용하여, 상기 인스톨 프로그램에 설치되는 설치파일을 분석할 수 있으며, 공유디스크 상에 저장될 파일과 개별 가상머신에 설치되는 파일 내지 설정정보 등을 구별할 수 있다. 즉, 설치파일 중에서 시스템 파일, 레지스트리 설정정보, 서비스 프로그램 등록 정보 등은 각각의 가상머신의 가상운영체제에 적용되어야 하는 정보에 해당하며, 상기 후킹단계(S100)를 통하여 상기 정보 등을 추출할 수 있다.
여기서, 상기 시스템 파일에는 COM(Component Object Mdole) 파일, ocx 파일 등이 포함될 수 있으며, 운영체제로 윈도우즈를 활용하는 경우에는 윈도우즈 폴더에 설치되는 파일도 상기 시스템 파일에 해당할 수 있다.
이후, 어플리케이션 팩 생성단계(S200)에서는, 소프트웨어의 설치파일들을 어플리케이션 팩에 저장할 수 있으며, 상기 후킹단계(S100)에서 추출된 시스템 파일의 파일명, 레지스트리 설정정보 및 서비스 프로그램 등록정보를 이용하여, DB 파일을 생성할 수 있다. 즉, 어플리케이션 팩 생성단계(S200)에서는, 상기 후킹모듈을 이용하여, 상기 인스톨 프로그램이 설치하는 설치파일들을, 상기 가상머신의 로컬디스크 대신에 상기 어플리케이션 팩에 저장할 수 있다. 여기서, 상기 어플리케이션 팩은 공유디스크 상에 생성될 수 있으며, 상기 공유디스크는 VDI 서버의 저장공간 중에서, 각각의 가상머신이 서로 공유하여 접근할 수 있는 저장공간에 해당한다. 즉, 상기 공유디스크에 저장되는 어플리케이션 팩은 각각의 가상머신에 공유될 수 있다.
한편, 상기 어플리케이션 팩 생성단계(S200)에서는, 상기 후킹단계(S100)에서 추출된 시스템 파일의 파일명, 레지스트리 설정정보 및 서비스 프로그램 등록정보를 이용하여, DB 파일을 생성할 수 있다. 즉, 상기 DB 파일에는 상기 시스템 파일의 파일명이 저장되므로, 이후 상기 DB 파일을 이용하면, 상기 어플리케이션 팩에 저장된 파일 중에서 상기 시스템 파일을 용이하게 찾을 수 있다. 또한, 상기 DB 파일에는 레지스트리 설정정보와 서비스 프로그램의 등록정보가 포함되므로, 상기 소프트웨어가 설치되는 개별적인 가상운영체제에 대하여, 상기 소프트웨어를 동작하기 위한 레지스트리를 설정하고, 서비스 프로그램을 등록하는 것이 가능하다. 따라서, 어플리케이션 팩 생성단계(S200)에서는, 상기 가상운영체제와 상기 소프트웨어를 서로 연결하기 위한 정보 등을 포함하는 DB 파일을 생성할 수 있으며, 이후 상기 DB 파일을 이용하여 상기 소프트웨어를 각각의 개별적인 가상머신의 가상운영체제와 연결하도록 할 수 있다. 여기서, 상기 DB파일은 어플리케이션 팩 내부에 함께 저장될 수 있다.
개인설정단계(S300)에서는, 상기 DB파일을 이용하여 상기 어플리케이션 팩에서 상기 시스템 파일을 추출할 수 있으며, 상기 시스템 파일을 상기 소프트웨어를 설치하고자 하는 가상머신의 가상운영체제에 설치할 수 있다. 또한, 상기 DB 파일에 저장된 상기 레지스트리 설정정보 및 서비스 프로그램 등록정보를 이용하여, 상기 가상운영체제에 적용할 수 있다. 앞서 살핀 바와 같이, 상기 어플리케이션 팩에 저장된 소프트웨어는, 가상머신의 가상운영체제로부터 상기 소프트웨어의 동작에 필요한 정보 등을 제공받을 필요가 있으므로, 상기 개인설정단계(S300)에서는, 적어도 상기 시스템 파일, 레지스트리 설정정보 및 서비스 프로그램 등록정보 등을 상기 가상머신의 운영체제에 직접 설치하고 적용할 수 있다. 따라서, 상기 개인설정단계(S300)에 의하여 상기 소프트웨어는 상기 가상머신의 가상운영체제와 연결될 수 있으며, 상기 시스템 파일과 레지스트리 설정정보, 서비스 프로그램 등록정보 등은 상기 가상머신의 로컬 디스크에 저장될 수 있다.
이후, 공유설정단계(S400)를 통하여, 상기 가상머신의 로컬디스크 상에 상기 소프트웨어의 설치폴더를 생성할 수 있으며, 상기 설치폴더의 파일경로를 상기 어플리케이션 팩에 맵핑할 수 있다. 즉, 상기 공유설정단계(S400)를 통하여, 상기 설치폴더를 상기 어플리케이션 팩과 연결할 수 있으며, 상기 가상머신의 로컬디스크에 상기 어플리케이션 팩이 저장된 것과 동일한 효과를 얻을 수 있다. 따라서, 실제로는 시스템 파일과 레지스트리 설정정보, 서비스 프로그램 등록정보 등이 상기 가상머신의 로컬 디스크에 저장되지만, 상기 어플리케이션 팩에 포함되는 전체 소프트웨어가 상기 로컬 디스크에 저장된 것과 같이, 상기 소프트웨어가 상기 가상머신 상에서 정상적으로 동작하게 된다. 여기서, 상기 시스템 파일 및 DB파일은 상기 설치폴더와의 맵핑에서 제외될 수 있다.
추가적으로, 상기 어플리케이션 팩은 복수의 가상머신에 대하여, 각각 공유될 수 있으므로, 로컬에서 상기 어플리케이션 팩의 내용을 변경하거나 수정하는 경우에는, 다른 가상머신에서 정상적으로 동작하지 못하는 등의 문제가 발생할 수 있다. 이를 해결하기 위하여, 공유설정단계(S400)에서는, 설치폴더에 무결성 알고리즘을 적용할 수 있다.
구체적으로, 상기 무결성 알고리즘은, 사용자가 상기 설치폴더에 접근(access)하면 상기 어플리케이션 팩에 설치된 파일을 표시할 수 있다. 즉, 실제로 상기 설치폴더에는 상기 어플리케이션 팩에 설치된 소프트웨어의 파일은 저장되어 있지 않으나, 공유디스크 상에 저장된 상기 어플리케이션 팩을 대신 표시할 수 있다. 이후, 사용자가 상기 설치폴더에 표시된 상기 어플리케이션 팩의 파일을 수정하거나 변경하면, 상기 수정된 파일은 상기 설치폴더에 저장하고, 상기 수정된 파일과 맵핑되는 상기 어플리케이션팩의 파일경로는 차단할 수 있다. 즉, 상기 수정된 내용이 상기 가상머신에서만 적용될 수 있도록, 상기 수정, 변경된 파일을 로컬 디스크에 저장할 수 있으며, 상기 어플리케이션 팩에는 원본이 유지되도록 할 수 있다. 마찬가지로, 사용자가 상기 설치폴더에 표시된 상기 어플리케이션 팩의 파일을 삭제하면, 상기 삭제된 파일과 맵핑되는 상기 어플리케이션 팩의 파일경로를 차단하여, 이후 상기 설치폴더에 접근하면 상기 삭제된 파일을 제외하고 표시할 수 있다. 또한, 사용자가 상기 설치폴더에 파일을 추가하는 경우에는, 상기 추가되는 파일을 상기 설치폴더에 저장할 수 있으며, 상기 어플리케이션 팩의 파일과 동시에 상기 추가된 파일을 표시할 수 있다.
본 발명의 실시예에 따른 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어, 컴퓨터에서 판독 가능한 기록매체에 기록될 수 있다. 상기 컴퓨터에서 판독 가능한 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터에서 판독 가능한 기록매체에는 ROM, RAM, CD-ROM, 자기테이프, 플로피디스크, 광데이터 저장장치 등을 포함할 수 있으며, 캐리어 웨이브(예를들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한, 컴퓨터에서 판독가능한 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 본 발명에 따른 구성요소를 치환, 변형 및 변경할 수 있다는 것이 명백할 것이다.
100: VDI 서버 110: 소프트웨어 인스톨 런처
120: 어플리케이션 관리모듈 130: 파일드라이버
u1, u2: 사용자 단말 VM1, VM2: 가상머신
A: 가상머신 B: 공유 디스크
P: 어플리케이션 팩
S100: 후킹단계 S200: 어플리케이션 팩 생성단계
S300: 개인설정단계 S400: 공유설정단계

Claims (10)

  1. 복수의 가상머신(VM: Virtual machine)을 포함하는 VDI(Virtual Desktop Infrastructure) 서버에서의 소프트웨어(software) 설치방법에 있어서,
    소프트웨어의 인스톨 프로그램에 후킹모듈(hooking module)을 연결하여, 상기 인스톨 프로그램이 설정하는 상기 소프트웨어의 레지스트리 설정정보와 서비스 프로그램 등록정보를 추출하고, 상기 인스톨 프로그램이 설치하는 설치파일 중에서 시스템 파일(system file)을 구별하는 후킹단계;
    상기 후킹모듈을 이용하여 상기 인스톨 프로램이 설치하는 상기 소프트웨어의 설치파일들을 어플리케이션 팩(Appalication Pack)에 저장하고, 상기 후킹모듈이 추출하는 시스템 파일의 파일명, 레지스트리 설정정보 및 서비스 프로그램 등록정보를 이용하여 DB파일(Data-Base file)을 생성하는 어플리케이션 팩 생성단계;
    상기 DB파일을 이용하여 상기 어플리케이션 팩에서 상기 시스템 파일을 추출한 후, 상기 시스템 파일을 상기 소프트웨어를 설치하고자 하는 가상머신의 가상운영체제(Virtual Operating system)에 설치하고, 상기 DB 파일에 저장된 상기 레지스트리 설정정보 및 서비스 프로그램 등록정보를 상기 가상운영체제에 적용하는 개인설정단계; 및
    상기 가상머신의 로컬디스크 상에 상기 소프트웨어의 설치폴더를 생성하고, 상기 설치폴더의 파일경로를 상기 어플리케이션 팩에 맵핑(mapping)하는 공유설정단계를 포함하는 복수의 가상머신을 포함하는 VDI 서버에서의 소프트웨어 설치방법.
  2. 제1항에 있어서, 상기 후킹단계는
    적어도 ocx 파일 및 COM(Component Object Module) 파일을 상기 시스템 파일로 구별하는 복수의 가상머신을 포함하는 VDI 서버에서의 소프트웨어 설치방법.
  3. 제1항에 있어서, 상기 어플리케이션 팩 생성단계는
    상기 어플리케이션 팩을 복수의 가상머신이 접근가능한 공유디스크상에 생성하는 복수의 가상머신을 포함하는 VDI 서버에서의 소프트웨어 설치방법.
  4. 제1항에 있어서, 상기 공유설정단계는
    상기 시스템 파일 및 DB파일은 상기 설치폴더와의 맵핑에서 제외하는 복수의 가상머신을 포함하는 VDI 서버에서의 소프트웨어 설치방법.
  5. 제1항에 있어서, 상기 공유설정단계는
    상기 설치폴더에 기 설정된 무결성 알고리즘을 적용하는 복수의 가상머신을 포함하는 VDI 서버에서의 소프트웨어 설치방법.
  6. 제5항에 있어서, 상기 무결성 알고리즘은
    상기 설치폴더에 접근하면, 상기 어플리케이션 팩에 설치된 파일을 표시하고, 상기 설치폴더에 표시된 상기 어플리케이션 팩의 파일을 수정하면, 상기 수정된 파일을 상기 설치폴더에 저장하고, 상기 수정된 파일과 맵핑되는 상기 어플리케이션 팩의 파일경로는 차단하는 복수의 가상머신을 포함하는 VDI 서버에서의 소프트웨어 설치방법.
  7. 제6항에 있어서, 상기 무결성 알고리즘은
    상기 설치폴더에 표시된 상기 어플리케이션 팩의 파일이 삭제되면, 상기 삭제된 파일과 맵핑되는 상기 어플리케이션 팩의 파일경로를 차단하여, 상기 삭제된 파일을 제외하고 표시하는 복수의 가상머신을 포함하는 VDI 서버에서의 소프트웨어 설치방법.
  8. 제6항에 있어서, 상기 무결성 알고리즘은
    상기 설치폴더에 파일이 추가되는 경우에는, 상기 추가되는 파일을 상기 설치폴더에 저장하고, 상기 어플리케이션 팩의 파일과 동시에 상기 추가된 파일을 표시하는 복수의 가상머신을 포함하는 VDI 서버에서의 소프트웨어 설치방법.
  9. 제1항 내지 제8항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록된 컴퓨터에서 판독 가능한 기록 매체.
  10. 복수의 가상머신(VM: Virtual machine)을 포함하는 VDI(Virtual Desktop Infrastructure) 서버에 있어서,
    소프트웨어의 인스톨 프로그램이 실행되면, 후킹모듈을 연결하여 상기 소프트웨어의 설치파일을 어플리케이션 팩에 저장하고, 상기 설치 파일 중에서 시스템 파일의 파일명과, 상기 소프트웨어의 레지스트리 설정정보 및 서비스 프로그램 등록정보를 추출하여 DB파일을 생성하는 소프트웨어 인스톨 런처;
    상기 DB파일을 이용하여 상기 시스템 파일을 추출한 후, 상기 시스템 파일을 상기 소프트웨어를 설치하고자 하는 가상머신에 설치하고, 상기 DB 파일에 저장된 상기 레지스트리 설정정보 및 서비스 프로그램 등록정보를 상기 가상머신에 적용하며, 상기 가상머신의 로컬디스크 상에 상기 소프트웨어의 설치폴더를 생성하는 어플리케이션 관리모듈; 및
    상기 설치폴더에 상기 어플리케이션 팩의 파일경로를 맵핑하는 파일드라이버를 포함하는 복수의 가상머신을 포함하는 VDI 서버.
KR1020140031798A 2014-03-18 2014-03-18 복수의 가상머신을 포함하는 vdi 서버에서의 소프트웨어 설치방법 및 이를 이용하는 vdi 서버 KR20150108682A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140031798A KR20150108682A (ko) 2014-03-18 2014-03-18 복수의 가상머신을 포함하는 vdi 서버에서의 소프트웨어 설치방법 및 이를 이용하는 vdi 서버

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140031798A KR20150108682A (ko) 2014-03-18 2014-03-18 복수의 가상머신을 포함하는 vdi 서버에서의 소프트웨어 설치방법 및 이를 이용하는 vdi 서버

Publications (1)

Publication Number Publication Date
KR20150108682A true KR20150108682A (ko) 2015-09-30

Family

ID=54246588

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140031798A KR20150108682A (ko) 2014-03-18 2014-03-18 복수의 가상머신을 포함하는 vdi 서버에서의 소프트웨어 설치방법 및 이를 이용하는 vdi 서버

Country Status (1)

Country Link
KR (1) KR20150108682A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017126819A1 (ko) * 2016-01-22 2017-07-27 건국대학교 산학협력단 가상 디스크 프로비저닝 관리 방법 및 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017126819A1 (ko) * 2016-01-22 2017-07-27 건국대학교 산학협력단 가상 디스크 프로비저닝 관리 방법 및 장치

Similar Documents

Publication Publication Date Title
US10929344B2 (en) Trusted file indirection
Singh et al. Containers & Docker: Emerging roles & future of Cloud technology
US9454670B2 (en) Hybrid file systems
US10445122B2 (en) Effective and efficient virtual machine template management for cloud environments
US8887227B2 (en) Network policy implementation for a multi-virtual machine appliance within a virtualization environtment
EP2807599B1 (en) Storage encryption
CN102754077B (zh) 可从外部媒体装置引导的安全虚拟化环境
US10574524B2 (en) Increasing reusability of and reducing storage resources required for virtual machine images
US20160105488A1 (en) Cross-cloud object mapping for hybrid clouds
US9524183B1 (en) Employing application containers in a large scale processing environment
CN105074665A (zh) 用于实现桌面虚拟化的迁移工具
US20220053001A1 (en) Methods and apparatus for automatic configuration of a containerized computing namespace
US20090328077A1 (en) Software Appliances not Requiring Virtual Machines
US11954198B2 (en) Unifying hardware trusted execution environment technologies using virtual secure enclave device
US11249780B2 (en) VM creation by installation media probe
JP6014257B2 (ja) アプリケーション配布システムを動作させるためのシステム及び方法
US8621462B2 (en) Autonomic customization of properties of a virtual appliance in a computer system
US10621179B2 (en) Method for deobfuscation of customer clickstream telemetry data
KR20150108682A (ko) 복수의 가상머신을 포함하는 vdi 서버에서의 소프트웨어 설치방법 및 이를 이용하는 vdi 서버
CN114237814A (zh) 跨虚拟化平台的虚拟机迁移方法、装置和计算机设备
US20160283257A1 (en) Parallelized virtual machine configuration
US11709665B2 (en) Hybrid approach to performing a lazy pull of container images
US20220365765A1 (en) Application invocation on specified operating system version
Thinh et al. Convergence in trusted computing and virtualized systems: A new dimension towards trusted intelligent system
Kipper et al. Virtualization and Forensics: A Digital Forensic Investigator’s Guide to Virtual Environments

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
N231 Notification of change of applicant
E601 Decision to refuse application