KR20220072656A - File System-based Block Allocation Apparatus and Method - Google Patents

File System-based Block Allocation Apparatus and Method Download PDF

Info

Publication number
KR20220072656A
KR20220072656A KR1020200160499A KR20200160499A KR20220072656A KR 20220072656 A KR20220072656 A KR 20220072656A KR 1020200160499 A KR1020200160499 A KR 1020200160499A KR 20200160499 A KR20200160499 A KR 20200160499A KR 20220072656 A KR20220072656 A KR 20220072656A
Authority
KR
South Korea
Prior art keywords
initialization
block
file system
blocks
storage
Prior art date
Application number
KR1020200160499A
Other languages
Korean (ko)
Other versions
KR102546741B1 (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 성균관대학교산학협력단
Priority to KR1020200160499A priority Critical patent/KR102546741B1/en
Publication of KR20220072656A publication Critical patent/KR20220072656A/en
Application granted granted Critical
Publication of KR102546741B1 publication Critical patent/KR102546741B1/en

Links

Images

Classifications

    • 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/17Details of further file system functions
    • G06F16/1727Details of free space management performed by the file system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명의 실시 예에 의한 파일 시스템 기반의 블록 할당 장치는 어플리케이션의 요청에 따라 저장소의 블록들에 대해서 파일의 읽기 및 쓰기 동작을 수행하는 파일 시스템, 저장소의 블록들 중에서 적어도 하나 이상을 초기화하여 초기화 블록을 생성하고, 초기화 블록에 대한 초기화 정보를 생성하는 초기화 관리부 및 상기 초기화 정보가 저장되는 풀;을 구비한다. 초기화 관리부는 저장소 내에서 초기화 블록의 개수를 미리 설정된 임계치 이상으로 유지한다.The file system-based block allocation apparatus according to an embodiment of the present invention initializes by initializing at least one of a file system that reads and writes a file on blocks of a storage according to an application's request, and a block of a storage and an initialization manager that generates a block and generates initialization information for the initialization block, and a pool in which the initialization information is stored. The initialization manager maintains the number of initialization blocks in the storage above a preset threshold.

Description

파일 시스템 기반의 블록 할당 장치 및 방법{File System-based Block Allocation Apparatus and Method}File System-based Block Allocation Apparatus and Method

본 발명은 파일 시스템 기반의 블록 할당 장치 및 방법에 관한 것으로, 블록 할당 시간을 단축시킬 수 있는 발명에 관한 것이다.The present invention relates to an apparatus and method for allocating a block based on a file system, and to an invention capable of shortening a block allocation time.

파일 시스템에서 데이터들은 블록(Block)이라는 단위로 관리된다. 파일 시스템에서 파일들은 블록을 할당받아 사용하며, 만약 현재 할당된 블록만으로 쓰기 동작이 불가능하면 새로운 블록 할당을 수행한다.In the file system, data is managed in units called blocks. In the file system, files are allocated blocks and used, and if a write operation is impossible with only the currently allocated block, a new block allocation is performed.

또한, 파일을 삭제하는 과정은 모든 데이터 블록의 정보들을 영구히 삭제하는 것이 아니라, 파일의 메타데이터와 데이터의 링크만을 해제할 뿐이다. 링크가 해제되어 있기 때문에 일반적으로는 해당 블록에 접근이 불가능하지만, 해당 블록이 다른 파일에 새로 할당되면 할당된 파일을 통해서 링크가 해제된 블록에 접근이 가능하다. In addition, the process of deleting a file does not permanently delete information of all data blocks, but only releases the link between the file's metadata and data. Because the link is released, it is generally impossible to access the block, but if the block is newly allocated to another file, the unlinked block can be accessed through the allocated file.

따라서, 파일 시스템은 삭제된 데이터의 정보가 누출되는 것을 방지하기 위해서, 블록 할당 과정에서 할당되는 블록을 "0"으로 초기화하는 과정을 선행한다. 이와 같이 블록 할당 과정에서 블록을 초기화하는 데에 소요되는 시간으로 인해서 파일의 입출력(I/O) 작업 시간은 지연된다.Accordingly, in order to prevent information of deleted data from being leaked, the file system precedes the process of initializing the allocated block to “0” in the block allocation process. Due to the time required to initialize the block in the block allocation process, the file input/output (I/O) operation time is delayed.

본 발명은 블록의 데이터 누출을 방지하면서, 블록 할당 시간을 줄일 수 있는 파일 시스템 기반의 블록 할당 방법 및 장치를 제공하기 위한 것이다.An object of the present invention is to provide a file system-based block allocation method and apparatus capable of reducing block allocation time while preventing block data leakage.

본 발명의 실시 예에 의한 파일 시스템 기반의 블록 할당 장치는 어플리케이션의 요청에 따라 저장소의 블록들에 대해서 파일의 읽기 및 쓰기 동작을 수행하는 파일 시스템, 저장소의 블록들 중에서 적어도 하나 이상을 초기화하여 초기화 블록을 생성하고, 초기화 블록에 대한 초기화 정보를 생성하는 초기화 관리부 및 상기 초기화 정보가 저장되는 풀;을 구비한다. 초기화 관리부는 저장소 내에서 초기화 블록의 개수를 미리 설정된 임계치 이상으로 유지한다.The file system-based block allocation apparatus according to an embodiment of the present invention initializes by initializing at least one of a file system that reads and writes a file on blocks of a storage according to an application's request, and a block of a storage and an initialization manager that generates a block and generates initialization information for the initialization block, and a pool in which the initialization information is stored. The initialization manager maintains the number of initialization blocks in the storage above a preset threshold.

본 발명에 의하면, 어플리케이션의 요청 이전에 블록을 초기화함으로써 링크가 해제된 블록의 데이터가 누출되는 것을 방지할 수 있다.According to the present invention, it is possible to prevent leakage of data of a block whose link is released by initializing the block before an application request.

본 발명에 의하면, 어플리케이션의 요청에 상관없이 미리 초기화 블록을 생성하기 때문에, 블록 할당 시점에 쓰기 동작이 수행되는 시간을 줄일 수 있다.According to the present invention, since an initialization block is generated in advance regardless of an application's request, a time for performing a write operation at the time of block allocation can be reduced.

도 1은 본 발명의 실시 예에 의한 블록 할당 장치를 나타내는 도면이다
도 2는 본 발명의 실시 예에 블록의 초기화 방법을 나타내는 순서도이다.
도 3은 초기화 관리부가 저장소의 블록을 초기화하는 실시 예를 설명하는 도면이다.
도 4는 어플리케이션의 쓰기 요청에 응답하여 블록을 할당하는 방법을 나타내는 순서도이다.
1 is a diagram illustrating an apparatus for allocating a block according to an embodiment of the present invention;
2 is a flowchart illustrating a block initialization method according to an embodiment of the present invention.
3 is a view for explaining an embodiment in which an initialization manager initializes a block of a storage.
4 is a flowchart illustrating a method of allocating a block in response to a write request of an application.

본 명세 서의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 명세서는 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 명세서의 개시가 완전하도록 하며, 본 명세서가 속하는 기술 분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 명세서는 청구항의 범주에 의해 정의될 뿐이다. Advantages and features of the present specification, and a method of achieving them, will become apparent with reference to the embodiments described below in detail in conjunction with the accompanying drawings. However, the present specification is not limited to the embodiments disclosed below, but will be implemented in various different forms, and only these embodiments allow the disclosure of the present specification to be complete, and common knowledge in the technical field to which this specification belongs It is provided to fully inform the possessor of the scope of the invention, and the present specification is only defined by the scope of the claims.

본 명세서의 여러 실시예들의 각각 특징들이 부분적으로 또는 전체적으로 서로 결합 또는 조합 가능하고, 기술적으로 다양한 연동 및 구동이 가능하며, 각 실시예들이 서로에 대하여 독립적으로 실시 가능할 수도 있고 연관 관계로 함께 실시할 수도 있다.Each feature of the various embodiments of the present specification may be partially or wholly combined or combined with each other, technically various interlocking and driving are possible, and each of the embodiments may be implemented independently of each other or may be implemented together in a related relationship. may be

도 1은 본 발명의 실시 예에 의한 블록 할당 장치를 나타내는 도면이다. 1 is a diagram illustrating an apparatus for allocating a block according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 실시 예에 의한 파일 시스템 기반의 블록 할당 장치는 파일 시스템(200), 초기화 관리부(210), 초기화 풀(310) 및 저장소(400)를 포함한다.Referring to FIG. 1 , the file system-based block allocation device according to an embodiment of the present invention includes a file system 200 , an initialization manager 210 , an initialization pool 310 , and a storage 400 .

파일 시스템(200)은 사용자의 어플리케이션의 요청에 따라 파일의 쓰기 및 읽기를 수행하고, 파일을 블록(Block) 단위로 관리한다. 다수의 블록은 블록 그룹(BG)을 형성하고, 파일은 블록 그룹 단위로 관리될 수 있다. 파일은 저장소(400)와 같은 물리적인 저장 매체에 저장되는 데이터 집합을 지칭하며, 데이터 정보에 대한 논리적인 저장 단위에 해당한다. 블록의 크기는 1KB, 4KB, 64KB 등으로 설정될 수 있으며, 이에 한정되지 않는다. 또한, 파일 시스템(200)은 초기화 관리부(210)를 깨워서, 초기화 관리부(210)가 초기화 블록을 생성하도록 한다.The file system 200 writes and reads a file according to a user's application request, and manages the file in block units. A plurality of blocks may form a block group (BG), and files may be managed in units of block groups. A file refers to a data set stored in a physical storage medium such as the storage 400 and corresponds to a logical storage unit for data information. The size of the block may be set to 1 KB, 4 KB, 64 KB, and the like, but is not limited thereto. Also, the file system 200 wakes up the initialization manager 210 so that the initialization manager 210 generates an initialization block.

초기화 관리부(210)는 저장소(400)의 블록들 중에서 적어도 하나 이상을 초기화하여 초기화 블록을 생성하고, 초기화 블록에 대한 초기화 정보를 생성한다. 초기화 관리부(210)는 일정 시간마다 초기화 블록의 개수를 카운팅하고, 초기화 블록의 개수가 일정 수준 이상을 유지하도록 한다.The initialization manager 210 initializes at least one or more of the blocks of the storage 400 to generate an initialization block, and generates initialization information for the initialization block. The initialization manager 210 counts the number of initialization blocks every predetermined time, and maintains the number of initialization blocks at a predetermined level or more.

초기화 풀(310)은 초기화 관리부(210)가 생성한 초기화 블록에 대한 초기화 정보를 저장한다. 초기화 정보는 초기화 블록의 물리적 위치 및 초기화 블록의 크기에 대한 정보를 포함할 수 있다. 초기화 풀(310)은 프로그램을 처리하기 위한 주기억장치(300)에 해당하는 램(RAM, Random Access Memory)에 위치할 수 있다.The initialization pool 310 stores initialization information on the initialization block generated by the initialization manager 210 . The initialization information may include information about the physical location of the initialization block and the size of the initialization block. The initialization pool 310 may be located in a random access memory (RAM) corresponding to the main memory 300 for processing a program.

저장소(400)는 대용량의 정보를 저장하는 공간으로 하드 디스크(hard disk drive) 또는 플래시 메모리(flash memory)에 해당할 수 있다. 플래시 메모리는 낸드 플래시(NAND flash)가 이용될 수 있다.The storage 400 is a space for storing a large amount of information and may correspond to a hard disk drive or a flash memory. As the flash memory, a NAND flash may be used.

이하, 본 발명의 실시 예에 의한 파일 시스템 기반의 블록 할당 방법을 살펴보면 다음과 같다.Hereinafter, a file system-based block allocation method according to an embodiment of the present invention will be described.

도 2는 본 발명의 실시 예에 블록의 초기화 방법을 나타내는 순서도이다.2 is a flowchart illustrating a block initialization method according to an embodiment of the present invention.

도 2를 참조하면, 본 발명의 실시 예에 의한 블록의 초기화 방법은 제1 단계(S210)에서, 초기화 관리부(210)가 초기화 블록 생성한다.Referring to FIG. 2 , in the block initialization method according to an embodiment of the present invention, in a first step ( S210 ), the initialization manager 210 generates an initialization block.

본 발명의 실시 예에 의한 초기화 관리부(210)는 어플리케이션에 의한 쓰기 요청에 상관없이, 미리 저장소(400)의 블록들을 초기화하여 초기화 블록을 생성한다. 본 발명의 실시 예에서 블록들을 초기화하는 것은 삭제된 데이터의 정보가 누출되는 것을 방지하기 위해서, 해당 블록에 "0"을 덮어씌우는 것을 지칭한다. The initialization manager 210 according to an embodiment of the present invention initializes the blocks of the storage 400 in advance to generate an initialization block regardless of a write request by an application. In an embodiment of the present invention, initializing blocks refers to overwriting “0” in a corresponding block in order to prevent leakage of deleted data information.

파일 시스템(200)은 초기화 관리부(210)가 초기화 동작을 수행하도록, 초기화 관리부(210)를 깨울 수 있다. The file system 200 may wake up the initialization manager 210 so that the initialization manager 210 performs an initialization operation.

제2 단계(S220)에서, 초기화 관리부(210)는 일정 시간마다 초기화 블록 개수 카운팅한다. 초기화 관리부(210)는 어플리케이션의 요청에 상관없이, 초기화 블록 개수를 카운팅할 수 있다. In the second step ( S220 ), the initialization management unit 210 counts the number of initialization blocks for each predetermined time. The initialization manager 210 may count the number of initialization blocks regardless of an application's request.

제3 단계(S230)에서, 초기화 관리부(210)는 초기화 블록 개수가 미리 설정된 임계치 이상인지를 확인한다. 임계치는 임의의 어플리케이션의 쓰기 요청에 응답하여, 쓰기 동작이 원활하게 수행될 수 있는 블록의 개수를 기준으로 설정될 수 있다.In a third step (S230), the initialization manager 210 checks whether the number of initialization blocks is equal to or greater than a preset threshold. The threshold value may be set based on the number of blocks in which a write operation can be smoothly performed in response to a write request from an arbitrary application.

제3 단계(S230)에서, 초기화 블록 개수가 임계치 이상인 상태는 추후에 쓰기 요청에 원활히 응답할 수 있는 상태이기 때문에, 블록의 초기화를 더 이상 진행하지 않을 수 있다.In the third step (S230), since the state in which the number of initialization blocks is equal to or greater than the threshold value is a state in which a write request can be smoothly responded to later, the initialization of the blocks may not proceed any further.

제4 단계(S240)에서, 초기화 블록의 개수가 임계치 미만인 것에 기초하여, 초기화 관리부(210)는 일정 기간 내에 입출력 횟수가 임계횟수 이상인지를 확인한다. 일정 기간은 임의의 시점부터 초기화 블록의 개수를 카운팅한 시점까지를 지칭한다. 즉, 초기화 관리부(210)는 최근의 일정 기간에서 입출력 횟수를 확인한다. 일정 기간에 입출력 횟수가 많은 상태에서는 초기화 관리부(210)가 초기화 블록을 생성하기에 과부하를 유도할 수 있다. 따라서, 일정 기간에서 입출력 횟수가 많은 경우, 초기화 블록의 개수가 임계치 미만일지라도 초기화 관리부(210)는 초기화 블록을 생성하지 않을 수 있다.In the fourth step ( S240 ), based on the number of initialization blocks being less than the threshold, the initialization management unit 210 checks whether the number of input/output is equal to or greater than the threshold number within a predetermined period. The predetermined period refers to a time from a certain point in time to a point in time when the number of initialization blocks is counted. That is, the initialization management unit 210 checks the number of input/output in a recent predetermined period. In a state in which the number of input/output is large in a certain period, the initialization management unit 210 may induce an overload to generate an initialization block. Accordingly, when the number of input/output is large in a certain period, the initialization manager 210 may not generate the initialization block even if the number of initialization blocks is less than the threshold.

제5 단계(S250)에서, 일정 기간 내에 입출력 횟수가 임계횟수 미만인 것에 기초하여, 초기화 관리부(210)는 초기화 블록 생성할 수 있다. In a fifth step ( S250 ), the initialization manager 210 may generate an initialization block based on the fact that the number of input/output within a certain period is less than the threshold number.

전술한 제4 단계(S240)는 설명한 바와 같이, 초기화 관리부(210)의 연산 자원을 고려한 절차이다. 실시 예에 따라서, 제4 단계(S240)는 생략될 수 있고, 초기화 관리부(210)는 초기화 블록의 개수가 임계치에 도달하지 않을 경우 무조건 초기화 블록을 생성할 수도 있다.As described above, the fourth step ( S240 ) is a procedure in consideration of the computational resources of the initialization management unit 210 . According to an embodiment, the fourth step ( S240 ) may be omitted, and the initialization manager 210 may unconditionally generate initialization blocks when the number of initialization blocks does not reach a threshold.

살펴본 바와 같이, 본 발명의 실시 예에 의한 초기화 관리부(210)는 저장소(400)내의 초기화 블록의 개수를 지속적으로 일정하게 유지할 수 있다. As described above, the initialization management unit 210 according to an embodiment of the present invention may continuously maintain a constant number of initialization blocks in the storage 400 .

도 3은 초기화 관리부가 저장소의 블록을 초기화하는 실시 예를 설명하는 도면이다.3 is a view for explaining an embodiment in which an initialization manager initializes a block of a storage.

도 3을 참조하면, 저장소(400)는 하드 디스크 또는 플래시 메모리로 구현될 수 있고, 초기화 관리부(210)는 저장소(400)의 일부 영역들을 초기화 할 수 있다. 하드 디스크는 동심원 형태의 복수 개의 트랙으로 구분될 수 있고, 트랙은 복수 개의 섹터로 구분될 수 있다. 초기화 관리부(210)는 각각의 섹터를 블록으로 간주할 수 있다. Referring to FIG. 3 , the storage 400 may be implemented as a hard disk or flash memory, and the initialization manager 210 may initialize some areas of the storage 400 . The hard disk may be divided into a plurality of tracks in the form of concentric circles, and the tracks may be divided into a plurality of sectors. The initialization manager 210 may regard each sector as a block.

본 발명의 실시 예에서, 초기화 관리부(210)는 복수 개의 블록을 초기화하는 과정에서, 초기화 블록이 모든 영역에 걸쳐서 넓게 위치하도록 설정하는 것이 바람직하다 초기화 블록이 넓게 위치하도록 배치되기 위해서, 우선적으로 초기화 블록이 서로 인접하지 않게 블록들을 초기화할 수 있다. 즉, 초기화 관리부(210)는 초기화 블록이 서로 인접하지 않도록 블록들을 초기화하여, 초기화 블록이 저장소(400)의 전 영역에 걸쳐서 고르게 위치하도록 할 수 있다. 우선적으로 서로 인접하지 않은 블록을 초기화 한 이후에도 추가적으로 블록을 초기화할 필요가 있다면, 서로 인접한 블록이 초기화될 수도 있다.In an embodiment of the present invention, in the process of initializing the plurality of blocks, the initialization manager 210 preferably sets the initialization blocks to be widely positioned over all regions. Blocks can be initialized so that they are not adjacent to each other. That is, the initialization manager 210 initializes the blocks so that the initialization blocks are not adjacent to each other, so that the initialization blocks are evenly positioned over the entire area of the storage 400 . If blocks need to be additionally initialized even after first initializing blocks that are not adjacent to each other, blocks adjacent to each other may be initialized.

또한 넓은 영역에 걸쳐서 블록을 초기화하기 위해서, 초기화 관리부(210)는 초기화 블록이 없는 블록 그룹(BG)을 선택하여, 해당 블록 그룹(BG)에 속한 블록들을 우선적으로 초기화할 수 있다.Also, in order to initialize a block over a wide area, the initialization manager 210 may select a block group BG having no initialization block and preferentially initialize blocks belonging to the corresponding block group BG.

초기화 블록이 저장소(400) 내에서 고르게 배치됨으로써, 추후 쓰기 요청이 있을 경우, 블록을 할당하는 과정에서 최적의 초기화 블록을 선택할 수 있는 가능성이 높아진다. 블록 할당 과정에서 최적의 초기화 블록을 선택하는 과정은 블록의 크기 및 물리적 위치에 따른 접근성이 고려될 수 있다.Since the initialization blocks are evenly arranged in the storage 400 , when there is a subsequent write request, the possibility of selecting an optimal initialization block in the process of allocating the block increases. In the process of selecting an optimal initialization block in the block allocation process, accessibility according to the size and physical location of the block may be considered.

도 4는 어플리케이션의 쓰기 요청에 응답하여 블록을 할당하는 방법을 나타내는 순서도이다. 4 is a flowchart illustrating a method of allocating a block in response to a write request of an application.

도 4를 참조하면, 쓰기 요청에 응답하여 블록을 할당하는 방법은 제1 단계(S410) 및 제2 단계(S420)에서, 어플리케이션의 쓰기 요청에 응답하여, 파일 시스템(200)은 새로운 블록 할당이 필요한지 판단한다.Referring to FIG. 4 , in the method of allocating blocks in response to a write request, in the first step ( S410 ) and the second step ( S420 ), in response to the write request of the application, the file system 200 allocates a new block. Decide if you need it

제3 단계(S430)에서, 새로운 블록 할당이 필요한 것에 기초하여, 파일 시스템(200)은 초기화 풀(310)을 검색한다. 즉, 파일 시스템(200)은 초기화 풀(310)을 검색하여, 저장소(400)에 초기화 블록이 있는지 여부를 확인한다.In the third step ( S430 ), the file system 200 searches the initialization pool 310 based on the need for new block allocation. That is, the file system 200 searches the initialization pool 310 and checks whether there is an initialization block in the storage 400 .

제4 단계(S440)에서, 초기화 풀(310)의 초기화 정보를 바탕으로 저장소(400)에 초기화 블록이 있는 경우, 파일 시스템(200)은 초기화 풀(310)에서 초기화 정보를 획득한다. 즉, 파일 시스템(200)은 초기화 정보에 기초하여, 저장소(400)에 존재하는 초기화 블록의 크기 및 위치에 대한 정보를 획득할 수 있다. In the fourth step ( S440 ), when there is an initialization block in the storage 400 based on the initialization information of the initialization pool 310 , the file system 200 acquires initialization information from the initialization pool 310 . That is, the file system 200 may acquire information on the size and location of an initialization block existing in the storage 400 based on the initialization information.

제5 단계(S450)에서, 파일 시스템(200)은 획득한 초기화 정보에 대응하는 초기화 블록에 어플리케이션에서 요청하는 쓰기 동작을 수행할 수 있다. In a fifth step ( S450 ), the file system 200 may perform a write operation requested by the application on the initialization block corresponding to the acquired initialization information.

살펴본 바와 같이, 본 발명의 실시 예에 따른 블록 할당 방법은 미리 초기화 블록을 일정 수준 이상으로 생성하고, 미리 생성된 초기화 블록을 검색하여 해당 초기화 블록에 쓰기 동작을 수행한다. 이에 따라, 블록을 할당하는 과정에서 블록을 초기화할 필요가 없기 때문에, 블록 할당의 시간을 단축할 수 있다.As described above, in the block allocation method according to an embodiment of the present invention, an initialization block is generated in advance at a predetermined level or more, and a pre-generated initialization block is searched for and a write operation is performed on the corresponding initialization block. Accordingly, since there is no need to initialize the block in the process of allocating the block, the block allocation time can be shortened.

본 발명의 실시 예의 효과를 테스트하기 위해서, 리눅스 운영체제에서 사용되는 파일 시스템인 ext4 를 메모리에 포맷하여 DAX 모드로 마운트 한 상태에서 시뮬레이션을 진행하였다. 한 블록의 크기를 4KB로 설정하고, 한 블록만큼씩 파일의 뒤에 덧붙여 쓰도록 하여 쓰기 시도를 할 때마다 블록 할당이 필요한 조건을 설정하였다. 하나의 파일에 대하여 총 20GB 만큼 쓰기를 수행한 결과, 종래의 방법에서 50.91초가 소요된 블록 할당 시간이, 본 발명의 실시 예에서와 같이 미리 초기화를 진행한 경우에는 30.39초가 소요되어 약 40%의 시간이 단축되는 것을 확인하였다.In order to test the effect of the embodiment of the present invention, ext4, which is a file system used in the Linux operating system, was formatted in memory and the simulation was performed while mounted in DAX mode. The size of one block was set to 4 KB, and each block was appended to the end of the file, so that every time a write was attempted, a condition for block allocation was set. As a result of writing a single file for a total of 20 GB, the block allocation time that took 50.91 seconds in the conventional method is 30.39 seconds, which is about 40% when the initialization is performed in advance as in the embodiment of the present invention. It was confirmed that the time was shortened.

본 발명에 따른 실시예는 다양한 수단, 예를 들어, 하드웨어, 펌웨어(firmware), 소프트웨어 또는 그것들의 결합 등에 의해 구현될 수 있다. 하드웨어에 의한 구현의 경우, 본 발명의 일 실시예는 하나 또는 그 이상의 ASICs(application specific integrated circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays), 프로세서, 콘트롤러, 마이크로 콘트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.Embodiments according to the present invention may be implemented by various means, for example, hardware, firmware, software, or a combination thereof. In the case of implementation by hardware, an embodiment of the present invention provides one or more application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), FPGAs ( field programmable gate arrays), a processor, a controller, a microcontroller, a microprocessor, and the like.

