KR100452631B1 - 대용량 파일 저장 시스템을 이용한 대용량 파일의 동적 비트맵 관리 방법 - Google Patents

대용량 파일 저장 시스템을 이용한 대용량 파일의 동적 비트맵 관리 방법 Download PDF

Info

Publication number
KR100452631B1
KR100452631B1 KR10-2002-0010855A KR20020010855A KR100452631B1 KR 100452631 B1 KR100452631 B1 KR 100452631B1 KR 20020010855 A KR20020010855 A KR 20020010855A KR 100452631 B1 KR100452631 B1 KR 100452631B1
Authority
KR
South Korea
Prior art keywords
bitmap
type
allocated
area
file system
Prior art date
Application number
KR10-2002-0010855A
Other languages
English (en)
Other versions
KR20030071245A (ko
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 KR10-2002-0010855A priority Critical patent/KR100452631B1/ko
Publication of KR20030071245A publication Critical patent/KR20030071245A/ko
Application granted granted Critical
Publication of KR100452631B1 publication Critical patent/KR100452631B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • 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/11File system administration, e.g. details of archiving or snapshots
    • G06F16/113Details 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

대용량 파일 저장 시스템을 이용한 대용량 파일의 동적 비트맵 관리 방법{Management method of dynamic bitmap in huge file system by using huge file storing system}
본 발명은 대용량 파일 저장 시스템 및 이를 이용한 대용량 파일의 동적 비트맵 관리 방법에 관한 것으로서, 특히 대용량 파일 저장 시스템에서 파일을 관리하기 위한 객체인 아이노드, 디렉토리 엔트리, 그리고 데이터 블록을 관리하기 위한 비트맵의 구성 및 할당과 회수 방법에 관한 것이다. 즉, 본 발명은, 대용량 파일 시스템에 할당된 전체 디스크 공간을 위한 비트맵을 구성하는 방법과 이를 이용하여 파일 시스템에 대한 연산이 발생하는 경우 세 가지 객체를 비트맵을 이용하여 동적으로 관리함으로써 사용되는 객체에 맞게 비트맵을 효율적으로 관리할 수 있도록 하고, 디스크와 같은 저장 공간의 낭비를 최소화하기 위한 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.
파일 저장 시스템과 관련된 연구는 컴퓨터가 처음으로 개발된 이래로 지속적으로 이루어져 왔고 많은 제품들이 출시되었다. 대표적으로 유닉스 파일시스템(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
여기서, BC는 단위 비트맵이 가리키는 공간 영역의 할당 단위 수, SUB는 단위 비트맵의 크기, BH는 비트맵 헤드의 크기를 나타낸다.
BS = TAS / SUA / BC
여기서, 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)

  1. 삭제
  2. 대용량 파일 시스템에서 대용량 파일의 동적 비트맵 관리 방법에 있어서,
    파일 시스템에서 새로운 객체에 대한 생성이 발생하게 되면 객체의 유형을 검사하는 단계;
    객체의 유형이 검사되면, 저장 장치에서 비트맵을 읽고 읽은 해당 비트맵의 헤더 정보에서 유형 값을 읽어서 파일 시스템에서 요청된 객체 유형과 비트맵 유형이 동일한가를 판단하는 단계;
    상기 판단 결과 비트맵 유형이 동일하면 해당 비트맵에서 사용하지 않는 비트맵이 존재하는 가를 검사하기 위해 사용 카운트와 전체 개수를 비교하는 단계;
    상기 판단 결과, 비트맵의 사용 카운트수가 전체 개수보다 작은 경우 사용하지 않는 비트 "0"을 찾아 해당 비트를 "1"로 설정하여 해당 할당 영역이 사용중임을 표시하고, 헤더의 사용자 카운트를 증가시키는 단계;
    상기 비트맵에 해당하는 할당 공간의 영역을 해당 객체에게 할당하는 단계를 포함하는 대용량 파일 시스템에서 대용량 파일의 동적 비트맵 관리 방법.
  3. 제2항에 있어서,
    상기 유형을 검사하는 단계와, 비트맵의 사용 카운터를 검사하는 단계에서 생성 객체 유형과 비트맵 유형이 동일하지 않는 경우와 비트맵의 사용 카운트수가 전체 개수보다 큰 경우, 현재 비트맵 영역에 할당되어 사용중인 비트맵이 없는 가를 검사하는 단계;
    상기 검사 결과, 사용중인 비트맵이 존재하면 저장 장치에서 새로운 비트맵을 읽어 들이고, 사용중인 비트맵이 존재하지 않는 경우에는 현재 할당되어 있는 비트맵에 생성하고자 하는 객체를 위한 비트맵이 존재하지 않으므로 새로운 비트맵을 할당받아 요청된 객체의 할당 비트맵으로 유형을 설정하는 단계;
    상기 새롭게 할당된 비트맵의 첫 번째 비트를 "1"로 설정하고, 해당 할당 공간 영역을 요청된 객체에게 할당하는 단계를 포함하는 대용량 파일 시스템에서 대용량 파일의 동적 비트맵 관리 방법.
  4. 제2항에 있어서,
    상기 저장 장치의 저장 공간은,
    파일 시스템 전체를 관리하기 위한 정보를 저장하는 슈퍼블록과,
    아이노드, 디렉토리 엔트리, 그리고 데이터 블록을 저장하기 위한 할당 공간과,
    상기 할당 공간을 관리하기 위한 비트맵 영역으로 이루어진 대용량 파일 시스템에서 대용량 파일의 동적 비트맵 관리 방법.
  5. 제4항에 있어서,
    상기 비트맵 영역내의 비트맵의 크기는 아래의 수학식 1과 수학식 2를 이용하는 대용량 파일 시스템에서 대용량 파일의 동적 비트맵 관리 방법.
    [수학식 1]
    BC = SUB - BH
    여기서, BC는 단위 비트맵이 가리키는 공간 영역의 할당 단위 수, SUB는 단위 비트맵의 크기, BH는 비트맵 헤드의 크기를 나타낸다.
    [수학식 2]
    BS = TAS / SUA / BC
    여기서, BS는 비트맵의 크기, TAS는 총 할당 공간의 크기, SUA는 단위 할당공간의 크기로 데이터 블록 또는 익스텐트의 크기이다.
  6. 제2항에 있어서,
    상기 객체의 유형은, 아이노드, 디렉토리 에트리, 데이터 블록중 적어도 하나의 유형을 포함하는 대용량 파일 시스템에서 대용량 파일의 동적 비트맵 관리 방법.
  7. 삭제
  8. 삭제
KR10-2002-0010855A 2002-02-28 2002-02-28 대용량 파일 저장 시스템을 이용한 대용량 파일의 동적 비트맵 관리 방법 KR100452631B1 (ko)

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 KR20030071245A (ko) 2003-09-03
KR100452631B1 true 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)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
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 삼성전자주식회사 데이터베이스 관리 시스템을 이용하여 파일시스템의메타데이터를 관리하는 방법
KR20130047431A (ko) * 2011-10-31 2013-05-08 에스케이씨앤씨 주식회사 대용량 배치처리를 위한 메모리 선적재 및 병렬처리 방법
US11157459B2 (en) 2016-02-26 2021-10-26 Red Hat, Inc. Granular data self-healing

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999015969A1 (en) * 1997-09-24 1999-04-01 Sony Pictures Entertainment, Inc. File system block sub-allocator
US6023744A (en) * 1997-03-07 2000-02-08 Microsoft Corporation Method and mechanism for freeing disk space in a file system
JP2001075848A (ja) * 1999-09-09 2001-03-23 Nec Corp ファイルシステムのファイル管理方法
KR20020087707A (ko) * 2001-05-16 2002-11-23 주식회사 하이닉스반도체 블록 플래그를 이용한 파일 관리 장치 및 그 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
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
WO1999015969A1 (en) * 1997-09-24 1999-04-01 Sony Pictures Entertainment, Inc. File system block sub-allocator
JP2001075848A (ja) * 1999-09-09 2001-03-23 Nec Corp ファイルシステムのファイル管理方法
KR20020087707A (ko) * 2001-05-16 2002-11-23 주식회사 하이닉스반도체 블록 플래그를 이용한 파일 관리 장치 및 그 방법

