KR102565873B1 - Method for allocating memory bus connected storage in numa system - Google Patents

Method for allocating memory bus connected storage in numa system Download PDF

Info

Publication number
KR102565873B1
KR102565873B1 KR1020200013793A KR20200013793A KR102565873B1 KR 102565873 B1 KR102565873 B1 KR 102565873B1 KR 1020200013793 A KR1020200013793 A KR 1020200013793A KR 20200013793 A KR20200013793 A KR 20200013793A KR 102565873 B1 KR102565873 B1 KR 102565873B1
Authority
KR
South Korea
Prior art keywords
node
space
storage
storage device
mbs
Prior art date
Application number
KR1020200013793A
Other languages
Korean (ko)
Other versions
KR20210058609A (en
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/en
Application granted granted Critical
Publication of KR102565873B1 publication Critical patent/KR102565873B1/en

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

적어도 하나의 프로세서에 의해 동작하는 컴퓨팅 장치의 동작 방법으로서, 저장장치가 설치된 각 노드의 저장 여유 공간을 관리하는 단계, 임의의 노드에서 실행된 프로세스로부터 파일 쓰기 요청과 상기 파일 쓰기 요청에 따른 저장 공간 할당 요청을 입력받는 단계, 그리고 미리 설정된 저장 공간 할당 정책에 따라, 상기 프로세스가 실행된 상기 임의의 노드에 속한 저장장치의 공간을 할당하거나 또는 상기 임의의 노드와 다른 노드에 속한 저장장치의 공간을 할당하는 단계를 포함한다. A method of operating a computing device operated by at least one processor, comprising: managing a free storage space of each node in which a storage device is installed; requesting a file write from a process executed on an arbitrary node; and storage space according to the request for writing the file. Receiving an allocation request, and allocating space in a storage device belonging to the node in which the process is executed, or allocating space in a storage device belonging to a node different from the node in accordance with a preset storage space allocation policy. Including allocating

Description

NUMA 시스템에서 메모리 버스에 연결하여 사용하는 저장장치의 할당 방법{METHOD FOR ALLOCATING MEMORY BUS CONNECTED STORAGE IN NUMA SYSTEM}A method for allocating a storage device used by connecting to a memory bus in a NUMA system

본 발명은 NUMA 시스템에서 메모리 버스에 연결하여 사용하는 저장장치를 할당하는 기술에 관한 것이다.The present invention relates to a technology for allocating a storage device used by connecting to a memory bus in a NUMA system.

고성능 컴퓨팅(High Performance Computing)의 응용(Application)들은 불시에 발생할 수 있는 장애에 대비하여 응용 또는 시스템의 동작 상태를 영구 저장장치에 기록하는 체크포인팅(Checkpointing), 로깅(Logging) 등의 기법을 사용한다. 이러한 장애 대응 기법의 사용은 파일 사용의 안정성을 높이나, 중복 쓰기로 인해 전체적인 파일처리 성능을 떨어뜨린다. 따라서 성능 손실을 최소화 하기 위해 빠른 파일 쓰기 성능이 요구된다. Applications of High Performance Computing use techniques such as checkpointing and logging to record the operating state of an application or system in a permanent storage device in preparation for failures that may occur unexpectedly. do. The use of such a failure response technique increases the stability of file use, but degrades overall file processing performance due to redundant writing. Therefore, fast file writing performance is required to minimize performance loss.

빠른 파일 쓰기를 위하여 빠른 저장장치 사용이 증가하고 있다. 한 예로서 메모리 버스에 연결하여 사용하는 메모리 저장장치(Memory Bus connected Storage, 이하 'MBS'라고 호칭함)가 수십 개 이상의 코어가 있는 매니코어(Many-Core) NUMA(Non-Uniform Memory Access) 구조의 시스템에 설치되어 사용된다. The use of fast storage devices is increasing for fast file writing. As an example, a many-core NUMA (Non-Uniform Memory Access) structure in which a memory storage device (Memory Bus connected Storage, hereinafter referred to as 'MBS') connected to a memory bus has dozens or more cores. installed on the system and used.

그러나 리눅스가 설치된 NUMA 시스템에서 느린 저장장치 사용을 전제로 발전해 온 여러 단계의 소프트웨어 처리 경로를 아직까지 사용하고 있으며, MBS가 설치된 것을 인지하지 못하고 사용하고 있기 때문에 높은 파일 처리 성능을 얻지 못하고 있다. However, in a NUMA system with Linux installed, several stages of software processing path developed on the premise of using a slow storage device are still used, and high file processing performance is not obtained because MBS is used without recognizing that it is installed.

한편 NUMA 시스템은 중앙 처리 장치(CPU)와 메모리 버스에 연결된 장치와의 거리에 따라 접근 지연 시간이 다르며, 이때 접근 지연 시간은 MBS를 사용하는 응용의 파일 처리 성능에 영향을 줄 수 있다.On the other hand, NUMA systems have different access latency depending on the distance between the central processing unit (CPU) and the device connected to the memory bus, and the access latency can affect the file processing performance of applications using MBS.

따라서, NUMA 시스템의 특성을 고려하여 빠른 MBS의 성능 특성을 활용할 필요성이 대두된다. Therefore, there is a need to utilize the performance characteristics of a fast MBS in consideration of the characteristics of a NUMA system.

해결하고자 하는 과제는 MBS 할당 요청에 대해, 접근 지연 시간이 낮고 높은 파일 처리 성능을 얻을 수 있는 MBS를 선택하여 저장 공간을 할당해 주는 방법을 제공하는 것이다. The problem to be solved is to provide a method for allocating storage space by selecting an MBS that has low access latency and high file processing performance in response to an MBS allocation request.

또한, 해결하고자 하는 과제는 빠른 속도의 MBS의 특성을 고려하여, 적절하지 않은 파일 처리 경로를 간소화하는 방법을 제공하는 것이다.In addition, a problem to be solved is to provide a method for simplifying an inappropriate file processing path in consideration of the characteristics of a high-speed MBS.

한 실시예에 따른 적어도 하나의 프로세서에 의해 동작하는 컴퓨팅 장치의 동작 방법으로서, 저장장치가 설치된 각 노드의 저장 여유 공간을 관리하는 단계, 임의의 노드에서 실행된 프로세스로부터 파일 쓰기 요청과 상기 파일 쓰기 요청에 따른 저장 공간 할당 요청을 입력받는 단계, 그리고 미리 설정된 저장 공간 할당 정책에 따라, 상기 프로세스가 실행된 상기 임의의 노드에 속한 저장장치의 공간을 할당하거나 또는 상기 임의의 노드와 다른 노드에 속한 저장장치의 공간을 할당하는 단계를 포함한다. A method of operating a computing device operated by at least one processor according to an embodiment, comprising: managing free storage space of each node in which a storage device is installed; requesting a file write from a process executed in an arbitrary node and writing the file; Receiving a storage space allocation request according to the request, and allocating space in a storage device belonging to the arbitrary node where the process was executed or belonging to a node different from the arbitrary node according to a preset storage space allocation policy Allocating space on the storage device.

상기 관리하는 단계는, 상기 각 노드를 미리 설정된 기준값보다 큰 저장 여유 공간을 갖고 있는 후보 노드와, 상기 기준값보다 작거나 같은 저장 여유 공간을 갖고 있는 비만 노드로 구분할 수 있다.In the managing step, each node may be divided into a candidate node having a storage space larger than a preset reference value and an obese node having a storage space smaller than or equal to the reference value.

상기 관리하는 단계는, 메모리 버스에 연결된 상기 저장장치의 물리 주소를 포함하는 설치 정보를 수집하는 단계, 그리고 상기 설치 정보를 바탕으로 상기 저장장치가 설치된 노드를 판단하는 단계를 포함할 수 있다.The managing may include collecting installation information including a physical address of the storage device connected to a memory bus, and determining a node where the storage device is installed based on the installation information.

상기 수집하는 단계는, 상기 물리 주소와 시스템의 메모리 친화 정보를 이용하여 상기 저장장치가 설치된 물리 주소를 수집할 수 있다.In the collecting step, the physical address at which the storage device is installed may be collected using the physical address and memory affinity information of the system.

상기 컴퓨팅 장치는 비균일 메모리 액세스(Non-Uniform Memory Access, NUMA) 구조의 시스템으로 동작하고, 상기 저장장치는 메모리 버스에 연결하여 사용하는 메모리 저장장치(Memory Bus connected Storage, MBS)일 수 있다.The computing device operates as a system with a non-uniform memory access (NUMA) structure, and the storage device may be a memory bus connected storage (MBS) connected to a memory bus.

상기 저장 공간 할당 정책은, 상기 임의의 노드에 속한 저장장치의 공간을 할당하는 로컬 정책과, 상기 임의의 노드를 포함하는 복수의 노드들에 속한 저장장치의 공간을 순차적으로 할당하는 스트라이핑 정책 중 어느 하나일 수 있다. The storage space allocation policy is any one of a local policy for allocating space on a storage device belonging to the arbitrary node and a striping policy for sequentially allocating space on a storage device belonging to a plurality of nodes including the arbitrary node. can be one

상기 저장 공간 할당 정책은, 상기 컴퓨팅 장치의 입출력 제어(I/O Control) 인터페이스를 통해 응용을 실행시키는 과정에서 상기 로컬 정책 또는 상기 스트라이핑 정책 중 어느 하나로 설정될 수 있다. The storage space allocation policy may be set to either the local policy or the striping policy in a process of executing an application through an I/O control interface of the computing device.

다른 실시예에 따른 적어도 하나의 프로세서에 의해 동작하는 컴퓨팅 장치의 동작 방법으로서, 저장장치와 중앙 처리 장치를 포함하는 각 노드의 저장 여유 공간을 관리하는 단계, 임의의 노드에서 실행된 프로세스로부터 저장 공간 할당 요청을 입력받는 단계, 그리고 상기 프로세스가 실행된 상기 임의의 노드로부터 접근 시간이 가장 짧은 노드에 속한 저장장치의 공간을 할당하는 단계를 포함하고, 상기 컴퓨팅 장치는 비균일 메모리 액세스(Non-Uniform Memory Access, NUMA) 구조의 시스템이다. A method of operating a computing device operated by at least one processor according to another embodiment, comprising the steps of managing a free storage space of each node including a storage device and a central processing unit, a storage space from a process executed in an arbitrary node. Receiving an allocation request, and allocating a space in a storage device belonging to a node with the shortest access time from the arbitrary node where the process is executed, wherein the computing device performs non-uniform memory access (Non-Uniform Memory Access, NUMA) structured system.

상기 관리하는 단계는, 상기 각 노드의 저장 여유 공간을 모니터링하여, 미리 설정된 기준값보다 큰 저장 여유 공간을 갖고 있는 노드를 후보 노드로 설정하고, 상기 기준값보다 작거나 같은 저장 여유 공간을 갖고 있는 노드를 비만 노드로 설정할 수 있다. The managing step may include monitoring the free storage space of each node, setting a node having a free storage space larger than a preset reference value as a candidate node, and selecting a node having a free storage space smaller than or equal to the reference value. It can be set as an obese node.

상기 저장장치는 메모리 버스에 연결하여 사용하는 메모리 저장장치(Memory Bus connected Storage, MBS)이고, 상기 중앙 처리 장치는 복수의 코어(Core)를 포함할 수 있다. The storage device is a memory bus connected storage (MBS) used by connecting to a memory bus, and the central processing unit may include a plurality of cores.

상기 할당하는 단계는, 상기 임의의 노드에 속한 저장장치의 저장 여유 공간을 확인하는 단계, 그리고 상기 임의의 노드에 속한 저장장치의 저장 여유 공간이 없으면, 상기 임의의 노드와 다른 노드들 중 접근 시간이 짧은 노드들의 저장 공간을 순차적으로 할당하는 단계를 포함할 수 있다. The allocating may include checking the free storage space of the storage device belonging to the arbitrary node, and if there is no free storage space of the storage device belonging to the arbitrary node, the access time among the random node and other nodes It may include sequentially allocating the storage space of these short nodes.

상기 할당하는 단계는, 상기 저장 여유 공간을 2로 반복하여 나누고, 요청된 저장 공간의 크기와 가장 가까운 크기의 메모리를 할당하는 버디 메모리 할당(Buddy Memory Allocation) 방법을 이용할 수 있다. In the allocating, a buddy memory allocation method of repeatedly dividing the free storage space by 2 and allocating a memory having a size closest to the size of the requested storage space may be used.

본 발명에 따르면 리눅스 커널에서 MBS의 특성을 고려하여 파일 처리 경로를 단순화하므로, 불필요한 오버헤드로 인한 성능 손실을 방지하고, 파일 처리 성능을 개선할 수 있다. According to the present invention, since a file processing path is simplified in consideration of MBS characteristics in the Linux kernel, performance loss due to unnecessary overhead can be prevented and file processing performance can be improved.

또한, 본 발명에 따르면 접근 지연 시간을 최소화 할 수 있는 노드의 MBS로 부터 저장 공간을 할당받을 수 있으므로 시스템의 성능을 개선시킬 수 있다. In addition, according to the present invention, since storage space can be allocated from the MBS of a node capable of minimizing an access delay time, system performance can be improved.

도 1은 NUMA 시스템의 구조를 나타낸 설명도이다.
도 2는 기존의 MBS를 사용하는 방법에 대한 설명도이다.
도 3은 기존 파일시스템의 소프트웨어 계층을 나타내는 구성도이다.
도 4는 한 실시예에 따른 저장장치 관리부가 설치된 환경의 소프트웨어 계층을 나타내는 구성도이다.
도 5는 한 실시예에 따른 저장장치 관리부의 구성도이다.
도 6은 한 실시예에 따른 NUMA 시스템에서 MBS가 설치되는 구조를 나타낸 예시도이다.
도 7은 한 실시예에 따른 주소 관리부의 동작 방법의 설명도이다.
도 8은 한 실시예에 따른 공간 관리부가 노드를 관리하는 방법의 설명도이다.
도 9는 한 실시예에 따른 모니터링부가 노드를 관리하는 방법의 흐름도이다.
도 10은 한 실시예에 따른 공간 관리부가 MBS를 할당하는 방법의 설명도이다.
도 11은 다른 실시예에 따른 공간 관리부가 MBS를 할당하는 방법의 설명도이다.
도 12는 한 실시예에 따른 저장장치 관리부가 노드를 관리하는 방법의 흐름도이다.
도 13은 한 실시예에 따른 저장장치 관리부가 저장 공간을 할당하는 방법의 흐름도이다.
도 14는 한 실시예에 따른 컴퓨팅 장치의 하드웨어 구성도이다.
1 is an explanatory diagram showing the structure of a NUMA system.
2 is an explanatory diagram of a method of using an existing MBS.
3 is a configuration diagram showing a software layer of an existing file system.
4 is a configuration diagram illustrating software layers of an environment in which a storage device management unit is installed according to an exemplary embodiment.
5 is a configuration diagram of a storage device management unit according to an exemplary embodiment.
6 is an exemplary diagram illustrating a structure in which an MBS is installed in a NUMA system according to an embodiment.
7 is an explanatory diagram of an operating method of an address management unit according to an exemplary embodiment.
8 is an explanatory diagram of a method for managing a node by a space management unit according to an embodiment.
9 is a flowchart of a method for managing a node by a monitoring unit according to an embodiment.
10 is an explanatory diagram of a method of allocating an MBS by a space management unit according to an embodiment.
11 is an explanatory diagram of a method of allocating an MBS by a space management unit according to another embodiment.
12 is a flowchart of a method of managing a node by a storage manager according to an embodiment.
13 is a flowchart of a method of allocating a storage space by a storage device manager according to an exemplary embodiment.
14 is a hardware configuration diagram of a computing device according to an embodiment.

아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, with reference to the accompanying drawings, embodiments of the present invention will be described in detail so that those skilled in the art can easily carry out the present invention. However, the present invention may be embodied in many different forms and is not limited to the embodiments described herein. And in order to clearly explain the present invention in the drawings, parts irrelevant to the description are omitted, and similar reference numerals are attached to similar parts throughout the specification.

명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "…부", "…기", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.Throughout the specification, when a certain component is said to "include", it means that it may further include other components without excluding other components unless otherwise stated. In addition, terms such as “… unit”, “… unit”, and “module” described in the specification mean a unit that processes at least one function or operation, which may be implemented as hardware or software or a combination of hardware and software. there is.

도 1은 NUMA 시스템의 구조를 나타낸 설명도이다.1 is an explanatory diagram showing the structure of a NUMA system.

도 1의 (a)를 참고하면, 수십 개 이상의 코어가 있는 매니코어(Many-Core) 비균일 메모리 액세스(Non-Uniform Memory Access, 이하 'NUMA'라고 호칭함) 구조의 시스템에, 메모리 버스에 연결하여 사용하는 저장장치(Memory Bus connected Storage, 이하 'MBS'라고 호칭함)가 설치될 수 있다. 이러한 시스템 구조는 빠른 파일 데이터 입출력 처리를 필요로 하는 다양한 분야에서 사용될 수 있다. Referring to (a) of FIG. 1, in a system with a Many-Core Non-Uniform Memory Access (hereinafter referred to as 'NUMA') structure having dozens or more cores, a memory bus A storage device that is connected and used (Memory Bus connected Storage, hereinafter referred to as 'MBS') may be installed. This system structure can be used in various fields requiring fast file data input/output processing.

이 때 코어와 사용하고자 하는 메모리의 위치에 따라 지역 접근(Local Access)과 원격 접근(Remote Access)으로 구분된다. 예를 들어 노드 0의 CPU에서 노드 0의 메모리 버스에 연결된 DRAM으로 접근하는 것은 지역 접근이고, 노드 1의 CPU에서 노드 0의 메모리 버스에 연결된 DRAM으로 접근하는 것은 원격 접근이다.At this time, it is divided into local access and remote access according to the location of the core and memory to be used. For example, access from the CPU on node 0 to DRAM connected to the memory bus of node 0 is local access, and access from the CPU on node 1 to DRAM connected to the memory bus on node 0 is remote access.

도 1의 (b)를 참고하면, NUMA 구조의 시스템에서 MBS를 사용할 때, 중앙 처리 장치(Central Processing Unit, CPU)와 메모리 노드 간의 거리에 따라 접근 지연 시간(Access Latency)이 서로 다름을 알 수 있다. Referring to (b) of FIG. 1, when MBS is used in a NUMA structured system, it can be seen that access latency is different depending on the distance between the central processing unit (CPU) and the memory node. there is.

예를 들어, 노드 0, 노드 1, 노드 2, 노드 3에서 각각 노드 0의 메모리 버스에 연결된 DRAM으로 접근하는 시간은 노드 0에서의 접근 시간이 가장 짧고, 노드 2에서의 접근 시간이 가장 길다. For example, the access time from node 0, node 1, node 2, and node 3 to the DRAM connected to the memory bus of node 0 is shortest at node 0 and longest at node 2, respectively.

한편, 각 노드에 설치된 MBS들을 블록 저장장치(Block Storage Device)로 사용하기 위해 2가지의 방법이 이용된다. 이하 도 2를 통해 설명한다. Meanwhile, two methods are used to use MBSs installed in each node as a block storage device. It will be described with reference to FIG. 2 below.

도 2는 기존의 MBS를 사용하는 방법에 대한 설명도이다.2 is an explanatory diagram of a method of using an existing MBS.

도 2의 (a)를 참고하면, 블록 저장장치의 사용을 전제로 설계된 파일시스템은, 논리적 볼륨 관리자(Logical Volume Manager)를 이용하여 각 노드에 설치된 MBS들을 하나의 주소 공간에서 사용할 수 있다. Referring to (a) of FIG. 2, a file system designed on the premise of using a block storage device can use MBSs installed in each node in one address space using a logical volume manager.

논리적 볼륨 관리자를 사용하여 각 노드에 설치된 MBS들을 하나의 장치로 마운트하면, 시스템에 설치된 MBS의 저장 공간을 모두 사용할 수 있다. If you mount the MBS installed on each node as a device using Logical Volume Manager, you can use all the storage space of the MBS installed in the system.

그러나 논리적 볼륨 관리자의 실행과정에서 오버헤드가 발생하고, 이 방법은 전통적인 블록 저장장치 사용을 기반으로 설계되었기 때문에 응용이 실행되고 있는 노드에 설치된 MBS를 사용할 수 없다. 따라서 접근 지연 시간이 짧은 MBS를 선택하여 사용할 수 없는 문제가 있다.However, overhead occurs during the execution of the logical volume manager, and since this method is designed based on the use of traditional block storage devices, the MBS installed on the node where the application is running cannot be used. Therefore, there is a problem in that it is not possible to select and use an MBS having a short access delay time.

도 2의 (b)를 참고하면, 사용자 또는 관리자가 시스템에 설치된 MBS들을 노드 별로 파일 위치를 직접 지정하여 각 노드에 설치된 MBS들을 서로 다른 주소 공간에서 사용할 수 있다. Referring to (b) of FIG. 2 , a user or an administrator may directly designate file locations of MBSs installed in the system for each node and use the MBSs installed in each node in different address spaces.

사용자 또는 관리자가 NUMA 시스템이라는 것을 인식하고, MBS가 설치된 노드에서만 프로세스가 실행되도록 설정하면, 접근 지연 시간이 가장 짧은 MBS를 사용할 수 있어 높은 파일 처리 성능을 얻을 수 있다. If the user or administrator recognizes that it is a NUMA system and sets the process to run only on the node where MBS is installed, the MBS with the lowest access latency can be used and high file processing performance can be obtained.

그러나 별도의 설정이 없는 경우, 운영체제는 스스로 NUMA 구조에서 MBS와 프로세스간의 접근 지연 시간을 고려하여 MBS 공간을 할당할 수 없다. 따라서 프로세스가 실행되는 노드에서 접근 지연 시간이 가장 짧은 MBS를 사용할 수 있다는 것이 보장되지 않을 수 있다. However, if there is no separate setting, the operating system cannot allocate the MBS space by itself considering the access delay between the MBS and the process in the NUMA structure. Therefore, it may not be guaranteed that the node where the process is running can use the MBS with the lowest access latency.

따라서 본 명세서에서는, NUMA 환경을 고려하여 MBS를 사용하는 방법을 제안한다.Therefore, in this specification, a method of using MBS is proposed in consideration of a NUMA environment.

도 3은 기존 파일시스템의 소프트웨어 계층을 나타내는 구성도이고, 도 4는 한 실시예에 따른 저장장치 관리부가 설치된 환경의 소프트웨어 계층을 나타내는 구성도이다.3 is a configuration diagram illustrating a software layer of an existing file system, and FIG. 4 is a configuration diagram illustrating a software layer of an environment in which a storage management unit according to an embodiment is installed.

도 3을 참고하면, 오랫동안 사용되어 온 모터 기반의 느린 저장장치는 휘발성 메모리인 DRAM(Dynamic Random Access Memory)보다 접근 지연 시간이 크고 느린 장치 버스에 연결되어 사용되었다. 파일 처리 성능을 높이기 위해 저장장치로의 접근을 최소화하고, 이를 위해 여러 단계의 소프트웨어 계층이 존재한다. Referring to FIG. 3 , a motor-based slow storage device that has been used for a long time has an access delay time greater than that of dynamic random access memory (DRAM), which is a volatile memory, and is used by being connected to a device bus that is slower. In order to increase file processing performance, access to the storage device is minimized, and several levels of software layers exist for this purpose.

한 예로서, 블록 기반의 물리적 저장장치 여러 개를 하나의 논리 주소 공간에서 사용하기 위한 논리적 볼륨 관리자(Logical Volume Manager)가 사용되었다. As an example, a logical volume manager was used to use multiple block-based physical storage devices in one logical address space.

논리적 볼륨 관리자는 각 노드에 분산 설치된 공간을 하나의 논리적 주소 공간으로 만들기 위해서, 사용하는 물리 장치들을 볼륨 집단으로 만들고 볼륨 집단들을 논리적 볼륨으로 만들어 사용한다. 이 과정에서 오버헤드가 발생하는데 이는 전체 파일 처리 성능을 떨어뜨리는 요인으로 작용할 수 있다.The logical volume manager makes the physical devices used into volume groups and makes the volume groups into logical volumes in order to make the distributed space installed on each node into one logical address space. Overhead occurs in this process, which can act as a factor that degrades the overall file processing performance.

도 4를 참고하면, 도 3과 달리 각 노드에 분산 설치된 MBS를 하나의 주소 공간에서 사용하기 위한 논리적 볼륨 관리자 등의 소프트웨어 계층이 없으며, 대신 저장장치 관리부(1000)가 존재한다. Referring to FIG. 4 , unlike FIG. 3 , there is no software layer such as a logical volume manager for using MBSs distributed to each node in one address space, and instead a storage device management unit 1000 exists.

저장장치 관리부(1000)는 본 명세서에서 설명하는 동작들을 수행하며, MBS의 주소 공간을 관리하고, 각 노드에서 사용 가능한 MBS의 가용 공간을 고려하여 노드들을 관리한다. MBS 할당 요청이 발생하면, 설정된 정책에 따라 높은 파일 처리 성능을 얻을 수 있는 MBS를 선택하여 저장 공간을 할당한다. 이하 도 5를 통해 저장장치 관리부(1000)의 역할에 대해 자세히 설명한다.The storage management unit 1000 performs the operations described in this specification, manages the address space of the MBS, and manages the nodes in consideration of the available space of the MBS available in each node. When an MBS allocation request occurs, storage space is allocated by selecting an MBS that can achieve high file processing performance according to the set policy. Hereinafter, the role of the storage device management unit 1000 will be described in detail with reference to FIG. 5 .

도 5는 한 실시예에 따른 저장장치 관리부의 구성도이다. 5 is a configuration diagram of a storage device management unit according to an exemplary embodiment.

도 5를 참고하면, 저장장치 관리부(1000)는 주소 관리부(100), 공간 관리부(200), 모니터링부(300)를 포함한다.Referring to FIG. 5 , the storage device management unit 1000 includes an address management unit 100, a space management unit 200, and a monitoring unit 300.

설명을 위해, 주소 관리부(100), 공간 관리부(200), 모니터링부(300)로 명명하여 부르나, 이들은 적어도 하나의 프로세서에 의해 동작하는 컴퓨팅 장치이다. 여기서, 주소 관리부(100), 공간 관리부(200), 모니터링부(300)는 하나의 컴퓨팅 장치에 구현되거나, 별도의 컴퓨팅 장치에 분산 구현될 수 있다. 별도의 컴퓨팅 장치에 분산 구현된 경우, 주소 관리부(100), 공간 관리부(200), 모니터링부(300)는 통신 인터페이스를 통해 서로 통신할 수 있다. 컴퓨팅 장치는 본 발명을 수행하도록 작성된 소프트웨어 프로그램을 실행할 수 있는 장치이면 충분하고, 예를 들면, 서버, 랩탑 컴퓨터 등일 수 있다.For explanation, the address management unit 100, the space management unit 200, and the monitoring unit 300 are named and called, but they are computing devices operated by at least one processor. Here, the address management unit 100, the space management unit 200, and the monitoring unit 300 may be implemented in one computing device or distributedly implemented in separate computing devices. When distributed and implemented in separate computing devices, the address management unit 100, the space management unit 200, and the monitoring unit 300 may communicate with each other through a communication interface. The computing device suffices as long as it is capable of executing a software program written to perform the present invention, and may be, for example, a server, a laptop computer, or the like.

주소 관리부(100)는 메모리 버스에 연결된 MBS와 DRAM을 구분하고, MBS가 설치된 노드 번호를 지정하여 관리하는 역할을 한다. 주소 관리부(100)의 자세한 역할은 도 7을 통해 설명한다.The address management unit 100 serves to distinguish MBS and DRAM connected to the memory bus, designate and manage the node number where the MBS is installed. A detailed role of the address management unit 100 will be described with reference to FIG. 7 .

공간 관리부(200)는 할당과 회수를 통해 MBS 자원을 관리하며, 각 노드에서 사용 가능한 MBS 여유 공간 크기를 파악하여, 기준값보다 큰 여유 공간을 갖는 후보 노드와 그렇지 않은 비만 노드로 구분하여 관리할 수 있다. The space management unit 200 manages MBS resources through allocation and recovery, determines the size of MBS free space available in each node, and classifies and manages candidate nodes having free space larger than a reference value and obese nodes that do not. there is.

공간 관리부(200)는 MBS 할당 정책에 따라 빠른 파일 쓰기가 가능한 위치의 MBS를 할당한다. 공간 관리부(200)가 수행하는 MBS 할당 정책은 시뮬레이션에 의해 결정될 수 있다. 구체적으로, 파일 처리 크기(블록)에 따른 CPU와 MBS 간 거리와의 관계를 프로파일링하고 수집된 데이터를 바탕으로 어떤 노드의 MBS의 저장 공간을 할당받아 사용하는 것이 높은 파일 처리 성능을 기대할 수 있는지 모델링할 수 있다. The space management unit 200 allocates an MBS at a location where fast file writing is possible according to an MBS allocation policy. The MBS allocation policy performed by the space management unit 200 may be determined through simulation. Specifically, the relationship between the distance between the CPU and the MBS according to the file processing size (block) is profiled, and based on the collected data, it is determined which node's MBS storage space is allocated and used to achieve high file processing performance. can be modeled.

예를 들어, 4개의 노드 또는 8개의 노드가 있는 NUMA 시스템에서 하나의 노드에 있는 CPU에서만 40개의 프로세스가 다양한 블록 크기로 무작위 쓰기를 수행하고, 프로세스가 동작하는 노드와 사용하는 MBS가 있는 노드의 위치에 따라 성능 차이를 확인할 수 있다. For example, in a NUMA system with 4 nodes or 8 nodes, 40 processes on only the CPU on one node perform random writes with various block sizes, and the number of nodes on which the processes are running and on which MBS they use is You can see the difference in performance depending on the location.

실험 결과에 따라 프로세스가 동작하는 노드와 사용하는 MBS가 설치된 노드가 같을 때 가장 높은 성능을 얻을 수 있고, 다른 노드에 설치된 MBS를 사용할 때 가장 낮은 성능을 보임을 알 수 있다. According to the experimental results, the highest performance can be obtained when the node where the process is running and the node where the MBS used is installed are the same, and the lowest performance can be obtained when using the MBS installed on another node.

한편 다른 노드에 설치된 MBS를 사용하는 경우에도, 하나의 원격 노드에 있는 MBS를 사용할 때보다 여러 노드에 설치된 MBS를 순차적으로 사용하면 높은 파일 처리 성능을 보임을 알 수 있다. On the other hand, even when using MBSs installed on different nodes, it can be seen that higher file processing performance is shown when MBSs installed on multiple nodes are sequentially used than when MBSs on one remote node are used.

따라서 공간 관리부(200)는 이 결과를 MBS 할당 정책에 반영하여, 프로세스가 동작하는 동일 노드의 MBS 공간을 할당하는 로컬 정책과 여러 노드에 설치된 MBS를 순차적으로 할당하는 스트라이핑 정책을 설정할 수 있다. 할당 정책에 관한 자세한 동작 방법은 도 8 내지 도 10을 통해 설명한다.Accordingly, the space management unit 200 may reflect this result to the MBS allocation policy to set a local policy for allocating the MBS space of the same node where the process operates and a striping policy for sequentially allocating MBSs installed in multiple nodes. A detailed operation method of the allocation policy will be described with reference to FIGS. 8 to 10 .

모니터링부(300)는 공간 관리부(200)에 의해 구분된 후보 노드와 비만 노드의 여유 공간 크기를 주기적으로 감시하여, 여유 공간 크기가 변함에 따라 노드의 상태를 변경한다. 모니터링부(300)의 자세한 동작 방법은 도 11을 통해 설명한다.The monitoring unit 300 periodically monitors the size of the free space of the candidate node and the obese node classified by the space management unit 200, and changes the state of the node according to the change in the size of the free space. A detailed operating method of the monitoring unit 300 will be described with reference to FIG. 11 .

한편 저장장치 관리부(1000)는 파일시스템과 연동을 위한 인터페이스 드라이버(미도시)를 더 포함할 수 있다.Meanwhile, the storage device management unit 1000 may further include an interface driver (not shown) for linking with a file system.

도 6은 한 실시예에 따른 NUMA 시스템에서 MBS가 설치되는 구조를 나타낸 예시도이다.6 is an exemplary diagram illustrating a structure in which an MBS is installed in a NUMA system according to an embodiment.

도 6을 참고하면, NUMA 시스템에서 MBS가 설치되는 방법은 다양할 수 있으며 어느 하나에 제한되지 않는다. Referring to FIG. 6 , a method of installing MBS in a NUMA system may vary and is not limited to any one.

도 6의 (a)와 같이 n개의 노드 중 하나의 노드에만 MBS가 설치되거나, 도 6의 (b)와 같이 몇 개의 노드에만 MBS와 DRAM이 함께 설치될 수 있다. 한편 본 명세서에서는 도 6의 (c)와 같이 n개의 노드 전부 MBS와 DRAM이 설치된 환경을 전제로 한다. 따라서 이하 명세서에서 '노드'는 MBS와 DRAM이 모두 설치된 노드를 의미한다.As shown in (a) of FIG. 6, the MBS may be installed on only one node out of n nodes, or the MBS and DRAM may be installed together on only a few nodes as shown in (b) of FIG. Meanwhile, in this specification, as shown in (c) of FIG. 6, it is assumed that MBS and DRAM are installed in all n nodes. Therefore, in the following specification, 'node' means a node in which both MBS and DRAM are installed.

도 7은 한 실시예에 따른 주소 관리부의 동작 방법의 설명도이다.7 is an explanatory diagram of an operating method of an address management unit according to an exemplary embodiment.

도 7을 참고하면, 컴퓨터 시스템에서 사용되는 장치들은 설치 정보를 기반으로, 운영체제에서 해당 장치에 접근할 수 있는 주소 공간을 할당받아 사용할 수 있다. 이때 MBS와 DRAM은 하드웨어적으로 동일한 메모리 버스에 설치되며 동일한 물리 주소가 할당된다. Referring to FIG. 7 , devices used in a computer system may receive and use an address space through which an operating system can access a corresponding device based on installation information. At this time, MBS and DRAM are installed on the same memory bus in terms of hardware and the same physical address is assigned.

따라서 물리적인 주소만으로는 메모리 버스에 연결된 장치를 구별할 수 없으며 MBS와 DRAM을 구분하기 위해 메모리 버스에 설치된 장치들의 정보가 추가로 필요하다.Therefore, devices connected to the memory bus cannot be distinguished only with physical addresses, and information on devices installed on the memory bus is additionally required to distinguish between MBS and DRAM.

주소 관리부(100)는 물리적으로 연속되지 않게 설치된 MBS 설치 정보를 사용하여 하나의 논리적 주소 공간에서 사용할 수 있도록 구성한다. 설치 정보를 얻는 방법의 한 예로서, 부팅과정에서 e820map의 e820_entry구조체를 통해 얻을 수 있으며 시작주소, 크기, 종류에 대한 정보를 수집할 수 있다. MBS와 DRAM을 구분하기 위해 타입(Type) 값을 사용할 수 있다. 도 6과 같이 설치된 장치에서 e820_entry구조체를 통해 얻는 설치 정보는 표 1과 같을 수 있다. The address management unit 100 is configured to be used in one logical address space using MBS installation information that is not physically installed. As an example of how to obtain installation information, it can be obtained through the e820_entry structure of e820map during the booting process, and information on the start address, size, and type can be collected. A type value may be used to distinguish between MBS and DRAM. Installation information obtained through the e820_entry structure in the device installed as shown in FIG. 6 may be shown in Table 1.

물리주소physical address AA BB XX YY 사이즈size sizeAsizeA sizeBsizeB sizeXsizeX sizeYsizeY 타입type DRAMDRAM MBSMBS DRAMDRAM MBSMBS

한편, MBS가 설치된 노드 번호는 시스템 구조에 종속적인 정보로서, e820_entry구조체를 통해서 얻을 수 없으며, 사용하는 시스템에서 제공하는 기능을 사용하여 얻을 수 있다. 한 예로서 ACPI(Advanced Configuration and Power Interface)의 시스템의 메모리 친화 정보를 이용하여 MBS 물리 주소 범위를 얻을 수 있다. 이를 통해 주소 관리부(100)는 MBS가 어떤 노드에 속하는지 알 수 있고 MBS가 설치된 노드 번호를 지정할 수 있다.On the other hand, the node number where MBS is installed is information dependent on the system structure, and cannot be obtained through the e820_entry structure, but can be obtained using functions provided by the used system. As an example, the MBS physical address range can be obtained using memory affinity information of the system of ACPI (Advanced Configuration and Power Interface). Through this, the address manager 100 can know which node the MBS belongs to and can designate the node number where the MBS is installed.

주소 관리부(100)는 각 MBS별로 MBS가 설치된 주소, MBS의 크기, MBS가 설치된 노드 번호, MBS의 전체 크기, MSB들의 리스트를 구조체로 관리할 수 있다. The address management unit 100 may manage the address where the MBS is installed for each MBS, the size of the MBS, the node number where the MBS is installed, the total size of the MBS, and a list of MSBs in a structure.

도 8은 한 실시예에 따른 공간 관리부가 노드를 관리하는 방법의 설명도이다.8 is an explanatory diagram of a method for managing a node by a space management unit according to an embodiment.

도 8을 참고하면, 공간 관리부(200)는 각 노드에서 사용 가능한 MBS 여유 공간 크기에 따라, 각 노드를 후보 노드와 비만 노드로 구분하여 관리할 수 있다. Referring to FIG. 8 , the space manager 200 divides and manages each node into a candidate node and an obese node according to the size of MBS free space available in each node.

후보 노드란, 기준값보다 큰 MBS 여유 공간을 갖고 있는 노드를 의미하고, 비만 노드란 기준값보다 작거나 같은 크기의 MBS 여유 공간을 갖고 있는 노드를 의미한다. A candidate node means a node having an MBS extra space larger than the reference value, and an obese node means a node having an MBS extra space smaller than or equal to the reference value.

기준값은 사용자 또는 관리자에 의해 설정될 수 있고, 각 노드에 설치된 MBS 전체 크기에 대한 여유 공간의 비율로 표현될 수 있다. 한 예로서, 도 10과 같이 각 노드에 10GB 크기의 MBS가 설치되어 있고 기준값이 0.1로 설정되어 있는 경우를 가정한다. 10GB의 10%인 1GB를 기준으로, 각 노드의 여유 공간이 1GB보다 큰 노드는 후보 노드가 되고, 그렇지 않은 노드는 비만 노드가 된다. The reference value can be set by a user or administrator, and can be expressed as a ratio of free space to the total size of the MBS installed in each node. As an example, as shown in FIG. 10 , it is assumed that a 10 GB MBS is installed in each node and the reference value is set to 0.1. Based on 1GB, which is 10% of 10GB, nodes with more than 1GB of free space on each node become candidate nodes, and nodes that do not become obese nodes.

다른 예로서, 기준값이 0으로 설정되어 있는 경우, 비만 노드는 여유 공간이 전혀 없는 노드를 의미하며 여유 공간이 있는 노드들은 후보 노드가 될 수 있다.As another example, when the reference value is set to 0, an obese node means a node without free space, and nodes with free space may be candidate nodes.

도 9는 한 실시예에 따른 모니터링부가 노드를 관리하는 방법의 흐름도이다.9 is a flowchart of a method for managing a node by a monitoring unit according to an embodiment.

도 9를 참고하면, 노드의 MBS 여유 공간은 실시간으로 변경될 수 있으며, 모니터링부(300)는 노드의 MBS 여유 공간 상태에 따라 후보 노드와 비만 노드를 결정한다.Referring to FIG. 9 , the MBS free space of a node may be changed in real time, and the monitoring unit 300 determines the candidate node and the obese node according to the MBS free space state of the node.

공간 관리부(200)에 의해 후보 노드와 비만 노드가 구분되면, 모니터링부(300)는 주기적으로 각 노드의 MBS 여유 공간 크기를 모니터링하여, 여유 공간 크기가 변하면 기준값에 따라 각 노드가 후보 노드인지 비만 노드인지 상태를 결정한다. When candidate nodes and obese nodes are classified by the space management unit 200, the monitoring unit 300 periodically monitors the MBS free space size of each node. Determines whether a node is a state.

모니터링부(300)는 임의의 노드 i의 MBS 여유 공간과 기준값을 비교한다(S110).The monitoring unit 300 compares the MBS free space of a random node i with a reference value (S110).

S110 단계에서 노드 i의 MBS 여유 공간이 기준값보다 큰 경우, 모니터링부(300)는 노드 i가 후보 노드로 설정되어 있는지 확인한다(S120).In step S110, if the free MBS space of node i is greater than the reference value, the monitoring unit 300 checks whether node i is set as a candidate node (S120).

노드 i가 후보 노드로 설정되어 있으면, 여유 공간 크기에 맞게 설정된 것이므로 단계를 종료한다(S140).If node i is set as a candidate node, it is set according to the size of the free space, so the step ends (S140).

S120 단계에서 노드 i가 후보 노드로 설정되어 있지 않으면, 모니터링부(300)는 노드 i를 비만 노드에서 후보 노드로 변경한다(S130).If node i is not set as a candidate node in step S120, the monitoring unit 300 changes node i from an obese node to a candidate node (S130).

S110 단계에서 노드 i의 MBS 여유 공간이 기준값보다 작은 경우, 모니터링부(300)는 노드 i가 비만 노드로 설정되어 있는지 확인한다(S150).In step S110, if the free MBS space of node i is smaller than the reference value, the monitoring unit 300 checks whether node i is set as an obese node (S150).

노드 i가 비만 노드로 설정되어 있으면, 여유 공간 크기에 맞게 설정된 것이므로 단계를 종료한다(S140).If node i is set as an obese node, it is set according to the size of the free space, so the step ends (S140).

S150 단계에서 노드 i가 비만 노드로 설정되어 있지 않으면, 모니터링부(300)는 노드 i를 후보 노드에서 비만 노드로 변경한다(S160).If node i is not set as an obese node in step S150, the monitoring unit 300 changes node i from a candidate node to an obese node (S160).

한편 모니터링부(300)는 커널 쓰레드로 동작할 수 있고, 비만 노드가 없는 경우에는 잠자기 상태로 있을 수 있다. 비만 노드가 생기면 모니터링부(300)가 깨워져 동작할 수 있다.Meanwhile, the monitoring unit 300 may operate as a kernel thread, and may be in a sleep state when there is no obese node. When an obese node occurs, the monitoring unit 300 may wake up and operate.

도 10은 한 실시예에 따른 공간 관리부가 MBS를 할당하는 방법의 설명도이고, 도 11은 다른 실시예에 따른 공간 관리부가 MBS를 할당하는 방법의 설명도이다.10 is an explanatory diagram of a method for allocating an MBS by a space management unit according to one embodiment, and FIG. 11 is an explanatory diagram of a method for allocating an MBS by a space management unit according to another embodiment.

도 5에서 설명한 바와 같이 시뮬레이션을 통해, 프로세스와 사용하는 MBS가 동일한 노드에 있을 때 가장 높은 파일 처리 성능을 얻을 수 있고, 각 노드의 MBS를 순차적으로 번갈아가며(Striping) 사용하면 원격 노드에 설치된 MBS만을 사용할 때보다 높은 파일 처리 성능을 얻을 수 있음을 알 수 있다. As described in FIG. 5, through simulation, the highest file processing performance can be obtained when the process and the MBS used are on the same node, and when the MBS of each node is used sequentially (striping), the MBS installed on the remote node is used. It can be seen that higher file processing performance can be obtained than when using only .

공간 관리부(200)는 시뮬레이션 결과를 바탕으로 MBS의 처리 성능을 최대한 활용하기 위해, 2가지 정책을 제공할 수 있다.The space management unit 200 may provide two policies to maximize the processing performance of the MBS based on the simulation results.

도 10을 참고하면, 공간 관리부(200)는 프로세스가 동작하는 노드에서 가장 작은 접근 지연 시간을 갖고 있는 동일한 노드의 MBS에서 공간을 할당하는 로컬 정책을 수행할 수 있다. Referring to FIG. 10 , the space management unit 200 may perform a local policy for allocating space in the MBS of the same node having the smallest access delay time in the node where the process operates.

예를 들어, 노드 0에서 실행중인 프로세스가 MBS 저장 공간 할당을 요청한 경우, 공간 관리부(200)는 로컬 정책에 의해 해당 프로세스가 실행되는 동일한 노드의 MBS의 공간을 할당할 수 있다. For example, when a process running on node 0 requests MBS storage space allocation, the space manager 200 may allocate MBS space on the same node where the corresponding process is executed according to a local policy.

한편 로컬 정책은 가장 높은 파일 쓰기 성능을 얻을 수 있으나, 해당 노드의 MBS 자원이 소진된 이후에는 사용할 수 없는 문제점이 있다. 따라서 로컬 정책을 사용할 수 없을 때 적용할 수 있는 정책이 필요하다. On the other hand, the local policy can obtain the highest file writing performance, but there is a problem that it cannot be used after the MBS resource of the corresponding node is exhausted. Therefore, we need a policy that can be applied when the local policy is not available.

도 11을 참고하면, 공간 관리부(200)는 할당 가능한 MBS들 중에서 순차적으로 할당하는 스트라이핑 정책을 수행할 수 있다.Referring to FIG. 11 , the space management unit 200 may perform a striping policy of sequentially allocating MBSs among assignable MBSs.

예를 들어, 노드 0에서 실행중인 프로세스가 MBS 저장 공간 할당을 요청한 경우, 공간 관리부(200)는 우선 노드 0에 설치된 MBS 공간을 할당하고, 이후 노드 1에 설치된 MBS 공간을 할당할 수 있다. For example, when a process running on node 0 requests allocation of MBS storage space, the space management unit 200 may first allocate the MBS space installed on node 0 and then allocate the MBS space installed on node 1.

한편 스트라이핑 정책은 로컬 정책에 비해 파일 쓰기 성능이 낮으나, 하나의 원격 노드만을 사용할 때보다 높은 파일 쓰기 성능을 얻을 수 있다. 또한 각 노드의 MBS를 고르게 사용할 수 있어 특정 노드의 MBS 자원만 소진되는 것을 막을 수 있다. On the other hand, the striping policy has lower file writing performance than the local policy, but higher file writing performance can be obtained than when using only one remote node. In addition, since the MBS of each node can be evenly used, exhaustion of only the MBS resources of a specific node can be prevented.

여러 노드의 MBS들을 스트라이핑하여 사용하면, 로컬 노드를 제외하고 가장 낮은 접근 지연 시간을 갖는 노드의 MBS를 사용할 때보다 높은 파일 처리 성능을 얻을 수 있다. 스트라이핑 기법은 로컬 기법을 사용할 수 없는 조건에서 가장 높은 파일 처리 성능을 얻을 수 있는 기법으로 사용이 가능하다. When MBSs of multiple nodes are striped, higher file processing performance can be obtained than when MBSs of nodes with the lowest access latency excluding local nodes are used. The striping technique can be used as a technique to obtain the highest file processing performance under conditions where the local technique cannot be used.

공간 관리부(200)가 어떤 정책을 기본 정책으로 사용할 것인지는, 사용자 또는 관리자에 의해 설정될 수 있으며, 공간 관리부(200)의 컴파일 시간에 설정될 수 있다. 한 예로서, 사용자 또는 관리자는 입출력 제어(I/O Control) 인터페이스를 통해 응용을 실행시킬 때 정책을 선택할 수 있다. 사용할 정책이 선택이 되지 않으면 기본 정책이 사용될 수 있다.Which policy the space management unit 200 will use as a basic policy can be set by a user or an administrator, and can be set at compile time of the space management unit 200 . As an example, a user or administrator may select a policy when executing an application through an I/O Control interface. If the policy to be used is not selected, the default policy can be used.

공간 관리부(200)는 다양한 방법으로 전체 저장 공간의 사용 여부를 관리할 수 있으며, 한 예로서 비트맵(Bitmap)을 사용할 수 있다. 비트맵은 일정 크기로 공간을 분할하여 각 공간을 하나의 비트로 표시하는 방법이다. 사용 가능한 공간을 찾기 위해 비트맵을 순차적으로 검색하여야 하며, 경우에 따라서는 모든 비트를 검색해야 하고, NUMA를 인지하기 어려울 수 있다. The space management unit 200 may manage whether the entire storage space is used in various ways, and as an example, a bitmap may be used. A bitmap is a method of dividing a space into a certain size and displaying each space with one bit. In order to find available space, the bitmap must be sequentially searched, and in some cases all bits must be searched, and NUMA can be difficult to recognize.

다른 예로서, 공간 관리부(200)는 버디 시스템을 이용할 수 있다. 버디 시스템(Buddy System)은 세그먼트로부터 2의 거듭제곱 단위로(4KB, 8KB, 16KB..) 메모리가 할당되는 시스템을 의미한다. As another example, the space management unit 200 may use a buddy system. A buddy system refers to a system in which memory is allocated in units of powers of 2 (4KB, 8KB, 16KB...) from segments.

버디 시스템은 비트맵에 비해 빠른 검색과 관리가 가능하고, 메인 메모리 사용 환경에서 오랫동안 사용되어 왔다. MBS가 메인 메모리와 같은 특성을 갖고 있으므로, 공간 관리부(200)는 버디 시스템을 이용하여 표 2와 같은 의사코드를 통해 MBS의 물리적 공간을 할당하거나 회수할 수 있다. The buddy system enables faster search and management compared to bitmap, and has been used for a long time in the main memory usage environment. Since the MBS has the same characteristics as the main memory, the space management unit 200 can allocate or recover the physical space of the MBS through the pseudo code shown in Table 2 using the buddy system.

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
Function Get Striping(node id, order)
return GetMBSfromallNodes ;
end
Function Get Local(node id, order)
if Local MBS has enough Spacethen
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 != LOCALthen
return Get Striping(processnid, order) ;
else
return Get Local(processnid, order) ;
end
end
FunctionGetPolicy(currentprocess)
if currentprocesspolicy != NULLthen
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는 컴파일 시간에 설정된 기본 할당 정책을 의미한다. In Table 2, order means the number of MBS pages to be allocated, processnid means the node number on which the process requesting MBS allocation is running, processpolicy means the MBS allocation policy desired by the process, and NUMA - store_DefaultPolicy means the default allocation policy set at compile time.

도 12는 한 실시예에 따른 저장장치 관리부가 노드를 관리하는 방법의 흐름도이다. 12 is a flowchart of a method of managing a node by a storage manager according to an embodiment.

도 12를 참고하면, 저장장치 관리부(1000)의 주소 관리부(100)는 메모리 버스에 연결된 장치의 설치 정보를 수집한다(S210). 한 예로서, 부팅과정에서 e820map의 e820_entry구조체를 통해 얻을 수 있으며 시작주소, 크기, 종류에 대한 정보를 수집할 수 있다. Referring to FIG. 12 , the address management unit 100 of the storage device management unit 1000 collects installation information of devices connected to the memory bus (S210). As an example, it can be obtained through the e820_entry structure of the e820map during the booting process, and information on the start address, size, and type can be collected.

저장장치 관리부(1000)의 주소 관리부(100)는 수집된 설치 정보를 이용하여 MBS와 DRAM을 구분한다(S220). 한 예로서, 수집한 정보에서 타입(Type) 값으로 구분할 수 있다.The address management unit 100 of the storage device management unit 1000 distinguishes between MBS and DRAM using the collected installation information (S220). As an example, collected information can be classified as a type value.

저장장치 관리부(1000)의 주소 관리부(100)는 시스템의 메모리 친화 정보로부터 MBS 물리 주소 범위를 수집한다(S230). 한 예로서 ACPI(Advanced Configuration and Power Interface)의 시스템의 메모리 친화 정보를 이용할 수 있다.The address management unit 100 of the storage device management unit 1000 collects the MBS physical address range from memory affinity information of the system (S230). As an example, memory affinity information of an Advanced Configuration and Power Interface (ACPI) system may be used.

저장장치 관리부(1000)의 주소 관리부(100)는 MBS 물리 주소 범위를 바탕으로 MBS가 설치된 노드 번호를 지정한다(S240).The address management unit 100 of the storage device management unit 1000 designates the node number where the MBS is installed based on the MBS physical address range (S240).

저장장치 관리부(1000)의 주소 관리부(100)는 MBS가 설치된 노드를 노드를 후보 노드와 비만 노드로 구분하여 관리한다(S250). 이후, 모니터링부(300)는 주기적으로 각 노드의 MBS 여유 공간 크기를 모니터링하여, 여유 공간 크기가 변하면 기준값에 따라 각 노드가 후보 노드인지 비만 노드인지 상태를 변경할 수 있다.The address management unit 100 of the storage device management unit 1000 manages the node where the MBS is installed by dividing the node into a candidate node and a non-existent node (S250). Thereafter, the monitoring unit 300 periodically monitors the MBS free space size of each node, and when the free space size changes, it can change whether each node is a candidate node or an obese node according to a reference value.

도 13은 한 실시예에 따른 저장장치 관리부가 저장 공간을 할당하는 방법의 흐름도이다.13 is a flowchart of a method of allocating a storage space by a storage device manager according to an exemplary embodiment.

도 13을 참고하면, 저장장치 관리부(1000)는 파일 쓰기 요청을 입력받는다(S310).Referring to FIG. 13 , the storage device manager 1000 receives a file write request (S310).

저장장치 관리부(1000)는 MBS의 기본 할당 정책이 무엇으로 설정되어 있는지 확인한다(S320). 기본 할당 정책은 로컬 정책 또는 스트라이핑 정책일 수 있다.The storage device management unit 1000 checks what the default allocation policy of MBS is set to (S320). The default allocation policy can be a local policy or a striping policy.

S320 단계에서 기본 할당 정책이 로컬 정책인 경우, 저장장치 관리부(1000)는 로컬 노드에 여유 공간이 있는지 확인한다(S330). 로컬 노드란, 프로세스가 동작하는 노드를 의미한다.If the default allocation policy is the local policy in step S320, the storage device management unit 1000 checks whether there is free space in the local node (S330). A local node means a node where a process operates.

로컬 노드에 여유 공간이 있으면, 저장장치 관리부(1000)는 로컬 MBS에서 저장 공간을 할당한다(S340). 로컬 MBS란 프로세스가 동작하는 노드에 속한 MBS를 의미한다.If there is free space in the local node, the storage device management unit 1000 allocates storage space in the local MBS (S340). A local MBS is an MBS that belongs to the node where the process is running.

로컬 노드에 여유 공간이 없으면, 저장장치 관리부(1000)는 로컬 노드 외에 다른 후보 노드가 있는지 확인한다(S360). 후보 노드란 기준값보다 큰 MBS 여유 공간을 갖고 있는 노드를 의미할 수 있다.If there is no free space in the local node, the storage device management unit 1000 checks whether there are other candidate nodes other than the local node (S360). A candidate node may refer to a node having an MBS free space larger than a reference value.

후보 노드가 있으면, 저장장치 관리부(1000)는 후보 노드에서 저장 공간을 할당하고(S370), 후보 노드가 없으면 비만 노드에서 공간을 할당한다(S380). 한편, 비만 노드에 여유 공간이 없다면 메모리 부족(ENOSPC)으로 단계가 종료될 수 있다. If there is a candidate node, the storage management unit 1000 allocates storage space in the candidate node (S370), and if there is no candidate node, the storage device management unit 1000 allocates space in the obese node (S380). Meanwhile, if there is no free space in the obese node, the step may be terminated due to memory shortage (ENOSPC).

S320 단계에서 기본 할당 정책이 설정되지 않은 경우, 저장장치 관리부(1000)는 로컬 MBS가 속한 노드가 비만 노드인지 확인한다(S350).If the default allocation policy is not set in step S320, the storage device management unit 1000 checks whether the node to which the local MBS belongs is an obese node (S350).

로컬 MBS가 속한 노드가 비만 노드가 아니면, 저장장치 관리부(1000)는 로컬 MBS에서 저장 공간을 할당한다(S340).If the node to which the local MBS belongs is not an obese node, the storage manager 1000 allocates storage space in the local MBS (S340).

로컬 MBS가 속한 노드가 비만 노드면, 저장장치 관리부(1000)는 로컬 노드 외에 다른 후보 노드가 있는지 확인한다(S360).If the node to which the local MBS belongs is an obese node, the storage manager 1000 checks whether there are other candidate nodes besides the local node (S360).

이후 후보 노드가 있으면, 저장장치 관리부(1000)는 후보 노드에서 저장 공간을 할당하고(S370), 후보 노드가 없으면 비만 노드에서 공간을 할당한다(S380). Then, if there is a candidate node, the storage manager 1000 allocates a storage space in the candidate node (S370), and if there is no candidate node, allocates a space in the obese node (S380).

도 14는 한 실시예에 따른 컴퓨팅 장치의 하드웨어 구성도이다.14 is a hardware configuration diagram of a computing device according to an embodiment.

도 14를 참고하면, 주소 관리부(100), 공간 관리부(200), 모니터링부(300)는 적어도 하나의 프로세서에 의해 동작하는 컴퓨팅 장치(400)에서, 본 발명의 동작을 실행하도록 기술된 명령들(instructions)이 포함된 프로그램을 실행한다. Referring to FIG. 14 , the address management unit 100, the space management unit 200, and the monitoring unit 300 execute instructions described for executing the operation of the present invention in the computing device 400 operated by at least one processor. Execute the program containing the (instructions).

컴퓨팅 장치(400)의 하드웨어는 적어도 하나의 프로세서(410), 메모리(420), 스토리지(430), 통신 인터페이스(440)을 포함할 수 있고, 버스를 통해 연결될 수 있다. 이외에도 입력 장치 및 출력 장치 등의 하드웨어가 포함될 수 있다. 컴퓨팅 장치(400)는 프로그램을 구동할 수 있는 운영체제를 비롯한 각종 소프트웨어가 탑재될 수 있다.Hardware of the computing device 400 may include at least one processor 410, memory 420, storage 430, and communication interface 440, and may be connected through a bus. In addition, hardware such as an input device and an output device may be included. The computing device 400 may be loaded with various software including an operating system capable of driving programs.

프로세서(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)는 유/무선 통신 모듈일 수 있다.The processor 410 is a device for controlling the operation of the computing device 400, and may be various types of processors that process commands included in a program, for example, a Central Processing Unit (CPU) or a Micro Processor Unit (MPU). ), MCU (Micro Controller Unit), GPU (Graphic Processing Unit), and the like. Memory 420 loads a corresponding program so that the instructions described to carry out the operations of the present invention are processed by processor 410 . The memory 420 may be, for example, read only memory (ROM) or random access memory (RAM). The storage 430 stores various data, programs, etc. required to execute the operation of the present invention. The communication interface 440 may be a wired/wireless communication module.