또한, 펌웨어나 소프트웨어에 의한 구현의 경우, 본 발명의 일 실시예는 이상에서 설명된 기능 또는 동작들을 수행하는 모듈, 절차, 함수 등의 형태로 구현되어, 다양한 컴퓨터 수단을 통하여 판독 가능한 기록매체에 기록될 수 있다. 여기서, 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM(Compact Disk Read Only Memory), DVD(Digital Video Disk)와 같은 광 기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함한다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.In addition, in the case of implementation by firmware or software, an embodiment of the present invention is implemented in the form of a module, procedure, or function that performs the functions or operations described above, and is stored in a recording medium readable through various computer means. can be recorded. Here, the recording medium may include a program command, a data file, a data structure, etc. alone or in combination. The program instructions recorded on the recording medium may be specially designed and configured for the present invention, or may be known and available to those skilled in the art of computer software. For example, the recording medium includes a magnetic medium such as a hard disk, a floppy disk, and a magnetic tape, an optical recording medium such as a compact disk read only memory (CD-ROM), a digital video disk (DVD), and a floppy disk. magneto-optical media, such as a disk, and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions may include high-level language codes that can be executed by a computer using an interpreter or the like as well as machine language codes such as those generated by a compiler. Such hardware devices may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

이상 설명한 내용을 통해 당업자라면 본 명세서의 기술사상을 일탈하지 아니하는 범위에서 다양한 변경 및 수정이 가능함을 알 수 있을 것이다. 따라서, 본 명세서의 기술적 범위는 명세서의 상세한 설명에 기재된 내용으로 한정되는 것이 아니라 특허 청구의 범위에 의해 정하여져야만 할 것이다.Those skilled in the art from the above description will be aware that various changes and modifications can be made without departing from the technical spirit of the present specification. Accordingly, the technical scope of the present specification should not be limited to the contents described in the detailed description of the specification, but should be defined by the claims.

