Coalescing file system free space to promote full-stripe writes

US9965201B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9965201-B1
Application numberUS-201514674566-A
CountryUS
Kind codeB1
Filing dateMar 31, 2015
Priority dateMar 31, 2015
Publication dateMay 8, 2018
Grant dateMay 8, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

An improved technique for managing data storage includes relocating allocated blocks within a range of a physical address space of a file system to free the allocated blocks. The range has a length equal to a length of one or more full stripes of a RAID group that stores content of the file system. In response to receiving data to be written to the file system, the file system arranges the data in the range of contiguous blocks and performs one or more full-stripe writes to write the data to the RAID group.

First claim

Opening claim text (preview).

What is claimed is: 1. A method of managing data storage in a data storage system, the method comprising: performing a block relocation operation on a range of contiguous blocks in a physical address space of a file system to free a set of allocated blocks within the range of contiguous blocks, the range of contiguous blocks having a length equal to that of a set of full stripes of a RAID (Redundant Array of Independent Disks) group that stores content of the file system; in response to the data storage system receiving a set of data to be written to the file system, arranging the set of data in the range of contiguous blocks; and performing a set of full-stripe writes to write the set of data arranged in the range of contiguous blocks to the RAID group, wherein the range of contiguous blocks is one of multiple ranges of contiguous blocks logically represented in the physical address space of the file system, and wherein the method further comprises tracking free ranges in the file system, each free range being a respective one of the ranges of contiguous blocks, for which no blocks are allocated, wherein the range of contiguous blocks is one of multiple ranges of contiguous blocks in the physical address space of the file system, and wherein the method further comprises: generating, for each of the multiple ranges of contiguous blocks, a contiguousness score that indicates a degree to which blocks within the respective range of contiguous blocks store contiguous file data; ranking the multiple ranges of contiguous blocks based at least in part on the contiguousness score; and selecting a highest-ranking range of contiguous blocks for block relocation to free all allocated blocks in the selected range. 2. The method of claim 1 , wherein generating the contiguousness score for a particular range of contiguous blocks includes: scanning per-block metadata of allocated blocks in the particular range; detecting, by scanning the per-block metadata, that the allocated blocks in the particular range have been allocated to a common file; and establishing a value of the contiguousness score based on an extent to which the per-block metadata indicate that the allocated blocks in the particular range have contiguous logical offsets within the common file. 3. The method of claim 1 , wherein the multiple ranges of contiguous blocks are all equal in length, and wherein tracking the free ranges includes maintaining a bitmap, the bitmap indicating, for each block in the multiple ranges of contiguous blocks, whether the block is allocated or free. 4. The method of claim 3 , wherein the block relocation operation is initiated in response to detecting that a number of free ranges in the file system has fallen below a predetermined limit. 5. The method of claim 3 , further comprising performing another block relocation operation on another of the ranges of contiguous blocks, to free a set of allocated blocks within the other range of contiguous blocks, in response to a number of allocated blocks in the other range of contiguous blocks being below a predetermined limit. 6. The method of claim 3 , further comprising performing another block relocation operation on another of the ranges of contiguous blocks, to free a set of allocated blocks within the other range of contiguous blocks, in response to no blocks in the other range of contiguous blocks having been allocated within a predetermined period of time. 7. The method of claim 3 , further comprising: storing, for each block within the ranges of contiguous blocks, metadata that identifies (i) a file in the file system to which the block was allocated and (ii) a logical offset into the file at which the block was allocated, and performing another block relocation operation on another of the ranges of contiguous blocks, to free a set of allocated blocks within the other range of contiguous blocks, in response to the other range of contiguous blocks not corresponding to a range of contiguous logical offsets into any file, as indicated by the metadata for the blocks in the other range of contiguous blocks. 8. The method of claim 3 , further comprising: ranking the ranges of contiguous blocks according to a set of factors to produce a ranked list of ranges of contiguous blocks, the set of factors including a number of allocated blocks within each of the ranges of contiguous blocks; and performing a block relocation operation on a higher ranking range of contiguous blocks before performing a block relocation operation on a lower ranking range of contiguous blocks. 9. The method of claim 3 , further comprising: performing a block relocation operation on a second range of contiguous blocks in the physical address space of the file system to free a set of allocated blocks within the second range of contiguous blocks, the second range of contiguous blocks having a length equal to that of the set of full stripes of the RAID group; in response to the data storage system receiving data to be written to contiguous logical offsets into a file of the file system, arranging the data in the range of contiguous blocks in order of logical offset; and performing a set of full-stripe writes to write the data arranged in the range of contiguous blocks to the RAID group. 10. A data storage system, comprising control circuitry that includes a set of processing units coupled to memory, the control circuitry constructed and arranged to: perform a block relocation operation on a range of contiguous blocks in a physical address space of a file system to free a set of allocated blocks within the range of contiguous blocks, the range of contiguous blocks having a length equal to that of a set of full stripes of a RAID (Redundant Array of Independent Disks) group that stores content of the file system; in response to the data storage system receiving a set of data to be written to the file system, arrange the set of data in the range of contiguous blocks; and perform a set of full-stripe writes to write the set of data arranged in the range of contiguous blocks to the RAID group, wherein the range of contiguous blocks is one of multiple ranges of contiguous blocks in the physical address space of the file system, and wherein the control circuitry is further constructed and arranged to: generate, for each of the multiple ranges of contiguous blocks, a contiguousness score that indicates a degree to which blocks within the respective range of contiguous blocks store contiguous file data; rank the multiple ranges of contiguous blocks based at least in part on the contiguousness score; and select a highest-ranking range of contiguous blocks for block relocation to free all allocated blocks in the selected range. 11. The data storage system of claim 10 , wherein the range of contiguous blocks is one of multiple ranges of contiguous blocks logically represented in the physical address space of the file system, wherein the multiple ranges of contiguous blocks are all equal in length, and wherein the control circuitry is further constructed and arranged to initiate the block relocation operation in response to detecting that a number of free ranges in the file system has fallen below a predetermined limit, each free range being a respective one of multiple the ranges of contiguous blocks, for which no blocks are allocated. 12. The data storage system of claim 11 , wherein the control circuitry is further constructed and arranged to: store, for each block within the ranges of contiguous blocks, metadata that identifies (i) a file in the file system to which the block was allocated and (ii) a logical offset into the file at which the block was allocated;

Assignees

Inventors

Classifications

  • G06F3/064Primary

    Management of blocks · CPC title

  • Disk arrays, e.g. RAID, JBOD · CPC title

  • at area level, e.g. provisioning of virtual or logical volumes · CPC title

  • G06F3/0619Primary

    in relation to data integrity, e.g. data losses, bit errors · CPC title

  • Improving I/O performance · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9965201B1 cover?
An improved technique for managing data storage includes relocating allocated blocks within a range of a physical address space of a file system to free the allocated blocks. The range has a length equal to a length of one or more full stripes of a RAID group that stores content of the file system. In response to receiving data to be written to the file system, the file system arranges the data…
Who is the assignee on this patent?
Emc Corp, Emc Ip Holding Co Llc
What technology area does this patent fall under?
Primary CPC classification G06F3/064. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 08 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).