IP Library Granted Patent US 8,966,207
Granted Patent B1
US 8,966,207 · App. 14/460,926 · Granted Feb 24, 2015

Virtual defragmentation of a storage

Inventor: Nathan S. Bushman (Pleasant Grove, UT)
Assignee: Storagecraft Technology Corporation
G06F3/0647G06F3/061G06F3/0617G06F3/0667G06F3/067G06F2003/0695
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,966,207
App. No.
14/460,926
Granted
Feb 24, 2015
Kind
B1
Abstract

Virtual defragmentation of a storage. In one example embodiment, a method for virtual defragmentation of a storage includes various steps. For example, the method includes intercepting a move command directed to a storage during a defragmentation of the storage. The move command specifies an actual location of a block and a defrag location for the block in the storage. The method also includes updating a virtual defragmentation map to record the actual location of the block and the defrag location for the block. The method further includes preventing the block from being moved to the defrag location. The method also includes allowing file system metadata of the storage to be updated to falsely reflect that the block has been moved to the defrag location.

Claims (63)

1. A method for virtual defragmentation of a storage, the method comprising:

intercepting a move command directed to a storage during a defragmentation of the storage, the move command specifying an actual location of a block and a defrag location for the block in the storage;

updating a virtual defragmentation map to record the actual location of the block and the defrag location for the block;

preventing the block from being moved to the defrag location;

allowing file system metadata of the storage to be updated to falsely reflect that the block has been moved to the defrag location;

intercepting a read command directed to the storage subsequent to the defragmentation of the storage, the read command specifying the defrag location of the block;

determining the actual location of the block by querying the virtual defragmentation map using the defrag location; and

modifying the read command to specify the actual location.

2. The method as recited in claim 1 , wherein the defragmentation of the storage is configured to contiguously locate all blocks on the storage to a front end or back end of the storage.

3. The method as recited in claim 1 , wherein the defragmentation of the storage is configured to contiguously and sequentially locate every block of one or more files on the storage.

4. The method as recited in claim 1 , wherein the storage comprises a volume of a physical disk storage or a volume of a virtual disk storage.

5. The method as recited in claim 1 , wherein the storage comprises an image backup of a volume.

6. One or more non-transitory computer-readable media storing one or more programs that are configured, when executed, to cause one or more processors to execute the method as recited in claim 1 .

7. A method for virtual defragmentation of a storage, the method comprising:

intercepting a move command directed to a storage during a defragmentation of the storage, the move command specifying an actual location of a block and a defrag location for the block in the storage;

updating a virtual defragmentation map to record the actual location of the block and the defrag location for the block;

preventing the block from being moved to the defrag location;

allowing file system metadata of the storage to be updated to falsely reflect that the block has been moved to the defrag location;

intercepting a write command directed to the storage subsequent to the defragmentation of the storage, the write command specifying the defrag location for the block as well as new content for the block;

determining the actual location of the block by querying the virtual defragmentation map using the defrag location; and

modifying the write command to specify the actual location.

8. The method as recited in claim 7 , wherein the storage comprises a volume of a virtual disk storage.

9. The method as recited in claim 7 , wherein the storage comprises an image backup of a volume.

10. One or more non-transitory computer-readable media storing one or more programs that are configured, when executed, to cause one or more processors to execute the method as recited in claim 7 .

11. A method for virtual defragmentation of a storage, the method comprising:

intercepting a move command directed to a storage during a defragmentation of the storage, the defragmentation of the storage being configured to contiguously locate all blocks on the storage to a front end or back end of the storage and contiguously and sequentially locate every block of one or more files on the storage, the move command specifying an actual location of a block and a defrag location for the block in the storage;

updating a virtual defragmentation map to record the actual location of the block and the defrag location for the block;

preventing the block from being moved to the defrag location; and

allowing file system metadata of the storage to be updated to falsely reflect that the block has been moved to the defrag location.

12. The method as recited in claim 11 , wherein the storage comprises a volume of a virtual disk storage.

13. The method as recited in claim 11 , wherein the storage comprises an image backup of a volume.

14. One or more non-transitory computer-readable media storing one or more programs that are configured, when executed, to cause one or more processors to execute the method as recited in claim 11 .

