Deduplication-Aware Per-Tenant Encryption for Multi-Tenant Storage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-tenant storage environments, deduplication of data encrypted with unique tenant keys is challenging, leading to inefficiencies in storage and processing due to the difficulty in identifying and managing duplicate data blocks across tenants.

Innovation Solution

Implementing deduplication-aware per-tenant encryption that uses hash functions to identify duplicate data blocks and allows for efficient storage and processing by replacing duplicate blocks with pointers, thereby increasing storage and processing efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If per-tenant encryption is implemented in a multi-tenant storage system, then data security and isolation between tenants are improved, but deduplication capability deteriorates because encrypted data with unique tenant keys cannot be efficiently compared for duplicates

Engineering Contradiction:
Improvedata securityVSAvoiddeduplication capability
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the deduplication process into two independent stages: (1) deduplication of plaintext data blocks before encryption, and (2) deduplication of ciphertext blocks using encryption-agnostic hashing. This segmentation allows each stage to operate independently without compromising security or efficiency

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs deduplication operations on plaintext data blocks before encryption is applied. By conducting the comparison and duplicate identification in advance, the system eliminates redundant encrypted data without needing to compare encrypted blocks, thus preserving both security and deduplication capability

Inventive Principle:
Principle #10Preliminary action

2Quantity of substance

If deduplication is performed on encrypted data, then storage efficiency is improved, but processing complexity increases due to the difficulty of identifying duplicate blocks with unique encryption keys

Engineering Contradiction:
Improvestorage efficiencyVSAvoidprocessing complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

Instead of attempting to deduplicate encrypted data directly (the conventional approach), the patent inverts the process by deduplicating plaintext data before encryption. This inversion simplifies the processing complexity while achieving the same storage efficiency goals

Inventive Principle:
Principle #13The other way round (Inversion)

Solution Approach 2:

The patent introduces plaintext data blocks as an intermediary between the original data and the encrypted storage. By performing deduplication on this intermediary form before encryption, the system avoids the complexity of comparing encrypted blocks while maintaining storage efficiency

Inventive Principle:
Principle #24Intermediary (Mediator)

Applied Scientific Principles

This section explains which scientific principles are used to turn an abstract innovation direction into a practical engineering solution.

Function Achieved in This Case

Enhances storage efficiency by allowing deduplication of previously undeduplicable data, increasing storage capacity and processing efficiency by managing duplicate data blocks effectively across tenants.

Implementation Method 1

The deduplication map may include a hash value and an offset for each data block

Methodology Applied
Scientific EffectHash function:

Data Source

PatentUS12045487B2Preserving data deduplication in a multi-tenant storage system
Publication Date: 2024.07.23 PURE STORAGE INC
  • US12045487B2 patent drawing
  • US12045487B2 patent drawing
  • US12045487B2 patent drawing

AI summary

A method includes receiving a request to write a data block to a volume resident on a multi-tenant storage array, wherein the request is associated with a first tenant of the multi-tenant storage array, and determining whether the data block matches an existing data block on the multi-tenant storage array, wherein the existing block corresponds to a second tenant. In response to determining that the decrypted data block matches the existing data block: encrypting the existing data block with a shared volume encryption key; encrypting the shared volume encryption key with a first tenant encryption key and providing the shared volume encryption key encrypted with the first tenant encryption key to the first tenant; and encrypting the shared volume encryption key with a second tenant encryption key and providing the shared volume encryption key encrypted with the second tenant encryption key to the second tenant.