KR102491986B1 - 가상 머신 연결 관리 서버, 이의 동작 방법, 및 프로그램 - Google Patents

가상 머신 연결 관리 서버, 이의 동작 방법, 및 프로그램 Download PDF

Info

Publication number
KR102491986B1
KR102491986B1 KR1020200168628A KR20200168628A KR102491986B1 KR 102491986 B1 KR102491986 B1 KR 102491986B1 KR 1020200168628 A KR1020200168628 A KR 1020200168628A KR 20200168628 A KR20200168628 A KR 20200168628A KR 102491986 B1 KR102491986 B1 KR 102491986B1
Authority
KR
South Korea
Prior art keywords
virtual machine
connection
user terminal
virtual
connectors
Prior art date
Application number
KR1020200168628A
Other languages
English (en)
Other versions
KR20220079156A (ko
Inventor
황경호
Original Assignee
(주)글루버
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)글루버 filed Critical (주)글루버
Priority to KR1020200168628A priority Critical patent/KR102491986B1/ko
Publication of KR20220079156A publication Critical patent/KR20220079156A/ko
Application granted granted Critical
Publication of KR102491986B1 publication Critical patent/KR102491986B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45545Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
    • 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/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/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명의 실시 예에 따른 가상 머신 연결 관리 서버는 가상화 서버에 구현된 복수의 가상 머신들 중에서 적어도 하나의 가상 머신에 연결되어 있던 사용자 단말로부터 전송된 연결 변경 요청을 수신하는 요청 수신부, 각각이, 상기 복수의 가상 머신들 중에서 상기 사용자 단말이 연결되어 있지 않은 가상 머신들에 대한 연결 상태를 유지하는 복수의 가상 머신 커넥터들을 포함하는 가상 머신 커넥터부 및 상기 복수의 가상 머신 커넥터들 중에서 상기 연결 변경 요청에 상응하는 가상 머신 커넥터를 선택하여, 상기 사용자 단말과 연결되어 있지 않던 새로운 가상 머신과 상기 사용자 단말의 연결을 제어하는 연결 변경부를 포함한다.

Description

