KR20140128403A - 암호화에 의해 데이터 중복제거 시스템에서 리던던시를 보존하는 기술 - Google Patents

암호화에 의해 데이터 중복제거 시스템에서 리던던시를 보존하는 기술 Download PDF

Info

Publication number
KR20140128403A
KR20140128403A KR20147024578A KR20147024578A KR20140128403A KR 20140128403 A KR20140128403 A KR 20140128403A KR 20147024578 A KR20147024578 A KR 20147024578A KR 20147024578 A KR20147024578 A KR 20147024578A KR 20140128403 A KR20140128403 A KR 20140128403A
Authority
KR
South Korea
Prior art keywords
selected data
data segment
data
computer program
encrypted
Prior art date
Application number
KR20147024578A
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 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20140128403A publication Critical patent/KR20140128403A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations
    • G06F16/24556Aggregation; Duplicate elimination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0623Securing storage systems in relation to content
    • 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
    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Automation & Control Theory (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computational Linguistics (AREA)
  • Storage Device Security (AREA)

Abstract

컴퓨팅 환경 내 데이터 중복제거 시스템에서 데이터 리던던시를 보존하기 위한 여러 가지 실시예들이 제공된다. 일 실시예에서, 이러한 보존 방법이 개시된다. 데이터 중복제거 시스템을 통해 라이트될 선택된 데이터 세그먼트가 암호화되어, 상기 선택된 데이터 세그먼트가 중복제거 동작을 받지 않도록 한다. 다른 시스템들 및 컴퓨터 프로그램 제품 실시예가 개시되며 그것과 관련된 이점들을 제공한다.

Description

암호화에 의해 데이터 중복제거 시스템에서 리던던시를 보존하는 기술{PRESERVING REDUNDANCY IN DATA DEDUPLICATION SYSTEMS BY ENCRYPTION}
본 발명은 일반적으로 컴퓨터들과 관련되고, 더 구체적으로는 데이터 중복제거 시스템들(data deduplication systems)이 편입될 수 있는 컴퓨팅 환경들(computing environments)에서 리던던시(redundancy) 및 다른 데이터 보안 특징을 보존하기 위한 방법, 시스템, 및 컴퓨터 프로그램 제품과 관련된다.
컴퓨터들 및 컴퓨터 시스템들은 오늘날의 사회에서 여러 가지 세팅들(settings)에서 발견될 수 있다. 컴퓨팅 환경들 및 네트워크들은 가정에서, 직장에서, 학교에서, 정부에서, 및 다른 세팅들에서 발견될 수 있다. 컴퓨팅 환경들은 점점 더, 많은 경우 사용자에게 제공되는 로컬 인터페이스에서 떨어져 있는 하나 또는 그 이상의 스토리지 환경들(storage environments)에서 데이터를 저장한다.
이들 컴퓨팅 스토리지 환경들은, 대규모의 데이터를 저장, 검색(retrieve), 및 업데이트하기 위해 - 그런 다음 그 데이터를 요청하거나 전송하는 호스트 컴퓨터로 제공될 수 있음 - , 종종 협력하여 작동하는, 디스크 드라이브들과 같은 많은 스토리지 디바이스들을 사용할 수 있다. 어떤 경우, 다수의 데이터 스토리지 서브시스템들은 단일 데이터 스토리지 시스템으로 집합적으로 관리된다. 이들 서브시스템들은, 몇 대의 처리 장치들 또는 처리 장치들의 클러스터들을 결합하는 호스트 "시스플렉스(sysplex)"(시스템 콤플렉스) 구성(configurations)에 의해 관리될 수 있다. 이와 같이, 흔히 여러 가지 유형의 스토리지 디바이스들을 포함하는 멀티티어(multi-tiered)/멀티(multi)-시스템 컴퓨팅 환경들은, 대량의 데이터를 편성(organize)하고 처리(process) 하는데 사용될 수 있다.
많은 멀티티어/멀티-시스템 컴퓨팅 환경들은 스토리지 디바이스들에 걸쳐 중복된(duplicated) 스토리지의 양을 감소시킴으로써 스토리지 성능(performance)을 향상시키기 위해 데이터 중복제거(deduplication) 기술들을 구현한다. 데이터 중복제거 시스템들은 데이터를 저장하기 위해 요구되는 물리적 스토리지의 총량을 감소시키는 것을 돕기 때문에, 점점 더 이용된다. 이러한 감소는 중복 데이터가 여러 번 저장되지 않도록 보장함으로써 달성될 수 있다. 그 대신에, 예를 들어, 만약 데이터 청크(a chunk of data)가 이미 저장된 데이터 청크와 매치된다면, 그 새로운 데이터 청크를 위해 새로운 물리적 스토리지 공간을 할당하지 않고, 오리지널 데이터에 대한 포인터(pointer)가 가상 스토리지 맵(virtual storage map)에 저장된다.
그러나, 어떤 상황에서, 중복제거 행위는, 호스트된 어플리케이션(hosted application)의 리던던시 요건들, 또는 예를 들어, 스토리지 방침(storage policy), 또는 다른 요건들에 반할 수 있다. 리던던시 요건들을 갖는 데이터가 보호되는 메커니즘에 대한 필요성이 있지만, 그러한 요건들을 갖지 않는 남아 있는 데이터에 대해 중복제거가 일어날 수 있도록 함으로써, 중복제거 시스템들의 이득은 줄어들지 않는다.
전술한 관점에서, 데이터 중복제거 시스템들에서 데이터 리던던시를 보존하기 위한 여러 가지 실시예들이 개시된다. 단지 예로서 제시된 일 실시예에서, 이러한 보존을 위한 방법이 개시된다. 데이터 중복제거 시스템을 통해 라이트(write)될 선택된 데이터 세그먼트는 암호화(encrypt)되어, 선택된 데이터 세그먼트가 중복제거 동작(deduplication operation)을 받지 않도록 한다.
전술한 예시적인 실시예에 추가로, 여러 가지 시스템 및 컴퓨터 프로그램 실시예들이 제공되고 그와 관련된 이점들을 제공한다.
본 발명의 이점들이 쉽게 이해되도록 하기 위해, 위에서 간략히 기술된 발명에 관한 더 구체적인 설명은, 첨부된 도면들에 도시된 특정 실시예들을 참조하여 이뤄질 것이다. 이들 도면들은 단지 발명의 전형적인 실시예들만을 도시하기 위한 것이고, 따라서 발명을 한정하려고 의도되지 않았다는 것이 이해되어야 할 것이고, 발명은 첨부된 도면들의 사용을 통해 추가적인 특이성 및 세부사항과 함께 기술되고 설명될 것이다.
도 1은 본 발명의 측면들을 구현할 수 있는 예시적인 컴퓨팅 환경을 도시하는 블록도이고;
도 2는 또한 본 발명의 측면들이 구현될 수 있는 데이터 스토리지 시스템의 하드웨어 구조를 보여주는 블록도이고;
도 3은 본 발명의 측면들이 구현될 수 있는 예시적인 데이터 세그먼트의 블록도이고;
도 4a는 암호화된 라이트 데이터를 획득하기 위해 암호화 모듈을 통해 데이터를 라이트하는 예시적인 프로세스의 블록도이고;
도 4b는 암호화된 라이트 데이터를 데이터 중복제거 엔진 및 캐시를 통해 물리적 스토리지에 라이트하는 예시적인 프로세스의 관련 블록도이고;
도 5는 본 발명에 따른 데이터 중복제거 시스템들에서 리던던시를 보장하기 위한 예시적인 방법이고;
도 6은 본 발명의 측면들이 구현될 수 있는, 데이터를 처리하기 위한 예시적인 방법이며;
도 7은 데이터를 처리하기 위한 추가 예시적인 방법으로서, 여기에도 또한 본 발명의 측면들이 구현될 수 있다.
스토리지 컨트롤러들에서 데이터 중복제거(data deduplication)는 일반적으로 어플리케이션의 "이면에서(behind the scene)" 작업이 이루어지며, 그래서 중복제거 동작들(deduplication operations)이 어플리케이션의 요구에 반하여 수행될 때, 때로는 어플리케이션의 이익과 반대로 동작할 수 있다. 만약 어플리케이션이 동일한 데이터의 다수의 사본들을 라이트하고, 그래서 다수의 물리적 사본들을 보유(retain)하려고 하면, 이 상황이 발생할 수 있으나, 그 반면에 중복제거 서브시스템(중복제거 엔진)은 데이터를 저장하면서 이들 매칭되는 사본들을 찾아내어 결국 사본들을 중복제거한다. 이는 여러 위치들에서 다수의 사본들을 찾아낼 것을 기대하고, 그래서 스토리지 서브시스템에 의해 그렇게 했음을 믿게 되는, 어플리케이션에게는 유해할 수 있지만, 실제로는 그 데이터의 단 하나의 사본만이 라이트되었다.
다음의 예를 고려하자. 파일 시스템들은 통상적으로, 리던던시를 보장하기 위해, "수퍼블록(Superblock)"의 다수의 물리적 사본들 또는 파일 시스템을 설명하는 메타데이터의 세그먼트를 블록 기반 스토리지 디바이스 상에, (또는 다른 메타데이터 정보를) 가상의 디스크 상에, 라이트하는 것을 더 선호한다. 수퍼블록의 컨텐츠들은 동일하므로, 데이터 중복제거는 결국 수퍼블록의 단일의 물리적 사본을 보유하는 것이 되고, 다수의 가상의 주소들이 동일한 물리적 블록을 가리키도록 한다. 이러한 상황은 매우 바람직하지 못하다. 왜냐하면 수퍼블록의 어떠한 리던던트 사본들도 없으므로, 수퍼블록의 물리적 사본 상의 하나의 블록의 손실(loss)은 그 파일 시스템을 전체적으로 사용할 수 없도록 할 수 있기 때문이다. 종래에는 데이터 중복제거 시스템들에서의 이러한 문제를 직접적으로 다루는 어떠한 기법(methodologies)도 존재하지 않았다.
이 문제를 다루기 위해 여러 가지 간접적인 기법들이 채용될 수 있다. 일 예에서, 스토리지 풀(storage pool) - 데이터 중복제거 서브시스템은 이 스토리지 풀로부터 물리적 스토리지를 도려냄(carve out) - 이 미러(mirror)될 수 있다(즉, 동일한 데이터의 2 개 또는 3 개의 사본들을 포함한다). 그러므로, 중복제거에도 불구하고 다수의 리던던트 사본들이 생성될 수 있다. 그러나, 이는 다음과 같은 이유들 때문에 어플리케이션에게는 적절하지 않은 보호책이다. 첫째, 어플리케이션은, 예를 들어, 동일한 데이터의 10 개의 사본들을 유지하기를 원할 수 있다. 그러나, 만약 스토리지 풀이 두 방향으로 미러(two-way mirror) 된다면, 그것은 최대 두 개의 사본들만을 보유할 수 있다. 둘째, 데이터 중복제거는 대량의 스토리지 및 다수의 파일 시스템들 전반에 걸쳐 있는 물리적 스토리지 풀들을 도려내므로, 다수의 어플리케이션들 및 파일 시스템들이 동일한 물리적 스토리지 풀을 공유할 가능성이 있다. 그러므로, 데이터의 일부 중요한 사본들(수퍼블록과 같은 것)이 물리적으로 동일 디스크 상에 배치될 가능성이 있다. 중복제거는 동일한 데이터의 다수의 사본들이 다수의 물리적 위치들에 라이트되는 것을 방지할 것이므로, 중요한 데이터의 사본들 수가 감소되고 그것들은 다수의 파일 시스템들에 대해 동일한 물리적 디스크 상에 배치될 수 있다. 이는 치명적인 단일 고장(failures) 위험을 증가시킨다.
기술되는 실시예들은 앞서 논의된 이슈들을 다루기 위한 다수의 메커니즘들을 제공한다. 이들 메커니즘들의 한 가지 목표는, 스토리지 컨트롤러 내(또는 어디에 위치하든지) 중복제거 서브시스템이, 데이터의 사본들의 수를 감소시킴으로써 생기는 이득을 중요한 데이터의 다수의 사본들을 물리적으로 할당하기 위한 어플리케이션 요건들과 견줘보는 것을 보장하는 것이다. 이하에서 설명되는 실시예들에서 기술되는 기법들은 여러 가지 환경들에서 사용될 수 있고 그러한 환경들 특유의 수반되는 이득을 가질 수 있다.
그러한 한 가지 실시예에서, 선택된 데이터 세그먼트(예컨대, 블록)는 소유 어플리케이션(owning application)에 의해 암호화될 수 있고, 그에 따라 그 선택된 데이터가 새로운, 중복되지 않은 데이터(new, unduplicated data)이고 새로운 스토리지 공간에 할당되어야 한다고 생각하도록 데이터 중복제거 시스템을 "속인다(tricking)". 예를 들어, 소유 어플리케이션이 동일한 데이터(identical data)의 다수의 물리적 사본들을 저장해야 하는 데이터 블록들에 대해, 그 어플리케이션은 데이터 블록의 시작(start) 논리적 블록 주소(logical Block Address, LBA)로 (또는 이와 다르게, 복사 번호(copy number)와 같이, 추가 메타데이터 스토리지 공간을 필요로 하지 않을 데이터 블록에 대해 잘 알려진 다른 어떤 키(예컨대, 제1 사본은 키 1로 암호화되고, 제2 사본은 키 2로 암호화됨)), 데이터를 암호화할 수 있다. 상이한 키들로 동일한 사본들을 암호화하는 것은 조사하고 있는 중복제거 엔진의 시각에는 "다른" 사본들로 보이도록 될 것이고, 그래서 그 중복제거 엔진을 포함하고 있는 스토리지 컨트롤러 또는 다른 스토리지 관리 디바이스가 그 블록들을 중복제거하지 않을 것을 보장한다.
위에서 언급된 암호화 기술은, 원하는 특징들을 구현하기 위해 스토리지 컨트롤러(또는, 어떤 스토리지 관리 디바이스)에 있어서 어떤 것도 변경시킬 필요가 없다는 점에서 이점을 갖는다. 상기 소유 어플리케이션은 또한 간단한 기술을 사용함으로써 스토리지 컨트롤러를 "속이거나(trick)" "기만하며(fool)", 추가 오버헤드(extra overhead) 또는 중요한 처리 또는 리소스 할당(예컨대, 추가 메타데이터 스토리지 오버헤드, 그러나 당해 기술 분야에서 통상의 기술을 가진 자라면 알 수 있듯이 추가 리소스들을 보존함)을 발생시키지 않고서 그렇게 한다.
기술된 실시예의 관점에서, 라이트(write)가 암호화되어야 하는지를 어플리케이션이 지시하도록 허용함으로써(그리고 그에 따라 중복제거를 중지(forgo)할 데이터가 어느 것인지를 결정함), 어플리케이션은 그것이 생성하는 데이터와 연관된 스토리지 방침(storage policy)을 구현할 수 있는 융통성을 허용받는다. 이 방법에서, 어플리케이션은, 비록 동일하지만, 선택된 데이터 블록들이 여전히 별개의 물리적 위치들에 위치해야 하는지를 결정함에 있어서 중복제거 시스템보다 더 유리한 입장에 있다. 또한, 스토리지 컨트롤러(또는 다른 스토리지 관리 디바이스)는 중복제거에 의한 데이터 감소라는 자신의 역할, 그리고 동시에, 필요시 중복제거를 배제하기 위해 허용된 충분한 컨트롤을 계속해서 수행한다.
선택된 데이터 청크들을 암호화되는 것으로 지정함으로써, 그에 따라 매우 미세한 단위의 컨트롤(very fine-grained control)이 어플리케이션으로 제공되어, 중복제거 기능의 이점들을 여전히 보유하고 키 데이터에 대한 리던던시를 보유하면서 구현에 있어서의 융통성을 허용한다.
다음의 설명에서, 첨부되는 도면들이 참조되는데, 이것들은 설명의 일부를 이루고, 본 발명의 몇 가지 실시예들을 설명한다. 다른 실시예들이 이용될 수 있고 본 발명의 범위를 벗어나지 않고서 구조적 그리고 동작적 변경들이 이뤄질 수 있다는 것을 이해하여야 할 것이다.
도 1을 참조하면, 본 발명의 측면들이 구현될 수 있는 컴퓨터 시스템의 일 예(10)가 도시되어 있다. 컴퓨터 시스템(10)은 중앙처리장치(CPU)(12)를 포함하며, 이 중앙처리장치(12)는 대규모 스토리지 디바이스(들)(mass storage device(s))(14) 및 메모리 디바이스(16)에 연결되어 있다. 대규모 스토리지 디바이스들(14)은 하드 디스크 드라이브(HDD) 디바이스들을 포함할 수 있으며, 이는 독립 디스크들의 리던던트 어레이(redundant array of independent disks; RAID)로 구성될 수 있다. 더 기술되는 바와 같이 본 발명의 측면들이 구현될 수 있는 데이터 관리 동작들은, 시스템(10) 또는 그 밖의 다른 곳에 위치한 디바이스(들)(14) 상에서 실행될 수 있다. 메모리 디바이스(16)는 전기적으로 소거가능한 프로그램가능 읽기 전용 메모리(electrically erasable programmable read only memory, EEPROM)와 같은 그러한 메모리, 또는 관련 디바이스들의 호스트를 포함할 수 있다.
메모리(16)는 어플리케이션 프로그램(15), 및 어플리케이션 프로그램(17)을 포함하는 것으로 도시되어 있으며, 여기에는 암호화 모듈(21) 뿐만 아니라 파일 시스템(19)이 사용될 준비가 되어 있다. 어플리케이션(15) 및 어플리케이션(17)은, 예컨대 데이터 청크들 또는 데이터 블록들과 같은 그러한 데이터의 세그먼트들을 생성, 삭제, 또는 관리할 수 있는데, 이것들은, 예컨대 대규모 스토리지 디바이스(14)와 같은 그러한 디바이스들에 물리적으로 저장된다. 파일 시스템(19)은, 데이터를 포함하는 디바이스(들) 상에서 이용가능한 공간을 관리할 뿐만 아니라, 그것을 저장, 검색, 및 업데이트하기 위한 절차들(procedures)을 제공함으로써 어플리케이션 프로그램(17)이 종료한 후 보유될 것으로 예상되는 데이터를 조직(organize)하는 수단을 제공한다. 파일 시스템(19)은 효율적인 방식으로 데이터를 조직하고, 디바이스(예컨대, 컴퓨터(10) 및/또는 메모리(16)와 같은 것)의 특유의 특성(specific characteristics)에 맞춰진다. 일 실시예에서, 어플리케이션(17)은 운영체제(OS)(17)일 수 있고, 파일 시스템(19)은 OS(17)와 파일 시스템(19) 간의 밀착 결합(tight coupling)을 유지한다. 당해 기술 분야에서 통상의 기술을 가진 자라면 알 수 있는 바와 같이, 파일 시스템(19)은 데이터 및 메타데이터로의 접근을 제어하기 위한 메커니즘들을 제공할 수 있고, 본 발명의 추가의 어떤 측면들에 대해 필요한 것들과 같은 그러한 데이터 신뢰성(data reliability)을 보장하기 위한 메커니즘을 포함할 수 있다. 파일 시스템(19)은, 다수의 어플리케이션 프로그램들(15, 17)을 위해 거의 동시에 동일한 파일 내 데이터를 업데이트하기 위한 수단을 제공할 수 있다.
암호화 모듈(21)은 본 발명의 목적들을 달성하도록 어플리케이션(15), 어플리케이션(17), 파일 시스템(19), 또는 다른 컴퓨팅 하드웨어 또는 소프트웨어 컴포넌트들과 함께 사용될 수 있다. 일 실시예에서, 예를 들어, 암호화 모듈(21)은, 데이터 청크의 적어도 일부분을 약한 보안 키(weak security key)로 암호화하기 위해(또한 중요한 처리 및/또는 리소스 할당 오버헤드를 발생시키는 것을 회피하기 위해), 중복제거를 하지 않도록 지정된 선택된 데이터 청크들을 처리한다. 당해 기술 분야에서 통상의 기술을 가진 자라면 알 수 있는 바와 같이, 암호화 메커니즘은 달라질 수 있고, 암호화 메커니즘 자체는 특정 구현에 따라 달라질 수 있다. 일 실시예에서, 암호화 메커니즘의 목표는, 가급적 최소의 리소스량 및 오버헤드 할당을 필요로 하면서, 데이터가 "새로운(new)" 데이터라고 중복제거 엔진이 생각하기에 적당한 정도로(just enough) 데이터의 특징을 "변경(change)" 하는 것이다.
기술된 실시예에서, 메모리 디바이스(16) 및 대규모 스토리지 디바이스(14)는 신호-베어링 매체(signal-bearing medium)를 통해 CPU(12)에 연결된다. 또한, CPU(12)는 통신 네트워크(20)에 통신 포트(18)를 통해 연결되는데, 이 통신 네트워크는 부속된 복수의 추가 컴퓨터 시스템들(22 및 24)을 갖는다. 본 발명의 목적들을 달성하고자 여기에 기술된 각각의 동작을 수행 및 실행하기 위해, 컴퓨터 시스템(10)은 하나 또는 그 이상의 프로세서 디바이스들(예, CPU(12))과 컴퓨터 시스템(10)의 각각의 개별 컴포넌트에 대한 추가 메모리 디바이스들(16)을 포함할 수 있다.
도 2는 본 발명에 따른 컴퓨터 시스템에서 데이터 스토리지 시스템의 하드웨어 구조를 보여주는 예시적인 블록도(200)이다. 호스트 컴퓨터들(210, 220, 225)이 보여지는데, 이들 각각은 데이터 스토리지 시스템(200)의 일부로서 데이터 처리를 수행하기 위한 중앙처리장치로 역할을 수행한다. 호스트들(물리적 또는 가상의 디바이스들)(210, 220, 및 225)은, 데이터 스토리지 시스템(200)에서 본 발명의 목적들을 달성하기 위한 하나 또는 그 이상의 새로운 물리적 디바이스들 또는 논리적 디바이스들일 수 있다. 단지 예로 제시된 일 실시예에서, 데이터 스토리지 시스템(200)은 IBM®System StorageTM DS8000TM으로 구현될 수 있다. 네트워크 연결(260)은 파이버 채널 패브릭(fibre channel fabric), 파이버 채널 포인트 투 포인트 링크(fibre channel point to point link), 이더넷 패브릭 또는 점대점 링크를 통한 파이버 채널(fibre channel), FICON 또는 ESCON I/O 인터페이스, 다른 어떤 I/O 인터페이스 유형, 무선 네트워크, 유선 네트워크, LAN, WAN, 이종(heterogeneous), 동종(homogeneous), 공중망(즉, 인터넷), 사설망, 또는 이것들의 어떤 조합일 수 있다. 호스트들(210, 220, 및 225)은, 로컬이거나 하나 또는 그 이상의 위치들 사이에 분산되어 있을 수 있으며, 어떤 유형의 패브릭(또는 패브릭 채널)(도 2에 도시되지 않음), 또는 스토리지 컨트롤러(240)에 대한 네트워크 어댑터(260) - 예컨대, 파이버 채널, FICON, ESCON, 이더넷, 광섬유, 무선, 또는 동축 어댑터들과 같은 것 - 가 구비될 수 있다. 따라서 데이터 스토리지 시스템(200)은 통신하기 위한 적절한 패브릭(도 2에 도시되지 않음) 또는 네트워크 어댑터(260)가 구비된다. 스토리지 컨트롤러(240) 및 스토리지(230)를 포함하는 데이터 스토리지 시스템(200)이 도 2에 도시되어 있다.
여기에 기술된 방법들에 관한 더 명확한 이해를 돕고자, 도 2에서 마이크로프로세서(242), 시스템 메모리(243) 및 비휘발성 스토리지(nonvolatile storage, "NVS")(216)를 포함하는 단일 처리 장치(single processing unit)로서 스토리지 컨트롤러(240)가 도시되어 있는데, 이는 이하에서 더 상세히 기술될 것이다. 몇몇 실시예들에서, 스토리지 컨트롤러(240)는 다수의 처리장치들 - 각각은 그들 자신의 프로세서 콤플렉스(processor complex) 및 시스템 메모리를 가짐 - 로 구성되며, 데이터 스토리지 시스템(200) 내 전용 네트워크에 의해 인터커넥트되어 있다. 스토리지(230)는 예컨대 스토리지 어레이들과 같은 그러한 하나 또는 그 이상의 스토리지 디바이스들을 포함할 수 있는데, 이것들은 스토리지 네트워크에 의해 스토리지 컨트롤러(240)에 연결되어 있다.
몇몇 실시예들에서, 스토리지(230)에 포함되는 디바이스들은 루프 아키텍쳐(loop architecture)로 연결될 수 있다. 스토리지 컨트롤러(240)는 스토리지(230)를 관리하고 스토리지(230)를 향한 라이트 및 리드 요청들의 처리를 용이하게 한다. 스토리지 컨트롤러(240)의 시스템 메모리(243)는, 관리 스토리지(230)와 연관된 기능들을 실행하기 위해 프로세서(242)가 접근할 수 있는 프로그램 명령들 및 데이터를 저장한다. 일 실시예에서, 시스템 메모리(243)는 운영 소프트웨어(operation software)(250)를 포함하거나, 운영 소프트웨어(250)와 연관되거나, 운영 소프트웨어(250)와 통신하며, 그래서 이는 본 발명의 기능을 달성하기 위한 부분으로 구성된다. 도 2에 도시된 바와 같이, 시스템 메모리(243)는 또한, "라이트 데이터" 및 "리드 데이터" - 이것들은 각기 라이트 요청/리드 요청 그리고 그것들의 연관된 데이터를 일컬음 - 를 버퍼링하기 위해, 스토리지(230)를 위한 캐시(245)를 포함하거나, 스토리지(230)를 위한 캐시(245)와 통신할 수 있는데, 이는 여기서 "캐시 메모리"로도 일컬어진다. 일 실시예에서, 캐시(245)는 시스템 메모리(243)의 외부에 있는 디바이스에 할당되지만, 마이크로프로세서(242)에 의해 접근가능하며, 여기에 기술되는 동작들을 수행하는 것뿐만 아니라, 데이터 손실에 대비한 추가 보안을 제공하는 역할을 수행할 수 있다.
몇몇 실시예들에서, 캐시(245)는 휘발성 메모리 및 비휘발성 메모리로 구현되고, 데이터 스토리지 시스템(200)의 성능 향상을 위해 로컬 버스(도 2에 도시되지 않음)를 통해 마이크로프로세서(242)에 결합된다. 데이터 스토리지 컨트롤러에 포함된 NVS(216)는 마이크로프로세서(242)에 의해 접근가능하며, 다른 도면들에 기술된 바와 같이 본 발명의 동작들 및 실행을 위한 추가 지원을 제공하는 역할을 수행한다. NVS(216)는, "지속적인(persistent)" 캐시, 또는 "캐시 메모리"로도 일컬어질 수 있으며 그 안에 저장된 데이터를 보유하기 위해 외부 전력을 이용할 수도 있고 이용하지 않을 수도 있는 비휘발성 메모리로 구현된다. NVS는 본 발명의 목표를 달성하기에 적합한 어떤 목적을 위해 캐시(245) 내에 그리고 캐시(245)와 함께 저장될 수 있다. 몇몇 실시예들에서, 배터리와 같은 백업 전력원(도 2에 도시되지 않음)은 데이터 스토리지 시스템(200)으로의 전원 상실(power loss)의 경우 그 안에 저장된 데이터를 보유하기에 충분한 전력을 NVS(216)에게 공급한다. 어떤 실시예들에서, NVS(216)의 용량은 캐시(245)의 총 용량과 같거나 더 작다.
스토리지(230)는 물리적으로 하나 또는 그 이상의 스토리지 디바이스들 - 예컨대, 스토리지 어레이들 - 로 구성될 수 있다. 스토리지 어레이는 개별 스토리지 디바이스들 - 예컨대, 하드 디스크 - 의 논리적 그룹핑이다. 어떤 실시예들에서, 스토리지(230)는 JBOD(Just a Bunch of Disks) 어레이 또는 RAID(Redundant Array of Independent Disks) 어레이로 구성된다. 물리적 스토리지 어레이들의 집합(collection)은 랭크(rank)를 형성하도록 더 결합될 수 있는데, 이 랭크는 물리적 스토리지를 논리적 구성과 구분한다. 랭크 내 스토리지 공간은 논리적 볼륨들로 할당될 수 있는데, 이 논리적 볼륨들은 라이트/리드 요청에서 특정된 스토리지 위치를 정의한다.
단지 예로서 제시되는 일 실시예에서, 도 2에 도시된 스토리지 시스템은 논리적 볼륨, 또는 간단히 "볼륨"을 포함할 수 있으며, 서로 다른 종류의 할당들을 가질 수 있다. 스토리지(230a, 230b, 및 230n)은 데이터 스토리지 시스템(200)에서 랭크들로 보여지며, 여기서는 랭크(230a, 230b, 및 230n)로 일컬어진다. 랭크들은 데이터 스토리지 시스템(200)에 대해 로컬일 수 있고, 또는 물리적으로 원격 위치에 위치할 수도 있다. 바꿔 말하면, 로컬 스토리지 컨트롤러는 원격 스토리지 컨트롤러와 연결되어 그 원격 위치에서 스토리지를 관리할 수 있다. 랭크(230a)는 하나의 부분 볼륨(partial volume)(232a) 뿐만 아니라, 두 개의 완전한 볼륨들(entire volumes)(234 및 236)로 구성된 것으로 보여진다. 랭크(230b)는 또 다른 부분 볼륨(232b)을 갖는 것으로 보여진다. 그래서 볼륨(232)은 랭크들(230a 및 230b)에 걸쳐서 할당된다. 랭크(230n)는 볼륨(238)에 전부 할당되어 있는 것으로 보여진다. 즉, 랭크(230n)는 볼륨(238)을 위한 완전한 물리적 스토리지를 지칭한다. 위의 예들로부터, 랭크는 하나 또는 그 이상의 부분 및/또는 완전한 볼륨들을 포함하도록 구성될 수 있다는 것을 이해할 수 있을 것이다. 볼륨들 및 랭크들은 소위 "트랙들(tracks)"로 더 나누어질 수 있는데, 트랙들은 스토리지의 픽스된 블록을 나타낸다. 따라서 트랙은 주어진 볼륨과 연관되고 주어진 랭크를 제공받을 수 있다.
스토리지 컨트롤러(240)는 호스트 컴퓨터들(210, 220, 225)에 대해 파이퍼 채널 프로토콜을 컨트롤하기 위한 컨트롤 스위치(241), 모든 스토리지 컨트롤러(240)를 컨트롤하기 위한 마이크로프로세서(242), 스토리지 컨트롤러(240)의 동작을 컨트롤하기 위해 마이크로프로그램(운영 소프트웨어(operation software))(250)를 저장하기 위한 비휘발성 컨트롤 메모리(243), 이후에 기술되는 각각의 테이블 및 컨트롤을 위한 데이터, (버퍼링) 데이터를 임시로 저장하기 위한 캐시(245), 데이터를 리드 및 라이트하기 위해 캐시(245)를 지원하기 위한 버퍼들(244), 스토리지 디바이스들(230)로의 또는 스토리지 디바이스들(230)로부터의 데이터 전송을 컨트롤하기 위한 프로토콜을 컨트롤하기 위한 컨트롤 스위치(241), 및 정보가 세트될 수 있는 압축 동작 모듈(compression operation module)(255) 및 압축 동작 리스트 모듈(compression operation list module)(257)를 포함한다. 다수의 버퍼들(244)은 여기에 기술된 동작들을 돕기 위해 본 발명에 구현될 수 있다.
일 실시예에서, 호스트 컴퓨터들 또는 하나 또는 그 이상의 물리적 또는 가상 디바이스들(210, 220, 225) 및 스토리지 컨트롤러(240)는 인터페이스로서 네트워크 어댑터(이는 파이버 채널일 수 있음)(260)를 통해, 즉, "패브릭(fabric)"으로 일컬어지는 적어도 하나의 스위치를 통해, 연결된다. 일 실시예에서, 도 2에 도시된 시스템의 동작이 설명될 것이다. 마이크로프로세서(242)는 (물리적 또는 가상의)호스트 디바이스(210)로부터의 명령 정보 그리고 (물리적 또는 가상의)호스트 디바이스(210)를 식별하기 위한 정보를 저장하기 위해 메모리(243)를 컨트롤할 수 있다. 컨트롤 스위치(241), 버퍼들(244), 캐시(245), 운영 소프트웨어(250), 마이크로프로세서(242), 메모리(243), NVS(216), 압축 동작 모듈(255) 및 압축 동작 리스트 모듈(257)은 서로 간에 통신할 수 있고, 별개의 또는 하나의 개별 컴포넌트(들)일 수도 있다. 또한, 비록 모든 컴포넌트들은 아니지만, 예를 들어 운영 소프트웨어(250)와 같은 몇몇이 메모리(243)에 포함될 수 있다. 본 발명에 적합한 목적들을 위해, 보여진 디바이스들 내 컴포넌트들 각각은 함께 링크될 수 있고, 서로 간에 통신할 수 있다.
스토리지 컨트롤러(240)는 데이터 중복제거 엔진(255)을 포함하는 것으로 보여지는데, 이 데이터 중복제거 엔진(255)에서 다수의 라이트 데이터(259)가 처리된다. 데이터 중복제거 엔진(255)은 구조적으로 하나의 완전한 모듈일 수도 있고 또는 다른 개별 모듈들과 연계될 수 있고 및/또는 다른 개별 모듈들 내에 편입될 수 있다. 데이터 중복제거 엔진(255)은, 예컨대 마이크로프로세서(242)와 같은 그러한 스토리지 컨트롤러(240)의 다른 컴포넌트들과 함께, 스토리지 컨트롤러(240)를 통해서 스토리지(230)로 패스되는 라이트 데이터(259)에 관한 데이터 중복제거 동작들을 수행하도록 구성된다.
앞서 보여준 바와 같이, 스토리지 컨트롤러(240)는 호스트들(210, 220, 및 225), 또는 유사 디바이스들로부터 라이트 데이터를 받는 캐시(245)(또는 전체적으로 캐시 시스템으로 일컬어질 수 있는 것)를 포함하며, 그런 다음 라이트 데이터는 캐시 메모리(245)에 배치된다. 그런 다음 데이터 중복제거 엔진(255)은 캐시 메모리(245) 내 복제(duplication)를 위해 그 라이트 데이터를 테스트한다. 어플리케이션(도 1의 17)이 중복제거 동작들로부터 보호하기를 원하는 라이트 데이터(259)는 도시된 것과 같은 암호화 키들(257)(암호화된 데이터(257))로 암호화된다. 데이터 중복제거 엔진(255)을 통과한 암호화 키들(257)을 갖는 라이트 데이터(259)의 암호화 키들은, 라이트 데이터(259)가 "새로운" 데이터이고, 그에 따라 중복제거 동작을 받지 않도록(예컨대, 이미 스토리지(230)에 배치된 기존 데이터에 대한 포인터로 대체됨) 데이터 중복제거 엔진(255)에게 지정한다.
일 실시예에서, 어플리케이션(17)/파일 시스템(19)은 주어진 데이터 블록이 물리적 스토리지 상에 여러 번 저장되어야 하는지를 먼저 결정한다. 이는, 예를 들어, 파일 시스템(19) 자체와 연관된 수퍼블록 메타데이터, 또는 다른 관련성 있는 파일 시스템 정보일 수 있다. 그런 다음 어플리케이션(17)은, 라이트(write)가 발행(issue)되기 전에 그 가상 디바이스를 위한 고유의 키로 그들 데이터 블록들을 암호화한다. 다음의 단계에 따라, 어플리케이션은, 암호화된 데이터(257)와 함께, 기본적인 디스크(underlying disk)(디바이스) 드라이버에 대한 라이트 요청을 시작할 수 있고, 비록 암호화되지 않은 블록이 이전에 라이트된 데이터 블록과 동일하더라도, 사실상, 이 데이터 블록이 "새로운" 것이고 중복제거되어서는 아니되도록 지정한다. 암호화는 약한 암호화 키(weak encryption key)로서 그 블록의 LBA를 사용하여 디스크 블록 단위로(on a per-disk-block) 소유 어플리케이션에 의해 수행될 수 있다.
여기서 다시, 그 선택된 암호화 방법(암호화 키를 포함함)은 그 키(key)가 기본적인 스토리지 컨트롤러 또는 스토리지 관리 디바이스로부터 나중에 다시 리드(read)될 때 간단히 추론(deduce)할 수 있도록 선택된다. 암호화 키들의 예들은 다음을 포함할 수 있다. (1) 선택된 데이터 블록의 시작 LBA; (2) 파일에서 데이터 블록의 오프셋; 그리고 당해 기술 분야에서 통상의 기술을 가진 자에게 익숙한 다른 유사한 암호화 메커니즘들. 암호화 키는 약하고 예측가능(predictable)해야 한다(즉, 소유 어플리케이션은, 그 키를 어디에도 저장하지 않고, 특정 메타-블록에 대한 암호화 키가 무엇인지를 알 것이다).
다음의 단계에서, 디스크 드라이버는 차례대로 라이트 명령, 예컨대, 스토리지 컨트롤러(240)에 대한 스몰 컴퓨터 시스템즈 인터페이스(Small Computer Systems Interface, SCSI) 명령과 같은 것을 준비한다. 그 지정되고, 암호화된 데이터 블록을 수신하자마자, 스토리지 컨트롤러(240)는, 데이터 중복제거 엔진(255)을 통해, 당해 기술 분야에서 통상의 기술을 가진 자라면 알 수 있는 바와 같은, 지문 생성, 매칭 등의 중복 제거 단계들을 건너뛰고, 비록 스토리지 컨트롤러(240) 상에 저장되어 있는 동일한 데이터의 더 이른 인스턴스들(earlier instances)이 있더라도, 새로운 물리적 디스크 위치에 그 선택된 데이터 블록을 바로 라이트한다. 이후, 이들 데이터 블록들(어플리케이션에게는 잘 알려진)의 차후의 리드시, 어플리케이션은 그 잘 알려지고 간단한 키(예컨대, 약한 키/암호화 메커니즘)를 사용하여 그 데이터를 복호화(decrypt)한다. 여기에 사용된 암호화 기술들은 데이터 보안에 필수적인 것은 아니므로, 그러한 기술들을 수행하기 위한 오버헤드는 가능한 한 효율적으로 최소화될 수 있다.
바람직한 실시예에서, 암호화 또는 데이터 변환 기능(data transformation function)은, 결과적인 데이터의 크기가 변하지 않도록 선택되어야 한다. 예를 들어, 512 바이트의 데이터가 변환되어야 하는 상황에서, 512 바이트의 결과적인 암호화된 데이터가 생성된다.
일 실시예에서, 소유 어플리케이션은 라이트된 데이터의 다수의 블록들을 하나의 단위로(as a unit) 암호화하도록 선택할 수 있다. 데이터 변환 기능(암호화 기능)은, 각각의 개별 블록을 복호화하면 그 블록에 대해 오리지널 데이터를 리턴하도록 선택되어야 한다. 이와는 다르게, 어플리케이션은 이들 다수의 블록 단위들(muli-block units)을 데이터 청크들(chunks of data)로서 리드하여 그것들을 단위로 하여 복호화해야 한다.
이제 도 3으로 돌아가서, 도시된 실시예들의 여러 가지 측면들이 편입될 수 있는 예시적인 데이터 세그먼트(259)(즉, 블록)의 블록도(300)가 도시된다. 데이터 세그먼트(259)는 약한 암호화 키(302)(예컨대, 현재 사본(present copy)-1,2,3 등과 같은 것)를 포함하는데, 이는 도시된 바와 같이 블록 A의 일부분에 덧붙여진다.
도 4a는 예시적인 흐름에 따라 도시된 본 발명의 여러 가지 기능적 측면들의 블록도(400)를 도시한다. 구체적으로는, 라이트 명령이 스토리지 컨트롤러로 발행(issue)되기 전에, 데이터 중복제거 엔진을 통해 라이트될 것이지만 아직 어떠한 중복제거 동작들로 처리되지 않은 데이터(402)가, 암호화 모듈(도 1의 21)을 먼저 통과하는데, 여기서 그 선택된 데이터에 약한 암호화(weak encryption)가 적용되고, 도시된 바와 같이 암호화된 라이트 데이터(404)를 생성한다.
계속해서 도 4b를 참조하면, 블록도(406)는, 다시 예시적인 흐름으로 도시된 바와 같이, 본 발명의 추가적인 여러 가지 기능적 측면들을 도시한다. 구체적으로는, 암호화된 라이트 데이터(408)는 스토리지(230)(다시 도 2 참조)에 라이트되기 위해 스토리지 컨트롤러로 패스된다. 암호화된 라이트 데이터는 도시된 바와 같이 데이터 중복제거 엔진(255)을 통과하는데, 여기서 암호화된 데이터(259)는, 기존의, 잠재적으로 복제된 데이터에 비해(versus) 새로운 데이터가 될 것으로 생각된다. 이와 같이, 데이터 중복제거 엔진은, 라이트 요청(410)과 함께 암호화된 데이터를, 예컨대, 캐시 시스템(245)과 같은, 스토리지 컨트롤러의 다른 부분들로 패스하고, 그래서 그 암호화된 데이터를 위해 스토리지(230) 내 새로운 공간 - 여기에 그 암호화된 데이터가 최종적으로 라이트됨 - 이 할당된다.
다음으로, 앞에서의 관점에 따라, 도 5는 도시된 실시예들의 측면들이 구현될 수 있는 데이터 중복제거 시스템들을 갖는 스토리지 서브시스템들에서 데이터 리던던시를 보장하기 위한 예시적인 방법(500)이다. 방법(500)이 시작되고(단계 502), 데이터 중복제거 시스템을 통해 라이트될 선택된 데이터 세그먼트를 암호화하여, 그 선택된 데이터 세그먼트가 중복제거 동작을 받지 않도록 한다(단계 504). 그런 다음 방법(500)은 종료된다(단계 506).
다음으로, 도 6에서, 또한 본 발명의 여러 가지 측면들이 구현될 수 있는 데이터 처리를 위한 예시적인 방법(600)이 도시된다. 방법(600)이 시작되고(단계 602), 중복제거를 하지 않기 위해, 소유 어플리케이션에 의해 선택된 데이터 세그먼트와 연관되도록, 소유 어플리케이션에 의해 고유의 암호화 키를 선택한다(단계 604). 그런 다음, 소유 어플리케이션 및/또는 파일 시스템은 고유의 암호화 키로 그 선택된 데이터 세그먼트를 암호화한다(단계 606).
다음의 단계로서, 그 암호화된, 선택된 데이터 세그먼트와 함께, 라이트 요청이 스토리지 컨트롤러로 제공된다(단계 608). 그런 다음, 암호화된 데이터 세그먼트는 중복제거 엔진을 통해 처리되고, 이때, 그 선택된 데이터 세그먼트가 중복제거 엔진에 의해 "새로운" 데이터로 인식/취급되므로, 중복제거 동작은 그 암호화된 데이터에 관해 수행되는 것이 보류된다(단계 610).
단계 612에서, 암호화된 데이터 세그먼트는 새롭게 할당된 물리적 스토리지 위치에 라이트된다. 이후, 암호화된 데이터의 차후의 리드시, 그 암호화된 데이터는 소유 어플리케이션 및/또는 파일 시스템으로 리턴된다(단계 614). 그런 다음, 그 암호화된 데이터 세그먼트는, 연계된(affiliated) 암호화 알고리즘을 사용하여 어플리케이션 및/또는 파일 시스템에 의해 복호화되며(단계 616), 당해 기술 분야에서 통상의 기술을 가진 자라면 알 수 있는 바와 같이, 상기 연계된 알고리즘은 특정 어플리케이션에 따라 달라질 수 있으나, 오버헤드 및 대역폭을 최소화하도록 선택될 수 있다. 그런 다음 방법(600)은 종료된다(단계 618).
다음으로, 도 7은 또한 본 발명의 여러 가지 측면들을 편입시키는, 데이터를 처리하기 위해 관련된 예시적인 방법(700)이다. 방법(700)이 시작되고(단계 702), 라이트될 수반되는 데이터(accompanying data to be written))와 함께 처리하기 위해 스토리지 컨트롤러/데이터 중복제거 엔진에 의해 라이트 요청이 수신된다(단계 704).
단계 706에서, 방법(700)은 수반되는 데이터가 암호화되어 있는지를 질의(query) 한다(단계 706). 만약 암호화되어 있으면, 중복제거 엔진/스토리지 컨트롤러는 데이터 중복제거 동작들을 수행하지 않고(단계 708), 그 암호화된 데이터는 새롭게 할당된 물리적 스토리지 위치에 라이트된다(단계 710). 예시를 위해, "방법"(700)은 그 데이터가 암호화되는지를 질의하는 것으로 언급되는 것에 유의하자. 그러나, 실제로, 데이터 중복제거 시스템은 데이터가 암호화되는지 그렇지 않은지를 이해하지 못하며, 그래서 질의하지 않는다. 앞서 설명된 바와 같이, 암호화에 의해, 데이터 블록은 소유 어플리케이션에 의해 이전에 라이트된 자신의 복제된 사본과 매치되지 않을 것이다. 따라서, 중복제거 시스템은 이것을 "새로운" 데이터 블록으로 취급할 것이고, 그래서 그 블록을 물리적 스토리지에 라이트할 것이다. 단계 706으로 돌아가서, 만약 수반되는 데이터가 암호화되어 있지 않으면, 중복제거 엔진/스토리지 컨트롤러는 그 데이터에 관해 여러 가지 중복제거 동작들을 수행한다(단계 712). 그런 다음 방법(700)은 종료된다(단계 714).
당해 기술 분야에서 통상의 기술을 가진 자라면 알 수 있는 바와 같이, 본 발명의 측면들은 시스템, 방법, 컴퓨터 프로그램 제품으로 구현될 수 있다. 따라서, 본 발명의 측면들은 전적으로 하드웨어 실시예의 형태를 취할 수도 있고, 전적으로 소프트웨어 실시예(펌웨어, 상주 소프트웨어, 마이크로코드 등을 포함함)의 형태를 취할 수도 있으며, 또는 소프트웨어와 하드웨어 측면들 - 이것들은 모두 본 명세서 내에서 일반적으로 "회로", "모듈", "프로세스" 또는 "시스템"으로 일컬어질 수 있음 - 을 조합하는 실시예의 형태를 취할 수도 있다. 더 나아가, 본 발명의 측면들은 하나 또는 그 이상의 컴퓨터 판독가능 매체(들) - 이것들은 그 안에 구현된 컴퓨터 판독가능 프로그램 코드를 가짐 - 에 구현된 컴퓨터 프로그램 제품의 형태를 취할 수 있다.
하나 또는 그 이상의 컴퓨터 판독가능 매체(들)의 어떠한 조합이든지 이용될 수 있다. 컴퓨터 판독가능 매체는 컴퓨터 판독가능 신호 매체 또는 컴퓨터 판독가능 스토리지 매체일 수 있다. 컴퓨터 판독가능 스토리지 매체는, 예를 들어, 전자, 자기, 광학, 전자기, 적외선, 또는 반도체 시스템, 장치, 또는 디바이스 또는 이것들의 어떤 적절한 조합일 수 있으나, 이러한 예들로 한정되는 것은 아니다. 컴퓨터 판독가능 스토리지 매체의 더 구체적인 예들(모든 예들을 총망라하는 것은 아님)은, 하나 또는 그 이상의 와이어들을 갖는 전기적 연결, 휴대용 컴퓨터 디스켓, 하드 디스크, 랜덤 억세스 메모리(random access memory, RAM), 읽기 전용 메모리(read only memory, ROM), 소거가능 프로그램형 읽기 전용 메모리(erasable programmable read-only memory)(EPROM 또는 플래시 메모리), 광섬유, 휴대용 컴팩트 디스크 읽기 전용 메모리(CD-ROM), 광 스토리지 디바이스, 자기 스토리지 디바이스, 또는 이것들의 어떤 적절한 조합을 포함한다. 본 문서의 맥락에서, 컴퓨터 판독가능 스토리지 매체는 명령 실행 시스템, 장치, 또는 디바이스에 의해 사용하기 위한 또는 명령 실행 시스템, 장치, 또는 디바이스와 함께 사용하기 위한 프로그램을 포함, 또는 저장할 수 있는 어떤 실체적 매체일 수 있다.
컴퓨터 판독가능 매체 상에 구현되는 프로그램 코드는 어떤 적절한 매체 - 예를 들어, 무선, 유선, 광섬유 케이블, RF 등, 또는 이것들의 어떤 적절한 조합을 포함하나, 이 예들로 한정되는 것은 아님 - 를 사용하여 전송될 수 있다. 본 발명의 측면들을 위한 동작들을 수행하기 위한 컴퓨터 프로그램 코드는 하나 또는 그 이상의 프로그래밍 언어들의 어떤 조합으로 작성될 수 있는데, 이러한 프로그래밍 언어들의 예들에는, 자바(Java), 스몰토크(Smalltalk), C++ 등과 같은 객체 지향형 프로그래밍 언어, "C" 프로그래밍 언어 또는 유사 프로그래밍 언어들과 같은 전통적인 절차형 프로그래밍 언어들이 포함된다. 프로그램 코드는 사용자의 컴퓨터 상에서 전적으로, 사용자의 컴퓨터 상에서 부분적으로, 또는 원격 컴퓨터 또는 서버 상에서 전적으로 실행될 수 있다. 원격 컴퓨터 또는 서버 상에서 전적으로 실행되는 시나리오에서, 상기 원격 컴퓨터는 어떤 유형의 네트워크 - LAN(local area network) 또는 WAN(wide area network)을 포함함 - 를 통해 사용자의 컴퓨터에 연결될 수 있으며, 또는 그 연결은 외부 컴퓨터에 대해 이뤄질 수 있다(예를 들어, 인터넷 서비스 공급자를 사용하여 인터넷을 통해).
본 발명의 측면들은 발명의 실시예들에 따른 방법들, 장치들(시스템들) 및 컴퓨터 프로그램 제품들의 흐름도들 및/또는 블록도들을 참조하여 설명되어 있다. 흐름도들 및/또는 블록도들, 및 흐름도들 및/또는 블록도들 내의 블록들의 조합들은 컴퓨터 프로그램 명령들에 의해 구현될 수 있다는 것을 이해해야 할 것이다. 이들 컴퓨터 프로그램 명령들은 범용 컴퓨터, 특수 컴퓨터, 또는 다른 프로그램가능 데이터 처리 장치의 프로세서에 제공되어 머신(machine)을 생성하도록 할 수 있으며, 그리하여, 그 명령들이 컴퓨터 또는 다른 프로그램가능 데이터 처리 장치의 프로세서를 통해 실행되는 경우, 흐름도 및/또는 블록도의 블록 또는 블록들에 명시된 기능들/동작들을 수행하기 위한 수단을 생성하도록 한다.
이들 컴퓨터 프로그램 명령들은 또한 컴퓨터 판독가능 매체에 저장될 수도 있는데, 이 컴퓨터 판독가능 매체는 컴퓨터, 다른 프로그램가능 데이터 처리 장치, 또는 다른 디바이스들이 특정 방식으로 기능하도록 지시할 수 있으며, 그리하여 컴퓨터 판독가능 매체 내에 저장된 명령들이 흐름도 및/또는 블록도의 블록 또는 블록들에 명시된 기능/동작을 구현하는 명령들을 포함하는 제조물품(article of manufacture)을 생성하도록 한다. 컴퓨터 프로그램 명령들은 또한 컴퓨터, 다른 프로그램가능 데이터 처리 장치, 또는 다른 디바이스들 상으로 로드되어, 일련의 동작 단계들이 컴퓨터, 다른 프로그램가능 데이터 처리 장치, 또는 다른 디바이스들 상에서 수행되도록 하여 컴퓨터로 구현된 프로세스를 생성한다. 그리하여 컴퓨터 또는 다른 프로그램가능 장치 상에서 실행되는 명령들이 흐름도 및/또는 블록도의 블록 또는 블록들에 명시된 기능들/동작들을 구현하기 위한 프로세스들을 제공하도록 한다.
첨부된 도면들에서의 흐름도 및 블록도들은 본 발명의 여러 가지 실시예들에 따른 시스템들, 방법들 및 컴퓨터 프로그램 제품들의 가능한 구현들의 아키텍쳐, 기능, 및 동작을 도시한다. 이 점에서, 흐름도 또는 블록도들 내 각각의 블록은, 명시된 논리적 기능(들)을 구현하기 위한 하나 또는 그 이상의 실행가능 명령들을 포함하는, 모듈, 세그먼트, 코드부를 나타낼 수 있다. 또한 몇몇 다른 구현 예들에서는, 블록에 표시된 기능들이 도면들에 표시된 그 순서를 벗어나서 발생할 수도 있다는 것에 유의하여야 할 것이다. 예를 들어, 연속해서 도시된 두 개의 블록들은, 사실상, 관련된 기능에 따라, 실질적으로 동시에 실행될 수도 있고, 또는 블록들은 때로는 역순으로 실행될 수도 있다. 또한 블록도들 및/또는 흐름도의 각각의 블록, 및 블록도들 및/또는 흐름도 내 블록들의 조합들은, 특정 기능들 또는 작용들을 수행하는 특수 하드웨어 기반 시스템들, 또는 특수 하드웨어 및 컴퓨터 명령들의 조합에 의해 구현될 수 있다는 것에 유의하여야 할 것이다.
본 발명의 하나 또는 그 이상의 실시예들이 상세히 설명되고 있으나, 당해 기술 분야의 통상의 기술을 가진 자라면 이하의 청구항들에서 제시되는 본 발명의 범위를 벗어나지 않고서, 그러한 실시예들에 대한 변형 및 개조가 이뤄질 수 있다는 것을 알 수 있을 것이다.

Claims (27)

  1. 프로세서에 의해 컴퓨팅 환경 내 데이터 중복제거 시스템(data deduplication system)에서 데이터 리던던시(data redundancy)를 보존하는 방법으로서,
    상기 데이터 중복제거 시스템을 통해 라이트(write)될 선택된 데이터 세그먼트를 암호화하는 단계 - 그리하여, 상기 선택된 데이터 세그먼트가 중복제거 동작(deduplication operation)을 받지 않도록 함 - 를 포함하는, 방법.
  2. 청구항 1에 있어서, 상기 방법은,
    상기 암호화된 선택된 데이터 세그먼트를 상기 컴퓨팅 환경을 통해 처리하는 단계 - 그리하여, 상기 선택된 데이터 세그먼트에 관해서는 상기 중복제거 동작이 수행되는 것이 보류(withhold)되도록 함 - 를 더 포함하는, 방법.
  3. 청구항 2에 있어서, 상기 선택된 데이터 세그먼트를 암호화하는 단계는,
    기본적인(underlying) 스토리지 컨트롤러 디바이스에 라이트 요청(write request)을 발행(issue)하기에 앞서, 연관된 가상 디바이스를 위한 고유의 암호화 키로 상기 선택된 데이터 세그먼트를 암호화하는 단계를 더 포함하는, 방법.
  4. 청구항 3에 있어서, 상기 고유의 암호화 키로 상기 선택된 데이터 세그먼트를 암호화하는 단계는, 상기 선택된 데이터 세그먼트를 위한 논리적 블록 주소(logical block address, LBA)의 시작(start), 및 파일 내의 상기 선택된 데이터 세그먼트의 오프셋 중 하나와 연관되도록 상기 암호화 키를 선택하는 단계를 더 포함하며, 암호화 기능은 상기 암호화 기능을 통해 처리된 암호화된 데이터의 크기를 유지하도록 선택되는, 방법.
  5. 청구항 4에 있어서, 상기 선택된 데이터 세그먼트를 암호화하는 단계는, 라이트된 다수의 선택된 데이터 세그먼트들을 하나의 단위로(as a unit) 선택하는 단계 - 그리하여, 상기 다수의 선택된 데이터 세그먼트들 각각을 복호화하는 것이 각각의 세그먼트에 대한 오리지널 데이터를 리턴하는 것, 그리고 상기 다수의 선택된 데이터 세그먼트들 각각이 상기 단위로(as the unit) 복호화되는 것 중 하나가 되도록 함 - 를 포함하는, 방법.
  6. 청구항 2에 있어서, 상기 암호화된 선택된 데이터 세그먼트를 처리하는 단계는 상기 암호화된 선택된 데이터 세그먼트에 대한 라이트 요청(write request)을 상기 컴퓨팅 환경의 스토리지 컨트롤러에서 중복제거 엔진(deduplication engine)을 통해 발행(issue)하는 단계를 포함하는, 방법.
  7. 청구항 6에 있어서, 상기 암호화된 선택된 데이터 세그먼트에 대한 라이트 요청의 실행 동안, 상기 데이터 중복제거 엔진은 상기 암호화된 선택된 데이터 세그먼트를 데이터의 새로운 세그먼트로 인식하고, 상기 중복제거 동작을 수행하는 것을 보류하는, 방법.
  8. 청구항 1에 있어서, 상기 방법은, 상기 선택된 데이터 세그먼트에 관한 차후 리드 동작시, 상기 선택된 데이터 세그먼트를 복호화하는 단계를 더 포함하는, 방법.
  9. 청구항 8에 있어서, 상기 선택된 데이터 세그먼트를 복호화하는 단계는 상기 선택된 데이터 세그먼트를 약한(weak), 고유의(unique), 예측가능한 암호화 키로 복호화하는 단계를 포함하는, 방법.
  10. 컴퓨팅 환경 내 데이터 중복제거 시스템(data deduplication system)에서 데이터 리던던시(data redundancy)를 보존하는 시스템으로서,
    파일 시스템 모듈; 및
    상기 파일 시스템 모듈과 동작가능하게 통신하는 스토리지 컨트롤러를 포함하며,
    상기 파일 시스템 모듈은 상기 데이터 중복제거 시스템을 통해, 라이트(write)될 선택된 데이터 세그먼트를 암호화하도록 구성되어, 상기 선택된 데이터 세그먼트가 중복제거 동작을 받지 않도록 하는, 시스템.
  11. 청구항 10에 있어서, 상기 스토리지 컨트롤러는 상기 암호화된 선택된 데이터 세그먼트를 상기 컴퓨팅 환경을 통해 처리하도록 구성되어, 상기 중복제거 동작이 상기 선택된 데이터 세그먼트에 관해 수행되는 것이 보류(withhold)되도록 하는, 시스템.
  12. 청구항 11에 있어서, 상기 파일 시스템 모듈은, 상기 스토리지 컨트롤러에 라이트 요청(write request)을 발행(issue)하기에 앞서, 연관된 가상 디바이스를 위한 고유의 키(unique key)로 상기 선택된 데이터 세그먼트를 암호화하도록 더 구성되는, 시스템.
  13. 청구항 12에 있어서, 상기 암호화 키는 상기 선택된 데이터 세그먼트에 대한 논리적 블록 주소(logical block address, LBA)의 시작(start), 및 파일 내의 상기 선택된 데이터 세그먼트의 오프셋 중 하나와 연관되도록 선택되고, 여기서 암호화 기능은 상기 암호화 기능을 통해 처리되는 암호화된 데이터의 크기를 유지하도록 선택되는, 시스템.
  14. 청구항 13에 있어서, 상기 파일 시스템 모듈은 라이트된 다수의 선택된 데이터 세그먼트들을 하나의 단위로(as a unit) 선택하도록 더 구성되어, 상기 다수의 선택된 데이터 세그먼트들 각각을 복호화하는 것이, 각각의 세그먼트에 대한 오리지널 데이터를 리턴하는 것, 그리고 상기 다수의 선택된 데이터 세그먼트들 각각이 상기 단위로(as the unit) 복호화되는 것 중 하나가 되도록 하는, 시스템.
  15. 청구항 11에 있어서, 상기 시스템은,
    상기 스토리지 컨트롤러와 연관된 데이터 중복제거 엔진을 더 포함하며,
    상기 파일 시스템 모듈은 상기 데이터 중복제거 엔진을 통해 상기 암호화된 선택된 데이터 세그먼트에 대한 라이트 요청을 발행(issue)하도록 더 구성되는, 시스템.
  16. 청구항 15에 있어서, 상기 암호화된 선택된 데이터 세그먼트에 대한 상기 라이트 요청의 실행 동안, 상기 데이터 중복제거 엔진은 상기 암호화된 선택된 데이터 세그먼트를 데이터의 새로운 세그먼트로서 인식하고 상기 중복제거 동작을 수행하는 것을 보류(withhold)하는, 시스템.
  17. 청구항 11에 있어서, 상기 파일 시스템 모듈은 상기 선택된 데이터 세그먼트에 관한 차후의 리드 동작시, 상기 선택된 데이터 세그먼트를 복호화하도록 더 구성되는, 시스템.
  18. 청구항 17에 있어서, 상기 선택된 데이터 세그먼트는 약한(weak), 고유의(unique) , 예측가능한 암호화 키로 복호화되는, 시스템.
  19. 프로세서에 의해 컴퓨팅 환경 내 데이터 중복제거 시스템(data deduplication system)에서 데이터 리던던시(data redundancy)를 보존하는 컴퓨터 프로그램 제품으로서, 상기 컴퓨터 프로그램 제품은 컴퓨터 판독가능 스토리지 매체 - 상기 컴퓨터 판독가능 스토리지 매체는 그 안에 저장된 컴퓨터 판독가능 프로그램 코드부들(computer-readable program code portions)을 가짐 - 를 포함하며, 상기 컴퓨터 판독가능 프로그램 코드부들은,
    상기 데이터 중복제거 시스템을 통해, 라이트(write)될 선택된 데이터 세그먼트를 암호화하여, 상기 선택된 데이터 세그먼트가 중복제거 동작(deduplication operation)을 받지 않도록 하기 위한 제1 실행가능부(first executable portion)를 포함하는, 컴퓨터 프로그램 제품.
  20. 청구항 19에 있어서, 상기 컴퓨터 프로그램 제품은, 상기 컴퓨팅 환경을 통해 상기 암호화된 선택된 데이터 세그먼트를 처리하여, 상기 중복제거 동작이 상기 선택된 데이터 세그먼트에 관해 수행되는 것이 보류되도록 하기 위한 제2 실행가능부를 더 포함하는, 컴퓨터 프로그램 제품.
  21. 청구항 20에 있어서, 상기 컴퓨터 프로그램 제품은, 상기 선택된 데이터 세그먼트를 암호화하는 것에 따라, 기본적인(underlying) 스토리지 컨트롤러 디바이스에 대한 라이트 요청(write request)을 발행(issue)하기에 앞서, 연관된 가상 디바이스를 위한 고유의 암호화 키로 상기 선택된 데이터 세그먼트를 암호화하기 위한, 제3 실행가능부를 더 포함하는, 컴퓨터 프로그램 제품.
  22. 청구항 21에 있어서, 상기 컴퓨터 프로그램 제품은, 상기 고유의 암호화 키로 상기 선택된 데이터 세그먼트를 암호화하는 것에 따라, 상기 선택된 데이터 세그먼트에 대한 논리적 블록 주소(logical block address, LBA)의 시작(start), 및 파일 내에서 상기 선택된 데이터 세그먼트의 오프셋 중 하나와 연관되도록 상기 암호화 키를 선택하기 위한 제4 실행가능부를 더 포함하며, 암호화 기능은 상기 암호화 기능을 통해 처리되는 암호화된 데이터의 크기를 유지하도록 선택되는, 컴퓨터 프로그램 제품.
  23. 청구항 22에 있어서, 상기 컴퓨터 프로그램 제품은, 상기 선택된 데이터 세그먼트를 암호화하는 것에 따라, 라이트된 다수의 선택된 데이터 세그먼트들을 하나의 단위(as a unit)으로 선택하여, 상기 다수의 선택된 데이터 세그먼트들 각각을 복호화하는 것이, 각각의 세그먼트에 대한 오리지널 데이터를 리턴하는 것, 그리고 상기 다수의 선택된 데이터 세그먼트들 각각은 상기 유닛으로 복호화되는 것 중 하나가 되도록 하기 위한, 제5 코드부를 더 포함하는, 컴퓨터 프로그램 제품.
  24. 청구항 20에 있어서, 상기 컴퓨터 프로그램 제품은, 상기 암호화된 선택된 데이터 세그먼트를 처리하는 것에 따라, 상기 컴퓨팅 환경의 스토리지 컨트롤러에서의 중복제거 엔진을 통해 상기 암호화된 선택된 데이터 세그먼트에 대한 라이트 요청을 발행(issue)하기 위한, 제3 실행가능부를 더 포함하는, 컴퓨터 프로그램 제품.
  25. 청구항 24에 있어서, 상기 암호화된 선택된 데이터 세그먼트에 대한 상기 라이트 요청의 실행 동안, 상기 데이터 중복제거 엔진은 상기 암호화된 선택된 데이터 세그먼트를 데이터의 새로운 세그먼트로 인식하고 상기 중복제거 동작을 수행하는 것을 보류(withhold)하는, 컴퓨터 프로그램 제품.
  26. 청구항 20에 있어서, 상기 컴퓨터 프로그램 제품은, 상기 선택된 데이터 세그먼트의 차후(subsequent) 리드 동작시, 상기 선택된 데이터 세그먼트를 복호화하기 위한 제3 실행가능부를 더 포함하는, 컴퓨터 프로그램 제품.
  27. 청구항 26에 있어서, 상기 컴퓨터 프로그램 제품은, 상기 선택된 데이터 세그먼트를 복호화하는 것에 따라, 상기 선택된 데이터 세그먼트를 약한(weak), 고유의(unique), 예측가능한 암호화 키로 복호화하기 위한, 제4 실행가능부를 더 포함하는, 컴퓨터 프로그램 제품.
