Space-efficient persistent block reservation

US10409776B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-10409776-B1
Application numberUS-201615085541-A
CountryUS
Kind codeB1
Filing dateMar 30, 2016
Priority dateMar 30, 2016
Publication dateSep 10, 2019
Grant dateSep 10, 2019

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.

A method of operating a data storage system to provision space on a volume on which a set of filesystems rest includes (a) storing data in a set of files of the set of filesystems, files of a first subset being marked as thick files and files of a second subset being marked as thin files, and (b) reserving backing store for the volume. Reserving backing store includes (1) summing, over all the files of the first subset, a block representation of the filesize of each file, yielding a first sum, (2) summing, over all files of the second subset, a number of filesystem blocks of each file that store active file data, yielding a second sum, (3) calculating a reservation size by summing the first and sums, and (4) providing a number of blocks of backing store for the volume equal to at least the calculated reservation size.

First claim

Opening claim text (preview).

What is claimed is: 1. A method of operating a data storage system to provision space on a volume on which a set of filesystems rest, the method comprising: storing data in a set of files of the set of filesystems, the set of files being partitionable into a first subset and a second subset, files of the first subset being marked as thick files and files of the second subset being marked as thin files, files marked as thick each having guaranteed backing store up to a filesize of that file, files marked as thin lacking a guarantee of backing store beyond space actually used by those files, at least one file of the set of filesystems sharing a block with another file of the set of filesystems, wherein the set of filesystems includes one primary filesystem and a plurality of snapshots, each snapshot representing a state of the primary filesystem at a previous time, the at least one file being a file of the primary filesystem and the other file being a file on a snapshot, the other file representing a previous state of the at least one file; and reserving backing store for the volume by: summing, over all the files of the first subset, a block representation of the filesize of each file, yielding a first sum; summing, over all the files of the second subset, a number of filesystem blocks of each file that store active file data, yielding a second sum; determining a number of blocks of backing store actually used by all files of the set of files combined; summing, over all the files of the first subset, a block representation of a file liability of each file, yielding a third sum; calculating a reservation size, wherein calculating the reservation size includes: summing the first sum and the second sum; summing the determined number of blocks of backing store actually used by all files combined and the third sum, yielding a fourth sum; and calculating a minimum of the fourth sum and the sum of the first sum and the second sum, storing the calculated minimum as the reservation size; determining whether there is sufficient storage space available to provide the number of blocks of backing store for the volume equal to at least the calculated reservation size, yielding a determination; selectively performing a freeing operation in response to the determination being negative, the freeing operation including: deleting an oldest snapshot, removing files of the deleted snapshot from the set of files, the first subset, and the second subset; re-calculating the first sum, the second sum, and the third sum after removing the files of the deleted snapshot; re-determining the number of blocks of backing store actually used by all files of the set of files combined after removing the files of the deleted snapshot; and re-calculating the reservation size; and providing a number of blocks of backing store for the volume equal to at least the calculated reservation size. 2. The method of claim 1 wherein summing the block representation of the file liability of each file includes calculating the file liability of each file of the first subset by subtracting a number of blocks allocated uniquely to that file from the block representation of the filesize of that file. 3. The method of claim 2 wherein subtracting the number of blocks allocated uniquely to that file from the block representation of the filesize of that file includes reading a pre-stored value of the number of blocks allocated uniquely to that file and a pre-stored value of the filesize of that file from metadata of that file. 4. The method of claim 1 wherein: all files on the plurality of snapshots are marked as thin files; and the primary filesystem includes both files marked as thin files and files marked as thick files. 5. The method of claim 1 wherein: the plurality of snapshots includes both files marked as thin files and files marked as thick files; and the primary filesystem includes both files marked as thin files and files marked as thick files. 6. The method of claim 1 wherein reserving backing store for the volume is performed only in response to any of: the volume becoming mounted on the data storage system; receiving a write command directed to a previously-unallocated block of a file marked as a thin file; receiving a command to create a new thick file; receiving a command to change the filesize of a file marked as a thick file; receiving a command to convert a file marked as a thin into a file marked as a thick file; receiving a command to convert a file marked as a thick file into a file marked as a thin file; and receiving a command to create a new snapshot. 7. The method of claim 1 wherein: reserving backing store for the volume is performed initially upon the volume becoming mounted on the data storage system; and reserving backing store is repeated only in response to receiving a data storage command directing the data storage system to do any of: write to a previously-unallocated block of a file marked as a thin file; create a new thick file; change the filesize of a file marked as a thick file; convert a file marked as a thin into a file marked as a thick file; and convert a file marked as a thick file into a file marked as a thin file. 8. The method of claim 7 wherein repeating reserving backing store for the volume further includes, prior to providing the number of blocks of backing store for the volume equal to at least the calculated reservation size: determining whether there is sufficient storage space available to provide the number of blocks of backing store for the volume equal to at least the calculated reservation size, yielding a determination; and selectively performing a rejection operation instead of reserving backing store for the volume in response to the determination being negative, the rejection operation including: refraining from performing the data storage command; and returning a failure message in response to the data storage command. 9. The method of claim 1 wherein providing the number of blocks of backing store for the volume equal to at least the calculated reservation size includes assigning just enough whole slices of storage to the volume such that the assigned whole slices of storage include at least the number of blocks. 10. An apparatus comprising: network interface circuitry for communicating with a set of host devices over a network; data storage providing backing store for a volume on which a set of filesystems rest; and processing circuitry coupled to memory configured to provision space on the volume by: storing data received from the set of host devices in a set of files of the set of filesystems, the set of files being partitionable into a first subset and a second subset, files of the first subset being marked as thick files and files of the second subset being marked as thin files, files marked as thick each having guaranteed backing store up to a filesize of that file, files marked as thin lacking a guarantee of backing store beyond space actually used by those files, at least one file of the set of filesystems sharing a block with another file of the set of filesystems, wherein the set of filesystems includes one primary filesystem and a plurality of snapshots, each snapshot representing a state of the primary filesystem at a previous time, the at least one file being a file of the primary filesystem and the other file being a file on a snapshot, the other file representing a previous state of the at least one file; and reserving backing store for the volume by: summing, over all the files of the first subset, a block representation of the filesize of each file, yielding a first sum; summing, over all the files of the second subset, a

Assignees

Inventors

Classifications

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

  • Replication mechanisms · CPC title

  • Details of free space management performed by the file system (saving storage space on storage systems G06F3/0608; management of blocks in storage devices G06F3/064) · CPC title

  • Management of blocks · CPC title

  • Saving storage space on storage systems · 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 US10409776B1 cover?
A method of operating a data storage system to provision space on a volume on which a set of filesystems rest includes (a) storing data in a set of files of the set of filesystems, files of a first subset being marked as thick files and files of a second subset being marked as thin files, and (b) reserving backing store for the volume. Reserving backing store includes (1) summing, over all the …
Who is the assignee on this patent?
Emc Ip Holding Co Llc
What technology area does this patent fall under?
Primary CPC classification G06F16/1727. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Sep 10 2019 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 5 related publications on this page (citations in our corpus or others sharing the same primary CPC).