Technique for coherent suspension of I/O operations in a RAID subsystem
First Claim
1. A method for suspending input/output (I/O) operations executed by a subsystem of a storage system, comprising:
- constructing an I/O tree that accommodates a flow of I/O operations through the subsystem and targeted to the object;
imposing a freeze condition on an object of a the I/O tree representing a logical configuration of storage devices coupled to the storage system;
instantiating raidio structures used to communicate with the objects of the configuration tree, the objects having configuration interfaces defining services provided by a process of the subsystem;
providing an I/O thread having a receive list to process the instantiated raidio structures;
invoking accounting procedures each time a raidio structure is instantiated;
enabling in flight I/O operations directed to the object to reach a recoverable state in the event the subsystem subsequently fails;
blocking new I/O requests directed to the object at the subsystem until the freeze condition is lifted;
incrementing a per-object activity counter in response to dequeuing of a raidio structure from a receive list of the I/O thread; and
decrementing the per-object activity counter in response to completion of processing of the raidio structure.
1 Assignment
0 Petitions
Accused Products
Abstract
A technique coherently suspends input/output (I/O) operations in a RAID subsystem of a storage system. A configuration tree of the RAID subsystem has a plurality of objects representing a logical configuration of storage devices coupled to the system. According to the technique, a “freeze” condition may be imposed on an object of the configuration tree to suspend I/O operations directed to that object. In order to freeze, I/O operations underway (“in flight”) in the RAID subsystem and directed to the object need to complete sufficiently so as to reach a recoverable state in the event the subsystem subsequently fails prior to an I/O restart procedure. Once a freeze condition has been imposed, new I/O requests directed to the object are inserted onto a freeze list of pending requests at the RAID subsystem and are blocked from processing until the object is “unfrozen” (i.e., the freeze condition is lifted).
81 Citations
16 Claims
-
1. A method for suspending input/output (I/O) operations executed by a subsystem of a storage system, comprising:
-
constructing an I/O tree that accommodates a flow of I/O operations through the subsystem and targeted to the object; imposing a freeze condition on an object of a the I/O tree representing a logical configuration of storage devices coupled to the storage system; instantiating raidio structures used to communicate with the objects of the configuration tree, the objects having configuration interfaces defining services provided by a process of the subsystem; providing an I/O thread having a receive list to process the instantiated raidio structures; invoking accounting procedures each time a raidio structure is instantiated; enabling in flight I/O operations directed to the object to reach a recoverable state in the event the subsystem subsequently fails; blocking new I/O requests directed to the object at the subsystem until the freeze condition is lifted; incrementing a per-object activity counter in response to dequeuing of a raidio structure from a receive list of the I/O thread; and decrementing the per-object activity counter in response to completion of processing of the raidio structure. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system adapted to suspend input/output (I/O) operations directed to an object of a configuration tree representing a logical configuration of storage devices coupled to a storage system, comprising:
-
a storage operating system executing on the storage system and having a subsystem that facilitates storage and retrieval of information to and from the storage devices in accordance with the I/O operations; an I/O tree configured to accommodate a flow of the I/O operations through the subsystem and directed to the storage devices; a configuration thread executing in the subsystem and configured to impose a freeze condition on the object; an I/O thread executing in the subsystem, the I/O thread using a set of condition variables, the set of condition variables having; a freeze_id in a form of a monotonically increasing value; an active I/O count in a form of a per-object I/O activity counter; and a state of the I/O tree, to enable in flight I/O operations directed to the object to reach a recoverable state in the event the subsystem subsequently fails and to block new I/O requests directed to the object at the subsystem until the freeze condition is lifted. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
16. A computer readable media, comprising:
-
said computer readable media containing instructions for execution on a processor for a method of suspending input/output (I/O) operations executed by a subsystem of a storage system, the method having the steps of; constructing an I/O tree that accommodates a flow of I/O operations through the subsystem and targeted to the object; imposing a freeze condition on an object of a the I/O tree representing a logical configuration of storage devices coupled to the storage system; instantiating raidio structures used to communicate with the objects of the configuration tree, the objects having configuration interfaces defining services provided by a process of the subsystem; providing an I/O thread having a receive list to process the instantiated raidio structures; invoking accounting procedures each time a raidio structure is instantiated; enabling in flight I/O operations directed to the object to reach a recoverable state in the event the subsystem subsequently fails; blocking new I/O requests directed to the object at the subsystem until the freeze condition is lifted; incrementing a per-object activity counter in response to dequeuing of a raidio structure from a receive list of the I/O thread; and decrementing the per-object activity counter in response to completion of processing of the raidio structure.
-
Specification