Abstract:
A system and method are provided for adding an internal RAID controller. The system and method includes a plurality of hard disk drives storing data. Hard disk drive bays receive the hard disk drives. A modified hard disk drive bay accepts a RAID controller. The user inserts the RAID controller into the modified hard disk drive bay allowing data transfer between the hard disk drives, the RAID controller, and the motherboard of the computer on two interface loops. One interface loop, the control loop, provides an interface between the loop controller on the motherboard and the RAID controller. The other interface loop, the storage loop, provides an interface between the RAID controller, the hard disk drives, and any external hard disk drives. The RAID controller communicates with the motherboard allowing RAID functionality among the hard disk drives.

Description:
TECHNICAL FIELD 
     This disclosure relates in general to the field of information storage, and more particularly to a system and method for adding an internal RAID controller to a computer system. 
     BACKGROUND 
     RAID (redundant array of independent disks) storage technology allows for the storing of the same data on multiple hard disks. Redundantly storing the data on multiple hard disks allows for increased performance and fault tolerance which is the ability of a RAID array to withstand the loss of some of its hardware without the loss of data and without the loss of availability. The increased performance results from the input/output operations overlapping in a parallel manner. Storing data redundantly across multiple disks results in increased fault tolerance for RAID storage. There are at least nine types of RAID as well as a non-redundant RAID types all using disk striping and/or disk mirroring to increase performance and fault tolerance. 
     The RAID array appears to the operating system as a single hard disk or a LUN (logical unit number). In order to appear as a single hard disk and have the RAID functions occur within the multiple hard disks, the RAID array requires a RAID controller. The RAID controller determines what level of RAID a system supports and uses as well as allows the multiple hard disks to function and appear as a single hard disk or LUN to the operating system. 
     There are different ways to implement a RAID controller. Software based RAID controllers control the RAID array using software applications running on the system&#39;s central processing unit (CPU) rather than specialized hardware and are typically found in entry level servers. Another implementation of a RAID controller is a RAID controller embedded on a system&#39;s motherboard (RAID on motherboard or ROMB). Another implementation of a RAID controller is a PCI RAID controller where a RAID controller is on a PCI adapter card and plugged into a PCI expansion slot of a computer system. A final implementation of a RAID controller is an external RAID controller where a RAID controller and additional hard disks are in an enclosure separate from the main computer system. 
     One limitation associated with implementing a RAID controller is that with software based RAID controllers, the RAID controller puts a demand on a system&#39;s CPU. This demand on the CPU can adversely affect the performance of software applications running on the system. Software based RAID controllers do provide cost advantages but demands on the CPU often outweigh the cost advantages. 
     Another limitation in implementing a RAID controller is that with ROMB, the RAID controller is limited to the space constraints of the motherboard. Therefore, ROMB offers only a fraction of the RAID performance offered by other types of RAID controllers. In addition, adding the RAID controller to the motherboard adds a fixed cost to the cost of the motherboard that not all users are willing to accept. Some users may not require a RAID controller but have to pay for one because the RAID controller is already installed on the motherboard and the cost of the RAID controller is already added into the cost of the motherboard. 
     Another limitation in implementing a RAID controller is that with a PCI card based RAID controller, a user uses up one of the system&#39;s PCI expansion slots for the RAID controller. Users prefer to have as many PCI expansion slots as possible and get upset when required to use up an expansion slot for something like a RAID controller which they believe should not require the use of an expansion slot. In addition, the trend in computers is to make everything smaller meaning sacrificing options such as the number of PCI expansion slots. Therefore, if a user already has a less than desirable number of expansion slots, using one of those expansion slots for a RAID controller is not generally an acceptable option. 
     Another limitation in implementing a RAID controller is that an external RAID controller is expensive and requires the computer system to be in more than one box and therefore occupy more floor space. In addition, an external RAID controller cannot control any of the internal hard disks of the computer system. Therefore any data saved on the internal hard disks will not be able to take advantage of any of the RAID features such as increased performance and fault tolerance. 
     SUMMARY 
     Therefore, a need has arisen for a system and method for adding a RAID controller that does not place a demand on the computer system&#39;s CPU. 
     A further need has arisen for a system and method for adding a RAID controller that does not add a fixed cost to the cost of a motherboard. 
     A further need has arisen for a system and method that allows for adding a RAID controller without occupying a bus expansion slot. 
     A further need has arisen for a system and method that allows a RAID controller to control both internal and external hard disks. 
     In accordance with teachings of the present disclosure, a system and method are described for adding an internal RAID controller which substantially eliminates or reduces disadvantages and problems associated with previous systems and methods. The system and method allows for a user to add a RAID controller in an internal hard disk drive bay. The motherboard communicates with the RAID controller on one loop while the RAID controller communicates with the hard disk drives on a second loop. 
     In accordance with one aspect of the present disclosure, a system and method provides a user the ability to add an internal RAID controller to a computer. A computer has a plurality of hard disk drives that store data. The hard disk drives connect to the computer through hard disk drive bays. A modified hard disk drive bay accepts either a RAID controller or a hard disk drive. A user inserts the RAID controller into the modified hard disk drive bay. Data flows between the hard disk drives, the RAID controller, and the motherboard of the computer on two interface loops controlled by the loop controller. One of the interface loops, the control loop, provides an interface between the RAID controller and the loop controller on the motherboard. The other interface loop, the storage loop, provides an interface between the RAID controller, the internal hard disk drive bays, and any external hard disk drives. Therefore, the RAID controller communicates with the motherboard and the hard disk drives appear as one or more LUNs managed by RAID functionality. 
     More specifically, a computer uses fibre channel to allow for two communications: one communication between the motherboard and the RAID controller and a second communication between the RAID controller and the hard disk drives. The dual loop definition of the standard fibre channel hard disk drive connector provides an opportunity for the placement of a RAID controller in a hard disk drive bay. Reconfiguring the usage of the pin connectors on the hard disk drive bay allows for the hard disk drive bay to accommodate a RAID controller. With a RAID controller installed in a hard disk drive bay, two independent loops are formed: a control loop and a storage loop. The control loop provides communication between the motherboard and the RAID controller. The storage loop provides communication between the RAID controller and internal and external hard disk drives. 
     The present disclosure provides a number of important technical advantages. One important technical advantage is that the system and method provides for an internal RAID controller without placing any demands on the computer&#39;s CPU. Unlike software based RAID controllers which often offer limited RAID levels and burden the system&#39;s CPU by utilizing CPU cycles, a RAID controller in a hard disk drive bay allows for the operation of the desired number of RAID levels and does not place demands on the computer&#39;s CPU and does not reduce the processing power available to application programs. 
     Another important technical advantage of the present disclosure is that the system and method provides for an internal RAID controller without adding a fixed cost to the cost of the motherboard. Users can determine whether or not they want to install a RAID controller in the hard disk drive bay. Therefore, a user does not have to pay for a RAID controller unless the user wants the RAID controller. Since the RAID controller is not embedded on the motherboard, the cost of the motherboard does not increase. In addition, the RAID controller does not burden the motherboard and there is room on the motherboard for other controllers desired by the users. 
     Another important technical advantage of the present disclosure is that the system and method provides for an internal RAID controller without using a PCI expansion slot. Because the RAID controller installs into a hard disk drive bay, a user does not have to use a PCI expansion slot for the RAID controller. Users like having the ability to expand their computers capabilities with expansion cards in PCI expansion slots and are therefore more satisfied with their computers when they feel that the PCI expansion slots are not unnecessarily occupied. 
     Another important technical advantage of the present disclosure is that the system and method allows for an internal RAID controller which is less expensive than an external RAID controller. In addition, an internal RAID controller can control both internal and external hard disk drives. Having an internal RAID controller saves the user money because the user only needs one RAID controller as opposed to two RAID controllers in order to control the internal and external hard disk drives. Also, an internal RAID controller allows the user, instead of the RAID configuration, to decide how to store data. For example, the user no longer has to store the operating system and applications files on the internal hard disk drives and all of the data on the external hard disk drives to allow the external RAID controller to control the data. Since the internal RAID controller controls all the hard disk drives, the user can spread the operating system, applications, and data among all of the hard disk drives. In addition, the user does not have to bother with the extra space occupied by an external RAID controller and finding a location to place it. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     A more complete understanding of the present embodiments and advantages thereof may be acquired by referring to the following description taken in conjunction with the accompanying drawings, in which like reference numbers indicate like features, and wherein: 
     FIG. 1 depicts a block diagram for a hardware components configuration having a modified hard disk drive bay capable of accepting a RAID controller or a hard disk drive; 
     FIG. 2 illustrates a block diagram for the hardware components configuration for an internal RAID controller system; 
     FIG. 3 illustrates a flow diagram for adding either an internal RAID controller or a hard disk drive in the modified hard disk drive bay; and 
     FIG. 4 depicts a flow diagram for configuring a computer system for the device installed in the modified hard disk drive bay. 
    
    
     DETAILED DESCRIPTION 
     Preferred embodiments and their advantages are best understood by reference to FIGS. 1 through 4, wherein like numbers are used to indicate like and corresponding parts. 
     FIG. 1 depicts a block diagram for the hardware components configuration having a modified hard disk drive bay capable of accepting a RAID controller or a hard disk drive. System  100  is shown in FIG. 1 with hard disk drive  110   a  installed in modified hard disk drive bay  106   a . System  100  is completely contained within a personal computer or server. System  100  is shown using fibre channel as the interface interconnect loop. Other interface interconnect loops, such as parallel SCSI, Infiniband, Ethernet, ATA, or USB will also function in System  100 . 
     Loop controller  102 , embedded in motherboard  104  of system  100 , controls the transfer of data within system  100 . System  100  also contains three hard disk drive bays  106   a ,  106   b , and  106   c . The present embodiment contains three hard disk drive bays  106  but in alternative embodiments system  100  may contain more than three or less than three hard disk drive bays. Modified hard disk drive bay  106   a  accepts either a hard disk drive or a RAID controller. Modified hard disk drive bay  106   a  is modified to accept a hard disk drive or a RAID controller by redefining pin connectors  107 . As shown in FIG. 1, modified hard disk drive bay  106   a  contains hard disk drive  110   a  while hard disk drive bay  106   b  contains hard disk drive  106   b  and hard disk drive bay  106   c  contains hard disk drive  110   c . Fiber channel hard disk drives are identical to SCSI drives, except for their interfaces. Fiber channel hard disk drives provide dual ports to support redundant loop configurations. 
     As stated above, system  100  is shown using fibre channel as the interface interconnect loop. Using fibre channel as the interface interconnect loop requires the use of link resiliency circuits (LRC)  112  which are ordinarily used to complete the loop when a device is not connected to a port. LRCs  112  connect to the devices within hard disk drive bays  106  through node ports  114 . LRC  112  senses if a device is attached to node port  114 . If a device is attached to a node port  114 , then an LRC  112  switches to allow the device into the fibre channel interface interconnect loop. For example, no device is attached to node port  114   d . Therefore, LRC  112   e  recognizes that no device is attached and allows data to pass through it without going down to node port  114   d.    
     Hard disk drive bays  106  and node ports  114  have two sets of ports to allow for the dual loop capability of standard fibre channel hard disk drives. In typical fibre channel arbitrated loop systems, fibre channel networks are configured with two loops where the second loop provides redundancy in the event of a failure of the first loop. In addition, the transfer of data on the fibre channel loops is half duplex in that it is only in one direction. Many fibre channel networks are implemented with copper cable to reduce costs, but can include fibre optic cable if required by the distances between node ports  114 . LRCs  112  simplify wiring and provide bypass circuits that allow devices and node ports  114  to be added or removed with minimal disruption to the loop. 
     System  100  contains one loop when hard disk drive  110   a  is installed in modified hard disk drive bay  106   a  or when modified hard disk drive bay  106   a  is empty. With hard disk drive  110   a  installed in modified hard disk drive bay  106   a , loop  116  is the operable loop. Loop  116  leaves loop controller  102 , passes through LRC  112   b , port A of node port  114   a , and through pin connector  107   a  to access hard disk drive  110   a . Loop  116  leaves hard disk drive  110   a  through pin connector  107   b , passes back through port A of node port  114   a  and LRC  112   b  to LRC  112   c . At LRC  112   c , loop  116  accesses hard disk drive  110   b . Loop  116  continues on from hard disk drive  110   b  to LRC  112   d  to access hard disk drive  110   c . Loop  116  then bypasses LRC  112   e  and LRC  112   a  because no external devices are attached and returns to loop controller  102 . 
     With no RAID controller installed in system  100 , loop controller  102  controls the operation of hard disk drives  110  and there is no hardware RAID functionality. LRC  112   a  allows for the addition of a RAID controller into modified hard disk drive bay  106   a  but is not utilized when hard disk drive  110   a  is installed in modified hard disk drive bay  106   a . A system with a RAID controller installed in modified hard disk drive bay  106   a  is described in FIG. 2 below. 
     FIG. 2 illustrates a block diagram for the hardware components configuration for an internal RAID controller system  200 . System  200  is completely contained within a personal computer or server. System  200  is shown with fibre channel as the interface interconnect loop while alternative embodiments may employ parallel SCSI, Infiniband, Ethernet, ATA, or USB as the interface interconnect loop. 
     As in system  100 , hard disk drive bay  106   b  contains hard disk drive  110   b  and hard disk bay  106   c  contains hard disk drive  110   c . Unlike system  100 , modified hard disk drive bay  106   a  accepts RAID controller  206 . 
     By redefining the usage of the pin connectors  107  on the standard fibre channel hard disk drive, two loops are created when RAID controller  206  is present: control loop  208  and storage loop  210 . 
     Control loop  208  provides an interface between loop controller  102  and RAID controller  206 . Control loop  208  leaves loop controller  102 , passes through LRC  112   b , through port A of node port  114   a  and to RAID controller  206  through pin connector  107   a . Control loop  208  accesses fibre channel port  214  of RAID controller  206  and exits RAID controller  206  through pin connector  107   d . Exiting through pin connector  107   d , control loop  208  passes through port B of node port  114   a , through LRC  112   a , and back to loop controller  102 . Control loop  208  allows motherboard  104  through loop controller  102  to communicate with RAID controller  206 . With the insertion of RAID controller  206  into modified hard disk drive bay  106   a , control of hard disk drives  110  switches from loop controller  102  to RAID controller  206 . By having motherboard  104  through loop controller  102  communicate with RAID controller  206 , control loop  208  allows for RAID sets to appear as LUNs to motherboard  104 . 
     Storage loop  210  allows RAID controller  206  to communicate with hard disk drives  110  as well as any external devices connected to system  200  through node port  114   d . Storage loop  210  has no direct contact with loop controller  102 . Storage loop  210  originates at hard disk drive fibre channel port  216  and exits RAID controller  206  through pin connector  107   b . Storage loop  210  passes through port A of node port  114   a , LRC  112   b , and then accesses LRC  112   c . At LRC  112   c , storage loop  210  accesses hard disk drive  110   b  through port A of node port  114   b . After accessing hard disk drive  110   b , storage loop  210  continues to LRC  112   d  and accesses hard disk drive  110   c  through port A of node port  114   c . Through LRC  112   e , storage loop  210  accesses any external hard disk drives attached to system  200  in a just a bunch of disks (JBOD) enclosure. Storage loop  210  then passes through LRC  112   a  and port B of node port  114   a  and returns to RAID controller  206  through pin connector  107   c . Storage loop  210  allows RAID controller  206  to communicate with all storage devices attached to storage loop  210  and therefore apply RAID storage functionality. 
     Control loop  208  allows motherboard  104  to communicate with RAID controller  206  and allows for RAID storage characteristics. Storage loop  210  allows for RAID controller  206  to communicate with internal hard disk drives  110  as well as any external hard disk drives and create a RAID storage array. Having RAID controller  206  installed in the internal modified hard disk drive 
     bay  106   a  allows RAID controller  206  to control not only the internal hard disk drives  110 , but also any external hard disk drives attached to system  200  through node port  114   d . Therefore, RAID controller  206  communicates with and applies RAID techniques to hard disk drives  110  using storage loop  210  and motherboard  104  communicates with RAID controller  206  using control loop  208 . 
     FIG. 3 illustrates a flow diagram for adding either an internal RAID controller or a hard disk drive in the modified hard disk drive bay  106   a . In step  302 , a user powers up or resets the computer system. Then in step  304 , the user configures pin connectors  107  and port  114   a  associated with modified hard disk drive bay  106   a  to allow modified hard disk drive bay  106   a  to accept either RAID controller  206  or hard disk drive  110   a . At step  306 , the user must decide whether to install RAID controller  206  or hard disk drive  110   a  in modified hard disk drive bay  106   a.    
     If the user wants to install RAID controller  206  in modified hard disk drive bay  106   a , then in step  308  the user installs RAID controller  206  into modified hard disk drive bay  106   a . Taking advantage of modified pin connectors  107  and node port  114   a , in step  310  the user connects RAID controller  206  to loop controller  102  and motherboard  104 . This connection in step  310  creates control loop  208 . Then in step  312 , the user connects in a loop RAID controller  206  and hard disk drives  110   b  and  110   c  as well as any external hard disk drives to create storage loop  210 . 
     If the user desires to install hard disk drive  110   a  in modified hard disk drive bay  106   a  in step  306 , then in step  314  the user installs hard disk drive  110   a  in modified hard disk drive bay  106   a . Using one loop, the user then connects hard disk drives  110  with loop controller  102  and motherboard  104  to create loop  116  in step  316  whereby loop controller  102  controls hard disk drives  110 . 
     Although the process described in FIG. 3 deals with a user determining what type of device to install in modified hard disk drive bay  106   a , the process in FIG. 3 also applies to the manufacturer of a computer system when the manufacturer is building the computer system and determining what type of device to install in modified hard disk drive bay  106   a  before sending the computer system to the customer. 
     FIG. 4 depicts a flow diagram for configuring a computer system for the device installed in modified hard disk drive bay  106   a . In step  402 , a user powers up or resets the computer system. When the computer system receives power, in step  404  motherboard  104  configures the computer system as if RAID controller  206  is installed in modified hard disk drive bay  106   a . Configuring the computer system as if RAID controller is installed in modified hard disk drive bay  106   a  includes redefining pin connectors  107  and node port  114   a . In addition, motherboard  104  establishes control loop  208 . 
     In step  406 , motherboard  104  detects or looks for a RAID controller installed in modified hard disk drive bay  106   a . If RAID controller  206  is installed in modified hard disk drive bay  106   a  and therefore detected by motherboard  104  in step  408 , then the boot process resumes in step  410 . But if motherboard  104  detects no device in modified hard disk drive bay  106   a  or detects hard disk drive  110   a  in modified hard disk drive bay  106   a , then motherboard  104  configures the computer system as if a hard disk drive is in modified hard disk drive bay  106   a . Therefore there is no RAID functionality and loop controller  102  controls the operation of any internal hard disk drives present with one loop  116 . 
     Although the disclosed embodiments have been described in detail, in another embodiment of the present disclosure dual RAID controllers can be installed in a hard disk drive bay taking advantage of the dual loop capability of the standard fibre channel hard disk drive pin connectors. In another embodiment of the present disclosure, dual RAID controllers can be installed in two hard disk drive bays with one RAID controller controlling one storage loop and the second RAID controller controlling a second, redundant storage loop. In another embodiment of the present disclosure, a RAID controller can be installed in a hard disk drive bay connecting to a second connector in the bay separate from the connector used by the hard disk drive. In another embodiment of the present disclosure, the dual RAID controllers can be installed in a hard disk drive bay connecting to a second connector in the bay separate from the connector used by the disk drive. In another embodiment of the present disclosure, dual RAID controllers can be installed in two hard disk drive bays with one controller controlling one storage loop and the second RAID controller controlling a second, redundant storage loop with the RAID controller attaching to second connectors in their respective hard disk drive bays separate from the connector used by the hard disk drives. 
     Although the disclosed embodiments have been described in detail, it should be understood that various changes, substitutions and alterations can be made to the embodiments without departing from their spirit and scope.