KR101667756B1 - 아카이브 파일 중복 제거 장치 및 방법 - Google Patents

아카이브 파일 중복 제거 장치 및 방법 Download PDF

Info

Publication number
KR101667756B1
KR101667756B1 KR1020150154584A KR20150154584A KR101667756B1 KR 101667756 B1 KR101667756 B1 KR 101667756B1 KR 1020150154584 A KR1020150154584 A KR 1020150154584A KR 20150154584 A KR20150154584 A KR 20150154584A KR 101667756 B1 KR101667756 B1 KR 101667756B1
Authority
KR
South Korea
Prior art keywords
file
data
duplication
hash value
chunk
Prior art date
Application number
KR1020150154584A
Other languages
English (en)
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 KR1020150154584A priority Critical patent/KR101667756B1/ko
Application granted granted Critical
Publication of KR101667756B1 publication Critical patent/KR101667756B1/ko

Links

Images

Classifications

    • G06F17/30156
    • G06F17/30109
    • G06F17/30153

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명에 따른 아카이브 파일 중복 제거 장치는, 하나의 하위 파일을 판독하는 파일 판독부와, 파일 판독부에서 판독한 하위 파일 데이터 전체에 대해 암호화 함수를 이용하여 파일 해시 값을 생성하는 파일 해시 값 생성부와, 파일 해시 값 생성부에서 생성된 파일 해시 값과 이미 처리된 하위 파일의 파일 해시 값을 비교하여 하위 파일의 중복 여부를 검출하는 중복 파일 검출부와, 중복 파일 검출부에서 하위 파일 중복을 검출하면 이미 처리된 하위 파일과의 연결을 위해 하위 파일 헤더의 데이터 위치 정보에 중복이 검출된 하위 파일의 데이터 위치를 저장하는 파일 헤더 관리부와, 및 중복 파일 검출부에서 하위 파일 중복을 검출하지 않으면 파일 판독부에서 판독한 하위 파일 데이터를 하위 파일 데이터 영역에 저장하는 파일 데이터 관리부를 포함함으로써, 파일 해시를 통한 하위 파일의 중복 여부를 판단할 수 있어 궁극적으로 스토리지의 효율성을 향상시킬 수 있다.

Description

