KR20030071245A - 대용량 파일 저장 시스템 및 이를 이용한 대용량 파일의동적 비트맵 관리 방법 - Google Patents
대용량 파일 저장 시스템 및 이를 이용한 대용량 파일의동적 비트맵 관리 방법 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
본 발명은, 파일 시스템을 관리하기 위해 비트맵을 동적으로 할당하여 파일의 크기에 따라서 발생하는 저장 공간의 낭비를 줄여서 최대한의 이용률을 보장함으로서, 효과적으로 대용량 파일의 동적 비트맵을 관리할 수 있는 것으로서, 인터넷의 전자 메일 서버와 같이 소량의 파일이 대량으로 존재하는 저장 시스템에서 본 발명을 사용하면, 저장 공간이 남아 있음에도 불구하고 아이노드와 디렉토리 엔트리의 부족으로 인해 파일을 저장하지 못하는 문제를 해결할 수 있는 것이다. 반대로, 멀티미디어 데이터와 같은 대용량 파일을 저장하는 저장 시스템에 적용하는 경우, 최소한 아이노드와 디렉토리 엔트리 만을 할당하여 사용함으로 할당 공간에서 데이터 블록의 영역을 최대로 할 수 있으므로 낭비를 줄일 수 있으며, 향후 용량의 증가로 인해 메타데이터가 차지하는 영역이 큰 SAN(Storage Area Network)이나 NAS(Network Attached Storage)와 같은 대용량 저장 장치에 효과적으로 활용할 수 있기 때문에 대용량 파일의 저장 시에 저장 장치를 효율적으로 사용할 수 있다.
Description
본 발명은 대용량 파일 저장 시스템 및 이를 이용한 대용량 파일의 동적 비트맵 관리 방법에 관한 것으로서, 특히 대용량 파일 저장 시스템에서 파일을 관리하기 위한 객체인 아이노드, 디렉토리 엔트리, 그리고 데이터 블록을 관리하기 위한 비트맵의 구성 및 할당과 회수 방법에 관한 것이다. 즉, 본 발명은, 대용량 파일 시스템에 할당된 전체 디스크 공간을 위한 비트맵을 구성하는 방법과 이를 이용하여 파일 시스템에 대한 연산이 발생하는 경우 세 가지 객체를 비트맵을 이용하여 동적으로 관리함으로써 사용되는 객체에 맞게 비트맵을 효율적으로 관리할 수 있도록 하고, 디스크와 같은 저장 공간의 낭비를 최소화하기 위한 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.
파일 저장 시스템과 관련된 연구는 컴퓨터가 처음으로 개발된 이래로 지속적으로 이루어져 왔고 많은 제품들이 출시되었다. 대표적으로 유닉스 파일시스템(UFS), 리눅스 파일 시스템(Ext), 윈도우즈 파일 시스템(NTFS) 등을 들수 있다.
이러한 파일 시스템에서는 디스크나 씨디롬 등과 같은 저장 장치에 파일을 저장하고 관리하기 위해서 파일에 대한 정보를 관리하기 위한 아이노드, 파일들의 집합인 디렉토리 정보를 관리하는 디렉토리 엔트리, 그리고 실제 파일의 내용이 저장되는 데이터 블록을 효과적으로 관리해야 한다. 이를 위해서 유닉스나 리눅스 파일 시스템에서는 파일 시스템을 생성할 때, 저장 장치 공간을 아이노드, 디렉토리 엔트리, 데이터 블록의 세 개의 영역으로 구분하고, 이를 관리하기 위해 각 객체에 해당하는 비트맵 영역을 정적으로 할당하여 관리하는 기법을 사용한다.
각 객체에 대하여 비트맵의 1 비트를 할당하여 사용하면 1로 설정하고, 사용하지 않으면 0으로 설정한다.
객체를 위한 영역과 비트맵의 크기를 결정하기 위해서는 파일 시스템에 저장되는 파일의 크기가 중요하다. 만약 데이터를 저장할 수 있는 공간이 100GB이고 파일의 크기가 1MB라고 가정하면, 파일 시스템에는 100,000개의 파일을 저장할 수 있으므로 100,000개의 아이노드를 저장할 수 있는 영역을 할당하고, 100,000개의 비트를 저장할 수 있는 아이노드 비트맵 영역을 설정하면 된다. 그러나 파일의 크기가 매우 다양함으로 정확한 크기의 비트맵 영역을 설정하는 것이 어려우므로 유닉스나 리눅스 파일 시스템에서는 4KB 당 1개의 아이노드를 할당하는 방법을 사용한다.
그러나, 이러한 정적인 비트맵 방법은 다음과 같은 두 가지 문제가 발생한다.
첫째, 파일 시스템에 저장되는 파일의 크기가 적은 경우, 정적 비트맵을 사용하는 파일 시스템에서, 저장된 파일의 크기가 적게되면 아이노드의 개수가 모자라게 되어 저장 공간의 낭비가 발생한다. 즉, 파일 시스템에 4KB미만의 파일이 다량으로 발생하는 경우 저장장치에는 파일을 저장할 수 있는 공간이 존재하지만 파일의 정보를 관리하기 위한 아이노드가 없어서 더 이상의 파일을 저장할 수 없다.
둘째, 파일 시스템에 저장되는 파일의 크기가 큰 경우, 정적 비트맵을 사용하는 파일 시스템에서, 저장된 파일의 크기가 크게 되면, 아이노드의 낭비가 발생한다. 즉, 파일 시스템에 4KB이상의 파일이 다량으로 저장되게 되면 아이노드가 남아 있지만 저장장치에 파일을 저장할 공간이 없어서 더 이상 파일을 저장할 수 없다.
따라서 파일 시스템에 저장되는 파일의 크기를 예측할 수 없으므로 파일의 크기에 기반한 정적 비트맵 방식은 저장 공간의 낭비나 비트맵의 낭비를 초래한다. 특히, 인터넷의 발전으로 전자메일과 같은 소량의 데이터를 주로 저장해야하는 메일 서버 시스템의 경우는 저장 공간의 낭비를 초래하고, 음성이나 영상과 같은 멀티미디어 데이터를 저장하고 서비스하는 멀티미디어 시스템에서는 관리 영역이 낭비되는 문제를 초래하게 되는 것이다.
따라서, 본 발명은 상기한 종래 기술에 따른 제반 문제점을 해결하기 위하여 안출한 것으로, 본 발명의 목적은, 파일 시스템에서 발생하는 파일의 크기에 제한을 받지 않고 동적으로 비트맵을 할당함으로써 디스크와 같은 저장 장치의 이용 효율성을 높여 대량의 파일들을 효과적으로 관리하도록 하는 대용량 파일 저장 시스템 및 이를 이용한 대용량 파일의 동적 비트맵 관리 방법을 제공함에 있다.
또한, 본 발명의 다른 목적은, 파일 시스템에서 객체(아이노드, 디렉토리 엔트리, 데이터 블록)이 발생되는 시점에 비트맵을 동적으로 할당하는 동적 비트맵 관리 기법과 이를 이용한 대용량 파일 시스템의 구현 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공하는데 있다.
도 1은 본 발명에 따른 대용량 파일 시스템에서 대용량 파일 저장 공간의 레이아웃을 표현하는 일 실시예 도면,
도 2는 도 1에 도시된 비트맵 영역과 할당 영역의 구조와, 비트맵을 이용한 할당 영역의 관리를 나타내는 일 실시예 도면,
도 3은 도 2에 도시된 내용의 상세한 예로서 아이노드용으로 할당된 비트맵 l 과 데이터 블록으로 할당된 비트맵 m을 보여주는 일 실시예 도면,
도 4는 도 3에 도시된 비트맵 영역에 저장된 비트맵의 구조로, 비트맵 헤더와 비트맵으로 구성된 일 실시예 도면,
도 5는 본 발명에 따른 대용량 파일 저장 시스템에서 비트맵의 할당 방법에 대한 동작 플로우챠트를 나타낸 도면,
도 6는 도 5에서 빈 비트맵을 찾아서 요청된 메타데이터를 할당하는 과정에 대한 동작 플로우챠트를 나타낸 도면,
도 7은 본 발명에 따른 대용량 파일 저장 시스템에서 해당 메타데이터에 대한 삭제 방법에 대한 동작 플로우챠트를 나타낸 도면.
*도면의 주요부분에 대한 부호의 설명*
110 : 슈퍼 블록 120 : 비트맵 영역
130 : 할당 공간
상기한 목적을 달성하기 위한 본 발명에 따른 대용량 파일 시스템의 일 측면에 따르면, 동적 비트맵 구조를 구현하기 위한 파일 저장 시스템에 있어서, 파일 시스템의 메타 데이터의 종류에 따른 구분이 없이 할당 영역의 크기에 따라 해당 비트맵을 구분하여 할당하는 구조를 포함하고, 비트맵 영역의 각 비트맵은 비트맵 정보를 관리하기 위한 헤더부분과 비트맵이 관리하는 할당의 사용 유무를 나타내는 비트 영역의 구조를 포함하되, 상기 비트맵은 메타데이터에 따라서 구분되고, 할당 영역의 할당 단위를 그룹으로 하여 비트 영역으로 관리하는 것이다.
또한, 본 발명에 따른 대용량 파일 시스템에서 대용량 파일의 동적 비트맵 관리 방법의 일 측면에 따르면 파일 시스템에서 새로운 객체에 대한 생성이 발생하게 되면 객체의 유형을 검사하는 단계; 객체의 유형이 검사되면, 저장 장치에서 비트맵을 읽고 읽은 해당 비트맵의 헤더 정보에서 유형 값을 읽어서 파일 시스템에서 요청된 객체 유형과 비트맵 유형이 동일한가를 판단하는 단계; 상기 판단 결과 비트맵 유형이 동일하면 해당 비트맵에서 사용하지 않는 비트맵이 존재하는 가를 검사하기 위해 사용 카운트수와 전체 개수를 비교하는 단계; 상기 판단 결과, 비트맵의 사용 카운트수가 전체 개수보다 작은 경우 사용하지 않는 비트 "0"을 찾아 해당 비트를 "1"로 설정하여 해당 할당 영역이 사용중임을 표시하고, 헤더의 사용자 카운트를 증가시키는 단계; 상기 비트맵에 해당하는 할당 공간의 영역을 해당 객체에게 할당하는 단계를 포함한다.
상기 유형을 검사하는 단계와, 비트맵의 사용 카운터를 검사하는 단계에서 생성 객체 유형과 비트맵 유형이 동일하지 않는 경우와 비트맵의 사용 카운트수가 전체 개수보다 큰 경우, 현재 비트맵 영역에 할당되어 사용중인 비트맵이 없는 가를 검사하는 단계; 상기 검사 결과, 사용중인 비트맵이 존재하면 저장 장치에서 새로운 비트맵을 읽어 들이고, 사용중인 비트맵이 존재하지 않는 경우에는 현재 할당되어 있는 비트맵에 생성하고자 하는 객체를 위한 비트맵이 존재하지 않으므로 새로운 비트맵을 할당받아 요청된 객체의 할당 비트맵으로 유형을 설정하는 단계; 상기 새롭게 할당된 비트맵의 첫 번째 비트를 "1"로 설정하고, 해당 할당 공간 영역을 요청된 객체에게 할당하는 단계를 포함할 수 있다.
상기 저장 장치의 저장 공간은, 파일 시스템 전체를 관리하기 위한 정보를 저장하는 슈퍼블록과, 아이노드, 디렉토리 엔트리, 그리고 데이터 블록을 저장하기 위한 할당 공간과, 상기 할당 공간을 관리하기 위한 비트맵 영역으로 이루어질 수있다.
또한, 파일 저장 시스템에 적용되는 동적 비트맵 구조를 이용한 메타 데이터 객체 삭제 방법의 일 측면에 따르면, 파일 시스템에서 객체에 대한 삭제 요청을 받게 되면, 요청된 객체가 존재하는 비트맵을 저장장치로부터 리드하는 단계; 상기 리드된 비트맵에서 해당 비트를 찾아 비트 값을 "0"으로 설정하여 다음에 사용 가능하도록 설정하고 헤더 정보에서 사용 카운터를 감소시킨 후, 비트맵의 헤더 사용 카운터의 값이 "0" 인가를 검사하는 단계; 상기 검사 결과, 헤더 사용 카운터가 "0"이면 현재 비트맵이 관리하고 있는 저장 장치의 할당 영역을 사용하지 않는 것이므로 비트맵의 헤더와 비트 영역을 "0"(자유공간)으로 설정하여 다른 객체를 위한 영역으로 할당하는 단계를 포함한다.
한편, 대용량 파일 시스템에서 대용량 파일의 동적 비트맵 관리 방법을 수행하기 위하여 디지털 처리장치에 의해 실행될 수 있는 명령어들의 프로그램이 유형적으로 구현되어 있으며, 디지털 처리장치에 의해 판독될 수 있는 기록 매체의 일측면에 따르면, 파일 시스템에서 새로운 객체에 대한 생성이 발생하게 되면 객체의 유형을 검사하는 단계; 객체의 유형이 검사되면, 저장 장치에서 비트맵을 읽고 읽은 해당 비트맵의 헤더 정보에서 유형 값을 읽어서 파일 시스템에서 요청된 객체 유형과 비트맵 유형이 동일한가를 판단하는 단계; 상기 판단 결과 비트맵 유형이 동일하면 해당 비트맵에서 사용하지 않는 비트맵이 존재하는 가를 검사하기 위해 사용 카운트와 전체 개수를 비교하는 단계; 상기 판단 결과, 비트맵의 사용 카운트수가 전체 개수보다 작은 경우 사용하지 않는 비트 "0"을 찾아 해당 비트를 "1"로설정하여 해당 할당 영역이 사용중임을 표시하고, 헤더의 사용자 카운트수를 증가시키는 단계; 상기 비트맵에 해당하는 할당 공간의 영역을 해당 객체에게 할당하는 단계를 수행하는 것이다.
이하, 본 발명에 따른 대용량 파일 시스템에서 대용량 파일의 동적 비트맵 관리 방법에 대한 바람직한 일 실시예를 첨부한 도면을 참조하여 상세하게 살펴보기로 하자.
도 1은 본 발명에 따른 대용량 파일 시스템에서 대용량 파일 저장 공간의 레이아웃을 표현하는 일 실시예 도면으로서, 파일 시스템을 저장하기 위한 저장 공간의 구조를 나타낸 도면이다.
도 1에 도시된 바와같이, 저장 공간에는 파일 시스템 전체를 관리하기 위한 정보를 저장하는 슈퍼블록(110)과, 아이노드, 디렉토리 엔트리, 그리고 데이터 블록을 저장하기 위한 할당 공간(130)과, 할당 공간(130)을 관리하기 위한 비트맵 영역(120)으로 구성된다. 여기서, 비트맵의 크기는 아래의 수학식 1과 수학식 2를 이용하여 구할 수 있다.
여기서, BC는 단위 비트맵이 가리키는 공간 영역의 할당 단위 수, SUB는 단위 비트맵의 크기, BH는 비트맵 헤드의 크기를 나타낸다.
여기서, BS는 비트맵의 크기, TAS는 총 할당 공간의 크기, SUA는 단위 할당 공간의 크기로 데이터 블록 또는 익스텐트의 크기이다.
도 2는 도 1에 도시된 비트맵 영역과 할당 영역의 구조와, 비트맵을 이용한 할당 영역의 관리를 나타내는 일 실시예 도면으로서, 비트맵과 할당 공간과의 관계를 나타낸 것이다.
도 2에 도시된 바와 같이 한 개의 단위 비트맵(121, 122)이 n 개의 할당 공간(130)에 있는 단위 할당 영역(131, 132)을 관리한다. 즉, 0번째 비트맵(121)은 할당 공간(130)의 첫 번째 영역(131)을 관리하고 마지막 m번째 비트맵은 할당 공간에서 m번째(132)를 관리한다.
도 3은 도 2를 상세하게 설명한 실시예 도면으로, 비트맵 영역(120)에서 임의의 비트맵이 아이노드용(121A)과 데이터 블록용(121B)으로 할당된 예를 보여주고 있다.
도 3에 도시된 바와 같이, 아이노드용으로 할당된 비트맵 l은 할당 영역(130)의 해당 영역(131-1)을 아이노드를 저장하는 공간으로 관리하고 있다. 도 3의 예에서는 할당 영역의 할당 단위는 10개 단위로 관리가 되고 있으며 아이노드 비트맵(121A)은 10개 중에서 7개가 사용중(131-1B)이고 3개(131-1B)가 남아 있다. 할당 공간(130)의 사용 여부는 비트맵에서 비트영역에 "0"과 "1"로 표시하여 사용 여부를 표현한다. 동일한 방법으로 데이터 블록 비트맵(121B)이 관리하는 할당 공간(131-2)은 데이터블록을 저장하는 공간으로 사용하게 되며, 실시예에서는 현재 3개의 데이터블록(131-2B)을 할당하여 사용하고 있음을 보여준다.
각 비트맵의 구조는 도 4와 같다. 각 비트맵은 해당 비트맵(121)을 관리하기 위한 헤더(121-1)부분과 할당공간의 사용여부를 나타내는 비트 영역 부분(121-2)으로 구분된다.
비트맵을 관리하기 위한 헤더에 저장되는 정보는 비트맵 타입과 해당 비트맵이 유지하는 할당 영역의 총 개수와 이미 할당된 영역의 개수 등의 정보를 유지한다. 비트맵 타입은 해당 비트맵의 종류를 구분하는 것으로 비트맵이 아이노드, 디렉토리 엔트리, 데이터 블록인지를 구분하기 위한 것이다. 비트 값이 "1"이면(121-2A) 할당 공간에 있는 해당 영역이 이미 할당되었음을 의미하고, 비트 값이 "0"이면(121-2B) 해당 영역이 할당되지 않았음을 의미한다.
도 3에서는 i 번째 비트맵으로 아이노드를 위한 비트맵이며, 비트맵에서 관리하는 총 할당 영역의 개수(도 2에서의 n값)는 60개이고, 이중에서 41개 사용 중인 예이다.
도 5는 본 발명에 따른 대용량 파일 저장 시스템에서 객체의 생성에 대한 일실시예 흐름도이다.
도 5를 보면, 먼저, 파일 시스템에서 새로운 객체에 대한 생성이 발생하게 되면 객체의 유형을 검사하게 된다(S510). 여기서, 객체의 유형은, 아이노드, 디렉토리 에트리, 데이터 블록 등이 될 수 있다.
이어, 생성 객체 유형의 검사가 완료되면, 해당 객체에 대한 할당 연산 과정을 수행한다(S520). 즉, 비트맵에서 해당 객체를 위한 빈 영역을 할당하게 되는 것이다.
여기서, 상기한 S520단계 즉, 객체에 대한 할당 연산 과정을 첨부한 도 6을 참조하여 좀 더 상세하게 설명해 보기로 하자.
도 6은 도 5에 도시된 할당 연산 과정에 대한 동작 플로우챠트를 나타낸 도면으로서, 먼저, 저장 장치에서 비트맵을 읽고(S521), 읽은 해당 비트맵의 헤더 정보에서 유형 값을 읽어서 파일 시스템에서 요청된 객체 유형과 비트맵 유형이 동일한가를 판단한다(S522).
상기 S522 단계에서 판단 결과 비트맵 유형이 동일하면 해당 비트맵에서 사용하지 않는 비트맵이 존재하는 가를 검사하기 위해 사용 카운트와 전체 개수를 비교한다(S523). 즉, 사용 카운트와 전체 개수가 동일한 경우는 모든 비트가 사용하고 있음을 의미한다.
상기 S523 단게에서 판단 결과, 비트맵의 사용 카운트수가 전체 개수보다 작은 경우 사용하지 않는 비트 "0"을 찾아 해당 비트를 "1"로 설정하여 해당 할당 영역이 사용중임을 표시하고, 헤더의 사용 카운트수를 증가시킨다(S524).
이어, 비트맵에 해당하는 할당 공간의 영역을 해당 객체에게 할당하게 되는 것이다(S525).
만약 유형을 검사하는 상기 S522 단계와, 비트맵의 사용 카운터를 검사하는 상기 S523 단계를 만족하지 못하면, 즉, 생성 객체 유형과 비트맵 유형이 동일하지 않는 경우와 비트맵의 사용 카운트수가 전체 개수보다 큰 경우 새로운 비트맵을 저장 장치에서 읽어들여야 하는데, 이 과정을 진행하기 위해서는 현재 비트맵 영역에 할당되어 사용중인 비트맵이 없는 가를 검사해야 한다(S526).
상기 S526단계에서의 판단결과, 사용중인 비트맵이 존재하면 저장 장치에서 새로운 비트맵을 읽어 들이지만(S522), 사용중인 비트맵이 존재하지 않는 경우에는 현재 할당되어 있는 비트맵에 생성하고자 하는 객체를 위한 비트맵이 존재하지 않으므로 새로운 비트맵을 할당받아야 한다. 따라서, 비트맵 영역을 검색하여 사용하지 않는 비트맵을 선택하여 요청된 비트맵으로 유형을 설정한다(S527).
이어, 새롭게 할당된 비트맵의 첫 번째 비트를 "1"로 설정하고, 해당 할당 공간 영역을 요청된 객체에게 할당하는 것이다(S528).
도 7은 본 발명에 따른 대용량 파일 저장 시스템에서 해당 메타데이터에 대한 삭제 방법에 대한 동작 플로우챠트를 나타낸 도면이다.
도 7에 도시된 바와 같이 먼저, 파일 시스템에서 객체에 대한 삭제 요청을 받게 되면 요청된 객체가 존재하는 비트맵을 저장장치에서 읽어들인다(S610).
상기 S610 단계에서 읽어들인 비트맵에서 해당 비트를 찾아 비트 값을 0으로 설정하여 다음에 사용 가능하도록 설정하고 헤더 정보에서 사용 카운터를 감소시킨 후(S620), 비트맵의 헤더 사용 카운터의 값이 "0" 인가를 검사한다(S630).
상기 S630 단계에서의 판단결과, 헤더 사용 카운터가 "0"이면 현재 비트맵이 관리하고 있는 저장 장치의 할당 영역을 사용하지 않는 것이므로 비트맵의 헤더와 비트 영역을 "0"으로 설정하여 즉, 해당 비트맵의 값을 "0"으로 설정하여 다른 객체를 위한 영역으로 할당할 수 있도록 한다(S640).
상술한 바와 같은 본 발명에 따른 대용량 파일의 동적 비트맵 관리 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다.
이상에서 설명한 본 발명은 상술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것이 본 발명이 속하는 기술분야에서 통상의 지식을 가진자에게 있어 명백할 것이다.
이상에서 설명한 바와 같이 본 발명은, 파일 시스템을 관리하기 위해 비트맵을 동적으로 할당하여 파일의 크기에 따라서 발생하는 저장 공간의 낭비를 줄여서 최대한의 이용률을 보장함으로서, 효과적으로 대용량 파일의 동적 비트맵을 관리할 수 있는 것이다.
특히, 인터넷의 전자 메일 서버와 같이 소량의 파일이 대량으로 존재하는 저장 시스템에서 본 발명을 사용하면, 저장 공간이 남아 있음에도 불구하고 아이노드와 디렉토리 엔트리의 부족으로 인해 파일을 저장하지 못하는 문제를 해결할 수 있다.
반대로, 멀티미디어 데이터와 같은 대용량 파일을 저장하는 저장 시스템에서 본 발명을 사용하면, 최소한 아이노드와 디렉토리 엔트리 만을 할당하여 사용함으로 할당 공간에서 데이터 블록의 영역을 최대로 할 수 있으므로 낭비를 줄일 수 있다.
또한, 본 발명은 향후 용량의 증가로 인해 메타데이터가 차지하는 영역이 큰 SAN(Storage Area Network)이나 NAS(Network Attached Storage)와 같은 대용량 저장 장치에 효과적으로 활용할 수 있기 때문에 대용량 파일의 저장 시에 저장 장치를 효율적으로 사용할 수 있다.
Claims (8)
- 동적 비트맵 구조를 구현하기 위한 파일 저장 시스템에 있어서,파일 시스템의 메타 데이터의 종류에 따른 구분이 없이 할당 영역의 크기에 따라 해당 비트맵을 구분하여 할당하는 구조를 포함하고,비트맵 영역의 각 비트맵은 비트맵 정보를 관리하기 위한 헤더부분과 비트맵이 관리하는 할당의 사용 유무를 나타내는 비트 영역의 구조를 포함하되,상기 비트맵은 메타데이터에 따라서 구분되고, 할당 영역의 할당 단위를 그룹으로 하여 비트 영역으로 관리하는 것을 특징으로 하는 대용량 파일 저장 시스템.
- 대용량 파일 시스템에서 대용량 파일의 동적 비트맵 관리 방법에 있어서,파일 시스템에서 새로운 객체에 대한 생성이 발생하게 되면 객체의 유형을 검사하는 단계;객체의 유형이 검사되면, 저장 장치에서 비트맵을 읽고 읽은 해당 비트맵의 헤더 정보에서 유형 값을 읽어서 파일 시스템에서 요청된 객체 유형과 비트맵 유형이 동일한가를 판단하는 단계;상기 판단 결과 비트맵 유형이 동일하면 해당 비트맵에서 사용하지 않는 비트맵이 존재하는 가를 검사하기 위해 사용 카운트와 전체 개수를 비교하는 단계;상기 판단 결과, 비트맵의 사용 카운트수가 전체 개수보다 작은 경우 사용하지 않는 비트 "0"을 찾아 해당 비트를 "1"로 설정하여 해당 할당 영역이 사용중임을 표시하고, 헤더의 사용자 카운트를 증가시키는 단계;상기 비트맵에 해당하는 할당 공간의 영역을 해당 객체에게 할당하는 단계를 포함하는 대용량 파일 시스템에서 대용량 파일의 동적 비트맵 관리 방법.
- 제2항에 있어서,상기 유형을 검사하는 단계와, 비트맵의 사용 카운터를 검사하는 단계에서 생성 객체 유형과 비트맵 유형이 동일하지 않는 경우와 비트맵의 사용 카운트수가 전체 개수보다 큰 경우, 현재 비트맵 영역에 할당되어 사용중인 비트맵이 없는 가를 검사하는 단계;상기 검사 결과, 사용중인 비트맵이 존재하면 저장 장치에서 새로운 비트맵을 읽어 들이고, 사용중인 비트맵이 존재하지 않는 경우에는 현재 할당되어 있는 비트맵에 생성하고자 하는 객체를 위한 비트맵이 존재하지 않으므로 새로운 비트맵을 할당받아 요청된 객체의 할당 비트맵으로 유형을 설정하는 단계;상기 새롭게 할당된 비트맵의 첫 번째 비트를 "1"로 설정하고, 해당 할당 공간 영역을 요청된 객체에게 할당하는 단계를 포함하는 대용량 파일 시스템에서 대용량 파일의 동적 비트맵 관리 방법.
- 제2항에 있어서,상기 저장 장치의 저장 공간은,파일 시스템 전체를 관리하기 위한 정보를 저장하는 슈퍼블록과,아이노드, 디렉토리 엔트리, 그리고 데이터 블록을 저장하기 위한 할당 공간과,상기 할당 공간을 관리하기 위한 비트맵 영역으로 이루어진 대용량 파일 시스템에서 대용량 파일의 동적 비트맵 관리 방법.
- 제4항에 있어서,상기 비트맵 영역내의 비트맵의 크기는 아래의 수학식 1과 수학식 2를 이용하는 대용량 파일 시스템에서 대용량 파일의 동적 비트맵 관리 방법.[수학식 1]BC = SUB - BH여기서, BC는 단위 비트맵이 가리키는 공간 영역의 할당 단위 수, SUB는 단위 비트맵의 크기, BH는 비트맵 헤드의 크기를 나타낸다.[수학식 2]BS = TAS / SUA / BC여기서, BS는 비트맵의 크기, TAS는 총 할당 공간의 크기, SUA는 단위 할당공간의 크기로 데이터 블록 또는 익스텐트의 크기이다.
- 제2항에 있어서,상기 객체의 유형은, 아이노드, 디렉토리 에트리, 데이터 블록중 적어도 하나의 유형을 포함하는 대용량 파일 시스템에서 대용량 파일의 동적 비트맵 관리 방법.
- 파일 저장 시스템에 적용되는 동적 비트맵 구조를 이용한 메타 데이터 객체 삭제 방법에 있어서,파일 시스템에서 객체에 대한 삭제 요청을 받게 되면 요청된 객체가 존재하는 비트맵을 저장장치로부터 리드하는 단계;상기 리드된 비트맵에서 해당 비트를 찾아 비트 값을 "0"으로 설정하여 다음에 사용 가능하도록 설정하고 헤더 정보에서 사용 카운터를 감소시킨 후, 비트맵의 헤더 사용 카운터의 값이 "0" 인가를 검사하는 단계;상기 검사 결과, 헤더 사용 카운터가 "0"이면 현재 비트맵이 관리하고 있는 저장 장치의 할당 영역을 사용하지 않는 것이므로 비트맵의 헤더와 비트 영역을 "0"으로 설정하여 다른 객체를 위한 영역으로 할당하는 단계를 포함하는 파일 저장 시스템에 적용되는 동적 비트맵 구조를 이용한 메타 데이터 객체 삭제 방법.
- 대용량 파일 시스템에서 대용량 파일의 동적 비트맵 관리 방법을 수행하기 위하여 디지털 처리장치에 의해 실행될 수 있는 명령어들의 프로그램이 유형적으로 구현되어 있으며, 디지털 처리장치에 의해 판독될 수 있는 기록 매체에 있어서,파일 시스템에서 새로운 객체에 대한 생성이 발생하게 되면 객체의 유형을 검사하는 단계;객체의유형이 검사되면, 저장 장치에서 비트맵을 읽고 읽은 해당 비트맵의 헤더 정보에서 유형 값을 읽어서 파일 시스템에서 요청된 객체 유형과 비트맵 유형이 동일한가를 판단하는 단계;상기 판단 결과 비트맵 유형이 동일하면 해당 비트맵에서 사용하지 않는 비트맵이 존재하는 가를 검사하기 위해 사용 카운트와 전체 개수를 비교하는 단계;상기 판단 결과, 비트맵의 사용 카운트수가 전체 개수보다 작은 경우 사용하지 않는 비트 "0"을 찾아 해당 비트를 "1"로 설정하여 해당 할당 영역이 사용중임을 표시하고, 헤더의 사용자 카운트를 증가시키는 단계;상기 비트맵에 해당하는 할당 공간의 영역을 해당 객체에게 할당하는 단계를 수행하는 기록 매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2002-0010855A KR100452631B1 (ko) | 2002-02-28 | 2002-02-28 | 대용량 파일 저장 시스템을 이용한 대용량 파일의 동적 비트맵 관리 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2002-0010855A KR100452631B1 (ko) | 2002-02-28 | 2002-02-28 | 대용량 파일 저장 시스템을 이용한 대용량 파일의 동적 비트맵 관리 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20030071245A true KR20030071245A (ko) | 2003-09-03 |
KR100452631B1 KR100452631B1 (ko) | 2004-10-14 |
Family
ID=32223019
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-2002-0010855A KR100452631B1 (ko) | 2002-02-28 | 2002-02-28 | 대용량 파일 저장 시스템을 이용한 대용량 파일의 동적 비트맵 관리 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100452631B1 (ko) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100703753B1 (ko) * | 2005-04-14 | 2007-04-06 | 삼성전자주식회사 | 파일 시스템 관리 장치 및 방법 |
KR100714691B1 (ko) * | 2005-05-04 | 2007-05-04 | 삼성전자주식회사 | 파일 시스템에 추가 정보를 저장하고 관리하는 장치 및방법 |
KR100790991B1 (ko) * | 2006-03-22 | 2008-01-03 | 삼성전자주식회사 | 데이터베이스 관리 시스템을 이용하여 파일시스템의메타데이터를 관리하는 방법 |
WO2013066010A1 (ko) * | 2011-10-31 | 2013-05-10 | 에스케이씨앤씨 주식회사 | 대용량 배치처리를 위한 메모리 선적재 및 병렬처리 방법 |
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 (ja) * | 1999-09-09 | 2001-03-23 | Nec Corp | ファイルシステムのファイル管理方法 |
KR20020087707A (ko) * | 2001-05-16 | 2002-11-23 | 주식회사 하이닉스반도체 | 블록 플래그를 이용한 파일 관리 장치 및 그 방법 |
-
2002
- 2002-02-28 KR KR10-2002-0010855A patent/KR100452631B1/ko not_active IP Right Cessation
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100703753B1 (ko) * | 2005-04-14 | 2007-04-06 | 삼성전자주식회사 | 파일 시스템 관리 장치 및 방법 |
US7681010B2 (en) | 2005-04-14 | 2010-03-16 | Samsung Electronics Co., Ltd. | Apparatus and method for a managing file system |
KR100714691B1 (ko) * | 2005-05-04 | 2007-05-04 | 삼성전자주식회사 | 파일 시스템에 추가 정보를 저장하고 관리하는 장치 및방법 |
KR100790991B1 (ko) * | 2006-03-22 | 2008-01-03 | 삼성전자주식회사 | 데이터베이스 관리 시스템을 이용하여 파일시스템의메타데이터를 관리하는 방법 |
US9384201B2 (en) | 2006-03-22 | 2016-07-05 | Samsung Electronics Co., Ltd. | Method of managing data of file system using database management system |
WO2013066010A1 (ko) * | 2011-10-31 | 2013-05-10 | 에스케이씨앤씨 주식회사 | 대용량 배치처리를 위한 메모리 선적재 및 병렬처리 방법 |
US11157459B2 (en) | 2016-02-26 | 2021-10-26 | Red Hat, Inc. | Granular data self-healing |
Also Published As
Publication number | Publication date |
---|---|
KR100452631B1 (ko) | 2004-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107436725B (zh) | 一种数据写、读方法、装置及分布式对象存储集群 | |
US9218135B2 (en) | Hierarchical allocation for file system storage device | |
US6571261B1 (en) | Defragmentation utility for a shared disk parallel file system across a storage area network | |
CN101556557B (zh) | 一种基于对象存储设备的对象文件组织方法 | |
KR100856245B1 (ko) | 파일 시스템 장치 및 그 파일 시스템의 파일 저장 및 파일 탐색 방법 | |
CN103020255B (zh) | 分级存储方法和装置 | |
US20100146213A1 (en) | Data Cache Processing Method, System And Data Cache Apparatus | |
US20030163457A1 (en) | Storage system | |
CN108399047B (zh) | 一种闪存文件***及其数据管理方法 | |
CN111061752B (zh) | 数据处理方法、装置及电子设备 | |
CN113568582A (zh) | 数据管理方法、装置和存储设备 | |
KR100484942B1 (ko) | 대용량 파일시스템의 디렉토리 관리방법 | |
CN105493080A (zh) | 基于上下文感知的重复数据删除的方法和装置 | |
KR100452631B1 (ko) | 대용량 파일 저장 시스템을 이용한 대용량 파일의 동적 비트맵 관리 방법 | |
CN109947730A (zh) | 元数据恢复方法、装置、分布式文件***及可读存储介质 | |
CN107506466A (zh) | 一种小文件存储方法及*** | |
CN101483668A (zh) | 热点数据的网络存储和访问方法、设备及*** | |
CN115328859A (zh) | 一种元数据访问方法、装置、设备及介质 | |
Lu et al. | Research on Cassandra data compaction strategies for time-series data | |
KR101104112B1 (ko) | 차세대 대용량 저장장치의 동적 색인 관리 시스템 및 그 방법과 그 소스 프로그램을 기록한 기록매체 | |
CN114168391A (zh) | Xfs下并行多线程文件备份恢复方法、***及存储介质 | |
CN113535092A (zh) | 用于减少内存元数据的存储引擎、方法和可读介质 | |
CN112905557A (zh) | 支持异步提交的海量文件整合存储方法及*** | |
CN106980616A (zh) | 一种海量小文件合并存储方法和*** | |
Wang et al. | GRF: A Global Range Filter for LSM-Trees with Shape Encoding |
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 |