System and method for fail-over switching in a disk storage medium

A disk drive is disclosed that is configured to be accessible in fail-over via buses associated with plural host interfaces. In accordance with exemplary embodiments of the present invention, the disk drive comprises a disk storage medium, a first bus connection, and a second bus connection. The disk drive comprises a switch for selectively connecting the disk storage medium to at least one of the first and second bus connections. The disk drive also comprises an interface controller for detecting whether at least one of the first and second bus connections is active and for controlling the switch in response.

BACKGROUND

1. Field of the Invention

The present invention relates generally to disk drives. More particularly, the present invention relates to a system and method for fail-over switching in a disk storage medium.

2. Background Information

Standard communication between a host computer, such as PC-based computer, and a hard disk drive is conventionally performed using a disk drive host interface. The hard disk drive can be, for example, an Integrated Drive Electronics/Advanced Technology Attachment (IDE/ATA)-compliant hard drive, a SCSI-compliant hard drive, a fiber channel device (e.g., one or more hard drives used with associated fiber channel switches in a multi-disk environment), or any other type of hard disk drive or storage systems.

Many disk drive systems rely upon standardized buses to connect the disk drive host interface to the disk drive. Generally speaking, the computer's operating system accesses a hard disk drive as an input/output (I/O) device connected to a bus, such as the IDE/ATA, SCSI or fiber channel bus. To communicate between the host computer and the hard disk drive via a standard bus, information is transferred to and from the hard disk drive via the disk drive host interface using a standard disk drive host interface protocol. Such an information transfer vests control with the operating system, and the hard disk drive serves as a slave to the host computer. Command signals are supplied by the host computer to the hard disk drive via the disk drive host interface, such that the host computer controls read and write operations for transferring data from or to the hard disk drive.

Failures at the disk drive or at the disk drive host interface can result in the disk drive system going offline. The resulting loss of connection can affect system throughput performance and user application performance.

Fail-over is a backup operation that automatically and transparently switches to a standby connection if a primary host or connection fails and redirects requests from the failed or downed system to the backup system. For example, SCSI and fiber channel buses support a feature that allows them to be accessed by redundant host systems. This feature protects them from losing access to a group of disk drives as a result of a single failure. The fail-over feature is handled by the host computer, i.e., is host-driven.

U.S. Pat. No. 5,922,077, which is hereby incorporated by reference in its entirety, discloses a fail-over switching system. The switching system includes a fail-over switch in a data storage system having multiple storage device controllers separately communicating over redundant fiber channel loops such that if a fiber channel loop becomes disabled, the affected data storage device controller may reroute its communications by sharing the alternate fiber channel loop.

The SCSI and fiber channel host-driven dual-initiator model involves using multiple storage device controllers for each disk drive to maintain plural, independent, continuously-active channels. A SCSI, host-driven, dual-initiator model for performing fail-over is disclosed in U.S. Pat. No. 6,009,535, which is hereby incorporated by reference in its entirety.

It would be desirable to provide a disk drive fail-over protocol using redundant host connections.

SUMMARY OF THE INVENTION

A disk drive is disclosed that is configured to be accessible in fail-over via buses associated with plural host interfaces. In accordance with exemplary embodiments of the present invention, the disk drive comprises a disk storage medium, a first bus connection, and a second bus connection. The disk drive comprises a switch for selectively connecting the disk storage medium to at least one of the first and second bus connections. The disk drive also comprises an interface controller for detecting whether at least one of the first and second bus connections is active and for controlling the switch in response.

The present invention is also directed to a method for implementing a fail-over feature for a disk drive having an interface controller and having access to plural host interfaces. In accordance with exemplary embodiments of the present invention, the interface controller is configured to execute the steps of determining when a first one of the plural host interfaces is in a failed state and initiating a selection of a second host interface in response to the step of determining.

Exemplary embodiments are applicable to all disk drive technologies, including, but not limited to, IDE, ATA, and serial ATA (SATA), and serial attached SCSI (SAS). Such applicability will enhance the appeal of IDE, SATA and SAS solutions in the higher-margin enterprise storage market.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

FIG. 1Ais a block diagram of a system having a disk drive100that is configured to be accessible in fail-over via buses associated with plural host interfaces, in accordance with an exemplary embodiment of the present invention. Disk drive100is compatible with at least one operating system104, residing on at least one host computer102, that is capable of accessing disk drives. Disk drive100is also compatible with at least one disk drive host interface106and108. The host computer operating system104can be any operating system, such as, for example, Microsoft Windows™, Linux™, MacOS™, Solaris™, or any other computer operating system that is capable of accessing disk drives. The disk drive host interfaces106and108can be any host interfaces, such as, for example, an Integrated Drive Electronics/Advanced Technology Attachment (IDE/ATA) interface, a SCSI interface, a fiber channel interface, an Ethernet interface, an InfiniBand™ interface, a Peripheral Component Interconnect (PCI) interface, or any other host interface that can be used for accessing a hard disk drive.

