KR101729624B1 - 고정 블록에 기반을 둔 가변 블록 처리 파일 시스템 및 파일 가변 블록 처리 방법 - Google Patents

고정 블록에 기반을 둔 가변 블록 처리 파일 시스템 및 파일 가변 블록 처리 방법 Download PDF

Info

Publication number
KR101729624B1
KR101729624B1 KR1020150107330A KR20150107330A KR101729624B1 KR 101729624 B1 KR101729624 B1 KR 101729624B1 KR 1020150107330 A KR1020150107330 A KR 1020150107330A KR 20150107330 A KR20150107330 A KR 20150107330A KR 101729624 B1 KR101729624 B1 KR 101729624B1
Authority
KR
South Korea
Prior art keywords
block
file
data
change
variable
Prior art date
Application number
KR1020150107330A
Other languages
English (en)
Other versions
KR20170014276A (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 KR1020150107330A priority Critical patent/KR101729624B1/ko
Publication of KR20170014276A publication Critical patent/KR20170014276A/ko
Application granted granted Critical
Publication of KR101729624B1 publication Critical patent/KR101729624B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices

Landscapes

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

Abstract

본 발명은 고정 블록에 기반을 둔 가변 블록 처리 파일 시스템 및 파일 가변 블록 처리 방법에 관한 것으로, 본 발명에 따른 고정 블록에 기반을 둔 가변 블록 처리 파일 시스템은, 파일 데이터를 저장하기 위한 저장 매체와, 임시로 변경된 블록 데이터를 저장하기 위한 메모리와, 애플리케이션 프로그램에 의한 저장 매체에의 파일 저장이 최초이면 복수의 고정 블록들로 파일 데이터를 저장하는 파일 관리부와, 애플리케이션 프로그램에 의한 파일 데이터의 변경이 검출되면 메모리에 변경 블록 데이터를 저장하는 파일 변경 검출부와, 및 애플리케이션 프로그램에 의해 파일 변경 데이터의 저장이 요청되면, 메모리에 저장된 변경 블록 데이터를 이용하여 장 매체에 저장된 복수의 고정 블록들 중 변경이 없는 블록에 대해서는 인덱스 정보만 변경하고, 데이터 변경이 있는 블록에 대해서는 가변 블록으로 처리하여 저장하는 파일 변경 처리부를 포함함으로써, 저장 매체에의 쓰기 과정을 최소화함으로써 저장 매체의 가용 기간을 증가시킬 수 있다.

Description

고정 블록에 기반을 둔 가변 블록 처리 파일 시스템 및 파일 가변 블록 처리 방법{Variable block processing file system and file variable block processing method based on fixed block}
본 발명은 고정 블록에 기반을 둔 가변 블록 처리 파일 시스템 및 파일 가변 블록 처리 방법에 관한 것으로, 고정 블록 단위의 파일 시스템에서 저장 매체에의 쓰기 과정을 최소화하기 위한 고정 블록에 기반을 둔 가변 블록 처리 파일 시스템 및 파일 가변 블록 처리 방법에 관한 것이다.
파일 시스템은 다양한 형태의 파일들을 관리하는 역할을 담당한다. 즉, 파일 시스템은 컴퓨터 시스템에서 운영 체제, 다양한 실행 파일 그리고 사용자의 데이터를 저장하는 역할을 담당하고 있다. 사용자 영역에서 파일은 바이트 스트림(byte stream)으로 간주하여 파일 핸들을 통해 파일 데이터를 읽거나 쓰는 작업을 수행하게 된다.
사용자 영역에서 파일에 대한 읽기/쓰기 요청은 커널 영역의 파일 시스템으로 전달되며 최종적으로는 블록 디바이스에 저장된 데이터 블록에 대한 읽기/쓰기 요청으로 변환한다. 따라서 사용자 영역에서 처리되는 바이트 스트림이 디바이스 수준에서는 블록 단위로 변환되므로 파일에 대한 오퍼레이션에서 다양한 문제점을 유발하고 있다.
예를 들어, 파일의 일부 내용을 사용자 영역의 메모리 버퍼로 읽어온 후에, 버퍼의 중간에 한 바이트의 데이터를 추가하거나 삭제하는 작업을 수행하는 경우를 설명한다. 이 경우 사용자 영역에서는 변경하고자 하는 영역에 파일 오프셋을 이동한 후 새로운 바이트를 삽입하거나 삭제하면서 데이터 변경을 쉽게 처리할 수 있다, 하지만, 이와 같은 변경 사항을 파일 시스템에 저장하는 경우에는 새로운 문제를 야기하게 된다. 메모리 버퍼 상에 존재하는 바이트 스트림은 최종적으로 디스크의 블록에 저장되어야 하는데, 한 바이트의 데이터 변경은 연속되는 뒷부분의 모든 데이터 블록의 변경을 요구하게 된다.
이러한 문제는 바이트 단위의 삽입 또는 삭제뿐만 아니라 블록 단위로 데이터의 삽입 또는 삭제가 발생이 되는 경우에도 동일하게 발생한다. 예를 들어, 데스크톱 컴퓨터에서 널리 사용되고 있는 Winzip이나 WinRAR와 같은 응용 프로그램은 다수의 서브 파일(sub-file)이 하나의 파일을 구성하는 구조이며, 각 서브 파일은 블록 경계(block-aligned) 구조를 가진다. 따라서 서브 파일을 삭제하거나 삽입하는 과정은 연속된 블록을 삽입하거나 삭제하는 작업에 해당한다. 하지만, 대부분의 파일 시스템은 이와 같은 블록 단위의 데이터 삽입 또는 삭제와 관련된 연산을 고려하지 않고 일반 파일과 동일하게 파일 수정 작업을 처리한다.
상술한 문제점을 해결하기 위해, 본 발명자들은 고정 크기의 블록에다 가변 크기의 파일 데이터의 저장을 가능케 하는 고정 블록에 기반을 둔 가변 블록 처리 파일 시스템 및 방법을 특허출원 제2014-0107590호로 출원하였다. 이러한 블록 단위의 파일 시스템에서 가변 블록의 적용은, 전체 블록에서의 쓰기 연산 수행 대신에 데이터 블록에 대한 인덱스의 변경으로 기존 파일 시스템에서의 쓰기 연산으로 인한 과부하 문제를 해결하고 고정 블록에서의 불필요한 쓰기 연산의 제거는 시스템 전체 성능에도 큰 향상을 가져왔다. 하지만, 하드 디스크 또는 플래시 메모리 등의 영구 저장 매체에의 쓰기 연산은 예를 들어 문서 작업을 하는 경우에는 문서 작업이 완료된 후에 마지막으로 저장되는 것이 아니라 문서 작업 과정에서 수많은 쓰기 연산이 발생할 수 있다.
특허문헌 1 : 특허출원 제2014-0107590호
상술한 문제점을 개선하기 위해, 본 발명은 가변 블록 처리가 가능한 고정 블록 단위의 파일 시스템에서 저장 매체에의 쓰기 과정을 최소화하기 위한 고정 블록에 기반을 둔 가변 블록 처리 파일 시스템 및 파일 가변 블록 처리 방법을 제공하는 것을 목적으로 한다.
상술한 목적을 달성하기 위해, 본 발명의 일 실시예에 따른 고정 블록에 기반을 둔 가변 블록 처리 파일 시스템은, 파일 데이터를 저장하기 위한 저장 매체와, 임시로 변경된 블록 데이터를 저장하기 위한 메모리와, 애플리케이션 프로그램에 의한 상기 저장 매체에의 파일 저장이 최초이면 복수의 고정 블록들로 파일 데이터를 저장하는 파일 관리부와, 상기 애플리케이션 프로그램에 의한 파일 데이터의 변경이 검출되면 상기 메모리에 변경 블록 데이터를 저장하는 파일 변경 검출부와, 및 상기 애플리케이션 프로그램에 의해 파일 변경 데이터의 저장이 요청되면, 상기 메모리에 저장된 변경 블록 데이터를 이용하여 상기 저장 매체에 저장된 복수의 고정 블록들 중 변경이 없는 블록에 대해서는 인덱스 정보만 변경하고, 데이터 변경이 있는 블록에 대해서는 가변 블록으로 처리하여 저장하는 파일 변경 처리부를 제공한다.
상기 저장 매체는 파일 관리 영역과 데이터 저장 영역을 포함하고, 상기 파일 관리부는 상기 저장 매체에의 파일 저장이 최초이면 상기 파일 관리 영역에 고정 블록 정보를 저장하고 상기 고정 블록 정보에 할당된 데이터 저장 영역에 파일 데이터를 저장하고, 상기 블록 변경 처리부는 상기 저장 매체에 저장된 복수의 고정 블록들 중 변경이 없는 블록에 대해서는 상기 파일 관리 영역의 인덱스 정보만 변경하고, 상기 데이터 변경이 있는 블록에 대해서는 상기 파일 관리 영역에 가변 블록 정보를 더 저장하고 그리고 상기 데이터 저장 영역에는 해당하는 가변 블록 데이터를 저장할 수 있다.
상기 고정 블록 정보는 각 블록에 대한 상기 데이터 저장 영역의 위치 정보를 포함하며, 상기 가변 블록 정보는 변경 블록의 개수와 변경 블록에 저장되는 파일 데이터의 길이를 포함할 수 있다.
상기 파일 변경 검출부는 애플리케이션 프로그램에 의한 상기 저장 매체에의 파일 저장이 최초이면 상기 저장 매체에 저장될 하나의 파일 데이터를 블록 크기보다 작은 소정 단위의 크기로 구분하여 복수의 해시값들을 추출하고, 상기 복수의 해시값들을 이용한 유사도 비교를 통해 상기 애플리케이션 프로그램의 의해 파일 데이터의 수정이 있는지를 검출할 수 있다.
상기 파일 변경 검출부는 상기 메모리에 상기 변경 블록 데이터에 대해 변경 블록과 가변 길이 블록 정보를 저장하고, 상기 파일 변경 처리부는 상기 애플리케이션 프로그램에 의해 파일 변경 데이터의 저장이 요청되면 파일 변경 데이터의 전체 블록을 상기 메모리에 저장된 변경 블록과 비교하고, 그리고 파일 변경 데이터의 적어도 하나의 블록이 상기 메모리에 저장된 변경 블록과 일치하면 상기 가변 길이 블록에 저장된 정보를 이용하여 가변 블록으로 처리하는 저장할 수 있다.
본 발명의 다른 실시예에 따른, 파일 데이터를 저장하기 위한 저장 매체와, 및 임시로 변경된 블록 데이터를 저장하기 위한 메모리를 포함하는 고정 블록에 기반을 둔 가변 블록 처리 파일 시스템에서의 파일 가변 블록 처리 방법은, 애플리케이션 프로그램에 의한 상기 저장 매체에의 파일 저장이 최초이면 복수의 고정 블록들로 파일 데이터를 저장하는 파일 관리 단계와, 상기 애플리케이션 프로그램에 의한 파일 데이터의 변경이 검출되면 상기 메모리에 변경 블록 데이터를 저장하는 파일 변경 검출 단계와, 및 상기 애플리케이션 프로그램에 의해 파일 변경 데이터의 저장이 요청되면, 상기 메모리에 저장된 변경 블록 데이터를 이용하여 상기 저장 매체에 저장된 복수의 고정 블록들 중 변경이 없는 블록에 대해서는 인덱스 정보만 변경하고, 데이터 변경이 있는 블록에 대해서는 가변 블록으로 처리하여 저장하는 파일 변경 처리 단계를 제공함으로써, 상술한 목적을 달성할 수 있다.
상술한 구성에 의해, 본 발명은 가변 블록 처리가 가능한 고정 블록 단위의 파일 시스템에서 저장 매체에의 쓰기 과정을 최소화함으로써 저장 매체의 가용 기간을 증가시킬 수 있다.
또한, 본 발명은 고정 크기의 블록에다 가변 크기의 파일 데이터의 저장을 가능케 함으로써, 파일 데이터의 변경에 따른 파일 저장을 빠르게 수행하게 할 수 있다.
또한, 본 발명은 저장 매체의 데이터 영역에 대한 기록을 최소화함으로써 반도체 타입의 불휘발성 메모리인 플래시 메모리 등의 수명을 연장할 수 있다.
도 1은 본 발명의 일실시예에 따른 고정 블록에 기반을 둔 가변 블록 처리 파일 시스템의 전체적인 블록도를 도시하는 도면이다.
도 2a 내지 도 2c는 본 발명에 따른 고정 블록에 기반을 둔 가변 처리를 설명하기 위한 도면이다.
도 3은 본 발명에 따른 메타데이터의 구현예를 도시하는 도면이다.
도 4a 및 도 4b는 본 발명에 따른 고정 블록에 기반을 둔 가변 블록 처리 파일 시스템에서의 파일 변경 데이터 처리를 설명하기 위한 도면이다.
도 5는 도 1에 도시된 파일 변경 검출부를 좀 더 상세하게 도시하는 도면이다.
도 6은 본 발명의 또 하나의 실시예에 따른 전체적인 시스템의 동작을 도시하는 도면이다.
도 7은 본 발명의 또 다른 실시예에 따른 고정 블록에 기반을 둔 파일 가변 블록 처리 방법의 흐름도를 도시하는 도면이다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 고정 블록에 기반을 둔 가변 블록 처리 파일 시스템 및 파일 가변 블록 처리 방법의 바람직한 실시예를 설명한다. 참고로, 아래에서 본 발명을 설명함에 있어서, 본 발명의 구성요소를 지칭하는 용어들은 각각의 구성 요소들의 기능을 고려하여 명명된 것이므로, 본 발명의 기술적 구성요소를 한정하는 의미로 이해되어서는 안 될 것이다.
도 1은 본 발명의 일실시예에 따른 고정 블록에 기반을 둔 가변 블록 처리 파일 시스템의 전체적인 블록도를 도시하는 도면이다.
도 1에 도시된 바와 같이, 고정 블록에 기반을 둔 가변 블록 처리 파일 시스템은 저장 매체(110), 파일 관리부(120), 파일 변경 검출부(130), 메모리(140) 및 파일 변경 처리부(150)를 포함한다.
저장 매체(110)에는 파일 데이터를 저장하기 위해 파일 관리 영역(112)과 데이터 저장 영역(114)이 구분되어 있다. 여기서 저장 매체(110)는 영구 저장 매체로, 하드 디스크뿐만 아니라 반도체 메모리인 플래시 메모리 등을 포함한다.
파일 관리 영역(112)에는 고정 길이의 블록 정보와 관련된 고정 블록 정보와 고정 길이의 블록에 가변 길이의 정보를 저장하기 위한 블록 가변 정보가 저장되며, 데이터 저장 영역(114)에는 파일 관리 영역(112)의 고정 블록 정보와 블록 가변 정보에 따라 파일 데이터가 저장된다. 한편, 고정 블록 정보에는 각 블록에 대한 데이터 저장 영역(114)의 위치 정보가 포함되며, 블록 가변 정보에는 변경된 블록의 개수와 변경된 블록에 저장되는 파일 데이터의 바이트수가 포함될 수 있다.
파일 관리부(120)는 저장 매체(110)에 파일을 생성하고 관리하기 위해, 예를 들어 파일 생성 모듈(122)을 포함할 수 있다.
파일 생성 모듈(122)은 저장 매체(110)에 최초로 파일을 저장하는 경우 복수의 고정 블록들로 파일 데이터를 저장한다. 또한, 파일 생성 모듈(122)은 저장 매체(110)에 최초로 파일을 저장하는 경우 파일 관리 영역(112)에 고정 블록 정보를 저장하고 고정 블록 정보에 할당된 데이터 저장 영역(114)에 파일 데이터를 저장할 수 있다.
파일 변경 검출부(130)는 저장 매체(110)에 생성되어 저장되어 있는 파일이 응용 프로그램 등에 의해 변경이 있었는지를 검출하며, 이를 위해 해시값 추출 모듈(132) 및 유사도 비교 모듈(132)을 포함한다.
해시값 추출 모듈(132)은 파일 관리부(120)가 저장 매체(110)에 최초로 파일을 저장하는 경우 저장될 하나의 파일 데이터를 블록 크기보다 작은 소정 단위의 크기로 구분하여 각 소정 단위의 크기마다 해시값을 추출한다.
유사도 비교 모듈(132)은 해시값 추출 모듈(132)에서 추출된 복수의 해시값들과 저장 매체(110)에 저장된 파일 데이터들과 관련된 해시값들을 비교하여 동일한 해시값이 있는지를 확인한다.
메모리(140)는 변경 블록의 정보와 데이터를 저장하기 위한 것으로, 변경 블록 저장 영역(142)을 포함한다. 변경 블록 저장 영역(142)에는 변경 블록의 정보와 가변 길이 블록의 정보가 저장된다.
파일 변경 처리부는(150) 파일 변경으로 인해 변경 블록의 처리와 고정 블록의 인덱스 수정을 처리하기 위한 것으로, 변경 블록 검출 모듈(152), 블록 가변 처리 모듈(154) 및 인덱스 수정 모듈(156)을 포함한다.
변경 블록 검출 모듈(152)은 애플리케이션에 의해 파일 변경 데이터의 저장이 요청되면, 파일 변경 검출부(130)의 동작에 의해 메모리(110)에 저장된 변경 블록과 일치하는 데이터 변경 블록이 있는지를 검출한다. 이를 위해 변경 블록 검출 모듈(152)는 유사도 비교 모듈(132)을 이용할 수 있다.
블록 가변 처리 모듈(154)은 변경 블록 검출 모듈(152)이 메모리(110)에 저장된 변경 블록이 있다고 검출하면, 변경 블록의 데이터의 크기가 고정 블록의 크기와 동일한지를 판정하고 동일하지 않으면 저장시 변경된 블록을 가변 블록으로 처리하여 저장한다. 또한, 블록 가변 처리 모듈(154)은 저장시 파일 관리 영역(112)에 변경된 블록에 대한 블록 가변 정보를 더 저장하고 변경된 블록에 대해서만 해당하는 파일 데이터를 저장할 수 있다. 또한, 블록 가변 처리 모듈(154)은 인덱스 수정 모듈(156)에서 변경 없음 블록들에 대해 인덱스 정보를 변경하고자 하는 경우 변경 없음 블록들의 앞 부분에 존재하는 일부 파일 데이터에 대해서는 블록 가변으로 처리할 수 있다.
인덱스 수정 모듈(156)은 변경 블록 검출 모듈(152)에서 측정된 파일 유사도를 이용하여 파일 데이터가 동일한 변경 없음 블록들에 대해서는 데이터 저장 영역(114)에 해당 변경 없음 블록을 저장하지 않고 파일 관리 영역(112)에다 저장된 변경 없음 블록의 데이터 저장 영역(114)의 위치 정보로 인덱스를 수정하여 저장한다.
이하에서는 본 발명의 실시예들을 보다 상세하게 설명한다.
도 2a 내지 도 2c는 본 발명에 따른 고정 블록에 기반을 둔 가변 처리를 설명하기 위한 도면이다.
도 2a에는 종래의 파일 시스템의 개념도가 도시되어 있다. 파일은 바이트 스트림으로 실제 저장 매체(110)에 저장이 될 때에는 청킹의 단계를 거쳐서 저장이 되게 된다. 이 때, INODE는 파일의 정보와 함께 각 블록의 위치를 기록하는 정보를 가진다. 여기서 각 블록의 고정 크기는 예를 들면 512바이트일 수 있다.
도 2b에는 저장된 파일 데이터를 수정하는 종래의 파일 시스템의 개념도가 도시되어 있다. 도 2b에 도시된 바와 같이, "K"가 삭제되면 청킹 단계에서 3번 블록부터 내부 파일 데이터에 변화기 있기 때문에 저장 매체(110)에 3번 블록부터 변경되어 저장이 되게 된다. 이 경우 파일 시스템에 따라서 기존 블록을 무효화하고 새로운 블록을 할당받아 파일 데이터가 저장될 수도 있고, 기존의 블록을 덮어씌우는 형태로 저장될 수 있다.
도 2c에는 본 발명에 따른 고정 블록에 기반을 둔 가변을 이용하여 파일 데이터를 수정하는 개념도가 도시되어 있다. 도 2c에 도시된 바와 같이, "K"가 삭제되면 청킹 단계에서 3번 블록에 512바이트보다 작은 크기의 파일 데이터 크기를 담게 된다. 그리고 INODE에서는 변경된 내용에 대해서 블록 인덱스를 수정하게 된다. 이와 같이 본 발명에 따라 파일 데이터를 저장하게 되는 경우에는 데이터 블록에서 3번째 블록만 변경이 되고 나머지 이후에 있는 블록에는 변경이 발생하지 않게 된다.
도 3은 본 발명에 따른 메타데이터의 구현예를 도시하는 도면이다.
INODE에는 파일 입출력을 위한 기본 정보가 저장되게 된다. 본 발명에서는 기존의 INODE를 확장하여 고정 블록에 기반을 두어 블록의 가변 처리를 지원할 수 있도록 구현한다. 도 3에 도시된 바와 같이, 본 발명에 따른 메타데이터 정보는 기존의 고정 블록에 대한 정보들(B0, B1, B2 및 B3)뿐만 아니라 고정 블록의 가변 처리와 관련하여 2가지 정보가 추가된다. VB(variable block)에는 몇 개의 블록 가변을 갖고 있는지가 기록된다. VB가 1이면, 파일 데이터에서 블록의 가변 처리에 의해 변경이 발생한 블록이 1개임을 나타낸다. 그리고 VBI(variable block index)는 블록에 대한 가변 처리가 발생한 블록의 인덱스를 가리키는데, 도 3에서는 V1, V2, V3 및 V4로 도시되어 있다.
도 3에 도시된 바와 같이 3번째 블록에서 파일 데이터의 변경으로 16바이트가 삭제되었다고 가정한다. 이 경우 53번에 위치한 블록에는 496바이트만 저장이 되고 나머지 16바이트는 의미가 없는 데이터가 저장된다. 이를 파일 시스템에서 참조하기 위해서는 INODE에 해당 정보가 기술되어야 한다. 고정 블록에 대한 가변 처리가 1개 생성되었기 때문에 VB에 1이 저장된다. 그리고 V1에는 53번 블록이 고정 블록에 대한 가변 처리가 있는 블록임을 알려주고 또한 53번 블록에는 496바이트가 기록되어 있음에 대한 정보를 저장한다.
도 3에서는 고정 블록에 대한 가변 처리를 최대 4개로 제한하였지만, 필요에 따라서 최대 개수를 증가시킬 수 있다. 하지만, 최대 개수 이상의 고정 블록에 대한 가변 처리가 필요한 경우에는 강제로 가비지 컬렉션을 수행하여 고정 블록에 대한 가변 처리를 모두 제거하는 과정을 거칠 수 있다.
도 4a 및 도 4b는 본 발명에 따른 고정 블록에 기반을 둔 가변 블록 처리 파일 시스템에서의 파일 변경 데이터 처리를 설명하기 위한 도면이다.
도 4a에는 종래의 파일 시스템에서의 파일 변경 데이터 처리 방식이 도시되어 있다. 도 4a에 도시된 바와 같이, 새로운 파일이 생성되는 경우 종래의 파일 시스템에서는 데이터 변경이 없는 블록이 4개나 있는데도 불구하고 이를 활용할 수 없다. 왜냐하면, 데이터 변경 없는 블록이 존재하지만, 바이트-시프트 현상으로 블록 단위 별로 공유가 어렵기 때문이다.
도 4b에는 본 발명에 따른 고정 블록에 기반을 둔 가변 처리를 이용하여 파일 변경 데이터를 처리하는 방식이 도시되어 있다. 도 4b에 도시된 바와 같이, 본 발명으로 구현된 고정 블록에 기반을 둔 가변 블록 처리 파일 시스템을 사용하는 경우에는 변경 없음 블록을 기준으로 청킹을 수행하여 4개의 블록에 대해서 변경 없음을 찾아낼 수 있으며, 이 변경 없음의 4개의 블록에 대해서는 새롭게 불휘발성 메모리에 저장하지 않고 기존 파일의 블록으로 인덱스를 수정하는 것으로 불휘발성 메모리에의 저장을 대신할 수 있다.
도 5는 도 1에 도시된 파일 변경 검출부를 좀 더 상세하게 도시하는 도면이다.
도 5에 도시된 바와 같이, 파일 변경 검출부(130)는 해시값 추출 모듈(132) 및 유사도 비교 모듈(132)을 포함하며, 파일 데이터의 유사도 처리를 위해 저장 매체(110)인 HDD(510)와, 새로운 파일 데이터가 생성되어 저장되어 있는 휘발성 메모리와 관련된 파일 생성 메모리(520)와, 및 파일에 대한 해시값이 저장되어 있는 휘발성 메모리와 관련된 해시값 저장 메모리(530)에 연결되어 있다. 여기서 파일 생성 메모리(520)와 해시값 저장 메모리(530)는 별개의 메모리일 수 있지만 하나의 메모리로 이루어질 수 있다.
파일 관리부(120)의 파일 생성 모듈(122)이 파일 생성 메모리(520)에 저장되어 있는 파일을 HDD(510)에 저장하고 하면, 해시값 추출 모듈(132)은 파일 생성 메모리(520)에 저장되어 있는 파일 데이터를 읽어 해시값을 추출한다. 이 경우 해시값 추출 모듈(132)은 파일 데이터를 블록 크기보다 작은 소정 단위의 크기로 구분하여 각 소정 단위의 크기마다 해시값을 추출할 수 있다. 해시값 추출 모듈(132)에서 추출된 해시값들은 해시값 저장 메모리(530)에 저장될 수 있다.
유사도 비교 모듈(132)은 해시값 추출 모듈(132)에서 추출된 복수의 해시값들과 해시값 저장 메모리(530)에 저장된 각 파일 데이터와 관련된 해시값들을 비교하여 동일한 해시값이 있는지를 확인한다. 해시값 저장 메모리(530)에 저장된 각 파일 데이터와 관련된 해시값들은 HDD(510)로 읽어 올 수 있다.
이러한 파일 유사도 처리를 위해 SDHASH(similarity digest hashing) 기법 또는 SSDEEP 기법을 이용할 수 있다.
SDHASH는 라빈 핑거프린트(rabin fingerprint)를 이용한 임의의 청크 크기를 선택하는 대신에 새넌 엔트로피를 이용하여 확률적인 특징점(feature)을 선택하는데, 특징점 선택이 데이터의 특정 부분에 치우치지 않고 전체적으로 고른 선택이 가능하여 신뢰성이 향상된다. 선택된 특징점들은 블룸 필터를 이용하여 통계적 기반의 파일 유사도를 측정한다. 64바이트 크기로 된 특징점들은 주어진 임계값 이상의 인기도 점수가 포함된 특징점을 선택하여 불룸 필터 생성에 사용한다. 또한, 선택된 특징점 중에서 100 이하 990 초과 값을 가지는 특징점은 제외하여 블룸 필터의 긍정 오류율을 낮춘다.
SDHASH에서 블룸 필터는 256바이트 크기로 고정되어 생성된다. 생성된 블룸 필터 1개당 128개의 특징점 값들이 할당된다. 특징점들이 128개를 초과하면 새로운 블룸 필터가 추가되어 특징점 값들이 할당된다. 각 특징점들은 SHA-1 해시 함수를 이용하여 160비트 크기의 해시값으로 계산된다. SDHASH의 비교 과정은 생성된 모든 블룸 필터들을 하나씩 비교하여 전체 블룸 필터 비교 값들의 평균으로 파일 유사도를 측정한다.
SSDEEP는 2개의 해시 방법을 이용하여 파일 유사도 측정을 수행한다. 롤링 해시(rolling hash) 함수는 파일 내용을 한 바이트씩 이동하며 해시값을 생성한다. 생성된 롤링 해시값을 이용하여 파일 내부의 경계점인 트리거 위치를 계산한다. 트리거 위치가 발견되면 파일의 시작 위치부터 트리거 위치까지 하나의 청크로 처리하고 해당 정크는 MD5 해시 함수를 이용하여 정크 해시값을 생성한다. 생성된 청크 해시값은 Base64 인코딩을 사용하여 비트 스트링으로 변환되고 변환된 비트 스트링의 마지막 6비트 값을 추출한 후 각 비트 스트링의 비트 값을 연결하여 파일 다이제스트를 생성한다.
파일 변경 검출부(130)는 상술한 기법으로 처리된 각 파일의 유사도 값을 INODE에 스트링 형태로 유지할 수 있다. 따라서 파일 변경 검출부(130)는 새로운 파일이 유입되거나 생성이 되는 경우에, 해시 스트링의 비교를 통하여 가장 유사한 파일을 찾아낼 수 있다.
도 6은 본 발명의 또 하나의 실시예에 따른 고정 블록에 기반을 둔 가변 블록 처리 파일 시스템의 동작을 도시하는 도면이다.
사용자 애플리케이션 프로그램은 일반적인 문서 편집기와 같은 사용자 애플리케이션 프로그램으로, 예를 들면 한글 워드 프로세서(HWP) 프로그램일 수 있다.
VLFS 라이브러리는 예시적인 가상 파일 시스템으로 기존의 파일 시스템에서 파일 열기, 파일 닫기, 파일 위치 검색 등에 필요한 기본 함수인 open(), close(), lseek() 함수와, 파일의 수정 여부를 판단하기 위한 블록 변경 체크 함수vlfs_check(), 가변 길이 블록을 위한 읽기 함수 vlfs_read(), 가변 길이 블록을 위한 쓰기 함수 vlfs_write()로 구성된다.
위의 open(), close(), lseek() 함수들은 도 1에 도시된 파일 관리부(120)와 관련되며, 위의 vlfs_check() 함수는 파일 변경 검출부(130)와 관련되며, 그리고 vlfs_read(), vlfs_write() 함수들은 파일 변경 처리부(150)와 관련된다.
블록 변경 체크 함수 vlfs_check()는 사용자 애플리케이션 프로그램을 이용해서 수정 작업의 발생 여부를 확인할 때 사용하며, vlfs_write() 함수 호출 전에 변경 블록이 있는지를 체크하고, 변경 블록이 비어있는 상태면 수정이 없었다고 판단하여 vlfs_write() 함수 호출 없이 종료되나, 변경 블록이 비어있지 않으면 수정 작업이 있었다고 판단하여 디스크에 저장을 위해 vlfs_write() 함수를 호출한다. 또한, 블록 변경 체크 함수 vlfs_check()는 디스크에 저장 시 해당 블록 데이터가 수정된 데이터인지의 여부를 비교 판단을 위해서 사용된다.
파일 시스템과 관련된 메모리(140)에는 변경 블록과 가변 길이 블록의 정보들이 저장되어 있다. 변경 블록에는 사용자 애플리케이션 프로그램을 이용해서 수정 작업이 발생했을 때 임시로 데이터가 저장되며, 수정된 데이터가 주어진 블록의 크기로 분할되고 블록 위치 정보가 할당된다. 가변 길이 블록에는 저장된 블록들 중에서 가변 영역이 포함된 가변 길이 블록 정보가 저장된다.
사용자 애플리케이션 프로그램에서 VLFS 라이브러리를 이용해 파일에 대한 새로운 데이터 추가와 같은 수정 작업이 필요할 때는 해당 애플리케이션을 통해 추가된 데이터의 위치와 추가된 데이터의 크기를 알고 있어야 한다. 이를 위한 추가되는 데이터 정보는 기본적으로 변경 블록에 저장된다. 또한, 데이터의 추가 여부를 확인하기 위해서 “변경 체크 함수”를 이용한다.
예를 들어, 도 1에 도시된 저장 매체(110)인 디스크에 저장되어 있는 파일 “A”를 VLFS 라이브러리의 open() 함수를 사용해서 연다. 사용자는 문서 편집기와 같은 다양한 형태의 사용자 애플리케이션 프로그램을 통해 해당 내용을 확인하고 필요에 따라 추가적인 내용을 삽입한다. 새로운 데이터의 삽입이 발생하면 추가되는 위치를 나타내는 오프셋과 추가되는 데이터의 크기를 변경 블록에 저장한다. 이후 변경 체크 함수는 파일 “A”의 데이터 내용을 변경 블록과 비교하여 추가된 데이터인지의 여부를 판단한다. 파일 “A”의 각 블록 데이터들은 변경 블록에 저장된 블록 데이터와 비교되고 동일한 블록 데이터가 아니면 해당 데이터는 이미 디스크에 저장되어 있는 데이터로 판단을 하고 다음 블록들을 비교한다. 파일 “A”에서 수정된 블록 데이터일 경우는 변경 블록에 저장되어 있는 블록 데이터들 중에서 하나의 블록 데이터와 일치하게 되고 해당 데이터를 디스크에 저장하기 위해 vlfs_write() 함수를 호출한다. 변경 블록에 저장된 블록 데이터의 위치 정보와 데이터 크기 등의 정보를 참고하여 해당 데이터를 디스크 블록에 저장하고 종료한다.
이하에서는 수정된 데이터의 파일 변경 검출의 과정을 좀 더 상세히 설명한다.
파일 변경 검출부(130)는 파일에 수정될 위치와 데이터의 크기가 결정되면 해당 데이터의 위치 정보와 데이터 크기를 변경 블록에 저장한다. 수정되는 데이터의 크기에 따라 추가된 데이터의 크기가 주어진 데이터 블록의 크기와 같으면 단순히 블록 추가와 이에 따른 기존 블록들의 위치 변경 작업을 수행한다. 추가되는 데이터의 크기가 주어진 블록의 크기보다 작으면 데이터가 추가된 후 블록의 나머지 영역을 가변 영역으로 처리한다. 가변 영역이 존재하는 블록은 가변 길이 블록이라 하고 해당 블록의 정보를 저장하기 위해 가변 길이 블록을 사용한다. 또한, 가변 길이 블록에 저장된 블록 정보는 변경 블록에도 저장된다.
수정된 데이터의 크기가 주어진 데이터 블록의 크기보다 클 경우 추가된 데이터는 주어진 블록의 크기를 이용해서 여러 부분으로 나누어진다. 주어진 블록의 크기가 4KB이고 추가된 데이터의 크기가 10KB라면 해당 데이터는 4KB, 4KB, 2KB의 크기를 가지는 3개의 블록으로 나누어지고 3개의 블록 모두 변경 블록에 저장된다. 이때 맨 마지막 3번째 블록은 주어진 블록의 크기보다 작은 2KB만 사용되기 때문에 나머지 영역을 가변 영역으로 처리하고 가변 길이 블록에 해당 정보를 추가로 저장한다.
이하에서는 추가된 새로운 데이터를 저장 매체에 저장하는 과정을 좀 더 상세하게 설명한다.
vlfs_wirte 함수가 호출되면(S902), 사용자 애플리케이션 프로그램은 데이터의 전체 블록 내용을 처음부터 순서대로 vlfs_check 함수에 전달한다.
변경 블록 검출 모듈(152)은 전달된 각 데이터 블록의 내용을 변경 블록과 비교한다. 이 경우 유사도 비교 모듈(134)을 이용하여 해시값 추출 모듈(132)에서 추출된 해시값들을 비교하는 것이 바람직하다.
변경 블록 검출 모듈(152)은 동일한 블록이 발견되지 않으면 해당 데이터 블록은 디스크 블록에 이미 저장되어 있는 데이터로 판정한다. 이 경우 해당 데이터 블록은 디스크에 저장되어 있기 때문에 해당 데이터를 디스크에 저장하기 위한 쓰기 연산이 불필요하다. 하지만, 해당 데이터 블록이 변경 블록에 있는 데이터 블록과 동일한 데이터 블록이면 해당 데이터 블록은 새롭게 추가된 데이터 블록에 해당하고, vlfs_write 함수를 통해 디스크에 저장된다.
변경 블록 검출 모듈(152)에 의해 변경 블록이 검출되면, 블록 가변 처리 모듈(154)은 추가되는 새로운 데이터 블록의 위치 비교를 비교한다. 추가되는 데이터 블록의 위치가 각 블록들의 경계 부분이면, 블록 가변 처리 모듈은 기존의 블록 주소 값들을 추가되는 데이터에서 사용되는 블록의 개수만큼 뒤로 이동시키고 새로운 디스크 블록에 데이터를 할당한 후에 블록들 사이의 연결 주소 값 설정을 통해 중간 부분에 배치한다. 하지만, 추가되는 데이터의 위치가 블록의 경계가 아니라 블록의 중간이라면 새로운 데이터가 추가되는 위치의 블록은 분할되며 추가되는 데이터의 크기에 따라 가변 길이 블록으로 저장된다.
도 7은 본 발명의 또 다른 실시예에 따른 고정 블록에 기반을 둔 파일 가변 블록 처리 방법의 흐름도를 도시하는 도면이다.
파일 생성 모듈(122)은 사용자 애플리케이션 프로그램에서 새로운 파일을 생성한다(S702). 사용자 애플리케이션 프로그램이 파일 생성 모듈(122)에 의해 생성된 새로운 파일을 저장 매체(110)에 저장하도록 요청하면, 파일 변경 검출부(130)는 해당 파일이 저장 매체(110)에 최초로 저장되는 파일인지를 확인한다(S704).
파일을 저장 매체(110)에 최초로 저장하는 경우이면, 해시값 추출 모듈(132)은 저장하고자 하는 하나의 파일 데이터를 블록 크기보다 작은 소정 단위의 크기로 구분하여 복수의 해시값들을 추출하고(S706), 그리고 파일 관리부(120)는 해시값들이 추출된 고정 블록들을 저장 매체(110)에 저장한다(S708).
파일 변경 검출부(130)는 사용자 애플리케이션 프로그램에 의해 상기 파일 데이터의 변경이 있는지를 검출한다. 이를 위해, 파일 변경 검출부(130)는 해시값 추출 모듈(132)에서 얻은 해시 값들을 이용한 유사도 비교를 통해 파일 생성 모듈(120)에 의해 생성되어 저장 매체(110)에 저장된 파일 데이터에 수정이 있는지를 검출한다(S710).
파일 데이터의 수정이 검출되면, 파일 변경 검출부(130)는 메모리(140)의 변경 블록 저장 영역(142)에 변경 블록과 가변 길이 블록의 정보들을 저장한다(S712).
이후, 사용자 애플리케이션 프로그램에서 변경된 파일 데이터의 저장을 요청하면, 변경 블록 검출 모듈(152)은 유사도 비교 모듈(132)을 이용하여 저장하고자 하는 파일 데이터에 변경 블록이 있는지를 판정한다(S714).
변경 블록이 없으면, 인덱스 수정 모듈(156)은 파일 관리 영역에 인덱스 정보만 변경한다(S716). 블록 가변 처리 모듈(154)은 파일 관리 영역(112)에 변경된 블록에 대한 블록 가변 정보를 더 저장하고(S614) 변경된 블록에 대해서만 해당하는 파일 데이터를 저장한다(S616).
본 발명의 보호 범위는 이하 특허청구범위에 의하여 해석되어야 마땅할 것이다. 또한, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것인 바, 본 발명과 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
110: 저장 매체 112: 파일 관리 영역
114: 데이터 저장 영역 120: 파일 관리부
122: 파일 생성 모듈 130: 파일 변경 검출부
132: 해시값 추출 모듈 134: 유사도 비교 모듈
140: 메모리 142: 변경 블록 저장 영역
150: 파일 변경 처리부 152: 변경 블록 검출 모듈
164: 블록 가변 처리 모듈 156: 인덱스 수정 모듈
510: HDD 520: 파일 생성 메모리
530: 해시값 저장 메모리

Claims (8)

  1. 파일 데이터를 저장하기 위한 저장 매체와,
    임시로 변경된 블록 데이터를 저장하기 위한 메모리와,
    애플리케이션 프로그램에 의한 상기 저장 매체에의 파일 저장이 최초이면 복수의 고정 블록들로 파일 데이터를 저장하는 파일 관리부와,
    상기 애플리케이션 프로그램에 의한 파일 데이터의 변경이 검출되면 상기 메모리에 변경 블록 데이터를 저장하는 파일 변경 검출부와, 및
    상기 애플리케이션 프로그램에 의해 파일 변경 데이터의 저장이 요청되면, 상기 메모리에 저장된 변경 블록 데이터를 이용하여 상기 저장 매체에 저장된 복수의 고정 블록들 중 변경이 없는 블록에 대해서는 인덱스 정보만 변경하고, 데이터 변경이 있는 블록에 대해서는 가변 블록으로 처리하여 저장하는 파일 변경 처리부를 포함하는 것을 특징으로 하는 고정 블록에 기반을 둔 가변 블록 처리 파일 시스템.
  2. 제1항에 있어서,
    상기 저장 매체는 파일 관리 영역과 데이터 저장 영역을 포함하고,
    상기 파일 관리부는 상기 저장 매체에의 파일 저장이 최초이면 상기 파일 관리 영역에 고정 블록 정보를 저장하고 상기 고정 블록 정보에 할당된 데이터 저장 영역에 파일 데이터를 저장하고,
    상기 파일 변경 처리부는 상기 저장 매체에 저장된 복수의 고정 블록들 중 변경이 없는 블록에 대해서는 상기 파일 관리 영역의 인덱스 정보만 변경하고, 상기 데이터 변경이 있는 블록에 대해서는 상기 파일 관리 영역에 가변 블록 정보를 더 저장하고 그리고 상기 데이터 저장 영역에는 해당하는 가변 블록 데이터를 저장하는 것을 특징으로 하는 고정 블록에 기반을 둔 가변 블록 처리 파일 시스템.
  3. 제2항에 있어서,
    상기 고정 블록 정보는 각 블록에 대한 상기 데이터 저장 영역의 위치 정보를 포함하며,
    상기 가변 블록 정보는 변경 블록의 개수와 변경 블록에 저장되는 파일 데이터의 길이를 포함하는 것을 특징으로 하는 고정 블록에 기반을 둔 가변 블록 처리 파일 시스템.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 파일 변경 검출부는 애플리케이션 프로그램에 의한 상기 저장 매체에의 파일 저장이 최초이면 상기 저장 매체에 저장될 하나의 파일 데이터를 블록 크기보다 작은 소정 단위의 크기로 구분하여 복수의 해시값들을 추출하고, 상기 복수의 해시값들을 이용한 유사도 비교를 통해 상기 애플리케이션 프로그램의 의해 파일 데이터의 수정이 있는지를 검출하는 것을 특징으로 하는 고정 블록에 기반을 둔 가변 블록 처리 파일 시스템.
  5. 제4항에 있어서,
    상기 파일 변경 검출부는 상기 메모리에 상기 변경 블록 데이터에 대해 변경 블록과 가변 길이 블록 정보를 저장하고,
    상기 파일 변경 처리부는 상기 애플리케이션 프로그램에 의해 파일 변경 데이터의 저장이 요청되면 파일 변경 데이터의 전체 블록을 상기 메모리에 저장된 변경 블록과 비교하고, 그리고 파일 변경 데이터의 적어도 하나의 블록이 상기 메모리에 저장된 변경 블록과 일치하면 상기 가변 길이 블록에 저장된 정보를 이용하여 가변 블록으로 처리하는 저장하는 것을 특징으로 하는 고정 블록에 기반을 둔 가변 블록 처리 파일 시스템.
  6. 파일 데이터를 저장하기 위한 저장 매체와, 및 임시로 변경된 블록 데이터를 저장하기 위한 메모리를 포함하는 고정 블록에 기반을 둔 가변 블록 처리 파일 시스템에서의 파일 가변 블록 처리 방법으로서,
    애플리케이션 프로그램에 의한 상기 저장 매체에의 파일 저장이 최초이면 복수의 고정 블록들로 파일 데이터를 저장하는 파일 관리 단계와,
    상기 애플리케이션 프로그램에 의한 파일 데이터의 변경이 검출되면 상기 메모리에 변경 블록 데이터를 저장하는 파일 변경 검출 단계와, 및
    상기 애플리케이션 프로그램에 의해 파일 변경 데이터의 저장이 요청되면, 상기 메모리에 저장된 변경 블록 데이터를 이용하여 상기 저장 매체에 저장된 복수의 고정 블록들 중 변경이 없는 블록에 대해서는 인덱스 정보만 변경하고, 데이터 변경이 있는 블록에 대해서는 가변 블록으로 처리하여 저장하는 파일 변경 처리 단계를 포함하는 것을 특징으로 하는 고정 블록에 기반을 둔 파일 가변 블록 처리 방법.
  7. 제6항에 있어서,
    상기 저장 매체는 파일 관리 영역과 데이터 저장 영역을 포함하고,
    상기 파일 관리 단계는 상기 저장 매체에의 파일 저장이 최초이면 상기 파일 관리 영역에 고정 블록 정보를 저장하고 상기 고정 블록 정보에 할당된 데이터 저장 영역에 파일 데이터를 저장하고,
    상기 파일 변경 처리 단계는 상기 저장 매체에 저장된 복수의 고정 블록들 중 변경이 없는 블록에 대해서는 상기 파일 관리 영역의 인덱스 정보만 변경하고, 상기 데이터 변경이 있는 블록에 대해서는 상기 파일 관리 영역에 가변 블록 정보를 더 저장하고 그리고 상기 데이터 저장 영역에는 해당하는 가변 블록 데이터를 저장하는 것을 특징으로 하는 고정 블록에 기반을 둔 파일 가변 블록 처리 방법.
  8. 제6항 또는 제7항에 있어서,
    상기 파일 변경 검출 단계는 애플리케이션 프로그램에 의한 상기 저장 매체에의 파일 저장이 최초이면 상기 저장 매체에 저장될 하나의 파일 데이터를 블록 크기보다 작은 소정 단위의 크기로 구분하여 복수의 해시값들을 추출하고, 상기 복수의 해시값들을 이용한 유사도 비교를 통해 상기 애플리케이션 프로그램의 의해 파일 데이터의 수정이 있는지를 검출하는 것을 특징으로 하는 고정 블록에 기반을 둔 파일 가변 블록 처리 방법.
KR1020150107330A 2015-07-29 2015-07-29 고정 블록에 기반을 둔 가변 블록 처리 파일 시스템 및 파일 가변 블록 처리 방법 KR101729624B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150107330A KR101729624B1 (ko) 2015-07-29 2015-07-29 고정 블록에 기반을 둔 가변 블록 처리 파일 시스템 및 파일 가변 블록 처리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150107330A KR101729624B1 (ko) 2015-07-29 2015-07-29 고정 블록에 기반을 둔 가변 블록 처리 파일 시스템 및 파일 가변 블록 처리 방법

Publications (2)

Publication Number Publication Date
KR20170014276A KR20170014276A (ko) 2017-02-08
KR101729624B1 true KR101729624B1 (ko) 2017-05-02

Family

ID=58155657

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150107330A KR101729624B1 (ko) 2015-07-29 2015-07-29 고정 블록에 기반을 둔 가변 블록 처리 파일 시스템 및 파일 가변 블록 처리 방법

Country Status (1)

Country Link
KR (1) KR101729624B1 (ko)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104010861B (zh) 2011-12-22 2016-10-05 斯堪尼亚商用车有限公司 用于确定至少一个参考值的方法和模块

Also Published As

Publication number Publication date
KR20170014276A (ko) 2017-02-08

Similar Documents

Publication Publication Date Title
US8959089B2 (en) Data processing apparatus and method of processing data
CN107787489B (zh) 包括层级的文件存储系统
US20190324954A1 (en) Two-stage front end for extent map database
US9141633B1 (en) Special markers to optimize access control list (ACL) data for deduplication
US9507539B2 (en) Performing authorization control in a cloud storage system
US8639669B1 (en) Method and apparatus for determining optimal chunk sizes of a deduplicated storage system
US8914338B1 (en) Out-of-core similarity matching
US9367448B1 (en) Method and system for determining data integrity for garbage collection of data storage systems
EP2363815B1 (en) System for permanent file deletion
US9639275B2 (en) Managing data within a storage device based on file system metadata
US10860232B2 (en) Dynamic adjustment of fingerprints added to a fingerprint index
US9183218B1 (en) Method and system to improve deduplication of structured datasets using hybrid chunking and block header removal
CN106980680B (zh) 数据存储方法及存储设备
US11609849B2 (en) Deduplication system threshold based on a type of storage device
US20190108238A1 (en) Block storage device with optional deduplication
KR101729624B1 (ko) 고정 블록에 기반을 둔 가변 블록 처리 파일 시스템 및 파일 가변 블록 처리 방법
US11507273B2 (en) Data reduction in block-based storage systems using content-based block alignment
KR101553028B1 (ko) 고정 블록에 기반을 둔 가변 처리 파일 시스템 및 파일 가변 처리 방법
US20240037034A1 (en) Data intake buffers for deduplication storage system
US20240143213A1 (en) Fingerprint tracking structure for storage system
US11119681B2 (en) Opportunistic compression
US10318159B1 (en) Method and system for physical locality repair in a storage system
Liu et al. I/O Causality Based In-line Data Deduplication for Non-Volatile Memory Enabled Storage Systems
WO2023241771A1 (en) Deduplication mechanism on sequential storage media
CN118159936A (zh) 顺序存储介质上的并行重复数据删除机制

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