Electrical computers and digital processing systems: memory – Storage accessing and control – Control technique
Reexamination Certificate
2001-11-08
2004-05-04
Padmanabhan, Mano (Department: 2188)
Electrical computers and digital processing systems: memory
Storage accessing and control
Control technique
C711S161000, C710S022000
Reexamination Certificate
active
06732243
ABSTRACT:
FIELD OF THE INVENTION
The present invention is related to storing data in a multiple controller configuration, and in particular, to the mirroring of data using direct memory access engines.
BACKGROUND OF THE INVENTION
Network storage controllers are typically used to connect a host computer system with peripheral storage devices, such as disk drives or tape drives. The network storage controller acts as an interface between the host computer and the peripheral storage devices. In many applications, the network storage controller performs processing functions on the data transferred between the host computer and peripheral devices. One common application of such a system is a redundant array of inexpensive disks (RAID). A RAID system stores data on multiple disk drives to protect the data against disk drive failure. If one disk drive fails, then the RAID system is generally able to reconstruct the data which was stored on the failed drive from the remaining drives in the array. A RAID system uses a network storage controller, which in many cases includes a RAID controller, as an interface between the host computer and the array of disk drives.
Many applications require a storage system to have very high availability. This high availability is a key concern in many applications, such as financial institutions and airline reservations systems, because the users rely heavily on the data stored on the RAID system. In these type of applications, unavailability of data stored on the RAID system can result in significant loss of revenue and/or customer satisfaction. Employing a RAID system in such an application enhances availability of the stored data, since if a single disk drive fails, data may still be stored and retrieved from the system. In addition to the use of a RAID system, it is common to use redundant RAID controllers to further enhance the availability of a storage system. In such a situation, two or more controllers are used in a RAID system, with each controller having failover capability, where if one of the controllers fails the other remaining controller will assume operations for the failed controller. Such a platform enhances the availability of a RAID system, however, it can lead to several disadvantages, as will be discussed below.
FIG. 1
shows a block diagram representation of a dual controller configured RAID network storage controller
10
, showing a fibre channel to fibre channel connection. That is, in this example, the host computer and the array of disk drives both communicate with the network storage controller using fibre channel connections. While fibre channel is a common channel medium is such systems, it should be understood that other channels may also be used, such as, for example, Small Computer System Interface (SCSI) or Ethernet. The RAID system shown in
FIG. 1
includes two host ports, host port-
1
14
and host port-
2
18
and two disk ports, disk port-
1
22
and disk port-
2
26
. Each host port
14
,
18
may be zoned to different host computers, and each disk port
22
,
26
may be zoned to different disk arrays, as is common in RAID systems and is well known in the art. The network storage controller
10
includes dual RAID controllers, controller-A
30
, and controller-B
34
. In a system employing zoning of controllers, controller-A
30
may be zoned to host port-
1
14
and disk port-
1
22
, and controller-B
34
may be zoned to host port-
2
18
and disk port-
2
26
.
As is understood in the art, systems which employ dual controllers require data mirroring between controllers to maintain cache coherency. Each controller
30
,
34
, must have a copy of the data and status of the other controller in order to maintain redundancy between the controllers and thus maintain operation of the RAID system if one controller fails. Mirroring data between controllers can decrease the performance of a RAID system because transferring data between controllers uses processing resources of the controllers, as well as channel bandwidth, as will be discussed in more detail below.
The controllers
30
,
34
are connected to a fibre channel bus
38
, which is connected to two IO modules, IO module-
1
42
, and IO module-
2
46
. Each controller
30
,
34
, includes a CPU subsystem
50
, a double data rate (DDR) memory
54
, control logic
58
, a dual port fibre channel connection with two host ports
62
a
,
62
b
and a dual port fibre channel connection with two disk ports
66
a
,
66
b
. The CPU subsystem
58
performs tasks required for storage of data onto an array of disks, including striping data, and initiating and executing read and write commands. The DDR memory
54
is a nonvolatile storage area for data and other information. The control logic
58
performs several functions, such as interfacing with the CPU subsystem
50
, DDR memory
54
, and the host ports
62
a
,
62
b
and the disk ports
66
a
,
66
b
. The control logic
58
may also have other functions, including a parity generation function, such as an exclusive OR (XOR) engine. The host ports
62
a
,
62
b
and disk ports
66
a
,
66
b
provide communications with the fibre channel backplane
38
. The IO modules
42
,
46
include link resiliency circuits (LRCs)
70
, also known as port bypass circuits, which function to connect each host port
14
,
18
and each disk port
22
,
26
to each controller
30
,
34
. This allows both controllers
30
,
34
to have access to both host ports
14
,
18
and both disk ports
22
,
26
.
In order to provide full redundancy, each controller must have a connection to each host port
14
,
18
and each disk port
22
,
26
. This way, if there is a failure of one of the controllers, the other controller can continue operations. However, when using zoning techniques to enhance the performance of a RAID system, half of these ports are passive. For example, if controller-A
30
is zoned to host port-
1
14
and disk port-
1
22
, then controller-A
30
receives all communications from host port-
1
14
and controls the disk array(s) on disk port-
1
22
. Likewise, controller-B
34
would be zoned to host port-
2
18
and disk port-
2
26
. These zoning techniques are well known in the art and can increase performance of the RAID system as well as simplify control and communications of the two controllers
30
,
34
. In the example of
FIG. 1
, on controller-A
30
the host port connection
62
a
and disk port connection
66
a
are connected to host port-
1
14
and disk port-
1
22
, respectively, through the LRCs
70
of IO module-
1
42
. Because controller-A
30
is zoned to host port-
1
14
and disk port-
1
22
, the host port connection
62
a
and disk port connection
66
a
actively communicate with host port-
1
14
and disk port-
1
22
. The remaining host port connection
62
b
and disk port connection
66
b
are connected to host port-
1
18
and disk port-
2
26
, respectively, through the LRCs
70
of IO module-
2
46
. These connections are typically passive connections, as controller-A
30
is not actively communicating with host port-
2
18
and disk port-
2
26
, so long as controller-B
34
does not fail. Likewise, controller-B
34
would be zoned to host port-
2
18
and disk port-
2
26
. Thus, on controller-B
34
, the host port connection
62
b
and disk port connection
66
b
would communicate with host port-
2
18
and disk port-
2
26
through LRCs
70
of IO module-
2
46
. The remaining host port connection
62
a
and disk port connection
66
a
would be connected to host port-
1
14
and disk port-
1
22
through LRCs
70
of IO module-
1
42
.
As mentioned above, in typical redundant controller operations data is mirrored between controllers. When mirroring data between controller-A
30
and controller-B
34
, it is common to transfer the mirrored data over the shared disk port connections, namely disk port connection
66
b
of controller-A
30
, and disk port connection
66
a
of controller-B. For example, controller-B
34
may receive data over host port-
2
18
that is to be written to an array of drives over disk port-
2
. Controller-B
34
would
Busser Richard W.
Davies Ian R.
Chaparral Network Storage Inc.
Inoa Midys
Padmanabhan Mano
Sheridan & Ross P.C.
LandOfFree
Data mirroring using shared buses does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Data mirroring using shared buses, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Data mirroring using shared buses will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3220610