Consistent unmapping of application data in presence of concurrent, unquiesced writers and readers
First Claim
1. A method of releasing free blocks of a logical block device back to an underlying disk-based storage system supporting the logical block device, comprising:
- identifying a set of the free blocks of the logical block device that are candidates to be released;
updating the set of free blocks to remove those free blocks that have already been released from the logical block device;
allocating the free blocks in the updated set to a file stored on the disk-based storage system; and
issuing a command to the logical block device to release the free blocks allocated to the file from the logical block device.
2 Assignments
0 Petitions
Accused Products
Abstract
Free storage blocks previously allocated to a logical block device are released back to an underlying storage system supporting the logical block device in a manner that does not conflict with write operations that may be issued to the free storage blocks at about the same time. According to a first technique, write operations on the same storage blocks to be released are paused until the underlying storage system has completed the releasing operation or, if the write operations are issued earlier than when the underlying storage system actually performs the releasing operation, such storage blocks are not released. According to a second technique, a special file is allocated the free storage blocks, which are then made available for safe releasing.
-
Citations
20 Claims
-
1. A method of releasing free blocks of a logical block device back to an underlying disk-based storage system supporting the logical block device, comprising:
-
identifying a set of the free blocks of the logical block device that are candidates to be released; updating the set of free blocks to remove those free blocks that have already been released from the logical block device; allocating the free blocks in the updated set to a file stored on the disk-based storage system; and issuing a command to the logical block device to release the free blocks allocated to the file from the logical block device. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A non-transitory computer readable storage medium comprising instructions executable in a computer system to cause the computer system to carry out a method of releasing free blocks of a logical block device back to an underlying disk-based storage system supporting the logical block device, comprising:
-
identifying a set of the free blocks in a file system of the logical block device that are candidates to be released; updating the set of free blocks to remove those free blocks that have already been released from the file system of the logical block device; allocating the free blocks in the updated set to a file stored on the disk-based storage system; and issuing a command to the logical block device to release the free blocks allocated to the file from the logical block device. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A system, comprising:
-
a disk-based storage system supporting a logical block device; and a hardware platform configured to execute a virtualization layer to release free blocks of the logical block device back to the disk-based storage system supporting the logical block device by; identifying a set of the free blocks in a file system of the logical block device that are candidates to be released; updating the set of free blocks to remove those free blocks that have already been released from the file system of the logical block device; allocating the free blocks in the updated set to a file stored on the disk-based storage system; and issuing a command to the logical block device to release the free blocks allocated to the file from the logical block device. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification