KR101350132B1 - Nvram을 맵핑 테이블 저장 장치로 사용하는 중복 데이터 제거 시스템 및 방법 - Google Patents

Nvram을 맵핑 테이블 저장 장치로 사용하는 중복 데이터 제거 시스템 및 방법 Download PDF

Info

Publication number
KR101350132B1
KR101350132B1 KR1020100136767A KR20100136767A KR101350132B1 KR 101350132 B1 KR101350132 B1 KR 101350132B1 KR 1020100136767 A KR1020100136767 A KR 1020100136767A KR 20100136767 A KR20100136767 A KR 20100136767A KR 101350132 B1 KR101350132 B1 KR 101350132B1
Authority
KR
South Korea
Prior art keywords
mapping table
mapping
data
value
storage device
Prior art date
Application number
KR1020100136767A
Other languages
English (en)
Other versions
KR20120074818A (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 KR1020100136767A priority Critical patent/KR101350132B1/ko
Publication of KR20120074818A publication Critical patent/KR20120074818A/ko
Application granted granted Critical
Publication of KR101350132B1 publication Critical patent/KR101350132B1/ko

Links

Images

Classifications

    • 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/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • 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
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • G06F12/0261Garbage collection, i.e. reclamation of unreferenced memory using reference counting
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0808Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means

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

NVRAM을 맵핑 테이블 저장 장치로 사용하는 중복 데이터 제거 방법 및 시스템이 개시된다. 중복 데이터 제거 시스템은 신규 데이터가 기 저장된 기존 데이터의 중복 데이터인 경우, 상기 신규 데이터를 상기 기존 데이터와 맵핑하여 NVRAM(Non-volatile RAM)의 맵핑 테이블에 추가하는 맵핑부; 상기 맵핑 테이블에 저장된 정보의 맵핑 가치를 계산하는 맵핑 가치 계산부; 및 상기 맵핑 가치에 기초하여 상기 맵핑 테이블을 상기 저장 장치와 NVRAM으로 분할하는 맵핑 테이블 분할부를 포함할 수 있다.

Description

NVRAM을 맵핑 테이블 저장 장치로 사용하는 중복 데이터 제거 시스템 및 방법{DATA DEDUPLICATION MANAGEMENT SYSTEM AND METHOD FOR USING NVRAM AS MAPPING TABLE STORAGE APPARATUS}
본 발명은 NVRAM을 맵핑 테이블 저장 장치로 사용하는 중복 데이터 제거 방법 및 시스템에 관한 것으로, 보다 상세하게는 맵핑 테이블의 정보의 가치를 계산하고, 계산된 가치에 따라 맵핑 테이블을 NVRAM과 기존 저장 장치로 분할함으로써 저장 용량에 제한이 있는 NVRAM를 맵핑 테이블 저장 공간으로 사용할 수 있는 시스템 및 방법에 관한 것이다.
중복 제거 기술은 기 저장된 데이터 중에 신규 데이터와 동일한 데이터가 있는 경우, 신규 데이터를 저장 매체에 저장하지 않고, 신규 데이터가 저장될 블록이 해당 데이터가 기 저장된 원본 블록을 참조한다는 맵핑 정보를 맵핑 테이블에 저장함으로써, 데이터 저장에 따른 쓰기 연산의 숫자를 감소시키는 기술이다.
이러한 중복 제거 기술에서는 맵핑 테이블의 신뢰성이 중요하므로 종래의 중복 제거 기술은 하드 디스크와 같이 안정성이 높은 저장 장치에 동기적으로 맵핑 테이블을 저장하였다.
그러나, 맵핑 테이블을 하드 디스크와 같은 저장 장치에 동기적으로 저장하는 경우, 저장된 데이터에 접근하는 속도가 지연되는 문제가 발생한다. 따라서, 맵핑 테이블을 DRAM에 캐싱하고, 지연 쓰기(delay write)를 사용하는 방법이 개발되었으나, DRAM은 휘발성 저장 장치이므로 전원이 갑자기 차단될 경우, 캐싱 중이던 매핑 테이블이 손실될 수 있는 실정이다.
따라서, 갑작스런 전원 차단에도 안전한 비휘발성이며 접근 속도가 빠른 저장 매체를 사용하여 맵핑 테이블을 저장할 수 있는 방법이 요구되고 있다.
본 발명은 맵핑 테이블에서 각 엔트리의 필요성을 맵핑 가치라는 수치로 계산하고, 맵핑 가치를 기준으로 필요성이 낮은 엔트리는 저장 용량이 큰 저장 장치에 저장함으로써 속도와 안정성이 높으나 저장 용량이 제한적인 NVRAM을 맵핑 테이블의 저장 공간으로 사용할 수 있는 시스템 및 방법을 제공한다.
또한, 본 발명은 맵핑 테이블에서 사용된 블록이 저장 장치에서 삭제되어 있는지 여부를 직접 검색함으로써 저장 장치에서 삭제되어 무효화된 맵핑 정보가 맵핑 테이블에 잔존하여 맵핑 테이블의 크기를 증가시키는 것을 방지할 수 있는 시스템 및 방법을 제공한다.
본 발명의 일실시예에 따른 중복 데이터 제거 시스템은 신규 데이터가 기 저장된 기존 데이터의 중복 데이터인 경우, 상기 신규 데이터를 상기 기존 데이터와 맵핑하여 NVRAM(Non-volatile RAM)의 맵핑 테이블에 추가하는 맵핑부; 상기 맵핑 테이블에 저장된 정보의 맵핑 가치를 계산하는 맵핑 가치 계산부; 및 상기 맵핑 가치에 기초하여 상기 맵핑 테이블을 상기 저장 장치와 NVRAM으로 분할하는 맵핑 테이블 분할부를 포함할 수 있다.
본 발명의 일실시예에 따른 중복 데이터 제거 시스템의 맵핑 테이블 분할부는 저장 장치의 맵핑 테이블에 저장된 정보가 사용되는 경우, 사용된 정보를 NVRAM의 맵핑 테이블로 업데이트할 수 있다.
본 발명의 일실시예에 따른 중복 데이터 제거 시스템은 저장 장치에서 삭제된 데이터가 있는지 여부를 검색하는 삭제 데이터 검색부를 더 포함하고, 상기 맵핑부는 상기 맵핑 테이블에서 상기 삭제된 데이터에 대응하는 정보를 검색하여 삭제할 수 있다.
본 발명의 일실시예에 따른 중복 데이터 제거 방법은 신규 데이터가 기 저장된 기존 데이터의 중복 데이터인 경우, 상기 신규 데이터를 상기 기존 데이터와 맵핑하여 NVRAM의 맵핑 테이블에 추가하는 단계; 상기 맵핑 테이블에 저장된 정보의 맵핑 가치를 계산하는 단계; 및 상기 맵핑 가치에 기초하여 상기 맵핑 테이블을 상기 저장 장치와 NVRAM으로 분할하는 단계를 포함할 수 있다.
본 발명의 일실시예에 의하면, 맵핑 테이블에서 각 엔트리의 필요성을 맵핑 가치라는 수치로 계산하고, 맵핑 가치를 기준으로 필요성이 낮은 엔트리는 저장 용량이 큰 저장 장치에 저장함으로써 속도와 안정성이 높으나 저장 용량이 제한적인 NVRAM을 맵핑 테이블의 저장 공간으로 사용할 수 있다.
또한, 본 발명의 일실시예에 의하면, 맵핑 테이블에서 사용된 블록이 저장 장치에서 삭제되어 있는지 여부를 직접 검색함으로써 저장 장치에서 삭제되어 무효화된 맵핑 정보가 맵핑 테이블에 잔존하여 맵핑 테이블의 크기를 증가시키는 것을 방지할 수 있다.
도 1은 본 발명의 일실시예에 따른 중복 데이터 제거 시스템을 도시한 블록 다이어그램이다.
도 2는 본 발명의 일실시예에 따른 맵핑 테이블 분할부가 맵핑 테이블을 분할하고 업데이트하는 과정의 일례이다.
도 3은 본 발명의 일실시예에 따른 중복 데이터 제거 방법을 도시한 플로우차트이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다. 본 발명의 일실시예에 따른 중복 데이터 제거 방법은 중복 데이터 제거 시스템에 의해 수행될 수 있다.
도 1은 본 발명의 일실시예에 따른 중복 데이터 제거 시스템을 도시한 블록 다이어그램이다.
도 1을 참고하면, 본 발명의 일실시예에 따른 중복 데이터 제거 시스템(100)은 맵핑부(110), 맵핑 가치 계산부(120), 맵핑 테이블 분할부(130), 및 삭제 블록 검색부(140)를 포함할 수 있다.
맵핑부(110)는 신규 데이터가 기 저장된 기존 데이터의 중복 데이터인 경우, 상기 신규 데이터를 상기 기존 데이터와 맵핑하여 NVRAM(Non-volatile RAM)의 맵핑 테이블에 추가할 수 있다. 이때, NVRAM은 강유전체메모리(FeRAM: Ferroelectric RAM), 자기메모리(MRAM: Magnetoresistive RAM), 저항형 메모리(RRAM: Resistance RAM), 및 상변화메모리(PRAM: Phase change RAM) 중 하나일 수 있다.
이때, 맵핑부(110)는 중복 여부를 판단하는 중복 판단부(111)과 맵핑 테이블을 생성하여 관리하는 맵핑 테이블 관리부(112)를 포함할 수 있다.
중복 판단부(111)는 핑거프린트(fingerprint) 방법을 사용하여 저장을 요청 받은 신규 데이터가 블록 단위로 기 저장된 기존 데이터와 중복되는 데이터인지 여부를 판단할 수 있다. 구체적으로, 중복 판단부(111)는 기존 데이터의 해시 값과 신규 데이터의 해시 값을 계산하고, 동일한 해시 값이 계산된 경우, 신규 데이터를 기존 데이터와 중복 되는 데이터로 판단할 수 있다. 이때, 중복 판단부(111)는 SHA1(Secure Hash Algorithm 1)이나 MD5(Message-Digest algorithm 5)를 사용하여 해시 값을 계산할 수 있다.
맵핑 테이블 관리부(112)는 중복 판단부(111)에서 중복으로 판단한 신규 데이터를 저장 장치에 저장하지 않고, 기존 데이터와 중복되었다는 정보를 맵핑 테이블에 저장할 수 있다. 이때, 맵핑 테이블 관리부(112)는 기존 데이터가 저장된 블록인 원본 블록과 신규 데이터가 저장될 블록인 참조 블록이 맵핑된 정보를 맵핑 테이블의 엔트리로 관리할 수 있다. 이때, 맵핑 테이블 관리부(112)는 맵핑 테이블을 탐색하는 성능을 고려하여 인버티드 테이블(inverted table)형태로 맵핑 테이블을 만들 수도 있다.
맵핑 가치 계산부(120)는 맵핑 테이블에 저장된 정보의 맵핑 가치(mapping value)를 계산할 수 있다. 구체적으로 맵핑 가치 계산부(120)는 맵핑 테이블에서 동일한 원본 블록을 참조하는 참조 블록이 맵핑된 적어도 하나의 엔트리를 그룹화하고, 엔트리의 접근 빈도, 최근 접근 시간, 및 엔트리가 포함된 그룹의 크기에 기초하여 엔트리의 맵핑 가치를 계산할 수 있다.
맵핑 테이블 분할부(130)는 맵핑 테이블의 크기가 기 설정된 최대 크기보다 큰 경우, 맵핑 가치 계산부(120)가 계산한 맵핑 가치에 기초하여 맵핑 테이블을 저장 장치와 NVRAM으로 분할하여 저장할 수 있다. 구체적으로, 맵핑 테이블 분할부(130)는 맵핑 테이블에 저장된 정보 중 맵핑 가치가 임계 값 이상인 엔트리에 저장된 정보는 NVRAM의 맵핑 테이블에 저장하고, 맵핑 테이블에 저장된 정보 중 맵핑 가치가 임계 값 미만인 엔트리에 저장된 정보는 저장 장치에 맵핑 테이블을 생성하여 저장할 수 있다. 이때, 최대 크기는 NVRAM의 저장 용량에 기초하여 설정된 맵핑 테이블의 최대 크기이고, 맵핑 가치의 임계 값은 NVRAM의 맵핑 테이블에 저장되는 엔트리의 수를 결정하는 기준 값일 수 있다. 또한, 맵핑 가치의 임계 값은, NVRAM의 저장 용량과 맵핑 테이블에 따라 결정될 수 있다.
또한, 맵핑 테이블 분할부(130)는 저장 장치의 맵핑 테이블에 저장된 정보가 사용되는 경우, 사용된 정보가 저장된 엔트리를 NVRAM의 맵핑 테이블로 업데이트함으로써, 상기 사용된 정보가 재사용될 경우에 접근 속도를 높일 수 있다.
그리고, 맵핑 테이블 분할부(130)는 저장 장치의 맵핑 테이블에 저장된 정보가 사용되는 경우, RAM에 맵핑 테이블을 생성하고, 사용된 정보를 RAM의 맵핑 테이블에 업데이트할 수도 있다. 이때, 맵핑 가치 계산부(120)는 RAM의 맵핑 테이블에 저장된 정보의 맵핑 가치를 계산하고, 맵핑 테이블 분할부(130)는 RAM의 맵핑 테이블에 저장된 정보의 맵핑 가치에 기초하여 RAM의 맵핑 테이블에 저장된 정보를 NVRAM의 맵핑 테이블로 업데이트할 수 있다.
맵핑 테이블 분할부(130)가 저장 장치의 맵핑 테이블에 저장된 정보를 NVRAM의 맵핑 테이블로 업데이트하는 과정은 이하 도 2를 참조로 상세히 설명한다.
즉, 본 발명에 따른 중복 데이터 제거 시스템은 맵핑 테이블에서 각 엔트리의 필요성을 맵핑 가치라는 수치로 계산하고, 맵핑 가치를 기준으로 필요성이 낮은 엔트리는 저장 용량이 큰 저장 장치에 저장함으로써 속도와 안정성이 높으나 저장 용량이 제한적인 NVRAM을 맵핑 테이블의 저장 공간으로 사용할 수 있다.
삭제 데이터 검색부(140)는 저장 장치에서 삭제된 블록을 검색하고, 삭제된 블록이 맵핑 테이블에서 사용되는 블록 중에 하나인지 여부를 확인할 수 있다. 이때, 삭제 데이터 검색부(140)는 삭제된 블록이 맵핑 테이블에서 사용되는 블록 중 하나인 경우, 맵핑부(110)에 해당 블록을 삭제할 것을 요청할 수 있다. 이때, 맵핑부(110)는 맵핑 테이블에서 해당 블록에 대응하는 엔트리를 삭제할 수 있다. 이때, 해당 블록에 대응하는 엔트리는 해당 블록을 원본 블록, 또는 참조 블록으로 사용하는 엔트리이다. 그리고, 삭제 데이터 검색부(140)는 저장 장치를 검색하여 저장 장치에서 사용하는 파일 시스템의 메타 데이터를 추출하고, 상기 메타 데이터에 포함된 가용 블록 정보를 기초로 저장 장치에서 삭제된 블록을 검색할 수 있다. 이때, 메타 데이터는 고유 인식자를 가지고 고정된 위치에 있는 FAT나 ext3의 슈퍼 블록일 수 있다. 즉, 삭제 블록 검색부(140)는 맵핑 테이블에서 사용된 블록이 저장 장치에서 삭제되어 있는지 여부를 직접 검색함으로써 저장 장치에서 삭제되어 무효화된 맵핑 정보가 맵핑 테이블에 잔존하여 맵핑 테이블의 크기를 증가시키는 것을 방지할 수 있다.
또한, 삭제 블록 검색부(140)는 저장 장치에 저장된 정보를 모두 검색하므로 시간이 많이 필요하고, 저장 장치의 검색 기능에 부하를 줄 수 있다. 따라서, 삭제 데이터 검색부(140)는 저장 장치의 상태가 유휴(idle)상태인 경우에 동작함으로써 저장 장치에 부담을 최소화할 수 있다. 단, 맵핑 테이블의 크기가 상기 최대 크기를 초과하는 경우에는 새로 추가되는 맵핑 정보의 엔트리가 추가될 저장 공간이 필요하므로, 저장 장치에 부하가 걸리더라도 삭제 블록 검색부(140)가 동작될 수 있다. 즉, 삭제 블록 검색부(140)는 맵핑 테이블이 최대 크기인 경우, 해당 데이터가 저장 장치에서 삭제되어 무효화된 맵핑 정보를 맵핑 테이블에서 삭제함으로써 맵핑 테이블의 크기를 감소할 수 있다.
도 2는 본 발명의 일실시예에 따른 중복 데이터 제거 시스템이 맵핑 테이블을 분할하고 업데이트하는 과정의 일례이다.
본 발명의 일실시예에 따른 중복 데이터 제거 시스템(100)의 맵핑 테이블 분할부(130)는 맵핑 테이블에 저장된 정보 중 맵핑 가치가 임계 값 이상인 엔트리에 저장된 정보는 NVRAM(210)의 맵핑 테이블에 저장하고, 맵핑 테이블에 저장된 정보 중 맵핑 가치가 임계 값 미만인 엔트리에 저장된 정보는 저장 장치(220)에 맵핑 테이블을 생성하여 저장할 수 있다. 이때, 저장 장치(220)는 하드 디스크와 같이 안정적이고 저장 용량에 제한이 적은 장치일 수 있다.
사용자가 요구하는 데이터가 저장 장치(220)의 맵핑 테이블에 저장된 정보를 사용하여 접근하는 데이터인 경우, 중복 데이터 제거 시스템(100)은 RAM(230)에 맵핑 테이블을 생성하고, 해당 정보가 저장된 엔트리를 RAM(230)의 맵핑 테이블에 업데이트함으로써 사용자가 요구하는 데이터에 보다 빠른 접근이 가능하도록 할 수 있다. 이때, RAM(230)는 접근 속도가 빠르나 데이터가 삭제될 수 있는 저장 장치일 수 있다. 즉, 중복 데이터 제거 시스템(100)는 저장 장치(220)의 맵핑 테이블에 저장된 엔트리를 복사하여 RAM(230)의 맵핑 테이블에 업데이트함으로써, RAM(230)에 저장된 엔트리가 삭제되는 것을 대비할 수 있다.
또한, 중복 데이터 제거 시스템(100)은 RAM(230)의 맵핑 테이블에 저장된 정보의 맵핑 가치를 계산하고, 계산한 맵핑 가치에 기초하여 RAM(230)의 맵핑 테이블에 저장된 정보를 NVRAM(210)의 맵핑 테이블로 업데이트할 수도 있다. 이때, 중복 데이터 제거 시스템(100)의 맵핑 테이블 분할부(130)는 NVRAM(210)의 맵핑 테이블로 업데이트하는 것으로 판단한 정보를 저장 장치(220)의 맵핑 테이블에서 삭제할 수 있다.
중복 데이터 제거 시스템(100)은 사용자가 근래 사용한 정보들이 저장된 RAM(230)의 맵핑 테이블에 저장된 정보들의 맵핑 가치를 계산하고, 맵핑 가치에 따라 사용자가 사용할 가능성이 높은 엔트리를 NVRAM의 맵핑 테이블로 업데이트함으로써, 상기 사용된 정보가 재사용될 경우에 접근 속도와 안전성을 높일 수 있다.
도 3은 본 발명의 일실시예에 따른 중복 데이터 제거 방법을 도시한 플로우차트이다.
단계(S310)에서 중복 판단부(111)는 신규 데이터가 기존 데이터와 중복되는 데이터인지 여부를 판단할 수 있다. 일례로, 중복 판단부(111)는 핑거프린트(fingerprint) 방법을 사용하여 신규 데이터가 기존 데이터와 중복되는 데이터인지 여부를 판단할 수 있다.
단계(S320)에서 맵핑 테이블 관리부(112)는 단계(S520)에서 중복으로 판단한 신규 데이터를 저장 장치에 저장하지 않고, 신규 데이터가 기존 데이터와 중복되었다는 맵핑 정보를 맵핑 테이블에 저장할 수 있다. 이때, 맵핑 테이블 관리부(112)는 기존 데이터가 저장된 블록의 번호를 원본 블록으로 설정하고, 신규 데이터가 저장될 예정이었던 블록을 참조 블록으로 설정하며, 원본 블록과 참조 블록을 맵핑하여 맵핑 테이블에 저장할 수 있다.
단계(S330)에서 맵핑 테이블 분할부(130)는 단계(S320)에서 맵핑 정보가 저장된 맵핑 테이블의 크기가 최대 크기를 초과하는지 여부를 판단할 수 있다. 이때, 최대 크기는 NVRAM의 저장 용량에 기초하여 설정된 맵핑 테이블의 최대 크기일 수 있다. 맵핑 정보가 저장된 맵핑 테이블의 크기가 최대 크기 이하인 경우, 맵핑 테이블 분할부(130)는 실행되지 않고, 맵핑부(110)가 단계(S310)을 반복할 수 있다.
단계(S340)에서 맵핑 가치 계산부(120)는 단계(S330)에서 최대 크기보다 큰 것으로 판단된 맵핑 테이블에 저장된 정보의 맵핑 가치(mapping value)를 계산할 수 있다. 구체적으로 맵핑 가치 계산부(120)는 맵핑 테이블에서 동일한 원본 블록을 참조하는 참조 블록이 맵핑된 적어도 하나의 엔트리를 그룹화하고, 엔트리의 접근 빈도, 최근 접근 시간, 및 엔트리가 포함된 그룹의 크기에 기초하여 엔트리의 맵핑 가치를 계산할 수 있다.
단계(S350)에서 맵핑 테이블 분할부(130)는 단계(S340)에서 계산된 맵핑 가치에 기초하여 단계(S320)에서 맵핑 정보가 저장된 맵핑 테이블을 저장 장치와 NVRAM으로 분할하여 저장할 수 있다. 구체적으로, 맵핑 테이블 분할부(130)는 맵핑 테이블에 저장된 정보 중 맵핑 가치가 임계 값 이상인 엔트리에 저장된 정보는 NVRAM의 맵핑 테이블에 저장하고, 맵핑 테이블에 저장된 정보 중 맵핑 가치가 임계 값 미만인 엔트리에 저장된 정보는 저장 장치에 맵핑 테이블을 생성하여 저장할 수 있다. 이때, 임계 값은 NVRAM의 맵핑 테이블에 저장되는 엔트리의 수를 결정하는 기준 값이며, NVRAM의 저장 용량과 맵핑 테이블에 따라 결정될 수 있다.
단계(S360)에서 맵핑 테이블 분할부(130)는 단계(S350)에서 분할된 저장 장치의 맵핑 테이블에 저장된 정보가 사용되는 경우, 사용된 정보가 저장된 엔트리를 NVRAM의 맵핑 테이블로 업데이트함으로써, 상기 사용된 정보가 재사용될 경우에 접근 속도를 높일 수 있다.
단계(S370)에서 삭제 블록 검색부(140)는 삭제된 블록 검색이 필요한지 여부를 판단할 수 있다. 구체적으로, 삭제 데이터 검색부(140)는 저장 장치의 상태가 유휴(idle)상태이거나 맵핑 테이블의 크기가 최대 크기를 초과하는 경우, 삭제된 블록 검색이 필요하다고 판단할 수 있다.
단계(S380)에서 삭제 데이터 검색부(140)는 저장 장치에서 삭제된 블록을 검색하고, 삭제된 블록이 맵핑 테이블에서 사용되는 블록 중에 하나인지 여부를 확인할 수 있다. 구체적으로, 삭제 데이터 검색부(140)는 저장 장치를 검색하여 저장 장치에서 사용하는 파일 시스템의 메타 데이터를 추출하고, 상기 메타 데이터에 포함된 가용 블록 정보를 기초로 저장 장치에서 삭제된 블록을 검색할 수 있다. 이때, 메타 데이터는 고유 인식자를 가지고 고정된 위치에 있는 FAT나 ext3의 수퍼 블록일 수 있다.
단계(S390)에서 삭제 데이터 검색부(140)는 맵핑부(110)에 단계(S380)에서 검색한 블록을 삭제할 것을 요청할 수 있다. 이때, 맵핑부(110)는 맵핑 테이블에서 해당 블록에 대응하는 엔트리를 삭제할 수 있다. 이때, 해당 블록에 대응하는 엔트리는 해당 블록을 원본 블록, 또는 참조 블록으로 사용하는 엔트리이다.
본 발명은 맵핑 테이블에서 각 엔트리의 필요성을 맵핑 가치라는 수치로 계산하고, 맵핑 가치를 기준으로 필요성이 낮은 엔트리는 저장 용량이 큰 저장 장치에 저장함으로써 속도와 안정성이 높으나 저장 용량이 제한적인 NVRAM을 맵핑 테이블의 저장 공간으로 사용할 수 있다.
또한, 본 발명은 맵핑 테이블에서 사용된 블록이 저장 장치에서 삭제되어 있는지 여부를 직접 검색함으로써 저장 장치에서 삭제되어 무효화된 맵핑 정보가 맵핑 테이블에 잔존하여 맵핑 테이블의 크기를 증가시키는 것을 방지할 수 있다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
110: 맵핑부
120: 맵핑 가치 계산부
130: 맵핑 테이블 분할부
140: 삭제 블록 검색부

Claims (22)

  1. 신규 데이터가 기 저장된 기존 데이터의 중복 데이터인 경우, 상기 신규 데이터를 상기 기존 데이터와 맵핑하여 NVRAM(Non-volatile RAM)의 맵핑 테이블에 추가하는 맵핑부;
    상기 맵핑 테이블에 저장된 정보의 맵핑 가치를 계산하는 맵핑 가치 계산부; 및
    상기 맵핑 가치에 기초하여 상기 맵핑 테이블을 저장 장치와 NVRAM으로 분할하는 맵핑 테이블 분할부
    를 포함하는 프로그램이 기록된 컴퓨터에서 판독 할 수 있는 기록 매체.
  2. 제1항에 있어서,
    상기 맵핑부는,
    상기 기존 데이터가 저장된 블록인 원본 블록과 상기 신규 데이터가 저장될 블록인 참조 블록이 맵핑된 정보를 상기 맵핑 테이블의 엔트리로 관리하는 것을 특징으로 하는 프로그램이 기록된 컴퓨터에서 판독 할 수 있는 기록 매체.
  3. 제2항에 있어서,
    상기 맵핑 가치 계산부는,
    상기 맵핑 테이블에서 동일한 원본 블록을 참조하는 참조 블록이 맵핑된 적어도 하나의 엔트리를 그룹화하는 것을 특징으로 하는 프로그램이 기록된 컴퓨터에서 판독 할 수 있는 기록 매체.
  4. 제3항에 있어서,
    상기 맵핑 가치 계산부는,
    엔트리의 접근 빈도, 최근 접근 시간, 및 상기 엔트리가 포함된 그룹의 크기에 기초하여 상기 엔트리의 맵핑 가치를 계산하는 것을 특징으로 하는 프로그램이 기록된 컴퓨터에서 판독 할 수 있는 기록 매체.
  5. 제1항에 있어서,
    상기 맵핑 테이블 분할부는,
    상기 맵핑 테이블에 저장된 정보 중 맵핑 가치가 임계 값 이상인 정보를 상기 NVRAM의 맵핑 테이블에 저장하고, 상기 맵핑 테이블에 저장된 정보 중 맵핑 가치가 임계 값 미만인 정보를 상기 저장 장치의 맵핑 테이블에 저장하는 것을 특징으로 하는 프로그램이 기록된 컴퓨터에서 판독 할 수 있는 기록 매체.
  6. 제5항에 있어서,
    상기 맵핑 테이블 분할부는,
    상기 저장 장치의 맵핑 테이블에 저장된 정보가 사용되는 경우, 사용된 정보를 상기 NVRAM의 맵핑 테이블로 업데이트하는 것을 특징으로 하는 프로그램이 기록된 컴퓨터에서 판독 할 수 있는 기록 매체.
  7. 제5항에 있어서,
    상기 맵핑 테이블 분할부는,
    상기 저장 장치의 맵핑 테이블에 저장된 정보가 사용되는 경우, RAM에 맵핑 테이블을 생성하고, 상기 사용된 정보를 상기 RAM의 맵핑 테이블에 업데이트하는 것을 특징으로 하는 프로그램이 기록된 컴퓨터에서 판독 할 수 있는 기록 매체.
  8. 제7항에 있어서,
    상기 맵핑 가치 계산부는,
    상기 RAM의 맵핑 테이블에 저장된 정보의 맵핑 가치를 계산하고,
    상기 맵핑 테이블 분할부는,
    상기 RAM의 맵핑 테이블에 저장된 정보의 맵핑 가치에 기초하여 상기 RAM의 맵핑 테이블에 저장된 정보를 상기 NVRAM의 맵핑 테이블로 업데이트하는 것을 특징으로 하는 프로그램이 기록된 컴퓨터에서 판독 할 수 있는 기록 매체.
  9. 제1항에 있어서,
    상기 저장 장치에서 삭제된 데이터가 있는지 여부를 검색하는 삭제 데이터 검색부
    를 더 포함하고,
    상기 맵핑부는,
    상기 맵핑 테이블에서 상기 삭제된 데이터에 대응하는 정보를 검색하여 삭제하는 것을 특징으로 하는 프로그램이 기록된 컴퓨터에서 판독 할 수 있는 기록 매체.
  10. 제9항에 있어서,
    상기 삭제 데이터 검색부는,
    상기 저장 장치의 상태가 유휴(idle)상태인 경우 동작하는 것을 특징으로 하는 프로그램이 기록된 컴퓨터에서 판독 할 수 있는 기록 매체.
  11. 제9항에 있어서,
    상기 삭제 데이터 검색부는,
    상기 맵핑 테이블의 크기가 기 설정된 맵핑 테이블의 최대 크기를 초과하는 경우, 동작하는 것을 특징으로 하는 프로그램이 기록된 컴퓨터에서 판독 할 수 있는 기록 매체.
  12. 신규 데이터가 기 저장된 기존 데이터의 중복 데이터인 경우, 상기 신규 데이터를 상기 기존 데이터와 맵핑하여 NVRAM(Non-volatile RAM)의 맵핑 테이블에 추가하는 단계;
    상기 맵핑 테이블에 저장된 정보의 맵핑 가치를 계산하는 단계; 및
    상기 맵핑 가치에 기초하여 상기 맵핑 테이블을 저장 장치와 NVRAM으로 분할하는 단계
    를 포함하는 중복 데이터 제거 방법.
  13. 제12항에 있어서,
    상기 추가하는 단계는,
    상기 기존 데이터가 저장된 블록인 원본 블록과 상기 신규 데이터가 저장될 블록인 참조 블록이 맵핑된 정보를 상기 맵핑 테이블의 엔트리로 관리하는 것을 특징으로 하는 중복 데이터 제거 방법.
  14. 제13항에 있어서,
    상기 계산하는 단계는,
    상기 맵핑 테이블에서 동일한 원본 블록을 참조하는 참조 블록이 맵핑된 적어도 하나의 엔트리를 그룹화하는 것을 특징으로 하는 중복 데이터 제거 방법.
  15. 제14항에 있어서,
    상기 계산하는 단계는,
    엔트리의 접근 빈도, 최근 접근 시간, 및 상기 엔트리가 포함된 그룹의 크기에 기초하여 상기 엔트리의 맵핑 가치를 계산하는 것을 특징으로 하는 중복 데이터 제거 방법.
  16. 제12항에 있어서,
    상기 분할하는 단계는,
    상기 맵핑 테이블에 저장된 정보 중 맵핑 가치가 임계 값 이상인 정보를 상기 NVRAM의 맵핑 테이블에 저장하는 단계; 및
    상기 맵핑 테이블에 저장된 정보 중 맵핑 가치가 임계 값 미만인 정보를 상기 저장 장치의 맵핑 테이블에 저장하는 단계
    를 포함하는 중복 데이터 제거 방법.
  17. 제16항에 있어서,
    상기 분할하는 단계는,
    상기 저장 장치의 맵핑 테이블에 저장된 정보가 사용되는 경우, 사용된 정보를 상기 NVRAM의 맵핑 테이블로 업데이트하는 단계
    를 더 포함하는 중복 데이터 제거 방법.
  18. 제16항에 있어서,
    상기 분할하는 단계는,
    상기 저장 장치의 맵핑 테이블에 저장된 정보가 사용되는 경우, RAM에 맵핑 테이블을 생성하는 단계; 및
    상기 사용된 정보를 상기 RAM의 맵핑 테이블에 업데이트하는 단계
    를 더 포함하는 중복 데이터 제거 방법.
  19. 제18항에 있어서,
    상기 분할하는 단계는,
    상기 RAM의 맵핑 테이블에 저장된 정보의 맵핑 가치를 계산하는 단계; 및
    상기 RAM의 맵핑 테이블에 저장된 정보의 맵핑 가치에 기초하여 상기 RAM의 맵핑 테이블에 저장된 정보를 상기 NVRAM의 맵핑 테이블로 업데이트하는 단계
    를 더 포함하는 중복 데이터 제거 방법.
  20. 제12항에 있어서,
    상기 저장 장치에서 삭제된 데이터가 있는지 여부를 검색하는 단계; 및
    상기 맵핑 테이블에서 상기 삭제된 데이터에 대응하는 정보를 검색하여 삭제하는 단계
    를 더 포함하는 중복 데이터 제거 방법.
  21. 제20항에 있어서,
    상기 검색하는 단계는,
    상기 저장 장치의 상태가 유휴(idle)상태인 경우 실행하는 것을 특징으로 하는 중복 데이터 제거 방법.
  22. 제20항에 있어서,
    상기 검색하는 단계는,
    상기 맵핑 테이블의 크기가 기 설정된 맵핑 테이블의 최대 크기를 초과하는 경우, 실행하는 것을 특징으로 하는 중복 데이터 제거 방법.
KR1020100136767A 2010-12-28 2010-12-28 Nvram을 맵핑 테이블 저장 장치로 사용하는 중복 데이터 제거 시스템 및 방법 KR101350132B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100136767A KR101350132B1 (ko) 2010-12-28 2010-12-28 Nvram을 맵핑 테이블 저장 장치로 사용하는 중복 데이터 제거 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100136767A KR101350132B1 (ko) 2010-12-28 2010-12-28 Nvram을 맵핑 테이블 저장 장치로 사용하는 중복 데이터 제거 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20120074818A KR20120074818A (ko) 2012-07-06
KR101350132B1 true KR101350132B1 (ko) 2014-01-09

Family

ID=46708892

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100136767A KR101350132B1 (ko) 2010-12-28 2010-12-28 Nvram을 맵핑 테이블 저장 장치로 사용하는 중복 데이터 제거 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR101350132B1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101505263B1 (ko) * 2013-03-07 2015-03-24 포항공과대학교 산학협력단 데이터 중복 제거 방법 및 장치
US9489294B2 (en) 2013-06-19 2016-11-08 Sandisk Technologies Llc Data encoding for non-volatile memory
US9489299B2 (en) 2013-06-19 2016-11-08 Sandisk Technologies Llc Data encoding for non-volatile memory
US9117514B2 (en) 2013-06-19 2015-08-25 Sandisk Technologies Inc. Data encoding for non-volatile memory
US9117520B2 (en) 2013-06-19 2015-08-25 Sandisk Technologies Inc. Data encoding for non-volatile memory
US9489300B2 (en) 2013-06-19 2016-11-08 Sandisk Technologies Llc Data encoding for non-volatile memory
US9390008B2 (en) 2013-12-11 2016-07-12 Sandisk Technologies Llc Data encoding for non-volatile memory

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11265308A (ja) * 1998-03-16 1999-09-28 Oki Electric Ind Co Ltd 二重化したハードディスクを有する電子計算機システムにおけるファイル復旧方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11265308A (ja) * 1998-03-16 1999-09-28 Oki Electric Ind Co Ltd 二重化したハードディスクを有する電子計算機システムにおけるファイル復旧方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
비휘발성램을 사용하는 플래시 파일 시스템의 효율적인 메타데이터 관리기법, 여해동 외 1명, 2009년 *

Also Published As

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

Similar Documents

Publication Publication Date Title
US11442640B1 (en) Utilizing unmapped and unknown states in a replicated storage system
US10176117B2 (en) Efficient metadata in a storage system
KR101350132B1 (ko) Nvram을 맵핑 테이블 저장 장치로 사용하는 중복 데이터 제거 시스템 및 방법
US10402339B2 (en) Metadata management in a scale out storage system
JP6445458B2 (ja) ボリューム領域の重複排除
US8799601B1 (en) Techniques for managing deduplication based on recently written extents
CA2810991C (en) Storage system
TWI524348B (zh) 用於複合式非揮發性儲存裝置之資料遷移
US10860232B2 (en) Dynamic adjustment of fingerprints added to a fingerprint index
US9785547B2 (en) Data management apparatus and method
JP6298932B2 (ja) ストレージ装置
US10592150B2 (en) Storage apparatus
US11372576B2 (en) Data processing apparatus, non-transitory computer-readable storage medium, and data processing method
US10482061B1 (en) Removing invalid data from a dataset in advance of copying the dataset
US20210255953A1 (en) Deduplication system threshold based on a type of storage device
JP2017204037A (ja) 情報処理装置、重複除去プログラム、及び重複除去方法
CN113535670A (zh) 一种虚拟化资源镜像存储系统及其实现方法
CN110427347A (zh) 重复数据删除的方法、装置、存储节点及存储介质
US20170351608A1 (en) Host device
US11663234B2 (en) Storage of a small object representation in a deduplication system
KR101252375B1 (ko) 저장 장치의 중복 제거 성능 향상을 위한 맵핑 관리 시스템 및 방법
US20110264848A1 (en) Data recording device
CN114296630B (zh) 机器可读存储介质、数据存储系统和数据存储系统的方法
US9063656B2 (en) System and methods for digest-based storage
JP6419662B2 (ja) ストレージシステム及びデータ重複検出方法

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: 20161227

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee