US20060083102A1 - Failover control of dual controllers in a redundant data storage system - Google Patents

Failover control of dual controllers in a redundant data storage system Download PDF

Info

Publication number
US20060083102A1
US20060083102A1 US10/969,149 US96914904A US2006083102A1 US 20060083102 A1 US20060083102 A1 US 20060083102A1 US 96914904 A US96914904 A US 96914904A US 2006083102 A1 US2006083102 A1 US 2006083102A1
Authority
US
United States
Prior art keywords
controller
state information
memory
memory space
data storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US10/969,149
Inventor
Ayman Ghanem
Robert Bean
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seagate Technology LLC
Original Assignee
Seagate Technology LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seagate Technology LLC filed Critical Seagate Technology LLC
Priority to US10/969,149 priority Critical patent/US20060083102A1/en
Assigned to SEAGATE TECHNOLOGY LLC reassignment SEAGATE TECHNOLOGY LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BEAN, ROBERT GEORGE, GHANEM, AYMAN MOHAMMAD
Priority to JP2005141035A priority patent/JP5403849B2/en
Publication of US20060083102A1 publication Critical patent/US20060083102A1/en
Assigned to WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT AND SECOND PRIORITY REPRESENTATIVE, JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT AND FIRST PRIORITY REPRESENTATIVE reassignment WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT AND SECOND PRIORITY REPRESENTATIVE SECURITY AGREEMENT Assignors: MAXTOR CORPORATION, SEAGATE TECHNOLOGY INTERNATIONAL, SEAGATE TECHNOLOGY LLC
Priority to US12/861,647 priority patent/US8275959B2/en
Assigned to SEAGATE TECHNOLOGY LLC, MAXTOR CORPORATION, SEAGATE TECHNOLOGY INTERNATIONAL, SEAGATE TECHNOLOGY HDD HOLDINGS reassignment SEAGATE TECHNOLOGY LLC RELEASE Assignors: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Assigned to SEAGATE TECHNOLOGY US HOLDINGS, INC., SEAGATE TECHNOLOGY LLC, EVAULT INC. (F/K/A I365 INC.), SEAGATE TECHNOLOGY INTERNATIONAL reassignment SEAGATE TECHNOLOGY US HOLDINGS, INC. TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Assignors: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT AND SECOND PRIORITY REPRESENTATIVE
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/74Masking faults in memories by using spares or by reconfiguring using duplex memories, i.e. using dual copies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2071Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers
    • G06F11/2074Asynchronous techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2089Redundant storage control functionality
    • G06F11/2092Techniques of failing over between control units

Definitions

  • the present invention relates generally to computer systems and more particularly but without limitation to failover control in a redundant data storage system.
  • Computer systems can comprise input devices, output devices, one or more processors, and storage media.
  • An operating system provides an application environment and a file system for allocating (and deallocating) storage capacity as files are created, modified, or deleted.
  • Specialized computer systems such as servers and storage arrays, for example, also employ a file system for allocating storage capacity that is accessed through a network or other connection.
  • Servers and storage arrays store files across a plurality of disc drives, depending on a desired storage format, such as a RAID level, for example.
  • User data files are mapped to one or more areas on one or more disc drives. Mapping includes storage of mirror data or parity data. Configuration information describing the manner in which data files are mapped to one or more disc drives is contained in tables or other data structures termed metadata. As files are created, modified, or deleted, metadata is updated to reflect the allocation or deallocation of storage capacity.
  • Systems can be multi-threaded and multi-tasking, simultaneously executing a number of processes.
  • Abnormal execution of one process (such as a system process or user application) can cause one or more processes to end in an incomplete manner increasing the likelihood of a system failure.
  • What is needed are enhanced solutions for recovering from such a failure, such as in switching from a master to a redundant controller in supporting hot rebooting of the system following such a failure.
  • the present invention is generally directed to a device and associated method for operating a redundant data storage system.
  • a redundant data storage system comprising a first controller with top-level control of a first memory space and a second controller with top-level control of a second memory space different than the first memory space.
  • the system is adapted for asynchronously writing state information by the first controller to the second memory space; alternatively the system is adapted for asynchronously writing state information by the second controller to the first memory space.
  • the memory spaces can comprise a reflective memory.
  • the system utilizes a crash recovery record created by one of the controllers associating a state information change request in relation to an existing state.
  • the crash recovery record and modified state information is reflectively written over a communication link, such as a data transfer window comprising a bus joining mapped memory regions of the memory spaces.
  • a method for operating a redundant data storage system having a first controller and a second controller.
  • the method comprises writing state information by the first controller in a first memory space under top-level control of the first controller, and asynchronously reflectively writing the state information to a second memory space different than the first memory space, the second memory space under top-level control of the second controller.
  • the method can further comprise modifying the state information by the first controller in the first memory space in response to a state information change request by the redundant data storage system, and asynchronously reflectively writing the modified state information to the second memory.
  • the method comprises creating a crash recovery record prior to modifying the state information, by associating the state information change request in relation to an existing state, and asynchronously reflectively writing the crash recovery record to the second memory.
  • the method can comprise resolving any inconsistency between the existing state information and the modified state information by invalidating a processor cache that is associated with the second controller.
  • the method can comprise switching control in the redundant data storage system to the second controller by employing the state information previously written to the second memory.
  • the switching operation can comprise combining the state information previously written to the second memory with the crash recovery record.
  • the resolving operation can further comprise clearing the crash recovery record after successfully reflectively writing the modified state information.
  • a redundant data storage system comprising a storage array comprising at least two independent controllers and means for switching control between the controllers.
  • the means for switching can be characterized by creating a crash recovery record by one of the controllers associated with a state information change request.
  • the means for switching can be characterized by asynchronously reflectively modifying the state information by one of the controllers to a memory space of the other controller.
  • the means for switching can be characterized by resolving inconsistent state information between the controllers associated with modifying the state information.
  • FIG. 1 is a top level functional block depiction of a redundant data storage system characterized as a storage area network (SAN) utilizing mass storage.
  • SAN storage area network
  • FIG. 2 is a functional block diagram illustrating a selected one of the controllers of FIG. 1
  • FIG. 3 is a diagrammatic depiction of a portion of both controllers in the system of FIG. 1 .
  • FIG. 4 is a flow chart illustrating steps for practicing a method for OPERATING A REDUNDANT ARRAY STORAGE SYSTEM in accordance with embodiments of the present invention.
  • FIG. 5 is a flow chart illustrating steps for practicing a method for SWITCHING CONTROL in the method of FIG. 4 .
  • FIG. 1 shows a redundant data storage system 100 characterized as a SAN utilizing mass storage.
  • the system 100 includes a number of host computers 102 , respectively identified as hosts A, B, and C.
  • the host computers 102 interact with each other as well as with a pair of data storage arrays 104 (denoted A and B, respectively) via a fabric 106 .
  • the fabric 106 is preferably characterized as fibre-channel based switching network, although other configurations can be utilized as well, including the Internet.
  • Each array 104 includes a pair of controllers 108 (denoted A 1 , A 2 and B 1 , B 2 ) and a set of data storage devices 110 preferably characterized as hard disc drives operated as a RAID (redundant array of independent discs).
  • the controllers 108 and data storage devices 110 preferably utilize a fault tolerant arrangement so that the various controllers 108 utilize parallel, redundant links and at least some of the user data stored by the system 100 is stored in a redundant format within at least one set of the data storage devices 110 .
  • a host computer 102 and the A data storage array 104 can be physically located at a first site, the B host computer 102 and B storage array 104 can be physically located at a second site, and the C host computer 102 can be yet at a third site, although such is merely illustrative and not limiting.
  • FIG. 2 illustrates a selected one of the controllers 108 in greater detail.
  • the controller 108 can be embodied in a single integrated circuit, or distributed among a number of discrete circuits as desired.
  • a main processor 112 with associated cache 113 preferably characterized as a programmable computer processor, provides top-level control in accordance with programming steps and processing data stored in non-volatile memory 114 (such as flash memory or similar) and in dynamic random access memory (DRAM) 116 .
  • non-volatile memory 114 such as flash memory or similar
  • DRAM dynamic random access memory
  • a fabric interface (I/F) circuit 118 communicates with the other controllers 108 and the host computers 102 via the fabric 106 , and a device I/F circuit 120 communicates with the storage devices 110 .
  • the I/F circuits 118 , 120 and a path controller 122 form a pass-through communication path for commands and data between the storage array 104 and the host 102 , such as by employing the cache memory 124 .
  • each path controller 122 and the corresponding I/F circuits 118 , 120 can be unitarily constructed.
  • a communication link such as a bus 126 (partially shown in FIG. 2 ) connects the controllers 108 A 1 , 108 A 2 , providing a fault tolerant arrangement in the event of a controller 108 failure.
  • FIG. 3 is a diagrammatic representation of a portion of the system 100 , illustrating a manner of linking the path controllers 122 A 1 , 122 A 2 by the bus 126 .
  • the system 100 can designate one of the controllers 108 A 1 , 108 A 2 as assuming master control for processing operations of the array 104 , and the other controller 108 A 1 , 108 A 2 as a redundant controller for use in the event of a failure or otherwise unavailability of the master controller.
  • the controller 108 A 1 has top-level control of a memory space 128 A 1 and the controller 108 A 2 has top-level control of a memory space 128 A 2 different than the memory space 128 A 1 .
  • the memory space 128 can comprise portions of the DRAM 116 .
  • the memory 128 A 1 has a mapped memory region 130 A 1 that is mirrored in a mapped memory region 130 A 2 of the memory 128 A 2 .
  • the mapped memory region 130 A 2 is mirrored in the mapped memory region 130 A 1 of the memory 128 A 1 .
  • These mapped memory regions 130 A 1 , 130 A 2 in cooperation with the bus 126 define a data transfer window 132 for reflectively writing data to the redundant controller 108 when writing the data locally to the master controller 108 .
  • the mapped memory regions 130 A 1 , 130 A 2 can be characterized as reflective memory portions of the respective memories 128 A 1 , 128 A 2 .
  • the path controller 122 A 1 incidentally packetizes the data into one or more packets and pushes the packet(s) through the data transfer window 132 and reflectively writes the data to a corresponding address in the reflective memory 130 A 2 .
  • data that is written by the path controller 122 A 2 to the memory 128 A 2 in response to a local write command is reflectively written to the reflective memory 130 A 1 .
  • the data storage capacity of an array 104 is defined by the extent of the data storage devices 110 in a given array 104 .
  • State information is ordered data that can be written to and read from an array 104 , defining data structures and object attributes.
  • state information can define the existence of and identity of a logical disc. The state information can further identify the circumstance under which a logical disc should be presented to the host.
  • the state information changes when a user command arrives to modify an object attribute.
  • Embodiments of the present invention contemplate a fast and efficient arrangement and associated methodology for providing the current state of the system 100 , as defined by the ever-changing state information, to the redundant controller 108 in the event of a failover to the redundant controller 108 .
  • the master controller 108 reflectively writes modified state information asynchronously for substantially instantaneous access of the redundant controller 108 to the most current state information.
  • asynchronously it is meant that the modified state information is pushed through the data transfer window 132 and stored directly to the associated reflective memory 130 , without the delay associated with acknowledging the reflective writes from the redundant controller 108 back to the master controller 108 .
  • Advantages of this relatively loosely coupled arrangement of multiple processors 112 A 1 , 112 A 2 existing in a unified external state include the instantaneous accessibility of the redundant controller 108 to the current state in the event of a failover. This makes a hot reboot of the system 100 possible immediately in recovering from the failover. For example, it is intended that embodiments practiced in accordance with the embodiments of the present invention support rebooting the system 100 in less than one second following the failover.
  • a failover that occurs while the master controller 108 is updating the state information can make maintaining a consistent state between the controllers 108 problematic.
  • One manner of resolving this potential problem is by having the master controller 108 create a crash recovery record and reflectively write it to the redundant controller 108 .
  • the crash recovery record associates a state information change request by the system 100 in relation to an existing state of the system 100 .
  • the crash recovery record is stored data that defines the state changes resulting from a configuration change request by the system 100 .
  • the crash recovery record can be used by the controller 108 in remedying an event making the present state lost or otherwise inconsistent.
  • the crash recovery record consists only of resultant data, and not formulaic data, such that it is not used to reinitiate any processes during the state recovery.
  • the recovery record requires no intelligence or decision-making for recovery. Rather, the crash recovery involves only mechanistic calculations such as address determinations and writes.
  • the actual address of where to write data can be implied by location in the recovery record, implied by reference to other constructs (i.e. logical device number), or can be explicit with an actual address in the recovery record. Particularly advantageous is that this permits the recovery record to be used in code for an idempotent updating of the state information, ensuring the fastest recovery possible. Addresses identifying locations within the system 100 can be written to the recovery record for each map, table or other data structure to be updated. Alternatively, information within the recovery record, such as the logical device numbers and storage grid numbers, can provide information from which the storage address can be generated.
  • FIG. 4 is a flow chart illustrative of steps for a method 140 of operating the redundant data storage system 100 in accordance with embodiments of the present invention.
  • the system 100 initially assigns control to a master controller in block 142 .
  • the master controller 108 can be either controller 108 A 1 , 108 A 2 ; accordingly, the redundant controller 108 will be the other controller 108 A 1 , 108 A 2 .
  • the method 140 begins with controller 108 A 1 assuming master control.
  • control of the controller 108 A 1 the system 100 assumes normal data transfer and manipulation operations in block 144 .
  • block 146 it is determined whether a state information change request has been commanded by the system 100 , such as incident with an allocation (or deallocation) request or an object attribute change or the like. If the determination of block 146 is no, then control returns to normal operations in block 144 . Otherwise, control passes to block 148 wherein the controller 108 A 1 creates the crash recovery record and writes the crash recovery record locally in memory 128 A 1 .
  • controller 108 A 1 asynchronously reflectively writes the crash recovery record to the memory 128 A 2 .
  • the controller 108 A 1 asynchronously reflectively writes the modified state information to the memory 128 A 2 .
  • Determination block 156 ascertains whether the controller 108 A 1 has written the last field of the modified state information, and if not, then advances to the next field in block 158 and returns control to block 152 for further modifying.
  • the controller 108 A 1 pushes a command through the data transfer window 132 to invalidate the processor cache 113 A 2 of the redundant controller 108 A 2 , to the extent of addresses in the processor cache 113 A 2 affected by the reflective writes (state update). This resolves any inconsistency between the previous state and the current state between the controllers 108 A 1 , 108 A 2 .
  • the controller 108 A 1 then clears the crash recovery record in block 162 and control returns to normal operations in block 144 .
  • Block 164 illustrates a switching operation for switching operational control between the controllers 108 A 1 , 108 A 2 . Switching can occur during normal operations 144 of the system 100 or during an update of the state information incident with the state information change request 146 .
  • FIG. 5 is a flowchart of illustrative steps for a method of switching the system 100 control from the controller 108 A 1 to the controller 108 A 2 . Although not shown in FIG. 5 , the switching operation 164 can switch control from controller 108 A 2 to controllers 108 A 1 in like manner.
  • the method 164 initially recognizes the controller 108 A 1 as assuming master control in block 166 , as assigned in block 142 in FIG. 4 .
  • Determination block 168 ascertains whether a switching of control to the controller 108 A 2 is warranted, such as in a failover event or the otherwise unavailability of the controller 108 A 1 . If switching is not called for then control returns to block 166 .
  • the controller 108 A 2 determines whether a valid crash recovery record exists in the memory 128 A 2 . If yes, then in block 172 the controller 108 A 2 obtains the state information that was previously stored in the memory 128 A 2 in block 174 , and combines it with the crash recovery record from the memory 128 A 2 previously stored in block 176 . Control then passes to block 178 where the controller 108 A 2 resolves any state information inconsistency between the controllers 108 , such as by invalidating the processor cache 113 A 1 and clearing the crash recovery record stored.
  • the embodiments of the present invention contemplate a redundant data storage system comprising a storage array with at least two independent controllers and means for switching control between the controllers.
  • the means for switching can be characterized by one of the controllers creating a crash recovery record, modifying state information associated with a state information change request, and asynchronously reflectively writing both the crash recovery record and the modified state information to the other controller.
  • the means for switching can also be characterized by resolving any inconsistent state information between the controllers whether control actually switches or not.
  • a system information change request comprises any request that updates configuration information of a system.

Abstract

A redundant data storage system is provided comprising a first controller with top-level control of a first memory space and a second controller with top-level control of a second memory space different than the first memory space. The system is adapted for asynchronously reflectively writing state information by the first controller to the second memory space; alternatively the system is adapted for asynchronously reflectively writing state information by the second controller to the first memory space. A method is provided for operating the redundant data storage system by resolving any inconsistency between the existing state information and a modified state information associated with a state information change request, and for switching control in the redundant data storage system between the controllers.

Description

    FIELD OF THE INVENTION
  • The present invention relates generally to computer systems and more particularly but without limitation to failover control in a redundant data storage system.
  • BACKGROUND
  • Computer systems can comprise input devices, output devices, one or more processors, and storage media. An operating system provides an application environment and a file system for allocating (and deallocating) storage capacity as files are created, modified, or deleted. Specialized computer systems, such as servers and storage arrays, for example, also employ a file system for allocating storage capacity that is accessed through a network or other connection. Servers and storage arrays store files across a plurality of disc drives, depending on a desired storage format, such as a RAID level, for example. User data files are mapped to one or more areas on one or more disc drives. Mapping includes storage of mirror data or parity data. Configuration information describing the manner in which data files are mapped to one or more disc drives is contained in tables or other data structures termed metadata. As files are created, modified, or deleted, metadata is updated to reflect the allocation or deallocation of storage capacity.
  • Systems can be multi-threaded and multi-tasking, simultaneously executing a number of processes. Abnormal execution of one process (such as a system process or user application) can cause one or more processes to end in an incomplete manner increasing the likelihood of a system failure. What is needed are enhanced solutions for recovering from such a failure, such as in switching from a master to a redundant controller in supporting hot rebooting of the system following such a failure.
  • SUMMARY OF THE INVENTION
  • As embodied herein and as claimed below, the present invention is generally directed to a device and associated method for operating a redundant data storage system.
  • In some embodiments a redundant data storage system is provided comprising a first controller with top-level control of a first memory space and a second controller with top-level control of a second memory space different than the first memory space. The system is adapted for asynchronously writing state information by the first controller to the second memory space; alternatively the system is adapted for asynchronously writing state information by the second controller to the first memory space. In some embodiments the memory spaces can comprise a reflective memory. The system utilizes a crash recovery record created by one of the controllers associating a state information change request in relation to an existing state. The crash recovery record and modified state information is reflectively written over a communication link, such as a data transfer window comprising a bus joining mapped memory regions of the memory spaces.
  • In some embodiments a method is provided for operating a redundant data storage system having a first controller and a second controller. The method comprises writing state information by the first controller in a first memory space under top-level control of the first controller, and asynchronously reflectively writing the state information to a second memory space different than the first memory space, the second memory space under top-level control of the second controller. The method can further comprise modifying the state information by the first controller in the first memory space in response to a state information change request by the redundant data storage system, and asynchronously reflectively writing the modified state information to the second memory. Preferably, the method comprises creating a crash recovery record prior to modifying the state information, by associating the state information change request in relation to an existing state, and asynchronously reflectively writing the crash recovery record to the second memory. The method can comprise resolving any inconsistency between the existing state information and the modified state information by invalidating a processor cache that is associated with the second controller. The method can comprise switching control in the redundant data storage system to the second controller by employing the state information previously written to the second memory. The switching operation can comprise combining the state information previously written to the second memory with the crash recovery record. The resolving operation can further comprise clearing the crash recovery record after successfully reflectively writing the modified state information.
  • In some embodiments a redundant data storage system is provided comprising a storage array comprising at least two independent controllers and means for switching control between the controllers. The means for switching can be characterized by creating a crash recovery record by one of the controllers associated with a state information change request. The means for switching can be characterized by asynchronously reflectively modifying the state information by one of the controllers to a memory space of the other controller. The means for switching can be characterized by resolving inconsistent state information between the controllers associated with modifying the state information.
  • These and various other features and advantages which characterize the embodiments of the claimed invention will become apparent upon reading the following detailed description and upon reviewing the associated drawings.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a top level functional block depiction of a redundant data storage system characterized as a storage area network (SAN) utilizing mass storage.
  • FIG. 2 is a functional block diagram illustrating a selected one of the controllers of FIG. 1
  • FIG. 3 is a diagrammatic depiction of a portion of both controllers in the system of FIG. 1.
  • FIG. 4 is a flow chart illustrating steps for practicing a method for OPERATING A REDUNDANT ARRAY STORAGE SYSTEM in accordance with embodiments of the present invention.
  • FIG. 5 is a flow chart illustrating steps for practicing a method for SWITCHING CONTROL in the method of FIG. 4.
  • DETAILED DESCRIPTION
  • To illustrate an exemplary environment in which presently preferred embodiments of the present invention can be advantageously practiced, FIG. 1 shows a redundant data storage system 100 characterized as a SAN utilizing mass storage.
  • The system 100 includes a number of host computers 102, respectively identified as hosts A, B, and C. The host computers 102 interact with each other as well as with a pair of data storage arrays 104 (denoted A and B, respectively) via a fabric 106. The fabric 106 is preferably characterized as fibre-channel based switching network, although other configurations can be utilized as well, including the Internet.
  • Each array 104 includes a pair of controllers 108 (denoted A1, A2 and B1, B2) and a set of data storage devices 110 preferably characterized as hard disc drives operated as a RAID (redundant array of independent discs). The controllers 108 and data storage devices 110 preferably utilize a fault tolerant arrangement so that the various controllers 108 utilize parallel, redundant links and at least some of the user data stored by the system 100 is stored in a redundant format within at least one set of the data storage devices 110.
  • It is further contemplated that the A host computer 102 and the A data storage array 104 can be physically located at a first site, the B host computer 102 and B storage array 104 can be physically located at a second site, and the C host computer 102 can be yet at a third site, although such is merely illustrative and not limiting.
  • FIG. 2 illustrates a selected one of the controllers 108 in greater detail. The controller 108 can be embodied in a single integrated circuit, or distributed among a number of discrete circuits as desired. A main processor 112 with associated cache 113, preferably characterized as a programmable computer processor, provides top-level control in accordance with programming steps and processing data stored in non-volatile memory 114 (such as flash memory or similar) and in dynamic random access memory (DRAM) 116.
  • A fabric interface (I/F) circuit 118 communicates with the other controllers 108 and the host computers 102 via the fabric 106, and a device I/F circuit 120 communicates with the storage devices 110. The I/ F circuits 118, 120 and a path controller 122 form a pass-through communication path for commands and data between the storage array 104 and the host 102, such as by employing the cache memory 124. Although illustrated discretely, it will be understood that each path controller 122 and the corresponding I/ F circuits 118, 120 can be unitarily constructed. A communication link such as a bus 126 (partially shown in FIG. 2) connects the controllers 108A1, 108A2, providing a fault tolerant arrangement in the event of a controller 108 failure.
  • FIG. 3 is a diagrammatic representation of a portion of the system 100, illustrating a manner of linking the path controllers 122A1, 122A2 by the bus 126. The system 100 can designate one of the controllers 108A1, 108A2 as assuming master control for processing operations of the array 104, and the other controller 108A1, 108A2 as a redundant controller for use in the event of a failure or otherwise unavailability of the master controller. To that end, the controller 108A1 has top-level control of a memory space 128A1 and the controller 108A2 has top-level control of a memory space 128A2 different than the memory space 128A1. The memory space 128 can comprise portions of the DRAM 116.
  • The memory 128A1 has a mapped memory region 130A1 that is mirrored in a mapped memory region 130A2 of the memory 128A2. Likewise, the mapped memory region 130A2 is mirrored in the mapped memory region 130A1 of the memory 128A1. These mapped memory regions 130A1, 130A2 in cooperation with the bus 126 define a data transfer window 132 for reflectively writing data to the redundant controller 108 when writing the data locally to the master controller 108.
  • In other words, the mapped memory regions 130A1, 130A2 can be characterized as reflective memory portions of the respective memories 128A1, 128A2. For example, when data is written by the controller 108A1 to the memory 128A1 in response to a local write command, the path controller 122A1 incidentally packetizes the data into one or more packets and pushes the packet(s) through the data transfer window 132 and reflectively writes the data to a corresponding address in the reflective memory 130A2. Likewise, data that is written by the path controller 122A2 to the memory 128A2 in response to a local write command is reflectively written to the reflective memory 130A1.
  • The data storage capacity of an array 104 is defined by the extent of the data storage devices 110 in a given array 104. State information is ordered data that can be written to and read from an array 104, defining data structures and object attributes. For example, state information can define the existence of and identity of a logical disc. The state information can further identify the circumstance under which a logical disc should be presented to the host.
  • The state information changes when a user command arrives to modify an object attribute. Embodiments of the present invention contemplate a fast and efficient arrangement and associated methodology for providing the current state of the system 100, as defined by the ever-changing state information, to the redundant controller 108 in the event of a failover to the redundant controller 108. To that end, preferably the master controller 108 reflectively writes modified state information asynchronously for substantially instantaneous access of the redundant controller 108 to the most current state information. By “asynchronously” it is meant that the modified state information is pushed through the data transfer window 132 and stored directly to the associated reflective memory 130, without the delay associated with acknowledging the reflective writes from the redundant controller 108 back to the master controller 108.
  • Advantages of this relatively loosely coupled arrangement of multiple processors 112A1, 112A2 existing in a unified external state include the instantaneous accessibility of the redundant controller 108 to the current state in the event of a failover. This makes a hot reboot of the system 100 possible immediately in recovering from the failover. For example, it is intended that embodiments practiced in accordance with the embodiments of the present invention support rebooting the system 100 in less than one second following the failover.
  • A failover that occurs while the master controller 108 is updating the state information can make maintaining a consistent state between the controllers 108 problematic. One manner of resolving this potential problem is by having the master controller 108 create a crash recovery record and reflectively write it to the redundant controller 108. The crash recovery record associates a state information change request by the system 100 in relation to an existing state of the system 100. In other words, the crash recovery record is stored data that defines the state changes resulting from a configuration change request by the system 100. The crash recovery record can be used by the controller 108 in remedying an event making the present state lost or otherwise inconsistent.
  • Preferably, to the greatest extent possible the crash recovery record consists only of resultant data, and not formulaic data, such that it is not used to reinitiate any processes during the state recovery. In this manner, the recovery record requires no intelligence or decision-making for recovery. Rather, the crash recovery involves only mechanistic calculations such as address determinations and writes.
  • This arrangement makes the recovery code both simple and reliable. The actual address of where to write data can be implied by location in the recovery record, implied by reference to other constructs (i.e. logical device number), or can be explicit with an actual address in the recovery record. Particularly advantageous is that this permits the recovery record to be used in code for an idempotent updating of the state information, ensuring the fastest recovery possible. Addresses identifying locations within the system 100 can be written to the recovery record for each map, table or other data structure to be updated. Alternatively, information within the recovery record, such as the logical device numbers and storage grid numbers, can provide information from which the storage address can be generated.
  • FIG. 4 is a flow chart illustrative of steps for a method 140 of operating the redundant data storage system 100 in accordance with embodiments of the present invention. The system 100 initially assigns control to a master controller in block 142. The master controller 108 can be either controller 108A1, 108A2; accordingly, the redundant controller 108 will be the other controller 108A1, 108A2. For purposes of illustration in the description that follows, the method 140 begins with controller 108A1 assuming master control.
  • Under control of the controller 108A1, the system 100 assumes normal data transfer and manipulation operations in block 144. In block 146 it is determined whether a state information change request has been commanded by the system 100, such as incident with an allocation (or deallocation) request or an object attribute change or the like. If the determination of block 146 is no, then control returns to normal operations in block 144. Otherwise, control passes to block 148 wherein the controller 108A1 creates the crash recovery record and writes the crash recovery record locally in memory 128A1. In block 150 controller 108A1 asynchronously reflectively writes the crash recovery record to the memory 128A2.
  • After completing a valid crash recovery record, control passes to block 152 wherein the controller 108A1 modifies the state information locally in memory 128A1 one field at a time in accordance with the state information change request. In block 154 the controller 108A1 asynchronously reflectively writes the modified state information to the memory 128A2. Determination block 156 ascertains whether the controller 108A1 has written the last field of the modified state information, and if not, then advances to the next field in block 158 and returns control to block 152 for further modifying. Otherwise, with a complete set of modified state information written to the memory 128A1, in block 160 the controller 108A1 pushes a command through the data transfer window 132 to invalidate the processor cache 113A2 of the redundant controller 108A2, to the extent of addresses in the processor cache 113A2 affected by the reflective writes (state update). This resolves any inconsistency between the previous state and the current state between the controllers 108A1, 108A2. The controller 108A1 then clears the crash recovery record in block 162 and control returns to normal operations in block 144.
  • Block 164 illustrates a switching operation for switching operational control between the controllers 108A1, 108A2. Switching can occur during normal operations 144 of the system 100 or during an update of the state information incident with the state information change request 146. FIG. 5 is a flowchart of illustrative steps for a method of switching the system 100 control from the controller 108A1 to the controller 108A2. Although not shown in FIG. 5, the switching operation 164 can switch control from controller 108A2 to controllers 108A1 in like manner.
  • For illustrative purposes, the method 164 initially recognizes the controller 108A1 as assuming master control in block 166, as assigned in block 142 in FIG. 4. Determination block 168 ascertains whether a switching of control to the controller 108A2 is warranted, such as in a failover event or the otherwise unavailability of the controller 108A1. If switching is not called for then control returns to block 166.
  • Upon a command for switching from the system 100 in determination block 168, in block 170 the controller 108A2 determines whether a valid crash recovery record exists in the memory 128A2. If yes, then in block 172 the controller 108A2 obtains the state information that was previously stored in the memory 128A2 in block 174, and combines it with the crash recovery record from the memory 128A2 previously stored in block 176. Control then passes to block 178 where the controller 108A2 resolves any state information inconsistency between the controllers 108, such as by invalidating the processor cache 113A1 and clearing the crash recovery record stored.
  • If it is determined in block 170 that no valid crash recovery record exists, then control passes to block 180 where the controller 108A2 obtains the state information from block 174. In any event, control then passes to block 182 which, in turn, passes control to block 142 of FIG. 4 wherein the controller 108A2 assumes master control of the array 104.
  • Generally, the embodiments of the present invention contemplate a redundant data storage system comprising a storage array with at least two independent controllers and means for switching control between the controllers. The means for switching can be characterized by one of the controllers creating a crash recovery record, modifying state information associated with a state information change request, and asynchronously reflectively writing both the crash recovery record and the modified state information to the other controller. The means for switching can also be characterized by resolving any inconsistent state information between the controllers whether control actually switches or not.
  • While the foregoing examples are directed to configuration of data storage systems (and can be applied to storage systems employing any media including but not limited to disc drives, WORM drives, writeable CD ROMS, DVDs, EEPROM, semiconductor RAM, and EEPROM), embodiments of the present invention can be applied to other hardware and software configurable elements of computer systems including component and connection configurations, such as network interfaces and graphics adapters, and to software configurations, such as application environment settings, register settings, passwords, and the like. For example, methods of the present invention can be applied to setting a password such that if a crash occurs while the password is being changed and the password is corrupted, a recovery record can be employed to write a non-corrupted password. As such, a system information change request comprises any request that updates configuration information of a system.
  • It is to be understood that even though numerous characteristics and advantages of various embodiments of the present invention have been set forth in the foregoing description, together with details of the structure and function of various embodiments of the invention, this detailed description is illustrative only, and changes may be made in detail, especially in matters of structure and arrangements of parts within the principles of the present invention to the full extent indicated by the broad general meaning of the terms in which the appended claims are expressed. For example, the particular elements may vary depending on the particular data storage structure without departing from the spirit and scope of the present invention.