Claims (11)

어플리케이션의 요청에 따라 저장소의 블록들에 대해서 파일의 읽기 및 쓰기 동작을 수행하는 파일 시스템;
상기 저장소의 블록들 중에서 적어도 하나 이상을 초기화하여 초기화 블록을 생성하고, 상기 초기화 블록에 대한 초기화 정보를 생성하는 초기화 관리부; 및
상기 초기화 정보가 저장되는 풀;을 구비하고,
상기 초기화 관리부는
상기 저장소 내에서 상기 초기화 블록의 개수를 미리 설정된 임계치 이상으로 유지하는 것을 특징으로 하는 파일 시스템 기반의 블록 할당 장치.
a file system that performs file read and write operations on blocks of storage according to an application's request;
an initialization manager configured to initialize at least one of the blocks in the storage to generate an initialization block, and to generate initialization information for the initialization block; and
a pool in which the initialization information is stored; and
The initialization management unit
The file system-based block allocation device, characterized in that the number of the initialization blocks in the storage is maintained above a preset threshold.
제 1 항에 있어서,
상기 초기화 관리부는 상기 블록들에 "0"의 값을 덮어씌움으로써 상기 초기화 블록을 생성하는 것을 특징으로 하는 파일 시스템 기반의 블록 할당 장치.
The method of claim 1,
The file system-based block allocation apparatus of claim 1, wherein the initialization manager creates the initialization block by overwriting the blocks with a value of “0”.
제 1 항에 있어서,
상기 초기화 관리부는
상기 어플리케이션의 쓰기 요청에 상관없이, 일정 시간 단위로 상기 초기화 블록의 개수를 확인하는 것을 특징으로 하는 파일 시스템 기반의 블록 할당 장치.
The method of claim 1,
The initialization management unit
The file system-based block allocation apparatus of claim 1, wherein the number of the initialization blocks is checked in a predetermined time unit regardless of the write request of the application.
제 1 항에 있어서,
상기 초기화 관리부는
상기 초기화 블록의 개수가 상기 임계치 미만인 것에 기초하여, 미리 설정된 일정 기간 내에 상기 파일 시스템의 입출력 횟수를 확인하고,
상기 일정 기간 내에 상기 입출력 횟수가 미리 설정된 임계횟수 미만일 경우, 상기 저장소의 블록들을 초기화하는 것을 특징으로 하는 파일 시스템 기반의 블록 할당 장치.
The method of claim 1,
The initialization management unit
Checking the number of input/output of the file system within a preset period based on the number of initialization blocks being less than the threshold,
The file system-based block allocation apparatus of claim 1, wherein when the number of input/output is less than a preset threshold number within the predetermined period, the blocks of the storage are initialized.
제 4 항에 있어서,
상기 파일 시스템은
상기 입출력 횟수에 비례하여 상기 초기화 블록의 개수를 줄이는 것을 특징으로 하는 파일 시스템 기반의 블록 할당 장치.
5. The method of claim 4,
The file system is
The file system-based block allocation apparatus of claim 1, wherein the number of initialization blocks is reduced in proportion to the number of input/output.
제 1 항에 있어서,
상기 초기화 관리부는
상기 파일 시스템이 관리하는 저장소의 모든 블록들 중에서 연속적이지 않은 블록들을 우선적으로 선택하여 초기화하는 것을 특징으로 하는 파일 시스템 기반의 블록 할당 장치.
The method of claim 1,
The initialization management unit
The file system-based block allocation apparatus of claim 1, wherein non-consecutive blocks are preferentially selected and initialized among all blocks of the storage managed by the file system.
제 1 항에 있어서,
상기 파일 시스템은
쓰기 요청에 응답하여, 상기 초기화 풀을 검색하여 상기 저장소에 초기화 블록이 있는지 여부를 확인하고, 검색된 초기화 블록에 쓰기 동작을 수행하는 것을 특징으로 하는 파일 시스템 기반의 블록 할당 장치.
The method of claim 1,
The file system is
In response to the write request, the file system-based block allocation device, characterized in that by searching the initialization pool, checking whether there is an initialization block in the storage, and performing a write operation on the found initialization block.
제 7 항에 있어서,
상기 파일 시스템은
상기 초기화 풀을 검색한 것에 기초하여 상기 저장소에 초기화 블록이 없는 것을 확인한 경우, 상기 저장소의 블록을 초기화하는 것을 특징으로 하는 파일 시스템 기반의 블록 할당 장치.
8. The method of claim 7,
The file system is
The file system-based block allocation apparatus of claim 1, wherein when it is confirmed that there is no initialization block in the storage based on the search for the initialization pool, the block of the storage is initialized.
파일 시스템의 알람에 응답하여, 초기화 관리부가 저장소의 블록을 초기화하여 초기화 블록을 생성하는 단계;
상기 초기화 관리부가 상기 초기화 블록의 개수를 카운팅하는 단계;
상기 초기화 블록의 개수가 미리 설정된 임계치 미만인 것에 기초하여, 미리 설정된 일정 기간 내에 상기 파일 시스템의 입출력 횟수를 확인하는 단계; 및
상기 일정 기간 내에 상기 입출력 횟수가 미리 설정된 임계횟수 미만일 경우, 상기 초기화 관리부가 상기 초기화 블록의 개수가 상기 임계치 이상이 되도록 상기 저장소의 블록들을 초기화하는 단계를 포함하는 파일 시스템 기반의 블록 할당 방법.
in response to an alarm of the file system, generating, by an initialization manager, an initialization block by initializing a block in the storage;
counting, by the initialization manager, the number of the initialization blocks;
checking the number of input/output of the file system within a preset period based on the number of initialization blocks being less than a preset threshold; and
and when the number of input/output is less than a preset threshold number within the predetermined period, initializing, by the initialization manager, the blocks of the storage such that the number of initialization blocks is equal to or greater than the threshold.
제 9 항에 있어서,
상기 초기화 블록의 개수를 카운팅하는 단계는, 일정 시간 단위로 수행되는 것을 특징으로 하는 파일 시스템 기반의 블록 할당 방법.
10. The method of claim 9,
The step of counting the number of initialization blocks is a block allocation method based on a file system, characterized in that it is performed in units of a predetermined time.
제 9 항에 있어서,
쓰기 요청에 응답하여, 상기 파일 시스템이 상기 초기화 풀을 검색하여 상기 저장소에 초기화 블록이 있는지 여부를 확인하고, 검색된 초기화 블록에 쓰기 동작을 수행하는 단계를 더 포함하는 파일 시스템 기반의 블록 할당 방법.
10. The method of claim 9,
In response to a write request, the file system searches the initialization pool to determine whether an initialization block exists in the storage, and performs a write operation on the found initialization block.
KR1020200160499A 2020-11-25 2020-11-25 File System-based Block Allocation Apparatus and Method KR102546741B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200160499A KR102546741B1 (en) 2020-11-25 2020-11-25 File System-based Block Allocation Apparatus and Method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200160499A KR102546741B1 (en) 2020-11-25 2020-11-25 File System-based Block Allocation Apparatus and Method