15. A method for virtual defragmentation of a storage, the method comprising:

intercepting a move command directed to a storage during a defragmentation of the storage, the storage comprising an image backup stored in a deduplication vault storage, the move command specifying an actual location of a block and a defrag location for the block in the storage;

updating a virtual defragmentation map to record the actual location of the block and the defrag location for the block;

preventing the block from being moved to the defrag location; and

allowing file system metadata of the storage to be updated to falsely reflect that the block has been moved to the defrag location.

16. One or more non-transitory computer-readable media storing one or more programs that are configured, when executed, to cause one or more processors to execute the method as recited in claim 15 .

17. A method for virtual defragmentation of a storage, the method comprising:

intercepting every move command directed to a storage during a defragmentation of the storage, the defragmentation of the storage being configured to contiguously locate all blocks on the storage to a front end or back end of the storage and contiguously and sequentially locate every block of one or more files on the storage, each move command specifying an actual location of a block and a defrag location for the block in the storage; and

for each intercepted move command:

updating a virtual defragmentation map to record the actual location of the block and the defrag location for the block;

preventing the block from being moved to the defrag location;

allowing file system metadata of the storage to be updated to falsely reflect that the block has been moved to the defrag location; and

returning a report that the move command was successfully executed on the storage.

18. The method as recited in claim 17 , further comprising:

intercepting every read command directed to the storage subsequent to the defragmentation of the storage, each read command specifying the defrag location for the block; and

for each intercepted read command:

determining the actual location of the block by querying the virtual defragmentation map using the defrag location; and

modifying the read command to specify the actual location.

19. The method as recited in claim 18 , wherein:

the intercepting every read command directed to the storage subsequent to the defragmentation of the storage includes intercepting every read command directed to the storage during an image copy of the storage; and

the read blocks are returned in a defragmented order as reflected in the file system metadata of the storage rather than in an actual order of the blocks as actually stored on the storage.

20. The method as recited in claim 19 , wherein the image copy is performed during a restore of an image backup file of the storage.

21. The method as recited in claim 20 , wherein the image backup file is a full image backup file.

22. The method as recited in claim 20 , wherein the image backup file is an incremental image backup file.

23. The method as recited in claim 17 , wherein the storage comprises an image backup of a volume.

24. The method as recited in claim 17 , further comprising:

intercepting every write command directed to the storage subsequent to the defragmentation of the storage, each write command specifying the defrag location for the block as well as new content for the block;

for each intercepted write command:

determining the actual location of the block by querying the virtual defragmentation map using the defrag location; and

modifying the write command to specify the actual location.

25. One or more non-transitory computer-readable media storing one or more programs that are configured, when executed, to cause one or more processors to execute the method as recited in claim 17 .

Assignments (6)
CHANGE OF NAME Recorded Aug 16, 2024
From: STORAGECRAFT TECHNOLOGY CORPORATION
To: STORAGECRAFT TECHNOLOGY LLC
Reel/Frame 068660/0176 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 16, 2024
From: MONROE CAPITAL MANAGEMENT ADVISORS, LLC; ARCSTOR MIDCO LLC; ARCSERVE ACQUISITION COMPANY LLC; ARCSERVE (USA) LLC; STORAGECRAFT TECHNOLOGY, LLC
To: STORAGECRAFT, LLC
Reel/Frame 068660/0208 →
SECURITY INTEREST Recorded Mar 16, 2021
From: ARCSERVE (USA) LLC; STORAGECRAFT TECHNOLOGY LLC; ZETTA, LLC
To: MONROE CAPITAL MANAGEMENT ADVISORS, LLC, AS COLLATERAL AGENT
Reel/Frame 055603/0219 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT Recorded Mar 16, 2021
From: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
To: STORAGECRAFT TECHNOLOGY CORPORATION
Reel/Frame 055614/0607 →
SECURITY AGREEMENT Recorded Apr 18, 2016
From: STORAGECRAFT TECHNOLOGY CORPORATION
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 038449/0943 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2014
From: BUSHMAN, NATHAN S.
To: STORAGECRAFT TECHNOLOGY CORPORATION
Reel/Frame 033547/0613 →