Claims (20)

1. A redundant data storage system comprising a first controller with top-level control of a first memory space and a second controller with top-level control of a second memory space different than the first memory space, the arrangement adapted for asynchronously writing state information by the first controller to the second memory space.
2. The system of claim 1 wherein the second memory space comprises a reflective memory.
3. The system of claim 2 wherein the first memory space comprises a reflective memory.
4. The system of claim 3 alternatively adapted for asynchronously writing state information by the second controller to the first memory space.
5. The system of claim 4 comprising a crash recovery record created by one of the controllers associating a state information change request in relation to an existing state of the redundant data storage system.
6. The system of claim 5 comprising a communication link adapted for transmitting the state information and the crash recovery record between the memory spaces.
7. The system of claim 6 wherein the communication link comprises a data transfer window.
8. A method for operating a redundant data storage system having a first controller and a second controller, the method comprising:
writing state information by the first controller in a first memory space under top-level control of the first controller; and
asynchronously reflectively writing the state information to a second memory space different than the first memory space, the second memory space under top-level control of the second controller.
9. The method of claim 8 further comprising:
modifying the state information by the first controller in the first memory space in response to a state information change request by the redundant data storage system; and
asynchronously reflectively writing the modified state information to the second memory.
10. The method of claim 9 further comprising:
creating a crash recovery record prior to modifying the state information step by associating the state information change request in relation to an existing state; and
asynchronously reflectively writing the crash recovery record to the second memory.
11. The method of claim 10 further comprising resolving any inconsistency between the existing state information and the modified state information by invalidating a cache that is associated with the second controller.
12. The method of claim 11 further comprising switching control in the redundant data storage system to the second controller by employing the state information previously written to the second memory.
13. The method of claim 12 wherein the switching step comprises combining the state information previously written to the second memory with the crash recovery record.
14. The method of claim 13 wherein the resolving step further comprises clearing the crash recovery record.
15. The method of claim 8 wherein the asynchronously reflectively writing step is characterized by mapping a memory region in each of the first and second memories and linking the controllers.
16. The method of claim 15 wherein the mapping and linking steps are characterized by a data transfer window.
17. A redundant data storage system comprising:
a data storage array comprising at least two independent controllers; and
means for switching control from a first controller to a second controller.
18. The system of claim 17 wherein the means for switching is characterized by creating a crash recovery record by the first controller incident with a state information change request.
19. The system of claim 17 wherein the means for switching is characterized by asynchronously reflectively modifying the state information by the first controller to a memory space of the second controller.
20. The system of claim 19 wherein the means for switching is characterized by resolving inconsistent state information between the controllers associated with modifying the state information.
US10/969,149 2004-10-20 2004-10-20 Failover control of dual controllers in a redundant data storage system Abandoned US20060083102A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US10/969,149 US20060083102A1 (en) 2004-10-20 2004-10-20 Failover control of dual controllers in a redundant data storage system
JP2005141035A JP5403849B2 (en) 2004-10-20 2005-05-13 Redundant data storage system having dual controller and method of operation thereof
US12/861,647 US8275959B2 (en) 2004-10-20 2010-08-23 Failover control of dual controllers in a redundant data storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/969,149 US20060083102A1 (en) 2004-10-20 2004-10-20 Failover control of dual controllers in a redundant data storage system

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US12/861,647 Continuation US8275959B2 (en) 2004-10-20 2010-08-23 Failover control of dual controllers in a redundant data storage system