Publications (2)

Publication Number Publication Date
KR20220072656A true KR20220072656A (en) 2022-06-02
KR102546741B1 KR102546741B1 (en) 2023-06-23

Family

ID=81985343

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200160499A KR102546741B1 (en) 2020-11-25 2020-11-25 File System-based Block Allocation Apparatus and Method

Country Status (1)

Country Link
KR (1) KR102546741B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102570831B1 (en) * 2023-02-22 2023-08-28 (주)제네시스네스트 Universal authentication system
KR102570820B1 (en) * 2023-02-22 2023-08-28 (주)제네시스네스트 System for managing application initial information

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005011317A (en) * 2003-05-02 2005-01-13 Hitachi Ltd Method and device for initializing storage system
KR20190093292A (en) * 2018-02-01 2019-08-09 에스케이하이닉스 주식회사 Memory system and operation method for the same
KR20200114482A (en) * 2019-03-28 2020-10-07 에스케이하이닉스 주식회사 Controller, Memory system including the controller and operating method of the memory system
KR20210014365A (en) * 2019-07-30 2021-02-09 에스케이하이닉스 주식회사 Controller and operating method thereof

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005011317A (en) * 2003-05-02 2005-01-13 Hitachi Ltd Method and device for initializing storage system
KR20190093292A (en) * 2018-02-01 2019-08-09 에스케이하이닉스 주식회사 Memory system and operation method for the same
KR20200114482A (en) * 2019-03-28 2020-10-07 에스케이하이닉스 주식회사 Controller, Memory system including the controller and operating method of the memory system
KR20210014365A (en) * 2019-07-30 2021-02-09 에스케이하이닉스 주식회사 Controller and operating method thereof

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102570831B1 (en) * 2023-02-22 2023-08-28 (주)제네시스네스트 Universal authentication system
KR102570820B1 (en) * 2023-02-22 2023-08-28 (주)제네시스네스트 System for managing application initial information

