IP Library Granted Patent US 8,924,442
Granted Patent B2
US 8,924,442 · App. 13/187,289 · Granted Dec 30, 2014

Method and system for implementing high availability storage on thinly provisioned arrays

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 8,924,442
App. No.
13/187,289
Granted
Dec 30, 2014
Kind
B2
Abstract

A method for storage allocation and reclamation in a storage device. The method includes executing a distributed computer system having a plurality of file systems accessing storage on a shared storage device, creating a physical storage allocation state map that indicates whether a plurality of data blocks comprising a range of data is allocated or unallocated, and consulting a free extent state map to identify free data blocks of the shared storage device. An allocation operation is performed causing the shared storage device to allocate storage a requested range of allocation. The physical storage allocation state map is updated in accordance with the requested range of allocation. Upon a subsequent reclamation process, the physical storage allocation state map is accessed to identify free previously allocated data blocks. Reclamation processing a subsequent performed on the identified free previously allocated data blocks.

Claims (38)

1. A method for storage allocation and reclamation in a storage device, comprising:

creating a physical storage allocation state map that indicates whether a plurality of data blocks comprising a range of data is allocated or unallocated in a shared storage device, wherein a default state of the physical storage allocation state map indicates no allocated storage for the plurality of data blocks;

consulting a free extent state map to identify free data blocks of the shared storage device, wherein the free extent state map is separate from the physical storage allocation state map;

performing an allocation operation causing the shared storage device to allocate storage over a requested range of allocation, wherein the allocation operation preferentially allocates storage to a first plurality of data blocks that are marked as free blocks in the free extent state map and as having been allocated in the physical storage allocation state map;

updating the physical storage allocation state map in accordance with the requested range of allocation;

upon a subsequent reclamation process, accessing the physical storage allocation state map to identify a second plurality of data blocks that are marked as free blocks in the free extent state map and as having been allocated in the physical storage allocation state map; and

performing reclamation processing on the identified second plurality of data blocks that are marked as free blocks in the free extent state map and as having been allocated in the physical storage allocation state map.

2. The method of claim 1 , wherein the free extent state map is consulted to identify and allocate free data blocks of the shared storage device, and wherein the physical storage allocation state map is consulted to determine whether physical storage of the shared storage device is known to have been previously allocated.

3. The method of claim 1 , wherein the physical storage allocation state map comprises a map that tracks a storage condition of a plurality of chunks of data having a predetermined size.

4. The method of claim 1 , wherein the physical storage allocation state map comprises a bitmap, and wherein bits of the bitmap track a storage condition of a plurality of chunks of data having a predetermined size.

5. The method of claim 1 , wherein the physical storage allocation state map is accessed to preferentially free blocks of the shared storage device that are indicated as previously allocated.

6. The method of claim 1 , wherein the shared storage device comprises a disk array.

7. The method of claim 1 , wherein the shared storage device is part of a cluster of a distributed computer system.

8. A non-transitory computer readable storage medium having stored thereon computer executable instructions that, if executed by a computer system, cause the computer system to perform a method comprising:

creating a physical storage allocation state map that indicates whether a plurality of data blocks comprising a range of data is allocated or unallocated in a shared storage device, wherein a default state of the physical storage allocation state map indicates no allocated storage for the plurality of data blocks;

consulting a free extent state map to identify free data blocks of the shared storage device, wherein the free extent state map is separate from the physical storage allocation state map;

performing an allocation operation causing the shared storage device to allocate storage over a requested range of allocation, wherein the allocation operation preferentially allocates storage to a first plurality of data blocks that are marked as free blocks in the free extent state map and as having been allocated in the physical storage allocation state map;

updating the physical storage allocation state map in accordance with the requested range of allocation;

upon a subsequent reclamation process, accessing the physical storage allocation state map to identify a second plurality of data blocks that are marked as free blocks in the free extent state map and as having been allocated in the physical storage allocation state map; and

