KR20210058609A - Numa 시스템에서 메모리 버스에 연결하여 사용하는 저장장치의 할당 방법 - Google Patents

Numa 시스템에서 메모리 버스에 연결하여 사용하는 저장장치의 할당 방법 Download PDF

Info

Publication number
KR20210058609A
KR20210058609A KR1020200013793A KR20200013793A KR20210058609A KR 20210058609 A KR20210058609 A KR 20210058609A KR 1020200013793 A KR1020200013793 A KR 1020200013793A KR 20200013793 A KR20200013793 A KR 20200013793A KR 20210058609 A KR20210058609 A KR 20210058609A
Authority
KR
South Korea
Prior art keywords
node
space
storage device
mbs
storage space
Prior art date
Application number
KR1020200013793A
Other languages
English (en)
Other versions
KR102565873B1 (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 서강대학교산학협력단
Publication of KR20210058609A publication Critical patent/KR20210058609A/ko
Application granted granted Critical
Publication of KR102565873B1 publication Critical patent/KR102565873B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1657Access to multiple memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1847File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
    • 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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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/0662Virtualisation aspects
    • G06F3/0667Virtualisation aspects at data level, e.g. file, record or object virtualisation

Abstract

적어도 하나의 프로세서에 의해 동작하는 컴퓨팅 장치의 동작 방법으로서, 저장장치가 설치된 각 노드의 저장 여유 공간을 관리하는 단계, 임의의 노드에서 실행된 프로세스로부터 파일 쓰기 요청과 상기 파일 쓰기 요청에 따른 저장 공간 할당 요청을 입력받는 단계, 그리고 미리 설정된 저장 공간 할당 정책에 따라, 상기 프로세스가 실행된 상기 임의의 노드에 속한 저장장치의 공간을 할당하거나 또는 상기 임의의 노드와 다른 노드에 속한 저장장치의 공간을 할당하는 단계를 포함한다.

Description

NUMA 시스템에서 메모리 버스에 연결하여 사용하는 저장장치의 할당 방법{METHOD FOR ALLOCATING MEMORY BUS CONNECTED STORAGE IN NUMA SYSTEM}
본 발명은 NUMA 시스템에서 메모리 버스에 연결하여 사용하는 저장장치를 할당하는 기술에 관한 것이다.
고성능 컴퓨팅(High Performance Computing)의 응용(Application)들은 불시에 발생할 수 있는 장애에 대비하여 응용 또는 시스템의 동작 상태를 영구 저장장치에 기록하는 체크포인팅(Checkpointing), 로깅(Logging) 등의 기법을 사용한다. 이러한 장애 대응 기법의 사용은 파일 사용의 안정성을 높이나, 중복 쓰기로 인해 전체적인 파일처리 성능을 떨어뜨린다. 따라서 성능 손실을 최소화 하기 위해 빠른 파일 쓰기 성능이 요구된다.
빠른 파일 쓰기를 위하여 빠른 저장장치 사용이 증가하고 있다. 한 예로서 메모리 버스에 연결하여 사용하는 메모리 저장장치(Memory Bus connected Storage, 이하 'MBS'라고 호칭함)가 수십 개 이상의 코어가 있는 매니코어(Many-Core) NUMA(Non-Uniform Memory Access) 구조의 시스템에 설치되어 사용된다.
그러나 리눅스가 설치된 NUMA 시스템에서 느린 저장장치 사용을 전제로 발전해 온 여러 단계의 소프트웨어 처리 경로를 아직까지 사용하고 있으며, MBS가 설치된 것을 인지하지 못하고 사용하고 있기 때문에 높은 파일 처리 성능을 얻지 못하고 있다.
한편 NUMA 시스템은 중앙 처리 장치(CPU)와 메모리 버스에 연결된 장치와의 거리에 따라 접근 지연 시간이 다르며, 이때 접근 지연 시간은 MBS를 사용하는 응용의 파일 처리 성능에 영향을 줄 수 있다.
따라서, NUMA 시스템의 특성을 고려하여 빠른 MBS의 성능 특성을 활용할 필요성이 대두된다.
해결하고자 하는 과제는 MBS 할당 요청에 대해, 접근 지연 시간이 낮고 높은 파일 처리 성능을 얻을 수 있는 MBS를 선택하여 저장 공간을 할당해 주는 방법을 제공하는 것이다.
또한, 해결하고자 하는 과제는 빠른 속도의 MBS의 특성을 고려하여, 적절하지 않은 파일 처리 경로를 간소화하는 방법을 제공하는 것이다.
한 실시예에 따른 적어도 하나의 프로세서에 의해 동작하는 컴퓨팅 장치의 동작 방법으로서, 저장장치가 설치된 각 노드의 저장 여유 공간을 관리하는 단계, 임의의 노드에서 실행된 프로세스로부터 파일 쓰기 요청과 상기 파일 쓰기 요청에 따른 저장 공간 할당 요청을 입력받는 단계, 그리고 미리 설정된 저장 공간 할당 정책에 따라, 상기 프로세스가 실행된 상기 임의의 노드에 속한 저장장치의 공간을 할당하거나 또는 상기 임의의 노드와 다른 노드에 속한 저장장치의 공간을 할당하는 단계를 포함한다.
상기 관리하는 단계는, 상기 각 노드를 미리 설정된 기준값보다 큰 저장 여유 공간을 갖고 있는 후보 노드와, 상기 기준값보다 작거나 같은 저장 여유 공간을 갖고 있는 비만 노드로 구분할 수 있다.
상기 관리하는 단계는, 메모리 버스에 연결된 상기 저장장치의 물리 주소를 포함하는 설치 정보를 수집하는 단계, 그리고 상기 설치 정보를 바탕으로 상기 저장장치가 설치된 노드를 판단하는 단계를 포함할 수 있다.
상기 수집하는 단계는, 상기 물리 주소와 시스템의 메모리 친화 정보를 이용하여 상기 저장장치가 설치된 물리 주소를 수집할 수 있다.
상기 컴퓨팅 장치는 비균일 메모리 액세스(Non-Uniform Memory Access, NUMA) 구조의 시스템으로 동작하고, 상기 저장장치는 메모리 버스에 연결하여 사용하는 메모리 저장장치(Memory Bus connected Storage, MBS)일 수 있다.
상기 저장 공간 할당 정책은, 상기 임의의 노드에 속한 저장장치의 공간을 할당하는 로컬 정책과, 상기 임의의 노드를 포함하는 복수의 노드들에 속한 저장장치의 공간을 순차적으로 할당하는 스트라이핑 정책 중 어느 하나일 수 있다.
상기 저장 공간 할당 정책은, 상기 컴퓨팅 장치의 입출력 제어(I/O Control) 인터페이스를 통해 응용을 실행시키는 과정에서 상기 로컬 정책 또는 상기 스트라이핑 정책 중 어느 하나로 설정될 수 있다.
다른 실시예에 따른 적어도 하나의 프로세서에 의해 동작하는 컴퓨팅 장치의 동작 방법으로서, 저장장치와 중앙 처리 장치를 포함하는 각 노드의 저장 여유 공간을 관리하는 단계, 임의의 노드에서 실행된 프로세스로부터 저장 공간 할당 요청을 입력받는 단계, 그리고 상기 프로세스가 실행된 상기 임의의 노드로부터 접근 시간이 가장 짧은 노드에 속한 저장장치의 공간을 할당하는 단계를 포함하고, 상기 컴퓨팅 장치는 비균일 메모리 액세스(Non-Uniform Memory Access, NUMA) 구조의 시스템이다.
상기 관리하는 단계는, 상기 각 노드의 저장 여유 공간을 모니터링하여, 미리 설정된 기준값보다 큰 저장 여유 공간을 갖고 있는 노드를 후보 노드로 설정하고, 상기 기준값보다 작거나 같은 저장 여유 공간을 갖고 있는 노드를 비만 노드로 설정할 수 있다.
상기 저장장치는 메모리 버스에 연결하여 사용하는 메모리 저장장치(Memory Bus connected Storage, MBS)이고, 상기 중앙 처리 장치는 복수의 코어(Core)를 포함할 수 있다.
상기 할당하는 단계는, 상기 임의의 노드에 속한 저장장치의 저장 여유 공간을 확인하는 단계, 그리고 상기 임의의 노드에 속한 저장장치의 저장 여유 공간이 없으면, 상기 임의의 노드와 다른 노드들 중 접근 시간이 짧은 노드들의 저장 공간을 순차적으로 할당하는 단계를 포함할 수 있다.
상기 할당하는 단계는, 상기 저장 여유 공간을 2로 반복하여 나누고, 요청된 저장 공간의 크기와 가장 가까운 크기의 메모리를 할당하는 버디 메모리 할당(Buddy Memory Allocation) 방법을 이용할 수 있다.
본 발명에 따르면 리눅스 커널에서 MBS의 특성을 고려하여 파일 처리 경로를 단순화하므로, 불필요한 오버헤드로 인한 성능 손실을 방지하고, 파일 처리 성능을 개선할 수 있다.
또한, 본 발명에 따르면 접근 지연 시간을 최소화 할 수 있는 노드의 MBS로 부터 저장 공간을 할당받을 수 있으므로 시스템의 성능을 개선시킬 수 있다.
도 1은 NUMA 시스템의 구조를 나타낸 설명도이다.
도 2는 기존의 MBS를 사용하는 방법에 대한 설명도이다.
도 3은 기존 파일시스템의 소프트웨어 계층을 나타내는 구성도이다.
도 4는 한 실시예에 따른 저장장치 관리부가 설치된 환경의 소프트웨어 계층을 나타내는 구성도이다.
도 5는 한 실시예에 따른 저장장치 관리부의 구성도이다.
도 6은 한 실시예에 따른 NUMA 시스템에서 MBS가 설치되는 구조를 나타낸 예시도이다.
도 7은 한 실시예에 따른 주소 관리부의 동작 방법의 설명도이다.
도 8은 한 실시예에 따른 공간 관리부가 노드를 관리하는 방법의 설명도이다.
도 9는 한 실시예에 따른 모니터링부가 노드를 관리하는 방법의 흐름도이다.
도 10은 한 실시예에 따른 공간 관리부가 MBS를 할당하는 방법의 설명도이다.
도 11은 다른 실시예에 따른 공간 관리부가 MBS를 할당하는 방법의 설명도이다.
도 12는 한 실시예에 따른 저장장치 관리부가 노드를 관리하는 방법의 흐름도이다.
도 13은 한 실시예에 따른 저장장치 관리부가 저장 공간을 할당하는 방법의 흐름도이다.
도 14는 한 실시예에 따른 컴퓨팅 장치의 하드웨어 구성도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "…부", "…기", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
도 1은 NUMA 시스템의 구조를 나타낸 설명도이다.
도 1의 (a)를 참고하면, 수십 개 이상의 코어가 있는 매니코어(Many-Core) 비균일 메모리 액세스(Non-Uniform Memory Access, 이하 'NUMA'라고 호칭함) 구조의 시스템에, 메모리 버스에 연결하여 사용하는 저장장치(Memory Bus connected Storage, 이하 'MBS'라고 호칭함)가 설치될 수 있다. 이러한 시스템 구조는 빠른 파일 데이터 입출력 처리를 필요로 하는 다양한 분야에서 사용될 수 있다.
이 때 코어와 사용하고자 하는 메모리의 위치에 따라 지역 접근(Local Access)과 원격 접근(Remote Access)으로 구분된다. 예를 들어 노드 0의 CPU에서 노드 0의 메모리 버스에 연결된 DRAM으로 접근하는 것은 지역 접근이고, 노드 1의 CPU에서 노드 0의 메모리 버스에 연결된 DRAM으로 접근하는 것은 원격 접근이다.
도 1의 (b)를 참고하면, NUMA 구조의 시스템에서 MBS를 사용할 때, 중앙 처리 장치(Central Processing Unit, CPU)와 메모리 노드 간의 거리에 따라 접근 지연 시간(Access Latency)이 서로 다름을 알 수 있다.
예를 들어, 노드 0, 노드 1, 노드 2, 노드 3에서 각각 노드 0의 메모리 버스에 연결된 DRAM으로 접근하는 시간은 노드 0에서의 접근 시간이 가장 짧고, 노드 2에서의 접근 시간이 가장 길다.
한편, 각 노드에 설치된 MBS들을 블록 저장장치(Block Storage Device)로 사용하기 위해 2가지의 방법이 이용된다. 이하 도 2를 통해 설명한다.
도 2는 기존의 MBS를 사용하는 방법에 대한 설명도이다.
도 2의 (a)를 참고하면, 블록 저장장치의 사용을 전제로 설계된 파일시스템은, 논리적 볼륨 관리자(Logical Volume Manager)를 이용하여 각 노드에 설치된 MBS들을 하나의 주소 공간에서 사용할 수 있다.
논리적 볼륨 관리자를 사용하여 각 노드에 설치된 MBS들을 하나의 장치로 마운트하면, 시스템에 설치된 MBS의 저장 공간을 모두 사용할 수 있다.
그러나 논리적 볼륨 관리자의 실행과정에서 오버헤드가 발생하고, 이 방법은 전통적인 블록 저장장치 사용을 기반으로 설계되었기 때문에 응용이 실행되고 있는 노드에 설치된 MBS를 사용할 수 없다. 따라서 접근 지연 시간이 짧은 MBS를 선택하여 사용할 수 없는 문제가 있다.
도 2의 (b)를 참고하면, 사용자 또는 관리자가 시스템에 설치된 MBS들을 노드 별로 파일 위치를 직접 지정하여 각 노드에 설치된 MBS들을 서로 다른 주소 공간에서 사용할 수 있다.
사용자 또는 관리자가 NUMA 시스템이라는 것을 인식하고, MBS가 설치된 노드에서만 프로세스가 실행되도록 설정하면, 접근 지연 시간이 가장 짧은 MBS를 사용할 수 있어 높은 파일 처리 성능을 얻을 수 있다.
그러나 별도의 설정이 없는 경우, 운영체제는 스스로 NUMA 구조에서 MBS와 프로세스간의 접근 지연 시간을 고려하여 MBS 공간을 할당할 수 없다. 따라서 프로세스가 실행되는 노드에서 접근 지연 시간이 가장 짧은 MBS를 사용할 수 있다는 것이 보장되지 않을 수 있다.
따라서 본 명세서에서는, NUMA 환경을 고려하여 MBS를 사용하는 방법을 제안한다.
도 3은 기존 파일시스템의 소프트웨어 계층을 나타내는 구성도이고, 도 4는 한 실시예에 따른 저장장치 관리부가 설치된 환경의 소프트웨어 계층을 나타내는 구성도이다.
도 3을 참고하면, 오랫동안 사용되어 온 모터 기반의 느린 저장장치는 휘발성 메모리인 DRAM(Dynamic Random Access Memory)보다 접근 지연 시간이 크고 느린 장치 버스에 연결되어 사용되었다. 파일 처리 성능을 높이기 위해 저장장치로의 접근을 최소화하고, 이를 위해 여러 단계의 소프트웨어 계층이 존재한다.
한 예로서, 블록 기반의 물리적 저장장치 여러 개를 하나의 논리 주소 공간에서 사용하기 위한 논리적 볼륨 관리자(Logical Volume Manager)가 사용되었다.
논리적 볼륨 관리자는 각 노드에 분산 설치된 공간을 하나의 논리적 주소 공간으로 만들기 위해서, 사용하는 물리 장치들을 볼륨 집단으로 만들고 볼륨 집단들을 논리적 볼륨으로 만들어 사용한다. 이 과정에서 오버헤드가 발생하는데 이는 전체 파일 처리 성능을 떨어뜨리는 요인으로 작용할 수 있다.
도 4를 참고하면, 도 3과 달리 각 노드에 분산 설치된 MBS를 하나의 주소 공간에서 사용하기 위한 논리적 볼륨 관리자 등의 소프트웨어 계층이 없으며, 대신 저장장치 관리부(1000)가 존재한다.
저장장치 관리부(1000)는 본 명세서에서 설명하는 동작들을 수행하며, MBS의 주소 공간을 관리하고, 각 노드에서 사용 가능한 MBS의 가용 공간을 고려하여 노드들을 관리한다. MBS 할당 요청이 발생하면, 설정된 정책에 따라 높은 파일 처리 성능을 얻을 수 있는 MBS를 선택하여 저장 공간을 할당한다. 이하 도 5를 통해 저장장치 관리부(1000)의 역할에 대해 자세히 설명한다.
도 5는 한 실시예에 따른 저장장치 관리부의 구성도이다.
도 5를 참고하면, 저장장치 관리부(1000)는 주소 관리부(100), 공간 관리부(200), 모니터링부(300)를 포함한다.
설명을 위해, 주소 관리부(100), 공간 관리부(200), 모니터링부(300)로 명명하여 부르나, 이들은 적어도 하나의 프로세서에 의해 동작하는 컴퓨팅 장치이다. 여기서, 주소 관리부(100), 공간 관리부(200), 모니터링부(300)는 하나의 컴퓨팅 장치에 구현되거나, 별도의 컴퓨팅 장치에 분산 구현될 수 있다. 별도의 컴퓨팅 장치에 분산 구현된 경우, 주소 관리부(100), 공간 관리부(200), 모니터링부(300)는 통신 인터페이스를 통해 서로 통신할 수 있다. 컴퓨팅 장치는 본 발명을 수행하도록 작성된 소프트웨어 프로그램을 실행할 수 있는 장치이면 충분하고, 예를 들면, 서버, 랩탑 컴퓨터 등일 수 있다.
주소 관리부(100)는 메모리 버스에 연결된 MBS와 DRAM을 구분하고, MBS가 설치된 노드 번호를 지정하여 관리하는 역할을 한다. 주소 관리부(100)의 자세한 역할은 도 7을 통해 설명한다.
공간 관리부(200)는 할당과 회수를 통해 MBS 자원을 관리하며, 각 노드에서 사용 가능한 MBS 여유 공간 크기를 파악하여, 기준값보다 큰 여유 공간을 갖는 후보 노드와 그렇지 않은 비만 노드로 구분하여 관리할 수 있다.
공간 관리부(200)는 MBS 할당 정책에 따라 빠른 파일 쓰기가 가능한 위치의 MBS를 할당한다. 공간 관리부(200)가 수행하는 MBS 할당 정책은 시뮬레이션에 의해 결정될 수 있다. 구체적으로, 파일 처리 크기(블록)에 따른 CPU와 MBS 간 거리와의 관계를 프로파일링하고 수집된 데이터를 바탕으로 어떤 노드의 MBS의 저장 공간을 할당받아 사용하는 것이 높은 파일 처리 성능을 기대할 수 있는지 모델링할 수 있다.
예를 들어, 4개의 노드 또는 8개의 노드가 있는 NUMA 시스템에서 하나의 노드에 있는 CPU에서만 40개의 프로세스가 다양한 블록 크기로 무작위 쓰기를 수행하고, 프로세스가 동작하는 노드와 사용하는 MBS가 있는 노드의 위치에 따라 성능 차이를 확인할 수 있다.
실험 결과에 따라 프로세스가 동작하는 노드와 사용하는 MBS가 설치된 노드가 같을 때 가장 높은 성능을 얻을 수 있고, 다른 노드에 설치된 MBS를 사용할 때 가장 낮은 성능을 보임을 알 수 있다.
한편 다른 노드에 설치된 MBS를 사용하는 경우에도, 하나의 원격 노드에 있는 MBS를 사용할 때보다 여러 노드에 설치된 MBS를 순차적으로 사용하면 높은 파일 처리 성능을 보임을 알 수 있다.
따라서 공간 관리부(200)는 이 결과를 MBS 할당 정책에 반영하여, 프로세스가 동작하는 동일 노드의 MBS 공간을 할당하는 로컬 정책과 여러 노드에 설치된 MBS를 순차적으로 할당하는 스트라이핑 정책을 설정할 수 있다. 할당 정책에 관한 자세한 동작 방법은 도 8 내지 도 10을 통해 설명한다.
모니터링부(300)는 공간 관리부(200)에 의해 구분된 후보 노드와 비만 노드의 여유 공간 크기를 주기적으로 감시하여, 여유 공간 크기가 변함에 따라 노드의 상태를 변경한다. 모니터링부(300)의 자세한 동작 방법은 도 11을 통해 설명한다.
한편 저장장치 관리부(1000)는 파일시스템과 연동을 위한 인터페이스 드라이버(미도시)를 더 포함할 수 있다.
도 6은 한 실시예에 따른 NUMA 시스템에서 MBS가 설치되는 구조를 나타낸 예시도이다.
도 6을 참고하면, NUMA 시스템에서 MBS가 설치되는 방법은 다양할 수 있으며 어느 하나에 제한되지 않는다.
도 6의 (a)와 같이 n개의 노드 중 하나의 노드에만 MBS가 설치되거나, 도 6의 (b)와 같이 몇 개의 노드에만 MBS와 DRAM이 함께 설치될 수 있다. 한편 본 명세서에서는 도 6의 (c)와 같이 n개의 노드 전부 MBS와 DRAM이 설치된 환경을 전제로 한다. 따라서 이하 명세서에서 '노드'는 MBS와 DRAM이 모두 설치된 노드를 의미한다.
도 7은 한 실시예에 따른 주소 관리부의 동작 방법의 설명도이다.
도 7을 참고하면, 컴퓨터 시스템에서 사용되는 장치들은 설치 정보를 기반으로, 운영체제에서 해당 장치에 접근할 수 있는 주소 공간을 할당받아 사용할 수 있다. 이때 MBS와 DRAM은 하드웨어적으로 동일한 메모리 버스에 설치되며 동일한 물리 주소가 할당된다.
따라서 물리적인 주소만으로는 메모리 버스에 연결된 장치를 구별할 수 없으며 MBS와 DRAM을 구분하기 위해 메모리 버스에 설치된 장치들의 정보가 추가로 필요하다.
주소 관리부(100)는 물리적으로 연속되지 않게 설치된 MBS 설치 정보를 사용하여 하나의 논리적 주소 공간에서 사용할 수 있도록 구성한다. 설치 정보를 얻는 방법의 한 예로서, 부팅과정에서 e820map의 e820_entry구조체를 통해 얻을 수 있으며 시작주소, 크기, 종류에 대한 정보를 수집할 수 있다. MBS와 DRAM을 구분하기 위해 타입(Type) 값을 사용할 수 있다. 도 6과 같이 설치된 장치에서 e820_entry구조체를 통해 얻는 설치 정보는 표 1과 같을 수 있다.
물리주소 A B X Y
사이즈 sizeA sizeB sizeX sizeY
타입 DRAM MBS DRAM MBS
한편, MBS가 설치된 노드 번호는 시스템 구조에 종속적인 정보로서, e820_entry구조체를 통해서 얻을 수 없으며, 사용하는 시스템에서 제공하는 기능을 사용하여 얻을 수 있다. 한 예로서 ACPI(Advanced Configuration and Power Interface)의 시스템의 메모리 친화 정보를 이용하여 MBS 물리 주소 범위를 얻을 수 있다. 이를 통해 주소 관리부(100)는 MBS가 어떤 노드에 속하는지 알 수 있고 MBS가 설치된 노드 번호를 지정할 수 있다.
주소 관리부(100)는 각 MBS별로 MBS가 설치된 주소, MBS의 크기, MBS가 설치된 노드 번호, MBS의 전체 크기, MSB들의 리스트를 구조체로 관리할 수 있다.
도 8은 한 실시예에 따른 공간 관리부가 노드를 관리하는 방법의 설명도이다.
도 8을 참고하면, 공간 관리부(200)는 각 노드에서 사용 가능한 MBS 여유 공간 크기에 따라, 각 노드를 후보 노드와 비만 노드로 구분하여 관리할 수 있다.
후보 노드란, 기준값보다 큰 MBS 여유 공간을 갖고 있는 노드를 의미하고, 비만 노드란 기준값보다 작거나 같은 크기의 MBS 여유 공간을 갖고 있는 노드를 의미한다.
기준값은 사용자 또는 관리자에 의해 설정될 수 있고, 각 노드에 설치된 MBS 전체 크기에 대한 여유 공간의 비율로 표현될 수 있다. 한 예로서, 도 10과 같이 각 노드에 10GB 크기의 MBS가 설치되어 있고 기준값이 0.1로 설정되어 있는 경우를 가정한다. 10GB의 10%인 1GB를 기준으로, 각 노드의 여유 공간이 1GB보다 큰 노드는 후보 노드가 되고, 그렇지 않은 노드는 비만 노드가 된다.
다른 예로서, 기준값이 0으로 설정되어 있는 경우, 비만 노드는 여유 공간이 전혀 없는 노드를 의미하며 여유 공간이 있는 노드들은 후보 노드가 될 수 있다.
도 9는 한 실시예에 따른 모니터링부가 노드를 관리하는 방법의 흐름도이다.
도 9를 참고하면, 노드의 MBS 여유 공간은 실시간으로 변경될 수 있으며, 모니터링부(300)는 노드의 MBS 여유 공간 상태에 따라 후보 노드와 비만 노드를 결정한다.
공간 관리부(200)에 의해 후보 노드와 비만 노드가 구분되면, 모니터링부(300)는 주기적으로 각 노드의 MBS 여유 공간 크기를 모니터링하여, 여유 공간 크기가 변하면 기준값에 따라 각 노드가 후보 노드인지 비만 노드인지 상태를 결정한다.
모니터링부(300)는 임의의 노드 i의 MBS 여유 공간과 기준값을 비교한다(S110).
S110 단계에서 노드 i의 MBS 여유 공간이 기준값보다 큰 경우, 모니터링부(300)는 노드 i가 후보 노드로 설정되어 있는지 확인한다(S120).
노드 i가 후보 노드로 설정되어 있으면, 여유 공간 크기에 맞게 설정된 것이므로 단계를 종료한다(S140).
S120 단계에서 노드 i가 후보 노드로 설정되어 있지 않으면, 모니터링부(300)는 노드 i를 비만 노드에서 후보 노드로 변경한다(S130).
S110 단계에서 노드 i의 MBS 여유 공간이 기준값보다 작은 경우, 모니터링부(300)는 노드 i가 비만 노드로 설정되어 있는지 확인한다(S150).
노드 i가 비만 노드로 설정되어 있으면, 여유 공간 크기에 맞게 설정된 것이므로 단계를 종료한다(S140).
S150 단계에서 노드 i가 비만 노드로 설정되어 있지 않으면, 모니터링부(300)는 노드 i를 후보 노드에서 비만 노드로 변경한다(S160).
한편 모니터링부(300)는 커널 쓰레드로 동작할 수 있고, 비만 노드가 없는 경우에는 잠자기 상태로 있을 수 있다. 비만 노드가 생기면 모니터링부(300)가 깨워져 동작할 수 있다.
도 10은 한 실시예에 따른 공간 관리부가 MBS를 할당하는 방법의 설명도이고, 도 11은 다른 실시예에 따른 공간 관리부가 MBS를 할당하는 방법의 설명도이다.
도 5에서 설명한 바와 같이 시뮬레이션을 통해, 프로세스와 사용하는 MBS가 동일한 노드에 있을 때 가장 높은 파일 처리 성능을 얻을 수 있고, 각 노드의 MBS를 순차적으로 번갈아가며(Striping) 사용하면 원격 노드에 설치된 MBS만을 사용할 때보다 높은 파일 처리 성능을 얻을 수 있음을 알 수 있다.
공간 관리부(200)는 시뮬레이션 결과를 바탕으로 MBS의 처리 성능을 최대한 활용하기 위해, 2가지 정책을 제공할 수 있다.
도 10을 참고하면, 공간 관리부(200)는 프로세스가 동작하는 노드에서 가장 작은 접근 지연 시간을 갖고 있는 동일한 노드의 MBS에서 공간을 할당하는 로컬 정책을 수행할 수 있다.
예를 들어, 노드 0에서 실행중인 프로세스가 MBS 저장 공간 할당을 요청한 경우, 공간 관리부(200)는 로컬 정책에 의해 해당 프로세스가 실행되는 동일한 노드의 MBS의 공간을 할당할 수 있다.
한편 로컬 정책은 가장 높은 파일 쓰기 성능을 얻을 수 있으나, 해당 노드의 MBS 자원이 소진된 이후에는 사용할 수 없는 문제점이 있다. 따라서 로컬 정책을 사용할 수 없을 때 적용할 수 있는 정책이 필요하다.
도 11을 참고하면, 공간 관리부(200)는 할당 가능한 MBS들 중에서 순차적으로 할당하는 스트라이핑 정책을 수행할 수 있다.
예를 들어, 노드 0에서 실행중인 프로세스가 MBS 저장 공간 할당을 요청한 경우, 공간 관리부(200)는 우선 노드 0에 설치된 MBS 공간을 할당하고, 이후 노드 1에 설치된 MBS 공간을 할당할 수 있다.
한편 스트라이핑 정책은 로컬 정책에 비해 파일 쓰기 성능이 낮으나, 하나의 원격 노드만을 사용할 때보다 높은 파일 쓰기 성능을 얻을 수 있다. 또한 각 노드의 MBS를 고르게 사용할 수 있어 특정 노드의 MBS 자원만 소진되는 것을 막을 수 있다.
여러 노드의 MBS들을 스트라이핑하여 사용하면, 로컬 노드를 제외하고 가장 낮은 접근 지연 시간을 갖는 노드의 MBS를 사용할 때보다 높은 파일 처리 성능을 얻을 수 있다. 스트라이핑 기법은 로컬 기법을 사용할 수 없는 조건에서 가장 높은 파일 처리 성능을 얻을 수 있는 기법으로 사용이 가능하다.
공간 관리부(200)가 어떤 정책을 기본 정책으로 사용할 것인지는, 사용자 또는 관리자에 의해 설정될 수 있으며, 공간 관리부(200)의 컴파일 시간에 설정될 수 있다. 한 예로서, 사용자 또는 관리자는 입출력 제어(I/O Control) 인터페이스를 통해 응용을 실행시킬 때 정책을 선택할 수 있다. 사용할 정책이 선택이 되지 않으면 기본 정책이 사용될 수 있다.
공간 관리부(200)는 다양한 방법으로 전체 저장 공간의 사용 여부를 관리할 수 있으며, 한 예로서 비트맵(Bitmap)을 사용할 수 있다. 비트맵은 일정 크기로 공간을 분할하여 각 공간을 하나의 비트로 표시하는 방법이다. 사용 가능한 공간을 찾기 위해 비트맵을 순차적으로 검색하여야 하며, 경우에 따라서는 모든 비트를 검색해야 하고, NUMA를 인지하기 어려울 수 있다.
다른 예로서, 공간 관리부(200)는 버디 시스템을 이용할 수 있다. 버디 시스템(Buddy System)은 세그먼트로부터 2의 거듭제곱 단위로(4KB, 8KB, 16KB..) 메모리가 할당되는 시스템을 의미한다.
버디 시스템은 비트맵에 비해 빠른 검색과 관리가 가능하고, 메인 메모리 사용 환경에서 오랫동안 사용되어 왔다. MBS가 메인 메모리와 같은 특성을 갖고 있으므로, 공간 관리부(200)는 버디 시스템을 이용하여 표 2와 같은 의사코드를 통해 MBS의 물리적 공간을 할당하거나 회수할 수 있다.
Function Get Striping(node id, order)
return GetMBSfromallNodes ;
end
Function Get Local(node id, order)
if Local MBS has enough Space then
return Get M BS from N ode(node id) with order ;
else
return GetStriping(node id, order) ;
end
end
Function Apply(Policy, order)
if Policy != LOCAL then
return Get Striping(processnid, order) ;
else
return Get Local(processnid, order) ;
end
end
Function GetPolicy(currentprocess)
if currentprocesspolicy != NULL then
return currentprocess_policy ;
else
return NUMA - store_DefaultPolicy ;
end
end
Function alloc_mbs(order)
Policy = GetPolicy(currentprocess) ;
Apply(Policy) ;
end
표 2에서, order는 할당받기 원하는 MBS page 개수를 의미하고, processnid는 MBS 할당을 요청하는 프로세스가 실행되고 있는 노드 번호를 의미하고, processpolicy는 프로세스가 희망하는 MBS 할당 정책을 의미하고, NUMA - store_DefaultPolicy는 컴파일 시간에 설정된 기본 할당 정책을 의미한다.
도 12는 한 실시예에 따른 저장장치 관리부가 노드를 관리하는 방법의 흐름도이다.
도 12를 참고하면, 저장장치 관리부(1000)의 주소 관리부(100)는 메모리 버스에 연결된 장치의 설치 정보를 수집한다(S210). 한 예로서, 부팅과정에서 e820map의 e820_entry구조체를 통해 얻을 수 있으며 시작주소, 크기, 종류에 대한 정보를 수집할 수 있다.
저장장치 관리부(1000)의 주소 관리부(100)는 수집된 설치 정보를 이용하여 MBS와 DRAM을 구분한다(S220). 한 예로서, 수집한 정보에서 타입(Type) 값으로 구분할 수 있다.
저장장치 관리부(1000)의 주소 관리부(100)는 시스템의 메모리 친화 정보로부터 MBS 물리 주소 범위를 수집한다(S230). 한 예로서 ACPI(Advanced Configuration and Power Interface)의 시스템의 메모리 친화 정보를 이용할 수 있다.
저장장치 관리부(1000)의 주소 관리부(100)는 MBS 물리 주소 범위를 바탕으로 MBS가 설치된 노드 번호를 지정한다(S240).
저장장치 관리부(1000)의 주소 관리부(100)는 MBS가 설치된 노드를 노드를 후보 노드와 비만 노드로 구분하여 관리한다(S250). 이후, 모니터링부(300)는 주기적으로 각 노드의 MBS 여유 공간 크기를 모니터링하여, 여유 공간 크기가 변하면 기준값에 따라 각 노드가 후보 노드인지 비만 노드인지 상태를 변경할 수 있다.
도 13은 한 실시예에 따른 저장장치 관리부가 저장 공간을 할당하는 방법의 흐름도이다.
도 13을 참고하면, 저장장치 관리부(1000)는 파일 쓰기 요청을 입력받는다(S310).
저장장치 관리부(1000)는 MBS의 기본 할당 정책이 무엇으로 설정되어 있는지 확인한다(S320). 기본 할당 정책은 로컬 정책 또는 스트라이핑 정책일 수 있다.
S320 단계에서 기본 할당 정책이 로컬 정책인 경우, 저장장치 관리부(1000)는 로컬 노드에 여유 공간이 있는지 확인한다(S330). 로컬 노드란, 프로세스가 동작하는 노드를 의미한다.
로컬 노드에 여유 공간이 있으면, 저장장치 관리부(1000)는 로컬 MBS에서 저장 공간을 할당한다(S340). 로컬 MBS란 프로세스가 동작하는 노드에 속한 MBS를 의미한다.
로컬 노드에 여유 공간이 없으면, 저장장치 관리부(1000)는 로컬 노드 외에 다른 후보 노드가 있는지 확인한다(S360). 후보 노드란 기준값보다 큰 MBS 여유 공간을 갖고 있는 노드를 의미할 수 있다.
후보 노드가 있으면, 저장장치 관리부(1000)는 후보 노드에서 저장 공간을 할당하고(S370), 후보 노드가 없으면 비만 노드에서 공간을 할당한다(S380). 한편, 비만 노드에 여유 공간이 없다면 메모리 부족(ENOSPC)으로 단계가 종료될 수 있다.
S320 단계에서 기본 할당 정책이 설정되지 않은 경우, 저장장치 관리부(1000)는 로컬 MBS가 속한 노드가 비만 노드인지 확인한다(S350).
로컬 MBS가 속한 노드가 비만 노드가 아니면, 저장장치 관리부(1000)는 로컬 MBS에서 저장 공간을 할당한다(S340).
로컬 MBS가 속한 노드가 비만 노드면, 저장장치 관리부(1000)는 로컬 노드 외에 다른 후보 노드가 있는지 확인한다(S360).
이후 후보 노드가 있으면, 저장장치 관리부(1000)는 후보 노드에서 저장 공간을 할당하고(S370), 후보 노드가 없으면 비만 노드에서 공간을 할당한다(S380).
도 14는 한 실시예에 따른 컴퓨팅 장치의 하드웨어 구성도이다.
도 14를 참고하면, 주소 관리부(100), 공간 관리부(200), 모니터링부(300)는 적어도 하나의 프로세서에 의해 동작하는 컴퓨팅 장치(400)에서, 본 발명의 동작을 실행하도록 기술된 명령들(instructions)이 포함된 프로그램을 실행한다.
컴퓨팅 장치(400)의 하드웨어는 적어도 하나의 프로세서(410), 메모리(420), 스토리지(430), 통신 인터페이스(440)을 포함할 수 있고, 버스를 통해 연결될 수 있다. 이외에도 입력 장치 및 출력 장치 등의 하드웨어가 포함될 수 있다. 컴퓨팅 장치(400)는 프로그램을 구동할 수 있는 운영체제를 비롯한 각종 소프트웨어가 탑재될 수 있다.
프로세서(410)는 컴퓨팅 장치(400)의 동작을 제어하는 장치로서, 프로그램에 포함된 명령들을 처리하는 다양한 형태의 프로세서일 수 있고, 예를 들면, CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 등 일 수 있다. 메모리(420)는 본 발명의 동작을 실행하도록 기술된 명령들이 프로세서(410)에 의해 처리되도록 해당 프로그램을 로드한다. 메모리(420)는 예를 들면, ROM(read only memory), RAM(random access memory) 등 일 수 있다. 스토리지(430)는 본 발명의 동작을 실행하는데 요구되는 각종 데이터, 프로그램 등을 저장한다. 통신 인터페이스(440)는 유/무선 통신 모듈일 수 있다.
본 발명에 따르면 리눅스 커널에서 MBS의 특성을 고려하여 파일 처리 경로를 단순화하므로, 불필요한 오버헤드로 인한 성능 손실을 방지하고, 파일 처리 성능을 개선할 수 있다.
또한, 본 발명에 따르면 접근 지연 시간을 최소화 할 수 있는 노드의 MBS로 부터 저장 공간을 할당받을 수 있으므로 시스템의 성능을 개선시킬 수 있다.
이상에서 설명한 본 발명의 실시예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.

Claims (13)

  1. 적어도 하나의 프로세서에 의해 동작하는 컴퓨팅 장치의 동작 방법으로서,
    저장장치가 설치된 각 노드의 저장 여유 공간을 관리하는 단계,
    임의의 노드에서 실행된 프로세스로부터 파일 쓰기 요청과 상기 파일 쓰기 요청에 따른 저장 공간 할당 요청을 입력받는 단계, 그리고
    미리 설정된 저장 공간 할당 정책에 따라, 상기 프로세스가 실행된 상기 임의의 노드에 속한 저장장치의 공간을 할당하거나 또는 상기 임의의 노드와 다른 노드에 속한 저장장치의 공간을 할당하는 단계
    를 포함하는, 동작 방법.
  2. 제1항에서,
    상기 관리하는 단계는,
    상기 각 노드를 미리 설정된 기준값보다 큰 저장 여유 공간을 갖고 있는 후보 노드와, 상기 기준값보다 작거나 같은 저장 여유 공간을 갖고 있는 비만 노드로 구분하는, 동작 방법.
  3. 제1항에서,
    상기 관리하는 단계는,
    메모리 버스에 연결된 상기 저장장치의 물리 주소를 포함하는 설치 정보를 수집하는 단계, 그리고
    상기 설치 정보를 바탕으로 상기 저장장치가 설치된 노드를 판단하는 단계
    를 포함하는, 동작 방법.
  4. 제3항에서,
    상기 수집하는 단계는,
    상기 물리 주소와 시스템의 메모리 친화 정보를 이용하여 상기 저장장치가 설치된 물리 주소를 수집하는, 동작 방법.
  5. 제1항에서,
    상기 컴퓨팅 장치는 비균일 메모리 액세스(Non-Uniform Memory Access, NUMA) 구조의 시스템으로 동작하고,
    상기 저장장치는 메모리 버스에 연결하여 사용하는 메모리 저장장치(Memory Bus connected Storage, MBS)인, 동작 방법.
  6. 제1항에서,
    상기 저장 공간 할당 정책은,
    상기 임의의 노드에 속한 저장장치의 공간을 할당하는 로컬 정책과, 상기 임의의 노드를 포함하는 복수의 노드들에 속한 저장장치의 공간을 순차적으로 할당하는 스트라이핑 정책 중 어느 하나인, 동작 방법.
  7. 제6항에서,
    상기 저장 공간 할당 정책은,
    상기 컴퓨팅 장치의 입출력 제어(I/O Control) 인터페이스를 통해 응용을 실행시키는 과정에서 상기 로컬 정책 또는 상기 스트라이핑 정책 중 어느 하나로 설정되는, 동작 방법.
  8. 적어도 하나의 프로세서에 의해 동작하는 컴퓨팅 장치의 동작 방법으로서,
    저장장치와 중앙 처리 장치를 포함하는 각 노드의 저장 여유 공간을 관리하는 단계,
    임의의 노드에서 실행된 프로세스로부터 저장 공간 할당 요청을 입력받는 단계, 그리고
    상기 프로세스가 실행된 상기 임의의 노드로부터 접근 시간이 가장 짧은 노드에 속한 저장장치의 공간을 할당하는 단계를 포함하고,
    상기 컴퓨팅 장치는 비균일 메모리 액세스(Non-Uniform Memory Access, NUMA) 구조의 시스템인, 동작 방법.
  9. 제8항에서,
    상기 관리하는 단계는,
    상기 각 노드의 저장 여유 공간을 모니터링하여, 미리 설정된 기준값보다 큰 저장 여유 공간을 갖고 있는 노드를 후보 노드로 설정하고, 상기 기준값보다 작거나 같은 저장 여유 공간을 갖고 있는 노드를 비만 노드로 설정하는, 동작 방법.
  10. 제9항에서,
    상기 저장장치는 메모리 버스에 연결하여 사용하는 메모리 저장장치(Memory Bus connected Storage, MBS)이고,
    상기 중앙 처리 장치는 복수의 코어(Core)를 포함하는, 동작 방법.
  11. 제8항에서,
    상기 할당하는 단계는,
    상기 임의의 노드에 속한 저장장치의 공간을 할당하는, 동작 방법.
  12. 제8항에서,
    상기 할당하는 단계는,
    상기 임의의 노드에 속한 저장장치의 저장 여유 공간을 확인하는 단계, 그리고
    상기 임의의 노드에 속한 저장장치의 저장 여유 공간이 없으면, 상기 임의의 노드와 다른 노드들 중 접근 시간이 짧은 노드들의 저장 공간을 순차적으로 할당하는 단계
    를 포함하는, 동작 방법.
  13. 제8항에서,
    상기 할당하는 단계는,
    상기 저장 여유 공간을 2로 반복하여 나누고, 요청된 저장 공간의 크기와 가장 가까운 크기의 메모리를 할당하는 버디 메모리 할당(Buddy Memory Allocation) 방법을 이용하는, 동작 방법.
KR1020200013793A 2019-11-13 2020-02-05 Numa 시스템에서 메모리 버스에 연결하여 사용하는 저장장치의 할당 방법 KR102565873B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190145320 2019-11-13
KR20190145320 2019-11-13

Publications (2)

Publication Number Publication Date
KR20210058609A true KR20210058609A (ko) 2021-05-24
KR102565873B1 KR102565873B1 (ko) 2023-08-11

Family

ID=76153326

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200013793A KR102565873B1 (ko) 2019-11-13 2020-02-05 Numa 시스템에서 메모리 버스에 연결하여 사용하는 저장장치의 할당 방법

Country Status (1)

Country Link
KR (1) KR102565873B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130088512A (ko) * 2012-01-31 2013-08-08 한국전자통신연구원 클러스터 컴퓨팅 환경에서의 자원 관리 장치 및 방법
CN105389211A (zh) * 2015-10-22 2016-03-09 北京航空航天大学 一种适用于numa架构内多节点间访存延时平衡的内存分配方法及延时感知-内存分配装置
KR20190042465A (ko) * 2017-10-16 2019-04-24 한국전자통신연구원 분할 메모리 관리장치 및 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130088512A (ko) * 2012-01-31 2013-08-08 한국전자통신연구원 클러스터 컴퓨팅 환경에서의 자원 관리 장치 및 방법
CN105389211A (zh) * 2015-10-22 2016-03-09 北京航空航天大学 一种适用于numa架构内多节点间访存延时平衡的内存分配方法及延时感知-内存分配装置
KR20190042465A (ko) * 2017-10-16 2019-04-24 한국전자통신연구원 분할 메모리 관리장치 및 방법

Also Published As

Publication number Publication date
KR102565873B1 (ko) 2023-08-11

Similar Documents

Publication Publication Date Title
US11625321B2 (en) Apparatuses and methods for memory address translation during block migration using depth mapping table based on mapping state
US9760497B2 (en) Hierarchy memory management
US10324832B2 (en) Address based multi-stream storage device access
KR102044023B1 (ko) 키 값 기반 데이터 스토리지 시스템 및 이의 운용 방법
CN110795206B (zh) 用于促进集群级缓存和内存空间的系统和方法
US7979648B2 (en) Dynamic interleaving
CN113568562A (zh) 一种存储系统、内存管理方法和管理节点
US11199972B2 (en) Information processing system and volume allocation method
US9304946B2 (en) Hardware-base accelerator for managing copy-on-write of multi-level caches utilizing block copy-on-write differential update table
CN106354428B (zh) 一种多物理层分区计算机体系结构的存储共享系统
US9015418B2 (en) Self-sizing dynamic cache for virtualized environments
US7793051B1 (en) Global shared memory subsystem
CN111459400B (zh) 在存储服务器中进行基于管线的存取管理的方法及设备
CN110119245B (zh) 用于操作nand闪存物理空间以扩展存储器容量的方法和系统
WO2017054636A1 (zh) 虚拟快照处理方法及装置
US20220382672A1 (en) Paging in thin-provisioned disaggregated memory
KR102565873B1 (ko) Numa 시스템에서 메모리 버스에 연결하여 사용하는 저장장치의 할당 방법
CN116401043A (zh) 一种计算任务的执行方法和相关设备
US20220114086A1 (en) Techniques to expand system memory via use of available device memory
US20220318042A1 (en) Distributed memory block device storage
US20210200674A1 (en) Methods and apparatus for persistent data structures
WO2015161804A1 (zh) 一种Cache分区的方法及装置
US9021506B2 (en) Resource ejectability in multiprocessor systems
US10846023B2 (en) Storage device and storage area management method for reducing garbage collection processing
EP4120087B1 (en) Systems, methods, and devices for utilization aware memory allocation

Legal Events

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