Also Published As

Publication number Publication date
KR102546741B1 (en) 2023-06-23

Similar Documents

Publication Publication Date Title
US11853549B2 (en) Index storage in shingled magnetic recording (SMR) storage system with non-shingled region
US20220137849A1 (en) Fragment Management Method and Fragment Management Apparatus
US8856471B2 (en) System, method and a non-transitory computer readable medium for creating a warranted snapshot
KR100843135B1 (en) Apparatus and method for managing nonvolatile memory
US9141526B2 (en) Reclaiming units by searching units for a predetermined criterion and storing data from a valid subunit
WO2017185579A1 (en) Method and apparatus for data storage
US20170075614A1 (en) Memory system and host apparatus
US20120102276A1 (en) Storing Corresponding Data Units in a Common Storage Unit
JP2008112445A (en) Apparatus and method for managing nonvolatile memory
KR100703807B1 (en) Method and apparatus for managing block by update type of data in block type memory
KR102546741B1 (en) File System-based Block Allocation Apparatus and Method
CN110018998A (en) A kind of file management method, system and electronic equipment and storage medium
CN107562367B (en) Method and device for reading and writing data based on software storage system
CN113377695B (en) Data distribution method of read-write separated solid-state storage device
US8433847B2 (en) Memory drive that can be operated like optical disk drive and method for virtualizing memory drive as optical disk drive
KR101374065B1 (en) Data Distinguish Method and Apparatus Using Algorithm for Chip-Level-Parallel Flash Memory
WO2018171296A1 (en) File merging method and controller
US20170322747A1 (en) Information processing apparatus and method for deduplication
CN111158602A (en) Data layered storage method, data reading method, storage host and storage system
CN118051179A (en) Techniques for partition namespace storage using multiple partitions
US20150082014A1 (en) Virtual Storage Devices Formed by Selected Partitions of a Physical Storage Device
KR20080098104A (en) Method of storing meta-data and system for storing meta-data
JP5729479B2 (en) Virtual tape device and control method of virtual tape device
JP2002014776A (en) Disk control system and data rearranging method
US11803469B2 (en) Storing data in a log-structured format in a two-tier storage system

Legal Events

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