KR101252375B1 - 저장 장치의 중복 제거 성능 향상을 위한 맵핑 관리 시스템 및 방법 - Google Patents

저장 장치의 중복 제거 성능 향상을 위한 맵핑 관리 시스템 및 방법 Download PDF

Info

Publication number
KR101252375B1
KR101252375B1 KR1020100136766A KR20100136766A KR101252375B1 KR 101252375 B1 KR101252375 B1 KR 101252375B1 KR 1020100136766 A KR1020100136766 A KR 1020100136766A KR 20100136766 A KR20100136766 A KR 20100136766A KR 101252375 B1 KR101252375 B1 KR 101252375B1
Authority
KR
South Korea
Prior art keywords
block
data
mapping table
original
mapping
Prior art date
Application number
KR1020100136766A
Other languages
English (en)
Other versions
KR20120074817A (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 KR1020100136766A priority Critical patent/KR101252375B1/ko
Publication of KR20120074817A publication Critical patent/KR20120074817A/ko
Application granted granted Critical
Publication of KR101252375B1 publication Critical patent/KR101252375B1/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
    • G06F3/0641De-duplication techniques

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

저장 장치의 중복 제거 성능 향상을 위한 맵핑 관리 시스템 및 방법{MAPPING MANAGEMENT SYSTEM AND METHOD FOR ENHANCING PERFORMANCE OF DEDUPLICATION IN STORAGE APPARATUS}
본 발명은 저장 장치에서 효과적으로 중복을 제거하기 위한 매핑 관리 방법 및 시스템에 관한 것으로, 보다 상세하게는 중복 제거 기술을 사용한 블록의 데이터가 변경되는 경우 필요한 연산의 수를 감소시키는 시스템 및 방법에 관한 것이다.
중복 제거 기술은 기 저장된 데이터 중에 신규 데이터와 동일한 데이터가 있는 경우, 신규 데이터를 저장 매체에 저장하지 않고, 신규 데이터가 저장될 블록이 해당 데이터가 기 저장된 원본 블록을 참조한다는 맵핑 정보를 맵핑 테이블에 저장함으로써, 데이터 저장에 따른 쓰기 연산의 숫자를 감소시키는 기술이다.
그러나 종래의 중복 제거 기술은 원본 블록에 저장된 데이터를 변경할 경우, 원본 블록에 기 저장된 데이터를 원본 블록을 참조하던 블록 중 하나에 복사한 다음 원본 블록의 데이터를 변경해야 하며, 맵핑 테이블도 복사된 블록을 새로운 원본 블록으로 설정하여 변경해야 하는 불편함이 있었다.
따라서, 중복 제거 기술에서 원본 블록에 저장된 데이터를 간단하게 변경할 수 있는 방법이 요구되고 있다.
본 발명은 복수의 참조 블록이 참조하는 원본 블록의 데이터가 변경되는 경우, 변경되는 원본 블록의 데이터를 참조 블록 중 하나에 저장하고, 원본 블록이 해당 참조 블록을 참조하도록 함으로써 원본 블록의 데이터가 변경될 경우 수행되는 복사와 변경 연산을 감소시키는 시스템 및 방법을 제공한다.
또한, 본 발명은 복수의 참조 블록이 하나의 원본 블록을 참조하는 경우, 맵핑 테이블에서 하나의 엔트리를 사용하여 복수의 참조 블록이 원본 블록을 참조한다는 정보를 저장함으로써 맵핑 테이블의 크기를 감소시키는 시스템 및 방법을 제공한다.
본 발명의 일실시예에 따른 맵핑 관리 시스템은 복수의 데이터가 중복 되는 경우, 맵핑 테이블을 사용하여 상기 데이터에 대응하는 적어도 하나의 참조 블록을 상기 데이터가 저장된 원본 블록에 맵핑하는 중복 제거부; 및 데이터의 변경 요청이 상기 원본 블록의 데이터를 변경하는 경우, 상기 변경 요청에 따라 변경한 데이터를 참조 블록 중 하나에 저장하고, 상기 원본 블록이 상기 변경한 데이터를 저장한 참조 블록을 참조하도록 하는 데이터 변경부를 포함할 수 있다.
본 발명의 일실시예에 따른 맵핑 관리 시스템의 중복제거부는, 복수의 참조 블록들이 하나의 원본 블록을 참조하는 경우, 맵핑 테이블에서 하나의 엔트리를 사용하여 복수의 참조 블록들이 하나의 원본 블록을 참조하도록 설정할 수 있다.
본 발명의 일실시예에 따른 맵핑 관리 시스템은 참조 블록 중 하나를 참조하는 원본 블록인 체인 블록을 기초로 참조 블록과 상기 체인 블록의 데이터를 참조 대상에 따라 변경하고, 상기 맵핑 테이블에서 체인 블록에 대한 정보를 삭제하는 맵핑 테이블 정리부를 더 포함할 수 있다.
본 발명의 일실시예에 따른 맵핑 관리 방법은 복수의 데이터가 중복 되는 경우, 맵핑 테이블을 사용하여 상기 데이터에 대응하는 적어도 하나의 참조 블록을 상기 데이터가 저장된 원본 블록에 맵핑하는 단계; 데이터의 변경 요청이 상기 원본 블록의 데이터를 변경하는 경우, 상기 변경 요청에 따라 변경한 데이터를 참조 블록 중 하나에 저장하는 단계; 및 상기 원본 블록이 상기 변경한 데이터를 저장한 참조 블록을 참조하도록 설정하는 단계를 포함할 수 있다.
본 발명의 일실시예에 의하면, 복수의 참조 블록이 참조하는 원본 블록의 데이터가 변경되는 경우, 변경되는 원본 블록의 데이터를 참조 블록 중 하나에 저장하고, 원본 블록이 해당 참조 블록을 참조하도록 함으로써 원본 블록의 데이터가 변경될 경우 수행되는 복사와 변경 연산을 감소시킬 수 있다.
또한, 본 발명의 일실시예에 의하면, 복수의 참조 블록이 하나의 원본 블록을 참조하는 경우, 맵핑 테이블에서 하나의 엔트리를 사용하여 복수의 참조 블록이 원본 블록을 참조한다는 정보를 저장함으로써 맵핑 테이블의 크기를 감소시킬 수 있다.
도 1은 본 발명의 일실시예에 따른 맵핑 관리 시스템을 도시한 블록 다이어그램이다.
도 2는 본 발명의 일실시예에 따른 맵핑 테이블 관리부가 생성한 맵핑 테이블의 일례이다.
도 3은 본 발명의 일실시예에 따른 데이터 변경부가 원본 블록의 데이터 변경 요청을 처리하는 과정의 일례이다.
도 4는 본 발명의 일실시예에 따른 맵핑 테이블 정리부가 맵핑 테이블에서 중복된 맵핑 정보를 정리하는 과정의 일례이다.
도 5는 본 발명의 일실시예에 따른 맵핑 관리 방법을 도시한 플로우차트이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다. 본 발명의 일실시예에 따른 맵핑 관리 방법은 맵핑 관리 시스템에 의해 수행될 수 있다.
도 1은 본 발명의 일실시예에 따른 맵핑 관리 시스템을 도시한 블록 다이어그램이다.
도 1을 참고하면, 본 발명의 일실시예에 따른 맵핑 관리 시스템(100)은 중복 제거부(110), 변경 데이터 판단부(120), 데이터 변경부(130), 및 맵핑 테이블 정리부(140)를 포함할 수 있다.
중복 제거부(110)는 복수의 데이터가 중복 되는 경우, 맵핑 테이블을 사용하여 상기 데이터에 대응하는 적어도 하나의 참조 블록을 상기 데이터가 저장된 원본 블록에 맵핑할 수 있다.
이때, 중복 제거부(110)는 중복 여부를 판단하는 중복 판단부(111)과 맵핑 테이블을 생성하여 관리하는 맵핑 테이블 관리부(112)를 포함할 수 있다.
중복 판단부(111)는 핑거프린트(fingerprint) 방법을 사용하여 저장을 요청 받은 신규 데이터가 기존에 블록 단위로 저장된 기존 데이터와 중복되는 데이터인지 여부를 판단할 수 있다. 구체적으로, 중복 판단부(111)는 기존 데이터의 해시 값과 신규 데이터의 해시 값을 계산하고, 동일한 해시 값이 계산된 경우, 신규 데이터를 기존 데이터와 중복 되는 데이터로 판단할 수 있다. 이때, 중복 판단부(111)는 SHA1(Secure Hash Algorithm 1)이나 MD5(Message-Digest algorithm 5)를 사용하여 해시 값을 계산할 수 있다.
맵핑 테이블 관리부(112)는 중복 판단부(111)에서 중복으로 판단한 신규 데이터를 저장 장치에 저장하지 않고, 기존 데이터와 중복되었다는 정보를 맵핑 정보 형태로 맵핑 테이블에 저장할 수 있다. 이때, 맵핑 테이블은 기존 데이터가 저장된 블록을 원본 블록으로 설정하고, 신규 데이터가 저장될 예정이었던 블록을 참조 블록으로 설정하며, 원본 블록과 참조 블록을 맵핑하여 저장할 수 있다. 또한, 맵핑 테이블 관리부(112)는 복수의 참조 블록들이 하나의 원본 블록을 참조하는 경우, 맵핑 테이블에서 하나의 엔트리를 사용하여 복수의 참조 블록들이 하나의 원본 블록을 참조하도록 설정할 수 있다. 이때, 맵핑 테이블 관리부(112)는 맵핑 테이블을 탐색하는 성능을 고려하여 인버티드 테이블(inverted table)형태로 맵핑 테이블을 만들 수도 있다.
맵핑 테이블 관리부(112)가 맵핑 테이블을 생성하는 과정은 이하 도 2를 참조로 상세히 설명한다.
변경 데이터 판단부(120)는 저장된 데이터를 변경하고자 하는 변경 요청을 수신한 경우, 변경 요청이 맵핑 테이블에서 원본 블록으로 설정된 블록의 데이터를 변경하는지 여부를 확인할 수 있다.
데이터 변경부(130)는 변경 데이터 판단부(120)가 상기 변경 요청이 원본 블록의 데이터를 변경하는 것으로 판단한 경우, 상기 변경 요청에 따라 변경한 데이터를 참조 블록 중 하나에 저장하고, 원본 블록이 변경한 데이터를 저장한 참조 블록을 참조하도록 설정할 수 있다.
데이터 변경부(130)가 원본 블록의 데이터 변경 요청을 처리하는 과정은 이하 도 3을 참조로 상세히 설명한다.
맵핑 테이블 정리부(140)는 참조 블록 중 하나를 참조하는 원본 블록인 체인 블록을 기초로 참조 블록과 상기 체인 블록의 데이터를 참조 대상에 따라 변경하고, 상기 맵핑 테이블에서 체인 블록에 대한 정보를 삭제할 수 있다. 구체적으로, 맵핑 테이블 정리부(140)는 체인 블록의 데이터를 임시 블록에 저장하고, 체인 블록이 참조하던 참조 블록의 데이터를 체인 블록에 저장하며, 임시 블록의 데이터를 체인 블록이 참조하던 참조 블록에 저장하고, 맵핑 테이블에서 상기 체인 블록이 참조 블록을 참조하는 정보를 삭제할 수 있다.
맵핑 테이블 정리부(140)가 맵핑 테이블에서 중복된 맵핑 정보를 정리하는 과정은 이하 도 4를 참조로 상세히 설명한다.
또한, 중복된 맵핑 정보를 검색하고, 정리하는 과정은 검색하고 연산하는 데이터의 량이 크므로 데이터가 저장된 저장 시스템에 부하를 줄 수 있다. 따라서, 맵핑 테이블 정리부(140)는 데이터가 저장되는 저장 시스템이 유휴(idle)상태이거나, 맵핑 테이블의 크기가 임계 값을 초과하는 경우, 동작하도록 설정함으로써 저장 시스템에 대한 부하를 줄일 수 있다. 이때, 임계 값은 맵핑 테이블을 생성하기 전에 설정한 맵핑 테이블의 최대 크기일 수 있다. 즉, 맵핑 테이블이 최대 크기인 경우 맵핑 테이블 안의 중복 맵핑 정보를 정리함으로써 맵핑 테이블의 크기를 감소할 수 있다.
도 2는 본 발명의 일실시예에 따른 맵핑 테이블 관리부가 생성한 맵핑 테이블의 일례이다.
본 발명의 일실시예에 따른 맵핑 테이블 관리부(112)는 5개의 저장 블록(210)을 사용하는 저장 시스템에서 블록1 내지 블록 4에 동일한 데이터 A가 저장되는 경우, 도 2에 도시된 바와 같이 블록2 내지 블록 4에는 데이터를 저장하지 않고 블록 1을 참조하도록 할 수 있다. 구체적으로 맵핑 테이블 관리부(112)는 맵핑 테이블(220)에 블록2, 블록3, 및 블록 4를 각각 참조 블록으로 설정하고 블록1을 참조 블록이 참조하는 원본 블록으로 설정한 맵핑 정보를 저장할 수 있다.
이때, 동일한 데이터를 참조하는 블록들을 별개의 엔트리로 저장하는 경우 맵핑 테이블의 크기가 증가하므로, 맵핑 테이블 관리부(112)는 도 2에 도시된 바와 같이 하나의 엔트리를 사용하여 동일한 원본 블록을 참조하는 블록들을 맵핑할 수 있다(230).
일례로, 맵핑 테이블에 저장되는 각 블록의 식별 정보를 저장하기 위하여 4byte의 용량이 필요한 경우, 맵핑 테이블(220)은 3개의 엔트리에 3쌍의 맵핑 정보를 저장하며 각각의 엔트리에 참조 블록과 원본 블록을 저장하므로 수학식 1에 따라 4byte*4byte*3의 저장 공간을 필요로 한다.
Figure 112010086781049-pat00001
이때, cn은 참조 블록의 식별 정보를 저장하기 위한 저장 공간의 크기이고, bn은 원본 블록의 식별 정보를 저장하기 위한 저장 공간의 크기이며, e는 맵핑 정보가 저장된 엔트리의 숫자일 수 있다.
반면, 맵핑 테이블(230)은 하나의 엔트리에 동일한 원본 블록을 참조하는 3개의 식별 정보를 저장하므로 동일한 정보인 원본 블록의 식별 정보를 저장하는 횟수가 감소한다. 즉, 맵핑 테이블(230)은 수학식 2에 따라 (4byte*3)+4byte의 저장 공간을 필요로 한다.
Figure 112010086781049-pat00002
즉, 맵핑 테이블 관리부(112)는 맵핑 테이블(230)와 같은 구조의 맵핑 테이블을 사용함으로써 동일한 데이터를 사용할 경우, 맵핑 테이블(220)를 사용하는 것이 비하여 수학식 3 정도의 저장 공간을 절약할 수 있다.
Figure 112010086781049-pat00003
이때, k는 동일한 원본 블록을 참조하고 있는 참조 블록의 수이고, n은 참조 블록, 또는 원본 블록의 식별 정보를 저장하기 위한 저장 공간의 크기일 수 있다.
도 3은 본 발명의 일실시예에 따른 데이터 변경부가 원본 블록의 데이터 변경 요청을 처리하는 과정의 일례이다.
본 발명의 일실시예에 따른 변경 데이터 판단부(120)는 저장된 데이터를 변경하고자 하는 변경 요청을 수신한 경우, 도 3에 도시된 바와 같이 변경 요청(311)이 맵핑 테이블에서 원본 블록으로 설정된 블록(블록 1)의 데이터를 변경하는지 여부를 확인할 수 있다(310).
이때, 본 발명의 일실시예에 따른 변경 데이터 판단부(120)는 복수의 블록이 서로 상대 블록에 있는 데이터를 참조하도록 설정하는 교차 참조 기법을 사용할 수 있다.
구체적으로, 데이터 변경부(130)는 변경 요청이 원본 블록의 데이터를 변경하는 것인 경우(310), 원본 블록인 블록 1을 참조하는 블록 2, 내지 블록 4 중에서 하나의 블록을 선택할 수 있다(320). 일례로, 데이터 변경부(130)는 도 3에 도시된 바와 같이 블록 2(321)를 선택한 경우, 맵핑 테이블에 블록 1이 블록 2를 참조한다는 정보(322)를 추가할 수 있다. 이때, 변경 데이터 판단부(120)는 블록 1을 참조하는 블록 2, 내지 블록 4 중에서 다른 참조 블록의 원본 블록으로 설정된 블록이 있는지 여부를 확인하며, 다른 참조 블록의 원본 블록으로 설정된 블록은 선택할 수 없다.
다음으로, 데이터 변경부(130)는 블록 2에 변경 요청(311)에 따른 데이터(331)을 저장할 수 있다(330). 이때, 블록 1과 블록 2는 서로 상대 블록에 저장된 데이터를 참조하는 교차 참조 상태이다.
그 다음으로, 다른 시스템에서 블록 2 내지 블록 4 중에 하나의 데이터를 요구하는 경우, 맵핑 테이블 관리부(112)는 맵핑 테이블에 따라 블록 2 내지 블록 4가 참조하고 있는 블록 1에 저장된 데이터 A를 제공할 수 있다. 또한, 다른 시스템에서 블록 1의 데이터를 요구하는 경우, 맵핑 테이블 관리부(112)는 맵핑 테이블에 따라 블록 1이 참조하고 있는 블록 2에 저장된 데이터 B를 제공할 수 있다.
본 발명의 일실시예에 따른 데이터 변경부(130)는 원본 블록의 데이터가 변경될 경우 수행되는 복사와 변경 연산을 감소시킬 수 있다. 구체적으로 종래의 맵핑 테이블 관리 시스템은 원본 블록인 블록 1의 데이터를 변경하는 경우, 블록 2 내지 블록 4중 하나에 데이터 A를 복사하고, 데이터 A가 복사된 블록을 다른 블록이 참조하도록 변경한 다음, 블록 1의 데이터를 B로 변경하여야 하므로 1회의 블록 데이터 복사와 2회의 맵핑 테이블 엔트리 변경 및 1회의 블록 데이터 변경을 필요로 한다.
반면, 본 발명에 따른 데이터 변경부(130)는 1회의 맵핑 테이블에 엔트리 추가(322)와 1회의 블록 데이터 복사(331)만으로도 외부에서 블록 1의 데이터를 요구하는 경우 데이터 B를 제공하고, 블록 2 내지 블록 4의 데이터를 요구하는 경우 데이터 A를 제공할 수 있다. 따라서, 본 발명에 따른 데이터 변경부(130)는 도 3의 일례에서 종래의 맵핑 테이블 관리 시스템에 비하여 1회의 맵핑 테이블 엔트리 변경 및 1회의 블록 데이터 변경을 생략할 수 있다.
도 4는 본 발명의 일실시예에 따른 맵핑 테이블 정리부가 맵핑 테이블에서 중복된 맵핑 정보를 정리하는 과정의 일례이다.
데이터 변경부(130)가 블록 데이터를 변경하는 방법은 도 3에 도시된 바와 같이 연산 횟수를 감소시키지만 맵핑 테이블에 포함된 엔트리의 숫자는 증가시키게 된다. 이때, 맵핑 테이블 정리부(140)는 한 블록의 원본 블록이 다른 블록을 참조하는 관계들의 정보인 체인 정보를 기초로 체인 클리닝 기법을 수행함으로써 맵핑 테이블을 정리하여 데이터 변경부(130)에 의하여 증가한 엔트리의 숫자를 감소시킬 수 있다.
먼저, 맵핑 테이블 정리부(140)는 체인 정보를 검색할 수 있다. 구체적으로 맵핑 테이블 정리부(140)는 참조 블록과 원본 블록으로 모두 사용되는 블록을 검색하여 체인 블록으로 설정할 수 있다(410). 일례로, 맵핑 테이블(412)에서는 블록 1, 블록 2, 및 블록 3이 참조 블록과 원본 블록으로 모두 사용되고 있음을 검색할 수 있다. 구체적으로, 블록 1은 블록 2를 참조하고 있고, 블록 2는 블록 3을 참조하고 있으며, 블록 3은 블록 1을 참조하고 있다. 즉, 저장 블록(411)에 도시된 바와 같이 블록 3과 블록 4는 블록 1에 저장된 데이터 A를 참조하고 있고, 블록 1은 블록 2에 저장된 데이터 B를 참조하고 있으며, 블록 2는 블록 3에 저장된 데이터 C를 참조하고 있다.
다음으로, 맵핑 테이블 정리부(140)는 체인 블록들을 각각의 체인 블록이 참조하는 대상에 기초하여 정리할 수 있다.
먼저, 맵핑 테이블 정리부(140)는 블록 1에 저장되었던 데이터 A를 임시 블록에 백업하고, 블록 1이 참조하던 데이터 B를 블록 1에 저장할 수 있다. 이때, 맵핑 테이블 정리부(140)는 데이터 A를 임시 블록에서 로드 하여 블록 2에 저장하고, 블록 1이 블록 2를 참조한다는 맵핑 정보 1:2를 삭제할 수 있다.
다음으로, 맵핑 테이블 정리부(140)는 블록 1의 원본 블록인 블록 2가 참조 블록으로 설정된 맵핑 정보 2:3을 사용하여 블록 2를 정리할 수 있다. 이때, 맵핑 테이블 정리부(140)는 상기 단계에서 블록 2에 저장된 데이터 A를 임시 블록에 백업하고, 블록 2가 참조하던 데이터 C를 블록 2에 저장할 수 있다. 이때, 맵핑 테이블 정리부(140)는 데이터 A를 임시 블록에서 로드 하여 블록 3에 저장하고, 블록 2가 블록 3을 참조한다는 맵핑 정보 2:3을 삭제할 수 있다.
이때, 블록 2의 원본 블록인 블록 3이 참조 블록으로 설정된 맵핑 정보 3:1은 최초의 정리 대상이었던 블록 1을 참조하므로, 체인 클리닝 기법의 수행을 중단할 수 있다. 이때, 맵핑 테이블 정리부(140)는 블록 4가 참조하던 대상인 데이터 A가 저장된 장소가 블록 1에서 블록 3으로 이동하였으므로, 블록 4에 대한 엔트리를 블록 4가 블록 3을 참조한다는 맵핑 정보 4:3으로 변경할 수 있다.
본 발명에 따른 맵핑 테이블 정리부(140)는 상기 과정을 통하여 도 4와 같이 저장 블록(421) 간에 참조하는 대상의 수를 1로 감소시키고, 맵핑 테이블(422)의 엔트리를 1개로 감소시킬 수 있다(420).
도 5는 본 발명의 일실시예에 따른 맵핑 관리 방법을 도시한 플로우차트이다.
단계(S510)에서 중복 판단부(111)는 신규 데이터가 기존 데이터와 중복되는 데이터인지 여부를 판단할 수 있다. 일례로, 중복 판단부(111)는 핑거프린트(fingerprint) 방법을 사용하여 신규 데이터가 기존 데이터와 중복되는 데이터인지 여부를 판단할 수 있다.
단계(S520)에서 맵핑 테이블 관리부(112)는 단계(S520)에서 중복으로 판단한 신규 데이터를 저장 장치에 저장하지 않고, 신규 데이터가 기존 데이터와 중복되었다는 맵핑 정보를 맵핑 테이블에 저장할 수 있다. 이때, 맵핑 테이블 관리부(112)는 기존 데이터가 저장된 블록의 번호를 원본 블록으로 설정하고, 신규 데이터가 저장될 예정이었던 블록을 참조 블록으로 설정하며, 원본 블록과 참조 블록을 맵핑하여 맵핑 테이블에 저장할 수 있다. 이때, 맵핑 테이블은, 하나의 엔트리에서 복수의 참조 블록들이 하나의 원본 블록을 참조하는 구조일 수 있다.
단계(S530)에서 변경 데이터 판단부(120)는 저장된 데이터를 변경하고자 하는 변경 요청을 수신한 경우, 변경 요청이 맵핑 테이블에서 원본 블록으로 설정된 블록의 데이터를 변경하는지 여부를 확인할 수 있다.
단계(S540)에서 데이터 변경부(130)는 단계(S530)에서 원본 블록의 데이터를 변경하는 것으로 판단한 경우, 상기 변경 요청에 따라 변경한 데이터를 참조 블록 중 하나에 저장하고, 원본 블록이 변경한 데이터를 저장한 참조 블록을 참조하도록 설정하는 교차 참조 기법을 수행할 수 있다.
단계(S550)에서 데이터 변경부(130)는 단계(S530)에서 원본 블록이 아닌 참조 블록의 데이터를 변경하는 것으로 판단한 경우, 상기 변경 요청에 따라 참조 블록의 데이터를 변경할 수 있다. 이때, 데이터 변경에 의하여 참조 블록과 원본 블록의 데이터가 다르게 되므로, 참조 블록이 원본 블록을 참조한다는 맵핑 정보를 삭제할 수 있다.
단계(S560)에서 맵핑 테이블 정리부(140)는 단계(S540)의 교차 참조 기법에 의하여 증가된 맵핑 테이블의 정보를 정리하는 체인 클리닝 기법의 실행이 필요한지 여부를 판단할 수 있다. 구체적으로, 맵핑 테이블 정리부(140)는 데이터가 저장되는 저장 시스템이 유휴(idle)상태이거나, 맵핑 테이블의 크기가 임계 값을 초과하는 경우, 체인 클리닝 기법의 실행이 필요한 것으로 판단할 수 있다.
단계(S570)에서 맵핑 테이블 정리부(140)는 단계(S540)의 교차 참조 기법에 의하여 증가된 맵핑 테이블에서 정리 대상 블록인 체인 블록을 검색할 수 있다. 구체적으로 맵핑 테이블 정리부(140)는 참조 블록과 원본 블록으로 모두 사용되는 블록을 체인 블록으로 검색할 수 있다.
단계(S580)에서 맵핑 테이블 정리부(140)는 단계(S570)에서 검색한 체인 블록들을 각각의 체인 블록이 참조하는 대상에 기초하여 정리할 수 있다. 구체적으로, 맵핑 테이블 정리부(140)는 체인 블록의 데이터를 임시 블록에 저장하고, 체인 블록이 참조하던 참조 블록의 데이터를 체인 블록에 저장하며, 임시 블록의 데이터를 체인 블록이 참조하던 참조 블록에 저장하고, 맵핑 테이블에서 체인 블록이 참조 블록을 참조하는 정보를 삭제할 수 있다. 이때, 맵핑 테이블 정리부(140)는 체인 블록이 참조하던 참조 블록을 새로운 체인 블록으로 설정하여 체인 클리닝 기법을 적용하며, 최초의 체인 블록을 원본 블록으로 설정한 체인 블록이 검색된 경우 체인 클리닝 기법의 수행을 종료할 수 있다.
본 발명은 복수의 참조 블록이 참조하는 원본 블록의 데이터가 변경되는 경우, 변경되는 원본 블록의 데이터를 참조 블록 중 하나에 저장하고, 원본 블록이 해당 참조 블록을 참조하도록 함으로써 원본 블록의 데이터가 변경될 경우 수행되는 복사와 변경 연산을 감소시킬 수 있다.
또한, 본 발명은 복수의 참조 블록이 하나의 원본 블록을 참조하는 경우, 맵핑 테이블에서 하나의 엔트리를 사용하여 복수의 참조 블록이 원본 블록을 참조한다는 정보를 저장함으로써 맵핑 테이블의 크기를 감소시킬 수 있다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
110: 중복 제거부
120: 변경 데이터 판단부
130: 데이터 변경부
140: 맵핑 테이블 정리부

Claims (12)

  1. 복수의 데이터가 중복 되는 경우, 맵핑 테이블을 사용하여 상기 데이터에 대응하는 적어도 하나의 참조 블록을 상기 데이터가 저장된 원본 블록에 맵핑하는 중복 제거부;
    데이터의 변경 요청이 상기 원본 블록의 데이터를 변경하는 경우, 상기 변경 요청에 따라 변경한 데이터를 참조 블록 중 하나에 저장하고, 상기 원본 블록이 상기 변경한 데이터를 저장한 참조 블록을 참조하도록 설정하는 데이터 변경부; 및
    참조 블록 중 하나를 참조하는 원본 블록인 체인 블록을 기초로 참조 블록과 상기 체인 블록의 데이터를 참조 대상에 따라 변경하고, 상기 맵핑 테이블에서 체인 블록에 대한 정보를 삭제하는 맵핑 테이블 정리부
    를 포함하는 맵핑 관리 시스템.
  2. 제1항에 있어서,
    상기 중복제거부는,
    복수의 참조 블록들이 하나의 원본 블록을 참조하는 경우, 상기 맵핑 테이블에서 하나의 엔트리를 사용하여 복수의 참조 블록들이 하나의 원본 블록을 참조하도록 설정하는 것을 특징으로 하는 맵핑 관리 시스템.
  3. 삭제
  4. 제1항에 있어서,
    상기 맵핑 테이블 정리부는,
    상기 체인 블록의 데이터를 임시 블록에 저장하고, 상기 체인 블록이 참조하던 참조 블록의 데이터를 상기 체인 블록에 저장하며, 상기 임시 블록의 데이터를 상기 체인 블록이 참조하던 참조 블록에 저장하고, 상기 맵핑 테이블에서 상기 체인 블록이 참조 블록을 참조하는 정보를 삭제하는 것을 특징으로 하는 맵핑 관리 시스템.
  5. 제1항에 있어서,
    상기 맵핑 테이블 정리부는,
    데이터가 저장되는 저장 시스템이 유휴(idle)상태인 경우 동작하는 것을 특징으로 하는 맵핑 관리 시스템.
  6. 제1항에 있어서,
    상기 맵핑 테이블 정리부는,
    상기 맵핑 테이블의 크기가 임계 값을 초과하는 경우, 동작하는 것을 특징으로 하는 맵핑 관리 시스템.
  7. 복수의 데이터가 중복 되는 경우, 맵핑 테이블을 사용하여 상기 데이터에 대응하는 적어도 하나의 참조 블록을 상기 데이터가 저장된 원본 블록에 맵핑하는 단계;
    데이터의 변경 요청이 상기 원본 블록의 데이터를 변경하는 경우, 상기 변경 요청에 따라 변경한 데이터를 참조 블록 중 하나에 저장하는 단계;
    상기 원본 블록이 상기 변경한 데이터를 저장한 참조 블록을 참조하도록 설정하는 단계; 및
    참조 블록 중 하나를 참조하는 원본 블록인 체인 블록을 기초로 참조 블록과 상기 체인 블록의 데이터를 참조 대상에 따라 변경하고, 상기 맵핑 테이블에서 체인 블록에 대한 정보를 삭제하는 단계
    를 포함하는 맵핑 관리 방법.
  8. 제7항에 있어서,
    상기 맵핑하는 단계는
    복수의 참조 블록들이 하나의 원본 블록을 참조하는 경우, 상기 맵핑 테이블에서 하나의 엔트리를 사용하여 복수의 참조 블록들이 하나의 원본 블록을 참조하도록 설정하는 것을 특징으로 하는 맵핑 관리 방법.
  9. 삭제
  10. 제7항에 있어서,
    상기 체인 블록에 대한 정보를 삭제하는 단계는,
    상기 체인 블록의 데이터를 임시 블록에 저장하는 단계;
    상기 체인 블록이 참조하던 참조 블록의 데이터를 상기 체인 블록에 저장하는 단계;
    상기 임시 블록의 데이터를 상기 체인 블록이 참조하던 참조 블록에 저장하는 단계; 및
    상기 맵핑 테이블에서 상기 체인 블록이 참조 블록을 참조하는 정보를 삭제하는 단계
    를 포함하는 맵핑 관리 방법.
  11. 제7항에 있어서,
    상기 체인 블록에 대한 정보를 삭제하는 단계는,
    데이터가 저장되는 저장 시스템이 유휴(idle)상태인 경우 실행하는 것을 특징으로 하는 맵핑 관리 방법.
  12. 제7항에 있어서,
    상기 체인 블록에 대한 정보를 삭제하는 단계는,
    상기 맵핑 테이블의 크기가 임계 값을 초과하는 경우, 실행하는 것을 특징으로 하는 맵핑 관리 방법.
KR1020100136766A 2010-12-28 2010-12-28 저장 장치의 중복 제거 성능 향상을 위한 맵핑 관리 시스템 및 방법 KR101252375B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100136766A KR101252375B1 (ko) 2010-12-28 2010-12-28 저장 장치의 중복 제거 성능 향상을 위한 맵핑 관리 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100136766A KR101252375B1 (ko) 2010-12-28 2010-12-28 저장 장치의 중복 제거 성능 향상을 위한 맵핑 관리 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20120074817A KR20120074817A (ko) 2012-07-06
KR101252375B1 true KR101252375B1 (ko) 2013-04-08

Family

ID=46708891

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100136766A KR101252375B1 (ko) 2010-12-28 2010-12-28 저장 장치의 중복 제거 성능 향상을 위한 맵핑 관리 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR101252375B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101532283B1 (ko) * 2013-11-04 2015-06-30 인하대학교 산학협력단 Ssd 기반 raid 스토리지에서 데이터 및 패리티 디스크의 복합적 중복제거 방법
KR101680540B1 (ko) * 2015-06-18 2016-11-30 주식회사 코인플러그 블록체인을 기반으로 하는 금융기관 제증명서류 위변조 검증시스템 및 방법
KR101637868B1 (ko) 2016-02-22 2016-07-08 주식회사 코인플러그 블록체인을 기반으로 하는 금융기관 제증명서류 위변조 검증시스템 및 방법
KR102204605B1 (ko) 2019-04-25 2021-01-19 주식회사 웨이투빗 각 노드가 사용하는 저장 공간을 자동으로 최적화할 수 있는 블록체인을 제공하는 방법 및 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040009926A (ko) * 2002-07-26 2004-01-31 지인정보기술 주식회사 플래시 메모리 관리 방법
US7734603B1 (en) * 2006-01-26 2010-06-08 Netapp, Inc. Content addressable storage array element

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040009926A (ko) * 2002-07-26 2004-01-31 지인정보기술 주식회사 플래시 메모리 관리 방법
US7734603B1 (en) * 2006-01-26 2010-06-08 Netapp, Inc. Content addressable storage array element

Also Published As

Publication number Publication date
KR20120074817A (ko) 2012-07-06

Similar Documents

Publication Publication Date Title
US10620862B2 (en) Efficient recovery of deduplication data for high capacity systems
US10761758B2 (en) Data aware deduplication object storage (DADOS)
US8799601B1 (en) Techniques for managing deduplication based on recently written extents
US20140297603A1 (en) Method and apparatus for deduplication of replicated file
US9430164B1 (en) Memory efficient sanitization of a deduplicated storage system
US8271462B2 (en) Method for creating a index of the data blocks
US9317218B1 (en) Memory efficient sanitization of a deduplicated storage system using a perfect hash function
EP2863310B1 (en) Data processing method and apparatus, and shared storage device
CN104077380B (zh) 一种重复数据删除方法、装置及***
CN105027069A (zh) 卷区域的重复数据删除
JP2015512604A (ja) 暗号ハッシュ・データベース
CN110888837B (zh) 对象存储小文件归并方法及装置
CN113535670B (zh) 一种虚拟化资源镜像存储***及其实现方法
CN107153512B (zh) 一种数据迁移方法和装置
KR20150122533A (ko) 세컨더리 인덱스 생성 방법 및 세컨더리 인덱스 저장 장치
JP6094267B2 (ja) ストレージシステム
CN108399047A (zh) 一种闪存文件***及其数据管理方法
JP6807395B2 (ja) プロセッサ・グリッド内の分散データ重複排除
US20170199893A1 (en) Storing data deduplication metadata in a grid of processors
CN111522502B (zh) 数据去重方法、装置、电子设备及计算机可读存储介质
KR101252375B1 (ko) 저장 장치의 중복 제거 성능 향상을 위한 맵핑 관리 시스템 및 방법
CN104965835B (zh) 一种分布式文件***的文件读写方法及装置
KR101350132B1 (ko) Nvram을 맵핑 테이블 저장 장치로 사용하는 중복 데이터 제거 시스템 및 방법
CN104484402B (zh) 一种删除重复数据的方法及装置
US10185660B2 (en) System and method for automated data organization in a storage 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: 20160401

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180403

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190402

Year of fee payment: 7