Optimizing defragmentation operations in a differential snapshotter
First Claim
1. A method for maintaining a differential snapshot of a volume, the volume comprising a plurality of blocks, the method comprising:
- passing down, by a file system to a differential snapshotter, a block copy command for a block move from a location A on the volume to a location B on the volume.
2 Assignments
0 Petitions
Accused Products
Abstract
A method for establishing and maintaining a differential snapshot of a set of files stored on a volume is disclosed. The invention achieves processing time and disk space optimizations by avoiding copy-on-write operations for logically insignificant moves of blocks, such as the block rearrangements characteristic of defragmentation utilities. A file system enhancement enabling the passing of a block copy command from the file system to lower-level drivers, is used to inform the snapshotter that a block move operation is not logically meaningful. When the logically insignificant move is of a block whose data forms part of the data captured in the snapshot virtual volume, and when the move is to a block location that is functioning as logical free space, the snapshotter can simply modify its block bitmap and update translation table entries without needing to perform a copy-on-write.
87 Citations
22 Claims
-
1. A method for maintaining a differential snapshot of a volume, the volume comprising a plurality of blocks, the method comprising:
passing down, by a file system to a differential snapshotter, a block copy command for a block move from a location A on the volume to a location B on the volume. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
11. A method for moving a block from a location A to a location B, the method comprising:
passing down, by a file system, a block copy command to a lower level driver.
-
12. In a data storage system comprising a file system and one or more disk volumes, each volume comprising a plurality of files and a plurality of blocks, wherein each file is implemented by a set of one or more blocks, wherein blocks currently implementing a file are occupied-space blocks and all other blocks are free-space blocks, a method for maintaining a snapshot of an original volume, the method comprising:
-
taking a snapshot of the original volume;
monitoring moves of occupied-space blocks in the original volume, wherein moving an occupied-space block comprises transferring its contents to a second block, which is one of the free-space blocks, the second block thereby becoming an occupied-space block, and the first block thereby becoming a free-space block;
monitoring writes of blocks in the original volume; and
producing snapshot versions of blocks in response to read requests. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
Specification