KR102276428B1 - 클라이언트 단말들의 자원을 가상화하여 중앙에서 통제 및 관리하기 위한 가상화 시스템 및 방법 - Google Patents

클라이언트 단말들의 자원을 가상화하여 중앙에서 통제 및 관리하기 위한 가상화 시스템 및 방법 Download PDF

Info

Publication number
KR102276428B1
KR102276428B1 KR1020210024801A KR20210024801A KR102276428B1 KR 102276428 B1 KR102276428 B1 KR 102276428B1 KR 1020210024801 A KR1020210024801 A KR 1020210024801A KR 20210024801 A KR20210024801 A KR 20210024801A KR 102276428 B1 KR102276428 B1 KR 102276428B1
Authority
KR
South Korea
Prior art keywords
operating system
guest operating
image
client terminal
user
Prior art date
Application number
KR1020210024801A
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 KR1020210024801A priority Critical patent/KR102276428B1/ko
Application granted granted Critical
Publication of KR102276428B1 publication Critical patent/KR102276428B1/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/45545Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • 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/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • 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/45554Instruction set architectures of guest OS and hypervisor or native processor differ, e.g. Bochs or VirtualPC on PowerPC MacOS
    • 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/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/45579I/O management, e.g. providing access to device drivers or storage
    • 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/45587Isolation or security of virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)

Abstract

일 실시예에 따른, 클라이언트 단말들의 자원을 가상화하여 중앙에서 통제 및 관리하기 위한 가상화 시스템은, 호스트 운영체제, 게스트 운영체제 원본 이미지, 및 하이퍼바이저를 포함하고, 상기 호스트 운영체제는 상기 하이퍼바이저 기반으로 물리 하드웨어를 가상화하여 가상 머신을 구동하며, 상기 가상 머신은 상기 게스트 운영체제 원본 이미지로부터 스냅샷을 이용하여 생성된 작업용 게스트 운영체제 이미지를 이용하여 부팅하고, 상기 가상 머신의 종료시, 상기 호스트 운영체제는 상기 게스트 운영체제 원본 이미지를 상기 작업용 게스트 운영체제 이미지로 교체하는, 복수의 클라이언트 단말; 및 최초에 상기 복수의 클라이언트 단말과 동일한 게스트 운영체제 원본 이미지를 서버 스토리지에 저장하고, 상기 복수의 클라이언트 단말 각각으로부터 수신되는 게스트 운영체제에 대한 데이터 처리 명령어를 수신하며, 상기 서버 스토리지에 저장한 상기 게스트 운영체제 원본 이미지를 기초로 상기 수신된 데이터 처리 명령어를 처리하여 생성한 게스트 운영체제 이미지를 각 클라이언트 단말에 현재 저장된 게스트 운영체제 원본 이미지와 동일한 게스트 운영체제 원본 이미지로서 각 대응하는 사용자별 저장 영역에 저장하는 중앙 서버를 포함한다.

Description