KR20147024578A 2012-04-23 2013-01-14 암호화에 의해 데이터 중복제거 시스템에서 리던던시를 보존하는 기술 KR20140128403A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/453,259 2012-04-23
US13/453,259 US8996881B2 (en) 2012-04-23 2012-04-23 Preserving redundancy in data deduplication systems by encryption
PCT/CN2013/070416 WO2013159582A1 (en) 2012-04-23 2013-01-14 Preserving redundancy in data deduplication systems by encryption

Publications (1)

Publication Number Publication Date
KR20140128403A true KR20140128403A (ko) 2014-11-05

Family

ID=49381276

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20147024578A KR20140128403A (ko) 2012-04-23 2013-01-14 암호화에 의해 데이터 중복제거 시스템에서 리던던시를 보존하는 기술

Country Status (7)

Country Link
US (4) US8996881B2 (ko)
EP (1) EP2842063A4 (ko)
JP (1) JP6109293B2 (ko)
KR (1) KR20140128403A (ko)
CN (1) CN104272300B (ko)
IN (1) IN2014CN04774A (ko)
WO (1) WO2013159582A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101880075B1 (ko) * 2014-01-15 2018-07-20 인텔 코포레이션 중복 제거 기반 데이터 보안

Families Citing this family (150)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8732426B2 (en) 2010-09-15 2014-05-20 Pure Storage, Inc. Scheduling of reactive I/O operations in a storage environment
US8589625B2 (en) 2010-09-15 2013-11-19 Pure Storage, Inc. Scheduling of reconstructive I/O read operations in a storage environment
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
US8468318B2 (en) 2010-09-15 2013-06-18 Pure Storage Inc. Scheduling of I/O writes in a storage environment
US11275509B1 (en) 2010-09-15 2022-03-15 Pure Storage, Inc. Intelligently sizing high latency I/O requests in a storage environment
US8589655B2 (en) 2010-09-15 2013-11-19 Pure Storage, Inc. Scheduling of I/O in an SSD environment
US12008266B2 (en) 2010-09-15 2024-06-11 Pure Storage, Inc. Efficient read by reconstruction
US8775868B2 (en) 2010-09-28 2014-07-08 Pure Storage, Inc. Adaptive RAID for an SSD environment
US9244769B2 (en) 2010-09-28 2016-01-26 Pure Storage, Inc. Offset protection data in a RAID array
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US11636031B2 (en) 2011-08-11 2023-04-25 Pure Storage, Inc. Optimized inline deduplication
US8719540B1 (en) 2012-03-15 2014-05-06 Pure Storage, Inc. Fractal layout of data blocks across multiple devices
US10623386B1 (en) 2012-09-26 2020-04-14 Pure Storage, Inc. Secret sharing data protection in a storage system
US11032259B1 (en) 2012-09-26 2021-06-08 Pure Storage, Inc. Data protection in a storage system
US8745415B2 (en) 2012-09-26 2014-06-03 Pure Storage, Inc. Multi-drive cooperation to generate an encryption key
US9442954B2 (en) * 2012-11-12 2016-09-13 Datawise Systems Method and apparatus for achieving optimal resource allocation dynamically in a distributed computing environment
US9646039B2 (en) 2013-01-10 2017-05-09 Pure Storage, Inc. Snapshots in a storage system
US11768623B2 (en) 2013-01-10 2023-09-26 Pure Storage, Inc. Optimizing generalized transfers between storage systems
US11733908B2 (en) 2013-01-10 2023-08-22 Pure Storage, Inc. Delaying deletion of a dataset
US10908835B1 (en) 2013-01-10 2021-02-02 Pure Storage, Inc. Reversing deletion of a virtual machine
US10365858B2 (en) 2013-11-06 2019-07-30 Pure Storage, Inc. Thin provisioning in a storage device
US11128448B1 (en) 2013-11-06 2021-09-21 Pure Storage, Inc. Quorum-aware secret sharing
US10263770B2 (en) 2013-11-06 2019-04-16 Pure Storage, Inc. Data protection in a storage system using external secrets
US9208086B1 (en) 2014-01-09 2015-12-08 Pure Storage, Inc. Using frequency domain to prioritize storage of metadata in a cache
US20150242640A1 (en) * 2014-02-24 2015-08-27 Western Digital Technologies, Inc. Encryption key selection
US10656864B2 (en) 2014-03-20 2020-05-19 Pure Storage, Inc. Data replication within a flash storage array
WO2015152935A1 (en) 2014-04-04 2015-10-08 Hewlett-Packard Development Company, L.P. Storing and retrieving ciphertext in data storage
US9779268B1 (en) * 2014-06-03 2017-10-03 Pure Storage, Inc. Utilizing a non-repeating identifier to encrypt data
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US11399063B2 (en) 2014-06-04 2022-07-26 Pure Storage, Inc. Network authentication for a storage system
US9218407B1 (en) 2014-06-25 2015-12-22 Pure Storage, Inc. Replication and intermediate read-write state for mediums
US10496556B1 (en) 2014-06-25 2019-12-03 Pure Storage, Inc. Dynamic data protection within a flash storage system
US10296469B1 (en) 2014-07-24 2019-05-21 Pure Storage, Inc. Access control in a flash storage system
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US9864761B1 (en) 2014-08-08 2018-01-09 Pure Storage, Inc. Read optimization operations in a storage system
US9397832B2 (en) * 2014-08-27 2016-07-19 International Business Machines Corporation Shared data encryption and confidentiality
US10430079B2 (en) 2014-09-08 2019-10-01 Pure Storage, Inc. Adjusting storage capacity in a computing system
WO2016048331A1 (en) 2014-09-25 2016-03-31 Hewlett Packard Enterprise Development Lp Storage of a data chunk with a colliding fingerprint
US10164841B2 (en) 2014-10-02 2018-12-25 Pure Storage, Inc. Cloud assist for storage systems
US10430282B2 (en) 2014-10-07 2019-10-01 Pure Storage, Inc. Optimizing replication by distinguishing user and system write activity
US9489132B2 (en) 2014-10-07 2016-11-08 Pure Storage, Inc. Utilizing unmapped and unknown states in a replicated storage system
US9727485B1 (en) 2014-11-24 2017-08-08 Pure Storage, Inc. Metadata rewrite and flatten optimization
US9773007B1 (en) 2014-12-01 2017-09-26 Pure Storage, Inc. Performance improvements in a storage system
US9588842B1 (en) 2014-12-11 2017-03-07 Pure Storage, Inc. Drive rebuild
US9552248B2 (en) 2014-12-11 2017-01-24 Pure Storage, Inc. Cloud alert to replica
US9864769B2 (en) 2014-12-12 2018-01-09 Pure Storage, Inc. Storing data utilizing repeating pattern detection
US10545987B2 (en) 2014-12-19 2020-01-28 Pure Storage, Inc. Replication to the cloud
US10296354B1 (en) 2015-01-21 2019-05-21 Pure Storage, Inc. Optimized boot operations within a flash storage array
US11947968B2 (en) 2015-01-21 2024-04-02 Pure Storage, Inc. Efficient use of zone in a storage device
US9710165B1 (en) 2015-02-18 2017-07-18 Pure Storage, Inc. Identifying volume candidates for space reclamation
US10082985B2 (en) 2015-03-27 2018-09-25 Pure Storage, Inc. Data striping across storage nodes that are assigned to multiple logical arrays
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US10140149B1 (en) 2015-05-19 2018-11-27 Pure Storage, Inc. Transactional commits with hardware assists in remote memory
JP6666540B2 (ja) 2015-06-15 2020-03-18 富士通株式会社 ストレージ制御装置、及びプログラム
US10310740B2 (en) 2015-06-23 2019-06-04 Pure Storage, Inc. Aligning memory access operations to a geometry of a storage device
US9547441B1 (en) 2015-06-23 2017-01-17 Pure Storage, Inc. Exposing a geometry of a storage device
US10009243B2 (en) 2015-08-27 2018-06-26 International Business Machines Corporation Cross-tenant analysis of similar storage environments to recommend storage policy changes
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US11269884B2 (en) 2015-09-04 2022-03-08 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
KR20170028825A (ko) 2015-09-04 2017-03-14 퓨어 스토리지, 아이앤씨. 압축된 인덱스들을 사용한 해시 테이블들에서의 메모리 효율적인 스토리지 및 탐색
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
US10089024B2 (en) * 2015-11-19 2018-10-02 Red Hat Israel, Ltd. Memory deduplication protection for memory pages
US20170220295A1 (en) * 2016-02-02 2017-08-03 Intel Corporation Technologies for reducing duplication of stored data
US10157153B2 (en) * 2016-02-03 2018-12-18 Qualcomm Incorporated Inline cryptographic engine (ICE) for peripheral component interconnect express (PCIe) systems
US10452297B1 (en) 2016-05-02 2019-10-22 Pure Storage, Inc. Generating and optimizing summary index levels in a deduplication storage system
US10133503B1 (en) 2016-05-02 2018-11-20 Pure Storage, Inc. Selecting a deduplication process based on a difference between performance metrics
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US10235396B2 (en) 2016-08-29 2019-03-19 International Business Machines Corporation Workload optimized data deduplication using ghost fingerprints
US10191662B2 (en) 2016-10-04 2019-01-29 Pure Storage, Inc. Dynamic allocation of segments in a flash storage system
US10545861B2 (en) 2016-10-04 2020-01-28 Pure Storage, Inc. Distributed integrated high-speed solid-state non-volatile random-access memory
US10162523B2 (en) 2016-10-04 2018-12-25 Pure Storage, Inc. Migrating data between volumes using virtual copy operation
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US10481798B2 (en) 2016-10-28 2019-11-19 Pure Storage, Inc. Efficient flash management for multiple controllers
US10185505B1 (en) 2016-10-28 2019-01-22 Pure Storage, Inc. Reading a portion of data to replicate a volume based on sequence numbers
US10359942B2 (en) 2016-10-31 2019-07-23 Pure Storage, Inc. Deduplication aware scalable content placement
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US10452290B2 (en) 2016-12-19 2019-10-22 Pure Storage, Inc. Block consolidation in a direct-mapped flash storage system
US11093146B2 (en) 2017-01-12 2021-08-17 Pure Storage, Inc. Automatic load rebalancing of a write group
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US12045487B2 (en) 2017-04-21 2024-07-23 Pure Storage, Inc. Preserving data deduplication in a multi-tenant storage system
US11403019B2 (en) 2017-04-21 2022-08-02 Pure Storage, Inc. Deduplication-aware per-tenant encryption
US10944671B2 (en) 2017-04-27 2021-03-09 Pure Storage, Inc. Efficient data forwarding in a networked device
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10831935B2 (en) 2017-08-31 2020-11-10 Pure Storage, Inc. Encryption management with host-side data reduction
US10776202B1 (en) 2017-09-22 2020-09-15 Pure Storage, Inc. Drive, blade, or data shard decommission via RAID geometry shrinkage
US10789211B1 (en) 2017-10-04 2020-09-29 Pure Storage, Inc. Feature-based deduplication
US10884919B2 (en) 2017-10-31 2021-01-05 Pure Storage, Inc. Memory management in a storage system
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10970395B1 (en) 2018-01-18 2021-04-06 Pure Storage, Inc Security threat monitoring for a storage system
US11144638B1 (en) 2018-01-18 2021-10-12 Pure Storage, Inc. Method for storage system detection and alerting on potential malicious action
US11010233B1 (en) 2018-01-18 2021-05-18 Pure Storage, Inc Hardware-based system monitoring
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US11494109B1 (en) 2018-02-22 2022-11-08 Pure Storage, Inc. Erase block trimming for heterogenous flash memory storage devices
US11934322B1 (en) 2018-04-05 2024-03-19 Pure Storage, Inc. Multiple encryption keys on storage drives
US11995336B2 (en) 2018-04-25 2024-05-28 Pure Storage, Inc. Bucket views
US10678433B1 (en) 2018-04-27 2020-06-09 Pure Storage, Inc. Resource-preserving system upgrade
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
JP7109992B2 (ja) * 2018-05-22 2022-08-01 キオクシア株式会社 メモリシステムおよび制御方法
JP7048411B2 (ja) * 2018-05-22 2022-04-05 キオクシア株式会社 メモリシステムおよび制御方法
US10678436B1 (en) 2018-05-29 2020-06-09 Pure Storage, Inc. Using a PID controller to opportunistically compress more data during garbage collection
US11436023B2 (en) 2018-05-31 2022-09-06 Pure Storage, Inc. Mechanism for updating host file system and flash translation layer based on underlying NAND technology
US10776046B1 (en) 2018-06-08 2020-09-15 Pure Storage, Inc. Optimized non-uniform memory access
US11281577B1 (en) 2018-06-19 2022-03-22 Pure Storage, Inc. Garbage collection tuning for low drive wear
US10795861B2 (en) * 2018-06-20 2020-10-06 International Business Machines Corporation Online measurement of potential deduplication efficiency
US11869586B2 (en) 2018-07-11 2024-01-09 Pure Storage, Inc. Increased data protection by recovering data from partially-failed solid-state devices
US11133076B2 (en) 2018-09-06 2021-09-28 Pure Storage, Inc. Efficient relocation of data between storage devices of a storage system
US11194759B2 (en) 2018-09-06 2021-12-07 Pure Storage, Inc. Optimizing local data relocation operations of a storage device of a storage system
US10846216B2 (en) 2018-10-25 2020-11-24 Pure Storage, Inc. Scalable garbage collection
US11113409B2 (en) 2018-10-26 2021-09-07 Pure Storage, Inc. Efficient rekey in a transparent decrypting storage array
US11194473B1 (en) 2019-01-23 2021-12-07 Pure Storage, Inc. Programming frequently read data to low latency portions of a solid-state storage array
US11588633B1 (en) 2019-03-15 2023-02-21 Pure Storage, Inc. Decommissioning keys in a decryption storage system
US11334254B2 (en) 2019-03-29 2022-05-17 Pure Storage, Inc. Reliability based flash page sizing
US11397674B1 (en) 2019-04-03 2022-07-26 Pure Storage, Inc. Optimizing garbage collection across heterogeneous flash devices
US11775189B2 (en) 2019-04-03 2023-10-03 Pure Storage, Inc. Segment level heterogeneity
US10990480B1 (en) 2019-04-05 2021-04-27 Pure Storage, Inc. Performance of RAID rebuild operations by a storage group controller of a storage system
US12087382B2 (en) 2019-04-11 2024-09-10 Pure Storage, Inc. Adaptive threshold for bad flash memory blocks
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US11487665B2 (en) 2019-06-05 2022-11-01 Pure Storage, Inc. Tiered caching of data in a storage system
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
US10929046B2 (en) 2019-07-09 2021-02-23 Pure Storage, Inc. Identifying and relocating hot data to a cache determined with read velocity based on a threshold stored at a storage device
US11422751B2 (en) 2019-07-18 2022-08-23 Pure Storage, Inc. Creating a virtual storage system
US11086713B1 (en) 2019-07-23 2021-08-10 Pure Storage, Inc. Optimized end-to-end integrity storage system
US11963321B2 (en) 2019-09-11 2024-04-16 Pure Storage, Inc. Low profile latching mechanism
US11403043B2 (en) 2019-10-15 2022-08-02 Pure Storage, Inc. Efficient data compression by grouping similar data within a data segment
US11226942B2 (en) * 2019-10-16 2022-01-18 International Business Machines Corporation Controlling deduplication in a storage pool
US12050683B2 (en) * 2019-11-22 2024-07-30 Pure Storage, Inc. Selective control of a data synchronization setting of a storage system based on a possible ransomware attack against the storage system
US11520907B1 (en) 2019-11-22 2022-12-06 Pure Storage, Inc. Storage system snapshot retention based on encrypted data
US11755751B2 (en) 2019-11-22 2023-09-12 Pure Storage, Inc. Modify access restrictions in response to a possible attack against data stored by a storage system
US11341236B2 (en) 2019-11-22 2022-05-24 Pure Storage, Inc. Traffic-based detection of a security threat to a storage system
US11615185B2 (en) 2019-11-22 2023-03-28 Pure Storage, Inc. Multi-layer security threat detection for a storage system
US11675898B2 (en) 2019-11-22 2023-06-13 Pure Storage, Inc. Recovery dataset management for security threat monitoring
US11687418B2 (en) 2019-11-22 2023-06-27 Pure Storage, Inc. Automatic generation of recovery plans specific to individual storage elements
US12079356B2 (en) 2019-11-22 2024-09-03 Pure Storage, Inc. Measurement interval anomaly detection-based generation of snapshots
US11941116B2 (en) 2019-11-22 2024-03-26 Pure Storage, Inc. Ransomware-based data protection parameter modification
US12050689B2 (en) 2019-11-22 2024-07-30 Pure Storage, Inc. Host anomaly-based generation of snapshots
US11651075B2 (en) 2019-11-22 2023-05-16 Pure Storage, Inc. Extensible attack monitoring by a storage system
US11625481B2 (en) 2019-11-22 2023-04-11 Pure Storage, Inc. Selective throttling of operations potentially related to a security threat to a storage system
US11720714B2 (en) 2019-11-22 2023-08-08 Pure Storage, Inc. Inter-I/O relationship based detection of a security threat to a storage system
US12067118B2 (en) 2019-11-22 2024-08-20 Pure Storage, Inc. Detection of writing to a non-header portion of a file as an indicator of a possible ransomware attack against a storage system
US11645162B2 (en) 2019-11-22 2023-05-09 Pure Storage, Inc. Recovery point determination for data restoration in a storage system
US11720692B2 (en) 2019-11-22 2023-08-08 Pure Storage, Inc. Hardware token based management of recovery datasets for a storage system
US11500788B2 (en) 2019-11-22 2022-11-15 Pure Storage, Inc. Logical address based authorization of operations with respect to a storage system
US11657155B2 (en) 2019-11-22 2023-05-23 Pure Storage, Inc Snapshot delta metric based determination of a possible ransomware attack against data maintained by a storage system
US12079333B2 (en) 2019-11-22 2024-09-03 Pure Storage, Inc. Independent security threat detection and remediation by storage systems in a synchronous replication arrangement
US12079502B2 (en) 2019-11-22 2024-09-03 Pure Storage, Inc. Storage element attribute-based determination of a data protection policy for use within a storage system
CN111338572B (zh) * 2020-02-18 2021-09-14 电子科技大学 一种可调节加密重复数据删除方法
US11573929B2 (en) 2020-04-09 2023-02-07 Kyndryl, Inc. Deduplication of encrypted data using multiple keys
US11803648B2 (en) 2020-12-09 2023-10-31 International Business Machines Corporation Key in lockbox encrypted data deduplication