본 발명에 따르면 리눅스 커널에서 MBS의 특성을 고려하여 파일 처리 경로를 단순화하므로, 불필요한 오버헤드로 인한 성능 손실을 방지하고, 파일 처리 성능을 개선할 수 있다. According to the present invention, since a file processing path is simplified in consideration of MBS characteristics in the Linux kernel, performance loss due to unnecessary overhead can be prevented and file processing performance can be improved.

또한, 본 발명에 따르면 접근 지연 시간을 최소화 할 수 있는 노드의 MBS로 부터 저장 공간을 할당받을 수 있으므로 시스템의 성능을 개선시킬 수 있다.In addition, according to the present invention, since storage space can be allocated from the MBS of a node capable of minimizing an access delay time, system performance can be improved.

이상에서 설명한 본 발명의 실시예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있다.The embodiments of the present invention described above are not implemented only through devices and methods, and may be implemented through programs that realize functions corresponding to the configuration of the embodiments of the present invention or a recording medium on which the programs are recorded.

이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.Although the embodiments of the present invention have been described in detail above, the scope of the present invention is not limited thereto, and various modifications and improvements made by those skilled in the art using the basic concept of the present invention defined in the following claims are also included in the scope of the present invention. that fall within the scope of the right.

Claims (13)

적어도 하나의 프로세서에 의해 동작하는 컴퓨팅 장치의 동작 방법으로서,
메모리 버스에 연결된 저장장치의 물리 주소를 포함하는 설치 정보를 수집하고, 상기 설치 정보를 바탕으로 상기 저장장치가 설치된 노드를 판단해서, 상기 저장장치가 설치된 각 노드의 저장 여유 공간을 관리하는 단계,
임의의 노드에서 실행된 프로세스로부터 파일 쓰기 요청과 상기 파일 쓰기 요청에 따른 저장 공간 할당 요청을 입력받는 단계, 그리고
미리 설정된 저장 공간 할당 정책에 따라, 상기 프로세스가 실행된 상기 임의의 노드에 속한 저장장치의 공간을 할당하거나 또는 상기 임의의 노드와 다른 노드에 속한 저장장치의 공간을 할당하는 단계
를 포함하는, 동작 방법.
A method of operating a computing device operated by at least one processor,
Collecting installation information including physical addresses of storage devices connected to a memory bus, determining nodes in which the storage devices are installed based on the installation information, and managing free storage space of each node in which the storage devices are installed;
Receiving a file write request and a storage space allocation request according to the file write request from a process executed on an arbitrary node; and
Allocating space in a storage device belonging to the arbitrary node in which the process is executed or allocating space in a storage device belonging to a node different from the arbitrary node according to a preset storage space allocation policy.
Including, operating method.
적어도 하나의 프로세서에 의해 동작하는 컴퓨팅 장치의 동작 방법으로서,
저장장치가 설치된 각 노드의 저장 여유 공간을 관리하는 단계,
임의의 노드에서 실행된 프로세스로부터 파일 쓰기 요청과 상기 파일 쓰기 요청에 따른 저장 공간 할당 요청을 입력받는 단계, 그리고
미리 설정된 저장 공간 할당 정책에 따라, 상기 프로세스가 실행된 상기 임의의 노드에 속한 저장장치의 공간을 할당하거나 또는 상기 임의의 노드와 다른 노드에 속한 저장장치의 공간을 할당하는 단계를 포함하고,
상기 관리하는 단계는,
상기 각 노드를 미리 설정된 기준값보다 큰 저장 여유 공간을 갖고 있는 후보 노드와, 상기 기준값보다 작거나 같은 저장 여유 공간을 갖고 있는 비만 노드로 구분하는, 동작 방법.
A method of operating a computing device operated by at least one processor,
Managing the free storage space of each node in which the storage device is installed;
Receiving a file write request and a storage space allocation request according to the file write request from a process executed on an arbitrary node; and
Allocating space in a storage device belonging to the arbitrary node where the process is executed or allocating space in a storage device belonging to a node different from the arbitrary node according to a preset storage space allocation policy,
The management step is
Dividing each of the nodes into a candidate node having a storage margin larger than a preset reference value and an obese node having a storage margin equal to or smaller than the reference value.
삭제delete 제1항에서,
상기 수집하는 단계는,
상기 물리 주소와 시스템의 메모리 친화 정보를 이용하여 상기 저장장치가 설치된 물리 주소를 수집하는, 동작 방법.
In paragraph 1,
The collecting step is
Collecting the physical address where the storage device is installed using the physical address and memory affinity information of the system.
제1항에서,
상기 컴퓨팅 장치는 비균일 메모리 액세스(Non-Uniform Memory Access, NUMA) 구조의 시스템으로 동작하고,
상기 저장장치는 메모리 버스에 연결하여 사용하는 메모리 저장장치(Memory Bus connected Storage, MBS)인, 동작 방법.
In paragraph 1,
The computing device operates as a system with a Non-Uniform Memory Access (NUMA) structure,
The storage device is a memory storage device (Memory Bus connected Storage, MBS) used by connecting to a memory bus, operating method.
제1항에서,
상기 저장 공간 할당 정책은,
상기 임의의 노드에 속한 저장장치의 공간을 할당하는 로컬 정책과, 상기 임의의 노드를 포함하는 복수의 노드들에 속한 저장장치의 공간을 순차적으로 할당하는 스트라이핑 정책 중 어느 하나인, 동작 방법.
In paragraph 1,
The storage space allocation policy,
Any one of a local policy for allocating space on a storage device belonging to the arbitrary node and a striping policy for sequentially allocating space on a storage device belonging to a plurality of nodes including the arbitrary node.
제6항에서,
상기 저장 공간 할당 정책은,
상기 컴퓨팅 장치의 입출력 제어(I/O Control) 인터페이스를 통해 응용을 실행시키는 과정에서 상기 로컬 정책 또는 상기 스트라이핑 정책 중 어느 하나로 설정되는, 동작 방법.
In paragraph 6,
The storage space allocation policy,
In the process of executing an application through an input/output control (I/O Control) interface of the computing device, the operating method is set to either the local policy or the striping policy.
적어도 하나의 프로세서에 의해 동작하는 컴퓨팅 장치의 동작 방법으로서,
저장장치와 중앙 처리 장치를 포함하는 각 노드의 저장 여유 공간을 관리하는 단계,
임의의 노드에서 실행된 프로세스로부터 저장 공간 할당 요청을 입력받는 단계, 그리고
상기 프로세스가 실행된 상기 임의의 노드로부터 접근 시간이 가장 짧은 노드에 속한 저장장치의 공간을 할당하는 단계를 포함하고,
상기 컴퓨팅 장치는 비균일 메모리 액세스(Non-Uniform Memory Access, NUMA) 구조의 시스템인, 동작 방법.
A method of operating a computing device operated by at least one processor,
Managing storage space of each node including a storage device and a central processing unit;
Receiving a storage space allocation request from a process executed on an arbitrary node; and
Allocating space in a storage device belonging to a node with the shortest access time from the arbitrary node where the process is executed,
The computing device is a non-uniform memory access (Non-Uniform Memory Access, NUMA) structured system, operating method.
제8항에서,
상기 관리하는 단계는,
상기 각 노드의 저장 여유 공간을 모니터링하여, 미리 설정된 기준값보다 큰 저장 여유 공간을 갖고 있는 노드를 후보 노드로 설정하고, 상기 기준값보다 작거나 같은 저장 여유 공간을 갖고 있는 노드를 비만 노드로 설정하는, 동작 방법.
In paragraph 8,
The management step is
Monitoring the free storage space of each node, setting a node having a free storage space larger than a preset reference value as a candidate node, and setting a node having a free storage space smaller than or equal to the reference value as an obese node. how it works.
제9항에서,
상기 저장장치는 메모리 버스에 연결하여 사용하는 메모리 저장장치(Memory Bus connected Storage, MBS)이고,
상기 중앙 처리 장치는 복수의 코어(Core)를 포함하는, 동작 방법.
In paragraph 9,
The storage device is a memory storage device (Memory Bus connected Storage, MBS) used by connecting to a memory bus,
The central processing unit includes a plurality of cores (Core), operating method.
제8항에서,
상기 할당하는 단계는,
상기 임의의 노드에 속한 저장장치의 공간을 할당하는, 동작 방법.
In paragraph 8,
The allocating step is
Allocating space in a storage device belonging to the arbitrary node.
제8항에서,
상기 할당하는 단계는,
상기 임의의 노드에 속한 저장장치의 저장 여유 공간을 확인하는 단계, 그리고
상기 임의의 노드에 속한 저장장치의 저장 여유 공간이 없으면, 상기 임의의 노드와 다른 노드들 중 접근 시간이 짧은 노드들의 저장 공간을 순차적으로 할당하는 단계
를 포함하는, 동작 방법.
In paragraph 8,
The allocating step is
Checking free storage space of a storage device belonging to the arbitrary node; and
If there is no free storage space in the storage device belonging to the arbitrary node, sequentially allocating the storage space of the arbitrary node and nodes having a short access time among other nodes.
Including, operating method.
제8항에서,
상기 할당하는 단계는,
상기 저장 여유 공간을 2로 반복하여 나누고, 요청된 저장 공간의 크기와 가장 가까운 크기의 메모리를 할당하는 버디 메모리 할당(Buddy Memory Allocation) 방법을 이용하는, 동작 방법.
In paragraph 8,
The allocating step is
Using a buddy memory allocation method of repeatedly dividing the free storage space by 2 and allocating a memory having a size closest to the size of the requested storage space.
KR1020200013793A 2019-11-13 2020-02-05 Method for allocating memory bus connected storage in numa system KR102565873B1 (en)

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 KR20210058609A (en) 2021-05-24
KR102565873B1 true KR102565873B1 (en) 2023-08-11

Family

ID=76153326

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200013793A KR102565873B1 (en) 2019-11-13 2020-02-05 Method for allocating memory bus connected storage in numa system

Country Status (1)

Country Link
KR (1) KR102565873B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105389211A (en) * 2015-10-22 2016-03-09 北京航空航天大学 Memory allocation method and delay perception-memory allocation apparatus suitable for memory access delay balance among multiple nodes in NUMA construction

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130088512A (en) * 2012-01-31 2013-08-08 한국전자통신연구원 Apparatus and method for managing resource in clustered computing environment
KR102469927B1 (en) * 2017-10-16 2022-11-23 한국전자통신연구원 Apparatus for managing disaggregated memory and method for the same

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105389211A (en) * 2015-10-22 2016-03-09 北京航空航天大学 Memory allocation method and delay perception-memory allocation apparatus suitable for memory access delay balance among multiple nodes in NUMA construction

Also Published As

Publication number Publication date
KR20210058609A (en) 2021-05-24

Similar Documents

Publication Publication Date Title
US9760497B2 (en) Hierarchy memory management
US9081702B2 (en) Working set swapping using a sequentially ordered swap file
US8447943B2 (en) Reduction of I/O latency for writable copy-on-write snapshot function
JP5669531B2 (en) Method, apparatus and computer program for speeding up system startup time
JP2007272573A (en) Power consumption reduction memory management method and memory management program
US20130346693A1 (en) Data Cache Method, Device, and System in a Multi-Node System
CN111008155B (en) Method of managing memory of computer device, medium
US8495302B2 (en) Selecting a target number of pages for allocation to a partition
CN106557427B (en) Memory management method and device for shared memory database
JP2022539950A (en) Storage system, memory management method and management node
US11199972B2 (en) Information processing system and volume allocation method
US10664392B2 (en) Method and device for managing storage system
US10198180B2 (en) Method and apparatus for managing storage device
CN114036078A (en) Method and system for managing cache devices in a storage system
CN106354428B (en) Storage sharing system of multi-physical layer partition computer system structure
US20210191777A1 (en) Memory Allocation in a Hierarchical Memory System
CN110119245B (en) Method and system for operating NAND flash memory physical space to expand memory capacity
KR102565873B1 (en) Method for allocating memory bus connected storage in numa system
CN116401043A (en) Execution method of computing task and related equipment
CN111459400A (en) Method and apparatus for pipeline-based access management in storage servers
JP2017033375A (en) Parallel calculation system, migration method, and migration program
CN113031857B (en) Data writing method, device, server and storage medium
WO2022002128A1 (en) Data reading method, data writing method, device, and system
WO2015161804A1 (en) Cache partitioning method and device
US9021506B2 (en) Resource ejectability in multiprocessor systems

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