클라이언트 단말들의 자원을 가상화하여 중앙에서 통제 및 관리하기 위한 가상화 시스템 및 방법{System and method for virtualizing resources of client terminals and controlling and managing them centrally}
본 발명은 컴퓨팅 자원의 가상화(Virtualization) 기술에 관한 것으로, 보다 구체적으로 클라이언트 단말들의 자원을 가상화하여 중앙에서 통제 및 관리하기 위한 가상화 시스템 및 방법에 관한 것이다.
VDI(Virtual Desktop Infrastructure)는 가상 테스크탑 서비스라고도 불리우는 가상화 기술로서 호스트 서버에 하이퍼바이저를 통해 가상 머신의 가상 데스크톱 인스턴스를 실행하고 사용자가 클라이언트 단말을 통해 이 가상 머신에 원격 접속하면 클라이언트 단말로 가상 머신의 화면을 스트리밍하는 기술이다. 많은 기업들이 기업 데이터를 보호하기 위해 VDI 시스템을 도입하고 있다. 그러나 VDI 시스템은 사용자당 100만원 이상 되는 높은 도입 비용이 요구되며 실제 사용에 있어서 속도가 느린 단점 등으로 활성화되지 못하고 있다.
VDI 시스템은 중앙 서버에 전체 클라이언트 단말들이 종속된 구조이기 때문에 중앙 서버에서 소규모 그룹의 클라이언트 단말들을 위한 가상 데스트톱 인스턴스들을 구축하고 운영하는 것은 비효율적이다. 따라서, 일반적으로 대규모 그룹이나 보안이 우선되는 기업 등에서 VDI 시스템을 도입하여 운영하고 있으나, 물리적인 클라이언트 단말 환경보다 사용자의 체감 성능이 낮고, 어플리케이션 호환성 문제나, 보안 프로그램 및 정책에 의한 느린 컴퓨팅으로 인해 업무 생산성 감소로 이어진다. 또한, 다수의 클라이언트 단말과 중앙 서버 사이에 네트워크 부하 혹은 네트워크 성능에 따른 성능 하락이 발생하거나 장애 발생시 연결된 네트워크의 모든 클라이언트 단말의 사용이 중단된다.
또한, 중앙 서버가 관장하는 가상화 환경과 획일적인 클라이언트 단말의 보급은 다양한 사용자가 요구하는 사용자별 업무 환경 구축에 반하여, 이를 해결하고자 사용자별로 서버의 가상 컴퓨팅 자원을 차등 배분하여도 컴퓨팅 성능이 생산성과 직결되는 업무 환경에서는 결국 불합리한 시스템 구조에 따른 문제점을 극복할 수 없다. 또한, 기업의 시스템 관리자는 보안 관리 지침에 대한 반영이나 보안 관련 어플리케이션 관리 등 시스템의 구조적인 문제를 관리자 스스로 극복해야 해야하거나 무리한 책임을 요구하는 문제가 있다.
따라서, 종래의 VDI 시스템이 추구하는 보안 강화, 데이터 중앙화, 관리 편의 기능을 효과적으로 제공하고, 시스템의 확장성, 각종 어플리케이션 호환성, 도입 및 운용 비용, 사용자 체감 성능 하락, 네트워크 부하 및 장애로 인해 파생되는 문제 등을 효율적으로 극복하는 새로운 가상화 환경 구축 기술이 필요하다.
본 발명은, 상술한 문제점을 해결하기 위해 제안된 것으로, 클라이언트 단말들 각각에 개별적인 가상화 환경을 구축하고, 각 클라이언트 단말이 효과적으로 가상 머신을 사용하도록 하면서, 중앙에서 각 클라이언트 단말의 가상화 환경을 통제 및 관리함으로써, 중앙 서버의 가상화 성능 한계를 극복하고 중앙 서버의 가상화 컴퓨팅 능력에 의존적인 비효율을 극복하는, 가상화 시스템 및 방법을 제공하는데 그 목적이 있다.
일 실시예에 따른, 클라이언트 단말들의 자원을 가상화하여 중앙에서 통제 및 관리하기 위한 가상화 시스템은, 호스트 운영체제, 게스트 운영체제 원본 이미지, 및 하이퍼바이저를 포함하고, 상기 호스트 운영체제는 상기 하이퍼바이저 기반으로 물리 하드웨어를 가상화하여 가상 머신을 구동하며, 상기 가상 머신은 상기 게스트 운영체제 원본 이미지로부터 스냅샷을 이용하여 생성된 작업용 게스트 운영체제 이미지를 이용하여 부팅하고, 상기 가상 머신의 종료시, 상기 호스트 운영체제는 상기 게스트 운영체제 원본 이미지를 상기 작업용 게스트 운영체제 이미지로 교체하는, 복수의 클라이언트 단말; 및 최초에 상기 복수의 클라이언트 단말과 동일한 게스트 운영체제 원본 이미지를 서버 스토리지에 저장하고, 상기 복수의 클라이언트 단말 각각으로부터 수신되는 게스트 운영체제에 대한 데이터 처리 명령어를 수신하며, 상기 서버 스토리지에 저장한 상기 게스트 운영체제 원본 이미지를 기초로 상기 수신된 데이터 처리 명령어를 처리하여 생성한 게스트 운영체제 이미지를 각 클라이언트 단말에 현재 저장된 게스트 운영체제 원본 이미지와 동일한 게스트 운영체제 원본 이미지로서 각 대응하는 사용자별 저장 영역에 저장하는 중앙 서버를 포함한다.
상기 복수의 클라이언트 단말 각각의 호스트 운영체제는, 게스트 운영체제 원본 이미지를 작업용 게스트 운영체제 이미지로 교체하기 전에, 게스트 운영체제 원본 이미지로부터 스냅샷을 이용하여 백업용 게스트 운영체제 이미지를 생성하여 클라이언트 스토리지 내의 백업 저장 영역에 저장하고, 백업 날짜/시간을 별도 저장할 수 있다.
상기 가상 머신은, 관리자용 가상 머신과 사용자용 가상 머신을 포함하고, 상기 사용자용 가상 머신은, 상기 관리자용 가상 머신의 구동 후 종료시 해당 관리자용 가상 머신의 부팅시 사용된 작업용 게스트 운영체제 이미지로 교체된 게스트 운영체제 원본 이미지로부터 스냅샷을 이용하여 생성된 작업용 게스트 운영체제 이미지를 이용하여 부팅될 수 있다.
상기 복수의 클라이언트 단말 각각의 호스트 운영체제는, 클라이언트 스토리지 내의 사용자 데이터 영역에 상기 사용자용 가상 머신에서의 사용자의 작업 데이터를 저장하고, 상기 사용자용 가상 머신의 종료시 해당 사용자용 가상 머신의 부팅시 사용된 작업용 게스트 운영체제 이미지와 상기 작업 데이터의 바이러스 스캔을 수행하고, 바이러스 스캔 후 작업용 게스트 운영체제 이미지와 작업 데이터가 결합된 게스트 운영체제 이미지로 기존 게스트 운영체제 원본 이미지를 교체할 수 있다.
상기 중앙 서버는, 각 클라이언트 단말로부터 사용자의 작업 데이터를 수신하여 서버 스토리지 내의 대응하는 사용자 저장 영역에 저장하는 사용자 데이터 수신부; 각 클라이언트 단말로부터 가상 머신에서의 게스트 운영체제에 대한 데이터 처리 명령어를 수신하는 명령어 수신부; 및 상기 수신된 작업 데이터 및 데이터 처리 명령을 기초로 각 사용자별 저장 영역에 저장된 게스트 운영체제 원본 이미지를 업데이트하되, 업데이트 전에 해당 게스트 운영체제 원본 이미지로부터 스냅샷을 이용하여 백업용 게스트 운영체제 이미지를 생성하여 각 사용자별 저장 영역에 저장하는 명령어 처리부를 포함할 수 있다.
각 클라이언트 단말의 호스트 운영체제는, 장치 드라이버들과 통신하여 물리 하드웨어의 상태 정보를 수집하여 상기 중앙 서버로 전송하는 에이전트를 포함하고, 상기 중앙 서버는, 상기 에이전트로부터 물리 하드웨어의 상태 정보를 수신하여 상태 정보 저장부에 저장하는 하드웨어 상태 정보 수집부; 관리자에게 상기 상태 정보 저장부에 저장된 각 클라이언트 단말의 물리 하드웨어의 상태 정보를 제공하는 하드웨어 상태 정보 조회부; 및 각 클라이언트 단말의 상기 에이전트로 특정 하드웨어에 대한 부하 테스트 명령을 전송하고, 이에 대한 응답으로 테스트 결과를 수신하여 상기 상태 정보 저장부에 저장하는 하드웨어 진단부를 포함할 수 있다.
상기 중앙 서버는, 특정 클라이언트 단말로부터 해당 클라이언트 단말의 물리 하드웨어 리스트를 수집하는 하드웨어 리스트 수집부; 및 상기 특정 클라이언트 단말의 가상 머신에서 부팅되는 게스트 운영체제에서 사용할 상기 수집된 물리 하드웨어 리스트에 대응하는 장치 드라이버를 상기 특정 클라이언트 단말로 전송하는 드라이버 전송부를 포함할 수 있다.
상기 중앙 서버는, 각 클라이언트 단말에서 가상 머신은 미부팅 상태이고 호스트 운영체제만 부팅된 상태에서 해당 호스트 운영체제로부터 수신되는 사용자의 인증 정보를 이용하여 사용자 인증을 수행하는 인증부; 및 상기 사용자 인증에 성공한 클라이언트 단말의 식별정보를 기초로 해당 클라이언트 단말이 기 등록된 단말인지 식별하고, 기 등록된 단말인 경우, 해당 클라이언트 단말의 호스트 운영체제로부터 게스트 운영체제로의 장치 드라이버 전달에 관한 명령을 해당 호스트 운영체제로 전송하는 드라이버 제어부를 더 포함할 수 있다.
상기 복수의 클라이언트 단말은 소정 개수의 사용자 그룹으로 그룹핑되고, 최초에 각 클라이언트 단말과 중앙 서버가 동일하에 저장하는 게스트 운영체제 원본 이미지는, 동일 사용자 그룹 내에서는 동일하고 서로 다른 사용자 그룹 간에는 서로 상이하며, 상기 중앙 서버는, 각 사용자 그룹별로 사용자별 저장 영역을 할당하고 각 사용자별 저장 영역에 각 클라이언트 단말에 현재 저장된 게스트 운영체제 원본 이미지와 동일한 게스트 운영체제 원본 이미지를 저장할 수 있다.
상기 중앙 서버는, 서버 스토리지에 저장된 복수의 서로 다른 어플리케이션 이미지 중 하나를 상기 각 사용자 그룹마다 할당하여 각 사용자 그룹 내의 각 클라이언트 단말로 전송하고, 특정 사용자 그룹 내의 어느 한 클라이언트 단말에서 어플리케이션 이미지 내의 프로그램을 업데이트하는 경우, 해당 클라이언트 단말의 호스트 운영체제로부터 프로그램 업데이트에 따른 어플리케이션 이미지의 증분 데이터를 수신하여 서버 스토리지 내의 대응하는 어플리케이션 이미지를 업데이트하고, 해당 증분 데이터를 해당 특정 사용자 그룹 내의 다른 클라이언트 단말로 전송하여 각 클라이언트 단말 내의 어플리케이션 이미지가 업데이트되도록 할 수 있다.
일 실시예에 따른, 클라이언트 단말들의 자원을 가상화하여 중앙에서 통제 및 관리하기 위한 가상화 방법은, 중앙 서버가, 호스트 운영체제, 게스트 운영체제 원본 이미지, 및 하이퍼바이저를 포함하는 복수의 클라이언트 단말의 상기 게스트 운영체제 원본 이미지와 동일한 게스트 운영체제 원본 이미지를 서버 스토리지에 저장하는 단계; 상기 호스트 운영체제에 의해 상기 하이퍼바이저 기반으로 물리 하드웨어를 가상화하여 가상 머신이 구동되고, 상기 가상 머신은 상기 게스트 운영체제 원본 이미지로부터 스냅샷을 이용하여 생성된 작업용 게스트 운영체제 이미지를 이용하여 부팅하며, 상기 가상 머신의 종료시, 상기 호스트 운영체제는 상기 게스트 운영체제 원본 이미지를 상기 작업용 게스트 운영체제 이미지로 교체한 특정 클라이언트 단말로부터, 상기 중앙 서버가, 게스트 운영체제에 대한 데이터 처리 명령어를 수신하는 단계; 및 상기 중앙 서버가, 상기 서버 스토리지에 저장한 상기 게스트 운영체제 원본 이미지를 기초로 상기 수신된 데이터 처리 명령어를 처리하여 생성한 게스트 운영체제 이미지를, 상기 특정 클라이언트 단말에 현재 저장된 게스트 운영체제 원본 이미지와 동일한 게스트 운영체제 원본 이미지로서, 해당 특정 클라이언트 단말에 대응하는 사용자 저장 영역에 저장하는 단계를 포함한다.
종래와 같이 중앙 서버에 가상화 환경을 구축할 경우, 클라이언트 단말의 수가 늘어날수록 중앙 서버의 용량도 증가시켜야 하고, 네트워크의 부하를 가중시킨다. 반면, 본 발명은 클라이언트 단말 각각에서 가상화 환경을 구축함으로써 중앙 서버의 용량을 증대시킬 필요가 없고 클라이언트 단말의 유휴 자원(예, 스토리지 용량)이 확보되어 추가적인 백업 등의 활용이 가능하다.
본 발명은, 클라이언트 단말들에 가상화 환경을 구축하지만, 클라이언트 단말들의 가상 머신에서 사용 및 저장되는 게스트 운영체제 원본 이미지 및 백업용 게스트 운영체제 이미지를 중앙 서버에도 동기화하여 저장함으로써, 클라이언트 단말의 장애 발생시에도 클라이언트 단말의 게스트 운영체제를 원상 복구할 수 있다.
특히, 본 발명은, 클라이언트 단말들과 중앙 서버가 게스트 운영체제 원본 이미지와 백업용 게스트 운영체제 이미지를 동기화하여 저장하는데 있어서, 클라이언트 단말들이 운영체제 이미지의 데이터 전부를 중앙 서버로 전송하지 않아도 되어, 클라이언트 단말들과 중앙 서버 간의 네트워크 부하를 줄일 수 있다.
본 발명은, 중앙 서버에서 클라이언트 단말들의 물리 하드웨어의 상태를 백그라운드에서 모니터링할 수 있어, 중앙 관리자가 클라이언트 단말들의 하드웨어 자산을 관리 및 유지보수할 수 있고, 하드웨어 장애 및 고장에 선제적으로 대응할 수 있도록 한다.
본 발명은, 클라이언트 단말의 가상 머신에서 동작하는 게스트 운영체제가 클라이언트 단말의 물리 하드웨어를 정상적으로 인식하고 제어할 수 있도록 장치 드라이버를 중앙 서버에서 관리함으로써, 클라이언트 단말들의 하드웨어 사양이 달라도 클라이언트 단말에서 게스트 운영체제가 정상 동작하도록 한다.
도 1은 본 발명의 일 실시예에 따른 가상화 시스템의 구성을 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 클라이언트 단말의 구성을 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 클라이언트 단말에서 게스트 운영체제 이미지를 관리하는 방법을 설명하는 도면이다.
도 4는 본 발명의 일 실시예에 따른 클라이언트 단말들과 중앙 서버 간의 게스트 운영체제 이미지 및 사용자 데이터의 동기화 방법을 설명하는 도면이다.
도 5는 본 발명의 일 실시예에 따른 클라이언트 단말의 하드웨어 모니터링을 위한 시스템 구성을 나타낸 도면이다.
도 6은 본 발명의 일 실시예에 따른 클라이언트 단말의 장치 드라이버를 관리하기 위한 시스템 구성을 설명하는 도면이다.
도 7은 본 발명의 일 실시예에 따른 사용자 그룹별 게스트 운영체제 이미지 및 어플리케이션 이미지를 관리하는 방법을 설명하는 도면이다.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일 실시예를 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 가상화 시스템의 구성을 나타낸 도면이고, 도 2는 본 발명의 일 실시예에 따른 클라이언트 단말의 구성을 나타낸 도면이다. 도 1을 참조하면, 본 실시예에 따른 가상화 시스템은, 복수의 클라이언트 단말(110), 중앙 서버(120) 및 이들을 연결하는 네트워크(130)를 포함하고, 도 2를 참조하면, 각 클라이언트 단말(110)은, 물리 하드웨어(Physical hardware)(210), 호스트 운영체제(Host OS)(220), 하이퍼바이저(Hypervisor)(230), 가상 머신(VM, Virtual Machine)들(240, 250)을 포함한다.
클라이언트 단말(110)은, 퍼스널 컴퓨터, 노트북, 태블릿 PC, 스마트폰 등의 사용자가 보유하는 컴퓨팅 장치이다. 클라이언트 단말(110)은, 하이퍼바이저(230) 기반으로 가상 머신을 구동하여 가상화 환경을 구축한다. 여기서 물리 하드웨어(210)는, CPU, 메모리(예, RAM), 스토리지(Storage, 예, 하드디스크), 네트워크 인터페이스 카드(NIC), 그래픽 카드(예, VGA), 및 입력 포트(USB, PS2 등) 등을 포함한다. 메모리는 고속 랜덤 액세스 메모리(RAM)를 포함할 수 있고, 플래시 메모리 장치와 같은 불휘발성 메모리, 또는 다른 불휘발성 반도체 메모리 장치를 포함할 수 있다. 스토리지(Storage)는 하나 이상의 자기 디스크 저장 장치로서 로컬 저장 장치나 네트워크 부착 스토리지 등의 원격 저장 장치 등을 포함한다. 입력 포트(USB, PS2 등)는, 마우스(Mouse), 스피커(Speaker), 키보드(Keyboard), 모니터(Monitor) 등이 연결된다.
바람직하게, 하이퍼바이저는 가상 머신(240, 250)을 생성하고 가상 머신(240, 250) 내에 물리 하드웨어(210)를 가상화하여 논리적인 물리 디바이스를 생성하며 게스트 운영체제(Guest OS)를 설치하여 운영하는 소프트웨어 계층으로서, 본 실시예에서 KVM(Kernel-based Virtual Machine) 기술을 이용한다. 그러나 반드시 여기에 제한되는 것은 아니다. 또한 하이퍼바이저는 VFIO(Virtual Function I/O) 기술을 이용하여 패스쓰루(Pass-Through) 방식으로 가상 머신(240, 250)이 입출력 장치에 연결되도록 한다. 즉, 클라이언트 단말(110)의 부팅시, 호스트 운영체제(220)는, 물리 하드웨어(210) 중에서 입출력 장치(VGA, PS2, USB 등)에 대한 드라이버를 배제하여 미인식함으로써 제어가 불가능하게 하고, 가상 머신(240, 250)의 구동시 VFIO를 통해서 패스쓰루되어 가상 머신(240, 250)에 입출력 장치가 연결되도록 한다.
호스트 운영체제(220)는 클라이언트 단말(110)의 물리 스토리지에 설치되어 CPU에 의해 실행된다. 본 실시예에서, 하이퍼바이저 기반으로 생성되는 가상 머신은, 두 가지 종류의 가상 머신(240, 250)을 포함한다. 하나는 관리자에 의해 사용되는 제1가상 머신(240)이고, 다른 하나는 사용자에 의해 사용되는 제2가상 머신(250)이다.
제1가상 머신(240)은, 관리자에 의해 사용되고, 호스트 운영체제(220)의 정책에 따라 관리자 인증 후에 사용이 가능하다. 관리자 인증은 중앙 서버(120)의 통신으로 수행될 수 있다. 관리자는 제1가상 머신(240) 상에서 게스트 운영체제의 업데이트(예, 윈도우 업데이트), 게스트 운영체제에 보안 패치 등의 프로그램 설치, 게스트 운영체제의 설정 변경 등의 작업을 수행한다. 스토리지에는 제1가상 머신(240)에 대한 사용자 데이터 영역이 할당되지 않는다. 즉, 제1가상 머신(240)을 통해서는 오직 게스트 운영체제에 대한 작업만이 수행되도록 한다.
제2가상 머신(250)은, 사용자에 의해 사용되고, 호스트 운영체제(220)의 정책에 따라 사용자 인증 후에 사용이 가능하다. 사용자 인증은 중앙 서버(120)의 통신으로 수행될 수 있다. 사용자는 제2가상 머신(250) 상에서 다양한 작업을 수행할 수 있다. 스토리지에는 제2가상 머신(250)에 대한 사용자 데이터 영역(도2의 User Data 영역)이 할당되고, 제2가상 머신(250) 상에서 이루어진 사용자의 작업 데이터가 사용자 데이터 영역에 저장된다.
호스트 운영체제(220)는, 클라이언트 단말(110)의 물리 스토리지에 저장된 게스트 운영체제 원본 이미지로부터 스냅샷을 이용하여 작업용 게스트 운영체제 이미지를 생성하고, 그 작업용 게스트 운영체제 이미지를 게스트 운영체제로서 가상 머신에서 구동시킨다. 호스트 운영체제(220)는, 제1가상 머신(240)과 제2가상 머신(250)에 대해 각각 별도로 작업용 게스트 운영체제 이미지를 생성한다.
호스트 운영체제(220)는, 관리자 또는 사용자에 의해 작업용 게스트 운영체제 이미지에 대한 작업이 수행된 후, 가상 머신이 종료되면, 기존 게스트 운영체제 원본 이미지로부터 스냅샷을 이용하여 백업용 게스트 운영체제 이미지를 생성하여 물리 스토리지 내의 백업 저장 영역에 저장하고, 기존 게스트 운영체제 원본 이미지를 해당 작업용 게스트 운영체제 이미지로 교체한다. 따라서, 이후 관리자 또는 사용자에 의해 가상 머신이 구동될 경우, 교체된 게스트 운영체제 원본 이미지로부터 스냅샷을 이용하여 생성되는 작업용 게스트 운영체제 이미지가 사용된다. 이러한 백업 및 교체 과정은, 가상 머신이 구동되어 종료될 때마다 수행될 수 있다.
구체적으로, 스토리지에는 제1가상 머신(240)에 대한 사용자 데이터 영역이 할당되지 않으므로, 제1가상 머신(240)에서 관리자에 의해 작업용 게스트 운영체제가 업데이트되고 제1가상 머신(240)이 종료되는 경우, 기존 게스트 운영체제 원본 이미지는 스냅샷을 이용하여 백업 저장 영역에 저장되고 해당 작업용 게스트 운영체제 이미지가 기존 게스트 운영체제 원본 이미지를 교체한다. 반면, 스토리지에는 제2가상 머신(250)에 대한 사용자 데이터 영역이 할당되므로, 제2가상 머신(250)에서 사용자의 작업이 완료되고 제2가상 머신(250)이 종료되는 경우, 기존 게스트 운영체제 원본 이미지는 스냅샷을 이용하여 백업 저장 영역에 저장되고 이후 사용자 데이터 영역에 저장된 사용자의 작업 데이터와 해당 작업용 게스트 운영체제 이미지가 결합된 후 바이러스 스캔을 거쳐 기존 게스트 운영체제 원본 이미지를 교체한다.
최초에 각 클라이언트 단말(110)과 중앙 서버(120)에는 동일한 게스트 운영체제 원본 이미지가 저장된다. 각 클라이언트 단말(110)의 호스트 운영체제(220)는, 사용자 데이터 영역에 저장되는 사용자의 작업 데이터를 실시간으로 또는 주기적으로 중앙 서버(120)로 전송하고, 제1 또는 제2 가상 머신(240, 250)에서 게스트 운영체제에 대한 데이터 처리 명령이 수행될 때 해당 데이터 처리 명령어를 중앙 서버(120)로 전송한다. 예를 들어, 관리자가 제1가상 머신(240)에서 게스트 운영체제를 업데이트한 경우, 호스트 운영체제(220)는 업데이트된 게스트 운영체제의 데이터를 모두 중앙 서버(120)로 전송하지 않고, 해당 업데이트에 관한 명령어만을 중앙 서버(120)로 전송한다. 또는, 사용자가 제2가상 머신(250)에서 작업을 완료하고 게스트 운영체제와 사용자의 작업 데이터를 결합하는 명령이 수행될 때, 호스트 운영체제(220)는 사용자의 작업 데이터의 증분 데이터와 해당 결합에 관한 명령어만을 중앙 서버(120)로 전송한다.
중앙 서버(120)는, 최초에 클라이언트 단말(110)들과 동일한 게스트 운영체제 원본 이미지를 서버 스토리지에 별도 저장하고, 서버 스토리지 내에 각 사용자별 저장 영역을 할당하여, 각 사용자별 저장 영역에 최초의 게스트 운영체제 원본 이미지로부터 파생되는 게스트 운영체제 원본 이미지와 백업용 게스트 운영체제 이미지, 그리고 각 사용자의 작업 데이터를 저장한다.
구체적으로, 중앙 서버(120)는, 각 사용자별 저장 영역에 사용자의 작업 데이터를 저장하면서 각 클라이언트 단말(110)로부터 수신되는 데이터 처리 명령어에 따라 동일한 명령어를 수행하여, 각 사용자별 저장 영역에 각 클라이언트 단말(110)과 동일한 백업용 게스트 운영체제 이미지와, 업데이트된 게스트 운영체제 원본 이미지를 저장한다. 즉, 중앙 서버(120)는, 서버 스토리지에 별도 저장된 최초의 게스트 운영체제 원본 이미지와 사용자의 작업 데이터를 이용하여 클라이언트 단말(110)과 동일한 명령어를 수행하여 각 사용자별 저장 영역에 현재 클라이언트 단말(110)에 저장되어 있는 업데이트된 게스트 운영제체 원본 이미지 및 백업용 게스트 운영체제 이미지를 저장하고, 이후 수신되는 사용자의 작업 데이터와 명령어를 기초로 각 사용자별 저장 영역에 저장된 게스트 운영체제 원본 이미지를 업데이트하면서 백업용 게스트 운영체제 이미지를 생성하여 저장한다. 따라서, 중앙 서버(120)는, 각 클라이언트 단말(110)로부터 업데이트된 게스트 운영체제 이미지의 데이터를 모두 수신하지 않고도, 각 클라이언트 단말(110)과 동일하게 게스트 운영체제 원본 이미지 그리고 백업용 게스트 운영체제 이미지를 동기화하여 저장할 수 있다. 따라서 클라이언트 단말(110)과 중앙 서버(120) 간의 트래픽 부하를 줄일 수 있고, 클라이언트 단말(110)과 중앙 서버(120)의 데이터 처리 부하를 줄일 수 있다.
도 3은 본 발명의 일 실시예에 따른 클라이언트 단말에서 게스트 운영체제 이미지를 관리하는 방법을 설명하는 도면이다. 도 3에 도시된 바와 같이, 클라이언트 단말(110)에서는 관리자용의 제1가상 머신(240)과 사용자용의 제2가상 머신(250)이 구동될 수 있다. 각각은 동시에 구동되지 않고 각각 서로 다른 시간에 구동된다. 예를 들어, 통상적으로는 사용자가 제2가상 머신(250)을 구동하여 작업을 하고, 게스트 운영체제의 업데이트나 프로그램 설치, 유지 보수 등이 필요할 때, 관리자가 제1가상 머신(240)을 구동한다. 따라서 각 가상 머신(240, 250)이 구동될 때는, 가용 가능한 하드웨어의 리소스가 최대한 할당된다.
클라이언트 단말(110)의 로컬 스토리지에는 최초에 게스트 운영체제 원본 이미지(도 3의 GuestOS-원본.img)가 저장된다. 제1가상 머신(240) 또는 제2가상 머신(250)이 구동될 때, 게스트 운영체제 원본 이미지(GuestOS-원본.img)로부터 스냅샷을 이용하여 작업용 게스트 운영체제 이미지(GuestOS-1.img, 또는 GuestOS-2.img)가 생성되고, 제1, 또는 제2가상 머신(250)은 작업용 게스트 운영체제 이미지(GuestOS-1.img, 또는 GuestOS-2.img)를 사용하여 부팅된다.
작업용 게스트 운영체제 이미지(GuestOS-1.img, 또는 GuestOS-2.img)를 이용한 작업이 완료되면, 기존 게스트 운영체제 원본 이미지(GuestOS-원본.img)로부터 스냅샷을 이용하여 백업용 게스트 운영체제 이미지(GuestOS-원본_old_date.img)가 생성되어 로컬 스토리지의 백업 저장 영역(211)에 저장된다. 그리고, 작업용 게스트 운영체제 이미지(GuestOS-1.img, 또는 GuestOS-2.img)는, 기존 게스트 운영체제 원본 이미지(GuestOS-원본.img)를 교체하여, 해당 작업용 게스트 운영체제 이미지(GuestOS-1.img, 또는 GuestOS-2.img)가 이후 사용될 게스트 운영체제 원본 이미지가 된다. 이하에서는, 제1가상 머신(240)을 구동한 후 종료하고, 이어서 제2가상 머신(250)을 구동하는 경우를 예로 들어 설명한다.
관리자 인증에 의해 제1가상 머신(240)이 구동되면, 단계 S301에서 호스트 운영체제(220)는, 게스트 운영체제 원본 이미지(GuestOS-원본.img)로부터 스냅샷을 이용하여 제1 작업용 게스트 운영체제 이미지(GuestOS-1.img)를 생성한다. 단계 S302에서 제1가상 머신(240)은 제1 작업용 게스트 운영체제 이미지(GuestOS-1.img)를 사용하여 부팅된다. 관리자가 제1가상 머신(240)에서 게스트 운영체제의 업데이트(예, 윈도우 업데이트), 게스트 운영체제에 보안 패치 등의 프로그램 설치, 게스트 운영체제의 설정 변경 등의 작업을 수행한 후, 제1가상 머신(240)을 종료한다. 그러면, 단계 S303에서, 호스트 운영체제(220)는 기존 게스트 운영체제 원본 이미지(GuestOS-원본.img)로부터 스냅샷을 이용하여 제1 백업용 게스트 운영체제 이미지(GuestOS-원본_old_date1.img)를 생성하여 백업 저장 영역에 저장한다. 이때 호스트 운영체제(220)는 백업 날짜/시간을 별도로 기록하여 관리한다. 그리고 단계 S304에서, 호스트 운영체제(220)는 기존 게스트 운영체제 원본 이미지(GuestOS-1.img)를 관리자의 작업이 반영된 제1 작업용 게스트 운영체제 이미지(GuestOS-1.img)로 교체한다. 따라서, 제1 작업용 게스트 운영체제 이미지(GuestOS-1.img)가 게스트 운영체제 원본 이미지가 된다. 본 실시예에서 교체 후의 게스트 운영체제 원본 이미지를 계속해서 GuestOS-원본.img라 한다.
이후, 사용자 인증에 의해 제2가상 머신(250)이 구동되면, 단계 S305에서 호스트 운영체제(220)는, 제1 작업용 게스트 운영체제 이미지(GuestOS-1.img)로부터 만들어진 게스트 운영체제 원본 이미지(GuestOS-원본.img)로부터 스냅샷을 이용하여 제2 작업용 게스트 운영체제 이미지(GuestOS-2.img)를 생성한다. 단계 S306에서 제2가상 머신(250)은 제2 작업용 게스트 운영체제 이미지(GuestOS-2.img)를 사용하여 부팅된다. 사용자가 제2가상 머신(250)에서 작업을 수행하면, 단계 S307에서 사용자의 작업 데이터(User Data)는 모두 로컬 스토리지의 사용자 데이터 영역(User Data)에 저장된다. 제2가상 머신(250)이 종료되면, 단계 S308에서, 호스트 운영체제(220)는, 제1 작업용 게스트 운영체제 이미지(GuestOS-1.img)로부터 만들어졌던 게스트 운영체제 원본 이미지(GuestOS-원본.img)로부터 스냅샷을 이용하여 제2 백업용 게스트 운영체제 이미지(GuestOS-원본_old_date2.img)를 생성하여 백업 저장 영역에 저장한다. 이때 호스트 운영체제(220)는 백업 날짜/시간을 별도로 기록하여 관리한다. 그리고 단계 S309에서, 호스트 운영체제(220)는, 제2 작업용 게스트 운영체제 이미지(GuestOS-2.img)와 사용자의 작업 데이터(User Data)를 결합하여 바이러스 스캔을 하고, 단계 S310에서 사용자의 작업 데이터가 결합된 새로운 게스트 운영체제 이미지(GuestOS_new.img)를 생성하여 제1 작업용 게스트 운영체제 이미지로부터 만들어졌던 게스트 운영체제 원본 이미지(GuestOS-원본.img)를 교체한다. 즉, 사용자의 작업 데이터와 결합된 제2 작업용 게스트 운영체제 이미지(GuestOS-1.img)가 게스트 운영체제 원본 이미지가 된다.
이상에서 설명한 바와 같이, 게스트 운영체제 원본 이미지(GuestOS-원본.img)는, 관리자 또는 사용자의 작업 이후에 관리자 또는 사용자의 작업이 반영된 새로운 게스트 운영체제 이미지로 교체되고, 관리자 또는 사용자는 그 새로운 게스트 운영체제 이미지를 이용하여 가상 머신을 구동할 수 있게 된다. 그리고 게스트 운영체제 원본 이미지(GuestOS-원본.img)가 새로운 게스트 운영체제 이미지로 교체되기 전에, 직전의 기존 게스트 운영체제 원본 이미지(GuestOS-원본.img)는 백업이 되므로, 필요에 따라 과거의 원하는 날짜/시간의 게스트 운영체제 원본 이미지를 복원할 수 있다. 특히, 사용자의 작업 완료 후 바이러스 스캔 과정에서 바이러스 치료가 불가능한 경우, 기존 게스트 운영체제 원본 이미지(GuestOS-원본.img)를 새로운 게스트 운영체제 이미지로 교체하지 않고, 과거 특정 시점의 게스트 운영체제 원본 이미지를 복원할 수 있다.
한편, 호스트 운영체제(220)는, 중앙 서버(120)와 통신하여 중앙 서버(120)로부터 사전에 정의된 명령을 수신하고, 수신된 명령에 따른 동작을 수행할 수 있다. 예를 들어, 호스트 운영체제(220)는, 게스트 운영체제 원본 이미지에 대한 업데이트/복구 명령, 사용자의 작업 데이터에 대한 백업 명령, 스케줄에 의한 바이러스 스캔 명령 등을 수신하고, 수신된 명령에 따른 동작을 수행할 수 있다.
도 4는 본 발명의 일 실시예에 따른 클라이언트 단말들과 중앙 서버 간의 게스트 운영체제 이미지 및 사용자 데이터의 동기화 방법을 설명하는 도면이다.
도 4를 참조하면, 클라이언트 단말들(110)과 중앙 서버(120)는 최초에 동일한 게스트 운영체제 원본 이미지(GuestOS-원본.img)를 저장한다. 각 클라이언트 단말(110)에서 가상 머신(VM-A, VM-X 등)이 구동되면, 최초의 게스트 운영체제 원본 이미지(GuestOS-원본.img)로부터 스냅샷을 통해 작업용 게스트 운영체제 이미지(GuestOS-A.img, GuestOS-X.img)가 생성되고 해당 작업용 게스트 운영체제 이미지(GuestOS-A.img, GuestOS-X.img)로 가상 머신(VM-A, VM-X 등)이 부팅된다.
각 클라이언트 단말들(110)에서 사용자가 가상 머신(VM-A, VM-X 등)에서 작업을 수행하면, 사용자의 작업 데이터(User Data)는 로컬 스토리지의 사용자 데이터 영역(User Data-A, User Data-X 등)에 저장된다. 그리고 각 클라이언트 단말들(110)의 호스트 운영체제(220)는, 사용자의 작업 데이터를 네트워크(130)를 통해 중앙 서버(120)로 전송한다. 사용자의 작업 데이터는 주기적으로 또는 실시간으로 중앙 서버(120)로 전송될 수 있고, 최초에는 모든 작업 데이터가 전송되고 이후에는 증분 데이터, 즉 변경되거나 추가된 데이터만 전송될 수 있다.
또한, 각 클라이언트 단말들(110)에서 게스트 운영체제에 관련된 명령이 처리되면, 각 클라이언트 단말들(110)의 호스트 운영체제(220)는, 해당 명령어를 네트워크(130)를 통해 중앙 서버(120)로 전송한다. 바람직하게, 명령어는 API(Application Programming Interface)를 통해 중앙 서버(120)로 전송된다. 예를 들어, 게스트 운영체제 원본 이미지(GuestOS-원본.img)로부터 스냅샷을 이용하여 작업용 게스트 운영체제 이미지가 생성되거나, 백업용 게스트 운영체제 이미지(GuestOS-원본_old_dateA.img, (GuestOS-원본_old_dateX.img)가 생성되거나, 또는 게스트 운영체제 원본 이미지(GuestOS-원본.img)가 원상 복구되거나, 게스트 운영체제를 업데이트하거나, 또는 게스트 운영체제의 설정을 변경하는 등의 명령이 처리되면, 해당 명령어는 중앙 서버(120)로 전송된다. 즉, 작업용 게스트 운영체제 이미지나 백업용 게스트 운영체제 이미지, 또는 새로 만들어진 게스트 운영체제 원본 이미지의 데이터를 모두 중앙 서버(120)로 전송하지 않고, 관련 명령어만을 중앙 서버(120)로 전송한다.
도 4를 참조하면, 중앙 서버(120)는, 명령어 수신부(410), 명령어 저장부(420), 명령어 처리부(430), 서버 스토리지(440) 및 사용자 데이터 수신부(450)를 포함하낟. 이들은 프로그램으로 구현되어 메모리에 저장되고 적어도 하나의 프로세서에 의해 실행될 수 있고, 또는 하드웨어와 소프트웨어의 조합으로 구현되어 동작할 수 있다.
명령어 수신부(410)는, 각 클라이언트 단말(110)로부터 게스트 운영체제에 관련된 명령어를 네트워크(130)를 통해 수신한다. 바람직하게, 명령어는 API(Application Programming Interface)를 통해 수신된다.
명령어 저장부(420)는, 상기 명령어 수신부(410)에서 수신된 각 클라이언트 단말(110)별 명령어들을 분류하여 저장한다. 즉, 각 클라이언트 단말(110)의 식별정보(예, 사용자 ID, MAC 주소, IP 주소)를 기준으로 각 클라이언트 단말(110)로부터 수신된 명령어들을 저장한다. 바람직하게 명령어 저장부(420)는 DBMS(DataBase Mangement System)을 이용하여 명령어들을 분류하여 저장할 수 있다.
명령어 처리부(430)는, 상기 명령어 저장부(420)에 저장된 각 클라이언트 단말(110)별 명령어를 기초로, 클라이언트 단말(110)들에 저장된 게스트 운영체제 원본 이미지와 동일한 서버 스토리지(440) 내 별도로 저장된 게스트 운영체제 원본 이미지, 그리고 각 사용자별 저장 영역에 저장된 각 사용자의 작업 데이터를 이용하여, 각 사용자별 저장 영역에 최초의 게스트 운영체제 원본 이미지로부터 파생되는 게스트 운영체제 원본 이미지와 백업용 게스트 운영체제 이미지를 생성하여 저장한다.
사용자 데이터 수신부(450)는, 각 클라이언트 단말(110)들로부터 각 사용자의 작업 데이터를 수신하여, 상기 서버 스토리지(440) 내의 각 사용자별 저장 영역에 저장한다. 사용자 데이터 수신부(450)는, 최초에는 각 클라이언트 단말(110)들로부터 사용자의 작업 데이터 모두를 수신하지만, 이후에는 최초의 작업 데이터와 달라지는 증분 데이터만을 수신하여 각 사용자별 저장 영역의 작업 데이터를 갱신할 수 있다.
도 4를 참조하면, 클라이언트 단말들(110)과 중앙 서버(120)가 최초에 동일하에 저장하는 게스트 운영체제 원본 이미지를 GuestOS-원본.img라 가정한다. 이후 클라이언트 단말-1에서 게스트 운영체제 원본 이미지(GuestOS-원본.img)로부터 작업용 게스트 운영체제 이미지를 생성하여 작업을 한 후 사용자의 작업 데이터(UserData-A)와 결합하여 게스트 운영체제 원본 이미지 GuestOS-A.img를 생성하여 기존 게스트 운영체제 원본 이미지를 교체하였다면, 명령어 수신부(410)는 관련 명령어를 수신하여 명령어 저장부(420)에 저장하고, 사용자 데이터 수신부(450)는 사용자의 작업 데이터를 수신하여 서버 스토리지(440) 내의 해당 사용자 저장 영역에 저장한다. 그리고 명령어 처리부(430)는 동일한 명령어를 처리하여 게스트 운영체제 원본 이미지 GuestOS-원본.img로부터 스냅샷을 이용하여 작업용 게스트 운영체제 이미지를 생성한 후 사용자의 작업 데이터와 결합하여 새로운 게스트 운영체제 원본 이미지 GuestOS-A.img를 생성하여 해당 사용자 저장 영역에 저장한다. 그리고 기존 게스트 운영체제 원본 이미지로부터 스냅샷을 이용하여 백업용 게스트 운영체제 이미지인 GuestOS-원본_old_dateA.img를 생성하여 해당 사용자 저장 영역에 저장한다. 이와 같은 방식으로 각 사용자별 저장 영역에 각 클라이언트 단말(110)에서 생성되는 게스트 운영체제 원본 이미지와 백업용 게스트 운영체제 이미지와 동일한 게스트 운영체제 원본 이미지와 백업용 게스트 운영체제 이미지를 동기화하여 저장하게 된다.
이상의 도 4를 참조하여 설명한 실시예에 따르면, 중앙 서버(120)는, 각 클라이언트 단말(110)로부터 업데이트된 게스트 운영체제 이미지와 백업용 게스트 운영체제 이미지의 데이터를 모두 수신하지 않고도, 각 클라이언트 단말(110)과 동일하게 게스트 운영체제 원본 이미지 그리고 백업용 게스트 운영체제 이미지를 동기화하여 저장할 수 있다. 따라서 클라이언트 단말(110)과 중앙 서버(120) 간의 트래픽 부하를 줄일 수 있고, 클라이언트 단말(110)과 중앙 서버(120)의 데이터 처리 부하를 줄일 수 있다.
도 5는 본 발명의 일 실시예에 따른 클라이언트 단말의 하드웨어 모니터링을 위한 시스템 구성을 나타낸 도면이다. 도 5를 참조하면, 본 실시예에 따른 클라이언트 단말(110)은 호스트 운영체제(220) 내에 에이전트(Agent)(222)를 포함한다. 일반적으로 가상화 시스템에서는 클라이언트 단말(110)의 게스트 운영체제에 에이전트를 설치하고 에이전트를 통해 수집되는 클라이언트 단말(110)의 상태 정보를 기초로 클라이언트 단말(110)의 모니터링한다. 그러나 이와 같이 게스트 운영체제에 에이전트를 설치할 경우 게스트 운영체제가 설치된 가상 머신이 종료되면, 클라이언트 단말(110)의 상태를 모니터링할 수 없고, 또한 게스트 운영체제에 에이전트가 설치됨으로써 사용자가 에이전트에 접근할 수 있어 보안에 취약하다.
본 발명은, 클라이언트 단말(110)의 게스트 운영체제가 아닌, 호스트 운영체제(220)에 에이전트(222)가 설치되고, 해당 에이전트(222)는, 호스트 운영체제(220)에 설치되는 장치 드라이버(221)와 통신하여, 클라이언트 단말(110)의 물리 하드웨어(210)의 상태 정보를 수집하여 중앙 서버(120)로 전송한다. 여기서 수집되는 상태 정보는, 마더보드(Motherboard) 정보(칩셋, NIC 등), CPU 정보(제조사, 모델명, 온도, 사용량, 팬 속도 등), 메모리 정보(RAM 제조사, 모델명, 온도, 사용량 등), 디스크 정보(제조사, 모델명, 총 읽기량, 총 기록량, 회전 속도, 사용 횟수, 사용 시간 등), 그래픽 카드 정보(제조사, 모델명, GPU 사용량, RAM 사용량, 온도, 팬 속도, 드라이버 버전 정보 등)를 포함한다.
에이전트(222)는, 주기적으로 하드웨어(210)의 상태 정보를 수집하여 중앙 서버(120)로 전송하고, 또한 중앙 서버(120)로부터 수신되는 테스트 명령에 따라 하드웨어(210)를 구동하고 그 테스트 결과를 중앙 서버(120)로 전송하여 보고한다. 또한, 에이전트(222)는, 하드웨어(210)의 상태 정보를 수집하는 것 이외, 게스트 운영체제(Guest OS)로부터 시스템 로그(System log)를 수신하여 이를 중앙 서버(120)로 전송하여 보고할 수 있다. 이를 통해 클라이언트 단말(110)에서 하드웨어 에러가 발생하였을 경우, 게스트 운영체제에서 어떤 에러를 유발하였는지를 분석할 수 있다.
도 5를 참조하면, 중앙 서버(120)는, 하드웨어 상태 정보 수집부(510), 상태 정보 저장부(520), 하드웨어 상태 정보 조회부(530) 및 하드웨어 진단부(540)를 포함한다. 이들은 프로그램으로 구현되어 메모리에 저장되고 적어도 하나의 프로세서에 의해 실행될 수 있고, 또는 하드웨어와 소프트웨어의 조합으로 구현되어 동작할 수 있다.
하드웨어 상태 정보 수집부(510)는, 클라이언트 단말(110)의 에이전트(222)로부터 클라이언트 단말(110)에 설치된 물리 하드웨어(210)의 상태 정보를 수집하여, 상태 정보 저장부(520)에 저장한다. 하드웨어(210)의 상태 정보는, 앞서 설명한, 마더보드(Motherboard) 정보, CPU 정보, 디스크 정보, 그래픽 카드 정보, 게스트 운영체제의 시스템 로그 등을 포함한다.
하드웨어 상태 정보 조회부(530)는, 상기 상태 정보 저장부(520)에 저장된 상태 정보를 관리자가 조회할 수 있는 환경을 제공한다. 하드웨어 상태 정보 조회부(530)는, 각 클라이언트 단말(110)별로 각 하드웨어 종류별 정보를 그래픽 유저 인터페이스로 표시할 수 있다. 또한 하드웨어 상태 정보 조회부(530)는, 모든 클라이언트 단말(110)들의 하드웨어 상태 정보를 비교하여, 평균적인 값에서 소정 임계 범위를 벗어나는 클라이언트 단말(110)의 하드웨어 상태 정보를 관리자에게 알릴 수 있고, 하드웨어 정보 진단부(540)로 통보할 수 있다.
하드웨어 정보 진단부(540)는, 관리자의 입력에 따라 또는 상기 하드웨어 상태 정보 조회부(530)로부터 수신되는 통보에 따라, 특정 클라이언트 단말(110)의 특정 하드웨어에 대한 부하 테스트 명령을 전송하고, 테스트 결과를 해당 클라이언트 단말(110)의 에이전트(222)로부터 수신할 수 있다. 하드웨어 정보 진단부(540)는 테스트 결과를 상태 정보 저장부(520)에 저장하여, 하드웨어 상태 정보 조회부(530)를 통해 관리자가 테스트 결과를 확인할 수 있도록 한다. 즉, 하드웨어 상태 정보 조회부(530)는, 테스트 결과를 그래픽 유저 인터페이스를 통해 관리자에게 표시할 수 있다.
도 6은 본 발명의 일 실시예에 따른 클라이언트 단말의 장치 드라이버를 관리하기 위한 시스템 구성을 설명하는 도면이다. 본 실시예에서 호스트 운영체제(220)는 리눅스 계열의 운영체제이고, 게스트 운영체제(Guest OS)는 윈도우 운영체제이다. 따라서, 호스트 운영체제(220)에 설치되는 장치 드라이버로는 게스트 운영체제에서 클라이언트 단말(110)의 물리 하드웨어(210)의 장치들을 제어할 수 없고, 별도로 제공되어야 한다.
도 6을 참조하면, 중앙 서버(120)는, 인증부(610), 단말 식별부(620), 드라이버 제어부(630), 하드웨어 리스트 수집부(640), 드라이버 전송부(650) 및 드라이버 저장부(660)를 포함하고, 이들은 프로그램으로 구현되어 메모리에 저장되고 적어도 하나의 프로세서에 의해 실행될 수 있고, 또는 하드웨어와 소프트웨어의 조합으로 구현되어 동작할 수 있다.
인증부(610)는, 클라이언트 단말(110)의 사용자를 인증한다. 바람직하게, 클라이언트 단말(110)의 호스트 운영체제(220)는 부팅시 인증부(610)로 사용자로부터 입력된 인증 정보를 전송할 수 있다. 여기서 인증 정보는 사용자로부터 입력된 ID/PW를 포함할 수 있다. 인증부(610)는, 수신된 인증 정보와, 기 등록되어 있는 사용자들의 인증 정보와 비교하여 인증을 수행한다.
단말 식별부(620)는, 상기 인증부(610)에서의 사용자 인증 성공시, 클라이언트 단말(110)의 호스트 운영체제(220)로부터 클라이언트 단말(110)의 식별정보를 수신한다. 단말의 식별정보는, MAC 주소나 IP 주소 등을 포함한다. 단말 식별부(620)는, 상기 클라이언트 단말(110)의 식별정보를 이용하여 클라이언트 단말(110)이 기 등록된 단말인지 새로운 단말인지 식별한다.
드라이버 제어부(630)는, 상기 단말 식별부(620)에서 기 등록된 단말로 식별된 클라이언트 단말(110)에 대해서는 해당 클라이언트 단말(110)로 드라이버 전달에 관한 명령을 전송한다. 즉, 기 등록된 클라이언트 단말(110)에는 게스트 운영체제에서 사용할 수 있는 장치 드라이버들이 해당 클라이언트 단말(110)의 호스트 운영체제에 저장되어 있으므로, 호스트 운영체제로 하여금 기 저장하고 있는 게스트 운영체제에서 사용할 수 있는 장치 드라이버들을 게스트 운영체제로 전달하도록 하는 것이다. 따라서, 해당 클라이언트 단말(110)의 게스트 운영체제는, 호스트 운영체제로부터 전달되는 장치 드라이버들을 이용하여 부팅을 시작한다.
하드웨어 리스트 수집부(640)는, 상기 단말 식별부(620)에서 새로운 단말로 식별된 클라이언트 단말(110)에 대해 해당 클라이언트 단말(110)로부터 하드웨어 리스트를 수집한다. 바람직하게, 클라이언트 단말(110)의 에이전트(222)는, 호스트 운영체제(220)에 종속되는 물리 하드웨어(210)의 하드웨어 리스트를 호스트 운영체제(220)로부터 직접 수집할 수 있고, 호스트 운영체제의 부팅시 미인식되는 입출력 장치의 리스트를 VFIO를 통해 수집하여, 이들 하드웨어 리스트를 하드웨어 리스트 수집부(640)로 전송할 수 있다. 하드웨어 리스트 수집부(640)는, 수집된 클라이언트 단말(110)의 하드웨어 리스트를 단말 프로파일에 기록하여 저장한다.
드라이버 전송부(650)는, 상기 하드웨어 리스트 수집부(640)에서 하드웨어 리스트를 수집한 클라이언트 단말(110)로, 해당 하드웨어 리스트에 대응하는 장치 드라이버 파일들을 드라이버 저장소(660)에서 검색하여 전송한다. 바람직하게, 드라이버 저장소(660)는, 단말 사양 그룹별로 장치 드라이버 파일들을 저장하고 있고, 드라이버 전송부(650)는, 상기 수집된 하드웨어 리스트에 대응하는 단말 사양 그룹의 장치 드라이버 파일들을 검색한다.
앞서 설명한 실시예에 따르면, 각 클라이언트 단말(110)에는 단말 사양과 무관하게 최초에 동일한 게스트 운영체체 원본 이미지를 저장하고, 그 게스트 운영체제 원본 이미지로부터 스냅샷을 이용하여 작업용 게스트 운영체제 이미지를 생성하여 가상 머신을 구동한다. 따라서, 일부 클라이언트 단말(110)은, 게스트 운영체제에서 지원하지 않는 하드웨어를 포함하고, 게스트 운영체제가 이를 인식하지 못할 수 있다. 도 6을 참조한 실시예에 따르면, 이러한 문제를 해결하여, 각 클라이언트 단말(110)에서 최초에 동일한 게스트 운영체제 원본 이미지를 사용하더라도, 클라이언트 단말(110)의 가상 머신에서 게스트 운영체제가 부팅되기 전에 클라이언트 단말(110)의 물리 하드웨어에 대한 장치 드라이버들을 갖도록 하여 정상적으로 물리 하드웨어를 인식하여 사용할 수 있도록 한다.
이상의 실시예에서는 모든 클라이언트 단말(110)과 중앙 서버(120)는 최초에 하나의 동일한 게스트 운영체제 원본 이미지를 저장하여 이용한다. 그러나 반드시 여기에 제한되는 것은 아니며, 사용자들을 복수의 사용자 그룹으로 나누고, 각 사용자 그룹별로 서로 다른 게스트 운영체제 원본 이미지를 저장하여 이용하도록 할 수 있다. 이 경우, 중앙 서버(120)는 최초에 각 사용자 그룹별로 사용하는 게스트 운영체제 원본 이미지와 동일한 게스트 운영체제 원본 이미지들을 저장한다. 그리고 각 사용자 그룹별로 사용자별 저장 영역을 할당하고 각 사용자 그룹 내의 각 사용자 저장 영역에 각 클라이언트 단말에 현재 저장된 게스트 운영체제 원본 이미지 및 백업용 게스트 운영체제 이미지와 동일한 이미지들을 저장하여 동기화한다. 즉, 각 사용자 그룹별로 게스트 운영체제 원본 이미지를 관리하는 방법은 이상에서 설명한 방법과 동일하다.
한편, 윈도우 운영체제에서 어플리케이션이 실행되려면, 반드시 인스톨(install) 과정을 거쳐야 하며, 어플리케이션이 동작하기 위해 윈도우 운영체제와 상호작용하도록 하는 정보를 필요로 하기 때문에 단일 실행 파일 형태로 설치 및 동작되지 않는다. 따라서 설치된 어플리케이션이 정상적으로 구동하려면 실행 파일을 비롯한 폴더 및 파일, 고유 아이콘, 레지스트리 등록, 의존성 패키지 프로그램(DirectX, .NET Framework 등) 설치, 윈도우 서비스 등록, 시작 프로그램 등록 등의 구동에 필요한 준비 과정이 설치 과정에서 복합적으로 진행된다. 본 발명에서는 이러한 어플리케이션의 일련의 설치 과정을 클라이언트 단말(110)에서 수행하지 않고 중앙 서버(120)에서 일괄 배포하고 관리할 수 있는 방안을 제안한다.
그 방안으로서, 중앙 서버(120)는, 게스트 운영체제 원본 이미지 이외, 서로 다른 복수의 어플리케이션 이미지를 생성하고, 각 사용자 그룹별로 서로 다른 어플리케이션 이미지를 할당할 수 있다. 각 어플리케이션 이미지는, 어플리케이션들의 실행 파일, 폴더/파일, 고유 아이콘, 레지스트리, 의존성 패키지 프로그램, 윈도우 서비스 등록, 시작 프로그램 등록 등을 포함하고, 게스트 운영체제는 어플리케이션 이미지의 특정 위치를 참조하도록 한다. 바람직하게, 게스트 운영체제 이미지는 C 드라이브로 마운트되고, 어플리케이션 이미지는 D 드라이브로 마운트된다.
도 7은 본 발명의 일 실시예에 따른 사용자 그룹별 게스트 운영체제 이미지 및 어플리케이션 이미지를 관리하는 방법을 설명하는 도면이다. 도 7을 참조하면, 중앙 서버(120)는, 서버 스토리지에 서로 다른 복수의 게스트 운영체제 원본 이미지(OS-1.img, OS-2.img, OS-3.img)를 저장하고, 각 사용자 그룹은, 상기 복수의 게스트 운영체제 원본 이미지 중 하나의 게스트 운영체제 원본 이미지를 할당받는다. 각 게스트 운영체제 원본 이미지는 서로 다르며, 윈도우 운영체제는 동일하게 포함하고, 기타 필수 프로그램이 서로 다르게 설치된다. 바람직하게, 중앙 서버(120)는, 최초의 하나의 게스트 운영체제 원본 이미지로부터 스냅샷을 이용하여 순차적으로 서로 다른 복수의 게스트 운영체제 원본 이미지를 생성하며, 이미지의 이름에 순차적으로 넘버링을 하여 효율적으로 관리한다.
또한, 도 7을 참조하면, 중앙 서버(120)는, 서버 스토리지에 서로 다른 복수의 어플리케이션 이미지(APP-1.img, APP-2.img, APP-3.img)를 저장하고, 각 사용자 그룹은, 상기 복수의 어플리케이션 이미지 중 하나의 어플리케이션 이미지를 할당받는다. 따라서, 각 사용자 그룹은 게스트 운영체제 원본 이미지는 동일해도 어플리케이션 이미지는 서로 상이할 수 있고, 또는 게스트 운영체제 원본 이미지는 서로 달라도 어플리케이션 이미지는 서로 동일할 수 있다.
특정 사용자 그룹 내의 특정 클라이언트 단말(110)에서 어플리케이션 이미지의 특정 프로그램이 업데이트될 경우, 해당 사용자 그룹 내의 해당 클라이언트 단말(110)의 호스트 운영체제는, 특정 프로그램의 업데이트에 따른 어플리케이션 이미지의 증분 데이터를 중앙 서버(120)로 전송하고, 중앙 서버(120)는, 해당하는 어플리케이션 이미지의 증분 데이터를 이용하여, 서버 스토리지에 저장된 해당 어플리케이션 이미지를 업데이트하고, 해당 증분 데이터를 해당 어플리케이션 이미지를 저장하고 있는 사용자 그룹 내의 다른 클라이언트 단말(110)로 전송하여 각 클라이언트 단말(110) 내에서 어플리케이션 이미지가 업데이트되도록 한다.
이상의 도 7을 참조한 실시예에 따르면, 사용자 그룹별로 각 사용자 그룹의 특성에 맞게 게스트 운영체제 및 어플리케이션을 적용할 수 있게 되고, 각 사용자 그룹별로 중앙 서버(120)와 클라이언트 단말들(110) 간에 게스트 운영체제 이미지와 어플리케이션 이미지를 동기화할 수 있다.
본 명세서는 많은 특징을 포함하는 반면, 그러한 특징은 본 발명의 범위 또는 특허청구범위를 제한하는 것으로 해석되어서는 안 된다. 또한, 본 명세서에서 개별적인 실시예에서 설명된 특징들은 단일 실시예에서 결합되어 구현될 수 있다. 반대로, 본 명세서에서 단일 실시예에서 설명된 다양한 특징들은 개별적으로 다양한 실시예에서 구현되거나, 적절히 결합되어 구현될 수 있다.
도면에서 동작들이 특정한 순서로 설명되었으나, 그러한 동작들이 도시된 바와 같은 특정한 순서로 수행되는 것으로, 또는 일련의 연속된 순서, 또는 원하는 결과를 얻기 위해 모든 설명된 동작이 수행되는 것으로 이해되어서는 안 된다. 특정 환경에서 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 아울러, 상술한 실시예에서 다양한 시스템 구성요소의 구분은 모든 실시예에서 그러한 구분을 요구하지 않는 것으로 이해되어야 한다. 상술한 프로그램 구성요소 및 시스템은 일반적으로 단일 소프트웨어 제품 또는 멀티플 소프트웨어 제품에 패키지로 구현될 수 있다.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(시디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.
110 : 클라이언트 단말, 120 : 중앙 서버
130 : 네트워크, 210 : 하드웨어
220 : 호스트 운영체제, 230 : 하이퍼바이저
240, 250 : 가상 머신, 410 : 명령어 수신부
420 : 명령어 저장부, 430 : 명령어 처리부
440 : 서버 스토리지, 450 : 사용자 데이터 수신부
510 : 하드웨어 상태 정보 수집부, 520 : 상태 정보 저장부
530 : 하드웨어 상태 정보 조회부, 540 : 하드웨어 진단부
610 : 인증부, 620 : 단말 식별부
630 : 드라이버 제어부, 640 : 하드웨어 리스트 수집부
650 : 드라이버 전송부, 660 : 드라이버 저장부

Claims (11)

  1. 삭제
  2. 클라이언트 단말들의 자원을 가상화하여 중앙에서 통제 및 관리하기 위한 가상화 시스템으로서,
    호스트 운영체제, 게스트 운영체제 원본 이미지, 및 하이퍼바이저를 포함하고, 상기 호스트 운영체제는 상기 하이퍼바이저 기반으로 물리 하드웨어를 가상화하여 가상 머신을 구동하며, 상기 가상 머신은 상기 게스트 운영체제 원본 이미지로부터 스냅샷을 이용하여 생성된 작업용 게스트 운영체제 이미지를 이용하여 부팅하고, 상기 가상 머신의 종료시, 상기 호스트 운영체제는 상기 게스트 운영체제 원본 이미지를 상기 작업용 게스트 운영체제 이미지로 교체하는, 복수의 클라이언트 단말; 및
    최초에 상기 복수의 클라이언트 단말과 동일한 게스트 운영체제 원본 이미지를 서버 스토리지에 저장하고, 상기 복수의 클라이언트 단말 각각으로부터 수신되는 게스트 운영체제에 대한 데이터 처리 명령어를 수신하며, 상기 서버 스토리지에 저장한 상기 게스트 운영체제 원본 이미지를 기초로 상기 수신된 데이터 처리 명령어를 처리하여 생성한 게스트 운영체제 이미지를 각 클라이언트 단말에 현재 저장된 게스트 운영체제 원본 이미지와 동일한 게스트 운영체제 원본 이미지로서 각 대응하는 사용자별 저장 영역에 저장하는 중앙 서버를 포함하고,
    상기 복수의 클라이언트 단말 각각의 호스트 운영체제는,
    게스트 운영체제 원본 이미지를 작업용 게스트 운영체제 이미지로 교체하기 전에, 게스트 운영체제 원본 이미지로부터 스냅샷을 이용하여 백업용 게스트 운영체제 이미지를 생성하여 클라이언트 스토리지 내의 백업 저장 영역에 저장하고, 백업 날짜/시간을 별도 저장하는 것을 특징으로 하는 가상화 시스템.
  3. 제2항에 있어서,
    상기 가상 머신은, 관리자용 가상 머신과 사용자용 가상 머신을 포함하고,
    상기 사용자용 가상 머신은,
    상기 관리자용 가상 머신의 구동 후 종료시 해당 관리자용 가상 머신의 부팅시 사용된 작업용 게스트 운영체제 이미지로 교체된 게스트 운영체제 원본 이미지로부터 스냅샷을 이용하여 생성된 작업용 게스트 운영체제 이미지를 이용하여 부팅되는 것을 특징으로 하는 가상화 시스템.
  4. 제3항에 있어서,
    상기 복수의 클라이언트 단말 각각의 호스트 운영체제는,
    클라이언트 스토리지 내의 사용자 데이터 영역에 상기 사용자용 가상 머신에서의 사용자의 작업 데이터를 저장하고,
    상기 사용자용 가상 머신의 종료시 해당 사용자용 가상 머신의 부팅시 사용된 작업용 게스트 운영체제 이미지와 상기 작업 데이터의 바이러스 스캔을 수행하고, 바이러스 스캔 후 작업용 게스트 운영체제 이미지와 작업 데이터가 결합된 게스트 운영체제 이미지로 기존 게스트 운영체제 원본 이미지를 교체하는 것을 특징으로 하는 가상화 시스템.
  5. 제4항에 있어서,
    상기 중앙 서버는,
    각 클라이언트 단말로부터 사용자의 작업 데이터를 수신하여 서버 스토리지 내의 대응하는 사용자 저장 영역에 저장하는 사용자 데이터 수신부;
    각 클라이언트 단말로부터 가상 머신에서의 게스트 운영체제에 대한 데이터 처리 명령어를 수신하는 명령어 수신부; 및
    상기 수신된 작업 데이터 및 데이터 처리 명령을 기초로 각 사용자별 저장 영역에 저장된 게스트 운영체제 원본 이미지를 업데이트하되, 업데이트 전에 해당 게스트 운영체제 원본 이미지로부터 스냅샷을 이용하여 백업용 게스트 운영체제 이미지를 생성하여 각 사용자별 저장 영역에 저장하는 명령어 처리부를 포함하는 것을 특징으로 하는 가상화 시스템.
  6. 클라이언트 단말들의 자원을 가상화하여 중앙에서 통제 및 관리하기 위한 가상화 시스템으로서,
    호스트 운영체제, 게스트 운영체제 원본 이미지, 및 하이퍼바이저를 포함하고, 상기 호스트 운영체제는 상기 하이퍼바이저 기반으로 물리 하드웨어를 가상화하여 가상 머신을 구동하며, 상기 가상 머신은 상기 게스트 운영체제 원본 이미지로부터 스냅샷을 이용하여 생성된 작업용 게스트 운영체제 이미지를 이용하여 부팅하고, 상기 가상 머신의 종료시, 상기 호스트 운영체제는 상기 게스트 운영체제 원본 이미지를 상기 작업용 게스트 운영체제 이미지로 교체하는, 복수의 클라이언트 단말; 및
    최초에 상기 복수의 클라이언트 단말과 동일한 게스트 운영체제 원본 이미지를 서버 스토리지에 저장하고, 상기 복수의 클라이언트 단말 각각으로부터 수신되는 게스트 운영체제에 대한 데이터 처리 명령어를 수신하며, 상기 서버 스토리지에 저장한 상기 게스트 운영체제 원본 이미지를 기초로 상기 수신된 데이터 처리 명령어를 처리하여 생성한 게스트 운영체제 이미지를 각 클라이언트 단말에 현재 저장된 게스트 운영체제 원본 이미지와 동일한 게스트 운영체제 원본 이미지로서 각 대응하는 사용자별 저장 영역에 저장하는 중앙 서버를 포함하고,
    각 클라이언트 단말의 호스트 운영체제는,
    장치 드라이버들과 통신하여 물리 하드웨어의 상태 정보를 수집하여 상기 중앙 서버로 전송하는 에이전트를 포함하고,
    상기 중앙 서버는,
    상기 에이전트로부터 물리 하드웨어의 상태 정보를 수신하여 상태 정보 저장부에 저장하는 하드웨어 상태 정보 수집부;
    관리자에게 상기 상태 정보 저장부에 저장된 각 클라이언트 단말의 물리 하드웨어의 상태 정보를 제공하는 하드웨어 상태 정보 조회부; 및
    각 클라이언트 단말의 상기 에이전트로 특정 하드웨어에 대한 부하 테스트 명령을 전송하고, 이에 대한 응답으로 테스트 결과를 수신하여 상기 상태 정보 저장부에 저장하는 하드웨어 진단부를 포함하는 것을 특징으로 하는 가상화 시스템.
  7. 클라이언트 단말들의 자원을 가상화하여 중앙에서 통제 및 관리하기 위한 가상화 시스템으로서,
    호스트 운영체제, 게스트 운영체제 원본 이미지, 및 하이퍼바이저를 포함하고, 상기 호스트 운영체제는 상기 하이퍼바이저 기반으로 물리 하드웨어를 가상화하여 가상 머신을 구동하며, 상기 가상 머신은 상기 게스트 운영체제 원본 이미지로부터 스냅샷을 이용하여 생성된 작업용 게스트 운영체제 이미지를 이용하여 부팅하고, 상기 가상 머신의 종료시, 상기 호스트 운영체제는 상기 게스트 운영체제 원본 이미지를 상기 작업용 게스트 운영체제 이미지로 교체하는, 복수의 클라이언트 단말; 및
    최초에 상기 복수의 클라이언트 단말과 동일한 게스트 운영체제 원본 이미지를 서버 스토리지에 저장하고, 상기 복수의 클라이언트 단말 각각으로부터 수신되는 게스트 운영체제에 대한 데이터 처리 명령어를 수신하며, 상기 서버 스토리지에 저장한 상기 게스트 운영체제 원본 이미지를 기초로 상기 수신된 데이터 처리 명령어를 처리하여 생성한 게스트 운영체제 이미지를 각 클라이언트 단말에 현재 저장된 게스트 운영체제 원본 이미지와 동일한 게스트 운영체제 원본 이미지로서 각 대응하는 사용자별 저장 영역에 저장하는 중앙 서버를 포함하고,
    상기 중앙 서버는,
    특정 클라이언트 단말로부터 해당 클라이언트 단말의 물리 하드웨어 리스트를 수집하는 하드웨어 리스트 수집부; 및
    상기 특정 클라이언트 단말의 가상 머신에서 부팅되는 게스트 운영체제에서 사용할 상기 수집된 물리 하드웨어 리스트에 대응하는 장치 드라이버를 상기 특정 클라이언트 단말로 전송하는 드라이버 전송부를 포함하는 것을 특징으로 하는 가상화 시스템.
  8. 제7항에 있어서,
    상기 중앙 서버는,
    각 클라이언트 단말에서 가상 머신은 미부팅 상태이고 호스트 운영체제만 부팅된 상태에서 해당 호스트 운영체제로부터 수신되는 사용자의 인증 정보를 이용하여 사용자 인증을 수행하는 인증부; 및
    상기 사용자 인증에 성공한 클라이언트 단말의 식별정보를 기초로 해당 클라이언트 단말이 기 등록된 단말인지 식별하고, 기 등록된 단말인 경우, 해당 클라이언트 단말의 호스트 운영체제로부터 게스트 운영체제로의 장치 드라이버 전달에 관한 명령을 해당 호스트 운영체제로 전송하는 드라이버 제어부를 더 포함하는 것을 특징으로 하는 가상화 시스템.
  9. 클라이언트 단말들의 자원을 가상화하여 중앙에서 통제 및 관리하기 위한 가상화 시스템으로서,
    호스트 운영체제, 게스트 운영체제 원본 이미지, 및 하이퍼바이저를 포함하고, 상기 호스트 운영체제는 상기 하이퍼바이저 기반으로 물리 하드웨어를 가상화하여 가상 머신을 구동하며, 상기 가상 머신은 상기 게스트 운영체제 원본 이미지로부터 스냅샷을 이용하여 생성된 작업용 게스트 운영체제 이미지를 이용하여 부팅하고, 상기 가상 머신의 종료시, 상기 호스트 운영체제는 상기 게스트 운영체제 원본 이미지를 상기 작업용 게스트 운영체제 이미지로 교체하는, 복수의 클라이언트 단말; 및
    최초에 상기 복수의 클라이언트 단말과 동일한 게스트 운영체제 원본 이미지를 서버 스토리지에 저장하고, 상기 복수의 클라이언트 단말 각각으로부터 수신되는 게스트 운영체제에 대한 데이터 처리 명령어를 수신하며, 상기 서버 스토리지에 저장한 상기 게스트 운영체제 원본 이미지를 기초로 상기 수신된 데이터 처리 명령어를 처리하여 생성한 게스트 운영체제 이미지를 각 클라이언트 단말에 현재 저장된 게스트 운영체제 원본 이미지와 동일한 게스트 운영체제 원본 이미지로서 각 대응하는 사용자별 저장 영역에 저장하는 중앙 서버를 포함하고,
    상기 복수의 클라이언트 단말은 소정 개수의 사용자 그룹으로 그룹핑되고,
    최초에 각 클라이언트 단말과 중앙 서버가 동일하에 저장하는 게스트 운영체제 원본 이미지는, 동일 사용자 그룹 내에서는 동일하고 서로 다른 사용자 그룹 간에는 서로 상이하며,
    상기 중앙 서버는,
    각 사용자 그룹별로 사용자별 저장 영역을 할당하고 각 사용자별 저장 영역에 각 클라이언트 단말에 현재 저장된 게스트 운영체제 원본 이미지와 동일한 게스트 운영체제 원본 이미지를 저장하는 것을 특징으로 하는 가상화 시스템.
  10. 제9항에 있어서,
    상기 중앙 서버는,
    서버 스토리지에 저장된 복수의 서로 다른 어플리케이션 이미지 중 하나를 상기 각 사용자 그룹마다 할당하여 각 사용자 그룹 내의 각 클라이언트 단말로 전송하고,
    특정 사용자 그룹 내의 어느 한 클라이언트 단말에서 어플리케이션 이미지 내의 프로그램을 업데이트하는 경우, 해당 클라이언트 단말의 호스트 운영체제로부터 프로그램 업데이트에 따른 어플리케이션 이미지의 증분 데이터를 수신하여 서버 스토리지 내의 대응하는 어플리케이션 이미지를 업데이트하고, 해당 증분 데이터를 해당 특정 사용자 그룹 내의 다른 클라이언트 단말로 전송하여 각 클라이언트 단말 내의 어플리케이션 이미지가 업데이트되도록 하는 것을 특징으로 하는 가상화 시스템.
  11. 클라이언트 단말들의 자원을 가상화하여 중앙에서 통제 및 관리하기 위한 가상화 방법으로서,
    중앙 서버가, 호스트 운영체제, 게스트 운영체제 원본 이미지, 및 하이퍼바이저를 포함하는 복수의 클라이언트 단말의 상기 게스트 운영체제 원본 이미지와 동일한 게스트 운영체제 원본 이미지를 서버 스토리지에 저장하는 단계;
    상기 호스트 운영체제에 의해 상기 하이퍼바이저 기반으로 물리 하드웨어를 가상화하여 가상 머신이 구동되고, 상기 가상 머신은 상기 게스트 운영체제 원본 이미지로부터 스냅샷을 이용하여 생성된 작업용 게스트 운영체제 이미지를 이용하여 부팅하며, 상기 가상 머신의 종료시, 상기 호스트 운영체제는 상기 게스트 운영체제 원본 이미지를 상기 작업용 게스트 운영체제 이미지로 교체한 특정 클라이언트 단말로부터, 상기 중앙 서버가, 게스트 운영체제에 대한 데이터 처리 명령어를 수신하는 단계;
    상기 중앙 서버가, 상기 서버 스토리지에 저장한 상기 게스트 운영체제 원본 이미지를 기초로 상기 수신된 데이터 처리 명령어를 처리하여 생성한 게스트 운영체제 이미지를, 상기 특정 클라이언트 단말에 현재 저장된 게스트 운영체제 원본 이미지와 동일한 게스트 운영체제 원본 이미지로서, 해당 특정 클라이언트 단말에 대응하는 사용자 저장 영역에 저장하는 단계;
    상기 중앙 서버가, 특정 클라이언트 단말로부터 해당 클라이언트 단말의 물리 하드웨어 리스트를 수집하는 단계; 및
    상기 중앙 서버가, 상기 특정 클라이언트 단말의 가상 머신에서 부팅되는 게스트 운영체제에서 사용할 상기 수집된 물리 하드웨어 리스트에 대응하는 장치 드라이버를 상기 특정 클라이언트 단말로 전송하는 단계를 포함하는 가상화 방법.
KR1020210024801A 2021-02-24 2021-02-24 클라이언트 단말들의 자원을 가상화하여 중앙에서 통제 및 관리하기 위한 가상화 시스템 및 방법 KR102276428B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210024801A KR102276428B1 (ko) 2021-02-24 2021-02-24 클라이언트 단말들의 자원을 가상화하여 중앙에서 통제 및 관리하기 위한 가상화 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210024801A KR102276428B1 (ko) 2021-02-24 2021-02-24 클라이언트 단말들의 자원을 가상화하여 중앙에서 통제 및 관리하기 위한 가상화 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR102276428B1 true KR102276428B1 (ko) 2021-07-12

Family

ID=76859269

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210024801A KR102276428B1 (ko) 2021-02-24 2021-02-24 클라이언트 단말들의 자원을 가상화하여 중앙에서 통제 및 관리하기 위한 가상화 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR102276428B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113868174A (zh) * 2021-10-11 2021-12-31 摩尔线程智能科技(北京)有限责任公司 验证平台搭建方法、装置及存储介质
CN114510523A (zh) * 2022-01-19 2022-05-17 岚图汽车科技有限公司 系统间的数据传输方法、装置、终端设备及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009265778A (ja) * 2008-04-22 2009-11-12 Dino Co Ltd 仮想化サーバ
KR20120001542A (ko) * 2010-06-29 2012-01-04 삼성에스디에스 주식회사 클라이언트 하이퍼바이저 기반의 가상 머신을 관리할 수 있는 단말장치 및 방법
KR20130120893A (ko) * 2012-04-26 2013-11-05 주식회사 케이티 가상 머신을 이용한 클라우드 컴퓨팅 서비스를 제공하는 시스템 및 방법
KR20150113353A (ko) * 2014-03-28 2015-10-08 전자부품연구원 가상 데스크탑 이미지를 분산 저장 및 블록 레벨로 입출력하는 서버 시스템
KR20160092136A (ko) * 2015-01-26 2016-08-04 한국전자통신연구원 가상 데스크탑 제공 방법 및 가상 데스크탑 제공 서버
KR20200105174A (ko) * 2019-02-28 2020-09-07 에스케이브로드밴드주식회사 특정 시점의 환경을 제공할 수 있는 가상 데스크톱 시스템 및 그 데이터 처리 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009265778A (ja) * 2008-04-22 2009-11-12 Dino Co Ltd 仮想化サーバ
KR20120001542A (ko) * 2010-06-29 2012-01-04 삼성에스디에스 주식회사 클라이언트 하이퍼바이저 기반의 가상 머신을 관리할 수 있는 단말장치 및 방법
KR20130120893A (ko) * 2012-04-26 2013-11-05 주식회사 케이티 가상 머신을 이용한 클라우드 컴퓨팅 서비스를 제공하는 시스템 및 방법
KR20150113353A (ko) * 2014-03-28 2015-10-08 전자부품연구원 가상 데스크탑 이미지를 분산 저장 및 블록 레벨로 입출력하는 서버 시스템
KR20160092136A (ko) * 2015-01-26 2016-08-04 한국전자통신연구원 가상 데스크탑 제공 방법 및 가상 데스크탑 제공 서버
KR20200105174A (ko) * 2019-02-28 2020-09-07 에스케이브로드밴드주식회사 특정 시점의 환경을 제공할 수 있는 가상 데스크톱 시스템 및 그 데이터 처리 방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113868174A (zh) * 2021-10-11 2021-12-31 摩尔线程智能科技(北京)有限责任公司 验证平台搭建方法、装置及存储介质
CN113868174B (zh) * 2021-10-11 2024-02-06 摩尔线程智能科技(北京)有限责任公司 验证平台搭建方法、装置及存储介质
CN114510523A (zh) * 2022-01-19 2022-05-17 岚图汽车科技有限公司 系统间的数据传输方法、装置、终端设备及介质

Similar Documents

Publication Publication Date Title
US11983082B2 (en) Server clustering in a computing-on-demand system
US10656868B2 (en) Optimal storage and workload placement, and high resiliency, in geo-distributed cluster systems
US8583770B2 (en) System and method for creating and managing virtual services
US9569276B2 (en) System and method for dynamic user assignment in a virtual desktop environment
US8762538B2 (en) Workload-aware placement in private heterogeneous clouds
US8495624B2 (en) Provisioning a suitable operating system environment
EP2587375A1 (en) Securely hosting workloads in virtual computing environments
US8909767B2 (en) Cloud federation in a cloud computing environment
US20100064044A1 (en) Information Processing System and Control Method for Information Processing System
KR102276428B1 (ko) 클라이언트 단말들의 자원을 가상화하여 중앙에서 통제 및 관리하기 위한 가상화 시스템 및 방법
CA2804619A1 (en) Network topology-aware recovery automation
US20120233305A1 (en) Method, apparatus, and computer product for managing operation
JP4874908B2 (ja) 情報処理システム、および監視方法
US11210120B2 (en) Location management in a volume action service
CN113196237A (zh) 计算系统中的容器迁移
JP5346405B2 (ja) ネットワークシステム
WO2013145434A1 (ja) ネットワークシステム及びその制御方法
US20130238687A1 (en) Information processing apparatus and client management method
US10979289B2 (en) Apparatuses and methods for remote computing node registration and authentication
US11212168B2 (en) Apparatuses and methods for remote computing node initialization using a configuration template and resource pools
US20230267053A1 (en) Automatic Selection of Data Movers for Protecting Virtual Machines
KR101899262B1 (ko) 가상화 화면 최적화 시스템 및 방법
US20220334863A1 (en) Storage system, installation method, and recording medium
US20240134656A1 (en) Self-contained worker orchestrator in a distributed system
KR20190020548A (ko) 클라이언트 통합 관리 서버

Legal Events

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