A disk storage medium122of disk drive100can be accessed using a head assembly120. Disk drive100can include a microprocessor-based disk controller118for controlling head assembly120for reading from and writing to disk storage medium122using head assembly120. A hard disk controller is integrated circuit hardware and associated circuitry that are responsible for controlling the hard disk drive. Disk controller118can be any part or all of the printed circuit board assembly (PCBA) of the hard disk controller of disk drive100. Hard disk controllers are known in the art and described, for example, in U.S. Pat. No. 5,909,334, the disclosure of which is hereby incorporated by reference.

According to exemplary embodiments of the present invention, disk drive100includes a disk storage medium, such as, for example, disk storage medium122. Disk drive100also includes a first bus connection110and a second bus connection112. First bus connection110can be connected to disk drive host interface106of host computer102. Second bus connection112can be connected to disk drive host interface108of host computer102. According to exemplary embodiments, the first and second bus connections are serial advanced technology attachment (SATA) bus connections. According to an alternate exemplary embodiment, the first and second bus connections are serial attached SCSI (SAS) bus connections. According to an alternate exemplary embodiment, the first and second bus connections are Ethernet connections. However, the first and second bus connections can be any type of bus connection that can be used to transport information between disk drive100and host computer102.

Disk drive100includes a switch for selectively connecting the disk storage medium to at least one of the first and second bus connections. As shown inFIG. 1A, switch114is connected to first bus connection110and second bus connection112. However, switch114can be connected to any number of buses. According to exemplary embodiments, switch114includes a multiplexer. The multiplexer is used by switch114to selectively connect to either first bus connection110or second bus connection112. According to exemplary embodiments, the multiplexer is an analog device. According to an alternate exemplary embodiment, the multiplexer is a digital device. According to another alternate exemplary embodiment, the multiplexer is an optical device. Switch114can be any type of analog, digital, or optical multiplexer or any other type of device that can be used to selectively connect disk storage medium122to one of several sources.

Disk drive100includes an interface controller for detecting whether at least one of the first and second bus connections is active and for controlling the switch in response. Interface controller116is connected to switch114to control switch114. Interface controller116is also connected to disk controller118. Interface controller116can act as a conduit for data that is passed between disk controller116and switch114. Alternatively, interface controller116can control switch114without having the data pass through it between disk controller118and switch114. Interface controller116can be computer hardware or firmware that resides externally to disk controller118. Alternatively, interface controller116can reside internally to disk controller118as, for example, hardware that forms a part of the computer circuitry of disk controller118or as software that resides in any form of computer memory resident internally to disk controller118. In addition, switch114can be located either internally to or externally from interface controller116.

According to exemplary embodiments, the first and second bus connections are separate initiator ports of the disk drive. The initiator ports are instantiated by the interface controller in response to detecting which of the first and second bus connections is active. Initially, disk drive100is connected to, for example, first bus connection110. Interface controller116initially instructs switch114to selectively connect to first bus connection110. However, disk drive100can be initially connected to any bus connection. Interface controller114then monitors first bus connection110to determine whether the bus connection is active.

To detect which of the bus connections is active, interface controller can use, for example, a predetermined timeout to determine if no activity has been detected on a particular bus connection for longer than a certain time interval. For example, a heartbeat message can be transmitted by disk drive host interface106over first bus connection110to interface controller116while disk drive host interface106is selectively connected to disk drive100. However, the timeout can use any form of message or command that indicates that a bus connection is active. So long as interface controller116receives the heartbeat message from disk drive host interface106over first bus connection110(i.e., a timeout does not occur), disk drive100will remain selectively connected to first bus connection110.

However, if the heartbeat message from disk drive host interface106has ceased or otherwise stopped, then a timeout will occur. In response, interface controller116can send an interrupt or any other form of “ping” message or command to disk drive host interface108over first bus connection112to determine if second bus connection110is active. If interface controller116does not receive a response from disk drive host interface108within a certain timeout period, first bus connection112can be considered to be inactive as well. Otherwise, interface controller116can control switch114to selectively connect to second bus connection112.

Upon selectively connecting to second bus connection112, disk drive100can instantiate the bus connection with disk drive host interface108using the disk drive host interface protocol-specific initialization. Since disk drive host interface108will now “see” a disk drive (i.e., disk drive100) that it did not detect previously, the disk drive host interfaces require the ability to establish, during their operation, a connection with a disk drive to which it they were not previously connected. If the disk drive host interfaces do not support such a “hot-plugging” capability, the disk drive host interfaces can be modified by adding either hardware or software that allows the disk drive host interfaces to instantiate a connection during their operation, even after start-up, with a disk drive that suddenly comes online (from the perspective of the subsequent, selectively-connected bus connection).