performing reclamation processing on the identified second plurality of data blocks that are marked as free blocks in the free extent state map and as having been allocated in the physical storage allocation state map.

9. The non-transitory computer readable storage medium of claim 8 , wherein the free extent state map is consulted to identify and allocate free data blocks of the shared storage device, and wherein the physical storage allocation state map is consulted to determine whether physical storage of the shared storage device is known to have been previously allocated.

10. The non-transitory computer readable storage medium of claim 8 , wherein the physical storage allocation state map comprises a map that tracks a storage condition of a plurality of chunks of data having a predetermined size.

11. The non-transitory computer readable storage medium of claim 8 , wherein the physical storage allocation state map comprises a bitmap, and wherein bits of the bitmap track a storage condition of a plurality of chunks of data having a predetermined size.

12. The non-transitory computer readable storage medium of claim 8 , wherein the physical storage allocation state map is accessed to preferentially free blocks of the shared storage device that are indicated as previously allocated.

13. The non-transitory computer readable storage medium of claim 8 , wherein the shared storage device comprises a disk array.

14. The non-transitory computer readable storage medium of claim 8 , wherein the shared storage device is part of a cluster of a distributed computer system.

15. A computer system having a microprocessor coupled to a computer readable memory, the memory having computer readable code therein which when executed by the computer system causes the computer system to implement a method comprising:

creating a physical storage allocation state map that indicates whether a plurality of data blocks comprising a range of data is allocated or unallocated in a shared storage device, wherein a default state of the physical storage allocation state map indicates no allocated storage for the plurality of data blocks;

consulting a free extent state map to identify free data blocks of the shared storage device, wherein the free extent state map is separate from the physical storage allocation state map;

performing an allocation operation causing the shared storage device to allocate storage over a requested range of allocation, wherein the allocation operation preferentially allocates storage to a first plurality of data blocks that are marked as free blocks in the free extent state map and as having been allocated in the physical storage allocation state map;

updating the physical storage allocation state map in accordance with the requested range of allocation;

upon a subsequent reclamation process, accessing the physical storage allocation state map to identify a second plurality of data blocks that are marked as free blocks in the free extent state map and as having been allocated in the physical storage allocation state map; and

performing reclamation processing on the identified second plurality of data blocks that are marked as free blocks in the free extent state map and as having been allocated in the physical storage allocation state map.

16. The computer system of claim 15 , wherein the free extent state map is consulted to identify and allocate free data blocks of the shared storage device, and wherein the physical storage allocation state map is consulted to determine whether physical storage of the shared storage device is known to have been previously allocated.

17. The computer system of claim 15 , wherein the physical storage allocation state map comprises a map that tracks a storage condition of a plurality of chunks of data having a predetermined size.

18. The computer system of claim 15 , wherein the physical storage allocation state map comprises a bitmap, and wherein bits of the bitmap track a storage condition of a plurality of chunks of data having a predetermined size.

19. The computer system of claim 15 , wherein the physical storage allocation state map is accessed to preferentially free blocks of the shared storage device that are indicated as previously allocated.

20. The computer system of claim 8 , wherein the shared storage device comprises a disk array, and wherein the shared storage device is part of a cluster of a distributed computer system.

Assignments (16)
SECURITY INTEREST Recorded Dec 12, 2025
From: ARCTERA US LLC
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 073951/0470 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 070530/0497 Recorded Dec 1, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0730 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 069585/0150 Recorded Dec 1, 2025
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0848 →
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 →
SECURITY INTEREST Recorded Dec 10, 2024
From: ARCTERA US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 069563/0243 →
PATENT SECURITY AGREEMENT Recorded Dec 10, 2024
From: ARCTERA US LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069585/0150 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC
To: ARCTERA US LLC
Reel/Frame 069548/0468 →
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 Jul 20, 2011
From: PATWARDHAN, KEDAR SHRIKRISHNA
To: SYMANTEC CORPORATION
Reel/Frame 026624/0947 →