The present disclosure relates generally to computer networks, and, more particularly to a storage network that includes an arbiter within a storage enclosure for managing control of the logical units of the storage enclosure.
As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to these users is an information handling system. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may vary with respect to the type of information handled; the methods for handling the information; the methods for processing, storing or communicating the information; the amount of information processed, stored, or communicated; and the speed and efficiency with which the information is processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include or comprise a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
Computers, including servers and workstations, are often grouped in clusters to perform specific tasks. A server cluster is a group of independent servers that is managed as a single system. Compared with groupings of unmanaged servers, a server cluster is characterized by higher availability, manageability, and scalability. A server cluster typically involves the configuration of a group of servers such that the servers appear in the network as a single machine or unit. At a minimum, a server cluster includes two servers, which are sometimes referred to as nodes and which are connected to one another by a network or other communication links.
A cluster server architecture may involve a shared set of storage resources in which each server in the cluster may have simultaneous access to each shared storage resource. As an alternative, a cluster server architecture may be a shared-nothing architecture in which each server owns all or part of the shared storage resources. The storage resources owned by a server in the cluster are not accessible by other servers. In the event of a failure of a server, another server of the network can assume control over the storage resource.
The servers of the cluster server may communicate with the shared storage network and resources according to the Serial Attached SCSI (SAS) communications protocol. Serial Attached SCSI is a storage network interface that is characterized by a serial, point-to-point architecture. In addition, the storage of a cluster network may include some element of fault tolerant storage. One example of fault tolerant storage is RAID (Redundant Array of Independent Disks) storage. RAID storage involves the organization of multiple disks into an array of disks to obtain performance, capacity, and reliability advantages.
The storage recourses of the network may comprise one or more storage enclosures, which may house a plurality of disk-based hard drives. The servers of the cluster may use a SCSI RESERVE command to logically reserve or own logical units or drives of a storage enclosure of the storage network, such that no other server in the cluster can access it. The server may release control over any reserved logical units with a SCSI RELEASE command. A RESERVE and RELEASE command and ownership structure may not work well with RAID logical units in the absence of a shared external RAID controller in the storage network. The use of distributed RAID controllers that are internal to each server of the cluster necessitates that information concerning the ownership of drives of the storage enclosure be communicated to and synchronized with respect to each distributed RAID controller of the network. Using node-to-node communication links between distributed RAID controllers to establish and resolve ownership over logical units is complicated and expensive.
In accordance with the present disclosure, a cluster network is disclosed that includes a set of nodes coupled to a storage enclosure. The storage enclosure includes an arbiter for managing contention for ownership of the storage drives of the storage enclosure. The arbiter receives ownership commands and arbitrates the ownership of the storage drives on the basis of the commands and the current ownership settings of the affected storage drives. The command issued by the server node may be issued according to a first command language, which may be translated for handling by the arbiter. The arbiter is coupled to an SAS expander in the storage enclosure that routes communications to each of the storage drives of the storage enclosure.
The architecture and methodology disclosed herein is technically advantageous because the use of an arbiter associated with an SAS expander of a storage enclosure serves as an efficient and lower cost substitute for an external RAID controller in a cluster network. As a result, the ownership of the logical units of a storage enclosure can be managed using internal RAID controllers without communication between the distributed controllers on the servers in the cluster and without the necessity of using an external RAID controller in the network.
The architecture and methodology disclosed here is also advantageous because of the centralized management of storage resources. Each server node and associated RAID controller can manage ownership over the set storage drives of the storage enclosure without the involvement of and without reporting ownership information to the other server nodes and RAID controllers of the cluster network. The architecture and methodology disclosed herein is also advantageous because the architecture and methodology is not limited in it application to RAID storage methodologies that use the SCSI RESERVE-RELEASE protocol for reserving access to storage resources. The architecture and methodology disclosed herein can be used for any application where the ownership of a shared resource needs to be established and maintained. Other technical advantages will be apparent to those of ordinary skill in the art in view of the following specification, claims, and drawings.
A more complete understanding of the present embodiments and advantages thereof may be acquired by referring to the following description taken in conjunction with the accompanying drawings, in which like reference numbers indicate like features, and wherein:
For purposes of this disclosure, an information handling system may include any instrumentality or aggregate of instrumentalities operable to compute, classify, process, transmit, receive, retrieve, originate, switch, store, display, manifest, detect, record, reproduce, handle, or utilize any form of information, intelligence, or data for business, scientific, control, or other purposes. For example, an information handling system may be a personal computer, a network storage device, or any other suitable device and may vary in size, shape, performance, functionality, and price. The information handling system may include random access memory (RAM), one or more processing resources such as a central processing unit (CPU) or hardware or software control logic, ROM, and/or other types of nonvolatile memory. Additional components of the information handling system may include one or more disk drives, one or more network ports for communication with external devices as well as various input and output (I/O) devices, such as a keyboard, a mouse, and a video display. The information handling system may also include one or more buses operable to transmit communications between the various hardware components.
Shown in
As indicated in
Shown in
A diagram of each node 12 of the storage network is shown in
When the expander port of the SAS expander of the storage enclosure receives a Set Reservation State command, the arbiter first determines if the owned flag for the requested logical unit is set to indicate that the logical unit is owned by another node of the storage network. If the owned flag of the requested logical unit is set to indicate that the logical unit is owned by another node of the computer network, an error or state message is returned to the requesting node to indicate that the ownership condition of the requested logical unit could not be changed. If the owned flag is not set for the requested node, the ownership of the requested logical unit is assigned to the requesting node. The node column and the owned column of the logical unit of the row of the logical unit ownership table corresponding to the requested logical unit are updated to reflect the assignment of the logical unit to the requested node. A confirmation is transmitted to requesting node to confirm the assignment of the requested logical unit to the requesting node. When the arbiter receives a Clear Reservation State command from a node, the arbiter clears the owned flag for the logical unit that is the subject of the command and updates the logical unit ownership table to reflect the ownership state of the affected logical unit.
In operation, arbiter 20 receives reservation and release commands from each of the nodes of the storage network. On the basis of these commands, arbiter 20 establishes and releases ownership the logical units of the storage enclosure among the nodes of the storage network. Shown in
Following the completion of the Set Reservation State command at the SAS expander, a status indicator is returned to the requesting node. At the arbiter translator of the requesting node, it is determined at step 68 if the status indicator has been set to error, which would indicate that the logical unit that was the subject of the RESERVE command is not present in the storage enclosure. If the status indicator has been set to Error, the status CHECK CONDITION is returned to the RAID controller of the node at step 70 and control of subsequent command issuance is returned to the RAID controller of the node at step 78. If the status indicator is not set to error, it is determined at step 72 if the status indicator is set to Conflict, which would indicate that the requested logical unit is owned by another node of the storage network. If the status indicator is set to Conflict, the status RESERVATION CONFLICT is returned to the RAID controller of the node at step 74 and control of subsequent command issuance is returned to the RAID controller of the node at step 78. Returning to step 72, if the status indicator is not set to Conflict, the status Success is returned to the RAID controller as confirmation that the requested logical unit was assigned to the node. Control of subsequent command issuance is returned to the RAID controller at step 78.
Shown in
With respect to the determination of step 90, the requesting node is the owner of the logical unit if the logical ownership table associates the logical unit with the node, regardless of whether the owned column for the node is indicated as being a 1 (current ownership) or 0 (previous ownership). If it is determined at step 90 that the requesting node is the owner of the logical unit, it is next determined at step 88 if the owned flag is set for the logical unit. If the owned flag is set for the logical unit, the owned flag is reset to a 0 (previous ownership) state at step 92 and a status indicator is set to a success condition at step 94. Following step 94, the flow diagram continues at point A. If the owned flag is not set for the logical unit, indicating that the owned flag is already set to 0, a status indicator is set to a success condition at step 94 and the flow diagram continues at point A.
Following the completion of the Clear Reservation State command at the SAS expander, a status indicator is returned to the requesting node. At the arbiter translator of the requesting node, it is determined at step 96 if the status indicator has been set to error, which would indicate that the logical unit that was the subject of the SCSI RELEASE command is not present in the storage enclosure. If the status indicator has been set to Error, the status CHECK CONDITION is returned to the RAID controller of the node at step 110 and control of subsequent command issuance is returned to the RAID controller of the node at step 114. If the status indicator is not set to error, it is determined at step 98 if the status indicator is set to Conflict, which would indicate that the requested logical unit is not owned by the requesting node. If the status indicator is set to Conflict, the status RESERVATION CONFLICT is returned to the RAID controller of the node at step 112 and control of subsequent command issuance is returned to the RAID controller of the node at step 114. Returning to step 98, if the status indicator is not set to Conflict, the status Success is returned to the RAID controller as confirmation that the requested logical unit was assigned to the node. Control of subsequent command issuance is returned to the RAID controller at step 114.
Other SCSI commands issued by a RAID controller of a node are likewise translated by arbiter translation for handling at the arbiter of the SAS expander. The SCSI command Logical Unit Reset is translated by the arbiter translator as the Reset Reservation State command, which is a command that may be issued by any node of the storage network and results in the resetting of the owned flag for the logical unit that is the subject of the command. In addition, the SCSI command Hard Reset command is implemented through a Reset All command that clears all owned flags and therefore the ownership status of each logical unit of the storage enclosure. Typically, the issuer of a Logical Unit Reset or a Reset All command must have administrative level authority to issue either command.
The system and method disclosed herein provides a technique for managing the ownership of SAS drives in a multiple node cluster network. The placement of an arbiter within or adjacent to the SAS expander of the enclosure provides a module for resolving ownership contentions for the drives of the storage enclosure without requiring the of an external RAID controller. As a result, each node can include an internal RAID controller and rely on the arbiter of the storage enclosure for resolving ownership of the logical units of the storage enclosure among the nodes of the cluster network. The use of an arbiter in the storage enclosure is transparent to each node, as each node may assume that the cluster network includes an external RAID controller that distributes ownership over the drives of the storage enclosure. The arbiter need not be included as a separate module within the storage enclosure. The functionality of the arbiter could be included as part of the software-driven functionality of the processor of the storage enclosure or the SAS expander.
The system and method disclosed herein is not limited in its application to a storage network that includes a RAID controller that reserves access to storage resources according to a set of SCSI RESERVE and RELEASE commands. Rather, the system and method disclosed herein can be implemented in any network to provide a virtual external controller for managing the ownership of storage resources of the network. The arbiter of the storage enclosure that is described herein can manage the resources requests of server nodes regardless of the access protocols being used by the server nodes. As such, arbiter of the storage enclosure disclosed herein can server as a virtual external storage controller irrespective of the access protocol used by the server nodes of the network.
Although the present disclosure has been described in detail, it should be understood that various changes, substitutions, and alterations can be made hereto without departing from the spirit and the scope of the invention as defined by the appended claims.