Common block storage infrastructure
First Claim
1. One or more computer-readable memory devices storing instructions executable by a computing device to:
- receive a request from an application to allocate reserved extents on a volume owned by a file system for one of a plurality of volume storage drivers configured to form a driver stack between the file system and the volume;
interact with the file system to cause allocation of the reserved extents in accordance with a common block storage infrastructure by creating files through the file system to protect the reserved extents for use by the plurality of volume storage drivers; and
communicate the allocation of the reserved extents through the driver stack having the plurality of volume storage drivers by sending a notification of the reserved extents through the driver stack having an identifier associated with the one said volume storage driver that enables drivers in the stack that do not recognize the identifier to pass the notification down the stack for recognition by the one said volume storage driver, each particular driver of the plurality of volume storage drivers configured to maintain a list of reserved extents for the particular driver and an exclusion list that indicates reserved extents allocated to other drivers of the plurality of volume storage drivers.
2 Assignments
0 Petitions
Accused Products
Abstract
Common block storage infrastructure techniques are described in which files are created through interaction with a file system to reserve extents in a volume on behalf of volume storage drivers, which may form a driver stack that resides logically on top of the volume. The files protect the reserved extents within the volume for use by the volume storage drivers, such as to store metadata related to operations performed by the drivers. When reserved extents are created, a location of the reserved extents is communicated through the driver stack to a corresponding volume storage driver. Volume storage drivers may also be configured to discover their corresponding reserved extents and communicate these to upper-level drivers and components. Accordingly, when a volume storage driver manipulates data in the volume, it may do so with awareness of the reserved extents of the other volume storage drivers.
-
Citations
18 Claims
-
1. One or more computer-readable memory devices storing instructions executable by a computing device to:
-
receive a request from an application to allocate reserved extents on a volume owned by a file system for one of a plurality of volume storage drivers configured to form a driver stack between the file system and the volume; interact with the file system to cause allocation of the reserved extents in accordance with a common block storage infrastructure by creating files through the file system to protect the reserved extents for use by the plurality of volume storage drivers; and communicate the allocation of the reserved extents through the driver stack having the plurality of volume storage drivers by sending a notification of the reserved extents through the driver stack having an identifier associated with the one said volume storage driver that enables drivers in the stack that do not recognize the identifier to pass the notification down the stack for recognition by the one said volume storage driver, each particular driver of the plurality of volume storage drivers configured to maintain a list of reserved extents for the particular driver and an exclusion list that indicates reserved extents allocated to other drivers of the plurality of volume storage drivers. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method comprising:
-
instantiating a volume storage driver to transform data on a volume that is owned by a file system; reserving extents on the volume for the volume storage driver according to common block storage infrastructure (CBSI) rules to coordinate with the file system; and coordinating the reserved extents with one or more other volume storage drivers configured to form a driver stack between the file system and the volume according to the CBSI rules;
including;recognizing a notification sent down the driver stack based on a identifier included in the notification that is associated with the volume storage driver and configured to cause drivers that do not recognize the identifier to pass the notification down the driver stack, the notification indicative of the reserved extents on the volume for the volume storage driver; responsive to recognizing the notification; adding a location of the reserved extents indicated by the notification to a reserved extents list for the volume storage driver; and sending an indication of the recognition back up the stack to notify one or more upper-level drivers of said one or more other storage drivers of the reserved extents corresponding to the volume storage driver and enable the one or more upper-level drivers to add the location of the reserved extents to respective exclusion lists; and maintaining by the volume storage driver of a list of reserved extents to provide in response to a query from the upper-level driver and a list of excluded extents associated with lower-level drivers of said one or more other volume storage drivers. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A computing device comprising:
-
a processor; memory; a volume defined in the memory; an operating system to implement a file system for the volume; and a plurality of drivers configured to; form a driver stack between the volume and the file system; virtualize a boot sector of the volume successively up the driver stack to the file system; store metadata to enable operations on the volume in reserved extents each corresponding to one of the plurality of drivers; discover the reserved extents on the volume to retrieve the metadata; and communicate one to another to coordinate the reserved extents between the plurality of drivers, each respective driver of said plurality of drivers is configured to; process notifications of reserved extents sent down the driver stack to recognize notifications corresponding to the respective driver based on identifiers included in the notifications; pass notifications that are not recognized down the stack for processing by lower level drivers in the driver stack; and responsive to recognition of a notification having an identifier corresponding to the respective driver; add a record for reserved extents indicated by the notification to a list of reserved extents for the respective driver; and send a notification back-up the stack to enable upper-level drivers to add the reserved extents for the respective driver to respective exclusion lists. - View Dependent Claims (17, 18)
-
Specification