Family Cites Families (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001046808A1 (fr) * 1999-12-20 2001-06-28 Dai Nippon Printing Co., Ltd. Dispositif et systeme d'archivage reparti
WO2002065693A2 (en) * 2001-02-14 2002-08-22 Scientific Generics Limited Cryptographic key generation apparatus and method
EP1271951A1 (en) * 2001-06-22 2003-01-02 Octalis S.A. Conditional access system for digital data by key decryption and re-encryption
EP1466246B1 (en) 2001-11-23 2011-03-02 Commvault Systems, Inc. Selective data replication system and method
US20030115447A1 (en) * 2001-12-18 2003-06-19 Duc Pham Network media access architecture and methods for secure storage
US20040131182A1 (en) * 2002-09-03 2004-07-08 The Regents Of The University Of California Block cipher mode of operation for constructing a wide-blocksize block cipher from a conventional block cipher
US8010498B2 (en) 2005-04-08 2011-08-30 Microsoft Corporation Virtually infinite reliable storage across multiple storage devices and storage services
JP4620518B2 (ja) * 2005-04-26 2011-01-26 株式会社ケンウッド 音声データベース製造装置、音片復元装置、音声データベース製造方法、音片復元方法及びプログラム
US20070168350A1 (en) * 2006-01-17 2007-07-19 Tom Utiger Management of non-traditional content repositories
US9465823B2 (en) 2006-10-19 2016-10-11 Oracle International Corporation System and method for data de-duplication
US7873809B2 (en) 2007-03-29 2011-01-18 Hitachi, Ltd. Method and apparatus for de-duplication after mirror operation
JP5060876B2 (ja) 2007-08-30 2012-10-31 株式会社日立製作所 ストレージシステム及びストレージシステムの消費電力低減方法
US8209506B2 (en) 2007-09-05 2012-06-26 Emc Corporation De-duplication in a virtualized storage environment
JP5026213B2 (ja) 2007-09-28 2012-09-12 株式会社日立製作所 ストレージ装置及びデータ重複排除方法
US8621138B2 (en) 2007-12-27 2013-12-31 Sandisk Enterprise Ip Llc Flash storage controller execute loop
US7979670B2 (en) 2008-01-24 2011-07-12 Quantum Corporation Methods and systems for vectored data de-duplication
US7814074B2 (en) 2008-03-14 2010-10-12 International Business Machines Corporation Method and system for assuring integrity of deduplicated data
US7567188B1 (en) 2008-04-10 2009-07-28 International Business Machines Corporation Policy based tiered data deduplication strategy
US20090319772A1 (en) * 2008-04-25 2009-12-24 Netapp, Inc. In-line content based security for data at rest in a network storage system
US8346730B2 (en) 2008-04-25 2013-01-01 Netapp. Inc. Deduplication of data on disk devices based on a threshold number of sequential blocks
US9395929B2 (en) 2008-04-25 2016-07-19 Netapp, Inc. Network storage server with integrated encryption, compression and deduplication capability
US7908436B1 (en) 2008-04-25 2011-03-15 Netapp, Inc. Deduplication of data on disk devices using low-latency random read memory
US8117464B1 (en) * 2008-04-30 2012-02-14 Netapp, Inc. Sub-volume level security for deduplicated data
US8219524B2 (en) * 2008-06-24 2012-07-10 Commvault Systems, Inc. Application-aware and remote single instance data management
US8392791B2 (en) 2008-08-08 2013-03-05 George Saliba Unified data protection and data de-duplication in a storage system
US8086799B2 (en) 2008-08-12 2011-12-27 Netapp, Inc. Scalable deduplication of stored data
US8074049B2 (en) 2008-08-26 2011-12-06 Nine Technology, Llc Online backup system with global two staged deduplication without using an indexing database
US8290915B2 (en) * 2008-09-15 2012-10-16 International Business Machines Corporation Retrieval and recovery of data chunks from alternate data stores in a deduplicating system
US8190823B2 (en) 2008-09-18 2012-05-29 Lenovo (Singapore) Pte. Ltd. Apparatus, system and method for storage cache deduplication
US8131687B2 (en) 2008-11-13 2012-03-06 International Business Machines Corporation File system with internal deduplication and management of data blocks
US9058118B1 (en) * 2008-12-31 2015-06-16 Symantec Corporation Techniques for synchronizing and/or consolidating storage areas
US8271718B2 (en) 2009-03-11 2012-09-18 Hitachi, Ltd. Storage system and control method for the same, and program
US8140491B2 (en) 2009-03-26 2012-03-20 International Business Machines Corporation Storage management through adaptive deduplication
US8401996B2 (en) * 2009-03-30 2013-03-19 Commvault Systems, Inc. Storing a variable number of instances of data objects
US8218759B2 (en) * 2009-04-17 2012-07-10 Oracle America, Inc. System and method for encrypting data
US8412848B2 (en) * 2009-05-29 2013-04-02 Exagrid Systems, Inc. Method and apparatus for content-aware and adaptive deduplication
US8731190B2 (en) 2009-06-09 2014-05-20 Emc Corporation Segment deduplication system with encryption and compression of segments
US8401181B2 (en) 2009-06-09 2013-03-19 Emc Corporation Segment deduplication system with encryption of segments
US20100333116A1 (en) * 2009-06-30 2010-12-30 Anand Prahlad Cloud gateway system for managing data storage to cloud storage sites
GB2472072B (en) 2009-07-24 2013-10-16 Hewlett Packard Development Co Deduplication of encoded data
CN101656720B (zh) * 2009-08-12 2012-10-17 北京握奇数据系统有限公司 对信息系统中访问对象信息统一维护的方法及装置
US8200641B2 (en) 2009-09-11 2012-06-12 Dell Products L.P. Dictionary for data deduplication
EP2414926A1 (en) * 2009-09-18 2012-02-08 Hitachi, Ltd. Storage system for eliminating duplicated data
FR2952778B1 (fr) 2009-11-17 2011-12-23 Thales Sa Procede de transmission de donnees securise et systeme de chiffrement et de dechiffrement permettant une telle transmission
US9239843B2 (en) 2009-12-15 2016-01-19 Symantec Corporation Scalable de-duplication for storage systems
US8660994B2 (en) 2010-01-28 2014-02-25 Hewlett-Packard Development Company, L.P. Selective data deduplication
US8108447B2 (en) * 2010-03-11 2012-01-31 Symantec Corporation Systems and methods for garbage collection in deduplicated data systems
JP5434705B2 (ja) 2010-03-12 2014-03-05 富士通株式会社 ストレージ装置、ストレージ装置制御プログラムおよびストレージ装置制御方法
US8453031B2 (en) 2010-03-24 2013-05-28 International Business Machines Corporation Data deduplication using CRC-seed differentiation between data and stubs
JP4892072B2 (ja) 2010-03-24 2012-03-07 株式会社東芝 ホスト装置と連携して重複データを排除するストレージ装置、同ストレージ装置を備えたストレージシステム、及び同システムにおける重複排除方法
US8442942B2 (en) 2010-03-25 2013-05-14 Andrew C. Leppard Combining hash-based duplication with sub-block differencing to deduplicate data
US8954669B2 (en) 2010-07-07 2015-02-10 Nexenta System, Inc Method and system for heterogeneous data volume
US8886613B2 (en) 2010-10-12 2014-11-11 Don Doerner Prioritizing data deduplication
US20120095968A1 (en) 2010-10-17 2012-04-19 Stephen Gold Storage tiers for different backup types
US8380681B2 (en) 2010-12-16 2013-02-19 Microsoft Corporation Extensible pipeline for data deduplication
US8539148B1 (en) 2010-12-22 2013-09-17 Emc Corporation Deduplication efficiency
CN102156727A (zh) 2011-04-01 2011-08-17 华中科技大学 一种采用双指纹哈希校验的重复数据删除方法
CN102281320A (zh) 2011-04-25 2011-12-14 程旭 控制云存储中数据冗余的方法及装置
US20120317084A1 (en) 2011-06-13 2012-12-13 Beijing Z&W Technology Consulting Co., Ltd. Method and system for achieving data de-duplication on a block-level storage virtualization device
CN102221982B (zh) 2011-06-13 2013-09-11 北京卓微天成科技咨询有限公司 块级虚拟化存储设备上实现重复数据删除的方法及系统
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US8527544B1 (en) 2011-08-11 2013-09-03 Pure Storage Inc. Garbage collection in a storage system
US8930307B2 (en) 2011-09-30 2015-01-06 Pure Storage, Inc. Method for removing duplicate data from a storage array
US8468138B1 (en) 2011-12-02 2013-06-18 International Business Machines Corporation Managing redundant immutable files using deduplication in storage clouds
US9904565B2 (en) 2012-02-01 2018-02-27 Veritas Technologies Llc Subsequent operation input reduction systems and methods for virtual machines
US8712976B1 (en) 2012-03-28 2014-04-29 Emc Corporation Managing deduplication density
US8812456B2 (en) 2012-03-30 2014-08-19 Netapp Inc. Systems, methods, and computer program products for scheduling processing to achieve space savings

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101880075B1 (ko) * 2014-01-15 2018-07-20 인텔 코포레이션 중복 제거 기반 데이터 보안

Also Published As

Publication number Publication date
IN2014CN04774A (ko) 2015-09-18
US20130283058A1 (en) 2013-10-24
US8990581B2 (en) 2015-03-24
EP2842063A1 (en) 2015-03-04
US20130283062A1 (en) 2013-10-24
US9792450B2 (en) 2017-10-17
US20150154411A1 (en) 2015-06-04
JP2015515216A (ja) 2015-05-21
JP6109293B2 (ja) 2017-04-05
US8996881B2 (en) 2015-03-31
CN104272300A (zh) 2015-01-07
CN104272300B (zh) 2018-12-21
EP2842063A4 (en) 2015-05-06
US9824228B2 (en) 2017-11-21
WO2013159582A1 (en) 2013-10-31
US20150154410A1 (en) 2015-06-04

Similar Documents

Publication Publication Date Title
US8990581B2 (en) Preserving redundancy in data deduplication systems by encryption
US10691670B2 (en) Preserving redundancy in data deduplication systems by indicator
US8422677B2 (en) Storage virtualization apparatus comprising encryption functions
US8621241B1 (en) Storage and recovery of cryptographic key identifiers
US8918651B2 (en) Cryptographic erasure of selected encrypted data
US8489893B2 (en) Encryption key rotation messages written and observed by storage controllers via storage media
US9225691B1 (en) Deduplication of encrypted dataset on datadomain backup appliance
KR20130026517A (ko) 저장부 할당 장치, 시스템, 및 방법
US9767113B2 (en) Preserving redundancy in data deduplication systems by designation of virtual address
JP2017524213A (ja) 重複排除システムのハッシュ・ベース・マルチテナンシ
US10846441B2 (en) Computer system
US20090202080A1 (en) Method and system for managing encryption key
JP2018142314A (ja) データを暗号化するための分散データ方法
US10146703B1 (en) Encrypting data objects in a data storage system
WO2015118630A1 (ja) ストレージシステムおよびストレージシステム用キャッシュ制御装置
US20220123932A1 (en) Data storage device encryption
US20220045850A1 (en) Memory system encrypting data
US10152486B2 (en) Preserving redundancy in data deduplication systems by designation of virtual device

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application