Also Published As

Publication number Publication date
KR20030071245A (ko) 2003-09-03

Similar Documents

Publication Publication Date Title
US9575678B2 (en) Hierarchical allocation for file system storage device
CN107436725B (zh) 一种数据写、读方法、装置及分布式对象存储集群
CN101556557B (zh) 一种基于对象存储设备的对象文件组织方法
US6636879B1 (en) Space allocation in a write anywhere file system
US7236992B2 (en) Storage system
KR100856245B1 (ko) 파일 시스템 장치 및 그 파일 시스템의 파일 저장 및 파일 탐색 방법
US20100146213A1 (en) Data Cache Processing Method, System And Data Cache Apparatus
CN108399047B (zh) 一种闪存文件系统及其数据管理方法
CN113568582B (zh) 数据管理方法、装置和存储设备
O'Neil The sb-tree an index-sequential structure for high-performance sequential access
KV et al. Ext4 block and inode allocator improvements
KR100907477B1 (ko) 플래시 메모리에 저장된 데이터의 인덱스 정보 관리 장치및 방법
KR100484942B1 (ko) 대용량 파일시스템의 디렉토리 관리방법
CN105493080A (zh) 基于上下文感知的重复数据删除的方法和装置
KR100452631B1 (ko) 대용량 파일 저장 시스템을 이용한 대용량 파일의 동적 비트맵 관리 방법
CN109947730A (zh) 元数据恢复方法、装置、分布式文件系统及可读存储介质
KR101104112B1 (ko) 차세대 대용량 저장장치의 동적 색인 관리 시스템 및 그 방법과 그 소스 프로그램을 기록한 기록매체
CN112905557B (zh) 支持异步提交的海量文件整合存储方法及系统
Lu et al. Research on Cassandra data compaction strategies for time-series data
Baek et al. Design and analysis of a space conscious nonvolatile-RAM file system
CN114168391A (zh) Xfs下并行多线程文件备份恢复方法、系统及存储介质
CN113535092A (zh) 用于减少内存元数据的存储引擎、方法和可读介质
CN106980616A (zh) 一种海量小文件合并存储方法和系统
CN112084141A (zh) 一种全文检索系统扩容方法、装置、设备及介质
US20240086362A1 (en) Key-value store and file system

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