According to exemplary embodiments, a plurality of disk drives100can be connected to host computer102. Each of the plurality of disk drives100can be connected to either first bus connection110or second bus connection112. For example, all disk drives100can be connected to the same bus connection at the same time. For example, all the disk drives100can be connected to first bus connection110. According to exemplary embodiments, all of the disk drives100can communicate with each other using, for example, interface controller116. The disk drives100can communicate with each other over first bus connection110or any other bus or internal connection in host computer102. In the event that one of the disk drives100detects a failure on first bus connection106, the disk drive100that detected the failure can notify all of the other disk drives100to selectively connect to second bus connection112. Alternatively, each disk drive100can detect the failure independently and selectively connect to second bus connection112without communicating that information to any of the other disk drives100.

According to exemplary embodiments, the first and second bus connections and the multiplexer are internal to the disk drive. Thus, as shown inFIG. 1A, first bus connection10, second bus connection112, and switch114are located internally to disk drive100(e.g., resident on a disk drive VLSI controller chip). For example, disk controller118can be configured as a disk drive VLSI controller chip. First bus connection110, second bus connection112, and switch114can be configured to reside on the disk drive VLSI controller chip. According to an alternate exemplary embodiment, the first and second bus connections and the multiplexer are external to the disk drive. Thus, as shown inFIG. 1B, first bus connection110, second bus connection112, and switch114are located externally from disk drive100. In such an alternate exemplary embodiment, the external switch114can be connected to disk drive100through interface controller116.

FIG. 2is a flowchart illustrating the steps carried out for implementing a fail-over feature for a disk drive having an interface controller and having access to plural host interfaces, in accordance with an exemplary embodiment of the present invention. In step202, a determination is made as to when a first one of the plural host interfaces is in a failed state. According to exemplary embodiments, the first and second bus connections are serial advanced technology attachment (SATA) bus connections. According to an alternate exemplary embodiment, the first and second bus connections are Ethernet connections. However, the first and second bus connections can be any type of bus connection that can be used to transport information between a disk drive and the disk drive host interfaces of a host computer.

FIG. 3is a flowchart illustrating the steps carried out for determining when a first one of plural host interfaces is in a failed state, in accordance with an exemplary embodiment of the present invention. In step302, the first one of the plural host interfaces is monitored for a first signal. According to exemplary embodiments, the first signal is produced at regular time intervals determined by the first one of the plural host interfaces. For example, the first signal can be a heartbeat message or any other form of timeout mechanism. Thus, interface controller116can monitor first bus connection110for a heartbeat message from disk drive host interface106. So long as the heartbeat message is received by interface controller116at regular time intervals (i.e., a timeout does not occur), first bus connection110can be considered active.

If a timeout does occur, in step304, a second signal is sent to a second one of the plural host interfaces in the absence of the first signal. According to exemplary embodiments, the second signal is a disk-rive-initiated interrupt signal. For example, interface controller116can send an interrupt or any other form of message or command to host interface108to determine if second bus connection110is still active. If interface controller116does not receive a response in a certain period of time (i.e., a timeout occurs), second bus connection110can be considered inactive. Otherwise, switch114can selectively connect to second bus connection112.

In step204ofFIG. 2, a selection of a second one of the plural host interfaces is initiated in response to the step of determining. Thus, if first bus connection110is determined to be inactive, interface controller116can control switch114to selectively connect to disk drive host interface112.FIG. 4is a flowchart illustrating the steps carried out for initiating a selection of a second host interface, in accordance with an exemplary embodiment of the present invention.

In step402, a switch is controlled to selectively connect a disk storage medium of the disk drive to at least one of the first and second bus connections during the step of initiating. The disk drive accesses the plural host interfaces using the first and second bus connections. However, the switch can be connected to any number of bus connections and, hence, the disk drive can have access to any number of plural host interfaces. According to exemplary embodiments, if a timeout occurs on first bus connection110, interface controller116can control switch114to selectively connect disk storage medium122to second bus connection112in the event that such a failure of first bus connection110occurs. In step404, one of the initiator ports is instantiated in response to detecting which of the first and second bus connections is active. Consequently, once switch114selectively connects to second bus connection112, second bus connection112is instantiated between disk drive100and disk drive host interface108.

Disk drive100can instantiate the connection with disk drive host interface108using the disk drive host interface protocol-specific initialization. Since disk drive host interface108will now “see” a disk drive (i.e., disk drive100) that it did not see previously, the disk drive host interfaces require the ability to establish, during their operation, a connection with a disk drive to which it they were not previously connected. If the disk drive host interfaces do not support such a “hot-plugging” capability, the disk drive host interfaces can be modified by adding either hardware or software that allows the disk drive host interfaces to instantiate a connection during their operation, even after start-up, with a disk drive that suddenly comes online (from the perspective of the subsequent bus connection).

In the event that second bus connection112fails, those of ordinary skill in the art will recognize that a similar process can be performed to selectively connect disk drive100to first bus connection10, or any other bus to which disk drive100can be connected.