WO2016148712A1 - Sas expander - Google Patents

Sas expander Download PDF

Info

Publication number
WO2016148712A1
WO2016148712A1 PCT/US2015/021283 US2015021283W WO2016148712A1 WO 2016148712 A1 WO2016148712 A1 WO 2016148712A1 US 2015021283 W US2015021283 W US 2015021283W WO 2016148712 A1 WO2016148712 A1 WO 2016148712A1
Authority
WO
WIPO (PCT)
Prior art keywords
sas
reduced functionality
expander
functionality mode
sas expander
Prior art date
Application number
PCT/US2015/021283
Other languages
French (fr)
Inventor
Balaji Natrajan
Pruthviraj Herur Puttaiah
Sohail Hameed
Original Assignee
Hewlett Packard Enterprise Development Lp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Enterprise Development Lp filed Critical Hewlett Packard Enterprise Development Lp
Priority to PCT/US2015/021283 priority Critical patent/WO2016148712A1/en
Publication of WO2016148712A1 publication Critical patent/WO2016148712A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport

Definitions

  • SAS Serial attached SCSI
  • SCSI small computer system interface
  • FIG. 1 depicts an example system comprising an expander in accordance with an example of the techniques of the present application
  • FIG. 2 depicts an example flow chart of processes conducted by an expander in accordance with an example of the techniques of the present application
  • FIG. 3 depicts an example flow diagram of processes conducted by an expander in accordance with an example of the techniques of the present application.
  • FIG. 4 depicts an example block diagram showing a non-transitory, computer-readable medium that stores instructions for operating an expander in accordance with an example of the techniques of the present application.
  • SAS Serial attached SCSI
  • HBA host bus adapter
  • SCSI Small Computer System interface
  • target is generally a device that receives processing requests from initiators and sends responses to the respective initiators.
  • the target may be, for example, an end device such as a SAS hard disk drive, serial ATA (SATA) hard disk drive, solid state disk (SSD), JBOD, and/or SAS tape drive.
  • the expander is generally an intermediate device that forms part of the service delivery subsystem and facilitates communication between initiators, targets, and/or other expanders, among other functions. Stated differently, the expander is a device that functions as a switch and scales the number of targets attached to an initiator, thereby creating a larger SAS domain or fabric
  • expanders may be configured to route data and data traffic between initiators and targets. However, this traffic may be disrupted rf an expander conducts or executes a reset process. Some expanders may be configured to conduct the reset process after notifying initiators to suspend Input/Output (I/O) activity. However, this technique may not be reliable because communication errors or disruptions in I/O activity may occur. For example, SAS communication may be disrupted if SAS data packets are lost in communication or the initiators are busy conducting other tasks and fail to process the notifications in a timely manner to suspend I/O activity.
  • I/O Input/Output
  • a SAS expander that includes a reduced functionality module configured to initiate entering a reduced functionality mode of operation which includes initiation of a reset process.
  • the module is configured to compare accumulated count value of acknowledgement commands received from initiators in a SAS fabric against an expected count value of number of initiators in the SAS fabric.
  • the module is configured to, if the accumulated count value is greater than or equal to the expected count value before a time value expires, then continue with completion of the reduced functionality mode of operation including the reset process, otherwise exit the reduced functionality mode of operation including the reset process.
  • the techniques of the present application may provide SAS expanders with reduced functionality mode of operation which may improve the reliability of the reset process of SAS expanders.
  • Fig. 1 depicts an example system 100 comprising a SAS expander 102 in accordance with an example of the techniques of the present application.
  • the system 100 comprises a plurality of initiators 110 (110-1 through 110-3), targets 112 (112-1 through 112-3) and SAS expander 102.
  • the system 100 comprises a SAS fabric or network of SAS devices including expander 102, initiators 110 and targets 112 interconnected to communicate using SAS based protocols.
  • the system 100 is a generalized illustration and other elements may be added or existing elements may be removed, modified, or rearranged without departing from the scope of the present application.
  • system 100 depicted in Fig. 1 includes three initiators 110, system 100 may comprise a different number and configuration of such components.
  • system 100 depicted in Fig. 1 includes SAS expander 102
  • the system may comprise a plurality of such components.
  • the initiators 110 may be, for example, host bus adapters (HBAs), SAS controllers, or other types of data storage controllers.
  • the initiators 110 may have multiple ports for connection to internal and/or external targets. Each initiator port may have a single physical link (e.g., a narrow port) or two, four, or eight physical links (e.g., a wide port).
  • initiators 110 may comprise Serial SCSI Protocol (SSP), Serial ATA Tunneling Protocol (STP), and/or Serial Management Protocol (SMP) initiator ports.
  • SSP Serial SCSI Protocol
  • STP Serial ATA Tunneling Protocol
  • SMP Serial Management Protocol
  • the initiators 110 may generally function to originate processing requests for targets 112 and/or to receive responses from the targets.
  • initiators 110 may originate device-service and task-management requests for processing by targets 112, and receive responses for the same requests from the targets.
  • initiators 110 may be connected directly to targets 112 or indirectly via expander 102. Such connection may be made via, e.g., physical links consisting of two wire pairs connecting the transmitter of a PHY in one device (e.g., the initiator 110) to the receiver of a PHY in another device (e.g., the expander 102).
  • the targets 112 may be, for example, end devices such as storage drives such as SAS hard disk drives, serial ATA (SATA) hard disk drives, solid state disks (SSD), JBODs, or SAS tape drives.
  • the targets 112 may include logical units and target ports that receive device service and task management requests for processing and send responses for the same to initiators 110. As mentioned, depending on the implementation, targets 112 may be connected directly to initiators 110 or indirectly via expander 102.
  • the SAS expander 102 may form part of the service delivery subsystem and facilitate communication between initiators 110, targets 112, and/or other expanders 102 (not shown). More particularly, expander 102 may establish connections between initiators 110, targets 112, and/or other expanders 102 by receiving commands and data in one port and routing them to another port based on the address (e.g., SAS address) of targets 112.
  • address e.g., SAS address
  • the SAS expander 102 includes a reduced functionality module 104.
  • the module 104 may be implemented in hardware, software, or a combination of both.
  • module 104 may comprise instructions executable by a processing device (e.g., a SEP) to cause expander 102 to perform functionality discussed herein.
  • a processing device e.g., a SEP
  • module 104 may comprise a hardware equivalent such as an application specific integrated circuit (ASIC), a logic device (e.g., PLD, CPLD, FPGA. PLA. PAL, GAL, etc.), or combination thereof.
  • the reduced functionality module 104 may include functionality to control the operation of SAS expander 102.
  • reduced functionality module 104 may allow initiators 110 to update functionality of the expander, and then cause the expander to reset or reboot which may leave the ports of the expander operational. This feature may allow for non-disruptive update of the functionality of the expander.
  • the module 104 may be implemented in software and may comprise instructions executable by a processing device to cause expander 102 to perform functionality discussed herein.
  • the module 104 may include firmware to control operation of at least a portion of expander 102.
  • initiators 110 can send expander 102 a new version or of module 104 and cause the expander to load and execute the new or updated module. In this manner, the functionality of expander 102 can be upgraded or updated to include new firmware with new features, firmware to address problems with the previous version of the module and the like.
  • SAS expander 102 may be desirable to update functionality of SAS expander 102 while reducing the impact on SAS fabric.
  • the expander 102 may be configured to support the expander reduced functionality mode and to allow initiators 110 to update functionality of the expander. This feature may help provide for non-disruptive update of functionality of expander 102 and other devices.
  • reduced functionality module 104 may be configured to initiate entering a reduced functionality mode of operation which includes initiation of a reset process.
  • the module 104 is configured to compare accumulated count value of acknowledgement commands received from initiators 110 in a SAS fabric against an expected count value of number of initiators in the SAS fabric.
  • the module 104 is configured to, if the accumulated count value is greater than or equal to the expected count value before a time value expires, continue with completion of the reduced functionality mode of operation including the reset process, otherwise exit the reduced functionality mode of operation including the reset process.
  • reduced functionality module 104 of SAS expander 102 may be configured to initiate entering a reduced functionality mode of operation which includes initiation of a reset process.
  • SAS expander 102 may send a SAS BROADCAST or BROADCAST (EXPANDER) primitive or other message or command over the SAS fabric to indicate that the SAS expander has entered the reduced functionality mode of operation.
  • SAS expander 102 upon entering the reduced functionality mode of operation, responds with a message or command to a SAS REPORT GENERAL primitive or message from initiators 110 indicating that the SAS expander has entered the reduced functionality mode of operation.
  • SAS expander 102 initiates entering the reduced functionality mode of operation in response to a reset command, such as SAS EXPANDER RESET (Expander Reset) or ACTIVATE FIRMWARE IMAGE command, from an initiator in the SAS fabric to perform a reset operation.
  • a reset command such as SAS EXPANDER RESET (Expander Reset) or ACTIVATE FIRMWARE IMAGE command
  • SAS expander 102 may perform a reset operation to activate a recently stored firmware that was received by initiator 110 and now stored at the SAS expander.
  • the reduced functionality module 104 of SAS expander 102 may be configured to compare an accumulated count value of acknowledgement commands received from initiators 110 in SAS fabric against an expected count value of number of initiators in the SAS fabric.
  • the accumulated count may represent a count of the total number of acknowledgement commands received by SAS expander 102 from initiators 110 in SAS fabric
  • the expected count value may represent the number of initiators in the SAS fabric that SAS expander 102 expects is configured or as reported as part of the SAS fabric.
  • the expected count value of number of initiators SAS fabric represents the number of initiators 110 of the SAS fabric.
  • SAS expander 102 upon entering the reduced functionality mode of operation, may respond to the acknowledgement commands from initiators 110.
  • the acknowledgement commands may include initiator or vendor specific SMP command acknowledge commands such as REDUCED FUNCTIONALITY ACK.
  • the reduced functionality module 104 of SAS expander 102 may be configured to check whether the accumulated count value is equal to or greater than the expected count value before a time value expires.
  • the time value can be any parameter which can be used to track or count the amount of time an expander is to take to perform the function, such as reset process, under the reduced functionality mode.
  • SAS expander 102 may set a time value such as Time to Reduce Functionality (TTRF) value or parameter to indicate the amount of time before the SAS expander is to perform the functions under the reduced functionality mode.
  • TTRF Time to Reduce Functionality
  • SAS expander 102 may set a time value such as Max Reduce Functionality Time (MaxRF) which may indicate the maximum amount of time that the SAS expander is to take to perform the functions under the reduced functionality mode. Therefore, if the accumulated count value is equal to or greater than the expected count value before the time value expires, then SAS expander 102 continues with completion of the reduced functionality mode of operation including completion of the reset process. In other words, this condition indicates that SAS expander 102 was able to receive acknowledgment from the expected number initiators within the time period and therefore it may continue with the process. On other hand, if SAS expander 102 was not able to receive acknowledgment commands from the expected number initiators within the time period, then this condition suggests some type of error and therefore it may not continue with the process. In this case, SAS expander 102 may exit or terminate the reduced functionality mode of operation without completing the reset process.
  • MaxRF Max Reduce Functionality Time
  • reduced functionality module 104 of SAS expander 102 may be configured to continue with completion of the reduced functionality mode of operation including the reset process.
  • SAS expander 102 sends a SAS BROADCAST or BROADCAST (CHANGE) primitive or similar message or command over the SAS fabric to indicate that the SAS expander has successfully completed the reduced functionality mode of operation.
  • CHANGE SAS BROADCAST or BROADCAST
  • reduced functionality module 104 of SAS expander 102 may be configured to exit the reduced functionality mode of operation including the reset process.
  • SAS expander 102 sends a SAS BROADCAST or BROADCAST (CHANGE) primitive or similar message or command over the SAS fabric to indicate that the SAS expander unsuccessfully completed the reduced functionality mode of operation.
  • CHANGE SAS BROADCAST or BROADCAST
  • the techniques of the present application may provide SAS expanders with reduced functionality mode of operation which may improve the reliability of the reset process of SAS expanders.
  • system 100 of Fig. 1 shows an example SAS fabric and it should be understood that other configurations may be employed to practice the techniques of the present application.
  • system 100 can be configured to include a switch- expander device (which itself can include expanders) coupled between initiators and other expanders which in turn are coupled to targets.
  • the components of system 100 can be integrated in one enclosure or a plurality of enclosures located in one location or distributed over remote locations and the like.
  • Fig. 2 depicts an example flow chart 200 of a process conducted by an expander in accordance with an example of the techniques of the present application.
  • process 200 is conducted by reduced functionality module 104 which is associated with SAS expander 102.
  • reduced functionality module 104 which is associated with SAS expander 102.
  • the process depicted in Fig. 2 represent generalized illustrations, and that other processes may be added or existing processes may be removed, modified, or rearranged without departing from the scope and spirit of the present application.
  • the processes may represent instructions stored on a processor-readable storage medium that, when executed, may cause a processor to respond, to perform actions, to change states, and/or to make decisions.
  • the processes may represent functions and/or actions performed by functionally equivalent circuits like analog circuits, digital signal processing circuits, application specific integrated circuits (ASICs), or other hardware components associated with an expander.
  • ASICs application specific integrated circuits
  • the flow charts are not intended to limit the implementation of the present application, but rather the flow charts illustrate functional information to design/fabricate circuits, generate software, or use a combination of hardware and software to perform the illustrated processes.
  • the process 200 may begin at block 202, where SAS expander 102 initiates entering a reduced functionality mode of operation which includes initiation of a reset process.
  • SAS expander 102 upon entering the reduced functionality mode of operation, SAS expander 102 sends a SAS BROADCAST or BROADCAST (EXPANDER) primitive or similar message or command over the SAS fabric to indicate that the SAS expander has entered the reduced functionality mode of operation.
  • SAS BROADCAST or BROADCAST EXPANDER
  • SAS expander 102 upon entering the reduced functionality mode of operation, responds to a SAS REPORT GENERAL primitive from initiators 110 indicating that the SAS expander has entered the reduced functionality mode of operation, in one example, SAS expander 102 initiates entering the reduced functionality mode of operation in response to a reset command from an initiator in the SAS fabric to perform a particular function or task.
  • the task may include having expander 102 perform a reset process to activate or execute a recently received firmware from an initiator 110 which as stored at the SAS expander. Processing then proceeds to block 204.
  • SAS expander 102 compares accumulated count value of acknowledgement commands received from initiators 110 in SAS fabric against an expected count value of number of initiators in the SAS fabric. In one example, SAS expander 102, upon entering the reduced functionality mode of operation, responds to the acknowledgement commands from initiators 110 which may include a vendor specific SMP command REDUCED FUNCTIONALITY ACK. Processing then proceeds to block 206.
  • SAS expander 102 checks whether the accumulated count value is equal to or greater than the expected count value before a time value expires. That is, if the accumulated count value is equal to or greater than the expected count value before the time value expires, then processing proceeds to block 210 where SAS expander 102 continues with completion of the reduced functionality mode of operation including the reset process. In other words, this condition indicates that SAS expander 102 was able to receive acknowledgment from the expected number initiators within the time period and therefore it may continue with the process. In one example, this is a condition which indicates I/O activity over the SAS fabric has stopped.
  • SAS expander 102 exits the reduced functionality mode of operation including the reset process.
  • SAS expander 102 sends a SAS BROADCAST or BROADCAST (CHANGE) primitive over the SAS fabric to indicate that the SAS expander has unsuccessfully completed the reduced functionality mode of operation. Processing then proceeds to the EXIT block or back to block 202 to wait for another reset command.
  • CHANGE SAS BROADCAST or BROADCAST
  • SAS expander 102 continues with completion of the reduced functionality mode of operation including the reset process.
  • SAS expander 102 sends a SAS BROADCAST or BROADCAST (CHANGE) primitive over the SAS fabric to indicate that the SAS expander has successfully completed the reduced functionality mode of operation. Processing then proceeds to the EXIT block or back to block 202 to wait for another reset command.
  • CHANGE SAS BROADCAST
  • the techniques of present application may provide SAS expanders with reduced functionality mode of operation which may improve the reliability of the reset process of SAS expanders.
  • process 200 of Fig. 2 shows an example process and it should be understood that other configurations can be employed to practice the techniques of the present application.
  • process 200 may be configured to communicate with a plurality of expanders.
  • Fig. 3 depicts an example flow diagram 300 of processes conducted by SAS expander in accordance with an example of the techniques of the present application.
  • a SAS fabric is configured to include SAS expander 302 coupled to communicate with SAS initiator 304 which may include a plurality of initiators.
  • SAS expander 302 includes reduced functionality module 104 to implement the functionality described herein.
  • SAS initiator 304 sends a reset command to SAS expander 302.
  • the reset command may be RESET command as part of the SAS protocol for communication over a SAS fabric.
  • SAS expander 302 is to initiate entering a reduced functionality mode of operation in response to the reset command from SAS initiator 304 to perform some specific function or task.
  • the specific function may include to activate a recently received firmware from initiator 304 which is now storage at the SAS expander, it may be assumed that the firmware was previously sent by SAS initiator 304 to SAS expander 302 and the SAS expander loaded it in memory of the expander and is now waiting to activate or execute the newly received and stored firmware. Processing proceeds to block 308.
  • SAS expander 302 responds to the reset command or request from SAS initiator 304 with generation of SAS BROADCAST primitives to SAS initiator 304.
  • the reset request or command causes SAS expander 302 to initiate entering the reduced functionality mode of operation.
  • the SAS BROADCAST primitive indicates that SAS expander 302 has entered the reduced functionality mode of operation.
  • SAS expander 302 sends out a SAS BROADCAST (EXPANDER) primitive to all the devices such as initiators, expanders and targets in a SAS fabric.
  • EXPANDER SAS BROADCAST
  • a BROADCAST primitive propagates over the entire SAS fabric with the help of other expanders.
  • SAS initiator 304 generates or sends REPORT GENERAL primitives to ail the expanders of a SAS fabric.
  • SAS initiator 304 generates or sends the REPORT GENERAL primitive as a result of receiving BRAODCAST (EXPANDER) from SAS expander 302 at block 308 above. Processing proceeds to block 312.
  • SAS expander 302 responds back to receipt of REPORT GENERAL primitive to indicate that it is entering the reduced functionality mode of operation, in one example, SAS expander 302 may respond with a command that includes REDUCED FUNCTIONALITY (RF) bit being set to a value of "1" to indicate that it is entering the reduced functionality mode of operation, in one example, SAS expander 302 sets the RF bit to indicate that the expander is in the middle of reduced functionality mode of operation and is about to be reset or has been reset.
  • the SAS expander 302 sends the response with information such as the RF but and other fields such as TTRF being set to a particular value, such as 5 seconds, as well as MaxRF being set to a value such as 20 seconds.
  • SAS expander 302 may set a time value such as TTRF field or parameter to indicate the amount of time before the SAS expander is to perform the functions under the reduced functionality mode, as indicated at block 316.
  • SAS expander 102 may set a time value such as MaxRF which may indicate the maximum amount of time that the SAS expander is to take to perform the functions under the reduced functionality mode, as indicated at block 322.
  • SAS expander 302 continues with completion of the reduced functionality mode of operation including the reset process, in other words, this condition indicates that SAS expander 102 was able to receive acknowledgment from the expected number initiators within the time period and therefore it may continue with the process, in this case, initiator 304 freezes IO over SAS fabric and then sends out the acknowledgement commands, as indicated at block 318.
  • this condition suggests some type of error and therefore it may not continue with the process. In this case, SAS expander 302 exits the reduced functionality mode of operation including the reset process.
  • SAS initiator 304 and any other initiators of SAS fabric, generates or sends acknowledgement commands to SAS expander 302.
  • the acknowledge commands comprise a vendor specific SMP command REDUCED FUNCTIONALITY ACK which is sent to the subject expander which is SAS expander 302.
  • SAS expander 302 expects to receive the acknowledgement commands from all of the initiators 304 in SAS fabric before it begins the reset process.
  • SAS expander 302 in response to each of these commands received by the SAS expander, sends back a normal OK message or response to those commands back to initiators) 304.
  • SAS expander 302 determines that time value TTRF expires before the accumulated count value meets or reaches the expected count value, then SAS expander 302 (subject expander) exits or aborts the reset process, and exits or comes out of the reduced functionality mode without performing or executing the actual reset process. In this case, this condition is treated as an error condition.
  • the SAS expander 302 then generates or sends out the BROADCAST (CHANGE) primitives over SAS fabric. In one example, SAS expander 302 may clear an RF it has for internal purposes. Processing then proceeds to block 328.
  • CHANGE BROADCAST
  • SAS expander 302 determines that accumulated count value is greater than or equal to (reaches or exceeds) the expected count value before the time value TTRF expires, then this condition indicates that ail I/O activity has been stopped, and the SAS expander 302 proceeds with the reset process.
  • SAS expander 302 performs the reset process (resets itself) and comes back online to allow communication over SAS fabric. Processing proceeds to block 324.
  • SAS expander 302 sends or generates BROADCAST (CHANGE) primitives over the SAS fabric to indicate that the SAS expander has successfully completed the reduced functionality mode of operation. In one example, this indicates that SAS expander 302 completed the reset process and is now able to communicate with other devices such as initiator 304 over SAS fabric. Processing proceeds to block 326.
  • CHANGE BROADCAST
  • SAS initiator 304 as well as other initiators, of SAS fabric send or generate REPORT GENERAL commands or similar commands or message over the SAS fabric to acknowledge the BROADCAST (CHANGE) primitives from SAS expander 302 from block 324. Processing proceeds to block 328.
  • CHANGE BROADCAST
  • SAS expander 302 responds to the REPORT GENERAL primitives by sending or generating acknowledgment messages including clearing the RF bit to a value of "0" to indicate completion or exit of the reduced functionality mode of operation including the reset process.
  • SAS initiator 304, and any other initiators, of SAS fabric recognize and acknowledge that SAS expander 302 has completed or exited the reduced functionality mode of operation including the reset process, in one example, this indicates that SAS expander 302 resumes operating in a normal process including communication of commands and data between initiators and targets over SAS fabric.
  • the techniques of the present application may provide SAS expanders with reduced functionality mode of operation which may improve the reliability of the reset process of SAS expanders.
  • process 300 of Fig. 3 shows an example process and it should be understood that other configurations can be employed to practice the techniques of the present application.
  • process 300 may be configured to communicate with a plurality of expanders.
  • Fig. 4 is an example block diagram showing a non-transitory, computer- readable medium that stores code for operating an expander in accordance with an example of the techniques of the present application.
  • the non-transitory, computer- readable medium is generally referred to by the reference number 400 and may be included in module 104 described in relation to Fig. 1.
  • the non-transitory, computer- readable medium 400 may correspond to any typical storage device that stores computer-implemented instructions, such as programming code or the like.
  • the non-transitory, computer-readable medium 400 may include one or more of a non-volatile memory, a volatile memory, and/or one or more storage devices.
  • non-volatile memory examples include, but are not limited to, electrically erasable programmable read only memory (EEPROM) and read only memory (ROM).
  • volatile memory examples include, but are not limited to, static random access memory (SRAM), and dynamic random access memory (DRAM).
  • SRAM static random access memory
  • DRAM dynamic random access memory
  • storage devices include, but are not limited to, hard disk drives, compact disc drives, digital versatile disc drives, optical drives, and flash memory devices.
  • a processor 402 generally retrieves and executes the instructions stored in the non-transitory, computer-readable medium 400 to operate an expander in accordance with an example.
  • 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 module 104 functionality as described herein.
  • the software components can be stored in any order or configuration.
  • the non-transitory, computer- readable medium 400 is a hard drive
  • the software components can be stored in noncontiguous, or even overlapping, sectors

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Systems (AREA)