Publications (1)

Publication Number Publication Date
US20060083102A1 true US20060083102A1 (en) 2006-04-20

Family

ID=36180600

Family Applications (2)

Application Number Title Priority Date Filing Date
US10/969,149 Abandoned US20060083102A1 (en) 2004-10-20 2004-10-20 Failover control of dual controllers in a redundant data storage system
US12/861,647 Expired - Fee Related US8275959B2 (en) 2004-10-20 2010-08-23 Failover control of dual controllers in a redundant data storage system

Family Applications After (1)

Application Number Title Priority Date Filing Date
US12/861,647 Expired - Fee Related US8275959B2 (en) 2004-10-20 2010-08-23 Failover control of dual controllers in a redundant data storage system

Country Status (2)

Country Link
US (2) US20060083102A1 (en)
JP (1) JP5403849B2 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060224824A1 (en) * 2005-03-31 2006-10-05 Inventec Corporation System and method for accessing and verifying the validity of data content stored in the cache memory on disk
US20060236198A1 (en) * 2005-04-01 2006-10-19 Dot Hill Systems Corporation Storage system with automatic redundant code component failure detection, notification, and repair
US20060236150A1 (en) * 2005-04-01 2006-10-19 Dot Hill Systems Corporation Timer-based apparatus and method for fault-tolerant booting of a storage controller
US20090217087A1 (en) * 2008-02-27 2009-08-27 Eiji Nakajima Computer device, continuing operation method for computer device, and program
EP1868074A3 (en) * 2006-06-06 2010-01-20 Hitachi, Ltd. Storage system and storage control device
CN112835519A (en) * 2021-01-29 2021-05-25 杭州海康威视数字技术股份有限公司 Data reading method and device, electronic equipment and storage medium

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102375699A (en) * 2010-08-23 2012-03-14 英业达股份有限公司 Storage system
US9645738B2 (en) 2012-08-09 2017-05-09 Spectra Logic Corporation Direct memory access of remote data
US9218133B2 (en) 2012-08-17 2015-12-22 Spectra Logic, Corp Data deduplication in a removable storage device
CN107850873B (en) * 2015-07-23 2021-12-21 三菱电机株式会社 Dual process control device
WO2017131729A1 (en) * 2016-01-29 2017-08-03 Hewlett Packard Enterprise Development Lp Managing a storage system
US9952974B2 (en) 2016-06-07 2018-04-24 International Business Machines Corporation Preservation of modified cache data in local non-volatile storage following a failover

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5475858A (en) * 1992-03-25 1995-12-12 Encore Computer, U.S., Inc. Real time multiprocessor system having a write only data link connected to one of the ports of the memory of each of the processor nodes
US20010016878A1 (en) * 2000-02-17 2001-08-23 Hideki Yamanaka Communicating system and communicating method for controlling throughput
US20030079102A1 (en) * 2001-06-01 2003-04-24 Lubbers Clark E. System and method for generating point in time storage copy
US20030084241A1 (en) * 2001-10-22 2003-05-01 Lubbers Clark E. System and method for atomizing storage
US20030110233A1 (en) * 2001-12-10 2003-06-12 Vmic Reflective memory system and method capable of dynamically sizing data packets
US20030217257A1 (en) * 2002-05-17 2003-11-20 Ebsen David S. Method for updating memory resident firmware as a background operation
US20030217310A1 (en) * 2002-05-17 2003-11-20 Ebsen David S. Method and apparatus for recovering from a non-fatal fault during background operations
US20040024807A1 (en) * 2002-07-31 2004-02-05 Microsoft Corporation Asynchronous updates of weakly consistent distributed state information
US6691250B1 (en) * 2000-06-29 2004-02-10 Cisco Technology, Inc. Fault handling process for enabling recovery, diagnosis, and self-testing of computer systems
US20040034670A1 (en) * 2002-07-31 2004-02-19 At&T Wireless Services, Inc. Efficient synchronous and asynchronous database replication
US20040133591A1 (en) * 2001-03-16 2004-07-08 Iti, Inc. Asynchronous coordinated commit replication and dual write with replication transmission and locking of target database on updates only
US6779093B1 (en) * 2002-02-15 2004-08-17 Veritas Operating Corporation Control facility for processing in-band control messages during data replication

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02276398A (en) * 1988-11-09 1990-11-13 Gibraltar Technol Corp Apparatus and method for electronic cross-connection
EP0721162A2 (en) * 1995-01-06 1996-07-10 Hewlett-Packard Company Mirrored memory dual controller disk storage system
JP3772369B2 (en) * 1995-11-20 2006-05-10 株式会社日立製作所 Storage subsystem
US6067595A (en) * 1997-09-23 2000-05-23 Icore Technologies, Inc. Method and apparatus for enabling high-performance intelligent I/O subsystems using multi-port memories
JP2001308939A (en) * 2000-02-17 2001-11-02 Fujitsu Ltd Communication system and method for controlling throughput
US7538772B1 (en) * 2000-08-23 2009-05-26 Nintendo Co., Ltd. Graphics processing system with enhanced memory controller
US6708285B2 (en) * 2001-03-15 2004-03-16 Hewlett-Packard Development Company, L.P. Redundant controller data storage system having system and method for handling controller resets
US6938124B2 (en) * 2002-07-19 2005-08-30 Hewlett-Packard Development Company, L.P. Hardware assisted communication between processors

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5475858A (en) * 1992-03-25 1995-12-12 Encore Computer, U.S., Inc. Real time multiprocessor system having a write only data link connected to one of the ports of the memory of each of the processor nodes
US20010016878A1 (en) * 2000-02-17 2001-08-23 Hideki Yamanaka Communicating system and communicating method for controlling throughput
US6691250B1 (en) * 2000-06-29 2004-02-10 Cisco Technology, Inc. Fault handling process for enabling recovery, diagnosis, and self-testing of computer systems
US20040133591A1 (en) * 2001-03-16 2004-07-08 Iti, Inc. Asynchronous coordinated commit replication and dual write with replication transmission and locking of target database on updates only
US20030079102A1 (en) * 2001-06-01 2003-04-24 Lubbers Clark E. System and method for generating point in time storage copy
US20030084241A1 (en) * 2001-10-22 2003-05-01 Lubbers Clark E. System and method for atomizing storage
US20030110233A1 (en) * 2001-12-10 2003-06-12 Vmic Reflective memory system and method capable of dynamically sizing data packets
US6779093B1 (en) * 2002-02-15 2004-08-17 Veritas Operating Corporation Control facility for processing in-band control messages during data replication
US20030217257A1 (en) * 2002-05-17 2003-11-20 Ebsen David S. Method for updating memory resident firmware as a background operation
US20030217310A1 (en) * 2002-05-17 2003-11-20 Ebsen David S. Method and apparatus for recovering from a non-fatal fault during background operations
US20040024807A1 (en) * 2002-07-31 2004-02-05 Microsoft Corporation Asynchronous updates of weakly consistent distributed state information
US20040034670A1 (en) * 2002-07-31 2004-02-19 At&T Wireless Services, Inc. Efficient synchronous and asynchronous database replication

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060224824A1 (en) * 2005-03-31 2006-10-05 Inventec Corporation System and method for accessing and verifying the validity of data content stored in the cache memory on disk
US7263581B2 (en) * 2005-03-31 2007-08-28 Inventec Corporation System and method for accessing and verifying the validity of data content stored in the cache memory on disk
US20060236198A1 (en) * 2005-04-01 2006-10-19 Dot Hill Systems Corporation Storage system with automatic redundant code component failure detection, notification, and repair
US20060236150A1 (en) * 2005-04-01 2006-10-19 Dot Hill Systems Corporation Timer-based apparatus and method for fault-tolerant booting of a storage controller
US7523350B2 (en) 2005-04-01 2009-04-21 Dot Hill Systems Corporation Timer-based apparatus and method for fault-tolerant booting of a storage controller
US7711989B2 (en) * 2005-04-01 2010-05-04 Dot Hill Systems Corporation Storage system with automatic redundant code component failure detection, notification, and repair
EP1868074A3 (en) * 2006-06-06 2010-01-20 Hitachi, Ltd. Storage system and storage control device
US20090217087A1 (en) * 2008-02-27 2009-08-27 Eiji Nakajima Computer device, continuing operation method for computer device, and program
US8181063B2 (en) * 2008-02-27 2012-05-15 Nec Corporation Computer device, continuing operation method for computer device, and program
CN112835519A (en) * 2021-01-29 2021-05-25 杭州海康威视数字技术股份有限公司 Data reading method and device, electronic equipment and storage medium

