IP Library Granted Patent US 9,910,791
Granted Patent B1
US 9,910,791 · App. 14/788,778 · Granted Mar 6, 2018

Managing system-wide encryption keys for data storage systems

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,910,791
App. No.
14/788,778
Granted
Mar 6, 2018
Kind
B1
Abstract

The techniques presented herein provide for initializing and upgrading data encryption capability in a data storage system. The data storage system in initialized to encrypt data writes using a system wide encryption key. A request is received to upgrade the encryption functionality in the data storage system. A data slice is identified for encryption, wherein the data slice is stored in a RAID group in the data storage system. The data slice is pinned in a first cache memory of a first storage processor and persisted in a second cache memory of a second storage processor. The data slice encrypted and a write operation is initiated to write the encrypted data slice back to the RAID group. If the write operation was successful, the data slice is unpinned the first and second cache memory associated with the data slice is freed, else if the write operation was unsuccessful, the data slice is unpinned and the first and second cache memory associated with the data slice are flushed.

Claims (68)

1. A method for encrypting data in a data storage system, the method comprising:

initializing the data storage system to encrypt data writes using a system wide encryption key;

receiving a request to upgrade the encryption functionality in the data storage system;

identifying a data slice for encryption, wherein the data slice is stored in a RAID group in the data storage system;

pinning the data slice in a first cache memory of a first storage processor;

persisting the data slice in a second cache memory of a second storage processor;

encrypting the data slice;

initiating a write operation to write the encrypted data slice back to the RAID group;

unpinning the data slice and freeing the first cache memory and the second cache memory associated with the data slice if the write operation was successful, else unpinning the data slice and flushing the first cache memory and the second cache memory associated with the data slice if the write operation was unsuccessful; and

initiating a recovery event after recovering from a failure event, the recovery event comprising:

identifying a data slice marked as in-progress;

invalidating the data slice across all drives in the RAID group;

initiating a write operation to write the invalidated data slice back to the RAID group; and

marking the invalidated data slice as encrypted.

2. The method of claim 1 , wherein identifying a data slice for encryption further includes analyzing metadata associated with the data slice to determine if data slice is encrypted or unencrypted.

3. The method of claim 1 , wherein pinning the data slice further includes:

determining the logical block address (LBA) range of blocks corresponding to the data slice;

allocating cache memory sufficient to range of blocks; and

reading the range of blocks corresponding to the data slice into the first cache memory.

4. The method of claim 1 , wherein persisting the data slice in the second cache memory further includes:

mirroring the data slice stored in the first cache memory to the second cache memory of the second storage processor; and

marking the data slice as persisted.

5. The method of claim 1 , wherein initiating a write operation further includes:

marking the data slice as in-process;

executing the write operation; and

marking the data slice as encrypted.

6. The method of claim 1 , wherein the failure event is a storage system power failure, enclosure power failure, cable failure, or storage processor failure.

7. A system for encrypting data in place in a data storage system, the system comprising storage processors and memory configured to:

initialize the data storage system to encrypt data writes using a system wide encryption key;

receive a request to upgrade the encryption functionality in the data storage system;

identify a data slice for encryption, wherein the data slice is stored in a RAID group in the data storage system;

pin the data slice in a first cache memory of a first storage processor;

persist the data slice in a second cache memory of a second storage processor;

encrypt the data slice;

initiate a write operation to write the encrypted data slice back to the RAID group;

unpin the data slice and freeing the first cache memory and the second cache memory associated with the data slice if the write operation was successful, else unpin the data slice and flushing the first cache memory and the second cache memory associated with the data slice if the write operation was unsuccessful; and

initiating a recovery event after recovering from a failure event, the recovery event comprising:

identifying a data slice marked as in-progress;

invalidate the data slice across all drives in the RAID group;

initiate a write operation to write the invalidated data slice back to the RAID group; and

mark the invalidated data slice as encrypted.

8. The system of claim 7 , wherein identify a data slice for encryption further includes analyzing metadata associated with the data slice to determine if data slice is encrypted or unencrypted.

9. The system of claim 7 , wherein pin the data slice further includes:

determine the logical block address (LBA) range of blocks corresponding to the data slice;

allocate cache memory sufficient to range of blocks; and

read the range of blocks corresponding to the data slice into the first cache memory.

10. The system of claim 7 , wherein persist the data slice in the second cache memory further includes:

mirror the data slice stored in the first cache memory to the second cache memory of the second storage processor; and

mark the data slice as persisted.

11. The system of claim 7 , wherein initiate a write operation further includes:

mark the data slice as in-process;

execute the write operation; and

mark the data slice as encrypted.

12. The system of claim 7 , wherein the failure event is a storage system power failure, enclosure power failure, cable failure, or storage processor failure.

13. A non-transitory computer readable medium comprising executable code stored thereon for encrypting data in place in a data storage system, the non-transitory computer readable medium comprising executable code for:

initializing the data storage system to encrypt data writes using a system wide encryption key;

receiving a request to upgrade the encryption functionality in the data storage system;

identifying a data slice for encryption, wherein the data slice is stored in a RAID group in the data storage system;

pinning the data slice in a first cache memory of a first storage processor;

persisting the data slice in a second cache memory of a second storage processor;

encrypting the data slice;

initiating a write operation to write the encrypted data slice back to the RAID group;

unpinning the data slice and freeing the first cache memory and the second cache memory associated with the data slice if the write operation was successful, else unpinning the data slice and flushing the first cache memory and the second cache memory associated with the data slice if the write operation was unsuccessful; and

initiating a recovery event after recovering from a failure event, the recovery event comprising:

identifying a data slice marked as in-progress;

invalidating the data slice across all drives in the RAID group;

initiating a write operation to write the invalidated data slice back to the RAID group; and

marking the invalidated data slice as encrypted.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (046366/0014) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060450/0306 →
RELEASE OF SECURITY INTEREST AT REEL 046286 FRAME 0653 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058298/0093 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Jun 1, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 046366/0014 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Jun 1, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046286/0653 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2017
From: TAYLOR, MILLARD C, II
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040914/0880 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 5, 2017
From: DIBB, THOMAS N; CHIU, NAIZHONG; LAZAR, GREGORY W.; TANG, XUAN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040857/0799 →