IP Library Granted Patent US 9,177,177
Granted Patent B1
US 9,177,177 · App. 13/645,372 · Granted Nov 3, 2015

Systems and methods for securing storage space

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,177,177
App. No.
13/645,372
Filed
Oct 4, 2012
Granted
Nov 3, 2015
Kind
B1
Examiner
DOAN, KHOA D
Art Unit
2133
USPC
711/163
Abstract

A computer-implemented method for securing storage space may include 1) identifying a block map that indicates whether each of a plurality of blocks within a storage system is to return zeroed data in response to read operations, 2) identifying a read operation directed to a block of the storage system that includes non-zeroed data, 3) determining, in response to identifying the read operation, that the block map indicates that the block is to return zeroed data in response to the read operation, and 4) returning zeroed data in response to the read operation based on determining that the block map indicates that the block is to return zeroed data. Various other methods, systems, and computer-readable media are also described.

Claims (61)

1. A computer-implemented method for securing storage space, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

identifying a deallocation operation directed to a block, within a storage system, whose contents comprise non-zeroed data, wherein the block was previously allocated for use in an old thin-provisioned logical disk;

in response to identifying the deallocation operation, marking a block map to indicate that the block is to return, in response to read operations, zeroed data instead of the contents of the block;

marking an additional block map to indicate that the block is subject to a pending trim operation by the storage system and to represent the block as a free but previously allocated block in response to identifying the deallocation operation directed to the block, wherein the additional block map was copied from the block map and is updated in parallel with the block map;

wherein marking the block map to indicate that the block is to return zeroed data comprises marking the block map to indicate that the block is to return zeroed data before the trim operation is performed;

identifying a read operation directed to the block;

determining, in response to identifying the read operation, that the block map indicates that the block is currently allocated for use in a new thin-provisioned logical disk while still comprising data from the old thin-provisioned logical disk and is to return, in response to read operations, zeroed data instead of the contents of the block;

returning, in response to the read operation, zeroed data instead of the contents of the block in response to determining that the block map indicates that the block is to return zeroed data instead of the contents of the block in order to protect potentially sensitive data previously stored on the old thin-provisioned logical disk.

2. The computer-implemented method of claim 1 , wherein returning the zeroed data comprises returning the zeroed data without reading the zeroed data from the block on the storage system.

3. The computer-implemented method of claim 1 , further comprising:

identifying a write operation directed to the block;

in response to identifying the write operation, marking the block map to indicate that the block is to return the block's contents in response to read operations.

4. The computer-implemented method of claim 1 , further comprising:

after identifying the deallocation operation directed to the block, identifying an allocation operation directed to the block;

in response to identifying the allocation operation, marking the block map to indicate that the block is to return zeroed data in response to read operations.

5. The computer-implemented method of claim 1 , further comprising:

identifying an additional read operation directed to an additional block of the storage system;

determining, in response to identifying the additional read operation, that the block map indicates that the additional block is to return the additional block's contents in response to read operations;

reading and returning the additional block's contents in response to determining that the block map indicates that the additional block is to return the additional block's contents.

6. The computer-implemented method of claim 1 , further comprising initializing the block map by marking each free block within the storage system to indicate that the free block is to return zeroed data in response to read operations.

7. The computer-implemented method of claim 1 , wherein a file comprises the block.

8. The computer-implemented method of claim 1 , further comprising completing a transaction that includes the deallocation operation before executing the trim operation.

9. The computer-implemented method of claim 8 , further comprising:

identifying a deduplication operation to perform that involves freeing storage space within the storage system;

identifying a first candidate storage space with a physical address that is more proximate to a physical address of the block than to a physical address of a second candidate storage space;

selecting the first candidate storage space to free via the deduplication operation based on the first candidate storage space being more proximate to the block and the additional block map representing the block as free but previously allocated to create a range of previously allocated free space for improved storage utilization.

10. The computer-implemented method of claim 1 , further comprising optimizing a reclamation operation for a thin-reclamation-capable storage device within the storage system by restricting a reclamation operation to a range of free blocks within the storage system that were previously allocated as indicated by the additional block map.

11. The computer-implemented method of claim 1 , further comprising optimizing a defragmentation operation for a thin-reclamation-capable storage device within the storage system by reusing, in the defragmentation operation, at least one free but previously allocated block, as indicated by the additional block map, to avoid allocating a previously unused block.

12. A system for secure storage space, the system comprising:

an interception module programmed to:

