KR20030071245A - Store system and method of dynamic bitmap for huge file system - Google Patents
Store system and method of dynamic bitmap for huge file system Download PDFInfo
- Publication number
- KR20030071245A KR20030071245A KR1020020010855A KR20020010855A KR20030071245A KR 20030071245 A KR20030071245 A KR 20030071245A KR 1020020010855 A KR1020020010855 A KR 1020020010855A KR 20020010855 A KR20020010855 A KR 20020010855A KR 20030071245 A KR20030071245 A KR 20030071245A
- Authority
- KR
- South Korea
- Prior art keywords
- bitmap
- area
- type
- file system
- allocated
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
-
- 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/11—File system administration, e.g. details of archiving or snapshots
- G06F16/113—Details of archiving
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
본 발명은 대용량 파일 저장 시스템 및 이를 이용한 대용량 파일의 동적 비트맵 관리 방법에 관한 것으로서, 특히 대용량 파일 저장 시스템에서 파일을 관리하기 위한 객체인 아이노드, 디렉토리 엔트리, 그리고 데이터 블록을 관리하기 위한 비트맵의 구성 및 할당과 회수 방법에 관한 것이다. 즉, 본 발명은, 대용량 파일 시스템에 할당된 전체 디스크 공간을 위한 비트맵을 구성하는 방법과 이를 이용하여 파일 시스템에 대한 연산이 발생하는 경우 세 가지 객체를 비트맵을 이용하여 동적으로 관리함으로써 사용되는 객체에 맞게 비트맵을 효율적으로 관리할 수 있도록 하고, 디스크와 같은 저장 공간의 낭비를 최소화하기 위한 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.The present invention relates to a large file storage system and a method for managing a dynamic bitmap of a large file using the same, and particularly, to a bitmap for managing an inode, a directory entry, and a data block, which are objects for managing a file in a large file storage system. It relates to the composition and allocation and retrieval method of the. That is, according to the present invention, a method of constructing a bitmap for the entire disk space allocated to a large file system, and using the same, dynamically manages three objects using a bitmap when an operation on the file system occurs. The present invention relates to a method for efficiently managing a bitmap according to an object, to minimizing waste of storage space such as a disk, and to a computer-readable recording medium having recorded thereon a program for realizing the method.
파일 저장 시스템과 관련된 연구는 컴퓨터가 처음으로 개발된 이래로 지속적으로 이루어져 왔고 많은 제품들이 출시되었다. 대표적으로 유닉스 파일시스템(UFS), 리눅스 파일 시스템(Ext), 윈도우즈 파일 시스템(NTFS) 등을 들수 있다.Research on file storage systems has been ongoing since the computer was first developed and many products have been released. The Unix file system (UFS), the Linux file system (Ext), and the Windows file system (NTFS) are some examples.
이러한 파일 시스템에서는 디스크나 씨디롬 등과 같은 저장 장치에 파일을 저장하고 관리하기 위해서 파일에 대한 정보를 관리하기 위한 아이노드, 파일들의 집합인 디렉토리 정보를 관리하는 디렉토리 엔트리, 그리고 실제 파일의 내용이 저장되는 데이터 블록을 효과적으로 관리해야 한다. 이를 위해서 유닉스나 리눅스 파일 시스템에서는 파일 시스템을 생성할 때, 저장 장치 공간을 아이노드, 디렉토리 엔트리, 데이터 블록의 세 개의 영역으로 구분하고, 이를 관리하기 위해 각 객체에 해당하는 비트맵 영역을 정적으로 할당하여 관리하는 기법을 사용한다.In such a file system, in order to store and manage files in a storage device such as a disk or a CD-ROM, an inode for managing information about a file, a directory entry for managing directory information, which is a collection of files, and contents of an actual file are stored. Data blocks need to be managed effectively. To do this, in UNIX or Linux file systems, when creating a file system, the storage space is divided into three areas: inode, directory entry, and data block. To manage this, the bitmap area corresponding to each object is statically managed. Use techniques to allocate and manage
각 객체에 대하여 비트맵의 1 비트를 할당하여 사용하면 1로 설정하고, 사용하지 않으면 0으로 설정한다.If 1 bit of bitmap is allocated and used for each object, it is set to 1, otherwise it is set to 0.
객체를 위한 영역과 비트맵의 크기를 결정하기 위해서는 파일 시스템에 저장되는 파일의 크기가 중요하다. 만약 데이터를 저장할 수 있는 공간이 100GB이고 파일의 크기가 1MB라고 가정하면, 파일 시스템에는 100,000개의 파일을 저장할 수 있으므로 100,000개의 아이노드를 저장할 수 있는 영역을 할당하고, 100,000개의 비트를 저장할 수 있는 아이노드 비트맵 영역을 설정하면 된다. 그러나 파일의 크기가 매우 다양함으로 정확한 크기의 비트맵 영역을 설정하는 것이 어려우므로 유닉스나 리눅스 파일 시스템에서는 4KB 당 1개의 아이노드를 할당하는 방법을 사용한다.The size of the file stored in the file system is important to determine the size of the area and bitmap for the object. If you have 100GB of data and 1MB of file size, you can store 100,000 files in the file system, so allocate an area for 100,000 inodes, and save 100,000 bits. This is done by setting the node bitmap area. However, due to the large variety of file sizes, it is difficult to set up an exact sized bitmap area, so Unix or Linux file systems allocate one inode per 4KB.
그러나, 이러한 정적인 비트맵 방법은 다음과 같은 두 가지 문제가 발생한다.However, this static bitmap method has two problems.
첫째, 파일 시스템에 저장되는 파일의 크기가 적은 경우, 정적 비트맵을 사용하는 파일 시스템에서, 저장된 파일의 크기가 적게되면 아이노드의 개수가 모자라게 되어 저장 공간의 낭비가 발생한다. 즉, 파일 시스템에 4KB미만의 파일이 다량으로 발생하는 경우 저장장치에는 파일을 저장할 수 있는 공간이 존재하지만 파일의 정보를 관리하기 위한 아이노드가 없어서 더 이상의 파일을 저장할 수 없다.First, when the size of a file stored in the file system is small, in a file system using a static bitmap, if the size of the stored file is small, the number of inodes is insufficient, which causes a waste of storage space. In other words, if a file size of less than 4KB occurs in the file system, there is a space in the storage device to store the file, but there is no inode for managing the information of the file, and thus no more files can be stored.
둘째, 파일 시스템에 저장되는 파일의 크기가 큰 경우, 정적 비트맵을 사용하는 파일 시스템에서, 저장된 파일의 크기가 크게 되면, 아이노드의 낭비가 발생한다. 즉, 파일 시스템에 4KB이상의 파일이 다량으로 저장되게 되면 아이노드가 남아 있지만 저장장치에 파일을 저장할 공간이 없어서 더 이상 파일을 저장할 수 없다.Second, when the size of the file stored in the file system is large, in the file system using the static bitmap, if the size of the stored file is large, waste of the inode occurs. In other words, if a large amount of files larger than 4KB is stored in the file system, the inode remains, but there is no space to store the files in the storage device, so the files can no longer be stored.
따라서 파일 시스템에 저장되는 파일의 크기를 예측할 수 없으므로 파일의 크기에 기반한 정적 비트맵 방식은 저장 공간의 낭비나 비트맵의 낭비를 초래한다. 특히, 인터넷의 발전으로 전자메일과 같은 소량의 데이터를 주로 저장해야하는 메일 서버 시스템의 경우는 저장 공간의 낭비를 초래하고, 음성이나 영상과 같은 멀티미디어 데이터를 저장하고 서비스하는 멀티미디어 시스템에서는 관리 영역이 낭비되는 문제를 초래하게 되는 것이다.Therefore, since the size of the file stored in the file system cannot be predicted, the static bitmap method based on the file size causes a waste of storage space or a bitmap. In particular, in the case of a mail server system which mainly stores a small amount of data such as e-mail due to the development of the Internet, it causes a waste of storage space, and a management area is wasteful in a multimedia system that stores and services multimedia data such as voice or video. Will cause problems.
따라서, 본 발명은 상기한 종래 기술에 따른 제반 문제점을 해결하기 위하여 안출한 것으로, 본 발명의 목적은, 파일 시스템에서 발생하는 파일의 크기에 제한을 받지 않고 동적으로 비트맵을 할당함으로써 디스크와 같은 저장 장치의 이용 효율성을 높여 대량의 파일들을 효과적으로 관리하도록 하는 대용량 파일 저장 시스템 및 이를 이용한 대용량 파일의 동적 비트맵 관리 방법을 제공함에 있다.Accordingly, the present invention has been made to solve the above-mentioned problems according to the prior art, and an object of the present invention is to allocate a bitmap dynamically without limiting the size of a file generated in a file system, such as a disk. The present invention provides a large file storage system and a dynamic bitmap management method of a large file using the same, which effectively manages a large number of files by increasing the use efficiency of the storage device.
또한, 본 발명의 다른 목적은, 파일 시스템에서 객체(아이노드, 디렉토리 엔트리, 데이터 블록)이 발생되는 시점에 비트맵을 동적으로 할당하는 동적 비트맵 관리 기법과 이를 이용한 대용량 파일 시스템의 구현 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공하는데 있다.Another object of the present invention is to provide a dynamic bitmap management technique for dynamically allocating bitmaps when an object (inode, directory entry, data block) is generated in a file system, and a method of implementing a large file system using the same. A computer readable recording medium having recorded thereon a program for realizing the above method is provided.
도 1은 본 발명에 따른 대용량 파일 시스템에서 대용량 파일 저장 공간의 레이아웃을 표현하는 일 실시예 도면,1 is a diagram for describing a layout of a large file storage space in a large file system according to the present invention;
도 2는 도 1에 도시된 비트맵 영역과 할당 영역의 구조와, 비트맵을 이용한 할당 영역의 관리를 나타내는 일 실시예 도면,2 is a diagram illustrating a structure of a bitmap area and an allocation area shown in FIG. 1 and management of an allocation area using a bitmap;
도 3은 도 2에 도시된 내용의 상세한 예로서 아이노드용으로 할당된 비트맵 l 과 데이터 블록으로 할당된 비트맵 m을 보여주는 일 실시예 도면,3 is a diagram illustrating a bitmap l allocated for an inode and a bitmap m allocated to a data block as a detailed example of the contents shown in FIG. 2;
도 4는 도 3에 도시된 비트맵 영역에 저장된 비트맵의 구조로, 비트맵 헤더와 비트맵으로 구성된 일 실시예 도면,FIG. 4 is a diagram illustrating a structure of a bitmap stored in the bitmap region illustrated in FIG. 3 and includes a bitmap header and a bitmap.
도 5는 본 발명에 따른 대용량 파일 저장 시스템에서 비트맵의 할당 방법에 대한 동작 플로우챠트를 나타낸 도면,5 is a flowchart illustrating an operation method for allocating a bitmap in a large file storage system according to the present invention;
도 6는 도 5에서 빈 비트맵을 찾아서 요청된 메타데이터를 할당하는 과정에 대한 동작 플로우챠트를 나타낸 도면,6 is a flowchart illustrating an operation for allocating the requested metadata by finding an empty bitmap in FIG. 5;
도 7은 본 발명에 따른 대용량 파일 저장 시스템에서 해당 메타데이터에 대한 삭제 방법에 대한 동작 플로우챠트를 나타낸 도면.FIG. 7 is a flowchart illustrating an operation of deleting a corresponding metadata in a large file storage system according to the present invention; FIG.
*도면의 주요부분에 대한 부호의 설명** Description of the symbols for the main parts of the drawings *
110 : 슈퍼 블록 120 : 비트맵 영역110: super block 120: bitmap area
130 : 할당 공간130: allocated space
상기한 목적을 달성하기 위한 본 발명에 따른 대용량 파일 시스템의 일 측면에 따르면, 동적 비트맵 구조를 구현하기 위한 파일 저장 시스템에 있어서, 파일 시스템의 메타 데이터의 종류에 따른 구분이 없이 할당 영역의 크기에 따라 해당 비트맵을 구분하여 할당하는 구조를 포함하고, 비트맵 영역의 각 비트맵은 비트맵 정보를 관리하기 위한 헤더부분과 비트맵이 관리하는 할당의 사용 유무를 나타내는 비트 영역의 구조를 포함하되, 상기 비트맵은 메타데이터에 따라서 구분되고, 할당 영역의 할당 단위를 그룹으로 하여 비트 영역으로 관리하는 것이다.According to an aspect of a large-capacity file system according to the present invention for achieving the above object, in the file storage system for implementing a dynamic bitmap structure, the size of the allocation area without distinction according to the type of metadata of the file system And a bitmap structure for dividing the corresponding bitmap according to the bitmap area, and each bitmap of the bitmap area includes a header part for managing bitmap information and a bit area structure indicating whether bitmap management is used or not. However, the bitmaps are classified according to metadata and managed as a bit area by assigning allocation units of the allocation area as a group.
또한, 본 발명에 따른 대용량 파일 시스템에서 대용량 파일의 동적 비트맵 관리 방법의 일 측면에 따르면 파일 시스템에서 새로운 객체에 대한 생성이 발생하게 되면 객체의 유형을 검사하는 단계; 객체의 유형이 검사되면, 저장 장치에서 비트맵을 읽고 읽은 해당 비트맵의 헤더 정보에서 유형 값을 읽어서 파일 시스템에서 요청된 객체 유형과 비트맵 유형이 동일한가를 판단하는 단계; 상기 판단 결과 비트맵 유형이 동일하면 해당 비트맵에서 사용하지 않는 비트맵이 존재하는 가를 검사하기 위해 사용 카운트수와 전체 개수를 비교하는 단계; 상기 판단 결과, 비트맵의 사용 카운트수가 전체 개수보다 작은 경우 사용하지 않는 비트 "0"을 찾아 해당 비트를 "1"로 설정하여 해당 할당 영역이 사용중임을 표시하고, 헤더의 사용자 카운트를 증가시키는 단계; 상기 비트맵에 해당하는 할당 공간의 영역을 해당 객체에게 할당하는 단계를 포함한다.In addition, according to an aspect of the method for managing a dynamic bitmap of a large file in a large file system according to the present invention, if the generation of a new object in the file system occurs, checking the type of the object; If the type of the object is checked, determining whether the requested object type and the bitmap type are the same in the file system by reading the bitmap from the storage device and reading the type value from the header information of the corresponding bitmap; Comparing the used count number and the total number to check whether there is a bitmap not used in the corresponding bitmap if the bitmap types are the same; As a result of the determination, when the number of usage of the bitmap is smaller than the total number, finding an unused bit " 0 " and setting the corresponding bit to " 1 " to indicate that the corresponding allocation area is in use, and increasing the user count of the header. ; Allocating an area of the allocated space corresponding to the bitmap to the corresponding object.
상기 유형을 검사하는 단계와, 비트맵의 사용 카운터를 검사하는 단계에서 생성 객체 유형과 비트맵 유형이 동일하지 않는 경우와 비트맵의 사용 카운트수가 전체 개수보다 큰 경우, 현재 비트맵 영역에 할당되어 사용중인 비트맵이 없는 가를 검사하는 단계; 상기 검사 결과, 사용중인 비트맵이 존재하면 저장 장치에서 새로운 비트맵을 읽어 들이고, 사용중인 비트맵이 존재하지 않는 경우에는 현재 할당되어 있는 비트맵에 생성하고자 하는 객체를 위한 비트맵이 존재하지 않으므로 새로운 비트맵을 할당받아 요청된 객체의 할당 비트맵으로 유형을 설정하는 단계; 상기 새롭게 할당된 비트맵의 첫 번째 비트를 "1"로 설정하고, 해당 할당 공간 영역을 요청된 객체에게 할당하는 단계를 포함할 수 있다.In the checking of the type and in the checking of the bitmap usage counter, if the generated object type and the bitmap type are not the same and the number of use of the bitmap is greater than the total number, the current bitmap area is allocated. Checking whether there is no bitmap in use; As a result of the check, if a bitmap being used exists, a new bitmap is read from the storage device. If no bitmap is used, there is no bitmap for the object to be created in the currently allocated bitmap. Receiving a new bitmap and setting a type to an allocated bitmap of the requested object; And setting the first bit of the newly allocated bitmap to "1" and allocating a corresponding allocated space region to the requested object.
상기 저장 장치의 저장 공간은, 파일 시스템 전체를 관리하기 위한 정보를 저장하는 슈퍼블록과, 아이노드, 디렉토리 엔트리, 그리고 데이터 블록을 저장하기 위한 할당 공간과, 상기 할당 공간을 관리하기 위한 비트맵 영역으로 이루어질 수있다.The storage space of the storage device may include a superblock storing information for managing the entire file system, an allocation space for storing an inode, a directory entry, and a data block, and a bitmap area for managing the allocation space. Can be done with
또한, 파일 저장 시스템에 적용되는 동적 비트맵 구조를 이용한 메타 데이터 객체 삭제 방법의 일 측면에 따르면, 파일 시스템에서 객체에 대한 삭제 요청을 받게 되면, 요청된 객체가 존재하는 비트맵을 저장장치로부터 리드하는 단계; 상기 리드된 비트맵에서 해당 비트를 찾아 비트 값을 "0"으로 설정하여 다음에 사용 가능하도록 설정하고 헤더 정보에서 사용 카운터를 감소시킨 후, 비트맵의 헤더 사용 카운터의 값이 "0" 인가를 검사하는 단계; 상기 검사 결과, 헤더 사용 카운터가 "0"이면 현재 비트맵이 관리하고 있는 저장 장치의 할당 영역을 사용하지 않는 것이므로 비트맵의 헤더와 비트 영역을 "0"(자유공간)으로 설정하여 다른 객체를 위한 영역으로 할당하는 단계를 포함한다.In addition, according to an aspect of the method for deleting a metadata object using a dynamic bitmap structure applied to a file storage system, when a request for deleting an object is received from the file system, a bitmap in which the requested object exists is read from the storage device. Making; Find the corresponding bit in the read bitmap, set the bit value to "0", make it available for the next time, decrease the usage counter in the header information, and check whether the value of the header use counter of the bitmap is "0". Inspecting; As a result of the above check, if the header usage counter is "0", the allocated area of the storage device managed by the current bitmap is not used. Therefore, the header and bit area of the bitmap are set to "0" (free space) so that other objects can be changed. Allocating an area for the data.
한편, 대용량 파일 시스템에서 대용량 파일의 동적 비트맵 관리 방법을 수행하기 위하여 디지털 처리장치에 의해 실행될 수 있는 명령어들의 프로그램이 유형적으로 구현되어 있으며, 디지털 처리장치에 의해 판독될 수 있는 기록 매체의 일측면에 따르면, 파일 시스템에서 새로운 객체에 대한 생성이 발생하게 되면 객체의 유형을 검사하는 단계; 객체의 유형이 검사되면, 저장 장치에서 비트맵을 읽고 읽은 해당 비트맵의 헤더 정보에서 유형 값을 읽어서 파일 시스템에서 요청된 객체 유형과 비트맵 유형이 동일한가를 판단하는 단계; 상기 판단 결과 비트맵 유형이 동일하면 해당 비트맵에서 사용하지 않는 비트맵이 존재하는 가를 검사하기 위해 사용 카운트와 전체 개수를 비교하는 단계; 상기 판단 결과, 비트맵의 사용 카운트수가 전체 개수보다 작은 경우 사용하지 않는 비트 "0"을 찾아 해당 비트를 "1"로설정하여 해당 할당 영역이 사용중임을 표시하고, 헤더의 사용자 카운트수를 증가시키는 단계; 상기 비트맵에 해당하는 할당 공간의 영역을 해당 객체에게 할당하는 단계를 수행하는 것이다.Meanwhile, in order to perform a dynamic bitmap management method of a large file in a large file system, a program of instructions that can be executed by a digital processing device is tangibly embodied, and one side of a recording medium that can be read by the digital processing device. According to, if the generation of a new object in the file system occurs, checking the type of the object; If the type of the object is checked, determining whether the requested object type and the bitmap type are the same in the file system by reading the bitmap from the storage device and reading the type value from the header information of the corresponding bitmap; Comparing the usage count and the total number to check whether there is a bitmap not used in the corresponding bitmap if the bitmap types are the same; As a result of the determination, if the number of use counts of the bitmap is smaller than the total number, finding unused bit "0", setting the corresponding bit to "1" to indicate that the corresponding allocation area is in use, and increasing the number of user counts in the header. ; Allocating an area of the allocation space corresponding to the bitmap to the corresponding object.
이하, 본 발명에 따른 대용량 파일 시스템에서 대용량 파일의 동적 비트맵 관리 방법에 대한 바람직한 일 실시예를 첨부한 도면을 참조하여 상세하게 살펴보기로 하자.Hereinafter, a preferred embodiment of a method for managing a dynamic bitmap of a large file in a large file system according to the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명에 따른 대용량 파일 시스템에서 대용량 파일 저장 공간의 레이아웃을 표현하는 일 실시예 도면으로서, 파일 시스템을 저장하기 위한 저장 공간의 구조를 나타낸 도면이다.1 is a diagram illustrating a layout of a large file storage space in a large file system according to the present invention, and illustrates a structure of a storage space for storing a file system.
도 1에 도시된 바와같이, 저장 공간에는 파일 시스템 전체를 관리하기 위한 정보를 저장하는 슈퍼블록(110)과, 아이노드, 디렉토리 엔트리, 그리고 데이터 블록을 저장하기 위한 할당 공간(130)과, 할당 공간(130)을 관리하기 위한 비트맵 영역(120)으로 구성된다. 여기서, 비트맵의 크기는 아래의 수학식 1과 수학식 2를 이용하여 구할 수 있다.As shown in FIG. 1, the storage space includes a superblock 110 for storing information for managing the entire file system, an allocation space 130 for storing inodes, directory entries, and data blocks, and an allocation. It is composed of a bitmap area 120 for managing the space 130. Here, the size of the bitmap can be obtained by using Equations 1 and 2 below.
여기서, BC는 단위 비트맵이 가리키는 공간 영역의 할당 단위 수, SUB는 단위 비트맵의 크기, BH는 비트맵 헤드의 크기를 나타낸다.Here, BC denotes the number of allocation units of the spatial region indicated by the unit bitmap, SUB denotes the size of the unit bitmap, and BH denotes the size of the bitmap head.
여기서, BS는 비트맵의 크기, TAS는 총 할당 공간의 크기, SUA는 단위 할당 공간의 크기로 데이터 블록 또는 익스텐트의 크기이다.Here, BS is the size of the bitmap, TAS is the size of the total allocated space, and SUA is the size of the data block or extent.
도 2는 도 1에 도시된 비트맵 영역과 할당 영역의 구조와, 비트맵을 이용한 할당 영역의 관리를 나타내는 일 실시예 도면으로서, 비트맵과 할당 공간과의 관계를 나타낸 것이다.FIG. 2 is a diagram illustrating a structure of a bitmap area and an allocation area shown in FIG. 1 and management of an allocation area using a bitmap, and illustrates a relationship between a bitmap and an allocation space.
도 2에 도시된 바와 같이 한 개의 단위 비트맵(121, 122)이 n 개의 할당 공간(130)에 있는 단위 할당 영역(131, 132)을 관리한다. 즉, 0번째 비트맵(121)은 할당 공간(130)의 첫 번째 영역(131)을 관리하고 마지막 m번째 비트맵은 할당 공간에서 m번째(132)를 관리한다.As shown in FIG. 2, one unit bitmap 121 and 122 manages the unit allocation areas 131 and 132 in the n allocation spaces 130. That is, the 0 th bitmap 121 manages the first area 131 of the allocation space 130 and the last m bitmap manages the m th 132 in the allocation space.
도 3은 도 2를 상세하게 설명한 실시예 도면으로, 비트맵 영역(120)에서 임의의 비트맵이 아이노드용(121A)과 데이터 블록용(121B)으로 할당된 예를 보여주고 있다.FIG. 3 is an exemplary diagram illustrating FIG. 2 in detail, and shows an example in which an arbitrary bitmap is allocated for an inode 121A and a data block 121B in the bitmap region 120.
도 3에 도시된 바와 같이, 아이노드용으로 할당된 비트맵 l은 할당 영역(130)의 해당 영역(131-1)을 아이노드를 저장하는 공간으로 관리하고 있다. 도 3의 예에서는 할당 영역의 할당 단위는 10개 단위로 관리가 되고 있으며 아이노드 비트맵(121A)은 10개 중에서 7개가 사용중(131-1B)이고 3개(131-1B)가 남아 있다. 할당 공간(130)의 사용 여부는 비트맵에서 비트영역에 "0"과 "1"로 표시하여 사용 여부를 표현한다. 동일한 방법으로 데이터 블록 비트맵(121B)이 관리하는 할당 공간(131-2)은 데이터블록을 저장하는 공간으로 사용하게 되며, 실시예에서는 현재 3개의 데이터블록(131-2B)을 할당하여 사용하고 있음을 보여준다.As shown in FIG. 3, the bitmap l allocated for the inode manages the corresponding region 131-1 of the allocation region 130 as a space for storing the inode. In the example of FIG. 3, the allocation unit of the allocation area is managed by ten units. In the inode bitmap 121A, seven out of ten are in use (131-1B) and three (131-1B) remain. Whether the allocation space 130 is used or not is indicated by displaying "0" and "1" in the bit area in the bitmap. In the same way, the allocation space 131-2 managed by the data block bitmap 121B is used as a space for storing the data block. In the present embodiment, three data blocks 131-2B are allocated and used. Shows that there is.
각 비트맵의 구조는 도 4와 같다. 각 비트맵은 해당 비트맵(121)을 관리하기 위한 헤더(121-1)부분과 할당공간의 사용여부를 나타내는 비트 영역 부분(121-2)으로 구분된다.The structure of each bitmap is shown in FIG. Each bitmap is divided into a header 121-1 for managing the corresponding bitmap 121 and a bit area 121-2 indicating whether the allocated space is used.
비트맵을 관리하기 위한 헤더에 저장되는 정보는 비트맵 타입과 해당 비트맵이 유지하는 할당 영역의 총 개수와 이미 할당된 영역의 개수 등의 정보를 유지한다. 비트맵 타입은 해당 비트맵의 종류를 구분하는 것으로 비트맵이 아이노드, 디렉토리 엔트리, 데이터 블록인지를 구분하기 위한 것이다. 비트 값이 "1"이면(121-2A) 할당 공간에 있는 해당 영역이 이미 할당되었음을 의미하고, 비트 값이 "0"이면(121-2B) 해당 영역이 할당되지 않았음을 의미한다.The information stored in the header for managing the bitmap maintains information such as the bitmap type, the total number of allocation areas maintained by the bitmap, and the number of areas already allocated. The bitmap type identifies the type of the corresponding bitmap and is used to distinguish whether the bitmap is an inode, a directory entry, or a data block. If the bit value is "1" (121-2A), it means that the corresponding area in the allocation space has already been allocated. If the bit value is "0" (121-2B), it means that the corresponding area is not allocated.
도 3에서는 i 번째 비트맵으로 아이노드를 위한 비트맵이며, 비트맵에서 관리하는 총 할당 영역의 개수(도 2에서의 n값)는 60개이고, 이중에서 41개 사용 중인 예이다.In FIG. 3, the i-th bitmap is a bitmap for the inode, and the total number of allocated regions managed by the bitmap (n value in FIG. 2) is 60, of which 41 are in use.
도 5는 본 발명에 따른 대용량 파일 저장 시스템에서 객체의 생성에 대한 일실시예 흐름도이다.5 is a flowchart illustrating an embodiment of creating an object in a large file storage system according to the present invention.
도 5를 보면, 먼저, 파일 시스템에서 새로운 객체에 대한 생성이 발생하게 되면 객체의 유형을 검사하게 된다(S510). 여기서, 객체의 유형은, 아이노드, 디렉토리 에트리, 데이터 블록 등이 될 수 있다.Referring to FIG. 5, first, when a generation of a new object in the file system occurs, the type of the object is checked (S510). Here, the type of object may be an inode, a directory entry, a data block, or the like.
이어, 생성 객체 유형의 검사가 완료되면, 해당 객체에 대한 할당 연산 과정을 수행한다(S520). 즉, 비트맵에서 해당 객체를 위한 빈 영역을 할당하게 되는 것이다.Subsequently, when the checking of the generated object type is completed, an allocation operation process for the corresponding object is performed (S520). That is, it allocates an empty area for the object in the bitmap.
여기서, 상기한 S520단계 즉, 객체에 대한 할당 연산 과정을 첨부한 도 6을 참조하여 좀 더 상세하게 설명해 보기로 하자.Here, step S520, that is, with reference to Figure 6 attached to the allocation operation process for the object will be described in more detail.
도 6은 도 5에 도시된 할당 연산 과정에 대한 동작 플로우챠트를 나타낸 도면으로서, 먼저, 저장 장치에서 비트맵을 읽고(S521), 읽은 해당 비트맵의 헤더 정보에서 유형 값을 읽어서 파일 시스템에서 요청된 객체 유형과 비트맵 유형이 동일한가를 판단한다(S522).FIG. 6 is a flowchart illustrating an operation of the allocation operation illustrated in FIG. 5. First, a bitmap is read from a storage device (S521), and a type value is read from a header information of the corresponding bitmap, which is requested by the file system. It is determined whether the object type and the bitmap type are the same (S522).
상기 S522 단계에서 판단 결과 비트맵 유형이 동일하면 해당 비트맵에서 사용하지 않는 비트맵이 존재하는 가를 검사하기 위해 사용 카운트와 전체 개수를 비교한다(S523). 즉, 사용 카운트와 전체 개수가 동일한 경우는 모든 비트가 사용하고 있음을 의미한다.As a result of the determination in step S522, if the bitmap types are the same, the usage count and the total number are compared to check whether there is a bitmap not used in the corresponding bitmap (S523). That is, when the usage count and the total number are the same, it means that all the bits are used.
상기 S523 단게에서 판단 결과, 비트맵의 사용 카운트수가 전체 개수보다 작은 경우 사용하지 않는 비트 "0"을 찾아 해당 비트를 "1"로 설정하여 해당 할당 영역이 사용중임을 표시하고, 헤더의 사용 카운트수를 증가시킨다(S524).As a result of the determination in step S523, when the number of use of the bitmap is smaller than the total number, the unused bit “0” is found and the corresponding bit is set to “1” to indicate that the corresponding allocation area is in use, and the number of use count of the header is determined. Increase (S524).
이어, 비트맵에 해당하는 할당 공간의 영역을 해당 객체에게 할당하게 되는 것이다(S525).Subsequently, an area of the allocated space corresponding to the bitmap is allocated to the corresponding object (S525).
만약 유형을 검사하는 상기 S522 단계와, 비트맵의 사용 카운터를 검사하는 상기 S523 단계를 만족하지 못하면, 즉, 생성 객체 유형과 비트맵 유형이 동일하지 않는 경우와 비트맵의 사용 카운트수가 전체 개수보다 큰 경우 새로운 비트맵을 저장 장치에서 읽어들여야 하는데, 이 과정을 진행하기 위해서는 현재 비트맵 영역에 할당되어 사용중인 비트맵이 없는 가를 검사해야 한다(S526).If the step S522 of checking the type and the step S523 of checking the usage counter of the bitmap are not satisfied, that is, the generated object type and the bitmap type are not the same and the number of use of the bitmap is greater than the total number. If it is large, a new bitmap must be read from the storage device. In order to proceed with this process, it is necessary to check whether there is no bitmap currently allocated to the bitmap area (S526).
상기 S526단계에서의 판단결과, 사용중인 비트맵이 존재하면 저장 장치에서 새로운 비트맵을 읽어 들이지만(S522), 사용중인 비트맵이 존재하지 않는 경우에는 현재 할당되어 있는 비트맵에 생성하고자 하는 객체를 위한 비트맵이 존재하지 않으므로 새로운 비트맵을 할당받아야 한다. 따라서, 비트맵 영역을 검색하여 사용하지 않는 비트맵을 선택하여 요청된 비트맵으로 유형을 설정한다(S527).As a result of the determination in step S526, if a bitmap being used exists, a new bitmap is read from the storage device (S522), but if there is no bitmap being used, the object to be created in the currently allocated bitmap Since no bitmap exists for, a new bitmap must be allocated. Therefore, the bitmap area is searched for and an unused bitmap is selected to set the type to the requested bitmap (S527).
이어, 새롭게 할당된 비트맵의 첫 번째 비트를 "1"로 설정하고, 해당 할당 공간 영역을 요청된 객체에게 할당하는 것이다(S528).Subsequently, the first bit of the newly allocated bitmap is set to "1", and the corresponding allocated space area is allocated to the requested object (S528).
도 7은 본 발명에 따른 대용량 파일 저장 시스템에서 해당 메타데이터에 대한 삭제 방법에 대한 동작 플로우챠트를 나타낸 도면이다.7 is a flowchart illustrating an operation of deleting a corresponding metadata in a large file storage system according to the present invention.
도 7에 도시된 바와 같이 먼저, 파일 시스템에서 객체에 대한 삭제 요청을 받게 되면 요청된 객체가 존재하는 비트맵을 저장장치에서 읽어들인다(S610).As shown in FIG. 7, when a deletion request for an object is received in a file system, a bitmap in which a requested object exists is read from a storage device (S610).
상기 S610 단계에서 읽어들인 비트맵에서 해당 비트를 찾아 비트 값을 0으로 설정하여 다음에 사용 가능하도록 설정하고 헤더 정보에서 사용 카운터를 감소시킨 후(S620), 비트맵의 헤더 사용 카운터의 값이 "0" 인가를 검사한다(S630).Find the corresponding bit in the bitmap read in step S610, set the bit value to 0 to enable the next use, and decrease the usage counter in the header information (S620). 0 "application is checked (S630).
상기 S630 단계에서의 판단결과, 헤더 사용 카운터가 "0"이면 현재 비트맵이 관리하고 있는 저장 장치의 할당 영역을 사용하지 않는 것이므로 비트맵의 헤더와 비트 영역을 "0"으로 설정하여 즉, 해당 비트맵의 값을 "0"으로 설정하여 다른 객체를 위한 영역으로 할당할 수 있도록 한다(S640).As a result of the determination in step S630, if the header usage counter is "0", since the allocation area of the storage device managed by the current bitmap is not used, the header and bit area of the bitmap are set to "0", The value of the bitmap is set to "0" so that the bitmap can be allocated to an area for another object (S640).
상술한 바와 같은 본 발명에 따른 대용량 파일의 동적 비트맵 관리 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다.As described above, the method for managing a dynamic bitmap of a large file according to the present invention may be implemented as a program and stored in a computer-readable recording medium (CD-ROM, RAM, ROM, floppy disk, hard disk, magneto-optical disk, etc.). have.
이상에서 설명한 본 발명은 상술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것이 본 발명이 속하는 기술분야에서 통상의 지식을 가진자에게 있어 명백할 것이다.The present invention described above is not limited to the above-described embodiments and the accompanying drawings, and various substitutions, modifications, and changes are possible in the art without departing from the technical spirit of the present invention. It will be apparent to those of ordinary skill.
이상에서 설명한 바와 같이 본 발명은, 파일 시스템을 관리하기 위해 비트맵을 동적으로 할당하여 파일의 크기에 따라서 발생하는 저장 공간의 낭비를 줄여서 최대한의 이용률을 보장함으로서, 효과적으로 대용량 파일의 동적 비트맵을 관리할 수 있는 것이다.As described above, the present invention effectively allocates a bitmap to manage a file system, thereby reducing the waste of storage space generated according to the size of the file, thereby ensuring maximum utilization rate, thereby effectively recovering a dynamic bitmap of a large file. It can be managed.
특히, 인터넷의 전자 메일 서버와 같이 소량의 파일이 대량으로 존재하는 저장 시스템에서 본 발명을 사용하면, 저장 공간이 남아 있음에도 불구하고 아이노드와 디렉토리 엔트리의 부족으로 인해 파일을 저장하지 못하는 문제를 해결할 수 있다.In particular, using the present invention in a storage system in which a small amount of files exist, such as an e-mail server on the Internet, the problem of not being able to save files due to lack of inode and directory entry despite the storage space remaining is solved. Can be.
반대로, 멀티미디어 데이터와 같은 대용량 파일을 저장하는 저장 시스템에서 본 발명을 사용하면, 최소한 아이노드와 디렉토리 엔트리 만을 할당하여 사용함으로 할당 공간에서 데이터 블록의 영역을 최대로 할 수 있으므로 낭비를 줄일 수 있다.On the contrary, if the present invention is used in a storage system that stores a large file such as multimedia data, at least an inode and a directory entry can be allocated to maximize the area of the data block in the allocated space, thereby reducing waste.
또한, 본 발명은 향후 용량의 증가로 인해 메타데이터가 차지하는 영역이 큰 SAN(Storage Area Network)이나 NAS(Network Attached Storage)와 같은 대용량 저장 장치에 효과적으로 활용할 수 있기 때문에 대용량 파일의 저장 시에 저장 장치를 효율적으로 사용할 수 있다.In addition, the present invention can be effectively used for mass storage devices, such as a storage area network (SAN) or a network attached storage (NAS), which has a large area of metadata due to an increase in capacity in the future, so that the storage device at the time of storing large files Can be used efficiently.
Claims (8)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2002-0010855A KR100452631B1 (en) | 2002-02-28 | 2002-02-28 | Management method of dynamic bitmap in huge file system by using huge file storing system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2002-0010855A KR100452631B1 (en) | 2002-02-28 | 2002-02-28 | Management method of dynamic bitmap in huge file system by using huge file storing system |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20030071245A true KR20030071245A (en) | 2003-09-03 |
KR100452631B1 KR100452631B1 (en) | 2004-10-14 |
Family
ID=32223019
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-2002-0010855A KR100452631B1 (en) | 2002-02-28 | 2002-02-28 | Management method of dynamic bitmap in huge file system by using huge file storing system |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100452631B1 (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100703753B1 (en) * | 2005-04-14 | 2007-04-06 | 삼성전자주식회사 | Apparatus and method for managing file system |
KR100714691B1 (en) * | 2005-05-04 | 2007-05-04 | 삼성전자주식회사 | Apparatus and method for saving and managing additional data of file system |
KR100790991B1 (en) * | 2006-03-22 | 2008-01-03 | 삼성전자주식회사 | Method for managing metadata of file system using DBMS |
WO2013066010A1 (en) * | 2011-10-31 | 2013-05-10 | 에스케이씨앤씨 주식회사 | Method for pre-loading in memory and method for parallel processing for high-volume batch processing |
US11157459B2 (en) | 2016-02-26 | 2021-10-26 | Red Hat, Inc. | Granular data self-healing |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6023744A (en) * | 1997-03-07 | 2000-02-08 | Microsoft Corporation | Method and mechanism for freeing disk space in a file system |
US6041407A (en) * | 1997-09-24 | 2000-03-21 | Sony Corporation | File system block sub-allocator |
JP2001075848A (en) * | 1999-09-09 | 2001-03-23 | Nec Corp | Method for file management of file system |
KR20020087707A (en) * | 2001-05-16 | 2002-11-23 | 주식회사 하이닉스반도체 | File management device and method using block flag |
-
2002
- 2002-02-28 KR KR10-2002-0010855A patent/KR100452631B1/en not_active IP Right Cessation
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100703753B1 (en) * | 2005-04-14 | 2007-04-06 | 삼성전자주식회사 | Apparatus and method for managing file system |
US7681010B2 (en) | 2005-04-14 | 2010-03-16 | Samsung Electronics Co., Ltd. | Apparatus and method for a managing file system |
KR100714691B1 (en) * | 2005-05-04 | 2007-05-04 | 삼성전자주식회사 | Apparatus and method for saving and managing additional data of file system |
KR100790991B1 (en) * | 2006-03-22 | 2008-01-03 | 삼성전자주식회사 | Method for managing metadata of file system using DBMS |
US9384201B2 (en) | 2006-03-22 | 2016-07-05 | Samsung Electronics Co., Ltd. | Method of managing data of file system using database management system |
WO2013066010A1 (en) * | 2011-10-31 | 2013-05-10 | 에스케이씨앤씨 주식회사 | Method for pre-loading in memory and method for parallel processing for high-volume batch processing |
US11157459B2 (en) | 2016-02-26 | 2021-10-26 | Red Hat, Inc. | Granular data self-healing |
Also Published As
Publication number | Publication date |
---|---|
KR100452631B1 (en) | 2004-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9575678B2 (en) | Hierarchical allocation for file system storage device | |
CN107436725B (en) | Data writing and reading methods and devices and distributed object storage cluster | |
US6571261B1 (en) | Defragmentation utility for a shared disk parallel file system across a storage area network | |
US7236992B2 (en) | Storage system | |
KR100856245B1 (en) | File system device and method for saving and seeking file thereof | |
US20100146213A1 (en) | Data Cache Processing Method, System And Data Cache Apparatus | |
CN108399047B (en) | Flash memory file system and data management method thereof | |
CN113568582B (en) | Data management method, device and storage equipment | |
CN111061752B (en) | Data processing method and device and electronic equipment | |
US20110153677A1 (en) | Apparatus and method for managing index information of high-dimensional data | |
KR100484942B1 (en) | Method for managing directories of large-scale file system | |
CN103793468A (en) | Data storage method and device and data reading method and device | |
CN105493080A (en) | Method and apparatus for context aware based data de-duplication | |
KR100452631B1 (en) | Management method of dynamic bitmap in huge file system by using huge file storing system | |
CN109947730A (en) | Metadata restoration methods, device, distributed file system and readable storage medium storing program for executing | |
Lu et al. | Research on Cassandra data compaction strategies for time-series data | |
KR101104112B1 (en) | Dynamic index information maintenance system adapted solid state disk and method thereof and Recording medium having program source thereof | |
CN114168391A (en) | Parallel multithreading file backup recovery method and system under XFS and storage medium | |
CN113535092A (en) | Storage engine, method and readable medium for reducing memory metadata | |
CN112905557A (en) | Mass file integration storage method and system supporting asynchronous submission | |
CN106980616A (en) | A kind of mass small documents merge storage method and system | |
Wang et al. | GRF: A Global Range Filter for LSM-Trees with Shape Encoding | |
CN112084141A (en) | Full-text retrieval system capacity expansion method, device, equipment and medium | |
US20240086362A1 (en) | Key-value store and file system | |
Rezaei et al. | A new implementation technique for memory management |
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 | ||
FPAY | Annual fee payment |
Payment date: 20120928 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20130923 Year of fee payment: 10 |
|
LAPS | Lapse due to unpaid annual fee |