KR102491986B1 - 가상 머신 연결 관리 서버, 이의 동작 방법, 및 프로그램 - Google Patents
가상 머신 연결 관리 서버, 이의 동작 방법, 및 프로그램 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45545—Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network 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
본 발명은 가상 머신 연결 관리 서버, 이의 동작 방법, 및 프로그램에 관한 것으로, 보다 상세하게는 가상 머신 커넥터들을 통하여 사용자 단말이 연결되어 있지 않은 가상 머신들에 대한 연결 상태를 유지하다가, 연결 변경 요청에 상응하는 가상 머신 커넥터를 선택하여 새로운 가상 머신과 사용자 단말을 연결시킬 수 있는 가상 머신 연결 관리 서버, 이의 동작 방법, 및 프로그램에 관한 것이다.
서버 가상화 환경에서 사용자 단말이 특정 클라이언트를 통하여 가상 머신에 접속한 경우, 다른 가상 머신을 사용하기 위해서는 접속 상태의 변경이 요구된다.
이 때, 사용자 단말은 접속 상태의 변경을 위하여 기존에 연결된 가상 머신과의 접속을 완전히 해제하고 다른 가상 머신으로 접속하거나, 사용 중이었던 클라이언트가 아닌 다른 클라이언트를 실행해야하는 등의 비효율적인 과정을 거쳐야 했다.
본 발명이 이루고자 하는 기술적 과제는 가상 머신 커넥터들을 통하여 사용자 단말이 연결되어 있지 않은 가상 머신들에 대한 연결 상태를 유지하다가, 연결 변경 요청에 상응하는 가상 머신 커넥터를 선택하여 새로운 가상 머신과 사용자 단말을 연결시킬 수 있는 가상 머신 연결 관리 서버, 이의 동작 방법, 및 프로그램을 제공하는 것이다.
본 발명의 실시 예에 따른 가상 머신 연결 관리 서버는 가상화 서버에 구현된 복수의 가상 머신들 중에서 적어도 하나의 가상 머신에 연결되어 있던 사용자 단말로부터 전송된 연결 변경 요청을 수신하는 요청 수신부, 각각이, 상기 복수의 가상 머신들 중에서 상기 사용자 단말이 연결되어 있지 않은 가상 머신들에 대한 연결 상태를 유지하는 복수의 가상 머신 커넥터들을 포함하는 가상 머신 커넥터부 및 상기 복수의 가상 머신 커넥터들 중에서 상기 연결 변경 요청에 상응하는 가상 머신 커넥터를 선택하여, 상기 사용자 단말과 연결되어 있지 않던 새로운 가상 머신과 상기 사용자 단말의 연결을 제어하는 연결 변경부를 포함할 수 있다.
실시 예에 따라, 상기 복수의 가상 머신들 각각에는, 서로 다른 운영 체제가 설치될 수 있다.
실시 예에 따라, 상기 가상 머신 커넥터부의 상기 가상 머신 커넥터들 각각은, 상기 가상 머신 커넥터들 각각에 상응하는 가상 머신과의 연결 상태를 유지하기 위한 제1패킷 생성을 위한 명령을 생성할 수 있다.
실시 예에 따라, 상기 명령에 따라 생성된 제1패킷은, 상기 가상화 서버로 전송되어 세션 연결 상태를 유지할 수 있다.
실시 예에 따라, 상기 제1패킷은, 상기 세션 연결 상태를 유지하기 위한 헬스 체크 패킷(health check packet)일 수 있다.
실시 예에 따라, 상기 연결 변경부는, 상기 새로운 가상 머신과 상기 사용자 단말의 연결을 위한 명령을 상기 선택된 가상 머신 커넥터로 전달할 수 있다.
실시 예에 따라, 상기 선택된 가상 머신 커넥터는, 상기 새로운 가상 머신과 상기 사용자 단말의 연결을 위한 제2패킷을 생성하기 위한 명령을 생성할 수 있다.
실시 예에 따라, 상기 제2패킷은, 상기 새로운 가상 머신과 상기 사용자 단말의 연결을 위한 연결 정보를 포함할 수 있다.
본 발명의 실시 예에 따른 가상 머신 연결 관리 서버의 동작 방법은 가상화 서버에 구현된 복수의 가상 머신들 중에서 적어도 하나의 가상 머신에 연결되어 있던 사용자 단말로부터 전송된 연결 변경 요청을 수신하는 단계, 복수의 가상 머신 커넥터들 각각이, 상기 복수의 가상 머신들 중에서 상기 사용자 단말이 연결되어 있지 않은 가상 머신들에 대한 연결 상태를 유지하는 단계 및 상기 복수의 가상 머신 커넥터들 중에서 상기 연결 변경 요청에 상응하는 가상 머신 커넥터를 선택하여, 상기 사용자 단말과 연결되어 있지 않던 새로운 가상 머신과 상기 사용자 단말의 연결을 제어하는 단계를 포함할 수 있다.
본 발명의 실시 예에 따른 프로세서(processor)와 결합되어 가상 머신 연결 관리 서버의 동작 방법을 수행하기 위한 매체에 저장된 프로그램은 가상화 서버에 구현된 복수의 가상 머신들 중에서 적어도 하나의 가상 머신에 연결되어 있던 사용자 단말로부터 전송된 연결 변경 요청을 수신하는 단계, 복수의 가상 머신 커넥터들 각각이, 상기 복수의 가상 머신들 중에서 상기 사용자 단말이 연결되어 있지 않은 가상 머신들에 대한 연결 상태를 유지하는 단계 및 상기 복수의 가상 머신 커넥터들 중에서 상기 연결 변경 요청에 상응하는 가상 머신 커넥터를 선택하여, 상기 사용자 단말과 연결되어 있지 않던 새로운 가상 머신과 상기 사용자 단말의 연결을 제어하는 단계를 수행할 수 있다.
본 발명의 실시 예에 따른 방법과 장치들은 가상 머신 커넥터들을 통하여 사용자 단말이 연결되어 있지 않은 가상 머신들에 대한 연결 상태를 유지하다가, 연결 변경 요청에 상응하는 가상 머신 커넥터를 선택하여 새로운 가상 머신과 사용자 단말을 연결시킴으로써, 사용자 단말의 연결 상태를 유지하면서 가상 머신의 사용 전환을 원활히 할 수 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 일 실시 예에 따른 서버 가상화 환경을 나타낼 수 있다.
도 2는 도 1에 도시된 가상 머신 연결 관리 서버를 나타낼 수 있다.
도 3은 사용자 단말이 가상 머신에 연결되는 과정을 나타낸 데이터 플로우이다.
도 4는 사용자 단말이 기존에 연결된 가상 머신에서 새로운 가상 머신으로 연결 변경되는 과정을 나타낸 데이터 플로우이다.
도 5는 도 3과 도 4의 데이터 플로우에서 주요 과정을 도식화한 도면이다.
도 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 : 공유 스토리지
200 : 가상 머신 연결 관리 서버
300 : 가상화 서버
400 : 공유 스토리지
Claims (10)
- 가상화 서버에 구현된 복수의 가상 머신들 중에서 적어도 하나의 가상 머신에 연결되어 있던 사용자 단말로부터 전송된 연결 변경 요청을 수신하는 요청 수신부;
각각이, 상기 복수의 가상 머신들 중에서 상기 사용자 단말이 연결되어 있지 않은 가상 머신들 각각에 대한 연결 상태를 유지하는 복수의 가상 머신 커넥터들을 포함하는 가상 머신 커넥터부; 및
상기 복수의 가상 머신 커넥터들 중에서 상기 연결 변경 요청에 상응하는 가상 머신 커넥터를 선택하여, 상기 사용자 단말과 연결되어 있지 않지만 세션 연결 상태는 유지되어 있던 새로운 가상 머신과 상기 사용자 단말을 연결시키는 연결 변경부를 포함하되,
상기 가상 머신 커넥터들 각각은,
상기 가상 머신 커넥터들 각각에 상응하는 가상 머신과의 연결 상태를 유지하기 위한 제1패킷을 생성하고, 생성된 제1패킷을 상기 가상화 서버로 전송하여 세션 연결 상태를 유지시키는, 가상 머신 연결 관리 서버.
- 제1항에 있어서,
상기 복수의 가상 머신들 각각에는,
서로 다른 운영 체제가 설치되는, 가상 머신 연결 관리 서버.
- 삭제
- 삭제
- 제1항에 있어서,
상기 제1패킷은,
상기 세션 연결 상태를 유지하기 위한 헬스 체크 패킷(health check packet)인, 가상 머신 연결 관리 서버.
- 제5항에 있어서,
상기 연결 변경부는,
상기 새로운 가상 머신과 상기 사용자 단말의 연결을 위한 명령을 상기 선택된 가상 머신 커넥터로 전달하는, 가상 머신 연결 관리 서버.
- 제6항에 있어서,
상기 선택된 가상 머신 커넥터는,
상기 새로운 가상 머신과 상기 사용자 단말의 연결을 위한 제2패킷을 생성하기 위한 명령을 생성하는, 가상 머신 연결 관리 서버.
- 제7항에 있어서,
상기 제2패킷은,
상기 새로운 가상 머신과 상기 사용자 단말의 연결을 위한 연결 정보를 포함하는, 가상 머신 연결 관리 서버.
- 가상화 서버에 구현된 복수의 가상 머신들 중에서 적어도 하나의 가상 머신에 연결되어 있던 사용자 단말로부터 전송된 연결 변경 요청을 수신하는 단계;
복수의 가상 머신 커넥터들 각각이, 상기 복수의 가상 머신들 중에서 상기 사용자 단말이 연결되어 있지 않은 가상 머신들 각각에 대한 연결 상태를 유지하는 단계; 및
상기 복수의 가상 머신 커넥터들 중에서 상기 연결 변경 요청에 상응하는 가상 머신 커넥터를 선택하여, 상기 사용자 단말과 연결되어 있지 않지만 세션 연결 상태는 유지되어 있던 새로운 가상 머신과 상기 사용자 단말을 연결시키는 단계를 포함하며,
상기 가상 머신 커넥터들 각각은,
상기 가상 머신 커넥터들 각각에 상응하는 가상 머신과의 연결 상태를 유지하기 위한 제1패킷을 생성하고, 생성된 제1패킷을 상기 가상화 서버로 전송하여 세션 연결 상태를 유지시키는, 가상 머신 연결 관리 서버의 동작 방법.
- 프로세서(processor)와 결합되어 가상 머신 연결 관리 서버의 동작 방법을 수행하기 위한 매체에 저장된 프로그램으로서,
가상화 서버에 구현된 복수의 가상 머신들 중에서 적어도 하나의 가상 머신에 연결되어 있던 사용자 단말로부터 전송된 연결 변경 요청을 수신하는 단계;
복수의 가상 머신 커넥터들 각각이, 상기 복수의 가상 머신들 중에서 상기 사용자 단말이 연결되어 있지 않은 가상 머신들 각각에 대한 연결 상태를 유지하는 단계; 및
상기 복수의 가상 머신 커넥터들 중에서 상기 연결 변경 요청에 상응하는 가상 머신 커넥터를 선택하여, 상기 사용자 단말과 연결되어 있지 않지만 세션 연결 상태는 유지되어 있던 새로운 가상 머신과 상기 사용자 단말을 연결시키는 단계를 수행하며,
상기 가상 머신 커넥터들 각각은,
상기 가상 머신 커넥터들 각각에 상응하는 가상 머신과의 연결 상태를 유지하기 위한 제1패킷을 생성하고, 생성된 제1패킷을 상기 가상화 서버로 전송하여 세션 연결 상태를 유지시키는, 프로그램.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102595771B1 (ko) * | 2023-01-25 | 2023-10-31 | 디에스이테크 주식회사 | Pxe 기반의 반도체생산설비 제어 장치 및 방법 |
Citations (2)
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)
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 | 주식회사 케이티 | 가상 머신과의 연결을 관리하는 서버 및 방법 |
-
2020
- 2020-12-04 KR KR1020200168628A patent/KR102491986B1/ko active IP Right Grant
Patent Citations (2)
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 |