Also Published As

Publication number Publication date
JP5403849B2 (en) 2014-01-29
US20100325480A1 (en) 2010-12-23
US8275959B2 (en) 2012-09-25
JP2006120119A (en) 2006-05-11

Similar Documents

Publication Publication Date Title
US8275959B2 (en) Failover control of dual controllers in a redundant data storage system
CN101571815B (en) Information system and i/o processing method
US10365983B1 (en) Repairing raid systems at per-stripe granularity
EP3519969B1 (en) Physical media aware spacially coupled journaling and replay
JP4248510B2 (en) Computer system, disk device, and data update control method
JP3505093B2 (en) File management system
US7412578B2 (en) Snapshot creating method and apparatus
US7069465B2 (en) Method and apparatus for reliable failover involving incomplete raid disk writes in a clustering system
US7882316B2 (en) Shared data mirroring apparatus, method, and system
US6961818B1 (en) Method, system and computer program product for managing data in a mirrored cache using an access balancing technique
US20030069886A1 (en) System and method for host based storage virtualization
US6604171B1 (en) Managing a cache memory
US9767117B2 (en) Method and system for efficient write journal entry management for a distributed file system
CN105339907A (en) Synchronous mirroring in non-volatile memory systems
US20050246576A1 (en) Redundant system utilizing remote disk mirroring technique, and initialization method for remote disk mirroring for in the system
US7260739B2 (en) Method, apparatus and program storage device for allowing continuous availability of data during volume set failures in a mirrored environment
US7904747B2 (en) Restoring data to a distributed storage node
US20050102482A1 (en) Method and system for configuring RAID subsystems with block I/O commands and block I/O path
JP2004213470A (en) Disk array device, and data writing method for disk array device
US7330955B2 (en) Recovery record for updating a system configuration
JP2000293389A (en) Mirror disk restoration system in fault tolerant system
JPH1124849A (en) Fault recovery method and device therefor
JP4158525B2 (en) Disk array device
US20230409480A1 (en) Systems and methods for a redundant array of independent disks (raid) using a raid circuit in cache coherent interconnect storage devices
JPH07319637A (en) Controller and control method for disk device

