Recovery from low space condition of an extent store
First Claim
1. A system comprising:
- a central processing unit (CPU) of a storage system coupled to one or more storage devices of a storage array configured as an extent store; and
a memory coupled to the CPU and configured to store a storage input/output (I/O) stack having a plurality of layers executable by the CPU, the storage I/O stack configured to accept user data of write requests from a host and process the user data and metadata associated with the user data as user operations executed by finite state machines (FSMs), the storage I/O stack configured to provide an available user operation storage space of a space reservation budget in the extent store for storage of the user data and the associated metadata, the storage I/O stack further configured to (i) halt acceptance of new write requests when a low space condition of the space reservation budget is reached and (ii) pass the associated metadata from the FSMs to the extent store until release of the available user operation storage space exceeds an available space threshold, wherein the space reservation budget includes a persistence layer space reservation and a volume layer space reservation, determined at boot time, to reserve storage space in the extent store for the user operations.
1 Assignment
0 Petitions
Accused Products
Abstract
A technique recovers from a low space condition associated with storage space reserved in an extent store to accommodate write requests received from a host and associated metadata managed by a layered file system of a storage input/output (I/O) stack executing on one or more nodes of a cluster. The write requests, including user data, are persistently recorded on non-volatile random access memory (NVRAM) prior to returning an acknowledgement to the host by a persistence layer of the storage I/O stack. Volume metadata managed by a volume layer of the layered file system is embodied as mappings from logical block addresses (LBAs) of a logical unit (LUN) accessible by the host to extent keys maintained by an extent store layer of the layered file system. Extent store metadata managed by the extent store layer is embodied as mappings from the extent keys to the storage locations of the extents on storage devices of storage arrays coupled to the nodes of the cluster. The space recovery technique accounts for storage space consumed in the extent store by user operations, i.e., write operations for the user data stored on the NVRAM at the persistence layer as well as the associated volume and extent store metadata, to ensure that the user data and associated metadata can be safely and reliably persisted in the extent store even during a low space condition.
60 Citations
19 Claims
-
1. A system comprising:
-
a central processing unit (CPU) of a storage system coupled to one or more storage devices of a storage array configured as an extent store; and a memory coupled to the CPU and configured to store a storage input/output (I/O) stack having a plurality of layers executable by the CPU, the storage I/O stack configured to accept user data of write requests from a host and process the user data and metadata associated with the user data as user operations executed by finite state machines (FSMs), the storage I/O stack configured to provide an available user operation storage space of a space reservation budget in the extent store for storage of the user data and the associated metadata, the storage I/O stack further configured to (i) halt acceptance of new write requests when a low space condition of the space reservation budget is reached and (ii) pass the associated metadata from the FSMs to the extent store until release of the available user operation storage space exceeds an available space threshold, wherein the space reservation budget includes a persistence layer space reservation and a volume layer space reservation, determined at boot time, to reserve storage space in the extent store for the user operations. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A method comprising:
-
accepting user data of write requests at a storage input/output (I/O) stack executing on a processor coupled to storage devices configured as an extent store; processing metadata associated with the user data as user operations executed by finite state machines (FSMs); providing an available user operation storage space of a space reservation budget in the extent store for storage of the user data and the associated metadata; halting acceptance of new write requests when a low space condition of the space reservation budget is reached; and passing the associated metadata from the FSMs to the extent store until release of the available user operation storage space exceeds an available space threshold, wherein the space reservation budget includes a persistence layer space reservation and a volume layer space reservation, determined at boot time, to reserve storage space in the extent store for the user operations. - View Dependent Claims (17, 18)
-
-
19. A non-transitory computer readable medium including program instructions for execution on one or more processors coupled to storage devices configured as an extent store, the program instructions configured to:
-
accept user data of write requests at a storage input/output (I/O) stack executing on the one or more processors; process metadata associated with the user data as user operations executed by finite state machines (FSMs); provide an available user operation storage space of a space reservation budget in the extent store for storage of the user data and the associated metadata; halt acceptance of new write requests when a low space condition of the space reservation budget is reached; and pass the associated metadata from the FSMs to the extent store until release of the available user operation storage space exceeds an available space threshold, wherein the space reservation budget includes a persistence layer space reservation and a volume layer space reservation, determined at boot time, to reserve storage space in the extent store for the user operations.
-
Specification