Direct-attached storage (DAS) refers to a data storage system that is directly attached to a server or workstation. The data capacity and connectivity of the DAS system may be improved through the use of switches or expanders, which enable a large bank of DAS devices to be coupled to multiple servers. A common communications protocol for enabling communications between the servers and the storage drives is the serial attached small computer system interface (SAS). SAS devices such as storage controllers, storage drives, and expanders communicate with each other using the SAS protocol. The interconnection network between the SAS devices may be referred to as a fabric.
The storage resources of the DAS devices are made accessible to servers by configuring zone groups, which control how the expanders route connections through the switch to couple specific servers to specific storage drive bays. Zoning operations and SAS fabric device discovery can be performed by a zone manager entity that resides on the SAS switch. The zone manager may be connected to an expander on the switch through a network connection such as Ethernet or implemented as a function of the SAS switch expander. However, the zone manager is typically not a SAS device and cannot be discovered by any of the other SAS devices in the DAS system.
Certain exemplary embodiments are described in the following detailed description and in reference to the drawings, in which:
Embodiments of the present techniques provide a system and a method for zone management in a DAS (Direct Attached Storage) system. More specifically, embodiments of the present techniques provide a zone manager virtual PHY (ZMVP) on a SAS switch expander. In this way, the SAS switch zone manager can communicate with other devices in the SAS fabric using in-band standards-based SAS discovery and communication mechanisms as though the zone manager was an actual SAS-based end device.
Several advantages may be realized by implementing a zone manager virtual PHY on the SAS switch expander. For example, when designing a SAS switch, the number of SAS ports desired by the customer is generally weighed against the material costs and hardware complexity of routing the SAS lanes for those ports to the switch expanders. In most cases, a 16 port SAS switch will be sufficient for most users, but there may be some users that would prefer to have a 32 or even 48 port SAS switch. However, designing a 48 port switch will add cost to the majority of users who will not use the additional ports. Similarly, designing and maintaining two or more switches with different numbers of ports would also add cost. To satisfy a broad range of user configurations, a single 16 port SAS switch can be developed, and the SAS fabric can be scaled for larger storage capacity configurations by coupling additional 16 port switches on to the first switch in a “trunking” or “daisy chain” configuration. Trunking is accomplished by connecting a SAS cable from the first SAS switch to the next SAS switch.
When implementing SAS switch trunking, the design complexity of the SAS fabric can be reduced by enabling a single zone manager to control the entire SAS fabric, even across multiple trunked SAS switches, each of which includes its own zone manager. In such a system, a single zone manager may be active, while all other zone managers may be passive. In order for one SAS switch zone manager to be active while all others are passive, an inter-switch arbitration process between the zone managers may be implemented. Because the typical zone manager is not a SAS device, the zone manager cannot be discovered by any of the other SAS devices, nor by the other zone managers running on the other switches. Thus, the typical zone managers may implement an arbitration process by communicating out-of-band, for example, over an Ethernet network. In this scenario, an additional software layer for the out-of band communication would be used, resulting in additional development and qualification time for developing the software layer. Furthermore, the switches would communicate over a public Ethernet network or a dedicated Ethernet network just for the SAS switches, resulting in additional system complexity.
Representing the SAS switch zone manager as a SAS-based end device connected to a virtual PHY on the SAS fabric enables existing SAS discovery and command functionality to be communicated between the zone managers in-band rather than using an out-of-band proprietary mechanism such as SAS over Ethernet. Thus, all zone managers running on each of the SAS switches can discover all of the other zone managers using in-band standards-based SAS discovery and communication mechanisms. This reduces both development costs and time to market and enables a highly scalable storage solution to be provided to users.
Each switch 106 may include an expander 108 that controls the routing between the servers 102 and the storage drive bays 104. Each switch expander 108 may be coupled to one or more servers 102 and one or more storage drive bays 104 through physical interconnections 110, which may be cables or hardwired interconnections included in a storage or blade enclosure, for example. The two ends of a physical interconnection 110 are referred to herein as a port. The expander 108 may include a plurality of ports referred to herein as expander ports 112. Expander ports 112 may be coupled to server ports 114 and drive ports 116 through the physical interconnections 110. Each port 112, 114, and 116 may include one or more components commonly referred to as PHYs (not shown). A PHY is a physical layer transmitter/receiver pair for sending and receiving signals transmitted over the physical connections. As used herein, a port is a set of one or more PHYs that have the same SAS address. A SAS address is a unique identifier that can be assigned to each of the SAS components in the SAS fabric, for example, during system initialization. Each port can include a single PHY or multiple PHYs.
Each switch 106 may also include a zone manager 118 for configuring the switch's expander 108 by defining zone groups and assigning zone groups to specified servers 102. As used herein, the term zone group refers to a set of one or more storage drive bays 104 that can be assigned to one or more initiators. Zone groups can be assigned to initiators through the zone manager 118 according to a zoning configuration specified by the user. Commands may be sent from the zone manager 118 to configure the expander 108 such that a particular server 102 will be operatively coupled to one or more storage drive bays 104 specified by the user. In this way, the user may control the connectivity between the servers 102 and storage drive bays 104. The zone managers 118 may also be operatively coupled to a storage administration device through a TCP/IP network connection, for example. The storage administration device may be, for example, a general purpose computer that enables an administrator to configure the switches 106 remotely.
The PHYs of a single port are associated with a SAS address that is common to each PHY of the corresponding port. The SAS addresses may be determined at an initialization time and are unique to each port. Information about the state of the DAS system may be gathered by the zone manager 118 by querying the PHYs and receiving a response indicating the state of the PHY. For example, the response to a query may indicate whether the PHY is enabled, whether the PHY is attached to a SAS device, the type of device attached to the PHY, and the like. A query may be initiated by the administrator, and information corresponding to the query response may be sent back to the storage administration device and displayed. A query may also be initiated automatically in response to a change in the DAS system 100, for example, a new SAS device being added or removed from the DAS system 100.
In an embodiment, the switches 106 may be trunked. In other words, two or more switches 106 may be operatively coupled to one another for the purpose of increasing the number of expander ports 112 that can be used to couple the servers 102 to the storage drive bays 104. In the trunked configuration shown in
When two or more switches are trunked together as shown in
As described above, each of the zone managers 118 may be implemented using a zone manager virtual PHY 124 on each SAS switch expander 108. To implement the zone manager virtual PHY 124, the zone manager 118 may be assigned a unique SAS address so that the zone manager 118 appears as a unique SAS device in the DAS system 100. The zone manager 118 may be operatively coupled to the corresponding expander 108 using a communication interface such as an Ethernet interface, universal asynchronous receiver/transmitter (UART) serial connection, Inter-Integrated Circuit (I2C), or any other type or communication protocol. If the zone manager is implemented as a function of the SAS switch expander, data may be transferred via internal buffers and callbacks. Each switch expander 108 may implement a bridge function between the virtual PHY and the Ethernet interface to which the zone manager 118 is connected. To implement the bridge function, SAS-based commands received by the expander 108 targeting the SAS address of the zone manager 118 may be converted to Ethernet packets and sent to the zone manager 118. Similarly, SAS commands received by the expander 108 from the zone manager 118 over Ethernet may be converted from Ethernet packets into corresponding SAS-based commands and transmitted over the SAS fabric by the expander 108. In this way, each of the zone managers 118 appears as a SAS end device. Thus, the inter-switch arbitration between the zone managers 118 may be implemented using SAS-based commands.
Each expander 108 may determine the topology of the DAS system 100 by issuing SAS-based commands such as the REPORT GENERAL, DISCOVER, DISCOVER LIST, and INQUIRY commands. The REPORT GENERAL command may be used to report general information about each expander such as the number of PHYs, and other expander attributes. When the zone manager 118 is configured as an end device connected to a virtual PHY in the SAS switch expander 108, an additional PHY corresponding to the zone manager 118 may be reported in the NUMBER OF PHYS field in the REPORT GENERAL command.
The DISCOVER, and DISCOVER LIST commands may be used to report a routing attribute for each expander PHY. The DISCOVER command may be used to query one or more specific PHYs, which are specified within the command. The DISCOVER LIST command may be used to query all of the PHYs associated with the switch 106. The DISCOVER and DISCOVER LIST commands may be initiated by the zone manager 118. A response to the DISCOVER or DISCOVER LIST commands may be generated by the expander 108 and sent back to the corresponding zone manager 118. The response may include an indication regarding whether the PHY or PHYs are in a linked-up state. For example, the response to the DISCOVER or DISCOVER LIST commands may include an “ATTACHED DEVICE TYPE” field for each associated PHY. A value of 0 in the ATTACHED DEVICE TYPE field may indicate no device is physically linked up to the corresponding PHY. An INQUIRY command may be used to acquire additional information about the device attached to a specific PHY.
When a DISCOVER or DISCOVER LIST command is sent to the virtual PHY of the zone manager or switch expander, the VIRTUAL PHY field of the DISCOVER response may be set to 1, which indicates that the expander 108 includes a virtual PHY. In response to the DISCOVER command, the zone manager may publish itself as both a Serial SCSI protocol (SSP) target and a SSP and Serial Management Protocol (SMP) initiator. Upon receiving an INQUIRY command, the zone manager 118 may identify itself as a Security manager device in the peripheral device type field of the INQUIRY command response. In this way, the zone manager 118 attached to one of the SAS switches 106 can discover all other zone managers 118 attached to other SAS switches 106 using SAS discovery code implemented in each of the zone managers 118. This enables the zone managers 118 to discover other zone managers 118 for establishing active and passive zone management roles. The zoning configuration maintained by the active zone manager of switch A 120 can be transferred to the passive zone manager 118 of switch B 122 and any other zone managers 118 in the DAS system 100 using WRITE BUFFER commands. The passive zone managers 118 provide increased redundancy and failover capability. Implementing the zone manager on a virtual PHY also enables the zone manager to be discovered by initiators such as storage controllers residing on the servers 102. In this way, the storage controllers can communicate directly with the SAS switch 106 zone managers 118 using in-band SAS protocol commands and functions.
Certain events occurring with the DAS system 100 may be transmitted to SAS initiators using SAS functions known as broadcasts. A “change” broadcast may be originated by one of the expanders 108 to notify the initiators that a change has occurred in the DAS system 100. For example, if a storage drive disposed in one of the storage drive bays 104 is disconnected or otherwise goes offline, the expander 108 coupled to that storage drive bay 104 may generate a BROADCAST (CHANGE) event informing the initiators that the storage drive is no longer linked up. To maintain the zone manager appearing as a true SAS device connected to the DAS system 100, a heartbeat may be established between the switch expander 108 and the zone manager 118. As an example, if the connection between the zone manager 118 and the switch expander 108 is Ethernet, the heartbeat could be a TCP packet sent from the zone manager to the switch expander 108 at regular intervals, for example, every n seconds. The link state of the virtual PHY will correlate to the TCP connection state and the heartbeat state between the expander 108 and the zone manager 118 over Ethernet. Standard SAS constructs such as BROADCAST (CHANGE) events can be propagated by the switch expander 108 to the rest of the DAS system 100 when the zone manager's state changes because of a heartbeat failure. For example, a heartbeat failure could occur due to a zone manager reset, which may take place after a firmware update and enables the new firmware to take effect.
To initiate communications with a SAS end device such as a storage drive, an initiator, such as a storage controller, may send a request, known as an OPEN ADDRESS frame, to one of the expanders 108. The OPEN ADDRESS frame includes a source address of the initiator and a target SAS address of the SAS end device. The expander routes the OPEN ADDRESS frame to the target SAS device identified by the OPEN ADDRESS frame. Upon receiving the OPEN ADDRESS frame, the target and the initiator may establish a connection. When the zone manager 118 communicates with any other SAS device in the DAS system 100, the expander 108 may set the source address of the OPEN ADDRESS frame to that of the zone manager 118.
At block 204, upon determining that the SAS command is intended for the zone manager 118, the expander 108 converts the SAS command to a data packet such as an Ethernet packet or other type of data packet in accordance with the applicable communication protocol used between the zone manager and the expander. At block 206, the expander 108 sends the data packet to the zone manager 118 over the connection coupling the expander 108 to the zone manager 118. The zone manager 118 receives and processes the SAS command. For example, if the SAS command is a WRITE BUFFER command configured to transfer the zoning configuration to the zone manager 118, the zone manager 118 may store the zoning configuration to a memory maintained within the switch 106. If the SAS command is an INQUIRY command, the zone manager 118 may send an INQUIRY response back to the requesting device identifying itself as a security manager device as described above.
At block 304, the zone manager 118 converts the SAS command to a data packet such as an Ethernet packet or other type of data packet in accordance with the applicable communication protocol used between the zone manager and the expander. At block 306, the zone manager 118 sends the data packet to the expander 108 over the connection coupling the zone manager 118 to the expander 108. The expander 108 receives the data packet and extracts the SAS command from the data packet. The expander 108 adds the SAS address of the zone manager 118 to the SAS command as the source address in the OPEN ADDRESS frame of the SAS command. The expander then routes the SAS command to the targeted device on the fabric. In an embodiment, the SAS command may target a storage controller residing one of the servers 102, a zone manager 118 of a different switch 106, another expander 108, or any other SAS device in the DAS system 100.
A processor 402 generally retrieves and executes the instructions stored in the non-transitory, computer-readable medium 400 to operate the zone manager virtual PHY in accordance with embodiments. In an embodiment, the tangible, machine-readable medium 400 can be accessed by the processor 402 over a bus 404. A first region 406 of the non-transitory, computer-readable medium 400 may include a command receiver configured to receive a SAS command from a SAS device. A second region 408 of the non-transitory, computer-readable medium 400 may include a converter configured to translate the SAS command into a data packet such as an Ethernet packet and vice versa. A third region 410 of the non-transitory, computer-readable medium 400 may include a zone manager interface configured to send the data packet to a zone manager over the communications interface. A fourth region 412 may include a zone manager core configured to create and manage the zones in the entire fabric.
Although shown as contiguous blocks, the software components can be stored in any order or configuration. For example, if the non-transitory, computer-readable medium 400 is a hard drive, the software components can be stored in non-contiguous, or even overlapping, sectors.