identify a deallocation operation directed to a block, within a storage system, whose contents comprise non-zeroed data, wherein the block was previously allocated for use in an old thin-provisioned logical disk;

identify a read operation directed to the block;

a marking module programmed to:

in response to identification of the deallocation operation, mark a block map to indicate that the block is to return, in response to read operations, zeroed data instead of the contents of the block;

mark an additional block map to indicate that the block is subject to a pending trim operation by the storage system and to represent the block as a free but previously allocated block in response to identifying the deallocation operation directed to the block, wherein the additional block map was copied from the block map and is updated in parallel with the block map;

wherein marking the block map to indicate that the block is to return zeroed data comprises marking the block map to indicate that the block is to return zeroed data before the trim operation is performed;

a determination module programmed to determine, in response to identification of the read operation, that the block map indicates that the block is currently allocated for use in a new thin-provisioned logical disk while still comprising data from the old thin-provisioned logical disk and is to return, in response to read operations, zeroed data instead of the contents of the block;

a returning module programmed to return, in response to the read operation, zeroed data instead of the contents of the block in response to determining that the block map indicates that the block is to return zeroed data instead of the contents of the block in order to protect potentially sensitive data previously stored on the old thin-provisioned logical disk;

at least one processor configured to execute the interception module, the determination module, and the returning module.

13. The system of claim 12 , wherein the returning module is programmed to return the zeroed data by returning the zeroed data without reading the zeroed data from the block on the storage system.

14. The system of claim 12 , wherein the marking module is further programmed to:

identify a write operation directed to the block;

in response to identifying the write operation, mark the block map to indicate that the block is to return the block's contents in response to read operations.

15. The system of claim 12 , wherein the marking module is further programmed to:

after identification of the deallocation operation directed to the block, identify an allocation operation directed to the block;

in response to identifying the allocation operation, mark the block map to indicate that the block is to return zeroed data in response to read operations.

16. The system of claim 12 , wherein:

the interception module is further programmed to identify an additional read operation directed to an additional block of the storage system;

the determination module is further programmed to determine, in response to identification of the additional read operation, that the block map indicates that the additional block is to return the additional block's contents in response to read operations;

the returning module is further programmed to read and return the additional block's contents in response to determining that the block map indicates that the additional block is to return the additional block's contents.

17. The system of claim 12 , further comprising an identification module programmed to initialize the block map by marking each free block within the storage system to indicate that the free block is to return zeroed data in response to read operations.

18. The system of claim 12 , wherein a file comprises the block.

19. A non-transitory computer-readable medium comprising one or more computer-executable instructions that, when executed by at least one processor of a computing device, cause the computing device to:

identify a deallocation operation directed to a block, within a storage system, whose contents comprise non-zero data, wherein the block was previously allocated for use in an old thin-provisioned logical disk;

in response to identifying the deallocation operation, mark a block map to indicate that the block is to return, in response to read operations, zeroed data instead of the contents of the block;

mark an additional block map to indicate that the block is subject to a pending trim operation by the storage system and to represent the block as a free but previously allocated block in response to identifying the deallocation operation directed to the block, wherein the additional block map was copied from the block map and is updated in parallel with the block map;

wherein marking the block map to indicate that the block is to return zeroed data comprises marking the block map to indicate that the block is to return zeroed data before the trim operation is performed;

identify a read operation directed to the block;

determine, in response to identifying the read operation, that the block map indicates that the block is currently allocated for use in a new thin-provisioned logical disk while still comprising data from the old thin-provisioned logical disk and is to return, in response to read operations, zeroed data instead of the contents of the block;

return, in response to the read operation, zeroed data instead of the contents of the block in response to determining that the block map indicates that the block is to return zeroed data instead of the contents of the block in order to protect potentially sensitive data previously stored on the old thin-provisioned logical disk.

20. The non-transitory computer-readable medium of claim 19 , wherein the one or more computer-executable instructions cause the computing device to return the zeroed data without reading the zeroed data from the block on the storage system.

Assignments (11)
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded May 4, 2026
From: COHESITY, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 075521/0417 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER AND CHANGE OF NAME Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC; VERITAS TECHNOLOGIES LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038455/0752 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037697/0412 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 4, 2012
From: PATIL, SUSHIL; DAS, SUPRIO; JAIN, SANJAY; MUKHERJEE, ANIRBAN
To: SYMANTEC CORPORATION
Reel/Frame 029080/0271 →