KR20140141348A - 호스트 장치와 저장 장치가 연계하여 중복 제거 프로세스를 수행하는 방법 및 스토리지 시스템 - Google Patents

호스트 장치와 저장 장치가 연계하여 중복 제거 프로세스를 수행하는 방법 및 스토리지 시스템 Download PDF

Info

Publication number
KR20140141348A
KR20140141348A KR1020130063006A KR20130063006A KR20140141348A KR 20140141348 A KR20140141348 A KR 20140141348A KR 1020130063006 A KR1020130063006 A KR 1020130063006A KR 20130063006 A KR20130063006 A KR 20130063006A KR 20140141348 A KR20140141348 A KR 20140141348A
Authority
KR
South Korea
Prior art keywords
data
unit
stored
storage device
storage
Prior art date
Application number
KR1020130063006A
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 KR1020130063006A priority Critical patent/KR20140141348A/ko
Priority to US14/290,084 priority patent/US20140358872A1/en
Publication of KR20140141348A publication Critical patent/KR20140141348A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus

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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)

Abstract

호스트 장치와 저장 장치가 연계하여 중복 제거 프로세스를 수행하는 방법 및 스토리지 시스템이 개시된다. 일 양상에 따른 적어도 하나 이상의 저장 장치와 연계하여 중복 제거 프로세스를 수행하는 호스트 장치는, 저장하고자 하는 데이터의 해시값(hash value)을 기반으로 데이터의 중복 여부를 검사하는 간략 검사부와, 검사 결과에 따라, 데이터 중복 정밀 검사 요청 또는 데이터 저장 요청과 함께 저장하고자 하는 데이터를 저장 장치로 송신하는 데이터 송신부를 포함할 수 있다.

Description

호스트 장치와 저장 장치가 연계하여 중복 제거 프로세스를 수행하는 방법 및 스토리지 시스템{Storage system and Method for performing deduplication in conjunction with host device and storage device}
중복 제거(deduplication) 기술과 관련된 것으로, 특히, 호스트 장치와 저장 장치가 연계하여 중복 제거 프로세스를 수행하는 방법 및 이를 위한 스트로지 시스템에 관한 것이다.
중복 제거(deduplication)는 동일한 데이터를 중복해서 저장하지 않고 링크값으로 관리 운영함으로써 중복된 데이터를 효율적으로 관리할 수 있게 하는 기술로서 스토리지 사용 효율(storage utilization)을 향상시키고 네트워크 등으로 전송되는 데이터를 줄일 수 있어 대용량 데이터를 위한 스토리지 시스템에 필요하다.
현재까지 중복 제거는 백업용 스토리지를 비롯한 2차 스토리지에 국한되어 활용되어 왔으나, 최근에는 1차 스토리지에도 활용하고자 하는 노력이 증대되고 있다. 이를 위해서는 중복 제거에 의한 오버헤드를 최소화하여 작동 중인 시스템의 동작에 주는 악영향을 줄일 필요가 있다.
호스트 장치와 저장 장치가 연계하여 중복 제거 프로세스를 수행하는 방법 및 스토리지 시스템을 제공하는 것을 목적으로 한다.
일 양상에 따른, 적어도 하나 이상의 저장 장치와 연계하여 중복 제거 프로세스를 수행하는 호스트 장치는, 저장하고자 하는 데이터의 해시값(hash value)을 기반으로 데이터의 중복 여부를 검사하는 간략 검사부와, 검사 결과에 따라, 데이터 중복 정밀 검사 요청 또는 데이터 저장 요청과 함께 상기 저장하고자 하는 데이터를 저장 장치로 송신하는 데이터 송신부를 포함할 수 있다.
간략 검사부는, 저장하고자 하는 데이터의 해시값을 산출하는 해시값 산출부와, 산출된 해시값과 기 저장된 해시값을 비교하는 해시값 비교부를 포함할 수 있다.
저장하고자 하는 데이터는 파일 단위 데이터 또는 블록 단위 데이터일 수 있다.
데이터 송신부는, 저장하고자 하는 데이터가 중복된 데이터인 경우, 저장하고자 하는 데이터와 동일한 해시값을 가진 데이터가 저장되어 있는 저장 장치로 데이터 중복 정밀 검사 요청과 함께 저장하고자 하는 데이터를 송신하고, 저장하고자 하는 데이터가 중복된 데이터가 아닌 경우, 저장하고자 하는 데이터를 저장할 수 있는 저장 장치로 데이터 저장 요청과 함께 저장하고자 하는 데이터를 송신할 수 있다.
다른 양상에 따른, 호스트 장치와 연계하여 중복 제거 프로세스를 수행하는 저장 장치는, 호스트 장치의 데이터 중복 정밀 검사 요청에 따라, 상기 호스트 장치로부터 수신된 데이터를 수신된 데이터와 동일한 해시값을 가지는 기 저장된 데이터와 비교하여 데이터 중복 여부를 검사하는 정밀 검사부와, 검사 결과에 따라 중복된 데이터를 제거하는 중복 제거부를 포함할 수 있다.
정밀 검사부는, 비트 단위 또는 바이트 단위로 양 데이터를 상호 비교할 수 있다.
저장 장치는, 호스트 장치로부터 데이터 저장 요청이 있는 경우 또는 검사 결과, 수신된 데이터가 중복 데이터가 아닌 경우, 수신된 데이터를 저장하는 데이터 저장부를 더 포함할 수 있다.
저장 장치는, 데이터 저장부에 수신된 데이터를 저장하기 전에 수신된 데이터를 압축하는 압축부를 더 포함할 수 있다.
저장 장치는, 데이터 저장부에 수신된 데이터를 저장하기 전에 수신된 데이터를 델타 인코딩하는 델타 인코딩부를 더 포함할 수 있다.
또 다른 양상에 따른, 중복 제거 프로세스를 수행하는 스토리지 시스템은, 저장하고자 하는 데이터의 해시값을 기반으로 데이터의 중복 여부 검사를 수행하고, 검사 결과를 저장 장치로 전달하는 호스트 장치와, 호스트 장치로부터 전달 받은 검사 결과에 따라 저장하고자 하는 데이터를 이와 동일한 해시값을 가지는 기 저장된 데이터와 비교하여 데이터 중복 여부를 정밀 검사하는 저장 장치를 포함할 수 있다.
저장하고자 하는 데이터는, 파일 단위 데이터 또는 블록 단위 데이터일 수 있다.
저장 장치는, 비트 단위 또는 바이트 단위로 상호 비교하여 데이터 중복 여부를 정밀 검사할 수 있다.
저장 장치는, SSD(Solid State Drive 또는 Solid State Disk)로 구현될 수 있다.
저장 장치는, 호스트 장치로부터 전달 받은 검사 결과가 저장하고자 하는 데이터가 중복된 데이터가 아닌 경우, 저장하고자 하는 데이터를 압축 또는 델타 인코딩하여 저장할 수 있다.
또 다른 양상에 따른, 호스트 장치와 저장 장치가 연계하여 중복 제거를 수행하는 방법은, 호스트 장치가 저장하고자 하는 데이터의 해시값(hash value)을 기반으로 데이터 중복 여부를 검사하는 간략 검사 단계와, 저장 장치가 간략 검사 결과에 따라 저장하고자 하는 데이터를 이와 동일한 해시값을 가지는 기 저장된 데이터와 비교하여 데이터 중복 여부를 검사하는 정밀 검사 단계를 포함할 수 있다.
저장하고자 하는 데이터는 파일 단위 데이터 또는 블록 단위 데이터일 수 있다.
정밀 검사 단계는, 비트 단위 또는 바이트 단위로 상호 비교하여 데이터 중복 여부를 검사할 수 있다.
또 다른 양상에 따른, 저장 장치와 연계하여 복수의 서브 프로세스로 구성된 중복 제거 프로세스를 수행하는 호스트 장치는, 저장 장치로부터 저장 장치에 포함된 중복 제거 모듈에 대한 정보를 수신하는 모듈 정보 수신부와, 수신된 중복 제거 모듈 정보를 기반으로 복수의 서브 프로세스 중 일부 또는 전부를 저장 장치에 분담(offloading)시키는 프로세스 분담부를 포함할 수 있다.
중복 제거 모듈 정보는, 중복 제거 모듈의 종류 및 해당 모듈의 기능 정보 중 어느 하나를 포함하되, 중복 제거 모듈은 데이터 중복 간략 검사 모듈, 데이터 중복 정밀 검사 모듈, 압축 모듈, 델타 인코딩 모듈 중 적어도 하나를 포함할 수 있다.
프로세스 분담부는, 저장 장치에 포함된 중복 제거 모듈과 관련된 서브 프로세스를 저장 장치에 분담(offloading)시킬 수 있다.
저장 장치로 중복 제거 프로세스 일부를 부분적으로 분담시킴으로써 호스트에서의 오버헤드를 줄일 수 있어 인라인 중복 제거(inline deduplication)에 활용이 가능하다.
저장 장치 내부에 델타 인코딩(delta encoding)모듈이나 압축(compression) 모듈을 분담(offloading)시킴으로써 호스트 오버헤드를 늘리지 않고 중복 제거 효율을 높일 수 있으므로 용량 절약(capacity saving) 효과를 증대시킬 수 있다.
SSD에 중복 제거를 적용함으로써, 쓰기 횟수를 줄여 SSD의 수명을 연장시킬 수 있다.
도 1은 일 실시 예에 따른 호스트 및 저장 장치가 연계하여 중복 제거 프로세스를 수행하는 스토리지 시스템의 대략적인 구성도이다.
도 2는 도 1의 스토리지 시스템(100)의 상세 구성도이다.
도 3은 일 실시 예에 따른 저장 장치와 연계하여 중복 제거 프로세스를 수행하는 호스트의 중복 제거 프로세스의 분담 방법을 도시한 흐름도이다.
도 4는 일 실시 예에 따른 저장 장치와 연계하여 중복 제거 프로세스를 수행하는 호스트의 구성도이다.
도 5은 일 실시 예에 따른 호스트와 연계하여 중복 제거 프로세스를 수행하는 저장 장치의 구성도이다.
도 6은 다른 실시 예에 따른 호스트와 연계하여 중복 제거 프로세스를 수행하는 저장 장치의 구성도이다.
도 7는 일 실시 예에 따른 저장 장치와 연계하여 중복 제거 프로세스를 수행하는 호스트의 동작 방법을 도시한 흐름도이다.
도 8은 일 실시 예에 따른 호스트와 연계하여 중복 제거 프로세스를 수행하는 저장 장치의 동작 방법을 도시한 흐름도이다.
도 9는 일 실시 예에 따른 호스트와 저장 장치가 연계하여 중복 제거 프로세스를 수행하는 방법을 도시한 흐름도이다.
이하, 첨부된 도면을 참조하여 본 발명의 일 실시 예를 상세하게 설명한다. 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 또한, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 일 실시 예에 따른 호스트 및 저장 장치가 연계하여 중복 제거 프로세스를 수행하는 스토리지 시스템의 대략적인 구성도이고, 도 2는 도 1의 스토리지 시스템의 상세 구성도이다. 도 1 및 도 2를 설명함에 있어, 중복 제거 프로세스는 제 1 프로세스 및 제 2 프로세스로 구성된다고 가정한다.
도 1 및 도 2를 참조하면, 일 실시 예에 따른 스토리지 시스템(100)은 복수의 저장 장치(130a 내지 130c)로 구성된 스토리지(storage) 구조에 적용될 수 있다. 이때, 복수의 저장 장치(130a 내지 130c)로 구성된 스토리지 구조는 복수의 저장 장치(130a 내지 130c)가 단일의 노드로 구성된 스토리지 어레이와 복수의 저장 장치(130a 내지 130c)가 네트워크 등으로 연결된 복수 노드로 나뉘어서 구성된 분산 스토리지 구조 등을 모두 포함할 수 있다. 그러나, 이에 한정되는 것은 아니며, 스토리지 시스템은 단일 저장 장치로 구성된 스토리지 구조에 적용하는 것도 가능하다.
저장 장치(130a 내지 130c)는 SSD(Solid State Drive 또는 Solid State Disk)로 구현될 수 있다. 이는 본 발명이 적용되는 일 실시 예로서, 저장 장치(130a 내지 130c)는 SSD에만 국한되지 않고 다양한 형태로 구현이 가능하다. 예를 들면, 저장 장치(130a 내지 130c)는 하나의 반도체 장치로 집적되어, PC 카드(PCMCIA, Personal Computer Memory Card International Association), 컴팩트 플래시 카드(CF), 스마트 미디어 카드(SM, SMC 등), 메모리 스틱, 멀티미디어 카드(MMC, RS-MMC, MMCmicro 등), SD 카드(SD, miniSD, microSD, SDHC 등), 유니버설 플래시 기억장치(UFS) 등으로 구현될 수도 있다.
호스트(110)는 모듈 정보 수신부(111) 및 프로세스 분담부(112)를 포함할 수 있다.
모듈 정보 수신부(111)는 각 저장 장치(130a 내지 130c)에 포함된 중복 제거 모듈에 대한 정보(이하, 중복 제거 모듈 정보)를 각 저장 장치(130a 내지 130c)로부터 수신할 수 있다. 이때, 중복 제거 모듈은 전체 중복 제거 프로세스 중 일부 또는 전부를 처리하는 모듈로서, 예를 들어, 해시 함수 등을 이용하여 데이터의 중복 여부를 간략하게 검사하는 간략 검사 모듈, 비트 비교(bit-wise comparison) 또는 바이트 비교(byte-wise comparison) 등으로 데이터의 중복 여부를 정밀하게 검사하는 정밀 검사 모듈, 데이터를 압축(compression)하는 압축 모듈, 데이터를 델타 인코딩(delta encoding)하는 델타 인코딩 모듈 등 중 어느 하나 이상일 수 있다. 중복 제거 모듈 정보는 각 저장 장치(130a 내지 130c)에 포함된 중복 제거 모듈의 종류 및 기능 등에 대한 정보를 포함할 수 있다.
프로세스 분담부(112)는 중복 제거 프로세스를 수행하기 위해 호스트(110)와 연계되는 저장 장치(예를 들어, 130a)로부터 수신된 중복 제거 모듈 정보를 바탕으로 해당 저장 장치(예를 들어, 130a)가 전체 중복 제거 프로세스 중 일부 또는 전부를 수행할 수 있도록 해당 저장 장치(예를 들어, 130a)에 전체 중복 제거 프로세스 중 일부 또는 전부를 분담(offloading)시킬 수 있다.
예를 들어, 도2의 예에서, 저장 장치(130a)가 제 2 프로세스를 수행하는 제 2 프로세스 수행부(제 2 중복 제거 모듈)(131)을 포함하고 있는 경우, 프로세스 분담부(112)는 호스트(110)의 제 1 프로세스 수행부(제 1 중복 제거 모듈)(113)가 제 1 프로세스를 수행하고, 저장 장치(130a)의 제 2 프로세스 수행부(제 2 중복 제거 모듈)(131)가 제 2 프로세스를 수행할 수 있도록 제 2 프로세스를 저장 장치(130a)에 분담(offloading)시킬 수 있다.
이에 따르면, 전체 중복 제거 프로세서 중 일부 또는 전부를 저장 장치에 분담(offloading)시킴으로써 중복 제거의 효율을 높이면서 동시에 호스트 오버헤드를 최소화하는 것이 가능하다.
한편, 저장 장치(130b, 130c)는 저장 장치(130a)와 동일한 구성부를 포함하며, 기능 또한 동일하므로, 상술한 저장 장치(130a)에 대한 설명은 저장 장치(130b, 130c)에도 적용될 수 있다.
지금까지, 중복 제거 프로세스가 제 1 프로세스 및 제 2 프로세스로 구성되어 있다고 가정하였으나, 이에 한정되는 것은 아니며, 시스템의 용도 및 성능에 따라 다양한 서브 프로세스가 추가 또는 생략될 수 있다.
도 3은 일 실시 예에 따른 저장 장치와 연계하여 중복 제거 프로세스를 수행하는 호스트의 중복 제거 프로세스의 분담 방법을 도시한 흐름도이다. 이때, 중복 제거 프로세스는 복수의 서브 프로세스로 구성되어 있다고 가정한다.
도 3을 참조하면, 저장 장치와 연계하여 중복 제거 프로세스를 수행하는 호스트의 중복 제거 프로세서의 분담(offloading) 방법은, 먼저, 호스트와 연계하여 중복 제거 프로세스를 수행하는 저장 장치로부터 해당 저장 장치에 포함된 중복 제거 모듈 정보를 수신한다(310).
이때, 중복 제거 모듈은 전체 중복 제거 프로세스 중 일부 또는 전부를 처리하는 모듈로서, 예를 들어, 해시 함수 등을 이용하여 데이터의 중복 여부를 간략하게 검사하는 간략 검사 모듈, 비트 비교(bit-wise comparison) 또는 바이트 비교(byte-wise comparison) 등으로 데이터의 중복 여부를 정밀하게 검사하는 정밀 검사 모듈, 데이터를 압축(compression)하는 압축 모듈, 데이터를 델타 인코딩(delta encoding)하는 델타 인코딩 모듈 등 중 어느 하나 이상일 수 있다. 중복 제거 모듈 정보는 각 저장 장치(130a 내지 130c)에 포함된 중복 제거 모듈의 종류 및 기능 등에 대한 정보를 포함할 수 있다.
그 후, 수신된 중복 제거 모듈 정보를 바탕으로 관련 서브 프로세스를 저장 장치에 분담(offloading)시킨다(320). 예를 들어, 저장 장치가 제 2 프로세스를 수행하는 중복 제거 모듈을 포함하는 경우, 호스트는 제 2 프로세스를 수행하지 아니하고, 제 2 프로세스를 저장 장치에 분담(offloading)시킬 수 있다.
이하, 설명의 편의를 위해 중복 제거 프로세스는 서브 프로세스로서 데이터 중복 여부 간략 검사 프로세스 및 데이터 중복 여부 정밀 검사 프로세스를 포함하며, 저장 장치는 데이터 중복 여부 정밀 검사 프로세스를 수행하기 위한 정밀 검사 모듈을 포함한다고 가정한다.
도 4는 일 실시 예에 따른 저장 장치와 연계하여 중복 제거 프로세스를 수행하는 호스트의 구성도이다.
도 4를 참조하면, 호스트(400)는 간략 검사부(420) 및 데이터 송신부(430)를 포함할 수 있다.
간략 검사부(420)는 저장하고자 하는 데이터(이하, 저장 요청 데이터)의 해시값과 기 저장된 해시값을 비교하여 데이터의 중복 여부를 간략하게 검사할 수 있다. 이를 위해, 간략 검사부(420)는 해시값 산출부(421), 해시값 저장부(422) 및 해시값 비교부(423)를 포함할 수 있다.
해시값 산출부(421)는 해시 알고리즘 또는 해시 함수 등을 이용하여 저장 요청 데이터의 해시값을 산출할 수 있다. 일 예를 들면, 해시값 산출부(421)는 GOST, HAVAL, MD2, MD4, MD5, PANAMA, RadioGatun, RIPEMD, RIPEMD-128/256, RIPEMD-160, RIPEMD-320, SHA-0, SHA-1, SHA-256/224, SHA-512/384, SHA-3, WHIRLPOOL 등을 이용하여 저장 요청 데이터의 해시값을 산출할 수 있다.
또한, 후술하는 바와 같이, 호스트(400)와 연계되는 저장 장치가 델타 인코딩(delta encoding) 모듈을 포함하고 있는 경우, 해시값 산출부(421)는 크립토그래픽 해시(cryptographic hash) 방식이 아닌 유사도 기반의 해시(similarity based hash)를 사용하여 해시값을 산출할 수 있다. 크립토그래픽 해시(cryptographic hash)는 데이터가 조금만 달라지더라도 해시값이 많이 바뀌지만, 유사도 기반의 해시(similarity based hash)는 데이터가 조금 달라진다면 해시값이 거의 바뀌지 않아 해시값의 비교로 데이터 자체의 유사도를 측정할 수 있는 장점이 있기 때문이다. 이 경우, 간략 검사 결과, 저장 요청 데이터가 중복 데이터가 아니라고 판단되는 경우, 호스트(400)는 저장 요청 데이터와 유사한 해시값을 가진 데이터가 저장된 저장 장치로 저장 요청 데이터를 전송할 수 있다.
해시값 저장부(422)는 해시값 산출부(421)에서 산출된 해시값을 해시 테이블의 형태로 저장할 수 있다.
해시값 비교부(423)는 해시값 산출부(421)에서 산출된 해시값과 해시값 저장부(422)에 기 저장된 해시값을 비교하여, 데이터의 중복 여부를 간략하게 판단할 수 있다. 예를 들면, 해시값 비교부(423)는 산출된 해시값과 동일한 해시값이 존재하는 경우 저장 요청 데이터는 중복된 데이터라고 판단하고, 산출된 해시값과 동일한 해시값이 존재하지 않는 경우 저장 요청 데이터는 중복된 데이터가 아니라고 판단할 수 있다.
한편, 해시 알고리즘 또는 해시 함수에 의한 해시값 비교는 서로 다른 데이터가 동일한 해시값을 갖게 되는 충돌(collision) 문제를 일으킬 확률이 있다. 이를 피하기 위해 비트 비교(bit-wise comparison) 또는 바이트 비교(byte-wise comparison)를 통한 정밀 검사를 수행한다면 작은 사이즈의 해시값이 산출되는 해시 함수 즉, 충돌 확률이 높은 해시 함수를 이용하여도 충돌 자유(collision free)를 보장할 수 있게 된다. 중복 제거에서 해시 함수를 이용하여 산출한 해시값은 파일 단위 데이터 또는 청크 단위 데이터의 해시값으로 사용되고 RAM(예를 들어, 해시값 저장부(423))에 저장되는데, 파일 단위 또는 청크 단위의 크기가 작을수록 또는 많은 양의 데이터를 처리할수록, RAM(예를 들어, 해시값 저장부(423) 등) 사용량이 늘어나게 된다. 즉, 비트 비교(bit-wise comparison) 또는 바이트 비교(byte-wise comparison)를 통한 정밀 검사를 수행한다면, 256 bit의 SHA-256 해시 함수를 쓰던 것을 128 bit의 MD5 해시 함수로 대체하더라도 충돌 자유(collision free)를 보장 할 수 있다.
또한, 데이터 중복 여부 간략 검사 시, 해시 함수에 의한 해시값보다 작은 값을 갖는 다른 시그니처(signature) 방식 또는 핑거 프린팅(fingerprinting) 방식으로 대체하는 것도 가능하다. 즉, 간략 검사부(420)는 해시 함수로 산출된 해시값을 비교하는 방식이 아닌 다른 방식으로 데이터의 중복 여부를 간략하게 검사하는 것도 가능하다.
데이터 송신부(430)는 해시값 비교부(423)의 비교 결과, 해시값 산출부(421)에서 산출된 해시값과 동일한 해시값이 해시값 저장부(222)에 기 저장되어 있는 경우, 해당 해시값을 가진 데이터가 저장된 저장 장치로 정밀 검사 요청 신호와 함께 저장 요청 데이터를 송신할 수 있다.
또한, 데이터 송신부(430)는 해시값 비교부(423)의 비교 결과, 해시값 산출부(421)에서 산출된 해시값과 동일한 해시값이 해시값 저장부(422)에 기 저장되어 있지 않은 경우, 저장 요청 데이터를 저장할 수 있는 저장 장치로 데이터 저장 요청 신호와 함께 저장 요청 데이터를 송신할 수 있다. 이 경우, 저장 장치가 델타 인코딩 모듈을 탑재하고 있는 경우, 데이터 송신부(430)는 저장 요청 데이터와 유사한 해시값을 가지는 데이터가 저장된 저장 장치로 저장 요청 데이터를 송신할 수 있다.
한편, 일 실시 예에 따르면, 호스트(400)는 정밀 검사 요청 신호, 데이터 저장 요청 신호 등을 생성하는 요청 신호 생성부(미도시)를 더 포함할 수 있다.
한편, 일 실시 예에 따르면, 저장 요청 데이터는 파일 단위 데이터 또는 블록(block) 단위 데이터일 수 있다. 저장 요청 데이터가 블록 단위 데이터인 경우, 호스트(400)는 청킹부(410)를 더 포함할 수 있다.
청킹부(410)는 사용자로부터 새로운 데이터(저장 요청 데이터)에 대한 저장 요청을 받은 경우, 저장 요청 데이터를 청킹(chunking)하여 블록 단위 데이터를 생성할 수 있다. 예를 들면, 청킹부(410)는 저장 요청 데이터를 고정 길이로 청킹(fixed length chunking)하거나 가변 길이로 청킹(variable length chunking)할 수 있다. 또한, 청킹부(410)는 필요에 따라 작은 크기의 데이터들을 모아 좀더 큰 블록 단위 데이터로 만드는 것도 가능하다.
추가적 실시 예에 따르면, 호스트(400)는 데이터 수신부(440)를 더 포함할 수 있다. 데이터 수신부(440)는 호스트와 연계하여 중복 제거 프로세스를 수행하는 저장 장치로부터 중복 제거 수행 결과를 수신할 수 있다. 이때, 호스트(400)는 수신된 중복 제거 수행 결과를 캐시(cache) 정책 등에 활용할 수 있으며, 해시값 저장부(422)의 해시 테이블을 업데이트하는 데에 활용할 수도 있다.
도 5은 일 실시 예에 따른 호스트와 연계하여 중복 제거 프로세스를 수행하는 저장 장치의 구성도이다.
도 5을 참조하면, 일 실시 예에 따른 저장 장치(500)는 정밀 검사부(520) 및 중복 제거부(530) 및 데이터 저장부(550)를 포함할 수 있다.
정밀 검사부(520)는 정밀 검사 모듈로서, 호스트의 정밀 검사 요청 신호에 따라 호스트로부터 수신된 저장 요청 데이터를 기 저장된 데이터와 비교하여 데이터 중복 여부를 정밀하게 검사할 수 있다. 일 실시 예에 따르면, 정밀 검사부(520)는 저장 요청 데이터를 이와 해시값이 동일한 기 저장된 데이터와 비트 비교(bit-wise comparison), 바이트 비교(byte-wise comparison) 등을 통하여 양 데이터가 동일한지 비교할 수 있다.
중복 제거부(530)는 정밀 검사부(520)의 정밀 검사 결과, 호스트로부터 수신된 저장 요청 데이터가 기 저장된 데이터와 동일한 경우, 저장 요청 데이터를 제거할 수 있다. 일 실시 예에 따르면, 중복 제거부(530)는 저장 요청 데이터와 동일한 데이터에 대해 포인터를 링크시키고 저장 요청 데이터를 저장하지 않고 제거할 수 있다.
데이터 저장부(550)는 호스트로부터 데이터 저장 요청이 있는 경우 또는 정밀 검사부(520)의 정밀 검사 결과, 호스트로부터 수신된 저장 요청 데이터가 기 저장된 데이터와 중복된 데이터가 아닌 경우, 저장 요청 데이터를 저장할 수 있다. 이러한, 데이터 저장부(550)는 플래시 메모리(예를 들어, 낸드 플래시 메모리)일 수 있으나 이에 한정되는 것은 아니다. 예를 들어, 데이터 저장부(550)는 PRAM, FRAM, MRAM 등과 같은 다른 형태의 비휘발성 메모리일 수 있다.
추가적 실시 예에 따르면, 저장 장치(500)는 호스트로부터 수신된 저장 요청 데이터를 압축하는 압축부(540)를 더 포함할 수 있다. 압축부(540)는 압축 모듈로서, 저장 요청 데이터를 데이터 저장부(550)에 저장하기 전에 압축할 수 있다.
중복 제거를 수행한 후에 압축을 적용하면, 용량 절약(capacity saving) 효과는 더욱 커질 수 있는데, 압축을 저장 장치(500)에서 수행함으로써 호스트에서의 압축으로 인한 프로세싱 오버헤드를 줄이는 것이 가능하다. 일반적으로 청크 사이즈(chunk size)를 작게 할수록 중복 제거 효율은 증가하지만 프로세싱 오버헤드는 늘어난다. 그러나, 압축의 경우에는 청크 사이즈가 클수록 압축 효과가 크다. 따라서 작은 청크 사이즈로 중복 제거를 하고 압축을 하는 경우보다 큰 청크 사이즈로 중복 제거를 하고 압축을 하는 경우의 용량 절약(capacity saving) 효과가 더 클 수 있다. 이는 압축을 하는 경우, 청크 사이즈를 키워도 동일한 용량 절약(capacity saving) 효과를 얻을 수 있어, 해시 테이블의 크기를 줄이고, 중복 제거 처리량(deduplication throughput)을 향상 시킬 수 있어 결과적으로 중복 제거 프로세싱 오버헤드를 줄여 중복 제거 수행 시간을 절약하는 효과를 얻는 것이 가능하다.
추가적 실시 예에 따르면, 저장 장치(500)는 데이터 수신부(510) 및 데이터 송신부(560)를 더 포함할 수 있다.
데이터 수신부(510)는 호스트로부터 정밀 검사 요청 신호와 함께 저장 요청 데이터를 수신할 수 있다. 또한, 데이터 수신부(510)는 호스트로부터 데이터 저장 요청 신호와 함께 저장 요청 데이터를 수신할 수 있다. 데이터 송신부(560)는 중복 제거 수행 결과를 호스트에 송신할 수 있다.
도 6은 다른 실시 예에 따른 호스트와 연계하여 중복 제거 프로세스를 수행하는 저장 장치의 구성도이다.
도 6을 참조하면, 다른 실시 예에 따른 저장 장치(600)는 데이터 수신부(610), 정밀 검사부(620), 중복 제거부(630), 델타 인코딩부(640), 데이터 저장부(650) 및 데이터 송신부(660)를 포함할 수 있다.
도 5의 저장 장치(500)와 비교하면, 델타 인코딩부(640)를 제외한 나머지 구성은 동일함을 알 수 있다. 즉, 데이터 수신부(610), 정밀 검사부(620), 중복 제거부(630), 데이터 저장부(650) 및 데이터 송신부(660)는 도 5의 각 구성부와 동일한 기능을 수행한다. 따라서, 그 상세한 설명은 생략하기로 한다.
델타 인코딩부(640)는 도 5의 압축부(540)에 대응되는 구성으로, 델타 인코딩 모듈로서, 저장 요청 데이터를 데이터 저장부(650)에 저장하기 전에 델타 인코딩할 수 있다.
도 7는 일 실시 예에 따른 저장 장치와 연계하여 중복 제거 프로세스를 수행하는 호스트의 동작 방법을 도시한 흐름도이다.
도 7를 참조하면, 일 실시 예에 따른 호스트의 동작 방법은, 먼저, 저장 요청 데이터의 해시값을 산출한다(710). 예를 들어, 해시 알고리즘 또는 해시 함수(예를 들어,GOST, HAVAL, MD2, MD4, MD5, PANAMA, RadioGatun, RIPEMD, RIPEMD-128/256, RIPEMD-160, RIPEMD-320, SHA-0, SHA-1, SHA-256/224, SHA-512/384, SHA-3, WHIRLPOOL 등)를 이용하여 저장 요청 데이터의 해시값을 산출할 수 있다.
그 후, 산출된 해시값을 기 저장된 해시값과 비교하고(720), 산출된 해시값과 동일한 해시값이 존재하는 지 판단한다(730).
단계 730의 판단 결과, 산출된 해시값과 동일한 해시값이 존재하는 경우, 동일한 해시값을 가진 데이터가 저장되어 있는 저장 장치로 저장 요청 데이터를 정밀 검사 요청 신호와 함께 송신한다(740).
단계 730의 판단 결과, 산출된 해시값과 동일한 해시값이 존재하지 않는 경우, 저장 요청 데이터를 저장할 수 있는 저장 장치 또는 저장 요청 데이터와 유사한 해시값을 가지는 데이터가 저장되어 있는 저장 장치로 저장 요청 데이터를 데이터 저장 요청 신호와 함께 송신한다(760). 예를 들어, 저장 장치가 델타 인코딩 모듈을 포함하고 있는 경우는 저장 요청 데이터와 유사한 해시값을 가지는 데이터가 저장되어 있는 저장 장치로 저장 요청 데이터를 송신하고, 그렇지 않는 경우는 저장 요청 데이터를 저장할 수 있는 저장 장치로 저장 요청 데이터를 송신할 수 있다.
한편, 저장 요청 데이터는 파일 단위 데이터 또는 블록 단위 데이터일 수 있다. 저장 요청 데이터가 블록 단위 데이터인 경우, 호스트의 중복 제거 방법은 저장 요청 데이터를 청킹하는 과정(705)를 더 포함할 수 있다.
도 8은 일 실시 예에 따른 호스트와 연계하여 중복 제거 프로세스를 수행하는 저장 장치의 동작 방법을 도시한 흐름도이다.
도 8을 참조하면, 일 실시 예에 따른 저장 장치의 동작 방법은, 호스트로부터 저장 요청 데이터 및 요청 신호를 수신하고(810), 수신된 요청 신호가 정밀 검사 요청 신호인지, 데이터 저장 요청 신호인지를 판단한다(820).
수신된 요청 신호가 정밀 검사 요청 신호인 경우, 수신된 저장 요청 데이터를 기 저장된 데이터와 비교하여 데이터 중복 여부를 정밀하게 검사하여(830), 기 저장된 데이터 중에서 수신된 저장 요청 데이터와 동일한 데이터가 존재하는 지 여부를 판단한다(840). 예를 들면, 저장 요청 데이터를 이와 해시값이 동일한 기 저장된 데이터와 비트 단위로 비교(bit-wise comparison)하거나, 바이트 단위로 비교(byte-wise comparison)하여 데이터 중복 여부를 판단할 수 있다.
단계 840의 판단 결과, 동일한 데이터가 존재하는 경우, 중복된 데이터인 저장 요청 데이터를 제거하고(850), 동일한 데이터가 존재하지 않는 경우, 저장 요청 데이터를 압축 또는 델타 인코딩 하고(860), 압축 또는 델타 인코딩된 저장 요청 데이터를 저장한다(870).
도 9는 일 실시 예에 따른 호스트와 저장 장치가 연계하여 중복 제거 프로세스를 수행하는 방법을 도시한 흐름도이다.
도 9를 참조하면, 호스트와 저장 장치가 연계하여 중복 제거 프로세스를 수행하는 방법은 먼저, 호스트가 저장하고자 하는 데이터의 중복 여부를 간략하게 검사하고, 간략 검사 결과를 저장 장치로 전달한다(910). 예를 들어, 호스트(110)는 저장하고자 하는 데이터의 해시값을 산출하고, 산출된 해시값을 기 저장된 해시값과 비교하여 데이터의 중복 여부를 간략하게 검사할 수 있다. 이때, 저장하고자 하는 데이터는 파일 단위 데이터 또는 블록 단위 데이터일 수 있다.
그 후, 호스트로부터 전달 받은 간략 검사 결과에 따라, 저장 장치가 데이터의 중복 여부를 정밀하게 검사한다(920). 예를 들어, 간략 검사 결과 중복된 데이터라고 판단 되는 경우, 저장 장치(130a)는 저장하고자 하는 데이터를 이와 해시값이 동일한 기 저장된 데이터와 비트 단위 또는 바이트 단위로 비교하여 데이터 중복 여부를 정밀하게 검사할 수 있다.
한편, 도시되지는 않았지만, 중복 제거 프로세스 수행 방법은 저장하고자 하는 데이터가 단계 910 또는 단계 920의 결과에 비추어 중복된 데이터가 아닌 경우, 저장 장치가 저장하고자 하는 데이터를 압축 또는 델타 인코딩을 수행하여 저장하는 단계를 더 포함할 수 있다.
본 발명의 일 양상은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있다. 상기의 프로그램을 구현하는 코드들 및 코드 세그먼트들은 당해 분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함할 수 있다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 디스크 등을 포함할 수 있다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드로 작성되고 실행될 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시 예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 따라서, 본 발명의 범위는 전술한 실시 예에 한정되지 않고 특허 청구범위에 기재된 내용과 동등한 범위 내에 있는 다양한 실시 형태가 포함되도록 해석되어야 할 것이다.
100: 스토리지 시스템, 110, 400: 호스트,
130a 내지 130c: 저장 장치, 410: 청킹부,
420: 간략 검사부, 421: 해시값 산출부,
422: 해시값 저장부, 423: 해시값 비교부,
430: 데이터 송신부, 440: 데이터 수신부.