Abstract

In example, techniques that include to compare accumulated count value of acknowledgement commands received from initiators in a SAS fabric against an expected count value of number of initiators in the SAS fabric, if the accumulated count value is greater than or equal to the expected count value before a time value expires, then continue with completion of a reduced functionality mode of operation including a reset process, otherwise exit the reduced functionality mode of operation including the reset process.

Description

SAS EXPANDER
BACKGROUND
[0001] Serial attached SCSI (SAS) is generally a point-to-point architecture that transfers data to and from small computer system interface (SCSI) storage devices by using serial communication.
BRIEF DESCRIPTION OF THE DRAWINGS
[0002] Examples are described in the following detailed description and in reference to the drawings, in which:
[0003] Fig. 1 depicts an example system comprising an expander in accordance with an example of the techniques of the present application;
[0004] Fig. 2 depicts an example flow chart of processes conducted by an expander in accordance with an example of the techniques of the present application;
[0005] Fig. 3 depicts an example flow diagram of processes conducted by an expander in accordance with an example of the techniques of the present application; and
[0006] Fig. 4 depicts an example block diagram showing a non-transitory, computer-readable medium that stores instructions for operating an expander in accordance with an example of the techniques of the present application.
DETAILED DESCRIPTION
[0007] Serial attached SCSI (SAS) is generally a point-to-point architecture that transfers data to and from small computer system interface (SCSI) storage devices by using serial communication. In a SAS storage environment or SAS fabric, there are typically three types of SAS devices: initiator devices, targets, and expanders. The initiator is generally a device that originates processing requests for a target and receives responses from the target. The initiator may be, for example, a host bus adapter (HBA), SAS controller, or other data storage controllers. The target is generally a device that receives processing requests from initiators and sends responses to the respective initiators. The target may be, for example, an end device such as a SAS hard disk drive, serial ATA (SATA) hard disk drive, solid state disk (SSD), JBOD, and/or SAS tape drive. The expander is generally an intermediate device that forms part of the service delivery subsystem and facilitates communication between initiators, targets, and/or other expanders, among other functions. Stated differently, the expander is a device that functions as a switch and scales the number of targets attached to an initiator, thereby creating a larger SAS domain or fabric
[0008] In some examples, in a SAS fabric, expanders may be configured to route data and data traffic between initiators and targets. However, this traffic may be disrupted rf an expander conducts or executes a reset process. Some expanders may be configured to conduct the reset process after notifying initiators to suspend Input/Output (I/O) activity. However, this technique may not be reliable because communication errors or disruptions in I/O activity may occur. For example, SAS communication may be disrupted if SAS data packets are lost in communication or the initiators are busy conducting other tasks and fail to process the notifications in a timely manner to suspend I/O activity.
[0009] In some examples of the present application, disclosed are techniques to provide expanders with reduced functionality mode of operation which may improve the reliability of the reset process of SAS expanders.
[00010] In one aspect of the present application, disclosed is a SAS expander that includes a reduced functionality module configured to initiate entering a reduced functionality mode of operation which includes initiation of a reset process. The module is configured to compare accumulated count value of acknowledgement commands received from initiators in a SAS fabric against an expected count value of number of initiators in the SAS fabric. The module is configured to, if the accumulated count value is greater than or equal to the expected count value before a time value expires, then continue with completion of the reduced functionality mode of operation including the reset process, otherwise exit the reduced functionality mode of operation including the reset process.
[00011] In this manner, in some examples, the techniques of the present application may provide SAS expanders with reduced functionality mode of operation which may improve the reliability of the reset process of SAS expanders.
[00012] Fig. 1 depicts an example system 100 comprising a SAS expander 102 in accordance with an example of the techniques of the present application. The system 100 comprises a plurality of initiators 110 (110-1 through 110-3), targets 112 (112-1 through 112-3) and SAS expander 102. The system 100 comprises a SAS fabric or network of SAS devices including expander 102, initiators 110 and targets 112 interconnected to communicate using SAS based protocols. The system 100 is a generalized illustration and other elements may be added or existing elements may be removed, modified, or rearranged without departing from the scope of the present application. For example, while system 100 depicted in Fig. 1 includes three initiators 110, system 100 may comprise a different number and configuration of such components. Likewise, while system 100 depicted in Fig. 1 includes SAS expander 102, the system may comprise a plurality of such components.
[00013] The initiators 110 may be, for example, host bus adapters (HBAs), SAS controllers, or other types of data storage controllers. The initiators 110 may have multiple ports for connection to internal and/or external targets. Each initiator port may have a single physical link (e.g., a narrow port) or two, four, or eight physical links (e.g., a wide port). In a SAS domain, initiators 110 may comprise Serial SCSI Protocol (SSP), Serial ATA Tunneling Protocol (STP), and/or Serial Management Protocol (SMP) initiator ports. The initiators 110 may generally function to originate processing requests for targets 112 and/or to receive responses from the targets. More specifically, initiators 110 may originate device-service and task-management requests for processing by targets 112, and receive responses for the same requests from the targets. Depending on the implementation, initiators 110 may be connected directly to targets 112 or indirectly via expander 102. Such connection may be made via, e.g., physical links consisting of two wire pairs connecting the transmitter of a PHY in one device (e.g., the initiator 110) to the receiver of a PHY in another device (e.g., the expander 102).
[00014] The targets 112 may be, for example, end devices such as storage drives such as SAS hard disk drives, serial ATA (SATA) hard disk drives, solid state disks (SSD), JBODs, or SAS tape drives. The targets 112 may include logical units and target ports that receive device service and task management requests for processing and send responses for the same to initiators 110. As mentioned, depending on the implementation, targets 112 may be connected directly to initiators 110 or indirectly via expander 102.
[00015] The SAS expander 102 may form part of the service delivery subsystem and facilitate communication between initiators 110, targets 112, and/or other expanders 102 (not shown). More particularly, expander 102 may establish connections between initiators 110, targets 112, and/or other expanders 102 by receiving commands and data in one port and routing them to another port based on the address (e.g., SAS address) of targets 112.
[00016] The SAS expander 102 includes a reduced functionality module 104. The module 104 may be implemented in hardware, software, or a combination of both. For example, module 104 may comprise instructions executable by a processing device (e.g., a SEP) to cause expander 102 to perform functionality discussed herein. A!ternatively or in addition, module 104 may comprise a hardware equivalent such as an application specific integrated circuit (ASIC), a logic device (e.g., PLD, CPLD, FPGA. PLA. PAL, GAL, etc.), or combination thereof.
[00017] The reduced functionality module 104 may include functionality to control the operation of SAS expander 102. In one example, reduced functionality module 104 may allow initiators 110 to update functionality of the expander, and then cause the expander to reset or reboot which may leave the ports of the expander operational. This feature may allow for non-disruptive update of the functionality of the expander. The module 104 may be implemented in software and may comprise instructions executable by a processing device to cause expander 102 to perform functionality discussed herein. The module 104 may include firmware to control operation of at least a portion of expander 102. In one example, initiators 110 can send expander 102 a new version or of module 104 and cause the expander to load and execute the new or updated module. In this manner, the functionality of expander 102 can be upgraded or updated to include new firmware with new features, firmware to address problems with the previous version of the module and the like.
[00018] As explained above, there may be instances where it may be desirable to update functionality of SAS expander 102 while reducing the impact on SAS fabric. For example, it may be desirable to update functionality of expander 102 to include new firmware to implement new features, new firmware to fix problems with the previous version of the module and the like. The expander 102 may be configured to support the expander reduced functionality mode and to allow initiators 110 to update functionality of the expander. This feature may help provide for non-disruptive update of functionality of expander 102 and other devices.
[00019] In one aspect of the present application, reduced functionality module 104 may be configured to initiate entering a reduced functionality mode of operation which includes initiation of a reset process. The module 104 is configured to compare accumulated count value of acknowledgement commands received from initiators 110 in a SAS fabric against an expected count value of number of initiators in the SAS fabric. The module 104 is configured to, if the accumulated count value is greater than or equal to the expected count value before a time value expires, continue with completion of the reduced functionality mode of operation including the reset process, otherwise exit the reduced functionality mode of operation including the reset process.
[00020] In operation, in some examples, reduced functionality module 104 of SAS expander 102 may be configured to initiate entering a reduced functionality mode of operation which includes initiation of a reset process. In one example, upon entering the reduced functionality mode of operation, SAS expander 102 may send a SAS BROADCAST or BROADCAST (EXPANDER) primitive or other message or command over the SAS fabric to indicate that the SAS expander has entered the reduced functionality mode of operation. In another example, SAS expander 102, upon entering the reduced functionality mode of operation, responds with a message or command to a SAS REPORT GENERAL primitive or message from initiators 110 indicating that the SAS expander has entered the reduced functionality mode of operation. In one example, SAS expander 102 initiates entering the reduced functionality mode of operation in response to a reset command, such as SAS EXPANDER RESET (Expander Reset) or ACTIVATE FIRMWARE IMAGE command, from an initiator in the SAS fabric to perform a reset operation. For example, SAS expander 102 may perform a reset operation to activate a recently stored firmware that was received by initiator 110 and now stored at the SAS expander.
[00021] The reduced functionality module 104 of SAS expander 102 may be configured to compare an accumulated count value of acknowledgement commands received from initiators 110 in SAS fabric against an expected count value of number of initiators in the SAS fabric. In one example, the accumulated count may represent a count of the total number of acknowledgement commands received by SAS expander 102 from initiators 110 in SAS fabric, in one example, the expected count value may represent the number of initiators in the SAS fabric that SAS expander 102 expects is configured or as reported as part of the SAS fabric. The expected count value of number of initiators SAS fabric represents the number of initiators 110 of the SAS fabric. In another example, SAS expander 102, upon entering the reduced functionality mode of operation, may respond to the acknowledgement commands from initiators 110. in one example, the acknowledgement commands may include initiator or vendor specific SMP command acknowledge commands such as REDUCED FUNCTIONALITY ACK.
[00022] The reduced functionality module 104 of SAS expander 102 may be configured to check whether the accumulated count value is equal to or greater than the expected count value before a time value expires. In one example, the time value can be any parameter which can be used to track or count the amount of time an expander is to take to perform the function, such as reset process, under the reduced functionality mode. In one example, SAS expander 102 may set a time value such as Time to Reduce Functionality (TTRF) value or parameter to indicate the amount of time before the SAS expander is to perform the functions under the reduced functionality mode. In another example, SAS expander 102 may set a time value such as Max Reduce Functionality Time (MaxRF) which may indicate the maximum amount of time that the SAS expander is to take to perform the functions under the reduced functionality mode. Therefore, if the accumulated count value is equal to or greater than the expected count value before the time value expires, then SAS expander 102 continues with completion of the reduced functionality mode of operation including completion of the reset process. In other words, this condition indicates that SAS expander 102 was able to receive acknowledgment from the expected number initiators within the time period and therefore it may continue with the process. On other hand, if SAS expander 102 was not able to receive acknowledgment commands from the expected number initiators within the time period, then this condition suggests some type of error and therefore it may not continue with the process. In this case, SAS expander 102 may exit or terminate the reduced functionality mode of operation without completing the reset process.
[00023] In one example, reduced functionality module 104 of SAS expander 102 may be configured to continue with completion of the reduced functionality mode of operation including the reset process. In one example, wherein upon completion of the reduced functionality mode of operation, SAS expander 102 sends a SAS BROADCAST or BROADCAST (CHANGE) primitive or similar message or command over the SAS fabric to indicate that the SAS expander has successfully completed the reduced functionality mode of operation.
[00024] In one example, reduced functionality module 104 of SAS expander 102 may be configured to exit the reduced functionality mode of operation including the reset process. In one example, wherein upon exit or termination of the reduced functionality mode of operation, SAS expander 102 sends a SAS BROADCAST or BROADCAST (CHANGE) primitive or similar message or command over the SAS fabric to indicate that the SAS expander unsuccessfully completed the reduced functionality mode of operation.
[00025] In this manner, in some examples, the techniques of the present application may provide SAS expanders with reduced functionality mode of operation which may improve the reliability of the reset process of SAS expanders.
[00026] The system 100 of Fig. 1 shows an example SAS fabric and it should be understood that other configurations may be employed to practice the techniques of the present application. For example, system 100 can be configured to include a switch- expander device (which itself can include expanders) coupled between initiators and other expanders which in turn are coupled to targets. In another example, the components of system 100 can be integrated in one enclosure or a plurality of enclosures located in one location or distributed over remote locations and the like.
[00027] Fig. 2 depicts an example flow chart 200 of a process conducted by an expander in accordance with an example of the techniques of the present application. In some implementations, process 200 is conducted by reduced functionality module 104 which is associated with SAS expander 102. It should be understood the process depicted in Fig. 2 represent generalized illustrations, and that other processes may be added or existing processes may be removed, modified, or rearranged without departing from the scope and spirit of the present application. In addition, it should be understood that the processes may represent instructions stored on a processor-readable storage medium that, when executed, may cause a processor to respond, to perform actions, to change states, and/or to make decisions. Alternatively, the processes may represent functions and/or actions performed by functionally equivalent circuits like analog circuits, digital signal processing circuits, application specific integrated circuits (ASICs), or other hardware components associated with an expander. Furthermore, the flow charts are not intended to limit the implementation of the present application, but rather the flow charts illustrate functional information to design/fabricate circuits, generate software, or use a combination of hardware and software to perform the illustrated processes.
[00028] The process 200 may begin at block 202, where SAS expander 102 initiates entering a reduced functionality mode of operation which includes initiation of a reset process. In one example, upon entering the reduced functionality mode of operation, SAS expander 102 sends a SAS BROADCAST or BROADCAST (EXPANDER) primitive or similar message or command over the SAS fabric to indicate that the SAS expander has entered the reduced functionality mode of operation. In another example, SAS expander 102, upon entering the reduced functionality mode of operation, responds to a SAS REPORT GENERAL primitive from initiators 110 indicating that the SAS expander has entered the reduced functionality mode of operation, in one example, SAS expander 102 initiates entering the reduced functionality mode of operation in response to a reset command from an initiator in the SAS fabric to perform a particular function or task. In one example, the task may include having expander 102 perform a reset process to activate or execute a recently received firmware from an initiator 110 which as stored at the SAS expander. Processing then proceeds to block 204.
[00029] At block 204, SAS expander 102 compares accumulated count value of acknowledgement commands received from initiators 110 in SAS fabric against an expected count value of number of initiators in the SAS fabric. In one example, SAS expander 102, upon entering the reduced functionality mode of operation, responds to the acknowledgement commands from initiators 110 which may include a vendor specific SMP command REDUCED FUNCTIONALITY ACK. Processing then proceeds to block 206.
[00030] At block 206, SAS expander 102 checks whether the accumulated count value is equal to or greater than the expected count value before a time value expires. That is, if the accumulated count value is equal to or greater than the expected count value before the time value expires, then processing proceeds to block 210 where SAS expander 102 continues with completion of the reduced functionality mode of operation including the reset process. In other words, this condition indicates that SAS expander 102 was able to receive acknowledgment from the expected number initiators within the time period and therefore it may continue with the process. In one example, this is a condition which indicates I/O activity over the SAS fabric has stopped. On other hand, if SAS expander 102 was not able to receive acknowledgment commands from the expected number initiators within the time value or period, then this condition suggests some type of error and therefore it may not continue with the process. In this case, processing proceeds to block 208 where SAS expander 102 exits the reduced functionality mode of operation including the reset process.
[00031] At block 208, SAS expander 102 exits the reduced functionality mode of operation including the reset process. In one example, wherein upon exit of the reduced functionality mode of operation, SAS expander 102 sends a SAS BROADCAST or BROADCAST (CHANGE) primitive over the SAS fabric to indicate that the SAS expander has unsuccessfully completed the reduced functionality mode of operation. Processing then proceeds to the EXIT block or back to block 202 to wait for another reset command.
[00032] At block 210, SAS expander 102 continues with completion of the reduced functionality mode of operation including the reset process. In one example, wherein upon completion of the reduced functionality mode of operation, SAS expander 102 sends a SAS BROADCAST or BROADCAST (CHANGE) primitive over the SAS fabric to indicate that the SAS expander has successfully completed the reduced functionality mode of operation. Processing then proceeds to the EXIT block or back to block 202 to wait for another reset command. [00033] In this manner, in some examples, the techniques of present application may provide SAS expanders with reduced functionality mode of operation which may improve the reliability of the reset process of SAS expanders.
[00034] The process 200 of Fig. 2 shows an example process and it should be understood that other configurations can be employed to practice the techniques of the present application. For example, process 200 may be configured to communicate with a plurality of expanders.
[00035] Fig. 3 depicts an example flow diagram 300 of processes conducted by SAS expander in accordance with an example of the techniques of the present application. To illustrate operation, it may be assumed that a SAS fabric is configured to include SAS expander 302 coupled to communicate with SAS initiator 304 which may include a plurality of initiators. It may be assumed that SAS expander 302 includes reduced functionality module 104 to implement the functionality described herein.
[00036] At block 306, SAS initiator 304 sends a reset command to SAS expander 302. In one example, the reset command may be RESET command as part of the SAS protocol for communication over a SAS fabric. In one example, SAS expander 302 is to initiate entering a reduced functionality mode of operation in response to the reset command from SAS initiator 304 to perform some specific function or task. In one example, the specific function may include to activate a recently received firmware from initiator 304 which is now storage at the SAS expander, it may be assumed that the firmware was previously sent by SAS initiator 304 to SAS expander 302 and the SAS expander loaded it in memory of the expander and is now waiting to activate or execute the newly received and stored firmware. Processing proceeds to block 308.
[00037] At block 308, SAS expander 302 responds to the reset command or request from SAS initiator 304 with generation of SAS BROADCAST primitives to SAS initiator 304. In one example, the reset request or command causes SAS expander 302 to initiate entering the reduced functionality mode of operation. The SAS BROADCAST primitive indicates that SAS expander 302 has entered the reduced functionality mode of operation. In one example, SAS expander 302 sends out a SAS BROADCAST (EXPANDER) primitive to all the devices such as initiators, expanders and targets in a SAS fabric. A BROADCAST primitive propagates over the entire SAS fabric with the help of other expanders. Every expander that receives a BROADCAST primitive replicates it to ail of its PHYs except the one it received it from. This results in the BROADCAST primitive reaching all the initiators in the fabric. Processing proceeds to block 310. [00038] At block 310, SAS initiator 304 generates or sends REPORT GENERAL primitives to ail the expanders of a SAS fabric. In one example, SAS initiator 304 generates or sends the REPORT GENERAL primitive as a result of receiving BRAODCAST (EXPANDER) from SAS expander 302 at block 308 above. Processing proceeds to block 312.
[00039] At block 312, SAS expander 302 responds back to receipt of REPORT GENERAL primitive to indicate that it is entering the reduced functionality mode of operation, in one example, SAS expander 302 may respond with a command that includes REDUCED FUNCTIONALITY (RF) bit being set to a value of "1" to indicate that it is entering the reduced functionality mode of operation, in one example, SAS expander 302 sets the RF bit to indicate that the expander is in the middle of reduced functionality mode of operation and is about to be reset or has been reset. The SAS expander 302 sends the response with information such as the RF but and other fields such as TTRF being set to a particular value, such as 5 seconds, as well as MaxRF being set to a value such as 20 seconds.
[00040] As explained above, SAS expander 302 may set a time value such as TTRF field or parameter to indicate the amount of time before the SAS expander is to perform the functions under the reduced functionality mode, as indicated at block 316. In another example, SAS expander 102 may set a time value such as MaxRF which may indicate the maximum amount of time that the SAS expander is to take to perform the functions under the reduced functionality mode, as indicated at block 322. Therefore, if the accumulated count value is equal to or greater than the expected count value before the time value expires, then SAS expander 302 continues with completion of the reduced functionality mode of operation including the reset process, in other words, this condition indicates that SAS expander 102 was able to receive acknowledgment from the expected number initiators within the time period and therefore it may continue with the process, in this case, initiator 304 freezes IO over SAS fabric and then sends out the acknowledgement commands, as indicated at block 318. On other hand, if SAS expander 302 was not able to receive acknowledgment commands from the expected number initiators within the time period, then this condition suggests some type of error and therefore it may not continue with the process. In this case, SAS expander 302 exits the reduced functionality mode of operation including the reset process.
[00041] At block 314, SAS initiator 304, and any other initiators of SAS fabric, generates or sends acknowledgement commands to SAS expander 302. In one example, the acknowledge commands comprise a vendor specific SMP command REDUCED FUNCTIONALITY ACK which is sent to the subject expander which is SAS expander 302. As indicated at block 320, SAS expander 302 expects to receive the acknowledgement commands from all of the initiators 304 in SAS fabric before it begins the reset process. In one example, SAS expander 302, in response to each of these commands received by the SAS expander, sends back a normal OK message or response to those commands back to initiators) 304.
[00042] If SAS expander 302 determines that time value TTRF expires before the accumulated count value meets or reaches the expected count value, then SAS expander 302 (subject expander) exits or aborts the reset process, and exits or comes out of the reduced functionality mode without performing or executing the actual reset process. In this case, this condition is treated as an error condition. The SAS expander 302 then generates or sends out the BROADCAST (CHANGE) primitives over SAS fabric. In one example, SAS expander 302 may clear an RF it has for internal purposes. Processing then proceeds to block 328.
[00043] On the other hand, if SAS expander 302 determines that accumulated count value is greater than or equal to (reaches or exceeds) the expected count value before the time value TTRF expires, then this condition indicates that ail I/O activity has been stopped, and the SAS expander 302 proceeds with the reset process. In this case, the subject expander (SAS expander 302) performs the reset process (resets itself) and comes back online to allow communication over SAS fabric. Processing proceeds to block 324.
[00044] At block 324, SAS expander 302 sends or generates BROADCAST (CHANGE) primitives over the SAS fabric to indicate that the SAS expander has successfully completed the reduced functionality mode of operation. In one example, this indicates that SAS expander 302 completed the reset process and is now able to communicate with other devices such as initiator 304 over SAS fabric. Processing proceeds to block 326.
[00045] At block 326, SAS initiator 304, as well as other initiators, of SAS fabric send or generate REPORT GENERAL commands or similar commands or message over the SAS fabric to acknowledge the BROADCAST (CHANGE) primitives from SAS expander 302 from block 324. Processing proceeds to block 328.
[00046] At block 328, SAS expander 302 responds to the REPORT GENERAL primitives by sending or generating acknowledgment messages including clearing the RF bit to a value of "0" to indicate completion or exit of the reduced functionality mode of operation including the reset process. At this point in the process, SAS initiator 304, and any other initiators, of SAS fabric recognize and acknowledge that SAS expander 302 has completed or exited the reduced functionality mode of operation including the reset process, in one example, this indicates that SAS expander 302 resumes operating in a normal process including communication of commands and data between initiators and targets over SAS fabric.
[00047] In this manner, in some examples, the techniques of the present application may provide SAS expanders with reduced functionality mode of operation which may improve the reliability of the reset process of SAS expanders.
[00048] The process 300 of Fig. 3 shows an example process and it should be understood that other configurations can be employed to practice the techniques of the present application. For example, process 300 may be configured to communicate with a plurality of expanders.
[00049] Fig. 4 is an example block diagram showing a non-transitory, computer- readable medium that stores code for operating an expander in accordance with an example of the techniques of the present application. The non-transitory, computer- readable medium is generally referred to by the reference number 400 and may be included in module 104 described in relation to Fig. 1. The non-transitory, computer- readable medium 400 may correspond to any typical storage device that stores computer-implemented instructions, such as programming code or the like. For example, the non-transitory, computer-readable medium 400 may include one or more of a non-volatile memory, a volatile memory, and/or one or more storage devices. Examples of non-volatile memory include, but are not limited to, electrically erasable programmable read only memory (EEPROM) and read only memory (ROM). Examples of volatile memory include, but are not limited to, static random access memory (SRAM), and dynamic random access memory (DRAM). Examples of storage devices include, but are not limited to, hard disk drives, compact disc drives, digital versatile disc drives, optical drives, and flash memory devices.
[00050] A processor 402 generally retrieves and executes the instructions stored in the non-transitory, computer-readable medium 400 to operate an expander in accordance with an example. In an example, 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 module 104 functionality as described herein.
[00051] 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 noncontiguous, or even overlapping, sectors
[00052] The foregoing describes a novel and previously unforeseen approach to operating a SAS expander. While the above application has been shown and described with reference to the foregoing examples, it should be understood that other forms, details, and implementations may be made without departing from the spirit and scope of this application.

Claims

WHAT IS CLAIMED IS:
1. A SAS expander for communication between initiators and targets in a SAS fabric, the SAS expander comprising:
a reduced functionality module to cause the SAS expander to:
initiate entering a reduced functionality mode of operation which includes initiation of a reset process;
compare accumulated count value of acknowledgement commands received from initiators in a SAS fabric against an expected count value of number of initiators in the SAS fabric;
if the accumulated count value is greater than or equal to the expected count value before a time value expires, then continue with completion of the reduced functionality mode of operation including the reset process, otherwise exit the reduced functionality mode of operation including the reset process.
2. The SAS expander of claim 1 , wherein the SAS expander is to initiate entering the reduced functionality mode of operation in response to a Expander reset command from an initiator in the SAS fabric to activate a recently stored firmware of the SAS expander.
3. The SAS expander of claim 1 , wherein upon entering the reduced functionality mode of operation, the SAS expander to send a SAS BROADCAST primitive over the SAS fabric to indicate that the SAS expander has entered the reduced functionality mode of operation.
4. The SAS expander of claim 1 , wherein upon entering the reduced functionality mode of operation, the SAS expander to respond to a SAS REPORT GENERAL primitive from the initiator indicating that the SAS expander has entered the reduced functionality mode of operation.
5. The SAS expander of claim 1 , wherein upon entering the reduced functionality mode of operation, the SAS expander to respond to the acknowledgement commands from the initiator which include vendor specific SMP command REDUCED FUNCTIONALITY ACK.
6. The SAS expander of claim 1 , wherein upon exit of the reduced functionality mode of operation, the SAS expander to send a SAS BROADCAST primitive over the SAS fabric to indicate that the SAS expander has unsuccessfully completed the reduced
functionality mode of operation.
7. The SAS expander of claim 1 , wherein upon completion of the reduced functionality mode of operation, the SAS expander to send a SAS BROADCAST primitive over the SAS fabric to indicate that the SAS expander has successfully completed the reduced functionality mode of operation.
8. A method of operating a SAS expander for communication between initiators and targets in a SAS fabric, the method comprising:
initiating entering a reduced functionality mode of operation which includes initiation of a reset process;
comparing accumulated count value of acknowledgement commands received from initiators in a SAS fabric against an expected count value of number of initiators in the SAS fabric; and
if the accumulated count value is greater than or equal to the expected count value before a time value expires, which indicates input/output (I/O) activity over the SAS fabric has stopped, then continuing with completion of the reduced functionality mode of operation including the reset process, otherwise exiting the reduced functionality mode of operation including the reset process.
9. The method of claim 8, wherein initiating entering the reduced functionality mode of operation is in response to a Expander reset command from an initiator in the SAS fabric to activate a recently stored firmware of the SAS expander.
10. The method of claim 8, wherein upon entering the reduced functionality mode of operation, further comprises the SAS expander sending a SAS BROADCAST primitive over the SAS fabric to indicate that the SAS expander has entered the reduced functionality mode of operation.
11. The method of claim 8, wherein upon entering the reduced functionality mode of operation, further comprises the SAS expander responding to a SAS REPORT GENERAL primitive from the initiator indicating that the SAS expander has entered the reduced functionality mode of operation.
12. The method of claim 8, wherein upon entering the reduced functionality mode of operation, further comprising the SAS expander responding to the acknowledgement commands from the initiator which include vendor specific SMP command REDUCED FUNCTIONALITY ACK.
13. A non-transitory computer-readable medium having computer executable instructions stored thereon to operate a SAS expander for communication between initiators and targets in a SAS fabric, the instruction are executable by a processor to: compare accumulated count value of acknowledgement commands received from initiators in a SAS fabric against an expected count value of number of initiators in the SAS fabric; and
if the accumulated count value is greater than or equal to the expected count value before a time value expires, which indicates input/output (I/O) activity over the SAS fabric has stopped, then continue with completion of a reduced functionality mode of operation including a reset process, otherwise exit the reduced functionality mode of operation including the reset process.
14. The non-transitory computer-readable medium of claim 13, further comprising instructions that if executed cause a processor to: wherein upon entering the reduced functionality mode of operation, have the SAS expander to send a SAS BROADCAST primitive over the SAS fabric to initiators to indicate that the SAS expander has entered the reduced functionality mode of operation.
15. The non-transitory computer-readable medium of claim 13 further comprising instructions that if executed cause a processor to: have the SAS expander respond to a SAS REPORT GENERAL primitive from the initiator indicating that the SAS expander has entered the reduced functionality mode of operation.
PCT/US2015/021283 2015-03-18 2015-03-18 Sas expander WO2016148712A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/US2015/021283 WO2016148712A1 (en) 2015-03-18 2015-03-18 Sas expander

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2015/021283 WO2016148712A1 (en) 2015-03-18 2015-03-18 Sas expander

Publications (1)

Publication Number Publication Date
WO2016148712A1 true WO2016148712A1 (en) 2016-09-22

Family

ID=56920317

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2015/021283 WO2016148712A1 (en) 2015-03-18 2015-03-18 Sas expander

Country Status (1)

Country Link
WO (1) WO2016148712A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111880992A (en) * 2020-07-24 2020-11-03 北京浪潮数据技术有限公司 Monitoring and maintaining method for controller state in storage device

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060015654A1 (en) * 2004-07-19 2006-01-19 Krantz Leon A Dynamic WWN module for storage controllers
US20070005896A1 (en) * 2005-06-30 2007-01-04 Naichih Chang Hardware oriented host-side native command queuing tag management
US20130117767A1 (en) * 2011-11-09 2013-05-09 Michael G. Myrah Sas expander for communication between drivers
US20130336105A1 (en) * 2012-06-19 2013-12-19 Michael G. Myrah Expander device
US20140297910A1 (en) * 2013-03-29 2014-10-02 Hewlett-Packard Development Company, L.P. Sas expander

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060015654A1 (en) * 2004-07-19 2006-01-19 Krantz Leon A Dynamic WWN module for storage controllers
US20070005896A1 (en) * 2005-06-30 2007-01-04 Naichih Chang Hardware oriented host-side native command queuing tag management
US20130117767A1 (en) * 2011-11-09 2013-05-09 Michael G. Myrah Sas expander for communication between drivers
US20130336105A1 (en) * 2012-06-19 2013-12-19 Michael G. Myrah Expander device
US20140297910A1 (en) * 2013-03-29 2014-10-02 Hewlett-Packard Development Company, L.P. Sas expander

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111880992A (en) * 2020-07-24 2020-11-03 北京浪潮数据技术有限公司 Monitoring and maintaining method for controller state in storage device
CN111880992B (en) * 2020-07-24 2022-06-10 北京浪潮数据技术有限公司 Monitoring and maintaining method for controller state in storage device

Similar Documents

Publication Publication Date Title
US11784667B2 (en) Selecting optimal responses to errors in a storage system
US9513820B1 (en) Dynamically controlling temporary compromise on data redundancy
US10496566B2 (en) Method and apparatus for data recovering during a board replacement
EP3616073A1 (en) Apparatus and method for controlling data acceleration
US9838110B2 (en) Dynamic link repair from lane failure with minimal link-down time while sparing fault channels
US9143416B2 (en) Expander device
US11334275B2 (en) Reducing a rate at which data is mirrored from a primary server to a secondary server
US9026843B2 (en) Arbitration suspension in a SAS domain
JP2009530728A (en) Method, system, and program for offloading a disk-related task from a RAID adapter (offloading a disk-related task from a RAID adapter)
US9092398B2 (en) Restoring expander operations in a data storage switch
US20140297910A1 (en) Sas expander
US11061784B2 (en) Monitoring correctable errors on a bus interface to determine whether to redirect input/output request (I/O) traffic to another bus interface
JP2017010390A (en) Storage control device, storage control program, and storage control method
US20150113312A1 (en) System and method for detecting server removal from a cluster to enable fast failover of storage
US20190332456A1 (en) Monitoring correctable errors on a bus interface to determine whether to redirect input/output (i/o) traffic from a first processing unit to a second processing unit
CN114286993B (en) Link speed recovery in data storage systems
US9697152B1 (en) I/O processing system including dynamic missing interrupt and input/output detection
JP2020021313A (en) Data processing device and diagnostic method
US8761018B2 (en) Systems and methods for throttling a fabric login in a Fibre Channel adapter
US20130227341A1 (en) Sas host cache control
WO2016148712A1 (en) Sas expander
US10528408B2 (en) Symmetric connectivity over SCSI where the initiator and target are symmetric
US9563512B1 (en) Host recovery based on rapid indication of estimated recovery time
TW201512830A (en) Data storage system and control method thereof
US9792167B1 (en) Transparent north port recovery

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15885733

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15885733

Country of ref document: EP

Kind code of ref document: A1