Consistent distributed storage communication protocol semantics in a clustered storage system
First Claim
1. A non-transitory computer readable medium storing computer-executable instructions, comprising:
- instructions to implement a storage operating system on a computing device, wherein the instructions implement the storage operating system as a node in a clustered storage system;
instructions to implement a protocol target instance that interacts with at least a peer protocol target instance on a peer cluster node of the clustered storage system to implement a distributed logical unit that performs data storage protocol processing for a host, the distributed logical unit being a distributed object that includes a set of target sub-devices hosted on one or more nodes in the clustered storage system, wherein the protocol target instance presents the distributed logical unit as a single target device to the host, the distributed logical unit being a representation of a physical data storage or an abstraction of physical data storage on which data in the clustered storage system is stored;
instructions to implement a target sub-device having at least a logical sub-unit therein, the logical sub-unit being part of the distributed logical unit;
instructions to implement a logical target port to provide routing for a command or task management function from the host to an appropriate logical sub-unit in the distributed logical unit, wherein the logical target port references a physical port of the computing device;
instructions to process, at the logical sub-unit, the command or the task management function to thereby modify context information of the distributed logical unit, the context information comprising data storage or data state information of the logical sub-unit;
instructions to, in response to processing the command or the task management function, notify a peer logical sub-unit implemented by the peer protocol target instance that the context information is modified;
instructions to implement an instance of a global task set for the logical subunit to queue the command or the task management function from the host that modifies the context information; and
instructions to coordinate entry of a first command or function into the instance of the global task set such that the instance of the global task set is consistent with a peer instance of the global task set implemented on the peer logical sub-unit.
1 Assignment
0 Petitions
Accused Products
Abstract
Consistent distributed storage communication protocol semantics, such as SCSI target semantics, in a clustered storage system are disclosed. The system includes a mechanism for presenting a single distributed logical unit, comprising one or more logical sub-units, as a single logical unit of storage to a host system by associating each of the logical sub-units that make up the single distributed logical unit with a single host visible identifier that corresponds to the single distributed logical unit. The system further includes a mechanism to maintain consistent context information for each of the logical sub-units such that the logical sub-units are not visible to a host system as separate entities from the single distributed logical unit.
46 Citations
13 Claims
-
1. A non-transitory computer readable medium storing computer-executable instructions, comprising:
-
instructions to implement a storage operating system on a computing device, wherein the instructions implement the storage operating system as a node in a clustered storage system; instructions to implement a protocol target instance that interacts with at least a peer protocol target instance on a peer cluster node of the clustered storage system to implement a distributed logical unit that performs data storage protocol processing for a host, the distributed logical unit being a distributed object that includes a set of target sub-devices hosted on one or more nodes in the clustered storage system, wherein the protocol target instance presents the distributed logical unit as a single target device to the host, the distributed logical unit being a representation of a physical data storage or an abstraction of physical data storage on which data in the clustered storage system is stored; instructions to implement a target sub-device having at least a logical sub-unit therein, the logical sub-unit being part of the distributed logical unit; instructions to implement a logical target port to provide routing for a command or task management function from the host to an appropriate logical sub-unit in the distributed logical unit, wherein the logical target port references a physical port of the computing device; instructions to process, at the logical sub-unit, the command or the task management function to thereby modify context information of the distributed logical unit, the context information comprising data storage or data state information of the logical sub-unit; instructions to, in response to processing the command or the task management function, notify a peer logical sub-unit implemented by the peer protocol target instance that the context information is modified; instructions to implement an instance of a global task set for the logical subunit to queue the command or the task management function from the host that modifies the context information; and instructions to coordinate entry of a first command or function into the instance of the global task set such that the instance of the global task set is consistent with a peer instance of the global task set implemented on the peer logical sub-unit. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A storage server node in a clustered storage system comprising:
-
an interface to detachably couple with an interconnect to enable communication amongst multiple storage server nodes of the clustered storage system; a management module to enable management operations to be performed on the storage server node; a data module to provide data storage services for the storage server node; and a protocol module to allow a host to access the clustered storage system, the protocol module configured to implement a logical sub-unit of a distributed logical unit and to associate the logical sub-unit with an identifier of the distributed logical unit so that the host can perform a block-level access to the logical sub-unit of the distributed logical unit, such that the logical sub-unit is not visible to the host as a separate entity from the distributed logical unit; and wherein the protocol module suspends communication from the host to the logical sub-unit to quarantine the logical sub-unit when the logical subunit is corrupted, and wherein the protocol module is further configured to (a) maintain context information that is consistent with corresponding context information of another logical sub-unit implemented in another storage server node in the clustered storage system;
(b) maintain context information that is consistent with corresponding context information of another logical sub-unit implemented in another storage server node in the clustered storage system;
(c) implement a first instance, on the storage server node, of a global task set for the distributed logical unit to queue one or more commands that modify the context information; and
(d) coordinate entry of a first command into both the first instance and at least a second instance of the global task set implemented on the other storage server node to ensure the context information is consistent with the corresponding context information in the other storage server node after the first command is processed. - View Dependent Claims (12, 13)
-
Specification