摘要 |
An improved technique involves identifying the location of backed free blocks, i.e., blocks within an upper deck file system that have been provisioned from storage devices of a data storage system to a lower deck file system, allocated from the lower deck file system to the upper deck file system, and later freed from the upper deck file system. A storage processor accesses a set of data structures that identifies backed free blocks as opposed to free blocks that have not been written into and thus do not correspond to any allocated blocks in storage. Once the storage processor identifies the backed free blocks, the storage processor frees each block in the lower deck file system from which the respective backed free block was allocated. The storage processor then updates the set of data structures to indicate that the respective backed free block is now simply a free block. |
主权项 |
1. A method of scavenging free storage space in a thinly provisioned upper deck file system stored in the form of a file in an underlying lower deck file system of a data storage apparatus, the method comprising:
accessing, by a storage processor of the data storage apparatus, a set of data structures to identify the location of each of a set of backed free blocks within the upper deck file system, wherein the backed free blocks are blocks that have been provisioned from storage devices of the data storage apparatus to the lower deck file system, allocated from the lower deck file system to the upper deck file system, and later freed from the upper deck file system; and for each of the set of backed free blocks, (i) freeing the block in the lower deck file system from which the respective backed free block was allocated and (ii) updating the set of data structures to indicate that the respective back free block is no longer a backed free block, wherein accessing the set of data structures to identify the location of each of a set of backed free blocks within the upper deck file system includes identifying, from the set of data structures, a set of slices in the upper deck file system that each include at least one backed free block, wherein blocks in the lower deck file system are arranged in lower deck slices, and wherein the method further comprises (i) computing a number of freed blocks in at least one lower deck slice, and (ii) comparing the number of freed blocks to a threshold number of freed blocks to produce a comparison result indicative of a readiness to return the at least one lower deck slice to a storage pool. |