Claims (20)

  1. 적어도 하나 이상의 저장 장치와 연계하여 중복 제거 프로세스를 수행하는 호스트 장치에 있어서,
    저장하고자 하는 데이터의 해시값(hash value)을 기반으로 데이터의 중복 여부를 검사하는 간략 검사부; 및
    상기 검사 결과에 따라, 데이터 중복 정밀 검사 요청 또는 데이터 저장 요청과 함께 상기 저장하고자 하는 데이터를 저장 장치로 송신하는 데이터 송신부; 를 포함하는 호스트 장치.
  2. 제 1항에 있어서,
    상기 간략 검사부는,
    상기 저장하고자 하는 데이터의 해시값을 산출하는 해시값 산출부; 및
    상기 산출된 해시값과 기 저장된 해시값을 비교하는 해시값 비교부; 를 포함하는 호스트 장치.
  3. 제 1항에 있어서,
    상기 저장하고자 하는 데이터는 파일 단위 데이터 또는 블록 단위 데이터인 호스트 장치.
  4. 제 1항에 있어서,
    상기 데이터 송신부는,
    상기 저장하고자 하는 데이터가 중복된 데이터인 경우, 상기 저장하고자 하는 데이터와 동일한 해시값을 가진 데이터가 저장되어 있는 저장 장치로 상기 데이터 중복 정밀 검사 요청과 함께 상기 저장하고자 하는 데이터를 송신하고,
    상기 저장하고자 하는 데이터가 중복된 데이터가 아닌 경우, 상기 저장하고자 하는 데이터를 저장할 수 있는 저장 장치로 상기 데이터 저장 요청과 함께 상기 저장하고자 하는 데이터를 송신하는 호스트 장치.
  5. 호스트 장치와 연계하여 중복 제거 프로세스를 수행하는 저장 장치에 있어서,
    상기 호스트 장치의 데이터 중복 정밀 검사 요청에 따라, 상기 호스트 장치로부터 수신된 데이터를 상기 수신된 데이터와 동일한 해시값을 가지는 기 저장된 데이터와 비교하여 데이터 중복 여부를 검사하는 정밀 검사부; 및
    상기 검사 결과에 따라 중복된 데이터를 제거하는 중복 제거부; 를 포함하는 저장 장치.
  6. 제 5항에 있어서,
    상기 정밀 검사부는, 비트 단위 또는 바이트 단위로 양 데이터를 상호 비교하는 저장 장치.
  7. 제 5항에 있어서,
    상기 호스트 장치로부터 데이터 저장 요청이 있는 경우 또는 상기 검사 결과 상기 수신된 데이터가 중복 데이터가 아닌 경우, 상기 수신된 데이터를 저장하는 데이터 저장부; 를 더 포함하는 저장 장치.
  8. 제 7항에 있어서,
    상기 데이터 저장부에 상기 수신된 데이터를 저장하기 전에 상기 수신된 데이터를 압축하는 압축부; 를 더 포함하는 저장 장치.
  9. 제 7항에 있어서,
    상기 데이터 저장부에 상기 수신된 데이터를 저장하기 전에 상기 수신된 데이터를 델타 인코딩하는 델타 인코딩부; 를 더 포함하는 저장 장치.
  10. 중복 제거 프로세스를 수행하는 스토리지 시스템에 있어서,
    저장하고자 하는 데이터의 해시값(hash value)을 기반으로 데이터의 중복 여부 검사를 수행하고, 상기 검사 결과를 저장 장치로 전달하는 호스트 장치; 및
    상기 호스트 장치로부터 전달 받은 검사 결과에 따라 상기 저장하고자 하는 데이터를 이와 동일한 해시값을 가지는 기 저장된 데이터와 비교하여 데이터 중복 여부를 정밀 검사하는 저장 장치; 를 포함하는 스토리지 시스템.
  11. 제 10항에 있어서,
    상기 저장하고자 하는 데이터는 파일 단위 데이터 또는 블록 단위 데이터인 스토리지 시스템.
  12. 제 10항에 있어서,
    상기 저장 장치는, 비트 단위 또는 바이트 단위로 상호 비교하여 데이터 중복 여부를 정밀 검사하는 스토리지 시스템.
  13. 제 10항에 있어서,
    상기 저장 장치는, SSD(Solid State Drive 또는 Solid State Disk)로 구현되는 스토리지 시스템.
  14. 제 10항에 있어서,
    상기 저장 장치는, 상기 호스트 장치로부터 전달 받은 검사 결과가 상기 저장하고자 하는 데이터가 중복된 데이터가 아닌 경우, 상기 저장하고자 하는 데이터를 압축 또는 델타 인코딩하여 저장하는 스토리지 시스템.
  15. 호스트 장치와 저장 장치가 연계하여 중복 제거(deduplication)를 수행하는 방법에 있어서,
    상기 호스트 장치가 저장하고자 하는 데이터의 해시값(hash value)을 기반으로 데이터 중복 여부를 검사하는 간략 검사 단계; 및
    상기 저장 장치가 상기 간략 검사 결과에 따라 상기 저장하고자 하는 데이터를 이와 동일한 해시값을 가지는 기 저장된 데이터와 비교하여 데이터 중복 여부를 검사하는 정밀 검사 단계; 를 포함하는 중복 제거 수행 방법.
  16. 제 15항에 있어서,
    상기 저장하고자 하는 데이터는 파일 단위 데이터 또는 블록 단위 데이터인 중복 제거 수행 방법.
  17. 제 15항에 있어서,
    상기 정밀 검사 단계는, 비트 단위 또는 바이트 단위로 상호 비교하여 데이터 중복 여부를 검사하는 중복 제거 수행 방법.
  18. 저장 장치와 연계하여 복수의 서브 프로세스로 구성된 중복 제거 프로세스를 수행하는 호스트 장치에 있어서,
    상기 저장 장치로부터 상기 저장 장치에 포함된 중복 제거 모듈에 대한 정보를 수신하는 모듈 정보 수신부; 및
    상기 수신된 중복 제거 모듈 정보를 기반으로 상기 복수의 서브 프로세스 중 일부 또는 전부를 상기 저장 장치에 분담(offloading)시키는 프로세스 분담부; 를 포함하는 호스트 장치.
  19. 제 18항에 있어서,
    상기 중복 제거 모듈 정보는,
    중복 제거 모듈의 종류 및 해당 모듈의 기능 정보 중 어느 하나를 포함하되,
    상기 중복 제거 모듈은 데이터 중복 간략 검사 모듈, 데이터 중복 정밀 검사 모듈, 압축 모듈, 델타 인코딩 모듈 중 적어도 하나를 포함하는 호스트 장치.
  20. 제 18항에 있어서,
    상기 프로세스 분담부는, 상기 저장 장치에 포함된 중복 제거 모듈과 관련된 서브 프로세스를 상기 저장 장치에 분담(offloading)시키는 호스트 장치.








KR1020130063006A 2013-05-31 2013-05-31 호스트 장치와 저장 장치가 연계하여 중복 제거 프로세스를 수행하는 방법 및 스토리지 시스템 KR20140141348A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130063006A KR20140141348A (ko) 2013-05-31 2013-05-31 호스트 장치와 저장 장치가 연계하여 중복 제거 프로세스를 수행하는 방법 및 스토리지 시스템
US14/290,084 US20140358872A1 (en) 2013-05-31 2014-05-29 Storage system and method for performing deduplication in conjunction with host device and storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130063006A KR20140141348A (ko) 2013-05-31 2013-05-31 호스트 장치와 저장 장치가 연계하여 중복 제거 프로세스를 수행하는 방법 및 스토리지 시스템

Publications (1)

Publication Number Publication Date
KR20140141348A true KR20140141348A (ko) 2014-12-10

Family

ID=51986313

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130063006A KR20140141348A (ko) 2013-05-31 2013-05-31 호스트 장치와 저장 장치가 연계하여 중복 제거 프로세스를 수행하는 방법 및 스토리지 시스템

Country Status (2)

Country Link
US (1) US20140358872A1 (ko)
KR (1) KR20140141348A (ko)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101685839B1 (ko) * 2015-09-10 2016-12-12 성균관대학교산학협력단 플래시 메모리에 대한 중복 제거 방법 및 ssd에 대한 오프라인 중복 제거를 지원하는 호스트 장치
KR101962347B1 (ko) 2017-12-27 2019-03-26 고려대학교 산학협력단 포그 컴퓨팅 환경에서의 하이브리드 데이터 중복제거 방법
KR20190109151A (ko) * 2018-03-16 2019-09-25 넷마블 주식회사 로그 데이터 처리 장치 및 방법
US10437784B2 (en) 2015-01-30 2019-10-08 SK Hynix Inc. Method and system for endurance enhancing, deferred deduplication with hardware-hash-enabled storage device
US10460774B2 (en) 2016-09-28 2019-10-29 SK Hynix Inc. Apparatus and method capable of removing duplication write of data in memory
KR20200015652A (ko) 2018-03-16 2020-02-12 넷마블 주식회사 로그 데이터 처리 장치 및 방법
US10579264B2 (en) 2017-02-02 2020-03-03 SK Hynix Inc. Memory system and operating method thereof
KR20210023149A (ko) * 2019-08-22 2021-03-04 하권목 데이터 연계 장치 및 방법
WO2021225628A1 (en) * 2020-05-08 2021-11-11 Intel Corporation Memory allocation for distributed processing devices

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150002297A (ko) * 2013-06-28 2015-01-07 삼성전자주식회사 스토리지 시스템 및 그의 동작 방법
US20160162218A1 (en) * 2014-12-03 2016-06-09 International Business Machines Corporation Distributed data deduplication in enterprise networks
US10073878B1 (en) 2015-01-05 2018-09-11 SK Hynix Inc. Distributed deduplication storage system with messaging
US10489288B2 (en) * 2017-01-25 2019-11-26 Samsung Electronics Co., Ltd. Algorithm methodologies for efficient compaction of overprovisioned memory systems
US10691340B2 (en) 2017-06-20 2020-06-23 Samsung Electronics Co., Ltd. Deduplication of objects by fundamental data identification
CN109831487B (zh) * 2019-01-08 2022-05-13 平安科技(深圳)有限公司 分片文件验证方法及终端设备
KR20210042752A (ko) * 2019-10-10 2021-04-20 삼성전자주식회사 이미지 백업을 수행하는 컴퓨팅 시스템 및 이미지 백업 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2166420C (en) * 1993-07-01 2006-03-28 James R. Woodhill System and method for distributed storage management on networked computer systems
US9081771B1 (en) * 2010-12-22 2015-07-14 Emc Corporation Encrypting in deduplication systems

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10437784B2 (en) 2015-01-30 2019-10-08 SK Hynix Inc. Method and system for endurance enhancing, deferred deduplication with hardware-hash-enabled storage device
KR101685839B1 (ko) * 2015-09-10 2016-12-12 성균관대학교산학협력단 플래시 메모리에 대한 중복 제거 방법 및 ssd에 대한 오프라인 중복 제거를 지원하는 호스트 장치
US10460774B2 (en) 2016-09-28 2019-10-29 SK Hynix Inc. Apparatus and method capable of removing duplication write of data in memory
US10579264B2 (en) 2017-02-02 2020-03-03 SK Hynix Inc. Memory system and operating method thereof
KR101962347B1 (ko) 2017-12-27 2019-03-26 고려대학교 산학협력단 포그 컴퓨팅 환경에서의 하이브리드 데이터 중복제거 방법
KR20190109151A (ko) * 2018-03-16 2019-09-25 넷마블 주식회사 로그 데이터 처리 장치 및 방법
KR20200015652A (ko) 2018-03-16 2020-02-12 넷마블 주식회사 로그 데이터 처리 장치 및 방법
KR20210023149A (ko) * 2019-08-22 2021-03-04 하권목 데이터 연계 장치 및 방법
WO2021225628A1 (en) * 2020-05-08 2021-11-11 Intel Corporation Memory allocation for distributed processing devices
US11934330B2 (en) 2020-05-08 2024-03-19 Intel Corporation Memory allocation for distributed processing devices

Also Published As

Publication number Publication date
US20140358872A1 (en) 2014-12-04

Similar Documents

Publication Publication Date Title
KR20140141348A (ko) 호스트 장치와 저장 장치가 연계하여 중복 제거 프로세스를 수행하는 방법 및 스토리지 시스템
US10552040B2 (en) Fixed size extents for variable size deduplication segments
US9690802B2 (en) Stream locality delta compression
US8751462B2 (en) Delta compression after identity deduplication
US9792350B2 (en) Real-time classification of data into data compression domains
US9928248B2 (en) Self-healing by hash-based deduplication
US7478113B1 (en) Boundaries
US8620877B2 (en) Tunable data fingerprinting for optimizing data deduplication
CN108427539B (zh) 缓存设备数据的离线去重压缩方法、装置及可读存储介质
US10416915B2 (en) Assisting data deduplication through in-memory computation
CN109918018B (zh) 一种数据存储方法及存储设备
US8849772B1 (en) Data replication with delta compression
US11068405B2 (en) Compression of host I/O data in a storage processor of a data storage system with selection of data compression components based on a current fullness level of a persistent cache
US20050131939A1 (en) Method and apparatus for data redundancy elimination at the block level
US20120191672A1 (en) Dictionary for data deduplication
US10783145B2 (en) Block level deduplication with block similarity
US20190379394A1 (en) System and method for global data compression
KR20180052739A (ko) 고체 상태 드라이브 컨트롤러를 사용한 데이터 중복 제거
US11366790B2 (en) System and method for random-access manipulation of compacted data files
CN110618974A (zh) 一种数据存储方法、装置、设备及存储介质
US9697223B2 (en) Providing identifiers to data files in a data deduplication system
KR20210113297A (ko) 컴퓨터 메모리 내의 복제 및 밸류 중복성을 제거하기 위한 시스템, 방법, 및 장치
US9176973B1 (en) Recursive-capable lossless compression mechanism
US11349494B2 (en) Data compression apparatus and data compression method
US11748307B2 (en) Selective data compression based on data similarity

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid