Patent Publication Number: US-7584368-B2

Title: Apparatus and methods for power management and spin-up in a storage system

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The invention relates generally to serial attached SCSI (“SAS”) domains and more specifically to apparatus and methods for improved power management and spin-up of drives in a system adapted to use both SAS and Serial AT Attached (“SATA”) disk drives. 
     2. Discussion of Related Art 
     Small Computer Systems Interface (“SCSI”) is a SATA American National Standards Institute (“ANSI”) standard electronic interface specifications that allow, for example, computers to communicate with peripheral hardware. Common SCSI compatible peripheral devices may include: disk drives, tape drives, CD drives (“CD-ROM”, “CD-RW”, etc), DVD drives, printers and scanners. SCSI as originally created included both a command/response data structure specification and an interface and protocol standard for a parallel bus structure for attachment of devices. SCSI has evolved from exclusively parallel interfaces to include both parallel and serial interfaces. “SCSI” is now generally understood as referring either to the communication transport media (parallel bus structures and various serial transports) or to a plurality of primary commands common to most devices and command sets to meet the needs of specific device types as well as a variety of interface standards and protocols. 
     The collection of primary commands and other command sets may be used with SCSI parallel interfaces as well as with serial interfaces. The serial interface transport media standards that support SCSI command processing include: Fibre Channel, Serial Bus Protocol (used with the Institute of Electrical and Electronics Engineers 1394 FireWire physical protocol; “IEEE 1394”) and the Serial Storage Protocol (“SSP”). 
     SCSI interface transports and commands are also used to interconnect a plurality of storage devices in a storage subsystem with processing devices. For example, serial SCSI transport media and protocols such as SAS as well as SATA protocol exchanges may be used in such storage subsystems. Those skilled in the art are familiar with SAS and SATA standards as well as other SCSI related specifications and standards. Information about such interfaces and commands is generally obtainable at a number of websites including, for example, http://www.t10.org, at http://www.t13.org, and at http://www.serialata.org. 
     Such storage subsystems using SAS and SATA compliant storage devices are often used in large storage systems having a plurality of disk drives to store data for organizations and/or businesses. The switched serial connectivity architecture of SAS and SATA allows storage devices to be physically dispersed in an enterprise while continuing to directly support SCSI exchanges and ATA exchanges. This architecture allows for distribution of the storage components in an enterprise without the need for added overhead in converting storage requests from SCSI/ATA into other application layer network exchanges and then back into lower level SCSI/ATA storage related commands. 
     A SAS storage system typically comprises one or more SAS initiators coupled to one or more SAS targets often via one or more SAS expanders. In general, as is common in all SCSI communications, SAS initiators initiate communications with SAS targets. The expanders expand the number of ports of a SAS domain used to interconnect SAS initiators and SAS targets (collectively referred to as SAS devices or SAS device controllers). 
     In general, a SAS initiator directs information to a SAS target device through ports of one or more SAS expanders in the SAS domain. A “port” in SAS terminology is a logical concept. A port may comprise one or more physical links in a SAS domain. Such physical links are often referred to as PHYs in the terminology of SAS domains. A port may use a single PHY or, if the port is configured as a wide port, may use multiple PHYs logically grouped to provide higher bandwidth. 
     A variety of protocols are defined in the SAS standards each useful for communications with particular types of devices and/or for particular applications. Serial SCSI Protocol (“SSP”) provides a mapping of SCSI exchanges supporting multiple initiators and targets. Serial ATA Tunneled Protocol (“STP”) provides a mapping of Serial ATA expanded to support multiple initiators and targets. Serial Management Protocol (“SMP”) provides a management protocol. Each protocol defines layers of exchanges including, for example, application layer processing, transport layer processing, and link layer processing. For example, in general, STP is used in communicating with SATA devices coupled to the SAS domain. An STP initiator (e.g., a host system or a SAS expander) exchanges information with an STP target (e.g., a SATA storage device) using the STP link layer. The STP link layer generally encapsulates SATA related exchanges and flow control into SAS domain exchanges. Or, for example, SSP is used in communicating with SCSI devices coupled to the SAS domain. An SSP initiator exchanges information with an SSP target using the SSP link layer, transport layer, etc. 
     When any disk drive is initialized, one aspect of that initialization is spin-up of the disk rotating platters within the disk drive. This spin-up aspect of disk drive initialization draws a significant amount of electrical current (relative to the normal steady state spinning operation of the disk drive). In large storage systems having a large number of disk drives it is important to sequence the spin-up of the disk drives in the system to avoid a large aggregate current draw from all disk drives of the system simultaneously spinning up. Such a large current draw requires larger, more expensive power supplies in the storage system that provide the current source required for simultaneous spin-up of all disk drives in the large storage system. Thus, SAS disk drives in particular are specified to permit controlled sequencing of the spin-up of the disk drive platters. A controller in the storage system may thereby controllably sequence the spin-up of all SAS drives in the system. Where the system includes only SAS disk drives, controlled spin-up sequencing is an inherent capability in accordance with the SAS (e.g., SCSI) specifications. SATA devices do not, in general, support such a sequenced initialization as an inherent aspect of the SATA specifications. However, if a storage system includes a heterogeneous mix of SAS device (supporting sequential spin-up) and SATA devices (that do not support sequential spin-up, a problem may arise in that all SATA disk drives in the system may spin-up substantially simultaneously upon application of power thereto. Thus the problem of excessive current draw during spin-up may still arise where a storage system includes a heterogeneous mix of both SAS and SATA disk drives. 
     It is evident from the above discussion that a need exists for an improved structure and method for initializing disk drives in a storage system supporting a heterogeneous mix of disk drives some of which support controllable spin-up and others that do not. 
     SUMMARY OF THE INVENTION 
     The present invention solves the above and other problems, thereby advancing the state of the useful arts, by providing apparatus and methods for controlled sequencing of spin-up of disk drives in a storage system adapted to support both SAS and SATA drives. 
     A feature hereof provides a method of sequencing the spin-up of a plurality of disk drives in a storage system, the method comprising: configuring a first portion of the disk drives to be powered on when the storage system is powered on; configuring a second portion of the disk drives to be initially powered off when the storage system is powered on; issuing a spin-up command to each disk drive in the first portion; and controllably applying power to each disk drive in the second portion to cause each disk drive in the second portion to spin-up. 
     Another aspect hereof further provides that the step of issuing further comprises issuing spin-up commands to effectuate spinning-up of at most a number of disk drives N in the first portion over any predetermined period of time of duration M. 
     Another aspect hereof further provides that the step of controllably applying power further comprises controllably applying power to each disk drive in the second portion such that at most N disk drives in the second portion spin-up over any period of time of duration M. 
     Another aspect hereof further provides for performing a discovery process to identify each disk drive in the first portion. 
     Another aspect hereof further provides that the step of issuing is performed in cooperation with the step of performing a discovery process. 
     Another aspect hereof further provides that the step of performing a discovery process identifies one or more SAS disk drives, and provides that the step of issuing further comprises issuing a NOTIFY (ENABLE spin-up) primitive to each identified SAS disk drive in the first portion. 
     Another aspect hereof further provides that the step of performing a discovery process identifies one or more SATA disk drives, and provides that the step of issuing further comprises applying a COMWAKE out of band signal to each identified SATA disk drive in the first portion. 
     Another aspect hereof further provides that the plurality of disk drives comprises one or more SATA disk drives and provides that each SATA disk drive is coupled to a SATA interposer with a programmable power switch adapted to controllably apply power to the SATA disk drive coupled thereto, and provides that the step of configuring the first portion of the plurality of disk drives further comprises configuring the programmable power switch of each SATA interposer coupled to a SATA disk drive in the first portion to be initially on, and provides that the step of configuring the second portion of the plurality of disk drives further comprises configuring the programmable power switch of each SATA interposer coupled to a SATA disk drive in the second portion to be initially off, and provides that the step of controllably applying power further comprises controllably switching on the programmable power switch of each SATA interposer coupled to a SATA disk drive of the second portion. 
     Another feature hereof provides a storage system comprising: a storage controller; and a serial attached SCSI (“SAS”) expander coupled to the storage controller; and a plurality of disk drives each coupled to the SAS, the plurality of disk drives including a first portion configured to have power applied when the system is powered on, the plurality of disk drives further including a second portion configured to remain initially powered off when power is applied to the system, and provides that the system is adapted to issue a spin-up command to each disk drive in the first portion and is further adapted to controllably apply power to spin-up each disk drive in the second portion. 
     Another aspect hereof further provides that the system is further adapted to issue a spin-up command to at most a number of disk drives N over a predetermined period of time of duration M. 
     Another aspect hereof further provides that the system is further adapted to controllably apply power to each disk drive in the second portion such that at most N disk drives spin-up over time of duration M. 
     Another aspect hereof further provides that the plurality of disk drives includes one or more SAS disk drives and includes one or more serial ATA (“SATA”) disk drives, and provides that the system is adapted to perform a SAS discovery process to identify SAS disk drives and SATA disk drives in the plurality of disk drives, and provides that the system further comprises a one or more SATA interposers each coupled to a corresponding SATA disk drive of the plurality of disk drives and coupled to the SAS expander and provides that each interposer includes a programmable power switch adapted to controllably apply power to the corresponding SATA disk drive. 
     Another aspect hereof further provides that the system is adapted to issue a NOTIFY (ENABLE spin-up) primitive to each SAS disk drive in the first portion, and provides that the system is further adapted to apply a COMWAKE out of band signal to each SATA disk drive in the first portion, and provides that the system is further adapted to controllably program the power switch of each interposer coupled to a SATA disk drive in the second portion to controllably apply power to each SATA disk drive in the second portion. 
     Another feature hereof provides a method operable in a storage system having a serial attached SCSI (“SAS”) storage controller coupled to a plurality of disk drives including at least one SAS disk drive and at least one serial ATA (“SATA”) disk drive, the plurality of disk drives comprising a first portion of disk drives that support controlled spin-up following power-up and a second portion of disk drives that do not support controlled spin-up following power-up, the method comprising: performing a SAS discovery process to identify disk drives in the storage system such that each disk drive in the first portion is controllably spun up during the discovery process; and controllably powering up the disk drives in the second portion following completion of the discovery process. 
     Another aspect hereof further provides that the storage system comprises a SAS storage controller and a SAS expander, and provides that the step of performing a SAS discovery process is performed within the SAS expander, and provides that the step of controllably powering up is performed within the SAS storage controller. 
     Another aspect hereof further provides that the storage system includes at least one SATA interposer such that each SATA disk drive of the storage system is coupled to a corresponding SATA interposer, each interposer including a programmable power switch configurable to apply power to the corresponding SATA disk drive when power is applied to the SATA interposer and configurable to await instruction from the storage controller to apply power to the corresponding SATA disk drive, and provides that the step of controllably powering up the disk drives in the second portion further comprises instructing the SATA interposer coupled to each SATA disk drive in the second portion to apply power to its corresponding SATA disk drive to spin-up its corresponding SATA disk drive. 
     Another aspect hereof further provides that the step of performing a SAS discovery process further comprises: identifying each disk drive in the first portion as either a SAS disk drive or a SATA disk drive supporting staggered spin-up; issuing a NOTIFY (ENABLE spin-up) primitive to each SAS disk drive in the first portion; and applying a COMWAKE out of band signal to each SATA disk drive in the first portion to cause spin-up of each SATA disk drive. 
     Another aspect hereof further provides that each SATA disk drive of the plurality of disk drives is coupled to a SATA interposer having a programmable switch to apply power to the attached SATA disk drive and configurable to apply power to the attached SATA disk drive when power is applied to the interposer and configurable to await instruction from the storage controller to apply power to the attached SATA disk drive, and provides that the method further comprises: configuring all SATA interposers coupled to SATA disk drives in the first portion to apply power to the attached SATA drive when power is applied to the SATA interposer; and configuring all SATA interposers coupled to SATA disk drives in the second portion to await instruction from the storage controller to apply power to the attached SATA disk drive. 
     Another aspect hereof further provides that the steps of performing a SAS discovery process and of controllably applying power result in no more than a number N disk drives being spun up during any time period of duration M. 
     Another aspect hereof further provides that N and M are configurable values in the storage system. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a block diagram of a system (a SAS domain) embodying features and aspects hereof to spin-up all disk drives in a storage system having a heterogeneous mix of SAS and SATA disk drives. 
         FIG. 2  is a flowchart describing an exemplary method in accordance with features and aspects hereof to controllably spin-up all disk drives of a storage system in accordance with features and aspects hereof. 
         FIGS. 3 ,  4 , and  5  are flowcharts describing exemplary additional details of aspects of the method of  FIG. 2 , 
         FIG. 6  is a flowchart describing an exemplary method in accordance with features and aspects hereof to controllably spin-up all disk drives of a storage system in accordance with features and aspects hereof. 
     
    
    
     DETAILED DESCRIPTION OF THE DRAWINGS 
       FIG. 1  is a block diagram showing a system  100  embodying features and aspects hereof. The elements of system  100  as shown in  FIG. 1  may be integrated within a storage subsystem or may be separated such that portions of system  100  reside in attached host systems and other portions reside in a storage subsystem or component. System  100  may include a storage controller  102  that serves in the role of a SAS initiator (e.g., an SSP, SMP, and/or STP initiator) for establishing connections with one or more storage devices and for exchanging information therewith. SAS disk drive  1114 , SATA disk drive  118 , and SATA disk drive  122  all represent target devices (e.g., SSP, SMP, and/or STP targets) with which the storage controller  102  may establish connections and exchange information. Storage controller  102  and the various disk drive target devices ( 114 ,  118 , and  122 ) may be coupled through associated ports of one or more SAS expanders  110  and  112 . As shown in  FIG. 1 , storage controller  102  to has at least one communication path coupled to each of the redundant pair of SAS expanders  110  and  112 . Each SAS expander  110  and  112  has an associated communication path coupling it to each of the disk drive target devices ( 114 ,  118 , and  122 ). Thus, storage controller  102  has a fully redundant pair of communication paths to each of the multiple disk drive target devices through the redundant pair of SAS expanders  110  and  112 . 
     As is a generally known in the art, SAS disk drive  114  inherently includes dual ported capabilities to allow SAS disk drive  114  to be coupled to each of the redundant pair of SAS expanders  110  and  112 . Further, as generally known in the art, SATA disk drives do not inherently include such a feature for dual port connectivity. Rather, a SATA interposer circuit may be associated with each SATA disk drive to provide, among other things, dual port connectivity to one or more storage controller devices (e.g., through one or more SAS expander ports). As shown in  FIG. 1 , SATA interposer  116  provides such dual port connectivity for SATA disk drive  118  while SATA interposer  120  provides such dual port, connectivity for SATA disk drive  122 . 
     As noted above, each SATA interposer  116  and  120  preferably includes a programmable power switch  117  and  121 , respectively. Programmable power switch  117  and  121  each may comprise a field effect transistor (“FET”) suitable for controllably switching power on and off applied to the attached SATA disk drive  118  and  122 , respectively. Programmable power switch  117  and  121  also may include suitable logic for receiving an instruction or signal to controllably apply or remove power to the associated SATA disk drive  118  and  122 , respectively. Still further, programmable power switch  117  and  121  may preferably include a configurable feature to specify whether power should be initially applied to the attached SATA disk drive  118  and  122 , respectively, when power is initially applied to the associated interposer  116  and  120 , respectively. In other words, each SATA disk drive  118  and  122  may be configured through its corresponding interposer  116  and  120 , respectively, to be initially powered on or powered off when power is initially applied to system  100 . 
     As noted above, it is an ongoing problem in large storage systems to assure that the current draw associated with spinning up multiple disk drives in a large storage system does not exceed maximum available electrical current for the storage system. Conversely, by ensuring that the current draw is limited, smaller, less complex, less costly power supplies may be utilized in the system  100 . Further as noted above, all SAS disk drives and some SATA disk drives are capable of supporting controlled spin-up processing such that although power is applied, the increase current draw associated with spinning-up the disk drives may delayed and initiated under control of the storage controller  102  and/or the SAS expanders  110  and  112 . SAS disk drives (e.g., SCSI disk drives) inherently support such a feature as a standard aspect of the SCSI specifications. SATA disk drives which support staggered spin-up (e.g., generally those compliant with the SATA version 2 specifications) also allow for such controllable spin-up. By contrast, other SATA drives (generally those compliant with SATA specifications predating version 2) do not support staggered spin-up and thus present a continuing challenge for system designers to avoid substantial current surges when all such older SATA drives start spinning-up without controlled sequencing. 
     In accordance with features and aspects hereof, all disk drives in system  100  are logically grouped into one of two portions of the plurality of disk drives. A first portion  150  includes all SAS drives and SATA drives that are configured to permit controlled spin-up. In other words, the first portion  150  is a group of the plurality of disk drives that logically includes all SAS drives and any SATA drives that support staggered spin-up. A second portion  160  of the plurality of disk drives of system  100  includes all SATA disk drives that do not support staggered spin-up. The programmable power switch of the interposer associated with each SATA disk drive in the first portion  150  may therefore be configured to apply power to the attached SATA disk drive commensurate with the application of power to the system  100 . By contrast, the programmable power switch of the interposer attached to each SATA disk drive in the second portion  160  is configured to initially deny power to the attached SATA disk drive since the drive does not support a staggered spin-up. This configuration of the SATA interposers&#39; programmable power switch allows controllable sequencing of the spin-up of all SAS and SATA drives in the first portion  150 . Further, system  100  may control the spin-up of all SATA drives in the second portion  160  by controllably programming the programmable power switch of the SATA interposer attached to each SATA disk drive of the second portion  160 . 
     Processing within system  100  may therefore controllably sequence the spin-up of the SAS and SATA disk drives as in the first portion  150  as well as the SATA disk drives in second portion  160 . In general, spin-up of the disk drives in the first portion  150  may be performed as an aspect of the SAS discovery processing normally performed within system  100  (e.g., in a SAS domain system). Such a discovery process may be performed either within the storage controller  102  (e.g., by a SAS initiator) or may be performed within any of the SAS expanders  110  and  112 . The SAS discovery process generally identifies each device within the SAS domain (e.g., within system  100 ). The process of identifying a SAS disk drive  114  and a SATA disk drive  118  within first portion  150  will cause the spin-up of the identified disk drives. Standard processing within a discovery process limits the number of devices “N” discovered over any particular time duration “M”. The number of devices to be discovered over a period of time and may be programmed as parameters in the device responsible for performing the SAS discovery processing. Thus, devices spun up in the SAS discovery processing will naturally limit the current draw due to the inherent limitation of discovering no more than N disk drives over a period of time of duration M. 
     Other processing within system  100  may then continue following the completion of the discovery process to controllably spin-up additional devices in the second portion  160 . As noted above, the SATA interposer  120  associated with each SATA disk drive  122  in the second portion  160  is configured to deny power to the SATA disk drive  122  until instructed to apply power by processing in the storage controller or other component of system  100 . The SAS discovery process may identify a SATA device by identifying the SATA interposer with power applied thereto but it cannot inquire further of the SATA disk drive attached to the interposer in the second portion because power is denied to the disk drive until after the SAS discovery process completes. Additional processing operable, for example, within storage controller  102  may then in a timely, sequential, controlled manner cause power to be applied to each SATA disk drive  122  coupled to a corresponding SATA interposer  120  within second portion  160 . A suitable command or signal may be directed to the interposer  120  in the second portion  160  to cause the programmable power switch  121  to enable application of power to the attached SATA disk drive  122 . Further, the additional processing performed, for example, within storage controller  102  may ensure that the orderly sequencing of the application of power to SATA disk drives in second portion  160  may adhere to the same rule that no more than N disk drives may be enabled to spin-up over a time period of duration M. Thus, processing in accordance with features and aspects hereof perform orderly, sequential spin-up of all disk drives in storage system  100  whether performed as an aspect of the SAS discovery processing or through additional processing in accordance with features and aspects hereof. 
     Those of ordinary skill in the art will readily recognize that any number of SAS disk drives, and/or SATA disk drives as may be configured in the first portion  150  and that any number of SATA disk drives as may be configured in the second portion  160  of system  100 . Further, any number of SAS expanders may be provided in such a system to permit flexible scalability and redundancy configurations for larger storage systems. Still further, those of ordinary skill in the art will recognize that any number of storage controllers (SAS initiators) may be configured in such a system commensurate with the needs of a particular application. In addition, those of ordinary skill in the art will readily recognize that the storage controller  102  of system  100  may be integral within the storage subsystem or may be separate and distinct from the storage subsystem and integrated within one or more host systems coupled to the storage system. Thus,  FIG. 1  is intended to be merely suggestive of any such storage systems having a plurality of disk drives and capable of supporting SAS disk drives, SATA disk drives that support staggered spin-up, and SATA disk drives that do not support staggered spin-up all in accordance with features and aspects hereof. In other words,  FIG. 1  represents any systems adapted to support a heterogeneous mix of SAS and SATA disk drives and adapted to provide the controlled spin-up of all disk drives in such a system in accordance with features and aspects hereof. 
       FIG. 2  is a flowchart describing a method in accordance with features and aspects hereof to controllably spin-up all drives in a storage system having a heterogeneous mix of SAS disk drives, SATA disk drives that support staggered spin-up, and SATA disk drives that do not support staggered spin-up. Element  200  is first operable to configure or logically group all disk drives of the storage system into a first portion and a second portion. The logical configuration or grouping of all disk drives in the storage system further entails configuring those disk drives in the first portion to be powered up when power is initially applied to the storage system and further entails assuring that disk drives as in the second portion will not be powered up when power is initially applied to the storage system. Thus, disk drives logically grouped into the first portion are those disk drives that will be spun up in response to a discovery process performed within the SAS storage system. Disk drives logically grouped in the second portion are those disk drives that do not allow for controllable spin-up other than through the controlled application of power and thus will remain powered off at initial power-up of the storage system until further processing controls the sequencing for power-up and associated spin-up of the drives in the second portion. 
     Element  202  is next operable to perform a SAS discovery process and thereby cause the orderly spin-up of all powered on SAS and SATA disk drives logically grouped in the first portion of the storage system. It is common in design of SAS/SATA storage systems that control logic is used in conjunction with a SAS Discovery process to assure that no more than N disk drives may be discovered and hence spun up over any time period of duration M. Thus, the maximum current draw due to disk drives simultaneously spinning-up may be controlled such that no more than a predetermined, configurable number of disk drives (N) will start spinning over any particular duration of time (M). During this discovery process, all disk drives in the second portion, those that do not support SATA staggered spin-up, remain powered off and do not participate in the discovery process. However, as noted above, the SATA interposer attached to each SATA disk drive in the second portion may be powered on and may respond to SAS discovery process exchanges. Thus, the existence of some SATA device may be known in the discovery process for each disk drive in the second portion, but the details of that drive will remain unknown to the system until further processing is completed. 
     Element  204  is then operable to controllably power-up and thus spin-up each of the SATA disk drives as in the second portion. Processing of this element  204  may also ensure that no more than N disk drives are spun up over any time period of duration M. Thus, element  204  controllably sequences the spin-up and hence limits the current draw associated therewith for all SATA disk drives as in the second portion of the plurality of disk drives of the storage system. 
     The method of  FIG. 2  therefore assures that all disk drives of the storage system are controllably spun up so that current draw associated with spin-up of disk drives may be controlled and sequenced to maintain current draw a within a desired allowable range. By so controlling current draw for a storage system, power supplies may be designed in the storage system in a manner to utilize simpler, lower cost, smaller capacity power supplies. 
       FIG. 3  is a flowchart providing exemplary additional details of the processing of element  200  of  FIG. 2  to configure and logically partition all disk drives of the storage system into a first portion and a second portion. As noted above, those disk drives logically configured in the first portion of the plurality of disk drives are either SAS drives that inherently support controlled spin-up or are SATA drives designed to support the staggered spin-up feature specified in the SATA version 2 specifications. Those disk drives logically grouped into the second portion are SATA disk drives that do not provide support for the staggered spin-up feature of the SATA version 2 specifications. 
     Element  300  is first operable to configure all SAS drives disk drives of the storage system and all SATA disk drives supporting staggered spin-up as logically grouped in a first portion of the plurality of disk drives. Step  302  then logically configures all SATA disk drives that do not support staggered spin-up as a second portion logical grouping of disk drives. The configuration steps of element  300  and  302  need not be actually performed but may merely represent logical grouping or configuration of disk drives of a storage subsystem. In general, disk drives in the first portion are those disk drives that are adapted to power on upon application of power to the storage system whereas those disk drives in the second portion are disk drives configured to be powered off upon initial application of power to the storage system. As noted above, SATA disk drives may be coupled to the storage system using a SATA interposer with a programmable and configurable power switch used for controllably applying power to the SATA disk drives coupled to each SATA interposer. Element  304  is therefore representative of processing to configure all SATA interposers in the first portion to enable immediate application of power to the attached SATA disk drives upon power-up of the storage system. SATA disk drives in the first portion are those that support staggered spin-up and therefore will not initiate spin-up processing upon application of power. Such processing may entail manual processing such as configuring a jumper or switch on the SATA interposer or may entail automated programmatic configuration steps performed by an administrator when a storage system is populated with disk drives. An appropriate configuration command sequence or signal may be applied to the SATA interposer indicating that it should immediately apply power to the attached SATA drive or defer application of power. Such a configuration command or signal and associated nonvolatile storage of such a configuration in the SATA interposer may be performed utilizing well known techniques and logic components. 
     Element  306  represents similar manual or automated configuration processing of the SATA interposers in the second portion of the storage system such that each SATA interposer in the second portion is configured to deny power to the attached SATA disk drive when power is initially applied to the storage system. As noted above, disk drives in the second portion are those SATA disk drives that do not support SATA staggered spin-up. Thus, SATA disk drives in the second portion should not be spun up immediately upon application of power to the storage system but rather under control of other processing discussed further herein. 
     Those of ordinary skill in the art will readily recognize that the configuration steps of element  200  as exemplified in more detail in  FIG. 3  could be performed as manual configuration steps and/or as automated processing (or a combination of manual and automated processing) to configure interposers in both the first portion and second portion of the storage system. Further, the configuration steps of elements  300  and  302  to logically group each disk drive either in the first portion or the second portion can be performed simply as recognizing disk drives that are configured to immediately power-up such as in the SAS discovery processing. Disk drives that are in the second portion configured to be denied power at initial system power-up will not be completely identified and initialized by the SAS discovery process. Rather, those disk drives that are not fully identified by the SAS discovery processing are thereby identified as logically grouped in the second portion of disk drives of the storage system. Those of ordinary skill in the art will readily recognize a variety of manual and/or automated processing steps to provide the configuration processing of  FIG. 3 . 
       FIG. 4  is a flowchart providing exemplary edition of details of the processing of element  202  of  FIG. 2 . Element  202  of  FIG. 2  is generally operable to perform SAS discovery processing and to thereby enable spin-up of each SAS and/or SATA disk drives in the first portion of the plurality of disk drives of the storage system. Elements  400  through  410  are iteratively operable for each SAS or SATA disk drive powered on and discovered by the discovery processing. Element  400  is first operable to discover a next SAS or SATA disk drive in the storage system. Devices in the first group (e.g., those that are immediately powered on) may be discovered by this processing. Those of ordinary skill in the art are well aware of standard SAS processing utilized to perform discovery of devices in a SAS domain system in accordance with the SAS specifications. Element  402  is then operable to determine whether a next SAS or SATA disk drive has been so discovered by processing of element  400  or if all powered-up disk drives as have been discovered by the SAS discovery process. If no new disk drive has been discovered by processing of element  400 , element  402  completes processing of element  202 . If element  402  determines that a new disk drive has been discovered by processing of element  400 , element  404  is next operable to determine whether the newly discovered disk drive is a SAS disk drive. If not, processing continues at element  408  as discussed below. If so, element  406  is next operable to issue a NOTIFY (ENABLE SPINUP) primitive to the newly discovered SAS disk drive to thereby enable spin-up of the SAS disk drive. Processing then continues looping back to element  400  to await discovery of the next SAS or SATA disk drive in the storage system. If the newly discovered disk drive is not a SAS disk drive as determined by element  404 , element  408  is next operable to determine whether the newly discovered disk drive is a SATA disk drive. If not, processing continues looping back to element  400  two await discovery of the next SAS or SATA disk drive. If so, element  410  is next operable to apply a COMWAKE out of band signal to the newly discovered SATA disk drive to thereby enable spin-up of the disk drive. Processing then continues looping back to element  400  to await discovery of the next SAS or SATA disk drive. 
     Those of ordinary skill in the art will readily recognize a variety of other processing associated with the standard SAS discovery process. Such additional processing is well known to those of ordinary skill in the art and thus eliminated from the processing of  FIG. 4  for the sake of brevity in this description. Further, those of ordinary skill in the art will readily recognize that the standard SAS discovery processing as represented by element  400  may include appropriate throttling or pacing parameters to assure that no more than N disk drives are discovered or spun up during any period of time of duration M. Typical implementation of SAS discovery processing includes parameters that may define values for N and M to appropriately adapt the discovery process to the current draw limitations of a particular SAS storage system. Still further, those of ordinary skill in the art will readily recognize a variety of equivalent method steps to those depicted in  FIG. 4  and capable of providing similar processing to spin-up all disk drives in a first portion of the plurality of disk drives in a storage system. 
       FIG. 5  is a flowchart providing exemplary additional details of the processing of element  204  of  FIG. 2  above. Element  204  of  FIG. 2  above is generally operable to controllably sequence the spin-up all SATA disk drives in the second portion of the plurality of disk drives of the storage system by controllably sequencing the application of power to each SATA disk drive in the second portion. As noted above, each SATA disk drive in the storage system is coupled to a corresponding SATA interposer that includes a programmable power switch (e.g., a FET capable of switching adequate current to the SATA drive) and associated logic components to allow an external signal or command to control the FET to apply power to the attached SATA disk drive. 
     Element  500  of  FIG. 5  is first operable to determine whether more disk drives remain to be powered up in the second portion of the plurality of disk drives of the storage system. If not, processing of element  204  is complete. If so, element  502  is next operable to appropriately instruct the programmable power switch on an associated SATA interposer for the SATA disk drive to controllably apply power to the SATA disk drive coupled thereto. Element  504  is then operable to impose a delay of a duration of at least M/N where N and M are parameters as defined above in the SAS discovery process. The delay of element  504  helps assure that no more than N disk drives will be spun up over any period of time of duration M. Processing then continues looping back to element  500  to continue processing other SATA disk drives in the second portion of the plurality disk drives in the storage system. 
     Those of ordinary skill in the art will readily recognize a variety of equivalent method steps to perform the processing of element  204  to controllably enable application of power to SATA disk drives in the second portion to thus control sequencing of spin-up of disk drives in the second portion. 
       FIG. 6  is a flowchart broadly describing another method in accordance with features and aspects hereof to controllably spin-up all disk drives in a storage system having a heterogeneous mix of SAS disk drives, SATA disk drives supporting staggered spin-up, and SATA disk drives that do not support staggered spin-up. As generally noted above, all disk drives of a storage system may be logically grouped into either a first portion or a second portion. Those logically grouped in the first portion are all SAS disk drives in the storage system and all SATA disk drives in the storage subsystem that support staggered spin-up. Disk drives in the second portion are all SATA disk drives that do not support staggered spin-up. The processing of the flowchart of  FIG. 6  represents substantially concurrent processing within a SAS expander of the storage system and a SAS initiator or storage controller of the storage subsystem. Responsive to the initial application of power to the storage subsystem elements  600  and  610  represent the substantially simultaneous or concurrent processing within a SAS expander of the storage system and a SAS initiator or storage controller of the storage system, respectively. 
     When the SAS initiator or storage controller completes its initialization, element  612  is then operable within the SAS initiator or storage controller to await completion of a SAS discovery process performed within the SAS expander of the storage system. Thus, processing of the SAS initiator storage controller is paused at element  612  (as regards this aspect of initialization) waiting for completion of concurrent processing within a SAS expander of the storage system. 
     Element  602  represents processing within a SAS expander, having completed basic initialization at element  600 , to perform a SAS discovery process. As generally known in the art, a SAS discovery process identifies all devices in the SAS storage system. The process of identifying disk drives in such a SAS storage system also includes enabling spin-up of each disk drives of powered up and thus discovered by the SAS discovery process. Further, a SAS discovery process will discover and enable spin-up of SATA disk drives that support staggered spin-up. Therefore, processing of element  602  represents a completed SAS discovery process that inherently causes spin-up of all SAS disk drives and SATA disk drives that support staggered spin-up. 
     Upon completion of the SAS discovery process, processing within the SAS expander of the storage system is completed and normal operation commences. Simultaneously, the SAS initiator or storage controller may then continue processing following the delay of element  612  and element  620  will then be operable to complete the controlled power-up and spin-up of all disk drives in storage system. In particular, element  620  is operable to send appropriate commands or signals to the interposer attached to each SATA disk drive in the second portion logical grouping of the plurality of disk drives in the storage system. An appropriate signal or command directed to each interposer in a controlled, sequenced manner will cause the spin-up of each remaining disk drive of the storage system. The signal or command controllably applies power to each disk drive in the second portion. Each disk drive in the second portion will then commence spinning-up. Upon completion of processing of element  620 , the SAS initiator or storage controller commences normal operation and the storage system is fully initialized with all disk drives powered on and spinning. 
     Those of ordinary skill in the art will readily recognize that the processing of  FIG. 6  is intended to demonstrate that the processing of the storage system may be separated such that some processing is performed within the SAS initiator or storage controller of the storage system while other processing may be performed within one or more SAS expanders of the storage system. Those of ordinary skill in the art will readily recognize a variety of equivalent method steps that may be distributed between the SAS initiator and SAS expanders of a storage system to perform the requisite initialization and spin-up of the storage system and its plurality of disk drives. 
     While the invention has been illustrated and described in the drawings and foregoing description, such illustration and description is to be considered as exemplary and not restrictive in character. One embodiment of the invention and minor variants thereof have been shown and described. Protection is desired for all changes and modifications that come within the spirit of the invention. Those skilled in the art will appreciate variations of the above-described embodiments that fall within the scope of the invention. In particular, those of ordinary skill in the art will readily recognize that features and aspects hereof may be implemented equivalently in electronic circuits or as suitably programmed instructions of a general or special purpose processor. Such equivalency of circuit and programming designs is well known to those skilled in the art as a matter of design choice. As a result, the invention is not limited to the specific examples and illustrations discussed above, but only by the following claims and their equivalents.