File system over fully provisioned volume file in direct mode
First Claim
1. A data storage system for use by a file system consumer according to a file system interface, comprising:
- one or more physical nonvolatile storage devices; and
a processing subsystem executing software to form a multi-level stack of functional components including a lower-deck file system and an upper-deck file system, the upper-deck file system providing the file system interface to the file system consumer, the lower-deck file system presenting a volume file from which storage is provided to the upper-deck file system, units of storage of the storage devices being reserved to the upper-deck file system, the volume file being fully provisioned based on the reserved units of storage so that an out-of-space condition is not presented to the upper-deck file system, the reserved units of storage being added dynamically to the volume file to increase its allocated size in response to demand from the upper-deck file system, the lower-deck file system operating in a direct mode in which a block address of a data block in the lower-deck file system is obtained by a predetermined calculation from a corresponding block address of a data block in the volume file,wherein the units of storage are slices having a slice size at least ten times a block size of the data blocks,and wherein slices are created from corresponding slice-size areas of the volume file with a generally arbitrary mapping between their respective locations, the slice-size areas at a given time including holes not currently provisioned and being replaced with data-storing slices as the upper-deck file system grows,and wherein growth of the upper-deck file system is passed down to the lower-deck file system, and including allocating additional pool slices to the lower-deck file system to grow the size of the volume file accordingly.
10 Assignments
0 Petitions
Accused Products
Abstract
A data storage system includes storage devices and a processing subsystem executing software forming a lower-deck file system and an upper-deck file system. The lower-deck file system presents a volume file from which storage is provided to the upper-deck file system, and units of storage of the storage devices are reserved to the upper-deck file system. The volume file is fully provisioned based on the reserved units of storage so that an out-of-space condition is not presented to the upper-deck file system. Reserved units of storage are dynamically added to the volume file to increase its allocated size in response to demand from the upper-deck file system, and a direct operating mode is used in which a block address in the lower-deck file system is obtained by a predetermined calculation from a corresponding block address in the volume file.
50 Citations
11 Claims
-
1. A data storage system for use by a file system consumer according to a file system interface, comprising:
-
one or more physical nonvolatile storage devices; and a processing subsystem executing software to form a multi-level stack of functional components including a lower-deck file system and an upper-deck file system, the upper-deck file system providing the file system interface to the file system consumer, the lower-deck file system presenting a volume file from which storage is provided to the upper-deck file system, units of storage of the storage devices being reserved to the upper-deck file system, the volume file being fully provisioned based on the reserved units of storage so that an out-of-space condition is not presented to the upper-deck file system, the reserved units of storage being added dynamically to the volume file to increase its allocated size in response to demand from the upper-deck file system, the lower-deck file system operating in a direct mode in which a block address of a data block in the lower-deck file system is obtained by a predetermined calculation from a corresponding block address of a data block in the volume file, wherein the units of storage are slices having a slice size at least ten times a block size of the data blocks, and wherein slices are created from corresponding slice-size areas of the volume file with a generally arbitrary mapping between their respective locations, the slice-size areas at a given time including holes not currently provisioned and being replaced with data-storing slices as the upper-deck file system grows, and wherein growth of the upper-deck file system is passed down to the lower-deck file system, and including allocating additional pool slices to the lower-deck file system to grow the size of the volume file accordingly. - View Dependent Claims (2, 3, 4)
-
-
5. A method of operating a data storage system to provide file system functionality to a file system consumer according to a file system interface, the data storage system including one or more physical nonvolatile storage devices and a processing subsystem, comprising:
-
instantiating, in the processing subsystem, software to form a multi-level stack of functional components including a lower-deck file system and an upper-deck file system, the upper-deck file system providing the file system interface to the file system consumer; and by the lower-deck file system, (i) presenting a volume file from which storage is provided to the upper-deck file system, units of storage of the storage devices being reserved to the upper-deck file system, the volume file being fully provisioned based on the reserved units of storage so that an out-of-space condition is not presented to the upper-deck file system, (ii) dynamically adding reserved units of storage to the volume file to increase its allocated size in response to demand from the upper-deck file system, and (iii) utilizing a direct operating mode in which a block address of a data block in the lower-deck file system is obtained by a predetermined calculation from a corresponding block address of a data block in the volume file, wherein the units of storage are slices having a slice size at least ten times a block size of the data blocks, and wherein slices are created from corresponding slice-size areas of the volume file with a generally arbitrary mapping between their respective locations, the slice-size areas at a given time including holes not currently provisioned and being replaced with data-storing slices as the upper-deck file system grows, and wherein growth of the upper-deck file system is passed down to the lower-deck file system, and including allocating additional pool slices to the lower-deck file system to grow the size of the volume file accordingly. - View Dependent Claims (6, 7, 8, 9, 10, 11)
-
Specification