아카이브 파일 중복 제거 장치 및 방법{Archive file de-duplication apparatus and method}
본 발명은 아카이브 파일 중복 제거 장치 및 방법에 관한 것으로, 특히 대규모 스토리지의 효율성을 고려한 아카이브 파일 중복 제거 장치 및 방법에 관한 것이다.
TAR(Tape Archive) 아카이브 파일은 '.tar'라는 확장자가 붙으며, 이 이름은 파일들이 주로 자기테이프에 백업되고, 종종 검색되기도 하던 때로부터 유래하였다. 현재에는 여러 개의 파일을 하나의 파일을 묶어서 파일을 저장하거나 전송하기 위해서 사용되고 있다. 기본적으로 TAR 아카이브 파일은 여러 개의 파일을 묶을 때 전혀 압축을 하지 않는 상태에서 파일을 묶는 역할만을 한다, 유닉스계열 운영체제에서는 TAR 아카이브 파일을 압축하는 명령어로 z를 쓰는데 이것은 gzip 유틸리티를 이용해서 압축을 진행한다.
한편, TAR 아카이브 파일은 동일한 내용의 하위 파일이 2개 이상 중복되어 존재해도 중복된 히위 파일을 제거하지 않고 단지 하나의 파일로 묶어서 TAR 아카이브 파일을 생성하기 때문에 생성된 TAR 아카이브 파일의 크기는 커질 수밖에 없다. 비록 하드웨어 기술의 발달로 GB당 저장 디스크의 가격이 하락해도, 백업 데이터의 보존을 위한 전체적인 시스템 유지비용은 증가한다.
상술한 문제점을 해결하기 위해, 본 발명은 대규모 스토리지의 효율성을 위해 파일 해시를 통한 하위 파일의 중복 여부를 판단하고 중복 데이터를 제거하는 아카이브 파일 중복 제거 장치 및 방법을 제공하는 것을 목적으로 한다.
또한, 본 발명은 저장 공간의 낭비를 줄이기 위해 유사도 비교를 통한 중복되는 청크를 제거하는 아카이브 파일 중복 제거 장치 및 방법을 제공하는 것을 목적으로 한다.
상술한 목적을 달성하기 위해, 본 발명의 일실시예에 따른 아카이브 파일 중복 제거 장치는, 하나의 하위 파일을 판독하는 파일 판독부와, 상기 파일 판독부에서 판독한 하위 파일 데이터 전체에 대해 암호화 함수를 이용하여 파일 해시 값을 생성하는 파일 해시 값 생성부와, 상기 파일 해시 값 생성부에서 생성된 파일 해시 값과 이미 처리된 하위 파일의 파일 해시 값을 비교하여 하위 파일의 중복 여부를 검출하는 중복 파일 검출부와, 상기 중복 파일 검출부에서 하위 파일 중복을 검출하면 이미 처리된 하위 파일과의 연결을 위해 하위 파일 헤더의 데이터 위치 정보에 중복이 검출된 하위 파일의 데이터 위치를 저장하는 파일 헤더 관리부와, 및 상기 중복 파일 검출부에서 하위 파일 중복을 검출하지 않으면 상기 파일 판독부에서 판독한 하위 파일 데이터를 하위 파일 데이터 영역에 저장하는 파일 데이터 관리부를 제공할 수 있다.
추가 실시예에 따르면, 상기 파일 헤더는 해당 하위 파일 데이터 영역에 저장되는 데이터 위치를 저장하기 위한 하위 파일 데이터 위치 정보와, 중복이 검출된 하위 파일의 데이터 위치를 저장하기 위한 중복 데이터 인덱스 위치 정보를 포함할 수 있고, 상기 파일 헤더 관리부는 상기 중복 파일 검출부에서 하위 파일 중복을 검출하지 않으면 하위 파일 데이터 위치 정보에 해당 하위 파일 데이터 위치를 저장하고, 상기 중복 파일 검출부에서 하위 파일 중복을 검출하면 중복 데이터 인덱스 위치 정보에 중복이 검출된 하위 파일의 데이터 위치를 저장할 수 있다.
추가 실시예에 따르면, 상기 아카이브 파일 중복 제거 장치는, 하위 파일 데이터에 대해 가변 길이 방식으로 청크를 분류하고, 각 청크에 대해 암호화 함수를 적용하여 청크 해시 값을 생성하는 청크 해시 값 생성부와, 및 상기 청크 해시 값 생성부에서 생성된 청크 해시 값과 이미 처리된 하위 파일의 청크 해시 값을 비교하여 해당 청크의 중복 여부를 검출하는 중복 청크 검출부를 더 포함할 수 있고, 상기 파일 헤더 관리부는 상기 중복 청크 검출부에서 해당 청크의 중복을 검출하면 링크 연결을 위해 하위 파일 헤더의 데이터 위치 정보에 중복이 검출된 청크의 데이터 위치를 저장할 수 있다.
추가 실시예에 따르면, 상기 아카이브 파일 중복 제거 장치는, 상기 청크 해시 값 생성부에서 생성된 청크 해시 값을 통해 해당 하위 파일의 다이제스트를 계산하고, 파일 다이제스트 비교를 통해 하위 파일 간의 유사도를 측정하는 파일 유사도 측정부를 더 포함할 수 있고, 상기 중복 청크 검출부는 상기 파일 유사도 측정부에서 측정된 유사도 값이 소정의 임계값 이상인 경우에만 수행할 수 있다.
추가 실시예에 따르면, 상기 파일 헤더 관리부는 상기 중복 파일 검출부에서 하위 파일 중복을 검출하면 해당 하위 파일에 연결된 링크 수를 카운트하여 파일 헤더에 저장할 수 있다.
추가 실시예에 따르면, 상기 아카이브 파일 중복 제거 장치는, 아카이브 파일로부터 하위 파일을 제거하는 경우 파일 헤더로부터 해당 하위 파일에 대한 링크 정보를 검출하면 해당 하위 파일 데이터를 삭제하지 않는 하위 파일 제거부를 더 포함할 수 있다.
본 발명의 다른 실시예에 따른 아카이브 파일 중복 제거 방법은, 하나의 하위 파일을 판독하는 단계와, 상기 하위 파일을 판독하는 단계에서 판독한 하위 파일 데이터 전체에 대해 암호화 함수를 이용하여 파일 해시 값을 생성하는 단계와, 상기 파일 해시 값을 생성하는 단계에서 생성된 파일 해시 값과 이미 처리된 하위 파일의 파일 해시 값을 비교하여 하위 파일의 중복 여부를 검출하는 단계와, 상기 중복 여부를 검출하는 단계에서 하위 파일 중복을 검출하면 이미 처리된 하위 파일과의 연결을 위해 하위 파일 헤더의 데이터 위치 정보에 중복이 검출된 하위 파일의 데이터 위치를 저장하는 단계와, 및 상기 중복 여부를 검출하는 단계에서 하위 파일 중복을 검출하지 않으면 상기 하위 파일을 판독하는 단계에서 판독한 하위 파일 데이터를 하위 파일 데이터 영역에 저장하는 단계를 제공함으로써, 상술한 목적을 달성할 수 있다.
상술한 구성에 의해, 본 발명은 파일 해시를 통한 하위 파일의 중복 여부를 판단함으로써, 전체적인 파일의 크기를 줄임으로 스토리지의 효율성을 향상시킬 수 있다.
또한, 본 발명은 유사도 비교를 통한 중복 청크를 제거함으로써, 저장 공간의 낭비를 줄일 수 있을 뿐만 아니라 네트워크를 통한 파일 전송시에도 네트워크의 부담을 줄일 수 있다.
또한, 본 발명은 아카이브 파일로부터 하위 파일을 제거하고자 하는 경우에, 존재하는 하위 파일들 사이의 중복 여부의 링크 회수를 참고함으로써 잘못된 파일 데이터의 삭제를 방지할 수 있다.
도 1은 본 발명의 일 실시예에 따른 아카이브 파일 중복 제거 장치의 블록도를 도시하는 도면이다.
도 2는 본 발명의 일 실시예에 사용되는 각 하위 파일의 헤더 구성을 도시하는 도면이다.
도 3은 본 발명의 또 하나의 실시예에 따른 아카이브 파일 중복 제거 장치의 블록도를 도시하는 도면이다.
도 4는 본 발명의 또 하나의 실시예에 사용되는 각 하위 파일의 헤더 구성을 도시하는 도면이다.
도 5는 본 발명의 일 실시예에 따른 아카이브 파일 중복 제거 방법의 흐름도를 도시하는 도면이다.
도 6(a) 내지 도 6(e)은 본 발명의 일실시예에 따른 데이터 중복이 제거된 아카이브 파일의 생성을 설명하는 도면들이다.
도 7은 본 발명의 다른 실시예에 따른 아카이브 파일로부터 하위 파일을 삭제하는 흐름도를 도시하는 도면이다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 아카이브 파일 중복 제거 장치 및 방법의 바람직한 실시예를 설명한다. 참고로, 아래에서 본 발명을 설명함에 있어서, 본 발명의 구성요소를 지칭하는 용어들은 각각의 구성 요소들의 기능을 고려하여 명명된 것이므로, 본 발명의 기술적 구성요소를 한정하는 의미로 이해되어서는 안 될 것이다.
도 1은 본 발명의 일 실시예에 따른 아카이브 파일 중복 제거 장치의 블록도를 도시하는 도면이고, 도 2는 본 발명의 일 실시예에 사용되는 각 하위 파일의 헤더 구성을 도시하는 도면이다.
도 1에 도시된 바와 같이, 아카이브 파일 중복 제거 장치는 하위 파일 저장부(110), 파일 판독부(120), 해시 값 생성부(130), 중복 파일 검출부(140), 파일 헤더 관리부(150), 파일 데이터 관리부(160), 및 아카이브 파일 저장부(170)를 포함한다.
아카이브 파일의 하위 파일은 파일의 정보를 저장하기 위한 하위 파일 헤더 영역(172)과 하위 데이터 영역(174)을 포함한다. 그리고 하위 파일 헤더는 해당 하위 파일 데이터 영역에 저장되는 데이터 위치를 저장하기 위한 하위 파일 데이터 위치 정보와, 중복이 검출된 하위 파일의 데이터 위치를 저장하기 위한 중복 데이터 인덱스 위치 정보를 포함할 수 있다.
본 발명의 실시예에 따른 하위 파일 헤더의 구성이 도 2에 좀 더 상세하게 도시되어 있다. 하위 파일 헤더(210)에는 "하위 파일명 정보(220)", "하위 파일 기본 정보(230)", "하위 파일 데이터 위치 정보(240)", "전체 파일 해시 값 정보(250)", "중복 데이터 인덱스 위치 정보(260)", "다음 하위 파일 헤더 위치 정보(270)"가 구비될 수 있다. "하위 파일 기본 정보(230)"에는 해당 하위 파일이 가지고 있는 기본적인 정보들이 저장되어 있으며, 추후 개별적인 형태의 파일로 사용될 때 사용된다. "전체 파일 해시 값 정보(250)"에 저장된 전체 파일 해시 값(wfc)은 파일의 중복 여부를 판단할 때에 사용되며, "중복 데이터 인덱스 위치 정보(260)"의 중복 데이터 인덱스 위치는 파일 단위의 중복이 있을 때에 해당 원본 파일의 위치를 가리킨다. 그리고 "다음 하위 파일 헤더 위치 정보(270)"에는 순차적으로 추가되는 다음 하위 파일들의 헤더 위치를 연결하기 위한 정보가 저장된다.
하위 파일 저장부(110)에는 아카이브 파일로 묶일 하위 파일들, 예를 들어 하위 파일 1(112), 하위 파일 2(114), 하위 파일 3(116)이 저장되어 있을 수 있다.
파일 판독부(120)는 하위 파일들 중 어느 하나, 예를 들어 하위 파일 1(112)을 판독한다. 파일 판독부(120)는 하위 파일들의 묶음을 통한 아카이브 파일을 생성하기 위해 먼저 하위 파일 1(112)의 헤더 정보를 판독하여 하위 파일의 이름, 크기, 형태 정보를 추출하며, 이어서 크기만큼 하위 파일 1(112)의 파일 데이터를 판독한다.
해시 값 생성부(130)는 파일 판독부(120)에서 판독한 파일 데이터 전체에 대해 SHA-1 암호화 함수를 이용하여 해당 하위 파일에 대한 해시 값을 생성한다.
중복 파일 검출부(140)는 해시 값 생성부(130)에서 생성된 해시 값과 이미 처리된 하위 파일의 해시 값을 비교하여 하위 파일의 중복 여부를 검출한다. 한편, 아카이브 파일 생성 과정에서 첫 번째로 선택된 하위 파일은 선행적으로 처리된 하위 파일이 없기 때문에 중복 파일 검출부(140)에서의 하위 파일의 중복 검출이 생략될 수 있다. 이후 두 번째로 선택되는 하위 파일부터 앞에서 언급한 정보들의 추출과 해시 값을 생성하는 과정을 반복하면서, 중복 파일 검출부(140)는 우선적으로 선택되어 처리된 이전의 하위 파일들의 해시 값과 비교하여 동일한 내용의 파일인지를 검출한다.
파일 헤더 관리부(150)는 중복 파일 검출부(140)에서 하위 파일 중복을 검출하지 않으면 하위 파일 데이터 위치 정보(240)에 해당 하위 파일 데이터 위치를 저장하고, 중복 파일 검출부(140)에서 하위 파일 중복을 검출하면 중복 데이터 인덱스 위치 정보(260)에 중복이 검출된 하위 파일의 데이터 위치를 저장한다.
파일 데이터 관리부(160)는 중복 파일 검출부(140)에서 하위 파일 중복을 검출하지 않으면 하위 파일의 데이터 위치에 하위 파일 데이터를 저장하고, 파일 헤더 관리부(150)에 의해 중복이 검출된 하위 파일의 데이터 위치가 저장되면 파일 판독부(120)에서 판독한 하위 파일 데이터를 하위 파일 데이터 영역에 저장하지 않는다.
아카이브 파일 저장부(170)에는 위의 구성들에 의해 생성된 아카이브 파일이 저장된다.
도 3은 본 발명의 또 하나의 실시예에 따른 아카이브 파일 중복 제거 장치의 블록도를 도시하는 도면이고, 도 4는 본 발명의 또 하나의 실시예에 사용되는 각 하위 파일의 헤더 구성을 도시하는 도면이다.
도 3에 도시된 바와 같이, 아카이브 파일 중복 제거 장치는 하위 파일 저장부(110), 파일 판독부(120), 파일 해시 값 생성부(310), 청크 해시 값 생성부(320), 중복 파일 검출부(140), 파일 유사도 측정부(330), 중복 청크 검출부(340), 파일 헤더 관리부(350), 파일 데이터 관리부(360), 하위 파일 제거부(370) 및 아카이브 파일 저장부(380)를 포함한다.
아카이브 파일의 하위 파일은 파일의 정보를 저장하기 위한 하위 파일 헤더 영역(382)과 하위 데이터 영역(384)을 포함한다. 그리고 하위 파일 헤더는 해당 하위 파일 데이터 영역에 저장되는 데이터 위치를 저장하기 위한 하위 파일 데이터 위치 정보와, 중복이 검출된 하위 파일의 데이터 위치를 저장하기 위한 중복 데이터 인덱스 위치 정보와, 및 청크 데이터 위치를 저장하기 위한 청크 데이터 위치 정보를 포함할 수 있다. 한편, 하위 파일 헤더 영역(382)은 하위 파일의 기본 정보가 저장될 영역(386)과 청크 관련 정보가 저장될 영역(388)으로 구분될 수 있다.
본 발명의 실시예에 따른 하위 파일 헤더의 구성이 도 4에 좀 더 상세하게 도시되어 있다. 하위 파일 헤더(400)에는 "하위 파일명 정보(410)", "하위 파일 기본 정보(420)", "하위 파일 데이터 위치 정보(430)", "전체 파일 해시 값 정보(440)", "부분 파일 해시 값 정보(450)", "중복 데이터 인덱스 위치 정보(460)", "다음 하위 파일 헤더 위치 정보(470)"가 구비될 수 있다. "전체 파일 해시 값 정보(440)"에는 "파일 해시 값(442)" 및 "파일 해시 링크 수(442)"를 저장하기 위한 영역이 구비될 수 있으며, "부분 파일 해시 값 정보(450)"에는 "청크 해시 값(452)", 청크 데이터 위치(454), 및 "청크 해시 링크 수(456)"를 저장하기 위한 영역이 구비될 수 있다.
하위 파일 저장부(110)에는 아카이브 파일로 묶일 하위 파일들, 예를 들어 하위 파일 1(112), 하위 파일 2(114), 하위 파일 3(116)이 저장되어 있을 수 있다.
파일 판독부(120)는 하위 파일들 중 어느 하나, 예를 들어 하위 파일 1(112)을 판독한다. 파일 판독부(120)는 하위 파일들의 묶음을 통한 아카이브 파일을 생성하기 위해 먼저 하위 파일 1(112)의 헤더 정보를 판독하여 하위 파일의 이름, 크기, 형태 정보를 추출하며, 이어서 크기만큼 하위 파일 1(112)의 파일 데이터를 판독한다.
파일 해시 값 생성부(310)는 파일 판독부(120)에서 판독한 파일 데이터 전체에 대해 SHA-1 암호화 함수를 이용하여 해당 하위 파일에 대한 해시 값을 생성한다.
청크 해시 값 생성부(320)는 가변 길이 청크(Variable Length Chunk)를 통해 파일의 청크와 SHA-1 암호화 함수를 적용한 청크 해시 값을 생성한다.
중복 파일 검출부(140)는 파일 해시 값 생성부(310)에서 생성된 해시 값과 이미 처리된 하위 파일의 해시 값을 비교하여 하위 파일의 중복 여부를 검출한다.
파일 유사도 측정부(330)는 청크 해시 값 생성부(320)에서 생성된 청크 해시 값을 통해 해당 하위 파일의 다이제스트를 계산하고 이어서 파일 다이제스트 비교를 통해 하위 파일 간의 유사도를 측정한다.
이러한 파일 유사도 처리를 위해 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비트 값을 추출한 후 각 비트 스트링의 비트 값을 연결하여 파일 다이제스트를 생성한다.
중복 청크 검출부(340)는 파일 유사도 측정부(330)에서 측정된 값이 소정의 임계값 이상이면 각 청크에 대한 청크 해시 비교를 통해 청크의 중복을 검출한다.
파일 헤더 관리부(350)는 중복 파일 검출부(140)에서 하위 파일 중복을 검출하지 않으면 하위 파일 데이터 위치 정보에 해당 하위 파일 데이터 위치를 저장하고, 중복 파일 검출부(140)에서 하위 파일 중복을 검출하면 중복 데이터 인덱스 위치 정보에 중복이 검출된 하위 파일의 데이터 위치를 저장한다. 또한, 파일 헤더 관리부(350)는 중복 파일 검출부(140)에서 하위 파일 중복을 검출하면 하위 파일 중복 카운트 수를 증가시킨 후 파일 해시 링크 수(444)에 저장한다.
파일 헤더 관리부(350)는 중복 청크 검출부(340)에서 중복 청크를 검출하면 청크 데이터 위치(454)에 중복 청크 데이터의 위치를 저장하고, 아울러 중복 청크의 수를 청크 해시 링크 수(456)에 저장한다.
파일 데이터 관리부(360)는 중복 파일 검출부(140)에서 하위 파일 중복을 검출하지 않으면 하위 파일의 데이터 위치에 하위 파일 데이터를 저장하고, 파일 헤더 관리부(350)에 의해 중복이 검출된 하위 파일의 데이터 위치가 저장되었으면 파일 판독부(120)에서 판독한 하위 파일 데이터를 하위 파일 데이터 영역에 저장하지 않는다.
파일 데이터 관리부(360)는 중복 청크 검출부(340)에서 청크 중복을 검출하면 파일 데이터 영역(384)에 청크 데이터를 저장하지 아니하고, 파일 헤더 관리부(350)에서 중복이 검출되지 않으면 청크 데이터 위치(454)에 근거하여 파일 데이터 영역(384)에 청크 데이터를 저장한다.
하위 파일 제거부(370)는 아카이브 파일로부터 하일 파일을 제거하고자 하는 경우에, 하위 파일 헤더(400)의 파일 해시 링크 수(444) 또는 청크 해시 링크 수(456)에서 링크 정보를 검출하면 해당 하위 파일 데이터 또는 청크 데이터를 삭제하지 아니하고, 링크 정보가 검출되지 않으면 해당 하위 파일 데이터 또는 청크 데이터를 삭제한다.
아카이브 파일 저장부(380)에는 위의 구성들에 의해 생성된 아카이브 파일이 저장된다.
도 5는 본 발명의 일 실시예에 따른 아카이브 파일 중복 제거 방법의 흐름도를 도시하는 도면이다.
파일 판독부(120)는 하위 파일들 중 어느 하나, 예를 들어 하위 파일 1(112)을 판독한다(S502). 파일 해시 값 생성부(310)는 파일 판독부(120)에서 판독한 파일 데이터 전체에 대해 SHA-1 암호화 함수를 이용하여 해당 하위 파일에 대한 해시 값을 생성한다(S504).
중복 파일 검출부(140)는 파일 해시 값 생성부(310)에서 생성된 해시 값과 이미 처리된 하위 파일의 해시 값을 비교하여 하위 파일의 중복 여부를 검출한다(S506). 중복 파일 검출부(140)에서 하위 파일 중복이 검출되면 해당 하위 파일의 내용이 이미 아카이브 파일 내에 존재하기 때문에, 파일 헤더 관리부(350)는 중복 데이터 인덱스 위치 정보에 중복이 검출된 하위 파일의 데이터 위치 저장을 통해 단순한 링크 연결로 처리하고(S508), 아울러 링크 수를 하위 파일 헤더(400)의 파일 해시 링크 수(444)에 저장할 수 있다.
중복 파일 검출부(140)에서 하위 파일 중복이 검출되지 않으면, 청크 해시 값 생성부(320)는 가변 길이 청크(Variable Length Chunk)를 통해 파일의 청크와 SHA-1 암호화 함수를 적용한 청크 해시 값을 생성한다(S510). 파일 유사도 측정부(330)는 청크 해시 값 생성부(320)에서 생성된 청크 해시 값을 통해 해당 하위 파일의 다이제스트를 계산하고 이어서 파일 다이제스트 비교를 통해 하위 파일 간의 유사도를 측정한다(S512).
파일 유사도 측정부(330)에서 비교된 유사도 값이 소정의 임계값 미만이면, 청크 해시 값의 비교 없이 청크 데이터 위치(454)에 해당 청크 데이터 위치를 저장하고(S514), 하위 데이터 영역(384)에 청크 데이터를 저장한다(S516).
중복 청크 검출부(340)는 파일 유사도 측정부(330)에서 측정된 값이 소정의 임계값 이상이면 각 청크에 대한 청크 해시 비교를 통해 청크의 중복을 검출한다(S518).
파일 헤더 관리부(350)는 중복 청크 검출부(340)에서 중복 청크를 검출하면 청크 데이터 위치(454)에 중복 청크 데이터의 위치를 저장하여 링크 연결로 처리하고(S520), 아울러 중복 청크의 수를 청크 해시 링크 수(456)에 저장할 수 있다.
중복 청크 검출부(340)에서 청크의 중복이 검출되지 않으면, 청크 데이터 위치(454)에 해당 청크 데이터의 위치를 저장하고(S524), 하위 데이터 영역(384)에 청크 데이터를 저장한다(S526). 그리고 해당 하위 파일의 청크 처리들이 모두 완료되었는지를 확인하고(S522), 모두 완료되었으면 해당 하위 파일의 처리를 종료한다.
도 6(a) 내지 도 6(e)은 본 발명의 일실시예에 따른 데이터 중복이 제거된 아카이브 파일의 생성을 설명하는 도면들이다.
도 6(a)에는 하위 파일 저장부(610)에 아카이브 파일에 추가될 file1(611), file2(612), file3(613), file4(614) 및 file5(615)가 도시되어 있고, 아카이브 파일 저장부(620)에는 file1(611)이 file1 청크 데이터(621) 및 하위 파일 헤더(622)로 추가된 모습이 도시되어 있다.
도 6(b)에는 파일 중복이나 청크 중복이 없는 하위 파일 file2(612)가 추가된 모습이 도시되어 있으며, 파일 중복이나 청크 중복이 발견되지 않았기 때문에 file2(612)의 헤더 정보와 파일 데이터가 추가되고 file1(611)의 헤더에는 file2(612)의 헤더가 연결된다.
도 6(c)에는 file1(611)과 청크 중복이 존재하는 하위 파일 file3(613)이 추가된 모습이 도시되어 있으며, 중복된 청크 데이터를 제외한 나머지 청크 데이터가 추가되고 file3(613)의 헤더에는 청크 링크가 추가된다.
도 6(d)에는 file1(611)과 file2(612)의 청크 데이터와 중복이 존재하는 file4(614)의 추가 모습이 도시되어 있으며, file4(614)의 헤더는 중복 청크가 존재하는 하위 파일의 헤더로 청크 데이터 위치를 연결한다.
도 6(e)에는 file2(612)와 파일 중복이 존재하는 file5(615)의 추가 모습이 도시되어 있으며, file5(615)의 헤더만 추가되고 file5(615) 헤더에는 중복 데이터의 위치가 연결된다.
도 7은 본 발명의 다른 실시예에 따른 아카이브 파일로부터 하위 파일을 삭제하는 흐름도를 도시하는 도면이다.
아카이브 파일에서 하위 파일의 제거하는 경우 존재하는 하위 파일들 사이의 중복 여부의 링크 회수를 참고하여 하위 파일의 데이터 삭제가 처리된다. 이를 통해 중복된 데이터 대신 헤더를 통한 링크로 설정된 서로 다른 하위 파일들의 내용을 보존하게 된다.
하위 파일 제거부(370)는 우선 삭제하고자 하는 하위 파일(A)의 "파일 해시 링크 수(442)"를 확인한다(S702). "파일 해시 링크 수(444)"에는 상술한 바와 같이 서로 다른 하위 파일들에서 링크된 회수가 저장되어 있다.
하위 파일 제거부(370)는 필드 확인 결과 1 이상이면(S704) 링크중인 다른 하위 파일(B)이 존재하므로 해당 하위 파일(B)을 보존하기 위해서 하위 파일(A)의 파일 데이터를 보존하고(S706), 삭제하려는 파일(A)의 헤더만 삭제한다.
하위 파일 제거부(370)는 필드 확인 결과 0이면(S704), 삭제하려는 하위 파일(A)의 "청크 해시 링크 수(456)"를 확인한다(S708). "청크 해시 링크 수(456)"의 필드가 0이면(S710) 해당 청크 데이터를 링크중인 하위 파일이 없기 때문에 해당 청크 데이터를 삭제하고(S712), 마지막 청크인지를 확인한다(S714). "청크 해시 링크 수(456)"의 필드가 1 이상이면(S710) 해당 청크 데이터를 링크중인 하위 파일이 존재하기 때문에 해당 청크 데이터를 보존하고(S716), 마지막 청크인지를 확인한다(S714).
하위 파일 제거부(370)는 마지막 청크가 아니면(S714) 남아있는 다른 청크를 처리하기 위해서 반복적인 작업을 수행하고, 마지막 청크에 해당하면(S714) 하위 파일(A)의 헤더를 삭제하고(S718) 작업을 마무리한다.
이상에서 설명된 본 발명의 실시예들은 본 발명의 기술 사상을 예시적으로 보여준 것에 불과하며, 본 발명의 보호 범위는 이하 특허청구범위에 의하여 해석되어야 마땅할 것이다. 또한, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것인 바, 본 발명과 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
110: 하위 파일 저장부 120: 파일 판독부
130: 해시 값 생성부 140: 중복 파일 검출부
150: 파일 헤더 관리부 160: 파일 데이터 관리부
170: 아카이브 파일 저장부 310: 파일 해시 값 생성부
320: 청크 해시 값 생성부 330: 파일 유사도 측정부
340: 중복 청크 검출부` 350: 파일 헤더 관리부
360: 파일 데이터 관리부 370: 하위 파일 제거부
380: 아카이브 파일 저장부

Claims (8)

  1. 하나의 하위 파일을 판독하는 파일 판독부와,
    상기 파일 판독부에서 판독한 하위 파일 데이터 전체에 대해 암호화 함수를 이용하여 파일 해시 값을 생성하는 파일 해시 값 생성부와,
    상기 파일 해시 값 생성부에서 생성된 파일 해시 값과 이미 처리된 하위 파일의 파일 해시 값을 비교하여 하위 파일의 중복 여부를 검출하는 중복 파일 검출부와,
    상기 중복 파일 검출부에서 하위 파일 중복을 검출하면 이미 처리된 하위 파일과의 연결을 위해 하위 파일 헤더의 데이터 위치 정보에 중복이 검출된 하위 파일의 데이터 위치를 저장하는 파일 헤더 관리부와, 및
    상기 중복 파일 검출부에서 하위 파일 중복을 검출하지 않으면 상기 파일 판독부에서 판독한 하위 파일 데이터를 하위 파일 데이터 영역에 저장하는 파일 데이터 관리부를 포함하고,
    상기 파일 헤더는 해당 하위 파일 데이터 영역에 저장되는 데이터 위치를 저장하기 위한 하위 파일 데이터 위치 정보와, 중복이 검출된 하위 파일의 데이터 위치를 저장하기 위한 중복 데이터 인덱스 위치 정보를 포함하고,
    상기 파일 헤더 관리부는 상기 중복 파일 검출부에서 하위 파일 중복을 검출하지 않으면 하위 파일 데이터 위치 정보에 해당 하위 파일 데이터 위치를 저장하고, 상기 중복 파일 검출부에서 하위 파일 중복을 검출하면 중복 데이터 인덱스 위치 정보에 중복이 검출된 하위 파일의 데이터 위치를 저장하는 것을 특징으로 하는 아카이브 파일 중복 제거 장치.
  2. 삭제
  3. 제1항에 있어서,
    하위 파일 데이터에 대해 가변 길이 방식으로 청크를 분류하고, 각 청크에 대해 암호화 함수를 적용하여 청크 해시 값을 생성하는 청크 해시 값 생성부와, 및
    상기 청크 해시 값 생성부에서 생성된 청크 해시 값과 이미 처리된 하위 파일의 청크 해시 값을 비교하여 해당 청크의 중복 여부를 검출하는 중복 청크 검출부를 더 포함하고,
    상기 파일 헤더 관리부는 상기 중복 청크 검출부에서 해당 청크의 중복을 검출하면 링크 연결을 위해 하위 파일 헤더의 데이터 위치 정보에 중복이 검출된 청크의 데이터 위치를 저장하는 것을 특징으로 하는 아카이브 파일 중복 제거 장치.
  4. 제3항에 있어서,
    상기 청크 해시 값 생성부에서 생성된 청크 해시 값을 통해 해당 하위 파일의 다이제스트를 계산하고, 파일 다이제스트 비교를 통해 하위 파일 간의 유사도를 측정하는 파일 유사도 측정부를 더 포함하고,
    상기 중복 청크 검출부는 상기 파일 유사도 측정부에서 측정된 유사도 값이 소정의 임계값 이상인 경우에만 수행하는 것을 특징으로 하는 아카이브 파일 중복 제거 장치.
  5. 제1항에 있어서,
    상기 파일 헤더 관리부는 상기 중복 파일 검출부에서 하위 파일 중복을 검출하면 해당 하위 파일에 연결된 링크 수를 카운트하여 파일 헤더에 저장하는 것을 특징으로 하는 아카이브 파일 중복 제거 장치.
  6. 제5항에 있어서,
    아카이브 파일로부터 하위 파일을 제거하는 경우 파일 헤더로부터 해당 하위 파일에 대한 링크 정보를 검출하면 해당 하위 파일 데이터를 삭제하지 않는 하위 파일 제거부를 더 포함하는 것을 특징으로 하는 아카이브 파일 중복 제거 장치.
  7. 하나의 하위 파일을 판독하는 단계와,
    상기 하위 파일을 판독하는 단계에서 판독한 하위 파일 데이터 전체에 대해 암호화 함수를 이용하여 파일 해시 값을 생성하는 단계와,
    상기 파일 해시 값을 생성하는 단계에서 생성된 파일 해시 값과 이미 처리된 하위 파일의 파일 해시 값을 비교하여 하위 파일의 중복 여부를 검출하는 단계와,
    상기 중복 여부를 검출하는 단계에서 하위 파일 중복을 검출하면 이미 처리된 하위 파일과의 연결을 위해 하위 파일 헤더의 데이터 위치 정보에 중복이 검출된 하위 파일의 데이터 위치를 저장하는 단계와, 및
    상기 중복 여부를 검출하는 단계에서 하위 파일 중복을 검출하지 않으면 상기 하위 파일을 판독하는 단계에서 판독한 하위 파일 데이터를 하위 파일 데이터 영역에 저장하는 단계를 포함하고,
    상기 파일 헤더는 해당 하위 파일 데이터 영역에 저장되는 데이터 위치를 저장하기 위한 하위 파일 데이터 위치 정보와, 중복이 검출된 하위 파일의 데이터 위치를 저장하기 위한 중복 데이터 인덱스 위치 정보를 포함하고,
    상기 하위 파일의 데이터 위치를 저장하는 단계는 상기 중복 여부를 검출하는 단계에서 하위 파일 중복을 검출하지 않으면 하위 파일 데이터 위치 정보에 해당 하위 파일 데이터 위치를 저장하고, 상기 중복 여부를 검출하는 단계에서 하위 파일 중복을 검출하면 중복 데이터 인덱스 위치 정보에 중복이 검출된 하위 파일의 데이터 위치를 저장하는 것을 특징으로 하는 아카이브 파일 중복 제거 방법.
  8. 삭제
KR1020150154584A 2015-11-04 2015-11-04 아카이브 파일 중복 제거 장치 및 방법 KR101667756B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150154584A KR101667756B1 (ko) 2015-11-04 2015-11-04 아카이브 파일 중복 제거 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150154584A KR101667756B1 (ko) 2015-11-04 2015-11-04 아카이브 파일 중복 제거 장치 및 방법

Publications (1)

Publication Number Publication Date
KR101667756B1 true KR101667756B1 (ko) 2016-10-19

Family

ID=57250432

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150154584A KR101667756B1 (ko) 2015-11-04 2015-11-04 아카이브 파일 중복 제거 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101667756B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190109151A (ko) * 2018-03-16 2019-09-25 넷마블 주식회사 로그 데이터 처리 장치 및 방법
KR20200015652A (ko) * 2018-03-16 2020-02-12 넷마블 주식회사 로그 데이터 처리 장치 및 방법
CN110990897A (zh) * 2019-12-16 2020-04-10 北京无忧创想信息技术有限公司 一种文件指纹的生成方法及装置
KR20200059731A (ko) * 2018-11-21 2020-05-29 전자부품연구원 메모리 db 기반 중복 제거 블록 데이터 전송 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150064593A (ko) * 2013-12-03 2015-06-11 삼성전자주식회사 데이터 연관정보를 이용한 중복제거 방법 및 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150064593A (ko) * 2013-12-03 2015-06-11 삼성전자주식회사 데이터 연관정보를 이용한 중복제거 방법 및 시스템

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190109151A (ko) * 2018-03-16 2019-09-25 넷마블 주식회사 로그 데이터 처리 장치 및 방법
KR102073798B1 (ko) * 2018-03-16 2020-02-05 넷마블 주식회사 로그 데이터 처리 장치 및 방법
KR20200015652A (ko) * 2018-03-16 2020-02-12 넷마블 주식회사 로그 데이터 처리 장치 및 방법
KR102364036B1 (ko) 2018-03-16 2022-02-17 넷마블 주식회사 로그 데이터 처리 장치 및 방법
KR20200059731A (ko) * 2018-11-21 2020-05-29 전자부품연구원 메모리 db 기반 중복 제거 블록 데이터 전송 방법
KR102220635B1 (ko) * 2018-11-21 2021-02-26 한국전자기술연구원 메모리 db 기반 중복 제거 블록 데이터 전송 방법
CN110990897A (zh) * 2019-12-16 2020-04-10 北京无忧创想信息技术有限公司 一种文件指纹的生成方法及装置

Similar Documents

Publication Publication Date Title
US11416452B2 (en) Determining chunk boundaries for deduplication of storage objects
KR101667756B1 (ko) 아카이브 파일 중복 제거 장치 및 방법
US8812738B2 (en) Method and apparatus for content-aware and adaptive deduplication
US7478113B1 (en) Boundaries
US10380073B2 (en) Use of solid state storage devices and the like in data deduplication
Kruus et al. Bimodal content defined chunking for backup streams.
KR102187127B1 (ko) 데이터 연관정보를 이용한 중복제거 방법 및 시스템
US20150356134A1 (en) De-duplication system and method thereof
Bo et al. Research on chunking algorithms of data de-duplication
CN103152430B (zh) 一种缩减数据占用空间的云存储方法
CN106980680B (zh) 数据存储方法及存储设备
WO2013075668A1 (zh) 重复数据删除方法和装置
US20130339320A1 (en) Storage system
CN116319815B (zh) 引入SaaS特征的云数据放置策略管理系统
Kim et al. Design and implementation of binary file similarity evaluation system
JP4768009B2 (ja) データ・クラスタを使用する冗長性の少ないデータを格納する方法
CN110413237B (zh) 分布式存储方法、装置、终端设备及存储介质
CN110019056B (zh) 用于云层的容器元数据分离
US9256611B2 (en) System and method for multi-scale navigation of data
US10877945B1 (en) Optimized block storage for change block tracking systems
Garcia Duplications and misattributions of file fragment hashes in image and compressed files
CN111177092A (zh) 一种基于纠删码的重复数据删除方法及装置
JP5340185B2 (ja) ファイル処理装置及びプログラム
Ko et al. Stride static chunking algorithm for deduplication system
US11836388B2 (en) Intelligent metadata compression

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20191001

Year of fee payment: 4