가상 머신 연결 관리 서버, 이의 동작 방법, 및 프로그램{VIRTUAL MACHINE CONNECTION MANAGEMENT SERVER, OPERATING METHOD THEREOF, AND PROGRAM USING THE SAME}
본 발명은 가상 머신 연결 관리 서버, 이의 동작 방법, 및 프로그램에 관한 것으로, 보다 상세하게는 가상 머신 커넥터들을 통하여 사용자 단말이 연결되어 있지 않은 가상 머신들에 대한 연결 상태를 유지하다가, 연결 변경 요청에 상응하는 가상 머신 커넥터를 선택하여 새로운 가상 머신과 사용자 단말을 연결시킬 수 있는 가상 머신 연결 관리 서버, 이의 동작 방법, 및 프로그램에 관한 것이다.
서버 가상화 환경에서 사용자 단말이 특정 클라이언트를 통하여 가상 머신에 접속한 경우, 다른 가상 머신을 사용하기 위해서는 접속 상태의 변경이 요구된다.
이 때, 사용자 단말은 접속 상태의 변경을 위하여 기존에 연결된 가상 머신과의 접속을 완전히 해제하고 다른 가상 머신으로 접속하거나, 사용 중이었던 클라이언트가 아닌 다른 클라이언트를 실행해야하는 등의 비효율적인 과정을 거쳐야 했다.
본 발명이 이루고자 하는 기술적 과제는 가상 머신 커넥터들을 통하여 사용자 단말이 연결되어 있지 않은 가상 머신들에 대한 연결 상태를 유지하다가, 연결 변경 요청에 상응하는 가상 머신 커넥터를 선택하여 새로운 가상 머신과 사용자 단말을 연결시킬 수 있는 가상 머신 연결 관리 서버, 이의 동작 방법, 및 프로그램을 제공하는 것이다.
본 발명의 실시 예에 따른 가상 머신 연결 관리 서버는 가상화 서버에 구현된 복수의 가상 머신들 중에서 적어도 하나의 가상 머신에 연결되어 있던 사용자 단말로부터 전송된 연결 변경 요청을 수신하는 요청 수신부, 각각이, 상기 복수의 가상 머신들 중에서 상기 사용자 단말이 연결되어 있지 않은 가상 머신들에 대한 연결 상태를 유지하는 복수의 가상 머신 커넥터들을 포함하는 가상 머신 커넥터부 및 상기 복수의 가상 머신 커넥터들 중에서 상기 연결 변경 요청에 상응하는 가상 머신 커넥터를 선택하여, 상기 사용자 단말과 연결되어 있지 않던 새로운 가상 머신과 상기 사용자 단말의 연결을 제어하는 연결 변경부를 포함할 수 있다.
실시 예에 따라, 상기 복수의 가상 머신들 각각에는, 서로 다른 운영 체제가 설치될 수 있다.
실시 예에 따라, 상기 가상 머신 커넥터부의 상기 가상 머신 커넥터들 각각은, 상기 가상 머신 커넥터들 각각에 상응하는 가상 머신과의 연결 상태를 유지하기 위한 제1패킷 생성을 위한 명령을 생성할 수 있다.
실시 예에 따라, 상기 명령에 따라 생성된 제1패킷은, 상기 가상화 서버로 전송되어 세션 연결 상태를 유지할 수 있다.
실시 예에 따라, 상기 제1패킷은, 상기 세션 연결 상태를 유지하기 위한 헬스 체크 패킷(health check packet)일 수 있다.
실시 예에 따라, 상기 연결 변경부는, 상기 새로운 가상 머신과 상기 사용자 단말의 연결을 위한 명령을 상기 선택된 가상 머신 커넥터로 전달할 수 있다.
실시 예에 따라, 상기 선택된 가상 머신 커넥터는, 상기 새로운 가상 머신과 상기 사용자 단말의 연결을 위한 제2패킷을 생성하기 위한 명령을 생성할 수 있다.
실시 예에 따라, 상기 제2패킷은, 상기 새로운 가상 머신과 상기 사용자 단말의 연결을 위한 연결 정보를 포함할 수 있다.
본 발명의 실시 예에 따른 가상 머신 연결 관리 서버의 동작 방법은 가상화 서버에 구현된 복수의 가상 머신들 중에서 적어도 하나의 가상 머신에 연결되어 있던 사용자 단말로부터 전송된 연결 변경 요청을 수신하는 단계, 복수의 가상 머신 커넥터들 각각이, 상기 복수의 가상 머신들 중에서 상기 사용자 단말이 연결되어 있지 않은 가상 머신들에 대한 연결 상태를 유지하는 단계 및 상기 복수의 가상 머신 커넥터들 중에서 상기 연결 변경 요청에 상응하는 가상 머신 커넥터를 선택하여, 상기 사용자 단말과 연결되어 있지 않던 새로운 가상 머신과 상기 사용자 단말의 연결을 제어하는 단계를 포함할 수 있다.
본 발명의 실시 예에 따른 프로세서(processor)와 결합되어 가상 머신 연결 관리 서버의 동작 방법을 수행하기 위한 매체에 저장된 프로그램은 가상화 서버에 구현된 복수의 가상 머신들 중에서 적어도 하나의 가상 머신에 연결되어 있던 사용자 단말로부터 전송된 연결 변경 요청을 수신하는 단계, 복수의 가상 머신 커넥터들 각각이, 상기 복수의 가상 머신들 중에서 상기 사용자 단말이 연결되어 있지 않은 가상 머신들에 대한 연결 상태를 유지하는 단계 및 상기 복수의 가상 머신 커넥터들 중에서 상기 연결 변경 요청에 상응하는 가상 머신 커넥터를 선택하여, 상기 사용자 단말과 연결되어 있지 않던 새로운 가상 머신과 상기 사용자 단말의 연결을 제어하는 단계를 수행할 수 있다.
본 발명의 실시 예에 따른 방법과 장치들은 가상 머신 커넥터들을 통하여 사용자 단말이 연결되어 있지 않은 가상 머신들에 대한 연결 상태를 유지하다가, 연결 변경 요청에 상응하는 가상 머신 커넥터를 선택하여 새로운 가상 머신과 사용자 단말을 연결시킴으로써, 사용자 단말의 연결 상태를 유지하면서 가상 머신의 사용 전환을 원활히 할 수 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 일 실시 예에 따른 서버 가상화 환경을 나타낼 수 있다.
도 2는 도 1에 도시된 가상 머신 연결 관리 서버를 나타낼 수 있다.
도 3은 사용자 단말이 가상 머신에 연결되는 과정을 나타낸 데이터 플로우이다.
도 4는 사용자 단말이 기존에 연결된 가상 머신에서 새로운 가상 머신으로 연결 변경되는 과정을 나타낸 데이터 플로우이다.
도 5는 도 3과 도 4의 데이터 플로우에서 주요 과정을 도식화한 도면이다.
본 발명의 기술적 사상은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 이를 상세히 설명하고자 한다. 그러나, 이는 본 발명의 기술적 사상을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 기술적 사상의 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 발명의 기술적 사상을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 본 명세서의 설명 과정에서 이용되는 숫자(예를 들어, 제1, 제2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.
또한, 본 명세서에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.
또한, 본 명세서에 기재된 "~부", "~기", "~자", "~모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 프로세서(Processor), 마이크로 프로세서(Micro Processer), 마이크로 컨트롤러(Micro Controller), CPU(Central Processing Unit), GPU(Graphics Processing Unit), APU(Accelerate Processor Unit), DSP(Drive Signal Processor), ASIC(Application Specific Integrated Circuit), FPGA(Field Programmable Gate Array) 등과 같은 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있으며, 적어도 하나의 기능이나 동작의 처리에 필요한 데이터를 저장하는 메모리(memory)와 결합되는 형태로 구현될 수도 있다.
그리고 본 명세서에서의 구성부들에 대한 구분은 각 구성부가 담당하는 주기능 별로 구분한 것에 불과함을 명확히 하고자 한다. 즉, 이하에서 설명할 2개 이상의 구성부가 하나의 구성부로 합쳐지거나 또는 하나의 구성부가 보다 세분화된 기능별로 2개 이상으로 분화되어 구비될 수도 있다. 그리고 이하에서 설명할 구성부 각각은 자신이 담당하는 주기능 이외에도 다른 구성부가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성부 각각이 담당하는 주기능 중 일부 기능이 다른 구성부에 의해 전담되어 수행될 수도 있음은 물론이다.
도 1은 본 발명의 일 실시 예에 따른 서버 가상화 환경을 나타낼 수 있다.
도 1을 참조하면, 서버 가상화 환경은 사용자 단말(100), 가상 머신 연결 관리 서버(200), 가상화 서버(300), 및 공유 스토리지(shared storage, 400)를 포함할 수 있다.
실시 예에 따라, 서버 가상화 환경은 VDI(Virtual Desktop Infrastructure)일 수 있다.
사용자 단말(100)은 가상화 서버(300)에 구현되어 있는 복수의 가상 머신들(Virtual Machines(VMs), VM1~VMm)에 연결되어, 복수의 가상 머신들(VM1~VMm) 각각에서 제공하는 다양한 소프트웨어들을 사용할 수 있다.
실시 예에 따라, 사용자 단말(100)은 가상화 서버(300)에 연결을 위한 단일의 클라이언트 또는 복수의 클라이언트들을 사용할 수 있다.
가상 머신 연결 관리 서버(200)는 사용자 단말(100)과 복수의 가상 머신들(VM1~VMm)의 연결을 관리할 수 있다.
가상 머신 연결 관리 서버(200)의 세부적인 구조 및 동작에 대해서는 도 2 내지 도 5를 참조하여 후술하도록 한다.
가상화 서버(300) 내에는 복수의 가상 머신들(VM1~VMm)이 구현될 수 있다. 복수의 가상 머신들(VM1~VMm)은 가상화 구동부(310)를 사용하여 하나의 물리적 서버를 여러 개의 가상 서버로 분할하여 생성된 소프트웨어 머신(software machine)을 의미할 수 있다.
실시 예에 따라, 복수의 가상 머신들(VM1~VMm) 각각은 다양한 용도로 사용 가능하며, VDI 환경에서 복수의 가상 머신들(VM1~VMm) 각각은 가상 데스크톱 실행을 위한 소프트웨어를 의미할 수 있다.
실시 예에 따라, 복수의 가상 머신들(VM1~VMm) 각각에는 서로 다른 운영 체제(OS1~OSm), 예컨대, 리눅스, 윈도우 데스크톱/서버, FreeBSD, DOS, 노벨 서버, 맥 OSX 등이 설치될 수 있다. 이 경우, 사용자 단말(100)은 서로 다른 가상 머신들(VM1~VMm)에 접속함으로써 서로 다른 운영 체제 기반의 소프트웨어들을 사용할 수 있다.
가상화 구동부(310)는 복수의 가상 머신들(VM1~VMm)을 운영할 수 있다. 실시 예에 따라, 가상화 구동부(310)는 하이퍼바이저(hypervisor)일 수 있다.
공유 스토리지(400)는 가상화 서버(300)에서 복수의 가상 머신들(VM1~VMm)에 의해 처리되는 자료들을 저장할 수 있다.
도 2는 도 1에 도시된 가상 머신 연결 관리 서버를 나타낼 수 있다.
도 1과 도 2를 참조하면, 가상 머신 연결 관리 서버(200)는 요청 수신부(210), 연결 정보 생성부(220), 연결 변경부(230), 가상 머신 커넥터부(240), 패킷 생성부(250), 및 가상화 서버 인터페이스부(260)를 포함할 수 있다.
요청 수신부(210)는 사용자 단말(100)로부터 가상 머신(VM1~VMm)으로의 접속 요청 또는, 기존에 연결되어 있던 가상 머신에서 다른 가상 머신으로 연결 변경을 위한 연결 변경 요청을 수신하여 처리할 수 있다.
실시 예에 따라, 연결 변경은 연결하고자 하는 가상 머신의 추가를 포함할 수 있다.
실시 예에 따라, 요청 수신부(210)는 처리된 연결 변경 요청에 따른 명령을 생성하여, 생성된 명령을 연결 변경부(230)로 전송할 수 있다.
연결정보 생성부(220)는 가상화 서버(300)로부터 가상화 서버 인터페이스부(260)를 통하여 수신된 서버 정보에 기초하여, 사용자 단말(100)이 가상 머신(VM1~VMm)에 연결하기 위한 연결 정보를 생성할 수 있다.
실시 예에 따라, 연결 정보는 인증 토큰, 가상화 서버(300)의 주소 등의 정보가 포함될 수 있다.
연결 변경부(230)는 요청 수신부(210)로부터 전달된 명령에 따라 가상 머신 커넥터부(240)에 포함된 복수의 가상 머신 커넥터들 중에서 연결 변경 요청에 상응하는 가상 머신 커넥터를 선택할 수 있다.
연결 변경부(230)는 연결 변경 요청에 상응하는 가상 머신 커넥터를 통하여 사용자 단말(100)과 연결된 가상 머신(VM1~VMm)이 전환되도록 연결을 제어할 수 있다.
가상 머신 커넥터부(240)는 복수의 가상 머신 커넥터들을 포함할 수 있다.
복수의 가상 머신 커넥터들 각각은 사용자 단말(100)이 연결되어 있지 않은 가상 머신들 각각에 대한 연결 상태를 유지할 수 있다.
실시 예에 따라, 복수의 가상 머신 커넥터들 각각은 상응하는 가상 머신과의 연결 유지를 위하여 패킷을 생성하고, 생성된 패킷이 가상화 서버(300)로 전달될 수 있도록 패킷 생성부(250) 측으로 명령을 전송할 수 있다.
실시 예에 따라, 상기 패킷은 가상화 서버(300)로 전송되어 가상 머신 커넥터와 상응하는 가상 머신 간의 세션 연결 상태를 유지할 수 있다.
실시 예에 따라, 상기 패킷은 세션 연결 상태를 유지하기 위한 헬스 체크 패킷(health check packet) 또는 경량화 패킷 등일 수 있다.
실시 예에 따라, 연결 변경 요청에 상응하여 연결 변경부(230)에 의해 선택된 가상 머신 커넥터는 연결 변경 요청에 상응하는 새로운 가상 머신과 사용자 단말의 연결을 위한 명령을 패킷 생성부(250)로 전달할 수 있다. 이 경우, 패킷 생성부(250)에 의해 생성되는 패킷은 사용자 단말(100)의 새로운 가상 머신에 대한 연결 정보를 포함할 수 있다.
패킷 생성부(250)는 사용자 단말(100)의 연결 요청에 따라 연결 요청에 상응하는 가상 머신으로의 연결을 위한 연결 정보를 포함하는 패킷을 생성할 수있다.
패킷 생성부(250)는 복수의 가상 머신 커넥터들 각각이 사용자 단말(100)이 연결되어 있지 않은 가상 머신들 각각에 대한 연결 상태를 유지하기 위하여 사용되는 패킷을 생성할 수 있다.
패킷 생성부(250)는 가상 머신 커넥터부(240)에 포함된 복수의 가상 머신 커넥터들로부터 전달된 명령에 따라, 연결 정보를 포함하는 패킷을 생성할 수 있다.
가상화 서버 인터페이스부(260)는 가상 머신 연결 관리 서버(200)와 가상화 서버(300) 간의 데이터 또는 패킷의 송수신을 인터페이싱할 수 있다.
실시 예에 따라, 가상화 서버 인터페이스부(260)는 가상화 서버(300)로부터 전송된 가상화 서버(300)로의 연결에 필요한 정보를 수신하여, 연결정보 생성부(220) 측으로 전달할 수 있다.
도 3은 사용자 단말이 가상 머신에 연결되는 과정을 나타낸 데이터 플로우이다. 도 4는 사용자 단말이 기존에 연결된 가상 머신에서 새로운 가상 머신으로 연결 변경되는 과정을 나타낸 데이터 플로우이다. 도 5는 도 3과 도 4의 데이터 플로우에서 주요 과정을 도식화한 도면이다.
도 1 내지 도 3을 참조하면, 사용자 단말(100)은 가상 머신 연결 관리 서버(200) 측으로 연결 요청 메시지를 전송할 수 있다(S310).
상기 연결 요청 메시지는 사용자 단말(100)이 최초에 가상화 서버(300)에 포함된 복수의 가상 머신들(VM1~VMm) 중에서 어느 하나에 연결하기 위한 요청일 수 있다.
가상 머신 연결 관리 서버(200)는 사용자 단말(100)로부터 전송된 연결 요청 메시지에 상응하여, 가상화 서버(300) 측으로 가상화 서버(300)의 접속에 필요한 서버 정보를 요청할 수 있다(S312).
가상화 서버(300)는 S312 단계의 요청에 따라, 가상 머신 연결 관리 서버(200) 측으로 서버 정보를 전송할 수 있다(S314).
실시 예에 따라, 가상화 서버(300)는 가상 머신 연결 관리 서버(200) 측의 최초의 서버 정보 요청 시에, 가상화 서버(300)에 구현된 복수의 가상 머신들(VM1~VMm)에 대한 정보를 모두 전송할 수 있다.
가상 머신 연결 관리 서버(200)는 수신된 서버 정보에 기초하여, 연결 정보를 생성하고(S316), 생성된 연결 정보를 포함한 패킷을 생성할 수 있다(S318).
실시 예에 따라, 연결 정보는 인증 토큰, 가상화 서버(300)의 주소 등의 정보가 포함될 수 있다.
가상 머신 연결 관리 서버(200)는 S318 단계에서 생성된 패킷을 가상화 서버(300) 측으로 전송하여, 가상화 서버(300) 측으로 사용자 단말(100)의 연결 정보를 전달할 수 있다(S320).
가상 머신 연결 관리 서버(200)는 S316 단계에서 생성된 연결 정보를 포함한 연결 응답 메시지(S322)를 사용자 단말(100) 측으로 전송할 수 있다(S322).
S310 단계 내지 S322 단계를 통하여, 사용자 단말(100)은 연결 요청 메시지에 상응하는 가상화 서버(300) 내의 가상 머신(예컨대, 제1가상 머신(VM1))에 연결될 수 있다(S324).
실시 예에 따라, 사용자 단말(100)과 가상화 서버(300)는, 요청 데이터, 처리 데이터 등을 서로 패킷 형태로 주고 받을 수 있다.
가상 머신 연결 관리 서버(200)의 가상 머신 커넥터부(240)에 포함된 복수의 가상 머신 커넥터들 각각은 패킷을 생성하여(S326), 사용자 단말(100)이 연결되어 있지 않은 가상 머신들(예컨대, 제2가상 머신(VM2) 내지 제m가상 머신(VMm)) 측으로 전송함으로써, 세션 연결 상태를 유지할 수 있다.
실시 예에 따라, 포함된 복수의 가상 머신 커넥터들 각각은 세션 연결 상태를 유지하기 위한 패킷을 생성할 때, S314 단계에서 수신된 서버 정보를 사용할 수 있다.
도 4를 함께 참조하면, 사용자 단말(100)은 가상 머신(예컨대, 제1가상 머신(VM1))과 연결되어 있는 상태에서, 새로운 가상 머신(예컨대, 제2가상 머신(VM2))과 연결 변경을 위한 연결 변경 요청 메시지를 가상 머신 연결 관리 서버(200) 측으로 전송할 수 있다(S410).
가상 머신 연결 관리 서버(200)는 사용자 단말(100)의 복수의 가상 머신 커넥터들 중에서 연결 변경 요청에 상응하는 가상 머신 커넥터를 선택하고(S412), 선택한 가상 머신 커넥터에 연결 변경 요청을 위한 명령을 생성할 수 있다(S414).
S412 단계에서 선택된 가상 머신 커넥터는 연결 변경 요청에 상응하는 새로운 가상 머신과 사용자 단말(100)을 연결하기 위한 명령을 생성하여(S414) 패킷 생성부(250)로 전송하고, 패킷 생성부(250)는 수신된 명령에 따라 패킷을 생성할 수 있다(S416).
실시 예에 따라, S416 단계에서 패킷 생성부(250)에 의해 생성된 패킷에는 연결 변경 요청에 상응하는 새로운 가상 머신과 사용자 단말(100)을 연결하기 위한 연결 정보가 포함될 수 있다.
S416 단계에서 생성된 패킷은 가상화 서버(300) 측으로 전송될 수 있다(S418).
가상 머신 연결 관리 서버(200)는 상기 연결 정보를 포함한 연결 응답 메시지를 사용자 단말(100) 측으로 전송할 수 있다(S420).
S410 단계 내지 S420 단계를 통하여, 사용자 단말(100)은 연결 변경 요청 메시지에 상응하는 가상화 서버(300) 내의 새로운 가상 머신(예컨대, 제2가상 머신(VM2))에 연결될 수 있다(S422).
도 5를 함께 참조하면, 사용자 단말(100)은 가상화 서버(300)의 제1가상 머신(VM1)에 연결된 상태(S324)에서, 가상 머신 커넥터들은 사용자 단말(100)이 연결 되어 있지 않은 가상 머신들(VM2~VMm)에 연결 상태를 유지할 수 있다(S328).
실시 예에 따라, 가상 머신들(VM2~VMm)에 의해 유지되는 연결 상태는 실제 데이터 패킷이 송수신되는 연결 상태가 아니라, 세션 연결 상태일 수 있다.
이 때, 사용자 단말(100)은 현재 연결된 가상 머신(VM1) 이외의 다른 가상 머신(VM2)을 사용하고자 하는 경우, 연결 변경 요청을 가상 머신 연결 관리 서버 측으로 전송할 수 있다(S410).
연결 변경 요청에 따라, 연결 변경부(230)는 연결 상태를 유지하고 있던 가상 머신 커넥터들 중에서, 연결 변경 요청에 상응하는 가상 머신(VM2)과의 연결 상태를 유지하던 가상 머신 커넥터(가상 머신 커넥터 2)를 선택하고(S412), 선택된 가상 머신 커넥터(가상 머신 커넥터 2)로 명령을 전송할 수 있다(S414).
연결 변경부(230)는 선택된 가상 머신 커넥터(가상 머신 커넥터 2)를 이용하여 사용자 단말(100)과 새로운 가상 머신(VM2)을 연결할 수 있다(S422).
본 발명의 실시 예에 따른 가상 머신 연결 관리 서버의 동작 방법은 프로그램 코드로 구현되어 메모리에 저장될 수 있으며, 메모리는 프로세서와 결합되어 본 발명의 실시 예에 따른 가상 머신 연결 관리 서버의 동작 방법을 수행 시킬 수 있다.
이상, 본 발명을 바람직한 실시 예를 들어 상세하게 설명하였으나, 본 발명은 상기 실시 예에 한정되지 않고, 본 발명의 기술적 사상 및 범위 내에서 당 분야에서 통상의 지식을 가진 자에 의하여 여러가지 변형 및 변경이 가능하다.
100 : 사용자 단말
200 : 가상 머신 연결 관리 서버
300 : 가상화 서버
400 : 공유 스토리지

Claims (10)

  1. 가상화 서버에 구현된 복수의 가상 머신들 중에서 적어도 하나의 가상 머신에 연결되어 있던 사용자 단말로부터 전송된 연결 변경 요청을 수신하는 요청 수신부;
    각각이, 상기 복수의 가상 머신들 중에서 상기 사용자 단말이 연결되어 있지 않은 가상 머신들 각각에 대한 연결 상태를 유지하는 복수의 가상 머신 커넥터들을 포함하는 가상 머신 커넥터부; 및
    상기 복수의 가상 머신 커넥터들 중에서 상기 연결 변경 요청에 상응하는 가상 머신 커넥터를 선택하여, 상기 사용자 단말과 연결되어 있지 않지만 세션 연결 상태는 유지되어 있던 새로운 가상 머신과 상기 사용자 단말을 연결시키는 연결 변경부를 포함하되,
    상기 가상 머신 커넥터들 각각은,
    상기 가상 머신 커넥터들 각각에 상응하는 가상 머신과의 연결 상태를 유지하기 위한 제1패킷을 생성하고, 생성된 제1패킷을 상기 가상화 서버로 전송하여 세션 연결 상태를 유지시키는, 가상 머신 연결 관리 서버.
  2. 제1항에 있어서,
    상기 복수의 가상 머신들 각각에는,
    서로 다른 운영 체제가 설치되는, 가상 머신 연결 관리 서버.
  3. 삭제
  4. 삭제
  5. 제1항에 있어서,
    상기 제1패킷은,
    상기 세션 연결 상태를 유지하기 위한 헬스 체크 패킷(health check packet)인, 가상 머신 연결 관리 서버.
  6. 제5항에 있어서,
    상기 연결 변경부는,
    상기 새로운 가상 머신과 상기 사용자 단말의 연결을 위한 명령을 상기 선택된 가상 머신 커넥터로 전달하는, 가상 머신 연결 관리 서버.
  7. 제6항에 있어서,
    상기 선택된 가상 머신 커넥터는,
    상기 새로운 가상 머신과 상기 사용자 단말의 연결을 위한 제2패킷을 생성하기 위한 명령을 생성하는, 가상 머신 연결 관리 서버.
  8. 제7항에 있어서,
    상기 제2패킷은,
    상기 새로운 가상 머신과 상기 사용자 단말의 연결을 위한 연결 정보를 포함하는, 가상 머신 연결 관리 서버.
  9. 가상화 서버에 구현된 복수의 가상 머신들 중에서 적어도 하나의 가상 머신에 연결되어 있던 사용자 단말로부터 전송된 연결 변경 요청을 수신하는 단계;
    복수의 가상 머신 커넥터들 각각이, 상기 복수의 가상 머신들 중에서 상기 사용자 단말이 연결되어 있지 않은 가상 머신들 각각에 대한 연결 상태를 유지하는 단계; 및
    상기 복수의 가상 머신 커넥터들 중에서 상기 연결 변경 요청에 상응하는 가상 머신 커넥터를 선택하여, 상기 사용자 단말과 연결되어 있지 않지만 세션 연결 상태는 유지되어 있던 새로운 가상 머신과 상기 사용자 단말을 연결시키는 단계를 포함하며,
    상기 가상 머신 커넥터들 각각은,
    상기 가상 머신 커넥터들 각각에 상응하는 가상 머신과의 연결 상태를 유지하기 위한 제1패킷을 생성하고, 생성된 제1패킷을 상기 가상화 서버로 전송하여 세션 연결 상태를 유지시키는, 가상 머신 연결 관리 서버의 동작 방법.
  10. 프로세서(processor)와 결합되어 가상 머신 연결 관리 서버의 동작 방법을 수행하기 위한 매체에 저장된 프로그램으로서,
    가상화 서버에 구현된 복수의 가상 머신들 중에서 적어도 하나의 가상 머신에 연결되어 있던 사용자 단말로부터 전송된 연결 변경 요청을 수신하는 단계;
    복수의 가상 머신 커넥터들 각각이, 상기 복수의 가상 머신들 중에서 상기 사용자 단말이 연결되어 있지 않은 가상 머신들 각각에 대한 연결 상태를 유지하는 단계; 및
    상기 복수의 가상 머신 커넥터들 중에서 상기 연결 변경 요청에 상응하는 가상 머신 커넥터를 선택하여, 상기 사용자 단말과 연결되어 있지 않지만 세션 연결 상태는 유지되어 있던 새로운 가상 머신과 상기 사용자 단말을 연결시키는 단계를 수행하며,
    상기 가상 머신 커넥터들 각각은,
    상기 가상 머신 커넥터들 각각에 상응하는 가상 머신과의 연결 상태를 유지하기 위한 제1패킷을 생성하고, 생성된 제1패킷을 상기 가상화 서버로 전송하여 세션 연결 상태를 유지시키는, 프로그램.
KR1020200168628A 2020-12-04 2020-12-04 가상 머신 연결 관리 서버, 이의 동작 방법, 및 프로그램 KR102491986B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200168628A KR102491986B1 (ko) 2020-12-04 2020-12-04 가상 머신 연결 관리 서버, 이의 동작 방법, 및 프로그램

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200168628A KR102491986B1 (ko) 2020-12-04 2020-12-04 가상 머신 연결 관리 서버, 이의 동작 방법, 및 프로그램

Publications (2)

Publication Number Publication Date
KR20220079156A KR20220079156A (ko) 2022-06-13
KR102491986B1 true KR102491986B1 (ko) 2023-01-26

Family

ID=81984448

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200168628A KR102491986B1 (ko) 2020-12-04 2020-12-04 가상 머신 연결 관리 서버, 이의 동작 방법, 및 프로그램

Country Status (1)

Country Link
KR (1) KR102491986B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102595771B1 (ko) * 2023-01-25 2023-10-31 디에스이테크 주식회사 Pxe 기반의 반도체생산설비 제어 장치 및 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011186783A (ja) * 2010-03-09 2011-09-22 Fujitsu Ltd スナップショット管理方法、スナップショット管理装置、及びプログラム
JP2015015763A (ja) * 2010-09-09 2015-01-22 日本電気株式会社 ネットワークシステム、及びネットワーク管理方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101401378B1 (ko) * 2010-10-26 2014-05-30 한국전자통신연구원 가상 머신의 라이브 마이그레이션에서 가상 연결성 유지를 위한 호스트 시스템, 원격 장치 서버 및 이를 이용한 연결성 유지 방법
KR20130047070A (ko) * 2011-10-31 2013-05-08 삼성에스디에스 주식회사 커넥터 어플리케이션의 자동화 배포를 위한 멀티 테넌트 SaaS 플랫폼 및 그를 위한 방법, 그리고, 가상머신을 이용하는 테넌트와 서비스 공급업체
KR102375064B1 (ko) * 2018-05-18 2022-03-17 주식회사 케이티 가상 머신과의 연결을 관리하는 서버 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011186783A (ja) * 2010-03-09 2011-09-22 Fujitsu Ltd スナップショット管理方法、スナップショット管理装置、及びプログラム
JP2015015763A (ja) * 2010-09-09 2015-01-22 日本電気株式会社 ネットワークシステム、及びネットワーク管理方法

Also Published As

Publication number Publication date
KR20220079156A (ko) 2022-06-13

Similar Documents

Publication Publication Date Title
US10915983B2 (en) System for distributed virtualization of GPUs in desktop cloud
US10698717B2 (en) Accelerator virtualization method and apparatus, and centralized resource manager
US9665921B2 (en) Adaptive OpenGL 3D graphics in virtual desktop infrastructure
US20190196858A1 (en) Delivering a single end user experience to a client from multiple servers
US8150971B2 (en) Mechanism for migration of client-side virtual machine system resources
US9817695B2 (en) Method and system for migrating processes between virtual machines
US9063793B2 (en) Virtual server and virtual machine management method for supporting zero client by providing host interfaces from classified resource pools through emulation or direct connection modes
US6915347B2 (en) Associating multiple display units in a grouped server environment
US20130283193A1 (en) Multiple user computing method and system for same
US20100107155A1 (en) Provisioning a suitable operating system environment
US11928493B2 (en) Sharing of FPGA board by multiple virtual machines
CN103888485A (zh) 云计算资源的分配方法、装置及系统
US9104452B2 (en) Hybrid remote sessions
CN102323888B (zh) 一种无盘计算机启动加速方法
WO2018076882A1 (zh) 存储设备的操作方法及物理服务器
CN112102457A (zh) 3d渲染方法及系统
KR102491986B1 (ko) 가상 머신 연결 관리 서버, 이의 동작 방법, 및 프로그램
US20150145876A1 (en) Graphics Data Processing Method, Apparatus, and System
KR101239290B1 (ko) 제로 클라이언트를 지원하는 가상화 서버의 가상 머신 설정을 위한 시스템 및 방법
CN113765712B (zh) 服务器管理方法、装置、电子设备及可读存储介质
CN103092676A (zh) 虚拟机集群的模拟输入输出方法、装置及系统
CN112596852B (zh) 一种图形显示方法、装置、系统、电子设备及存储介质
JP2011076437A (ja) デバイス共有システム、デバイス共有サーバ、デバイス共有クライアント、およびデバイス共有方法
JP6285579B2 (ja) ロングポーリング処理方法およびシステム、並びに記録媒体
KR101430729B1 (ko) 소프트웨어 지원 서버 및 그 방법

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant