KR20140096784A - 마이크로서버 환경의 소프트웨어 이주 방법 및 이를 지원하는 장치 - Google Patents

마이크로서버 환경의 소프트웨어 이주 방법 및 이를 지원하는 장치 Download PDF

Info

Publication number
KR20140096784A
KR20140096784A KR1020130009797A KR20130009797A KR20140096784A KR 20140096784 A KR20140096784 A KR 20140096784A KR 1020130009797 A KR1020130009797 A KR 1020130009797A KR 20130009797 A KR20130009797 A KR 20130009797A KR 20140096784 A KR20140096784 A KR 20140096784A
Authority
KR
South Korea
Prior art keywords
memory
destination node
source node
software
node
Prior art date
Application number
KR1020130009797A
Other languages
English (en)
Other versions
KR102083289B1 (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 KR1020130009797A priority Critical patent/KR102083289B1/ko
Priority to AU2013204062A priority patent/AU2013204062B2/en
Priority to PCT/KR2014/000519 priority patent/WO2014119864A1/en
Priority to US14/157,948 priority patent/US9596136B2/en
Publication of KR20140096784A publication Critical patent/KR20140096784A/ko
Application granted granted Critical
Publication of KR102083289B1 publication Critical patent/KR102083289B1/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/082Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
    • 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
    • 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/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • 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/22Microcontrol or microprogram arrangements
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0894Packet rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Retry When Errors Occur (AREA)
  • Hardware Redundancy (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)
  • Data Mining & Analysis (AREA)

Abstract

본 발명은 마이크로서버를 구성하는 소스 노드와 목적지 노드 간의 통신환경을 모니터링하는 환경 모니터부 및 상기 환경 모니터부로부터 획득한 통신환경정보를 분석하고, 상기 분석결과에 따라 상기 소스 노드에서 실행중인 소프트웨어를 상기 목적지 노드로 이주시키기 위한 이주 방법을 결정하는 이주 정책 관리부를 포함하는 것을 특징으로 한다.

Description

마이크로서버 환경의 소프트웨어 이주 방법 및 이를 지원하는 장치{Method for migrating software of micro server based and device supporting the same}
본 발명은 마이크로서버 환경의 소프트웨어 이주에 관한 것으로, 특히 소스 노드에서 실행중인 소프트웨어를 마이크로서버의 통신환경을 고려하여 선택한 최적의 이주 방법을 통해 목적지 노드로 이주할 수 있는, 마이크로 서버 환경의 소프트웨어 이주 방법 및 이를 지원하는 장치에 관한 것이다.
일반적으로 하나의 장치(device)에서 다른 장치로의 소프트웨어의 이동은 현재까지 주로 x86 서버 환경에서 에너지 절약을 목적으로 이루어져 왔다.
소프트웨어의 이주란, 예컨대 물리적 호스트 상의 VMWare, XEN 등의 가상화 환경에서 동작하던 Linux, Window 등의 OS(Operting System)가 또 다른 물리적 호스트 상의 VMWare, XEN 등의 가상화 환경으로 서비스의 중지없이 이동하는 방법을 말한다.
최근 데이터 센터의 에너지 절감을 목적으로 저전력의 마이크로서버에 대한 관심 및 연구가 활발히 진행되고 있으며, 이러한 달라진 하드웨어 및 서버 환경에서 사용될 수 있는 소프트웨어 이주(migration) 기술이 요구되고 있다.
또한, 서버 환경의 로드 밸런싱(Load balancing), 계획 정비, 내고장성(Fault Tolerance) 등을 보완하기 위한 목적으로 기존의 x86서버 및 이더넷과 같은 네트워크 중심의 이주와는 다른 제약 사항 및 요구사항을 갖는 마이크로 서버 기반의 최적화된 이주 기술이 요구되고 있다.
따라서 본 발명의 목적은 소스 노드에서 실행중인 소프트웨어를 마이크로서버의 환경을 고려하여 선택한 최적의 이주 방법을 통해 최소의 서비스 중단시간을 가지고 목적지 노드로 이주시킴으로써, 신속하고 효율적인 소프트웨어의 이주를 구현하는, 마이크로서버 환경의 소프트웨어 이주 방법 및 이를 지원하는 장치를 제공함에 있다.
상술한 바와 같은 목적을 달성하기 위한 본 발명은 마이크로서버를 구성하는 소스 노드와 목적지 노드 간의 통신환경을 모니터링하는 환경 모니터부 및 상기 환경 모니터부로부터 획득한 통신환경정보를 분석하고, 상기 분석결과에 따라 상기 소스 노드에서 실행중인 소프트웨어를 상기 목적지 노드로 이주시키기 위한 이주 방법을 결정하는 이주 정책 관리부를 포함하는 것을 특징으로 한다.
상술한 바와 같은 목적을 달성하기 위한 본 발명은 마이크로서버를 구성하는 소스 노드와 목적지 노드 간의 통신환경을 분석하는 과정과, 상기 통신환경의 분석결과에 따라, 상기 소스 노드에서 실행중인 소프트웨어를 상기 목적지 노드로 이주시키는 방법을 결정하는 과정을 포함하는 것을 특징으로 한다.
본 발명의 실시 예에 따른 마이크로서버 환경의 소프트웨어 이주 방법 및 이를 지원하는 장치에 따르면, 마이크로서버의 전력 사용을 더욱 줄일 수 있고, 노드들의 관리를 편리하게 할 수 있도록 지원하며, 워크로드(work load)에 따라 노드 간의 로드 분산을 최적으로 수행함으로써, 마이크로서버 자원의 유용성을 극대화할 수 있다.
특히, 본 발명에 따르면, 마이크로서버 기반에서 서비스를 중단하지 않고도 소프트웨어의 이주가 가능하며, 이에 의해 저전력 특성을 향상시킬 수 있다.
또한, 본 발명에 따르면, 마이크로서버를 구성하는 노드 간의 고속의 시스템 버스를 이주 경로로 이용함으로써, 서비스 다운 시간(down time)을 절약할 수 있다.
도 1은 본 발명의 실시예에 따른 마이크로서버 환경을 개략적으로 도시한 블록도.
도 2는 본 발명의 실시예에 따른 마이크로서버의 이주 플랫폼을 개략적으로 도시한 블록도.
도 3은 본 발명의 실시예에 의한 소스 노드 및 목적지 노드가 제1 속도구간인 경우의 이주 실행의 방법을 나타낸 흐름도.
도 4는 도 3에 도시된 소스 노드 및 목적지 노드 간의 데이터의 흐름을 개략적으로 도시한 도면.
도 5는 본 발명의 실시예에 의한 소스 노드 및 목적지 노드가 제2 속도구간인 경우의 이주 실행의 방법을 나타낸 흐름도.
도 6은 도 5에 도시된 소스 노드 및 목적지 노드 간의 데이터의 흐름을 개략적으로 도시한 도면.
도 7은 본 발명의 실시예에 의한 소스 노드 및 목적지 노드가 제3 속도 구간인 경우의 이주 실행의 방법을 나타낸 흐름도.
도 8은 도 7에 도시된 소스 노드 및 목적지 노드 간의 데이터의 흐름을 개략적으로 도시한 도면.
이하, 본 발명에 따른 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 하기의 설명에서는 본 발명의 실시 예에 따른 동작을 이해하는데 필요한 부분만이 설명되며, 그 이외 부분의 설명은 본 발명의 요지를 흩트리지 않도록 생략될 것이라는 것을 유의하여야 한다.
이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시 예와 도면에 도시된 구성은 본 발명의 가장 바람직한 실시 예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다.
이하 본 발명의 기능과 관련된 구성들과 구성들의 역할에 대하여 보다 상세히 설명하기로 한다. 여기서 본 발명의 특징이 상술한 예시들로 한정되는 것은 아니다. 즉 본 발명은 특징은 상술한 예시들뿐만 아니라 이하에서 설명하는 각 구성들의 형태 변경이나, 추가적인 기능들까지도 포함하는 형태로 이해되어야 할 것이다.
도 1은 본 발명의 실시예에 따른 마이크로서버 환경을 개략적으로 도시한 블록도이다.
도 1을 참조하면, 본 발명의 마이크로서버 환경은 서로 다른 하드웨어 장치에 구현된 제1 마이크로서버(100) 및 제2 마이크로서버(200)를 포함하고, 제1 마이크로서버(100) 및 제2 마이크로서버(200)는 네트워크(180) 및 네트워크 스위치(182)를 통해 연결될 수 있다.
제1 마이크로서버(100)는 제1 노드(100) 및 제2 노드(120)를 포함하고, 제1 노드(100) 및 제2 노드(120) 간을 연결하는 적어도 하나의 시스템 버스(130, 150), 입출력(IO) 가상화 하드웨어(140), 적어도 하나의 네트워크 장치(160) 및 적어도 하나의 하드디스크(170)를 포함하여 구성될 수 있다.
여기서 제1 노드(110) 및 제2 노드(120)는 각각 적어도 하나의 프로세서(CPU: Central Processing Unit) 및 메모리(memory)를 기본 구성으로 하는 컴퓨팅 보드라 할 수 있다. 제1 노드 및 제2 노드(110, 120)는 상기 프로세서 및 메모리(111)를 하나 또는 여러 세트로 포함할 수 있다.
하나의 마이크로서버는 적어도 하나의 컴퓨팅 보드를 탑재 가능한 여러 개의 카드 형태로 포함할 수 있고, 상기 컴퓨팅 보드의 구조에 대해 이에 한정하지 않을 수 있다.
그리고 제1 노드(110) 및 제2 노드(120)는 제1 마이크로서버(100) 내에 포함된 네트워크 장치(160)나 하드디스크(170) 등과 같은 자원을 공유할 수 있다.
제1 노드(110)는 프로세서 및 메모리(111), 가상화 계층(virtualization layer, 112)으로 구성될 수 있고, 운영 시스템(OS: Operating System, 114)을 통해 적어도 하나의 소프트웨어(113)를 실행할 수 있다.
특히, 마이크로서버의 컴퓨팅 자원 및 컴퓨팅 보드 간의 통신환경에 따라 전체 이주 시간을 최소로 할 것인지, 서비스의 정지시간을 최소로 할 것인지 등의 정책에 따라 이주 동작 방법을 선택하고, 이에 의한 소프트웨어, 애플리케이션 및 운영 시스템(OS) 중 적어도 하나의 이주를 실행 및 관리하는 이주 플랫폼(118, 도 2)을 포함할 수 있다.
본 발명의 마이크로서버 환경에서는 운영 시스템(애플리케이션을 포함, 114)이 소프트웨어의 주요 타겟이라 할 수 있다. 이하에서는 설명의 편이상 대표로 소프트웨어의 이주 실행에 관해 설명하기로 하나, 언급한 바와 같이 운영 시스템, 애플리케이션, 특정 응용 프로그램 중 적어도 하나를 이주 할 수 있음을 알려둔다.
예컨대, 이주 플랫폼(118)은 제1 노드(110)에서 실행되는 소프트웨어(113)를 다른 노드로 이주시키거나, 다른 노드에서 실행되는 소프트웨어를 제1 노드(110)로 이주하는데 있어서 최적의 이주 방법을 선택하고, 이에 의한 이주 실행을 관리할 수 있다.
제2 노드(120)도 제1 노드(110)와 마찬가지로, 프로세서 및 메모리(121), 가상화 계층(122)으로 구성될 수 있고, 운영 시스템(124)을 통해 적어도 하나의 소프트웨어(123)를 실행할 수 있다. 제2 노드(120)는 마이크로서버의 컴퓨팅 자원 및 컴퓨팅 보드 간의 통신환경에 따라 전체 이주 시간을 최소로 할 것인지, 서비스의 정지시간을 최소로 할 것인지 등의 정책에 따라 이주 동작 방법을 선택하고, 이에 의한 소프트웨어 이주를 실행 및 관리하는 이주 플랫폼(128)을 포함할 수 있다.
한편, 제2 마이크로서버(200)는 제1 마이크로서버(100)와 동일한 구성을 포함하고 있으므로 이의 상세한 설명에 대해서는 생략하기로 한다.
도 2는 본 발명의 실시예에 따른 마이크로서버의 이주 플랫폼을 개략적으로 도시한 블록도이다.
도 2를 참조하면, 본 발명의 실시에에 따른 마이크로 서버의 이주 플랫폼(118)은, 환경 모니터부(115), 이주정책 관리부(116) 및 이주 실행부(117)를 포함하여 구성될 수 있다.
이주 플랫폼(Migration platform, 118)은 마이크로서버 환경에서 서로 다른 노드들 간에 어느 한 쪽의 노드에서 실행중인 소프트웨어를 중단하지 않고도 다른 한 쪽의 노드로 이주시키는 역할을 함으로써, 사용자에게 서비스를 중단하지 않으면서도, 소프트웨어를 이동시킬 수 있다.
이주 플랫폼(118)은 각각의 노드(110, 120, 210, 220)에 개별적으로 포함된 구성이거나, 하나의 마이크로서버(100)를 구성하는 복수의 노드들(110, 120) 외부에 구성되어, 복수의 노드들(110, 120)에 공유되는 구조일 수 있으며, 본 발명의 이주 플랫폼과 노드들의 구성관계에 대해 이에 한정하지 않을 수 있다.
환경 모니터부(environment monitor, 115)는, 마이크로서버의 컴퓨팅 보드 자원 및 컴퓨팅 보드 간의 통신 환경을 모니터링하는 컴포넌트라 할 수 있다. 즉, 환경 모니터부는 노드(110, 120, 210, 220) 간의 통신환경을 모니터링 할 수 있다. 환경 모니터부(115)는 소스 노드(source node) 및 목적지 노드(destination node) 간의 연결방법 및 통신수단을 파악하고, 상기 소스 노드 및 목적지 노드 간의 통신 속도를 분석할 수 있다.
이주정책 관리부(116)는, 환경 모니터부(115)로부터 획득된 통신환경 정보를 기반으로 이주가 실행될 노드 간의 통신경로, 통신속도와 노드들의 자원 현황을 파악하고, 이를 기반으로 소프트웨어 이주 방법을 결정하여 이주 실행부(117)가 소프트웨어 이주를 수행하도록 한다.
즉, 이주정책 관리부(116)는 통신환경정보를 기반으로 소프트웨어 이주 수행에 있어서 전체 이주 시간을 최소화할 것인지, 서비스의 정지시간을 최소로 할 것인지 등의 정책에 따라 이주 동작 방법을 선택 및 적용하는 구성이라 할 수 있다.
구체적으로, 이주정책 관리부(116)는, 소스 노드의 전체 메모리 및 프로세서 상태정보 중 적어도 하나를 포함하는 스냅 샷(snap shot)의 전송, 상기 목적지 노드에 이주될 소프트웨어의 동작 개시(resume)를 가능하게 하는 상기 소스 노드의 최소 메모리 및 프로세서 상태정보의 전송, 상기 목적지 노드에 이주된 상기 소프트웨어의 동작 개시 실행, 상기 목적지 노드의 페이지 폴트(page fault)시 요청된 메모리의 전송, 상기 스냅 샷이 전송되는 동안 상기 소스 노드에서 변경된 메모리의 전송 및 상기 소스 노드에서 실행중인 소프트웨어의 동작 정지(suspend) 실행 중 적어도 하나의 실행을 상기 소스 노드 및 목적지 노드 간의 통신 환경을 고려하여 실행하는 순서를 결정할 수 있다.
본 발명의 실시예에서는 이주정책 관리부(116)가 마이크로서버의 통신 환경을 소스 노드 및 목적지 노드 간의 통신 환경에 따라 세 가지 상태로 분류한 예를 개시하기로 한다.
예컨대, 세 가지 상태는 동일한 마이크로서버(100)를 구성하는 제1 노드(110)와 제2 노드(120) 간을 연결하는 시스템 버스(130)의 속도가 프로세서와 메모리 간의 속도에 비준할 만큼 빠른 속도 상태인 제1 속도 구간, 제1 노드(110)와 제2 노드(120) 간을 연결하는 시스템 버스(130)의 속도가 제1 속도 구간보다는 느리고, 네트워크(180) 속도보다는 빠른 제2 속도 구간, 및 서로 다른 마이크로서버(100, 200)에 각각 포함된 제1 노드(110)와 제3 노드(210)가 네트워크로 연결된 제3 구간으로 분류될 수 있다.
상기 제2 속도 구간은 예컨대, PCIe와 같은 시스템 버스를 통신 경로로 이용하는 구간이라 할 수 있고, 상기 제3 구간은 제1 및 제2 속도구간 보다 통신 속도가 느린 구간으로서, 이더넷(ether net)과 같은 통신 경로를 이용하는 구간일 수 있다.
이주 실행부(117)는, 이주정책 관리부(116)에 의해 결정된 실행순서로 소스 노드에서 실행되던 소프트웨어를 상기 목적지 노드로 이주 실행시키고, 상기 이주 실행의 전반적인 실행을 관리하는 역할을 할 수 있다.
즉, 이주 실행부(117)는 이주정책 관리부(116)에 의해 분류된 제1 속도 구간, 제2 속도 구간 및 제3 속도 구간에 따라 결정된 최적의 이주 실행 순서에 소프트웨어 이주 실행을 관리할 수 있다.
한편 노드 간의 통신 속도에 따라 제1 속도 구간 내지 제3 속도 구간으로 분류하지만 본 발명이 이에 한정되는 것은 아니다. 즉 통신 환경을 고려한 분류는 통신 속도 이외의 통신 경로나 설계자의 설정에 따라 추가 분류될 수 있으며, 각 분류된 상태와 소프트웨어의 이전에 관련된 노드 및 통신환경에 대해서 별도의 명칭이 부여될 수 있다.
이하에서 메모리는 사용자 기능 지원을 위해 요구되는 소프트웨어와 데이터가 로드될 수 있는 것으로 설명하기로 한다. 여기서 소프트웨어는 기능 운용을 위한 다양한 루틴 중 적어도 하나를 포함하며, 상기 데이터는 상기 소프트웨어 기능 운용에 필요한 데이터와, 상기 응용 프로그램 기능 운용에 따라 생성된 데이터 등을 포함할 수 있다.
프로세서 상태정보는 마이크로프로세서나 처리기의 내부에 처리 결과의 상태가 비트의 정보로서 기억되는 레지스터를 통해 나타낸 정보라 할 수 있다.
이하 도 3 내지 도 8을 참조하여 이주정책 관리부(116) 및 이주 실행부(117)에 의해 소스 노드로부터 목적지 노드로 소프트웨어를 이주하는 방법을 상세히 설명하기로 한다.
도 3은 본 발명의 실시예에 의한 소스 노드 및 목적지 노드가 제1 속도구간인 경우의 이주 실행의 방법을 나타낸 흐름도이고, 도 4는 도 3에 도시된 소스 노드 및 목적지 노드 간의 데이터의 흐름을 개략적으로 도시한 도면이다. 이하, 도 3 및 도 4를 참조하여 본 발명의 제1 실시예를 설명하기로 한다.
도 3을 참조하면, 제1 실시예로서, 이주 정책 관리부(116)는 소프트웨어의 이주가 실행될 노드 간의 통신 경로를 프로세서(CPU)와 메모리 간의 연결 속도에 근접할 만큼 초고속의 시스템 버스(130)로 연결된 통신환경으로 판단한 경우에, 서비스 다운 타임을 최소화하기 위한 방법으로서, 목적지 노드(120)에서 최소 메모리만 가지고 바로 개시(resume, S230) 후에, 소스 노드(110)의 전체 메모리를 목적지 노드(120)로 전송(S290)하는 방법을 동시에 적용하기로 결정할 수 있다.
상기와 같은 이주 정책 관리부(116)의 이주 방법 결정에 의해, 이주 실행부(117)는 이하와 같은 소프트웨어 이주를 수행할 수 있다.
제1 실시예로서 구체적으로, 이주 실행부(117)는 먼저 소스 노드(110)에서 실행 중이던 소프트웨어(113)를 동작 정지(suspend)할 수 있다.(S210)
이후, 목적지 노드(120)에서 상기 소프트웨어의 동작(114)을 개시(resume)할 수 있는 소스 노드(110)의 최소 메모리 및 프로세서 상태정보를 목적지 노드(120)로 전송할 수 있다.(S220)
소스 노드(110)로부터 전송된 상기 최소 메모리 및 프로세서 상태정보를 기반으로 이주된 소프트웨어(124)를 목적지 노드(120)에서 동작개시(resume)할 수 있다.(S230)
이때, 목적지 노드(120)에서 소프트웨어(123)의 동작이 개시되었다 하더라도 소스 노드로부터 전체 메모리 및 프로세서 상태정보가 전송된 것이 아니기 때문에 목적지 노드(120)에서 소프트웨어(123)의 동작 중 페이지 폴트(page fault)가 발생되게 된다.(S250)
이주 정책 관리부(116)는 상기 페이지 폴트가 발생되면, 목적지 노드(120)가 페이지 폴트를 발생하게 된 원인인 부족한 메모리에 대해 소스 노드(110)에 요청하도록 미리 설정할 수 있다.
페이지 폴트가 발생하면, 목적지 노드(120)는 해당 메모리가 목적지 노드(120)에 존재하는지 판단하고(S260), 판단결과 목적지 노드(120)에 존재하지 않으면, 소스 노드(110)로 해당 메모리를 요청할 수 있다.(S270) 반면, 상기 S260 단계의 판단결과, 목적지 노드(120)에 해당 메모리가 존재하면, 로컬에 있는 해당 메모리를 이용하여 매핑할 수 있다.(S262)
다시 돌아와서 S270 단계 이후, 소스노드(110)는 목적지 노드(120)로부터 요청받은 해당 메모리를 목적지 노드(120)로 전송할 수 있다.(S280)
여기서 목적지 노드(120)의 페이지 폴트의 발생시 소스 노드(110)로의 해당 메모리 요청 실행(S270)과 이에 대응하는 해당 메모리 전송 실행(S280)과 동시에, 소스 노드(110)는 전체 메모리 스냅 샷(snap shot)을 목적지 노드(120)로 전송할 수 있다.(S290) 즉, 상기 S290 단계는 상기 S270 내지 S280 단계와 동시에 실행될 수 있다.
소스 노드(110)가 상기 전체 메모리 스냅 샷을 목적지 노드(120)로 전송하는 이유는, 페이지 폴트의 발생에 대응해서만 해당 메모리를 전송하게 되면, 페이지 폴트가 발생되지 않은 메모리들에 대해서는 이주가 실행되지 않을 것이기 때문이다. 즉, 이주 실행에 있어서 소스 노드의 메모리가 목적지 노드로 모두 이주되지 못하면, 소프트웨어의 이주를 성공시킬 수 없기 때문이다.
그리고 제1 실시예는 해당 메모리 및 전체 메모리의 스냅 샷을 동시에 전송한다 하더라도, 초고속 구간인 제1 속도 구간의 시스템 버스를 통해 전송하기 때문에 소스 노드(110)나 목적지 노드(120)의 성능 저하 없이 소프트웨어의 이주를 효율적으로 실행할 수 있다.
또한, 제1 실시예는 소스 노드(110)와 목적지 노드(120) 사이의 초고속 통신이 가능하므로, 목적지 노드(120)에서 페이지 폴트가 발생한 후에 소스 노드(110)로 해당 메모리를 요청하여 수신하여도 최소의 서비스 중단 시간을 갖고, 동작중인 소프트웨어(123)의 이동이 가능하다.
종래의 기술인 포스트 카피(Post copy) 방식과 비교하여도, 상기 제1 실시예는 네트워크가 아닌 마이크로서버 환경의 노드 간을 연결하는 시스템 버스를 이용하여 이주를 실행하기 때문에 서비스 중단 시간을 최소화하고, 소실되는 메모리 없이 효율적으로 소프트웨어 이주를 실행할 수 있다.
즉, 제1 실시예에 의한 이주 방법은 이주실행 시작 후 목적지 노드에서 이주된 소프트웨어의 동작을 빠르게 실행시킬 수 있고, 페이지 폴트시에도 상대적으로 초고속인 시스템 버스를 통해 메모리와 프로세서 상태정보 등을 카피하기 때문에 소프트웨어 이주 속도도 저하되지 않는 장점이 있다.
도 5는 본 발명의 실시예에 의한 소스 노드 및 목적지 노드가 제2 속도구간인 경우의 이주 실행의 방법을 나타낸 흐름도이고, 도 6은 도 5에 도시된 소스 노드 및 목적지 노드 간의 데이터의 흐름을 개략적으로 도시한 도면이다. 이하, 도 5 및 도 6을 참조하여 본 발명의 제2 실시예를 설명하기로 한다.
도 5를 참조하면, 제2 실시예로서, 이주 정책 관리부(116)는 소프트웨어의 이주가 실행될 소스 노드(110)와 목적지 노드(220) 간을 연결하는 시스템 버스(130)의 속도를 제1 속도 구간보다는 느리고, 네트워크(180) 속도보다는 빠른 제2 속도 구간인 시스템 버스(130)로 연결된 통신환경으로 판단한 경우에, 서비스 다운 타임을 최소화하기 위한 이주 방법을 결정할 수 있다.
이주 정책 관리부(116)의 이주 방법 결정에 의해, 이주 실행부(117)는 이하와 같이 소프트웨어 이주를 수행할 수 있다.
제2 실시예로서 구체적으로, 이주 실행부(117)는, 먼저 소스 노드(110)에서 소프트웨어(113)의 실행이 지속되는 상태(S310)에서 소스 노드(110)의 전체 메모리의 스냅 샷을 목적지 노드(220)로 전송할 수 있다.(S320) 상기 S320 단계의 전체 메모리의 스냅 샷을 이하 최초 스냅 샷이라 일컬을 수 있다.
상기 S320 단계의 전체 메모리 스냅 샷이 전송되는 시간 동안에 소스 노드(110)에서 변경된 메모리를 캡쳐(capture)하여 목적지 노드(220)로 전송할 수 있다.(S330)
즉, 상기 전체 메모리 스냅 샷이 전송되는 동안 소스 노드(110)의 메모리가 1차 변경되면, 상기 1차 변경된 메모리 정보를 파악하고 수집하였다가, 전체 메모리 스냅샷 전송이 끝난 후에 수집했던 1차 변경된 메모리를 목적지 노드(220)로 전송할 수 있다.
또한, 상기 1차 변경된 메모리를 목적지 노드(220)로 전송(1차 전송)하는 동안에 2차 변경된 메모리를 파악하고 수집하였다가, 상기 1차 전송이 완료된 이후에 상기 수집했던 2차 변경된 메모리를 목적지 노드(220)로 전송(2차 전송)할 수 있다. 언급한 바와 같이 변경된 메모리 전송 동작은 반복될 수 있다.
이때 상기 전체 메모리 스냅 샷이 전송되는 동안 변경되는 메모리를 반복 전송한다 하더라도, 고속 구간인 제2 속도 구간의 시스템 버스를 통해 전송하기 때문에 소스 노드(110)나 목적지 노드(220)의 성능 저하를 방지할 수 있다.
상기 S320 및 S330 단계의 실행에 의해 이주된 소프트웨어(124)가 목적지 노드(220)에서 동작 재개 가능한 정도인지 판단할 수 있다.(S340)
여기서 이주된 소프트웨어(124)가 동작 재개 가능한 정도인지 판단하는 기준은 이주 정책 관리부(116)에 의해 미리 설정된 조건일 수 있다. 즉, 이주 정책 관리부(116)에 의해 미리 설정된 조건에 해당하는 만큼의 소스 노드(110)의 메모리가 목적지 노드(220)로 전송되었는지 판단할 수 있다.
상기 S340 단계에 의해 목적지 노드(220)에서 소프트웨어(124)가 동작 재개 가능하지 않다고 판단되면, 목적지 노드(220)는 소프트웨어(124)의 동작 재개를 위해 필요한 메모리를 소스 노드(110)로 요청할 수 있다.(S350)
소스 노드(110)는 상기 S350 단계에 의해 목적지 노드(220)로부터 요청된 메모리에 해당하는 메모리를 목적지 노드(220)로 전송할 수 있다.(S360) 그리고 소스 노드(110)는 실행 중이던 소프트웨어(123)의 동작을 정지시키고(S370), 이주된 소프트웨어(124)를 동작 개시시킬 수 있는 최소 메모리와 프로세서 상태정보를 목적지 노드(220)로 전송할 수 있다.(S380)
소스 노드(110)로부터 전송된 상기 변경된 메모리 및 프로세서 상태정보를 기반으로 이주된 소프트웨어(124)를 목적지 노드(220)에서 동작 개시할 수 있다.(S390)
목적지 노드(220)에서 동작 재개 후에 소스 노드(110)로부터 목적지 노드(210)로 전송이 안되었던 나머지 메모리를 전송할 수 있고, 이 전송 동안에 목적지 노드(220)에서 소프트웨어(124)의 동작 개시 이후 발생된 페이지 폴트(S392)에 대해서 해당 메모리가 목적지 노드(220)에 존재하는지 여부를 판단할 수 있다.(S394)
상기 S394 단계에 의한 판단결과, 목적지 노드(220)에 해당 메모리가 존재하지 않으면, 목적지 노드(220)는 해당 메모리를 소스 노드(110)에 요청할 수 있다.(S395)
소스 노드(110)는 목적지 노드(220)로부터 요청된 해당 메모리를 목적지 노드(220)로 전송할 수 있다.(S396) 이에 의해 목적지 노드(220)로 전송이 안되었던 나머지 메모리의 전송이 끝나면, 이와 관련된 페이지 폴트가 발생하지 않을 것이므로, 목적지 노드(220)로부터 페이지 폴트로 인한 메모리 전송 요청이 없게 되므로 이주가 완료될 수 있다.
반면, 상기 S394 단계의 판단결과, 목적지 노드(220)에 해당 메모리가 존재하면, 로컬(local)에 있는 해당 메모리를 이용하여 매핑할 수 있다.(S397)
여기서, 제2 실시예의 단계 S392의 목적지 노드(220)에서는 제1 실시예에서 발생되는 페이지 폴트보다 훨씬 적은 빈도수로 페이지 폴트가 거의 발생할 확률이 적다.
왜냐하면, 상기 S320 단계에서 최초 메모리 스냅 샷을 보내고, 상기 S330 단계에서 상기 최초 메모리 스냅 샷의 전송 동안 변경된 메모리를 캡쳐하여 보냈으며, 상기 S360 단계에서 목적지 노드(220)의 페이지 폴트에 대응하여 해당 메모리를 전송하고, 또한 상기 S370 단계에서 상기 S320 단계의 최초 메모리 스냅 샷 전송 이후에 변경된 메모리를 전송하였기 때문에, 목적지 노드(220)에서 페이지 폴트가 발생할 확률이 거의 없기 때문이다.
제2 실시예에 의한 이주 방법은 이주실행 시작 후 소스 노드에서 소프트웨어를 실행하면서 소스 노드의 전체 메모리 및 변경된 메모리를 충분히 카피하기 때문에 추후 목적지 노드에서 이전된 소프트웨어가 동작될 때 페이지 폴트가 발생할 확률이 매우 낮고, 더불어 네트워크보다 빠른 고속의 시스템 버스를 통해 이주를 실행하기 때문에 전체 이주 실행 시간을 단축할 수 있다.
도 7은 본 발명의 실시예에 의한 소스 노드 및 목적지 노드가 제3 속도 구간인 경우의 이주 실행의 방법을 나타낸 흐름도이고, 도 8은 도 7에 도시된 소스 노드 및 목적지 노드 간의 데이터의 흐름을 개략적으로 도시한 도면이다.
이하, 도 7 및 도 8을 참조하여 본 발명의 제3 실시예를 설명하기로 한다.
도 7을 참조하면, 제 3 실시예로서, 이주 정책 관리부(116)는 소프트웨어의 이주가 실행될 통신경로의 속도가 앞서 설명한 제1 속도 구간과 제2 속도 구간보다 느린 경우 또는 이더넷(ethernet)과 같은 일반적인 네트워크 통신경로로 분석된 경우에, 상기 네트워크의 속도에 따라 절충된 소프트웨어 이주 방법을 결정할 수 있다.
이하에서 소스 노드(110)와 목적지 노드(210)는 각각 서로 다른 마이크로서버(100, 200)를 구성하는 노드이고, 서로 다른 마이크로서버(100, 200)를 구성하는 소스 노드(110)와 목적지 노드(210)는 일반적인 네트워크(180)에 의해 연결된 노드로 가정하기로 한다.
이주 정책 관리부(116)는 소스 노드(110)와 목적지 노드(210)간의 네트워크 환경을 분석한 결과에 따라 소스 노드(110)에서 실행되는 소프트웨어(113)를 목적지 노드(210)로 이주시키는 방법을 결정할 수 있다. 이와 같은 이주 정책 관리부(116)의 이주 방법 결정에 의해 이주 실행부(117)는 이하와 같은 소프트웨어 이주를 수행할 수 있다.
구체적으로 제3 실시예로서, 이주 실행부(117)는, 먼저 소스 노드(110)에서 소프트웨어(113)가 실행 중인 상태(S410)에서 소스 노드(110)의 전체 메모리의 최초 스냅샷을 목적지 노드(210)로 전송할 수 있다.(S420)
상기 S420 단계의 전체 메모리의 스냅샷 전송이 실행되는 동안에 변경된 소스 노드(110)의 변경된 메모리를 목적지 노드(210)로 전송할 수 있다.(S430) 여기서 소스 노드(110) 전체 메모리의 스냅샷이 전송되는 동안 소스 노드(110)에서 메모리 변경이 발생할 때마다 변경된 메모리를 목적지 노드(210)로 전송할 수 있다.
예컨대, 상기 전체 메모리의 스냅 샷이 전송되는 동안 1차 변경된 메모리 정보를 파악하고 수집하였다가, 상기 전체 메모리 스냅샷 전송이 끝난 후에 상기 수집했던 1차 변경된 메모리를 목적지 노드(210)로 전송할 수 있다. 또한, 상기 1차 변경된 메모리를 목적지 노드(210)로 전송(1차 전송)하는 동안에 2차 변경된 메모리를 파악하고 수집하였다가, 상기 1차 전송이 완료된 이후에 상기 수집했던 2차 변경된 메모리를 목적지 노드(210)로 전송할 수 있다. 언급한 바와 같이 변경된 메모리 전송 동작은 반복될 수 있다.
상기 S420 및 S430 단계의 실행에 의해 목적지 노드(210)에서 소프트웨어(213)을 동작 개시할 조건이 만족되는지 판단할 수 있다.(S440)
여기서 이주된 소프트웨어(213)가 동작 재개 가능한 정도인지 판단하는 기준은 이주 정책 관리부(116)에 의해 미리 설정된 조건일 수 있다. 즉, 이주 정책 관리부(116)에 의해 미리 설정된 조건에 해당하는 만큼의 소스 노드(110)의 메모리가 목적지 노드(210)로 전송되었는지 판단할 수 있다.
상기 S440 단계의 판단에 의해, 목적지 노드(210)에서 소프트웨어(213)의 동작 개시가 불가능하다고 판단되면, 소프트웨어(213)를 동작 개시하는데 필요한 메모리를 소스 노드(110)에 요청할 수 있다.(S450)
상기 S450 단계의 요청에 의해 소스 노드(110)는 목적지 노드(210)로부터 요청된 해당 메모리를 목적지 노드(210)로 전송할 수 있다.(S460)
반면, 상기 S440 단계의 판단에 의해, 목적지 노드(210)에서 소프트웨어(213)를 동작 개시할 조건이 만족된다고 판단되면, 소스 노드(110)에서 실행 중이던 소프트웨어(113)를 정지(S470)하고, 상기 S440 단계 및 S460 단계 이후에 소스 노드(110)에서 변경된 메모리와 프로세서 상태정보를 목적지 노드(210)로 전송할 수 있다.(S480)
앞선 단계(S420, S460, S480)에서 전송된 메모리와 프로세서 상태정보를 기반으로 이전된 소프트웨어(213)를 목적지 노드(210)에서 동작 재개할 수 있다.(S490)
제3실시예의 경우에는 이주 마지막 단계에서 소스 노드(110)로부터 해당 소프트웨어를 정지한 후에 목적지 노드(210)로 이주된 소프트웨어에 필요한 나머지 메모리를 모두 목적지 노드(210)로 전송함으로써, 이미 목적지 노드(210)에서 필요한 모든 메모리를 갖고 있기 때문에 페이지 폴트가 발생할 확률이 희박하다.
요약하자면, 상기 제3 실시예는 네트워크의 통신환경을 고려하여, 최초의 전체 메모리를 전송하고, 상기 최초 전체 메모리 전송시간 동안 변경된 메모리를 동시에 전송하면서, 목적지 노드(210)에서 이동된 소프트웨어의 동작 재개를 위한 메모리가 미리 설정된 조건과 만족되는지 판단하고, 만족되면 소스 노드의 소프트웨어 동작을 정지하고, 소스 노드의 변경된 메모리 및 프로세서의 상태정보를 목적지 노드로 전송하여 동작중인 소프트웨어의 이동을 수행함으로써, 네트워크 통신 환경을 고려하면서도 소스 노드와 목적지 노드의 성능 저하를 방지하면서 동시에 이주 실행 속도를 개선할 수 있다.
한편, 본 발명의 실시예에서는, 설계자의 설정에 따라 또는 마이크로서버의 통신환경에 따라 각 통신 구간에 매칭되는 실시예의 방법은 변경될 수 있다.
또한 본 발명의 실시 예에 따른 상기 단말기(100)는 메뉴 페이지와 동일 레벨의 기본 페이지들을 제공할 수 있는 모든 형태의 디바이스를 포함할 수 있다. 예를 들면, 상기 단말기(100)는 다양한 통신 시스템들에 대응되는 통신 프로토콜들(communication protocols)에 의거하여 동작하는 모든 이동통신 단말기들(mobile communication terminals)을 비롯하여, PMP(Portable Multimedia Player), 디지털방송 플레이어, PDA(Personal Digital Assistant), 음악 재생기(예컨대, MP3 플레이어), 휴대게임단말, 스마트 폰(Smart Phone), 노트북(Notebook) 및 핸드헬드 PC 등 모든 정보통신기기와 멀티미디어기기 및 그에 대한 응용기기를 포함할 수 있다.
이상 본 발명을 몇 가지 바람직한 실시 예를 사용하여 설명하였으나, 이들 실시 예는 예시적인 것이며 한정적인 것이 아니다. 이와 같이, 본 발명이 속하는 기술분야에서 통상의 지식을 지닌 자라면 본 발명의 사상과 첨부된 특허청구범위에 제시된 권리범위에서 벗어나지 않으면서 균등론에 따라 다양한 변화와 수정을 가할 수 있음을 이해할 것이다.
100: 제1 마이크로서버 110: 제1 노드
111, 121: 프로세서 및 메모리 112, 122: 가상화 계층
113, 123: 소프트웨어 118, 128: 이주 플랫폼
115: 환경 모니터부 116: 이주 정책 관리부
117: 이주 실행부 120: 제2 노드
130, 230: 제1 시스템 버스 150, 250: 제2 시스템 버스
140, 240: 가상화 하드웨어 160, 260: 네트워크 장치
170, 270: 하드디스크 180, 280: 네트워크
182, 282: 네트워크 스위치

Claims (30)

  1. 마이크로서버를 구성하는 소스 노드와 목적지 노드 간의 통신환경을 모니터링하는 환경 모니터부; 및
    상기 환경 모니터부로부터 획득한 통신환경정보를 분석하고, 상기 분석결과에 따라 상기 소스 노드에서 실행중인 소프트웨어를 상기 목적지 노드로 이주시키기 위한 이주 방법을 결정하는 이주 정책 관리부를 포함하는 것을 특징으로 하는, 마이크로서버 환경의 소프트웨어 이주 장치.
  2. 제1항에 있어서, 상기 환경 모니터부는,
    상기 소스 노드 및 목적지 노드를 연결하는 적어도 하나의 시스템 버스 및 네트워크의 통신 환경을 분석하는 것을 특징으로 하는, 마이크로서버 환경의 소프트웨어 이주 장치.
  3. 제1항에 있어서, 상기 이주 정책 관리부는,
    상기 소스 노드 및 목적지 노드 간의 통신 환경을 고려하여, 상기 소스 노드 및 목적지 노드 간의 메모리 전송실행, 상기 목적지 노드로 이전된 상기 소프트웨어 동작개시(resume)실행 및 상기 소스 노드에서 실행되던 상기 소프트웨어의 정지(suspend)실행의 순서와 시기를 결정하는 것을 특징으로 하는, 마이크로서버 환경의 소프트웨어 이주 장치.
  4. 제1항에 있어서, 상기 이주 정책 관리부는,
    상기 소스 노드의 전체 메모리 및 프로세서 상태정보 중 적어도 하나를 포함하는 스냅 샷(snap shot)의 전송, 상기 목적지 노드에 이주될 소프트웨어의 동작개시(resume)를 가능하게 하는 상기 소스 노드의 최소 메모리 및 프로세서 상태정보의 전송, 상기 목적지 노드에 이주된 상기 소프트웨어의 동작 개시(resume)실행, 상기 목적지 노드의 페이지 폴트(page fault)시 요청된 메모리의 전송, 상기 스냅 샷이 전송되는 동안 상기 소스 노드에서 변경된 메모리의 전송 및 상기 소스 노드에서 실행중인 소프트웨어의 동작 정지(suspend)실행 중 적어도 하나의 실행을 상기 소스 노드 및 목적지 노드 간의 통신 속도를 고려하여 실행하는 순서를 결정하는 것을 특징으로 하는, 마이크로서버 환경의 소프트웨어 이주 장치.
  5. 제1항에 있어서,
    상기 이주 정책 관리부에 의해 결정된 이주 방법에 따라 상기 소스 노드에서 실행되던 상기 소프트웨어를 상기 목적지 노드로 이주하는 실행을 수행 및 관리하는 이주 실행부를 더 포함하는 것을 특징으로 하는, 마이크로서버 환경의 소프트웨어 이주 장치.
  6. 제5항에 있어서, 상기 이주 실행부는,
    상기 이주 정책 관리부가 상기 소스 노드와 상기 목적지 노드 간에 연결된 통신경로를 프로세서(CPU)와 메모리(memory) 간의 연결 속도에 근접할 만큼 초고속의 시스템 버스로 연결된 제1 통신환경으로 분석한 경우,
    상기 소스 노드에서 실행 중인 소프트웨어를 동작 정지(suspend)하고,
    상기 목적지 노드에서 상기 소프트웨어의 동작을 개시(resume)할 수 있는 상기 소스 노드의 최소 메모리 및 프로세서 상태정보를 상기 목적지 노드로 전송하며,
    상기 소스 노드로부터 전송된 상기 최소 메모리 및 상기 프로세서 상태정보를 기반으로 상기 소프트웨어를 상기 목적지 노드에서 동작개시(resume)하고,
    상기 목적지 노드에서 페이지 폴트 발생 시 상기 소스 노드로 요청된 해당 메모리를 상기 목적지 노드로 전송하며,
    상기 페이지 폴트 시 요청된 메모리 전송과 동시에 상기 소스 노드의 전체 메모리 스냅 샷을 상기 목적지 노드로 전송하는 것을 특징으로 하는, 마이크로서버 환경의 소프트웨어 이주 장치.
  7. 제6항에 있어서, 상기 이주 실행부는,
    상기 이주 정책 관리부가 상기 소스 노드와 상기 목적지 노드 간에 연결된 통신경로를 상기 제1 통신환경의 통신 속도보다 느리고, 일반적인 네트워크 속도보다는 빠른 시스템 버스(130)로 연결된 제2 통신환경으로 분석한 경우,
    상기 소스 노드의 전체 메모리의 최초 스냅 샷을 상기 목적지 노드로 전송하고,
    상기 최초 스냅샷 전송 동안에 변경된 상기 소스 노드의 변경된 메모리를 상기 목적지 노드로 전송하며,
    상기 최초 스냅샷 전송과 상기 변경된 메모리 전송에 의해 미리 설정된 조건에 해당하는 만큼의 상기 소스 노드의 메모리가 상기 목적지 노드로 전송된 것으로 판단되면, 상기 소스 노드에서 실행되던 상기 소프트웨어를 정지(suspend)하고,
    상기 목적지 노드로 이주된 상기 소프트웨어를 동작 개시시키는 최소 메모리 및 프로세서의 상태정보를 상기 소스 노드로부터 상기 목적지 노드로 전송하고,
    상기 목적지 노드로 이주된 상기 소프트웨어를 동작 개시시키는 것을 특징으로 하는, 마이크로서버 환경의 소프트웨어 이주 장치.
  8. 제7항에 있어서, 상기 최초 스냅샷 전송 동안에 변경된 상기 소스 노드의 메모리를 캡쳐하였다가 상기 최초 스냅샷 전송 이후, 상기 캡쳐된 메모리를 상기 목적지 노드로 전송하는 것을 특징으로 하는, 마이크로서버 환경의 소프트웨어 이주 장치.
  9. 제8항에 있어서, 상기 캡쳐된 메모리를 상기 목적지 노드로 1차 전송하는 동안에 변경된 상기 소스 노드의 메모리를 캡쳐하였다가, 상기 1차 전송이 완료된 이후, 상기 캡쳐된 소스 노드의 메모리를 2차 전송하고, 상기 1차 전송 및 2차 전송은 반복 가능한 것을 특징으로 하는, 마이크로서버 환경의 소프트웨어 이주 장치.
  10. 제7항에 있어서, 상기 미리 설정된 조건은,
    상기 이주 정책 관리부에 의해 미리 설정된 조건으로서, 상기 목적지 노드로 이주된 상기 소프트웨어가 동작 개시 가능한지 판단하는 조건인 것을 특징으로 하는, 마이크로서버 환경의 소프트웨어 이주 장치.
  11. 제7항에 있어서, 상기 이주 실행부는,
    상기 목적지 노드로 이주된 상기 소프트웨어가 동작 개시 이후,
    상기 목적지 노드의 상기 소프트웨어 동작 시 발생한 페이지 폴트에 대응하는 해당 메모리를 상기 소스 노드에 요청하고, 상기 요청된 해당 메모리를 상기 소스 노드로부터 상기 목적지 노드로 전송하는 것을 특징으로 하는, 마이크로서버 환경의 소프트웨어 이주 장치.
  12. 제11항에 있어서, 상기 페이지 폴트 발생시 해당 메모리를 상기 소스 노드에 요청하고, 상기 요청된 해당 메모리를 상기 목적지 노드로 전송하는 과정은 상기 최초 스냅샷 전송과 동시에 실행되는 것을 특징으로 하는, 마이크로서버 환경의 소프트웨어 이주 장치.
  13. 제7항에 있어서, 상기 이주 실행부는,
    상기 이주 정책 관리부가 상기 소스 노드와 상기 목적지 노드 간에 연결된 통신경로를 상기 제1 및 제2 통신환경의 통신 속도보다 느리거나, 일반적인 네트워크로 연결된 제3 통신환경으로 분석한 경우,
    상기 소스 노드에서 상기 소프트웨어가 실행 중인 상태에서 상기 소스 노드의 전체 메모리의 최초 스냅샷을 상기 목적지 노드로 전송하고,
    상기 전체 메모리의 최초 스냅샷 전송 동안에 변경된 상기 소스 노드의 변경된 메모리를 상기 목적지 노드로 전송하며,
    상기 전체 메모리의 최초 스냅샷 전송 및 변경된 메모리 전송에 의해 상기 목적지 노드에서 상기 소프트웨어를 동작 개시할 조건이 만족되는지 판단하고,
    상기 동작 개시 조건이 만족된다고 판단되면, 상기 소스 노드에서 실행 중이던 상기 소프트웨어를 정지(suspend)하고, 상기 소스 노드의 변경된 나머지 메모리 및 프로세서의 상태정보를 상기 목적지 모드로 전송하며,
    상기 소스 노드로부터 이전된 상기 소프트웨어를 상기 목적지 노드에서 동작 재개하는 것을 특징으로 하는, 마이크로서버 환경의 소프트웨어 이주 장치.
  14. 제13항에 있어서, 상기 미리 설정된 조건은,
    상기 이주 정책 관리부에 의해 미리 설정된 조건으로서, 상기 목적지 노드로 이주된 상기 소프트웨어가 동작 개시 가능한지 판단하는 조건인 것을 특징으로 하는, 마이크로서버 환경의 소프트웨어 이주 장치.
  15. 제13항에 있어서, 상기 최초 스냅샷 전송 동안에 변경된 상기 소스 노드의 메모리를 캡쳐하였다가 상기 최초 스냅샷 전송 이후, 상기 캡쳐된 메모리를 상기 목적지 노드로 전송하는 것을 특징으로 하는, 마이크로서버 환경의 소프트웨어 이주 장치.
  16. 제15항에 있어서, 상기 캡쳐된 메모리를 상기 목적지 노드로 1차 전송하는 동안에 변경된 상기 소스 노드의 메모리를 캡쳐하였다가, 상기 1차 전송이 완료된 이후, 상기 캡쳐된 소스 노드의 메모리를 2차 전송하고, 상기 1차 전송 및 2차 전송은 반복 가능한 것을 특징으로 하는, 마이크로서버 환경의 소프트웨어 이주 장치.
  17. 마이크로서버를 구성하는 소스 노드와 목적지 노드 간의 통신환경을 분석하는 과정;
    상기 통신환경의 분석결과에 따라, 상기 소스 노드에서 실행중인 소프트웨어를 상기 목적지 노드로 이주시키는 방법을 결정하는 과정을 포함하는 것을 특징으로 하는, 마이크로서버 환경의 소프트웨어 이주 방법.
  18. 제17항에 있어서, 상기 소프트웨어를 이주시키는 방법을 결정하는 과정은,
    상기 소스 노드와 목적지 노드 간의 통신환경을 고려하여, 상기 소스 노드 및 목적지 노드 간의 메모리 전송실행, 상기 목적지 노드로 이전된 상기 소프트웨어 동작개시(resume)실행 및 상기 소스 노드에서 실행되던 상기 소프트웨어의 정지(suspend)실행의 순서와 시기를 결정하는 것을 특징으로 하는, 마이크로서버 환경의 소프트웨어 이주 방법.
  19. 제17항에 있어서, 상기 소프트웨어를 이주시키는 방법을 결정하는 과정은,
    상기 소스 노드의 전체 메모리 및 프로세서 상태정보 중 적어도 하나를 포함하는 스냅 샷(snap shot)의 전송, 상기 목적지 노드에 이주될 소프트웨어의 동작개시(resume)를 가능하게 하는 상기 소스 노드의 최소 메모리 및 프로세서 상태정보의 전송, 상기 목적지 노드에 이주된 상기 소프트웨어의 동작 개시(resume)실행, 상기 목적지 노드의 페이지 폴트(page fault)시 요청된 메모리의 전송, 상기 스냅 샷이 전송되는 동안 상기 소스 노드에서 변경된 메모리의 전송 및 상기 소스 노드에서 실행중인 소프트웨어의 동작 정지(suspend)실행 중 적어도 하나의 실행을 상기 소스 노드 및 목적지 노드 간의 통신 속도를 고려하여 실행하는 순서를 결정하는 것을 특징으로 하는, 마이크로서버 환경의 소프트웨어 이주 방법.
  20. 제17항에 있어서, 상기 소프트웨어를 이주시키는 방법을 결정하는 과정은,
    상기 소스 노드와 상기 목적지 노드 간에 연결된 통신경로를 프로세서(CPU)와 메모리(memory) 간의 연결 속도에 근접할 만큼 초고속의 시스템 버스로 연결된 제1 통신환경으로 분석된 경우,
    A)상기 소스 노드에서 실행 중인 소프트웨어를 동작 정지(suspend)하고, 상기 목적지 노드에서 상기 소프트웨어의 동작을 개시(resume)할 수 있는 상기 소스 노드의 최소 메모리 및 프로세서 상태정보를 상기 목적지 노드로 전송하는 과정;
    B)상기 소스 노드로부터 전송된 상기 최소 메모리 및 상기 프로세서 상태정보를 기반으로 상기 소프트웨어를 상기 목적지 노드에서 동작개시(resume)하는 과정;
    C)상기 동작된 목적지 노드의 페이지 폴트 시 상기 소스 노드로 요청된 메모리를 상기 목적지 노드로 전송하는 과정;
    D)상기 C)단계와 동시에 상기 소스 노드의 전체 메모리 스냅 샷을 상기 목적지 노드로 전송하는 과정을 포함하는 것을 특징으로 하는, 마이크로서버 환경의 소프트웨어 이주 방법.
  21. 제20항에 있어서, 상기 소프트웨어를 이주시키는 방법을 결정하는 과정은,
    상기 소스 노드와 상기 목적지 노드 간에 연결된 통신경로를 상기 제1 통신환경의 통신 속도보다 느리고, 일반적인 네트워크 속도보다는 빠른 시스템 버스(130)로 연결된 제2 통신환경으로 분석된 경우,
    E)상기 소스 노드의 전체 메모리의 최초 스냅샷을 상기 목적지 노드로 전송하는 과정;
    F)상기 E)단계의 전송실행동안 변경된 상기 소스 노드의 변경된 메모리를 상기 목적지 노드로 전송하는 과정;
    G)상기 E)단계 및 F)단계의 실행에 의해 상기 목적지 노드로 전송된 메모리가 미리 설정된 조건에 해당된다고 판단되면, 상기 소스 노드에서 실행되던 상기 소프트웨어를 정지(suspend)하는 과정;
    H)상기 목적지 노드로 이주된 상기 소프트웨어를 동작 개시시키는 최소 메모리 및 프로세서의 상태정보를 상기 소스 노드로부터 상기 목적지 노드로 전송하는 과정;
    I) 상기 목적지 노드로 이주된 상기 소프트웨어를 동작 개시시키는 과정을 포함하는 것을 특징으로 하는, 마이크로서버 환경의 소프트웨어 이주 방법.
  22. 제21항에 있어서, 상기 F) 단계는,
    상기 E)단계의 상기 최초 스냅샷 전송 동안에 변경된 상기 소스 노드의 메모리를 캡쳐하였다가 상기 최초 스냅샷 전송 이후, 상기 캡쳐된 메모리를 상기 목적지 노드로 전송하는 것을 특징으로 하는, 마이크로서버 환경의 소프트웨어 이주 방법.
  23. 제22항에 있어서, 상기 F) 단계는, 상기 캡쳐된 메모리를 상기 목적지 노드로 1차 전송하는 동안에 변경된 상기 소스 노드의 메모리를 캡쳐하였다가, 상기 1차 전송이 완료된 이후, 상기 캡쳐된 소스 노드의 메모리를 2차 전송하고, 상기 1차 전송 및 2차 전송은 반복 가능한 것을 특징으로 하는, 마이크로서버 환경의 소프트웨어 이주 방법.
  24. 제21항에 있어서, 상기 G)단계의 상기 목적지 노드로 전송된 메모리가 미리 설정된 조건에 해당하는지 판단하는 과정은,
    상기 목적지 노드로 이주된 상기 소프트웨어가 동작 개시 가능한지 판단하는 것을 특징으로 하는, 마이크로서버 환경의 소프트웨어 이주 방법.
  25. 제21항에 있어서, 상기 I)단계의 상기 목적지 노드로 이주된 상기 소프트웨어가 동작 개시된 이후,
    J)상기 목적지 노드의 상기 소프트웨어 동작 시 발생한 페이지 폴트에 대응하는 해당 메모리에 대해 상기 소스 노드에 요청하는 과정; 및
    K)상기 요청된 상기 해당 메모리를 상기 소스 노드로부터 상기 목적지 노드로 전송하는 과정을 더 포함하는 것을 특징으로 하는, 마이크로서버 환경의 소프트웨어 이주 방법.
  26. 제25항에 있어서, 상기 J)단계의 페이지 폴트 발생 시 해당 메모리를 상기 소스 노드에 요청하는 실행과 상기 K)단계의 요청된 해당 메모리를 상기 목적지 노드로 전송하는 실행은,
    상기 E)단계의 상기 최초 스냅샷을 상기 목적지 노드로 전송하는 실행과 동시에 실행되는 것을 특징으로 하는, 마이크로서버 환경의 소프트웨어 이주 방법.
  27. 제21항에 있어서, 상기 소프트웨어를 이주시키는 방법을 결정하는 과정은,
    상기 소스 노드와 상기 목적지 노드 간에 연결된 통신경로를 상기 제1 및 제2 통신환경의 통신 속도보다 느리거나, 일반적인 네트워크로 연결된 제3 통신환경으로 분석된 경우,
    L)상기 소스 노드에서 상기 소프트웨어가 실행 중인 상태에서 상기 소스 노드의 전체 메모리의 최초 스냅샷을 우선 상기 목적지 노드로 전송하는 과정;
    M)상기 L)단계의 전송실행동안 변경된 상기 소스 노드의 변경된 메모리를 상기 목적지 노드로 전송하는 과정;
    O)상기 L) 단계 및 M)단계의 실행에 의해 상기 목적지 노드에서 상기 소프트웨어를 동작 개시할 조건이 만족되는지 판단하는 과정;
    P)상기 O)단계에 의해 만족된다고 판단되면, 상기 소스 노드에서 실행 중이던 상기 소프트웨어를 정지(suspend)하고, 상기 소스 노드의 변경된 나머지 메모리 및 프로세서의 상태정보를 상기 목적지 모드로 전송하는 과정;
    Q)상기 소스 노드로부터 이전된 상기 소프트웨어를 상기 목적지 노드에서 동작 개시하는 과정을 포함하는 것을 특징으로 하는, 마이크로서버 환경의 소프트웨어 이주 방법.
  28. 제27항에 있어서, 상기 M)단계는,
    상기 L)단계의 상기 최초 스냅샷 전송 동안에 변경된 상기 소스 노드의 메모리를 캡쳐하였다가 상기 최초 스냅샷 전송 이후, 상기 캡쳐된 메모리를 상기 목적지 노드로 전송하는 것을 특징으로 하는, 마이크로서버 환경의 소프트웨어 이주 방법.
  29. 제28항에 있어서, 상기 캡쳐된 메모리를 상기 목적지 노드로 1차 전송하는 동안에 변경된 상기 소스 노드의 메모리를 캡쳐하였다가, 상기 1차 전송이 완료된 이후, 상기 캡쳐된 소스 노드의 메모리를 2차 전송하고, 상기 1차 전송 및 2차 전송은 반복 가능한 것을 특징으로 하는, 마이크로서버 환경의 소프트웨어 이주 방법.
  30. 제27항에 있어서, 상기 O)단계의 상기 목적지 노드에서 상기 소프트웨어가 동작 개시할 조건이 만족되는지 판단하는 과정은,
    상기 소스 노드의 메모리가 미리 설정된 조건만큼 상기 목적지 노드로 전송되었는지 판단하는 것을 특징으로 하는, 마이크로서버 환경의 소프트웨어 이주 방법.
KR1020130009797A 2013-01-29 2013-01-29 마이크로서버 환경의 소프트웨어 이주 방법 및 이를 지원하는 장치 KR102083289B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020130009797A KR102083289B1 (ko) 2013-01-29 2013-01-29 마이크로서버 환경의 소프트웨어 이주 방법 및 이를 지원하는 장치
AU2013204062A AU2013204062B2 (en) 2013-01-29 2013-04-11 Software migration method and apparatus in micro-server environment
PCT/KR2014/000519 WO2014119864A1 (en) 2013-01-29 2014-01-17 Software migration method and apparatus in micro-server environment
US14/157,948 US9596136B2 (en) 2013-01-29 2014-01-17 Software migration method and apparatus in micro-server environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130009797A KR102083289B1 (ko) 2013-01-29 2013-01-29 마이크로서버 환경의 소프트웨어 이주 방법 및 이를 지원하는 장치

Publications (2)

Publication Number Publication Date
KR20140096784A true KR20140096784A (ko) 2014-08-06
KR102083289B1 KR102083289B1 (ko) 2020-03-02

Family

ID=51224272

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130009797A KR102083289B1 (ko) 2013-01-29 2013-01-29 마이크로서버 환경의 소프트웨어 이주 방법 및 이를 지원하는 장치

Country Status (4)

Country Link
US (1) US9596136B2 (ko)
KR (1) KR102083289B1 (ko)
AU (1) AU2013204062B2 (ko)
WO (1) WO2014119864A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150071091A1 (en) * 2013-09-12 2015-03-12 Alcatel-Lucent Usa Inc. Apparatus And Method For Monitoring Network Performance
US10721181B1 (en) * 2015-03-10 2020-07-21 Amazon Technologies, Inc. Network locality-based throttling for automated resource migration
CN105245405B (zh) * 2015-10-27 2018-02-23 浙江大学软件学院(宁波)管理中心(宁波软件教育中心) 一种面向数据交换的云迁移优化评估方法
US11700705B2 (en) 2017-12-20 2023-07-11 Telefonaktiebolaget Lm Ericsson (Publ) Method, system and apparatus for enabling live and/or hot migration of physical resources
CN108228317A (zh) * 2017-12-29 2018-06-29 佛山市幻云科技有限公司 基于VMWare的仪器管理方法、装置与计算机
CN110874264B (zh) * 2018-08-30 2023-05-02 阿里巴巴集团控股有限公司 实例热迁移方法及装置、存储介质、处理器
EP3921998B1 (en) * 2019-02-06 2023-08-16 Telefonaktiebolaget Lm Ericsson (Publ) Migration of computational service
CN112882761B (zh) * 2021-03-05 2023-05-26 网易(杭州)网络有限公司 游戏服务端引擎的迁移方法、装置、处理器、电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040098419A1 (en) * 2002-11-18 2004-05-20 International Business Machines Corporation Method and apparatus for a migration assistant
US6915129B1 (en) * 1999-01-29 2005-07-05 Sony International (Europe) Gmbh Mobile agent system and method for controlling a mobile agent system
US20070204265A1 (en) * 2006-02-28 2007-08-30 Microsoft Corporation Migrating a virtual machine that owns a resource such as a hardware device
US20070245332A1 (en) * 2001-09-28 2007-10-18 Yoram Tal Method and apparatus to perform an application software migration
US20100175063A1 (en) * 2009-01-05 2010-07-08 International Business Machines Corporation Detection and Management of Dynamic Migration of Virtual Environments

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070294692A1 (en) 2006-06-16 2007-12-20 Microsoft Corporation Task Assignment Among Multiple Devices
EP1901145A2 (en) 2006-08-23 2008-03-19 MicroNet Sensorik GmbH Field device and method of operating the same
US7783913B2 (en) * 2007-01-31 2010-08-24 International Business Machines Corporation Facilitating recovery in a coordinated timing network
CN101855617A (zh) 2007-09-19 2010-10-06 Kpit库敏思信息系统有限公司 使即插即用硬件用于半自动软件迁移的机制
US8117495B2 (en) * 2007-11-26 2012-02-14 Stratus Technologies Bermuda Ltd Systems and methods of high availability cluster environment failover protection
US9176773B2 (en) * 2011-06-29 2015-11-03 Microsoft Technology Licensing, Llc Virtual machine migration tool
US9092837B2 (en) * 2012-11-29 2015-07-28 International Business Machines Corporation Use of snapshots to reduce risk in migration to a standard virtualized environment

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6915129B1 (en) * 1999-01-29 2005-07-05 Sony International (Europe) Gmbh Mobile agent system and method for controlling a mobile agent system
US20070245332A1 (en) * 2001-09-28 2007-10-18 Yoram Tal Method and apparatus to perform an application software migration
US20040098419A1 (en) * 2002-11-18 2004-05-20 International Business Machines Corporation Method and apparatus for a migration assistant
US20070204265A1 (en) * 2006-02-28 2007-08-30 Microsoft Corporation Migrating a virtual machine that owns a resource such as a hardware device
US20100175063A1 (en) * 2009-01-05 2010-07-08 International Business Machines Corporation Detection and Management of Dynamic Migration of Virtual Environments

Also Published As

Publication number Publication date
KR102083289B1 (ko) 2020-03-02
US20140215060A1 (en) 2014-07-31
AU2013204062B2 (en) 2015-12-10
US9596136B2 (en) 2017-03-14
WO2014119864A1 (en) 2014-08-07
AU2013204062A1 (en) 2014-08-14

Similar Documents

Publication Publication Date Title
KR102083289B1 (ko) 마이크로서버 환경의 소프트웨어 이주 방법 및 이를 지원하는 장치
Ahmad et al. A survey on virtual machine migration and server consolidation frameworks for cloud data centers
US9531775B2 (en) Mobile application migration to cloud computing platform
US10768960B2 (en) Method for affinity binding of interrupt of virtual network interface card, and computer device
TWI559153B (zh) 分散式計算架構
TWI656479B (zh) 在多核心處理器中的非對稱核心之間遷移執行緒
US8752060B2 (en) Multi-CPU domain mobile electronic device and operation method thereof
EP2226724B1 (en) Information processing system
US8725800B1 (en) Mobile photo application migration to cloud computing platform
CN111475012B (zh) 至硬件加速器的动态功率路由
US9684536B2 (en) Scheduling method and scheduling system
US20200409755A1 (en) Mechanism to automatically prioritize i/o for nfv workloads at platform overload
US20150046620A1 (en) Pessimistic interrupt affinity for devices
KR20210056655A (ko) 클라우드 엣지 환경에서 예측 기반 마이그레이션 후보 및 대상 선정 방법
US20180159775A1 (en) Offloading at a virtual switch in a load-balanced group
CN108351802B (zh) 计算机数据处理系统和用于虚拟机通信的基于通信流量的优化的方法
KR101662030B1 (ko) 태스크 이동 시스템 및 그 방법
US11288070B2 (en) Optimization of low-level memory operations in a NUMA environment
US20230083604A1 (en) Frequency control device in a server, control method, and program
WO2021129520A1 (zh) 网络业务的生命周期管理的授权方法及装置
Liao et al. AdaptIDC: Adaptive inter-domain communication in virtualized environments
CN116755840A (zh) 虚拟机运行控制方法、装置、设备及介质

Legal Events

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