In order that the advantages of the invention will be readily understood, a more particular description of the invention briefly described above will be rendered by reference to specific embodiments that are illustrated in the appended drawings. Understanding that these drawings depict only typical embodiments of the invention and are not therefore to be considered to be limiting of its scope, the invention will be described and explained with additional specificity and detail through the use of the accompanying drawings, in which:
Many of the functional units described in this specification have been labeled as modules, in order to more particularly emphasize their implementation independence. For example, a module may be implemented as a hardware circuit comprising custom VLSI circuits or gate arrays, off-the-shelf semiconductors such as logic chips, transistors, or other discrete components. A module may also be implemented in programmable hardware devices such as field programmable gate arrays, programmable array logic, programmable logic devices or the like.
Modules may also be implemented in software for execution by various types of processors. An identified module of executable code may, for instance, comprise one or more physical or logical blocks of computer instructions which may, for instance, be organized as an object, procedure, or function. Nevertheless, the executables of an identified module need not be physically located together, but may comprise disparate instructions stored in different locations which, when joined logically together, comprise the module and achieve the stated purpose for the module.
Indeed, a module of executable code may be a single instruction, or many instructions, and may even be distributed over several different code segments, among different programs, and across several memory devices. Similarly, operational data may be identified and illustrated herein within modules, and may be embodied in any suitable form and organized within any suitable type of data structure. The operational data may be collected as a single data set, or may be distributed over different locations including over different storage devices, and may exist, at least partially, merely as electronic signals on a system or network.
Reference throughout this specification to “one embodiment,” “an embodiment,” or similar language means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Thus, appearances of the phrases “in one embodiment,” “in an embodiment,” and similar language throughout this specification may, but do not necessarily, all refer to the same embodiment.
Reference to a signal bearing medium may take any form capable of generating a signal, causing a signal to be generated, or causing execution of a program of machine-readable instructions on a digital processing apparatus. A signal bearing medium may be embodied by a transmission line, a compact disk, digital-video disk, a magnetic tape, a Bernoulli drive, a magnetic disk, a punch card, flash memory, integrated circuits, or other digital processing apparatus memory device.
Furthermore, the described features, structures, or characteristics of the invention may be combined in any suitable manner in one or more embodiments. In the following description, numerous specific details are provided, such as examples of programming, software modules, user selections, network transactions, database queries, database structures, hardware modules, hardware circuits, hardware chips, etc., to provide a thorough understanding of embodiments of the invention. One skilled in the relevant art will recognize, however, that the invention may be practiced without one or more of the specific details, or with other methods, components, materials, and so forth. In other instances, well-known structures, materials, or operations are not shown or described in detail to avoid obscuring aspects of the invention.
In one embodiment, the storage controller 110 is connected to the first expander chipset 120a. The first expander chipset 120a may connect to the RAID 130. In the depicted embodiment, the first expander chipset 120a presents a gateway for the storage controller 110 to communicate with the RAID 130. The storage controller 110 may manage the physical devices in the RAID 130. The storage controller 110 may use one of a plurality of protocols to communicate with the RAID 130. Such protocols may be IDE, SCSI, SATA, SAS, or fibre channel. In one embodiment, the storage controller 110 interfaces with one of the interface ports of the RAID 130.
In one embodiment, the interface card 140 is inserted in the archetypal second controller position of the storage subsystem. The interface card 140 may be a feedthrough card. In certain embodiments, the interface card 140 is a repeater card. The interface card 140 may be any integrated circuit or expansion card capable of transmitting received data.
The data trafficking device 150 may be any electronic device used to transmit data packets across a network. In the depicted embodiment, the data trafficking device 150 is a network switch. The data trafficking device 150 may be connected to server 160. In certain embodiments, the data trafficking device 150 is connected to a plurality of devices such as workstations, network printers, network switches, storage controllers, and servers.
The storage controller 110 may be connected to the data trafficking device 150 via at least one data I/O path 180a. The interface card 140 may be connected to the data trafficking device 150 via at least one data I/O path 180b. In one embodiment, the data I/O paths 180 are identically configured to pass data packets. The data I/O paths 180 may be configured using one or more protocols. Such protocols may be IDE, SCSI, SATA, SAS, or fibre channel. The data I/O paths may be configured using the same protocol used to access the RAID 130.
In the depicted embodiment, the storage controller 110 and the interface card 140 are connected via the backend communication path 170. The backend communication N X path may be configured identically to the data I/O paths 180. The backend communication path enables another connection between the storage controller 110 and the data trafficking device 150 through the interface card 140.
The second expander chipset 120b may be connected to the interface card 140 to provide a second gateway to the RAID 130. In the depicted embodiment, the expander chipset 120b is physically attached to the interface card 140. In certain embodiments, the expander chipset 120b is connected to the interface card 140 via an interface cable. The interface card 140 may connect to the interface of the RAID 130 not occupied by the storage controller 110. Storage subsystem 100 illustrates redundant connections to the data trafficking device 150 using a single controller design. In the depicted embodiment, storage subsystem 100 illustrates redundant connections to the RAID 130 in a single controller design
In the depicted embodiment, the storage controller 110 may be connected to the data trafficking device 150a via data I/O path 180a and connected to the data trafficking device 150b via data I/O path 180c. The interface card 140 may be connected to the data trafficking device 150a via data I/O path 180b and connected to the data trafficking device 150b via data I/O path 180d.
In one embodiment, the data I/O paths 180 are identically configured to pass data packets. The data I/O paths 180 may be configured using one or more protocols. Such protocols may be IDE, SCSI, SATA, SAS, or fibre channel. The data I/O paths may be configured using the same protocol used to access the RAID 130. Storage subsystem 200 illustrates redundant connections to multiple data trafficking devices 150 using a single controller design. In the depicted embodiment, storage subsystem 200 illustrates redundant connections to the RAID 130 in a single controller design.
The schematic flow chart diagrams that follow are generally set forth as logical flow chart diagrams. As such, the depicted order and labeled operators are indicative of one embodiment of the presented method. Other operations and methods may be conceived that are equivalent in function, logic, or effect to one or more operations, or portions thereof, of the illustrated method. Additionally, the format and symbols employed are provided to explain the logical operations of the method and are understood not to limit the scope of the method. Although various arrow types and line types may be employed in the flow chart diagrams, they are understood not to limit the scope of the corresponding method. Indeed, some arrows or other connectors may be used to indicate only the logical flow of the method. For instance, an arrow may indicate a waiting or monitoring period of unspecified duration between enumerated operations of the depicted method. Additionally, the order in which a particular method occurs may or may not strictly adhere to the order of the corresponding operations shown.
Providing 305 a storage subsystem with one storage controller includes supplying a redundant array of independent disks, a first expander chipset configured to be a first gateway to the redundant array of independent disks, the storage controller connected to the first expander chipset configured to communicate with the redundant array of independent disks through the first expander chipset, and at least one data trafficking device connected to the storage controller by at least one data I/O path.
Inserting 310 an interface card in the storage subsystem includes locating an unused, archetypal storage controller position within the storage subsystem. The interface card may be inserted in the archetypal storage controller position in the storage subsystem. The archetypal storage controller position may be an expansion socket or other means to facilitate interfacing within the storage subsystem.
Providing 315 a backend communication path facilitates communication between the storage controller and the interface card. Historically, when a storage subsystem comprises two storage controllers, the communication path between them is configured to facilitate communication between storage controllers. Since the communication path facilitates communication between the storage controller and the interface card, the backend communication path may be configured accordingly.
Configuring 320 the backend communication path as a data I/O path includes identifying the protocol and configuration of other data I/O paths within the storage subsystem. In one embodiment, the backend communication path comprises the protocol and configuration of the data I/O paths between the storage controller and one or more data trafficking devices and between the interface card and one or more data trafficking devices. The backend communication path may further comprise the protocol and configuration of the data I/O path used to interface with the RAID.
Connecting 325 the storage subsystem to the interface card via the backend communication path includes interfacing the interface card with the backend communication and interfacing the storage controller with the backend communication. The backend communication configured as a data I/O path facilitates communication between the interface card and the storage controller. The storage controller may be attached to one or more data trafficking devices. The interface card may also be attached to one or more data trafficking devices enabling redundant connections between one or more data trafficking devices.
The method continues by ascertaining 330 if dual ported hard disk drive access is desired. If dual ported hard disk drive access is desired, then attaching 335 and configuring a second expander chipset to the interface card may be necessary. Attaching 335 and configuring a second expander chipset to the interface card may include physically attaching the second expander chipset to the interface card by solder or wire attachment. The second expander chipset provides a second gateway to the RAID extending from the interface card to the RAID. The second gateway may be configured with the same protocol as the first gateway. Attaching 335 and configuring a second expander chipset enables redundant connections to the RAID.
The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.