Legal Events

Date Code Title Description
AS Assignment

Owner name: SEAGATE TECHNOLOGY LLC, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:GHANEM, AYMAN MOHAMMAD;BEAN, ROBERT GEORGE;REEL/FRAME:015922/0899

Effective date: 20041019

AS Assignment

Owner name: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT

Free format text: SECURITY AGREEMENT;ASSIGNORS:MAXTOR CORPORATION;SEAGATE TECHNOLOGY LLC;SEAGATE TECHNOLOGY INTERNATIONAL;REEL/FRAME:022757/0017

Effective date: 20090507

Owner name: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATE

Free format text: SECURITY AGREEMENT;ASSIGNORS:MAXTOR CORPORATION;SEAGATE TECHNOLOGY LLC;SEAGATE TECHNOLOGY INTERNATIONAL;REEL/FRAME:022757/0017

Effective date: 20090507

STCB Information on status: application discontinuation

Free format text: ABANDONED -- AFTER EXAMINER'S ANSWER OR BOARD OF APPEALS DECISION

AS Assignment

Owner name: SEAGATE TECHNOLOGY INTERNATIONAL, CALIFORNIA

Free format text: RELEASE;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:025662/0001

Effective date: 20110114

Owner name: SEAGATE TECHNOLOGY LLC, CALIFORNIA

Free format text: RELEASE;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:025662/0001

Effective date: 20110114

Owner name: SEAGATE TECHNOLOGY HDD HOLDINGS, CALIFORNIA

Free format text: RELEASE;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:025662/0001

Effective date: 20110114

Owner name: MAXTOR CORPORATION, CALIFORNIA

Free format text: RELEASE;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:025662/0001

Effective date: 20110114

AS Assignment

Owner name: SEAGATE TECHNOLOGY INTERNATIONAL, CAYMAN ISLANDS

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT AND SECOND PRIORITY REPRESENTATIVE;REEL/FRAME:030833/0001

Effective date: 20130312

Owner name: SEAGATE TECHNOLOGY LLC, CALIFORNIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT AND SECOND PRIORITY REPRESENTATIVE;REEL/FRAME:030833/0001

Effective date: 20130312

Owner name: EVAULT INC. (F/K/A I365 INC.), CALIFORNIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT AND SECOND PRIORITY REPRESENTATIVE;REEL/FRAME:030833/0001

Effective date: 20130312

Owner name: SEAGATE TECHNOLOGY US HOLDINGS, INC., CALIFORNIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT AND SECOND PRIORITY REPRESENTATIVE;REEL/FRAME:030833/0001

Effective date: 20130312