KR102392121B1 - 메모리 분리 시스템에서 메모리 관리 방법 및 장치 - Google Patents

메모리 분리 시스템에서 메모리 관리 방법 및 장치 Download PDF

Info

Publication number
KR102392121B1
KR102392121B1 KR1020200072032A KR20200072032A KR102392121B1 KR 102392121 B1 KR102392121 B1 KR 102392121B1 KR 1020200072032 A KR1020200072032 A KR 1020200072032A KR 20200072032 A KR20200072032 A KR 20200072032A KR 102392121 B1 KR102392121 B1 KR 102392121B1
Authority
KR
South Korea
Prior art keywords
memory
remote memory
page
source remote
source
Prior art date
Application number
KR1020200072032A
Other languages
English (en)
Other versions
KR20210155059A (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 KR1020200072032A priority Critical patent/KR102392121B1/ko
Priority to US17/324,883 priority patent/US11586549B2/en
Publication of KR20210155059A publication Critical patent/KR20210155059A/ko
Application granted granted Critical
Publication of KR102392121B1 publication Critical patent/KR102392121B1/ko
Priority to US18/158,953 priority patent/US11947463B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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/45583Memory management, e.g. access or allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

물리노드 상의 가상머신에 위치한 분리메모리 관리 장치는 상기 가상머신이 사용하는 적어도 하나의 원격메모리 중에서 이주시킬 소스 원격메모리의 각 메모리 페이지에 대해 유효페이지 비율을 토대로 원격메모리간 직접전송 또는 지역메모리를 거친 간접전송을 선택하고, 상기 직접전송 또는 상기 간접전송에 따라 상기 소스 원격메모리의 메모리 페이지들을 대상 원격메모리로 전송한 후, 상기 소스 원격메모리를 해제시킨다.

Description

메모리 분리 시스템에서 메모리 관리 방법 및 장치{METHOD AND APPARATUS FOR MANAGING MEMORY IN MEMORY DISAGGREGATION SYSTEM}
본 발명은 메모리 분리 시스템에서 메모리 관리 방법 및 장치에 관한 것으로, 특히 메모리 분리 시스템에서 확장성 개선 및 장애 대응을 제공하기 위한 메모리 분리 시스템에서 메모리 관리 방법 및 장치에 관한 것이다.
메모리 분리(memory disaggregation) 시스템은 가상머신이 위치하고 있는 로컬 호스트 머신의 메모리와 인터커넥트로 연결되어 있는 원격 머신의 메모리를 이용하여 동작한다. 최근 발전하고 있는 노드간 인터커넥트 기술은 원격메모리에 대한 접근 지연시간을 최소화하고 있으며, 높은 대역폭을 제공함으로써 메모리에 유사한 성능을 제공할 수 있다. 또한 호스트 머신의 메모리를 보다 유연하게 사용할 수 있는 장점을 제공한다. 다수의 노드 중에서 대부분의 CPU가 유휴상태에 있고 메모리를 사용하지 않는 노드가 필연적으로 발생한다. 이는 응용 프로그램의 자원 사용이 동적 시간에 결정되기 때문에 피할 수 없는 문제이다. 이와 같은 상황에서 메모리 자원의 유연한 사용은 다수의 시스템에 대해서 자원의 활용율을 높일 수 있고, 사용자의 자원할당 요청에 대해서 보다 유연하게 대응할 수 있다.
하지만 이와 같은 원격 머신의 메모리를 사용한다는 것은 또 다른 문제점을 야기한다. 첫째, 응용프로그램의 자원 사용이 동적 시간에 결정됨으로 인해서 메모리를 제공하는 노드 또한 메모리 부족 현상을 겪게 될 수 있다는 것이다. 둘째, 원격메모리를 제공하는 호스트에 예측 가능한 문제가 발생할 경우, 문제를 해결하기 위해서 해당 원격메모리를 사용하는 CPU 자원의 종료가 요구되므로, 동작하는 운영체제 및 응용프로그램이 중단된다.
이와 같은 문제는 원격메모리를 활용하는 메모리 분리 시스템이 원격메모리의 위치를 고정하는 것을 가정하고 있기 때문이다. 이와 같은 가정은 메모리 분리 시스템이 널리 적용되는데 주요한 문제가 된다.
본 발명이 해결하려는 과제는 메모리 분리 시스템에서 동작하는 가상머신과 가상머신 상에서 동작하는 운영체제 및 응용프로그램의 중단 없이 메모리 분리 시스템에서 참조하는 원격메모리를 동적으로 이주시킬 수 있는 메모리 분리 시스템에서 메모리 관리 방법 및 장치를 제공하는 것이다.
본 발명의 한 실시 예에 따르면, 물리노드 상의 가상머신에 위치한 분리메모리 관리 장치에서 상기 가상머신이 사용하는 지역메모리와 적어도 하나의 원격메모리를 포함하는 분리메모리를 관리하는 방법이 제공된다. 메모리 관리 방법은 상기 적어도 하나의 원격메모리 중에서 이주시킬 소스 원격메모리의 각 메모리 페이지에 대해 유효페이지 비율에 따라 원격메모리간 직접전송 또는 지역메모리를 거친 간접전송을 선택하는 단계, 상기 직접전송 또는 상기 간접전송에 따라 상기 소스 원격메모리의 메모리 페이지들을 대상 원격메모리로 전송하는 단계, 그리고 상기 소스 원격메모리를 해제시키는 단계를 포함한다.
상기 선택하는 단계는 상기 소스 원격메모리의 유효페이지 비율이 설정된 파라미터값보다 큰 경우에 전송 모드를 상기 직접전송으로 설정하는 단계, 상기 대상 원격메모리를 할당하는 단계, 직접전송할 메모리 페이지를 선택하는 단계, 그리고 상기 소스 원격메모리에게 선택된 페이지를 상기 대상 원격메모리로 직접전송을 요청하는 단계를 포함할 수 있다.
상기 선택하는 단계는 상기 소스 원격메모리의 유효페이지 비율이 설정된 파라미터값 이하인 경우에 전송 모드를 상기 간접전송으로 설정하는 단계, 상기 대상 원격메모리를 할당하는 단계, 그리고 직접전송 후 남은 메모리 페이지를 상기 지역메모리에 적재시키고 유효페이지 수를 감소시키는 단계를 포함할 수 있다.
상기 선택하는 단계는 상기 지역메모리에서 빅팀 페이지를 선택하는 단계, 그리고 상기 빅팀 페이지를 상기 대상 원격메모리로 전송하는 단계를 더 포함할 수 있다.
상기 빅팀 페이지를 선택하는 단계는 지역메모리의 메모리 페이지 중에서 접근 확률이 낮은 페이지 또는 설정된 기간 동안 사용되지 않은 페이지를 상기 빅팀 페이지로 선택하는 단계를 포함할 수 있다.
상기 해제시키는 단계는 상기 소스 원격메모리의 유효페이지 수가 0이 되면 상기 소스 원격메모리를 중지시키는 단계를 포함할 수 있다.
상기 선택하는 단계는 상기 소스 원격메모리에 쓰기 금지를 설정하는 단계, 그리고 상기 소스 원격메모리에 쓰기 요청이 발생한 경우, 상기 대상 원격메모리로 상기 쓰기 요청을 전달하는 단계를 포함할 수 있다.
본 발명의 다른 한 실시 예에 따르면, 물리노드 상의 가상머신 상에 위치한 분리메모리 관리 장치가 제공된다. 메모리 관리 장치는 분리메모리, 그리고 프로세서를 포함한다. 상기 분리메모리는 지역메모리와 적어도 하나의 원격메모리를 포함한다. 그리고 상기 프로세서는 상기 적어도 하나의 원격메모리 중에서 이주시킬 소스 원격메모리에 쓰기 금지를 설정하고, 상기 소스 원격메모리의 유효페이지 수가 0이 될 때까지 유효페이지비율에 따라서 전송모드를 원격메모리간 직접전송 또는 지역메모리를 거친 간접전송으로 설정하고, 설정된 전송 모드를 통해 상기 소스 원격메모리의 메모리 페이지를 대상 원격메모리로 이주시킨다.
상기 프로세서는 상기 소스 원격메모리의 유효페이지 비율이 설정된 파라미터값보다 큰 경우에 상기 전송 모드를 상기 직접전송으로 설정하고, 상기 소스 원격메모리는 상기 직접전송에 따라 일부 메모리 페이지를 상기 대상 원격메모리로 직접전송하고 상기 유효페이지 수를 감소시킬 수 있다.
상기 프로세서는 접근 확률이 낮은 메모리 페이지를 상기 직접전송할 일부 메모리 페이지로 선택할 수 있다.
상기 프로세서는 상기 소스 원격메모리의 유효페이지 비율이 상기 파라미터값 이하인 경우에 상기 전송 모드를 상기 간접전송으로 설정하고, 상기 직접 전송 후에 남은 메모리 페이지를 상기 지역메모리에 적재시키며, 상기 소스 원격메모리는 유효페이지 수를 감소시킬 수 있다.
상기 프로세서는 상기 지역메모리에서 접근 확률이 낮은 페이지 또는 설정된 기간 동안 사용되지 않은 페이지를 상기 대상 원격메모리로 전송할 수 있다.
상기 프로세서는 상기 소스 원격메모리의 메모리 페이지를 상기 대상 원격메모리로 이주를 완료하기 전에, 상기 소스 원격메모리에 쓰기 요청이 발생한 경우, 상기 대상 원격메모리로 상기 쓰기 요청을 전달할 수 있다.
상기 프로세서는 상기 소스 원격메모리의 유효페이지 수가 0이 되면 상기 소스 원격메모리를 해제시킬 수 있다.
본 발명의 실시 예에 의하면, 메모리 분리 시스템에서 원격메모리의 이주를 동적으로 수행할 수 있다. 즉, 가상머신 상에서 동작하는 커널 및 응용프로그램이 지속적으로 동작하는 상황에서 원격메모리의 위치를 변경함으로써 메모리 자원의 동적 요구 사항에 적응적으로 대응할 수 있고, 하드웨어 장애에 대해서 적극적으로 대응할 수 있게 한다.
도 1은 본 발명의 실시 예에 따른 메모리 분리 시스템의 일 예를 나타낸 도면이다.
도 2는 본 발명의 실시 예에 따른 메모리 분리 시스템에서 가상머신 노드와 메모리노드의 구조를 나타낸 도면이다.
도 3은 본 발명의 실시 예에 따른 분리메모리 관리자의 원격메모리 이주를 설명하는 도면이다.
도 4는 본 발명의 실시 예에 따른 원격메모리 저장 실행 방법을 나타낸 흐름도이다.
도 5는 본 발명의 실시 예에 따른 분리메모리 관리자의 원격메모리 이주 방법을 설명하는 도면이다.
도 6은 본 발명의 실시 예에 따른 원격메모리 이주 방법을 설명하는 흐름도이다.
도 7은 본 발명의 실시 예에 따른 분리메모리 관리자를 나타낸 도면이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 및 청구범위 전체에서, 어떤 부분이 어떤 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
이제 본 발명의 실시 예에 따른 메모리 분리 시스템에서 메모리 관리 방법 및 장치에 대하여 도면을 참고로 하여 상세하게 설명한다.
도 1은 본 발명의 실시 예에 따른 메모리 분리 시스템의 일 예를 나타낸 도면이다.
도 1을 참고하면, 메모리 분리 컴퓨터 랙은 다수의 물리노드로 구성되며, RDMA(Remote Direct Memory Access) 가능 네트워크를 포함한다.
RDMA 가능 네트워크는 원격 시스템의 CPU 처리를 중단하지 않고 원격 시스템의 메모리에 액세스를 할 수 있는 기능을 제공한다.
각 물리노드 내에는 적어도 하나의 가상머신이 동작할 수 있다. 이때 가상머신은 하나 이상의 가상 CPU와 동적으로 구성이 변할 수 있는 가상 메모리로 구성된다. 가상 CPU는 가상머신의 동작에 따라서 물리 CPU에 스케줄링되어 동작한다. 가상 메모리는 가상 CPU의 스케줄링의 대상이 되는 물리 CPU와 동일한 호스트 시스템을 공유하는 지역메모리와 호스트 시스템을 공유하지 않는 다수의 원격메모리로 구성될 수 있다. 이때 각각의 원격메모리는 네트워크에 연결된 다수의 물리노드 상에 위치할 수 있다.
예를 들면, 도 1에서, 물리노드 01에 위치한 가상머신 01은 물리노드 01에 존재하는 지역메모리, 물리노드 02에 위치한 원격메모리 01, 그리고 물리노드 03에 위치한 원격메모리 02를 이용하여 분리메모리를 구성할 수 있으며, 이렇게 구성된 분리메모리가 가상머신 01에서 가상메모리로써 사용된다. 또한 하나의 분리메모리에 대해서 호스트 시스템의 지역메모리를 사용하는 메모리는 가상 CPU가 직접 접근 가능한 메모리로서 직접메모리라 불리고, 원격메모리를 사용하는 메모리는 가상 CPU가 지역메모리를 통해서만 접근 가능한 메모리로 간접메모리라 불린다.
가상머신이 직접메모리 영역에 접근할 경우 가상 CPU가 추가적인 작업 없이 직접메모리에 접근이 가능하다. 하지만 간접메모리 영역에 접근할 경우 가상 CPU는 간접메모리에 접근이 불가능하기 때문에 원격메모리로부터 가상 CPU가 접근한 메모리 페이지를 지역메모리로 페칭(Fetching)한 후 해당 데이터에 접근하게 되며, 가상 CPU가 접근한 데이터 영역은 더 이상 간접메모리가 아닌 직접메모리로써 관리된다.
이때 여러 이유로 인해서 현재 사용되는 원격메모리에 대한 메모리 해제가 요구될 수 있다. 예를 들면, 도 1에 도시된 바와 같이 물리노드 02에서 동작하는 가상머신 02가 지역메모리에 대한 추가적인 요구를 하는 상황이 발생될 수 있다. 여기서, 가상머신 02에서 사용하는 지역메모리는 가상머신 01에서 사용하는 원격메모리 01을 의미한다. 이 상황을 해결하지 못하면 가상머신 02의 정상적인 동작을 지원하지 못하거나 가상머신 02가 지속적으로 원격메모리에 접근해야 하므로 가상머신 02에서 동작하는 응용프로그램의 성능이 크게 낮아질 수 있다. 또한 물리노드 01과 물리노드 02간의 네트워크 상태에 따라 가상머신 01에서 동작하기 위한 데이터가 물리노드 02의 원격메모리 01에 위치해 있는 상황에서, 원격메모리 01로의 네트워크 지연 시간이 증가할 경우, 가상머신 01에서도 원격메모리 접근에 대한 길어진 지연시간으로 성능이 낮아질 수 있다. 또한 물리노드 03에서 하드웨어 장애에 대한 보고가 있을 경우 해당 시스템에 있는 자원을 해제해야 하는데, 현재의 메모리 분리 시스템은 원격메모리에 대한 관리의 부재로 물리노드 03의 유지보수작업을 위해서 물리노드 01에서 동작하고 있는 가상머신 01을 종료시켜야 하는 문제가 있다.
이와 같이, 메모리 분리 시스템은 통상적으로 원격메모리의 동적 이주가 구현되지 않음으로 인해, 메모리 분리 시스템의 자원 활용에 대한 유연성을 저하시키고 하드웨어의 장애에 대응하기 위해서 현재 동작하고 있는 가상머신의 정지가 요구되고 있다. 이러한 문제점을 해결하고자 본 발명의 실시 예에서는 메모리 분리 시스템에서 동작하는 가상머신과 가상머신 상에서 동작하는 운영체제 및 응용프로그램의 중단 없이 메모리 분리 시스템에서 참조하는 원격메모리의 동적 이주를 제공한다.
도 2는 본 발명의 실시 예에 따른 메모리 분리 시스템에서 가상머신 노드와 메모리노드의 구조를 나타낸 도면이다.
도 2를 참고하면, 가상머신 노드 상에 가상머신 운영체제나 적어도 하나의 응용프로그램이 설치 및 실행된다. 또한 가상머신 노드에 존재하는 분리메모리 관리자는 직접메모리와 간접메모리를 관리한다.
분리메모리 관리자는 가상머신으로부터의 간접메모리 접근에 대해서 원격메모리로부터 지역메모리로 메모리데이터를 적재하고, 이로 인해서 부족해진 지역메모리의 공간문제를 해소하기 위해서 지역메모리로부터 접근 확률이 낮거나 최근에 사용되지 않는 메모리 데이터를 선택하여 원격메모리에 저장할 수 있다. 이때 메모리노드에서는 하나의 응용 프로그램에 해당하는 원격메모리 서버 프로그램이 동작하여 원격메모리 커널로부터 원격메모리로 제공할 메모리를 할당 받아 분리메모리 관리자에게 알려주어, 분리메모리 관리자가 원격메모리를 사용할 수 있도록 한다. 메모리노드 상에서 원격메모리 서버 프로그램을 실행시키는 프로세서를 원격메모리서버라고 하며, 원격메모리서버는 메모리노드 상에서 가상머신에게 메모리를 제공하도록 동작한다. 메모리노드는 해당 노드가 가지고 있는 일부 유휴 메모리를 자신 혹은 자신이 아닌 다른 가상머신 노드에 위치하여 동작하고 있는 가상머신에게 제공하는 노드를 의미하며, 원격메모리 서버가 동작하는 물리적 노드를 나타낸다.
원격메모리 서버는 유효페이지 카운터를 통해 각 서버가 저장하고 있는 유효페이지수를 카운트하고, 유효페이지수를 저장한다. 즉, 원격메모리 서버에 대한 저장 요청은 유효페이지수를 증가시키고 원격메모리 서버에 대한 적재 요청은 유효페이지수를 감소시킨다.
도 3은 본 발명의 실시 예에 따른 분리메모리 관리자의 원격메모리 이주를 설명하는 도면이다.
도 3을 참고하면, 가상머신 노드 상의 분리메모리 VMM(virtual machine monitor)은 분리메모리 시스템을 위한 가상머신 모니터로서, 가상머신에서 발생하는 이벤트들을 처리한다. 이때 간접메모리 접근에 대한 처리를 분리메모리 관리자에게 전달하여 처리하도록 동작한다.
메모리노드 001에서 메모리 부족이 발생할 경우, 메모리노드 001는 메모리 부족 상황을 가상머신 노드에서 동작하는 분리메모리 관리자에게 알려준다.
분리메모리 관리자는 관련된 가상머신의 동작을 정지시키고, 메모리노드 001 상의 원격메모리서버 001과 메모리노드 002 상의 원격메모리서버 002에서 가상머신에게 제공하기 위해 할당 받은 메모리 즉, 원격메모리에 대한 접근 방법을 원격메모리서버 001과 원격메모리서버 002로 알려주면, 원격메모리서버 001은 해당 서버의 메모리 데이터를 원격메모리서버002로 전송한다.
원격메모리서버 002로의 메모리 데이터 전송이 끝나면, 해당 가상머신은 원격메모리 001을 더 이상 사용하지 않고 원격메모리 002를 이용하여 동작을 재시작한다.
하지만 가상머신의 정지, 메모리 데이터 전송 및 가상머신의 재시작을 수행해야 하는 방법은 메모리 데이터의 전송량을 최소화할 수 있으나, 이 동작이 이루어지는 동안 가상머신의 동작을 멈춰야 하므로, 가상머신을 통해서 동작하는 응용프로그램 혹은 서비스 등의 중단을 초래한다.
본 발명의 실시 예에서는 크게 두 경로를 이용하여 메모리 분리 시스템의 동작이 이루어짐과 동시에 원격메모리를 이주시킨다. 즉, 본 발명의 실시 예에서는 메모리 분리 시스템에서 동작하는 가상머신과 가상머신 상에서 동작하는 운영체제 및 응용프로그램의 중단 없이 메모리 분리 시스템에서 참조하는 원격메모리를 이주시킨다. 이를 위해서 해당 가상머신이 동작 중에 발생시키는 특정 원격메모리서버에서 제공하는 원격메모리에 대한 읽기 및 쓰기 등의 동작이 특정 원격메모리서버가 현재 위치한 메모리노드에서 다른 메모리노드로 이주하는 것이 동시에 수행되어야 한다.
도 4는 본 발명의 실시 예에 따른 원격메모리 저장 실행 방법을 나타낸 흐름도이다.
도 4에 도시한 바와 같이, 가상머신 상에서 동작하는 분리메모리 관리자는 원격메모리서버를 다른 원격메모리 서버로 이주시키기 위해서 소스 원격메모리서버에 대한 적재는 허용하는 반면, 쓰기동작은 금지한다.
분리메모리 관리자는 원격메모리에 대한 저장 요청을 수신하면(S410), 해당 원격메모리에 대한 쓰기 금지가 설정되어 있는지 확인한다(S420).
분리메모리 관리자는 원격메모리에 대한 쓰기 금지가 설정되어 있지 않은 경우, 원격메모리를 할당하고(S430), 할당된 원격메모리에 저장 동작을 수행한다(S440).
한편, 분리메모리 관리자는 해당 원격메모리에 대한 쓰기 금지가 설정되어 있는 경우, 이주 대상에 해당하는 원격메모리인 것으로 판단하고 쓰기요청을 전달할 새로운 대상원격메모리를 확인한다(S450).
분리메모리 관리자는 새로운 대상원격메모리를 할당한 후(S460), 할당된 대상원격메모리에 저장 동작을 수행한다(S440).
이와 같이, 분리메모리 관리자는 메모리노드 001의 원격메모리서버 001을 메모리노드 002의 원격메모리서버 002로 이주하기 위해서, 원격메모리서버 001에 대한 적재는 허용하는 반면, 쓰기동작은 금지하고, 이주할 원격메모리서버 001로의 쓰기동작이 요청될 경우 원격메모리서버 002에서 처리되도록 한다. 이와 같은 동작은 원격메모리서버 001에 유효페이지의 수를 감소시키고 해당 유효페이지 카운터를 통해 원격메모리서버 001가 해제가능한지를 확인할 수 있도록 한다.
도 5는 본 발명의 실시 예에 따른 분리메모리 관리자의 원격메모리 이주 방법을 설명하는 도면이다.
도 5를 참고하면, 분리메모리 관리자는 분리메모리 맵을 스캔하여 각각의 페이지에 대해서 메모리 접근 확률에 따라 직접전송과 간접전송을 선택한다. 이때 분리메모리 관리자는 먼저 직접 전송할 페이지들을 선택하여 직접전송을 원격메모리서버에게 요청하여 수행한 후, 나머지 페이지들에 대해 간접전송을 이용하여 가상머신이 동작하는 가상머신 노드를 거쳐 전송하도록 한다.
구체적으로, 분리메모리 관리자는 첫 번째 분리메모리 맵 스캔에서 원격메모리서버 001의 이주 시간 동안 메모리가 접근될 확률이 낮은 페이지를 선택하고 선택된 각각의 페이지에 대해서 새로운 원격메모리서버 002의 페이지를 할당하여 직접전송을 요청한다.
예를 들면, 분리메모리 관리자는 분리메모리 맵의 페이지 00에서부터 페이지 09까지 스캔하며 간접메모리를 대상으로 해당 데이터가 접근될 가능성을 예측한다. 분리메모리 관리자는 직접메모리와 가까운 페이지가 다음에 접근될 가능성이 높음을 정의하는 다음-블록 미리 적재 알고리즘에 따라 간접02와 간접05 페이지를 선택하여 이를 원격메모리서버 001로부터 원격메모리서버 002로의 직접전송을 요청할 수 있다. 이후, 두 번째 분리메모리 맵 스캔을 통해 간접03과 간접06 페이지들을 선택하여 직접전송을 요청할 수 있다. 분리메모리 관리자는 두 번의 분리메모리 맵 스캔을 수행하고 나면 초기 6의 유효페이지 카운터가 2로 감소하게 된다. 다음, 분리메모리 관리자는 간접01 페이지와 간접04 페이지에 대해 간접전송을 통해서 원격메모리서버001로부터 가상머신 노드로 적재시킨 후, 일정 시간 동안 해당 페이지가 사용되지 않으면 원격메모리서버 002로 쓰기 요청을 수행한다. 이때, 분리메모리 관리자는 원격메모리서버 001의 유효페이지 비율을 토대로 직접전송 또는 간섭전송을 선택할 수 있으며, 유효페이지 비율과 설정된 파라미터값을 비교하여 직접전송 또는 간섭전송을 결정할 수 있다. 원격메모리서버 001의 유효페이지 비율은 원격메모리서버 001이 제공하는 메모리의 전체 페이지 수 대비 유효한 페이지의 수로 정의된다.
도 6은 본 발명의 실시 예에 따른 원격메모리 이주 방법을 설명하는 흐름도이다.
도 6을 참고하면, 분리메모리 관리자는 소스원격메모리의 이주가 시작되면, 먼저 소스원격메모리에 쓰기 금지를 설정한다(S602). 분리메모리 관리자는 소스원격메모리로의 쓰기 요청이 발생할 경우 새로운 대상원격메모리로 쓰기 요청을 전달한다.
분리메모리 관리자는 소스원격메모리의 유효페이지 수를 확인한다(S604).
분리메모리 관리자는 소스원격메모리의 유효페이지 수가 0이 될 때까지 유효페이지 비율에 따라서 전송모드를 설정한다.
구체적으로, 분리메모리 관리자는 유효페이지 수가 0이 아니면, 유효페이지 비율을 설정된 파라미터값과 비교한다(S606). 분리메모리 관리자는 유효페이지 비율이 파라미터값보다 크면(S608), 전송모드를 직접전송으로 설정하고(S610), 분리메모리맵을 스캔하여 콜드페이지 셋(cold page set)을 확인한다(S612, S614). 분리메모리 관리자는 콜드페이지 셋을 위한 대상원격메모리를 할당하고(S616), 분리메모리맵에서 직접전송할 페이지를 선택하고, 선택된 페이지에 대한 직접전송을 소스원격메모리에게 요청한다(S618). 콜드 페이지 셋은 소스원격메모리에 위치하면서 아직 대상원격메모리로 전송되지 않은 페이지들의 집합을 의미한다. 소스원격메모리는 선택된 페이지를 직접 대상원격메모리로 전송 완료한 후 유효페이지 카운터를 통해 유효페이지 수를 감소시키고, 대기한다(S620).
분리메모리 관리자는 유효페이지 비율이 파라미터값 이하이면(S608) 전송모드를 간접전송으로 설정하고(S622), 분리메모리맵을 스캔하여 콜드페이지 셋을 확인한다(S624, S626). 분리메모리 관리자는 콜드페이지 셋을 위한 대상원격메모리를 할당하고(S628), 직접 전송 후에 남은 페이지를 가상머신 노드의 직접메모리에 적재하고(S630), 유효페이지 카운터를 통해 유효페이지 수를 감소시키고, 대기한다. 다음, 분리메모리 관리자는 직접메모리로부터 빅팀페이지(victim page)를 선택하고(S632), 빅팀페이지를 대상원격메모리로 전송하고(S634), 대기한다(S622). 이때 분리메모리 관리자는 접근 확률이 낮은 페이지를 빅팀페이지로 선택할 수 있다. 분리메모리 관리자는 최근에 사용되지 않은 페이지를 빅팀페이지로 선택할 수 있다.
분리메모리 관리자는 소스원격메모리의 유효 페이지 수가 0이 될 때까지 단계(S608~S634)를 반복한다. 분리메모리 관리자는 소스원격메모리에 이주할 페이지가 많은 경우, 직접 전송을 통해 빠르게 대상원격메모리로 일부 페이지를 빠르게 전송하고, 유효페이지 비율이 파라미터값 이하가 되면 간접 전송을 통해서 나머지 페이지들을 전송한다.
한편, 분리메모리 관리자는 소스원격메모리의 유효 페이지 수가 0이 되면(S606), 소스원격메모리를 중지시키고(S636), 소스원격메모리를 해제함으로써(S638), 원격메모리 이주를 종료한다.
도 7은 본 발명의 다른 실시 예에 따른 분리메모리 관리자를 나타낸 도면으로, 도 4 내지 도 6을 참고하여 설명한 분리메모리 관리자의 분리메모리 관리 기능 중 적어도 일부를 수행하는 데 사용할 수 있는 시스템을 나타낸다.
도 7을 참고하면, 분리메모리 관리 장치(700)는 프로세서(710), 메모리(720), 저장 장치(730) 및 입출력(input/output, I/O) 인터페이스(740)를 포함한다.
프로세서(710)는 중앙 처리 유닛(central processing unit, CPU)이나 기타 칩셋, 마이크로프로세서 등으로 구현될 수 있다.
메모리(720)는 동적 랜덤 액세스 메모리(dynamic random access memory, DRAM), 램버스 DRAM(rambus DRAM, RDRAM), 동기식 DRAM(synchronous DRAM, SDRAM), 정적 RAM(static RAM, SRAM) 등의 RAM과 같은 매체로 구현될 수 있다.
저장 장치(730)는 하드 디스크(hard disk), CD-ROM(compact disk read only memory), CD-RW(CD rewritable), DVD-ROM(digital video disk ROM), DVD-RAM, DVD-RW 디스크, 블루레이(blu-ray) 디스크 등의 광학 디스크, 플래시 메모리, 다양한 형태의 RAM과 같은 영구 또는 휘발성 저장 장치로 구현될 수 있다.
I/O 인터페이스(740)는 프로세서(710) 및/또는 메모리(720)가 저장 장치(730)에 접근할 수 있도록 한다. 메모리(720) 또는 저장 장치(730)는 가상머신이 사용하는 가상 메모리를 포함할 수 있다. 또한 I/O 인터페이스(740)는 외부 예를 들면, 사용자와의 인터페이스를 제공할 수 있다.
프로세서(710)는 도 4 내지 도 6에서 설명한 분리메모리 관리자의 분리메모리 관리 기능을 수행할 수 있으며, 분리메모리 관리 기능을 구현하기 위한 프로그램 명령을 메모리(720)에 로드시켜, 도 4 내지 도 6을 참고로 하여 설명한 동작이 수행되도록 제어할 수 있다. 그리고 이러한 프로그램 명령은 저장 장치(730)에 저장되어 있을 수 있으며, 또는 네트워크로 연결되어 있는 다른 시스템에 저장되어 있을 수 있다.
이상에서 본 발명의 실시 예에 대하여 상세하게 설명하였지만 본 발명의 권리 범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리 범위에 속하는 것이다.

Claims (14)

  1. 물리노드 상의 가상머신에 위치한 분리메모리 관리 장치에서 상기 가상머신이 사용하는 지역메모리와 적어도 하나의 원격메모리를 포함하는 분리메모리를 관리하는 방법으로서,
    상기 적어도 하나의 원격메모리 중에서 이주시킬 소스 원격메모리의 각 메모리 페이지에 대해 유효페이지 비율에 따라 원격메모리간 직접전송 또는 지역메모리를 거친 간접전송을 선택하는 단계,
    상기 직접전송 또는 상기 간접전송에 따라 상기 소스 원격메모리의 메모리 페이지들을 대상 원격메모리로 전송하는 단계, 그리고
    상기 소스 원격메모리를 해제시키는 단계
    를 포함하는 메모리 관리 방법.
  2. 제1항에서,
    상기 선택하는 단계는
    상기 소스 원격메모리의 유효페이지 비율이 설정된 파라미터값보다 큰 경우에 전송 모드를 상기 직접전송으로 설정하는 단계,
    상기 대상 원격메모리를 할당하는 단계,
    직접전송할 메모리 페이지를 선택하는 단계, 그리고
    상기 소스 원격메모리에게 선택된 페이지를 상기 대상 원격메모리로 직접전송을 요청하는 단계를 포함하는 메모리 관리 방법.
  3. 제1항에서,
    상기 선택하는 단계는
    상기 소스 원격메모리의 유효페이지 비율이 설정된 파라미터값 이하인 경우에 전송 모드를 상기 간접전송으로 설정하는 단계,
    상기 대상 원격메모리를 할당하는 단계, 그리고
    직접전송 후 남은 메모리 페이지를 상기 지역메모리에 적재시키고 유효페이지 수를 감소시키는 단계를 포함하는 메모리 관리 방법.
  4. 제3항에서,
    상기 선택하는 단계는
    상기 지역메모리에서 빅팀 페이지를 선택하는 단계, 그리고
    상기 빅팀 페이지를 상기 대상 원격메모리로 전송하는 단계를 더 포함하는 메모리 관리 방법.
  5. 제4항에서,
    상기 빅팀 페이지를 선택하는 단계는 지역메모리의 메모리 페이지 중에서 접근 확률이 낮은 페이지 또는 설정된 기간 동안 사용되지 않은 페이지를 상기 빅팀 페이지로 선택하는 단계를 포함하는 메모리 관리 방법.
  6. 제1항에서,
    상기 해제시키는 단계는 상기 소스 원격메모리의 유효페이지 수가 0이 되면 상기 소스 원격메모리를 중지시키는 단계를 포함하는 메모리 관리 방법.
  7. 제1항에서,
    상기 선택하는 단계는
    상기 소스 원격메모리에 쓰기 금지를 설정하는 단계, 그리고
    상기 소스 원격메모리에 쓰기 요청이 발생한 경우, 상기 대상 원격메모리로 상기 쓰기 요청을 전달하는 단계를 포함하는 메모리 관리 방법.
  8. 물리노드 상의 가상머신 상에 위치한 분리메모리 관리 장치에서,
    지역메모리와 적어도 하나의 원격메모리를 포함하는 분리메모리, 그리고
    상기 적어도 하나의 원격메모리 중에서 이주시킬 소스 원격메모리에 쓰기 금지를 설정하고, 상기 소스 원격메모리의 유효페이지 수가 0이 될 때까지 유효페이지비율에 따라서 전송모드를 원격메모리간 직접전송 또는 지역메모리를 거친 간접전송으로 설정하고, 설정된 전송 모드를 통해 상기 소스 원격메모리의 메모리 페이지를 대상 원격메모리로 이주시키는 프로세서
    를 포함하는 메모리 관리 장치.
  9. 제8항에서,
    상기 프로세서는 상기 소스 원격메모리의 유효페이지 비율이 설정된 파라미터값보다 큰 경우에 상기 전송 모드를 상기 직접전송으로 설정하고,
    상기 소스 원격메모리는 상기 직접전송에 따라 일부 메모리 페이지를 상기 대상 원격메모리로 직접전송하고 상기 유효페이지 수를 감소시키는 메모리 관리 장치.
  10. 제9항에서,
    상기 프로세서는 접근 확률이 낮은 메모리 페이지를 상기 직접전송할 일부 메모리 페이지로 선택하는 메모리 관리 장치.
  11. 제9항에서,
    상기 프로세서는 상기 소스 원격메모리의 유효페이지 비율이 상기 파라미터값 이하인 경우에 상기 전송 모드를 상기 간접전송으로 설정하고, 상기 직접 전송 후에 남은 메모리 페이지를 상기 지역메모리에 적재시키며,
    상기 소스 원격메모리는 유효페이지 수를 감소시키는 메모리 관리 장치.
  12. 제11항에서,
    상기 프로세서는 상기 지역메모리에서 접근 확률이 낮은 페이지 또는 설정된 기간 동안 사용되지 않은 페이지를 상기 대상 원격메모리로 전송하는 메모리 관리 장치.
  13. 제8항에서,
    상기 프로세서는 상기 소스 원격메모리의 메모리 페이지를 상기 대상 원격메모리로 이주를 완료하기 전에, 상기 소스 원격메모리에 쓰기 요청이 발생한 경우, 상기 대상 원격메모리로 상기 쓰기 요청을 전달하는 메모리 관리 장치.
  14. 제8항에서,
    상기 프로세서는 상기 소스 원격메모리의 유효페이지 수가 0이 되면 상기 소스 원격메모리를 해제시키는 메모리 관리 장치.
KR1020200072032A 2020-06-15 2020-06-15 메모리 분리 시스템에서 메모리 관리 방법 및 장치 KR102392121B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020200072032A KR102392121B1 (ko) 2020-06-15 2020-06-15 메모리 분리 시스템에서 메모리 관리 방법 및 장치
US17/324,883 US11586549B2 (en) 2020-06-15 2021-05-19 Method and apparatus for managing memory in memory disaggregation system
US18/158,953 US11947463B2 (en) 2020-06-15 2023-01-24 Method and apparatus for managing memory in memory disaggregation system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200072032A KR102392121B1 (ko) 2020-06-15 2020-06-15 메모리 분리 시스템에서 메모리 관리 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20210155059A KR20210155059A (ko) 2021-12-22
KR102392121B1 true KR102392121B1 (ko) 2022-04-29

Family

ID=78825482

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200072032A KR102392121B1 (ko) 2020-06-15 2020-06-15 메모리 분리 시스템에서 메모리 관리 방법 및 장치

Country Status (2)

Country Link
US (2) US11586549B2 (ko)
KR (1) KR102392121B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110271014A1 (en) 2010-04-29 2011-11-03 Yoshio Turner Direct i/o device access by a virtual machine with memory managed using memory disaggregation

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9753831B2 (en) 2012-05-30 2017-09-05 Red Hat Israel, Ltd. Optimization of operating system and virtual machine monitor memory management
US9128825B1 (en) * 2013-05-17 2015-09-08 Google Inc. Optimizing allocation of flash memory to file groups
US9053068B2 (en) 2013-09-25 2015-06-09 Red Hat Israel, Ltd. RDMA-based state transfer in virtual machine live migration
KR20150043102A (ko) 2013-10-14 2015-04-22 한국전자통신연구원 하이브리드 메모리의 데이터 관리 장치 및 방법
CA2916822A1 (en) * 2015-01-07 2016-07-07 Mover Inc. Method and system for transferring data between storage systems
US10860508B2 (en) * 2017-05-25 2020-12-08 Western Digital Technologies, Inc. Offloaded disaggregated storage architecture
KR20190005307A (ko) * 2017-07-06 2019-01-16 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10509728B2 (en) * 2017-09-29 2019-12-17 Intel Corporation Techniques to perform memory indirection for memory architectures
KR102469927B1 (ko) * 2017-10-16 2022-11-23 한국전자통신연구원 분할 메모리 관리장치 및 방법
US10754547B2 (en) 2017-10-16 2020-08-25 Electronics And Telecommunications Research Institute Apparatus for managing disaggregated memory and method thereof
KR102441992B1 (ko) * 2017-11-09 2022-09-08 한국전자통신연구원 분리 메모리 관리 방법 및 장치
US10789090B2 (en) 2017-11-09 2020-09-29 Electronics And Telecommunications Research Institute Method and apparatus for managing disaggregated memory
TWI653538B (zh) * 2017-11-13 2019-03-11 慧榮科技股份有限公司 資料儲存裝置與記憶體裝置之資料處理方法
KR102292389B1 (ko) * 2018-01-17 2021-08-25 한국전자통신연구원 원격 직접 메모리 접근을 통한 분산 처리 장치 및 그 방법
US10838621B2 (en) * 2018-08-14 2020-11-17 Silicon Motion, Inc. Method and flash memory controller capable of avoiding inefficient memory block swap or inefficient garbage collection

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110271014A1 (en) 2010-04-29 2011-11-03 Yoshio Turner Direct i/o device access by a virtual machine with memory managed using memory disaggregation

Also Published As

Publication number Publication date
US20230161708A1 (en) 2023-05-25
KR20210155059A (ko) 2021-12-22
US11947463B2 (en) 2024-04-02
US11586549B2 (en) 2023-02-21
US20210390056A1 (en) 2021-12-16

Similar Documents

Publication Publication Date Title
US10552272B2 (en) Maintaining high availability during N-node failover
US20210117220A1 (en) Unified resource scheduling coordinator, method for creating a virtual machine and/or container, and unified resource scheduling system
KR970001901B1 (ko) 멀티 프로세서 메모리 관리 방법 및 장치
EP1089173B1 (en) Dynamic adjustment of the number of logical processors assigned to a logical partition
US9588789B2 (en) Management apparatus and workload distribution management method
US9055119B2 (en) Method and system for VM-granular SSD/FLASH cache live migration
JP5186367B2 (ja) メモリ・マイグレーションのシステムおよび方法
RU2569805C2 (ru) Виртуальная архитектура неоднородной памяти для виртуальных машин
US8332611B2 (en) Method and system for managing memory
US20130104129A1 (en) Virtual-machine control system and virtual-machine moving method
US20080307425A1 (en) Data Processing System and Method
WO2012147116A1 (en) Computer system and virtual machine control method
EP4239473A1 (en) Container-based application management method and apparatus
US8056084B2 (en) Method and system for dynamically reallocating a resource among operating systems without rebooting of the computer system
US9904639B2 (en) Interconnection fabric switching apparatus capable of dynamically allocating resources according to workload and method therefor
US8677374B2 (en) Resource management in a virtualized environment
US11861196B2 (en) Resource allocation method, storage device, and storage system
JP2002041304A (ja) 論理区画の予備リソース自動付与方法及び論理区画式計算機システム
JP2012181627A (ja) 電力制御装置及び電力制御方法
JP2010157234A (ja) 効率的なリマッピング・エンジンの利用
JP2005100387A (ja) 計算機システム及びクラスタシステム用プログラム
CN113031857B (zh) 数据写入方法、装置、服务器及存储介质
US20210311767A1 (en) Storage system, storage device therefor, and operating method thereof
KR102392121B1 (ko) 메모리 분리 시스템에서 메모리 관리 방법 및 장치
JP2022034455A (ja) 計算機システムおよび管理方法

Legal Events

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