KR20220072656A - File System-based Block Allocation Apparatus and Method - Google Patents
File System-based Block Allocation Apparatus and Method Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/1727—Details of free space management performed by the file system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management 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
본 발명은 파일 시스템 기반의 블록 할당 장치 및 방법에 관한 것으로, 블록 할당 시간을 단축시킬 수 있는 발명에 관한 것이다.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
파일 시스템(200)은 사용자의 어플리케이션의 요청에 따라 파일의 쓰기 및 읽기를 수행하고, 파일을 블록(Block) 단위로 관리한다. 다수의 블록은 블록 그룹(BG)을 형성하고, 파일은 블록 그룹 단위로 관리될 수 있다. 파일은 저장소(400)와 같은 물리적인 저장 매체에 저장되는 데이터 집합을 지칭하며, 데이터 정보에 대한 논리적인 저장 단위에 해당한다. 블록의 크기는 1KB, 4KB, 64KB 등으로 설정될 수 있으며, 이에 한정되지 않는다. 또한, 파일 시스템(200)은 초기화 관리부(210)를 깨워서, 초기화 관리부(210)가 초기화 블록을 생성하도록 한다.The
초기화 관리부(210)는 저장소(400)의 블록들 중에서 적어도 하나 이상을 초기화하여 초기화 블록을 생성하고, 초기화 블록에 대한 초기화 정보를 생성한다. 초기화 관리부(210)는 일정 시간마다 초기화 블록의 개수를 카운팅하고, 초기화 블록의 개수가 일정 수준 이상을 유지하도록 한다.The
초기화 풀(310)은 초기화 관리부(210)가 생성한 초기화 블록에 대한 초기화 정보를 저장한다. 초기화 정보는 초기화 블록의 물리적 위치 및 초기화 블록의 크기에 대한 정보를 포함할 수 있다. 초기화 풀(310)은 프로그램을 처리하기 위한 주기억장치(300)에 해당하는 램(RAM, Random Access Memory)에 위치할 수 있다.The
저장소(400)는 대용량의 정보를 저장하는 공간으로 하드 디스크(hard disk drive) 또는 플래시 메모리(flash memory)에 해당할 수 있다. 플래시 메모리는 낸드 플래시(NAND flash)가 이용될 수 있다.The
이하, 본 발명의 실시 예에 의한 파일 시스템 기반의 블록 할당 방법을 살펴보면 다음과 같다.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
본 발명의 실시 예에 의한 초기화 관리부(210)는 어플리케이션에 의한 쓰기 요청에 상관없이, 미리 저장소(400)의 블록들을 초기화하여 초기화 블록을 생성한다. 본 발명의 실시 예에서 블록들을 초기화하는 것은 삭제된 데이터의 정보가 누출되는 것을 방지하기 위해서, 해당 블록에 "0"을 덮어씌우는 것을 지칭한다. The
파일 시스템(200)은 초기화 관리부(210)가 초기화 동작을 수행하도록, 초기화 관리부(210)를 깨울 수 있다. The
제2 단계(S220)에서, 초기화 관리부(210)는 일정 시간마다 초기화 블록 개수 카운팅한다. 초기화 관리부(210)는 어플리케이션의 요청에 상관없이, 초기화 블록 개수를 카운팅할 수 있다. In the second step ( S220 ), the
제3 단계(S230)에서, 초기화 관리부(210)는 초기화 블록 개수가 미리 설정된 임계치 이상인지를 확인한다. 임계치는 임의의 어플리케이션의 쓰기 요청에 응답하여, 쓰기 동작이 원활하게 수행될 수 있는 블록의 개수를 기준으로 설정될 수 있다.In a third step (S230), the
제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
제5 단계(S250)에서, 일정 기간 내에 입출력 횟수가 임계횟수 미만인 것에 기초하여, 초기화 관리부(210)는 초기화 블록 생성할 수 있다. In a fifth step ( S250 ), the
전술한 제4 단계(S240)는 설명한 바와 같이, 초기화 관리부(210)의 연산 자원을 고려한 절차이다. 실시 예에 따라서, 제4 단계(S240)는 생략될 수 있고, 초기화 관리부(210)는 초기화 블록의 개수가 임계치에 도달하지 않을 경우 무조건 초기화 블록을 생성할 수도 있다.As described above, the fourth step ( S240 ) is a procedure in consideration of the computational resources of the
살펴본 바와 같이, 본 발명의 실시 예에 의한 초기화 관리부(210)는 저장소(400)내의 초기화 블록의 개수를 지속적으로 일정하게 유지할 수 있다. As described above, the
도 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
본 발명의 실시 예에서, 초기화 관리부(210)는 복수 개의 블록을 초기화하는 과정에서, 초기화 블록이 모든 영역에 걸쳐서 넓게 위치하도록 설정하는 것이 바람직하다 초기화 블록이 넓게 위치하도록 배치되기 위해서, 우선적으로 초기화 블록이 서로 인접하지 않게 블록들을 초기화할 수 있다. 즉, 초기화 관리부(210)는 초기화 블록이 서로 인접하지 않도록 블록들을 초기화하여, 초기화 블록이 저장소(400)의 전 영역에 걸쳐서 고르게 위치하도록 할 수 있다. 우선적으로 서로 인접하지 않은 블록을 초기화 한 이후에도 추가적으로 블록을 초기화할 필요가 있다면, 서로 인접한 블록이 초기화될 수도 있다.In an embodiment of the present invention, in the process of initializing the plurality of blocks, the
또한 넓은 영역에 걸쳐서 블록을 초기화하기 위해서, 초기화 관리부(210)는 초기화 블록이 없는 블록 그룹(BG)을 선택하여, 해당 블록 그룹(BG)에 속한 블록들을 우선적으로 초기화할 수 있다.Also, in order to initialize a block over a wide area, the
초기화 블록이 저장소(400) 내에서 고르게 배치됨으로써, 추후 쓰기 요청이 있을 경우, 블록을 할당하는 과정에서 최적의 초기화 블록을 선택할 수 있는 가능성이 높아진다. 블록 할당 과정에서 최적의 초기화 블록을 선택하는 과정은 블록의 크기 및 물리적 위치에 따른 접근성이 고려될 수 있다.Since the initialization blocks are evenly arranged in the
도 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
제3 단계(S430)에서, 새로운 블록 할당이 필요한 것에 기초하여, 파일 시스템(200)은 초기화 풀(310)을 검색한다. 즉, 파일 시스템(200)은 초기화 풀(310)을 검색하여, 저장소(400)에 초기화 블록이 있는지 여부를 확인한다.In the third step ( S430 ), the
제4 단계(S440)에서, 초기화 풀(310)의 초기화 정보를 바탕으로 저장소(400)에 초기화 블록이 있는 경우, 파일 시스템(200)은 초기화 풀(310)에서 초기화 정보를 획득한다. 즉, 파일 시스템(200)은 초기화 정보에 기초하여, 저장소(400)에 존재하는 초기화 블록의 크기 및 위치에 대한 정보를 획득할 수 있다. In the fourth step ( S440 ), when there is an initialization block in the
제5 단계(S450)에서, 파일 시스템(200)은 획득한 초기화 정보에 대응하는 초기화 블록에 어플리케이션에서 요청하는 쓰기 동작을 수행할 수 있다. In a fifth step ( S450 ), the
살펴본 바와 같이, 본 발명의 실시 예에 따른 블록 할당 방법은 미리 초기화 블록을 일정 수준 이상으로 생성하고, 미리 생성된 초기화 블록을 검색하여 해당 초기화 블록에 쓰기 동작을 수행한다. 이에 따라, 블록을 할당하는 과정에서 블록을 초기화할 필요가 없기 때문에, 블록 할당의 시간을 단축할 수 있다.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.
상기 초기화 관리부는 상기 블록들에 "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”.
상기 초기화 관리부는
상기 어플리케이션의 쓰기 요청에 상관없이, 일정 시간 단위로 상기 초기화 블록의 개수를 확인하는 것을 특징으로 하는 파일 시스템 기반의 블록 할당 장치.
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.
상기 초기화 관리부는
상기 초기화 블록의 개수가 상기 임계치 미만인 것에 기초하여, 미리 설정된 일정 기간 내에 상기 파일 시스템의 입출력 횟수를 확인하고,
상기 일정 기간 내에 상기 입출력 횟수가 미리 설정된 임계횟수 미만일 경우, 상기 저장소의 블록들을 초기화하는 것을 특징으로 하는 파일 시스템 기반의 블록 할당 장치.
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.
상기 파일 시스템은
상기 입출력 횟수에 비례하여 상기 초기화 블록의 개수를 줄이는 것을 특징으로 하는 파일 시스템 기반의 블록 할당 장치.
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.
상기 초기화 관리부는
상기 파일 시스템이 관리하는 저장소의 모든 블록들 중에서 연속적이지 않은 블록들을 우선적으로 선택하여 초기화하는 것을 특징으로 하는 파일 시스템 기반의 블록 할당 장치.
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.
상기 파일 시스템은
쓰기 요청에 응답하여, 상기 초기화 풀을 검색하여 상기 저장소에 초기화 블록이 있는지 여부를 확인하고, 검색된 초기화 블록에 쓰기 동작을 수행하는 것을 특징으로 하는 파일 시스템 기반의 블록 할당 장치.
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.
상기 파일 시스템은
상기 초기화 풀을 검색한 것에 기초하여 상기 저장소에 초기화 블록이 없는 것을 확인한 경우, 상기 저장소의 블록을 초기화하는 것을 특징으로 하는 파일 시스템 기반의 블록 할당 장치.
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.
상기 초기화 블록의 개수를 카운팅하는 단계는, 일정 시간 단위로 수행되는 것을 특징으로 하는 파일 시스템 기반의 블록 할당 방법.
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.
쓰기 요청에 응답하여, 상기 파일 시스템이 상기 초기화 풀을 검색하여 상기 저장소에 초기화 블록이 있는지 여부를 확인하고, 검색된 초기화 블록에 쓰기 동작을 수행하는 단계를 더 포함하는 파일 시스템 기반의 블록 할당 방법.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.
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)
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)
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 |
-
2020
- 2020-11-25 KR KR1020200160499A patent/KR102546741B1/en active IP Right Grant
Patent Citations (4)
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)
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 |