WO2008073219A1 - Data redundancy in a plurality of storage devices - Google Patents

Data redundancy in a plurality of storage devices Download PDF

Info

Publication number
WO2008073219A1
WO2008073219A1 PCT/US2007/024294 US2007024294W WO2008073219A1 WO 2008073219 A1 WO2008073219 A1 WO 2008073219A1 US 2007024294 W US2007024294 W US 2007024294W WO 2008073219 A1 WO2008073219 A1 WO 2008073219A1
Authority
WO
WIPO (PCT)
Prior art keywords
data redundancy
recited
storage devices
redundancy scheme
storage
Prior art date
Application number
PCT/US2007/024294
Other languages
English (en)
French (fr)
Inventor
Radoslav Danilak
Original Assignee
Sandforce, Inc.
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
Priority claimed from US11/942,629 external-priority patent/US7904672B2/en
Priority claimed from US11/942,623 external-priority patent/US8090980B2/en
Application filed by Sandforce, Inc. filed Critical Sandforce, Inc.
Priority to CN200780044865.6A priority Critical patent/CN101548271B/zh
Priority to JP2009540232A priority patent/JP2010511963A/ja
Publication of WO2008073219A1 publication Critical patent/WO2008073219A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/2002Error 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 interconnections or communication control functionality are redundant
    • G06F11/2007Error 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 interconnections or communication control functionality are redundant using redundant communication media
    • G06F11/201Error 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 interconnections or communication control functionality are redundant using redundant communication media between storage system components
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/2015Redundant power supplies

Definitions

  • the present invention relates to data storage, and more particularly to data redundancy in storage devices.
  • the storage system is one of the most limiting aspects of performance of modern enterprise computing systems. Performance of hard drive based storage is determined by seek time and time for half rotation. The performance is increased by decreasing seek time and decreasing rotational latency. However, there are limits on how fast a drive may spin. The fastest contemporary drives are reaching 15,000 rpm.
  • Figure 1 illustrates a system 100 in accordance with the prior art.
  • at least one computer 102-108 is coupled to a host controller 110 and 112.
  • the host controllers 110 and 112 are coupled to a plurality of disks 114-120.
  • the system 100 is configured as redundant array of independent disks (RAID)-I, storing mirrored content of the disks 114-116 in the disks 118-120.
  • the disks 114-116 are said to be mirrored by the disks 118-120.
  • a system, method, and computer program product are provided for providing data redundancy in a plurality of storage devices.
  • storage commands are received for providing data redundancy in accordance with a first data redundancy scheme.
  • the storage commands are translated for providing the data redundancy in accordance with a second data redundancy scheme.
  • the translated storage commands are outputted for providing the data redundancy in a plurality of storage devices.
  • Figure 1 illustrates a system in accordance with the prior art.
  • Figure 2A shows a system for providing data redundancy in a plurality of storage devices, in accordance with one embodiment.
  • Figure 2B shows a storage system for providing data redundancy in a plurality of storage devices, in accordance with one embodiment.
  • Figure 3 shows a disk assembly, in accordance with one embodiment.
  • Figure 4 shows a disk assembly, in accordance with another embodiment.
  • Figure 5 shows a method for operating a redundant disk controller, in accordance with one embodiment.
  • Figure 6 shows a method for operating a redundant disk controller, in accordance with another embodiment.
  • Figure 7 shows a system for operating a redundant disk controller, in accordance with another embodiment.
  • Figure 8 illustrates an exemplary system in which the various architecture and/or functionality of the various previous embodiments may be implemented.
  • FIG. 2 A shows a system 280 for providing data redundancy in a plurality of storage devices, in accordance with one embodiment.
  • the system 280 includes at least one computer 285-288.
  • the computers 285-288 are in communication with at least one controller 290-291.
  • the controllers 290-291 are in communication with a storage system 292 which includes a plurality of disk controllers 293-294 and a plurality of storage devices 296-299. It should be noted that, although the controllers 290-291 are shown separately, in another embodiment such controllers 290- 291 may be one unit. Additionally, the plurality of disk controllers 293-294 may be one unit or independent units in various embodiments.
  • storage commands are received for providing data redundancy in accordance with a first data redundancy scheme. Additionally, the storage commands are translated for providing the data redundancy in accordance with a second data redundancy scheme. Furthermore, the translated storage commands are outputted for providing the data redundancy in the plurality of storage devices 296-299.
  • storage commands refer to any command, instruction, or data to store or facilitate the storage of data.
  • a data redundancy scheme refers to any type of scheme for providing redundant data or a fault tolerance in a system.
  • the data redundancy scheme may include, but is not limited to, a redundant array of independent disks (RAID) 0 data redundancy scheme, a RAID 1 data redundancy scheme, a RAID 10 data redundancy scheme, a RAID 3 data redundancy scheme, a RAID 4 data redundancy scheme, a RAID 5 data redundancy scheme, a RAID 50 data redundancy scheme, a RAID 6 data redundancy scheme, a RAID 60 data redundancy scheme, square parity data redundancy schemas, any non-standard RAID data redundancy scheme, any nested RAID data redundancy scheme, and/or any other data redundancy scheme that meets the above definition.
  • RAID redundant array of independent disks
  • the first data redundancy scheme may include a RAID 1 data redundancy scheme.
  • the second data redundancy scheme may include a RAID 5 data redundancy scheme.
  • the second data redundancy scheme may include a RAID 6 data redundancy scheme.
  • the plurality of storage devices 296-299 may represent any type of storage devices.
  • the storage devices 296-299 may include, but are not limited to, mechanical storage devices (e.g. disk drives, etc.), solid state storage devices (e.g. dynamic random access memory (DRAM), flash memory, etc.), and/or any other storage device.
  • the storage devices 296-299 include flash memory
  • the flash memory may include, but is not limited to, single-level cell (SLC) devices, multi-level cell (MLC) devices, NOR flash memory, NAND flash memory, MLC NAND flash memory, SLC NAND flash memory, etc.
  • Figure 2B shows a storage subsystem 250 for providing data redundancy in a plurality of storage devices, in accordance with one embodiment.
  • the storage subsystem 250 may be viewed in the context of the details of Figure 2A.
  • the storage subsystem 250 may be implemented in the context of any desired environment. It should also be noted that the aforementioned definitions may apply during the present description.
  • the storage subsystem 250 includes a plurality of primary storage devices 231-232 and at least one additional storage device 233-234 utilized to increase storage capacity for inclusion of redundant information.
  • the amount of data storage of the storage subsystem 250 may be considered as the sum of the storage capacities of the plurality of primary storage devices 231-232.
  • the storage capacity may also be expanded through the additional storage device 233-234.
  • the additional storage device 233-234 may be used solely to store redundant information computed from stored data.
  • a first disk controller 210 includes at least one port 201.
  • at least one of the ports 201 may serve as a first port of the storage subsystem 250.
  • at least one of the ports 201 may serve as a port of the first disk controller 210 to a disk controller bus 203, power supply connections 275, and internal connections 211-214 coupling the first disk controller 210 to corresponding busses 241- 244 of the storage devices 231-234.
  • the bus 203 couples the first disk controller 210 to a second disk controller 220.
  • the bus 203 may be used to monitor operation of the first disk controller 210 with the second disk controller 220.
  • the disk controller 220 may disconnect the internal connections 211-214 from the corresponding busses 241-244 by issuing a disconnect request to the first disk controller 210 via the disk controller bus 203.
  • the bus 203 coupling the first disk controller 210 to the second disk controller 220 may also be used to monitor operation of the second disk controller 220 using the first disk controller 210.
  • the first disk controller 210 may disconnect internal connections 221- 224 from the corresponding busses 241-244 by issuing a disconnect request to the second disk controller 220 via the disk controller bus 203.
  • the first disk controller 210 may detect internal incorrect operation, or incorrect operation associated with the first disk controller 210. In this case, the first disk controller 210 may disconnect the connections 211-214 from the corresponding busses 241-244 when an internal incorrect operation is detected.
  • the second disk controller 220 may detect internal incorrect operation, or incorrect operation associated with the second disk controller 220. In this case, the second disk controller 220 may disconnect the connections 221-224 from the corresponding busses 241-244 when an internal incorrect operation is detected.
  • the first and second disk controllers 210 and 220 may detect a failure of the disk controller bus 203.
  • the second disk controller 220 may disconnect the connections 221-224 from the corresponding busses 241-244 and the first disk controller 210 may remain active.
  • the first disk controller 210 may disconnect the connections 211-214 from the corresponding busses 241-244 and the second disk controller 220 may remain active.
  • the disk controller that is to remain active may disconnect the connections of the controller that is to be inactive.
  • the disconnection of the buses 211-214 and 221-224 may be implemented through three state circuits, multiplexers, or any other circuits for disconnecting the busses 211-214 and 221-224.
  • the disconnection may be accomplished by placing three state bus drivers associated with the disk controllers 210 or 220 into a high impedance state.
  • the disconnection may be accomplished by controlling multiplexers on an input of the storage devices 231-234.
  • the second disk controller 220 includes at least one port 202.
  • at least one of the ports 202 may serve as a second port of the storage subsystem 250.
  • at least one of the ports 202 may serve as a port of the second disk controller 220 to the disk controller bus 203, power supply connections 276, and internal connections 221-224 coupling the second disk controller 220 to the corresponding busses 241-244 of the storage devices 231-234.
  • the storage subsystem 250 may operate without a loss of data in the presence of a single failure of any of the storage devices 231-233.
  • the organization of data and redundant information may be in accordance with RAID 5.
  • the organization of data and redundant information may be in accordance with RAID 6, RAID 10, RAID 50, RAID 60, square parity redundancy schemas, etc.
  • the storage subsystem 250 may continue to operate without loss of any data in presence of failure of any two of the storage devices 231-234.
  • the ports 201 and 202 may present data stored in the storage subsystem 250 as two conventional independent mirrored disks.
  • such conventional independent mirrored disks may appear as RAID 1, RAID 10, RAID 50, RAID 60, square parity redundancy schemas, etc.
  • the power to the storage subsystem 250 may be supplied through a first power connector 251 coupled to a first power supply unit 253 via electric connections 252.
  • the power to storage subsystem 250 may also be supplied through a second power connector 261 coupled to a second power supply unit 263 via connections 262.
  • the output of the first power supply 253 and the output of the second power supply 263 may be joined and distributed to the disk controllers 210 and 220 and the storage devices 231-234 through an electric power distribution network 270.
  • the storage devices 231-234 are coupled to the power distribution network 270 via corresponding connections 271-274.
  • the disk controllers 210 and 220 are coupled to the power distribution network 270 via the power supply connections 275 and 276.
  • the power to the storage subsystem 250 may be supplied through the power connector 261.
  • the power to the storage subsystem 250 may be supplied through the power connector 251.
  • the power to the storage subsystem 250 may be supplied through the connections 262.
  • the power to the storage subsystem 250 may be supplied through the connections 252.
  • power to the storage subsystem 250 may be supplied by the power supply 263. If the power supply 263 fails, power to the storage subsystem 250 may be supplied by the power supply 253. Similarly, when the connections 254 fail, the power to the storage subsystem 250 may be supplied through the connections 264. Likewise, when the connections 264 fail the power to the storage subsystem 250 may be supplied through the connections 254. Thus, the storage subsystem 250 allows for failure of various components, without rendering the storage subsystem 250 inoperable.
  • the disk controllers 210 and/or 220 may contain circuits to detect that power to the power supplies 253 and 263 are disconnected. Additionally, such circuits may provide power to save a state of the disk controllers 210 and 220 into the storage devices 231-234 such that no loss of data occurs. For example, a disconnection of the power supply 253 and/or 263 may be detected.
  • power may be supplied to the storage devices 231-234, in response to the detection of a disconnection of the power supply 253 and 263.
  • the power supplies 253 and 263 may supply power to the storage subsystem 250 for enough time such that after power to both of the power supplies 253 and 263 is disconnected, writing of the state of the disk controllers 210 and 220 into the storage devices 231-234 may be completed.
  • power may be provided to the storage devices 231-234 until at least a point when no data loss will occur as a result of the disconnection of the power supplies 253 and 263.
  • the power supplies 253 and 263 may include a battery, a capacitor, and/or any other component to provide power to the storage subsystem 250 when the power to the power supplies 253 and 263 is disconnected.
  • the storage subsystem 250 may continue to operate, without a loss of data, in the presence of any single failure of any element illustrated in Figure 2B.
  • the storage devices 231- 234 may be mechanical storage devices, non-mechanical storage devices, volatile or nonvolatile storage.
  • the storage devices 231-234 may include, but is not limited to, DRAM or flash storage (e.g. SLC devices, MLC devices, NOR gate flash devices, NAND gate flash storage devices, etc.).
  • the disk controllers 210 and 220 may be implemented as two independent chips. In another embodiment, the disk controllers 210 and 220 may be implemented on one chip or die. Such implementation may be determined based on packaging concerns, for example.
  • Figure 3 shows a disk assembly 300, in accordance with one embodiment.
  • the disk assembly 300 may be implemented in the context of the functionality and architecture of Figures 1-2. Of course, however, the disk assembly 300 may be implemented in the context of any desired environment. It should also be noted that the aforementioned definitions may apply during the present description.
  • the disk assembly 300 includes a printed circuit board 302 including a disk drive (not shown), a power connector with primary port as part of a SATA (Serial Advanced Technology Attachment) connector 304 and a power connector with a secondary port as part of a second SATA connector 306.
  • the disk assembly 300 may include SAS (Serial Attached SCSI) connectors.
  • the disk assembly 300 may include the printed circuit board 302 including a disk drive (not shown), a power connector with primary port as part of a SAS connector 304 and a power connector with a secondary port as part of a second SAS connector 306.
  • the connectors 304 and 306 may expose the disk assembly 300 as a certain data redundancy configuration.
  • an SATA interface may expose the disk assembly 300 as a pair of disks configured in a RAID 1 mode.
  • an SAS interface may expose the disk assembly 300 as pair of disks configured in a RAID 1 mode.
  • an SATA and an SAS interface may expose the disk assembly 300 as plurality of disks configured in a RAID 0 mode.
  • Figure 4 shows a disk assembly 400, in accordance with another embodiment.
  • the disk assembly 400 may be implemented in the context of the functionality and architecture of Figures 1-3.
  • the disk assembly 400 may be implemented in the context of any desired environment. It should also be noted that the aforementioned definitions may apply during the present description.
  • the disk assembly 400 includes two or more disks assemblies 410 and 420.
  • the disk assemblies 410 and 420 may include the disk assembly 300 from Figure 3.
  • each disk assembly 410 and 420 may include a printed circuit board, and connectors 430.
  • each disk assembly 410 and 420 may be interconnected via an electrical connection 401.
  • the electrical connection 401 may represent a disk controller bus, such as the disk controller bus 203 of Figure 2B, for example.
  • the disk assembly 400 may increase storage performance of a system by allowing more than one disk (e.g. disks assemblies 410 and 420) to occupy a space of a conventional or primary storage (e.g. a disk drive, etc.).
  • Figure 5 shows a method 500 for operating a redundant disk controller, in accordance with one embodiment.
  • the present method 500 may be implemented in the context of the functionality and architecture of Figures 1-4. Of course, however, the method 500 may be carried out in any desired environment. It should also be noted that the aforementioned definitions may apply during the present description.
  • a storage system e.g. a disk assembly, etc.
  • a disk controller of the storage system is monitored. See operation 520.
  • the disk controller may be monitored by another disk controller.
  • Such monitoring may include monitoring the disk controller via a bus between the two disk controllers (e.g. the disk controller bus 203 of Figure 2B, etc.), and/or monitoring activity on busses corresponding to storage devices of the storage system (e.g. busses 241-244 of the corresponding storage devices 231-234, etc.).
  • the storage system continues to operate, monitoring the disk controller, until it is determined that the monitored disk controller has failed. See operation 530. If the monitored disk controller fails, the monitored disk controller is disconnected. See operation 540.
  • the disconnection of the disk controller may be implemented by issuing a disconnect command through the bus between the two disk controllers (e.g. the disk controller bus 203 of Figure 2B, etc.).
  • the disconnect command may include disconnecting busses linking the monitored disk controller to the storage devices (e.g. connections 211-214 or 221-224 of Figure 2B).
  • a plurality of disk controllers may be monitored by other disk controllers. In this case, each disk controller in the plurality of disk controllers may be considered a monitored disk controller.
  • Figure 6 shows a method 600 for operating a redundant disk controller, in accordance with another embodiment.
  • the present method 600 may be implemented in the context of the functionality and architecture of Figures 1-5. Of course, however, the method 600 may be carried out in any desired environment. It should also be noted that the aforementioned definitions may apply during the present description.
  • a storage system e.g. a disk assembly, etc.
  • a storage system is powered up. See operation 610.
  • a link between at least two disk controllers of the storage system is monitored. See operation 620.
  • the link between the disk controllers may include the disk controller bus 203 of Figure 2B. Additionally, the link between the - -
  • disk controllers may be monitored by at least one of the disk controllers (e.g. the first and second disk controller 210 and 220 of Figure 2B, etc.).
  • the storage system continues to operate, monitoring the link, until it is determined that the link has failed. See operation 630. If the link fails, then one disk controller is disconnected. See operation 640.
  • the disconnection may include disconnecting busses linking a disk controller to the storage devices (e.g. connections 211-214 or 221-224 of Figure 2B, etc).
  • commands received by a port associated with the disconnected controller may not be processed.
  • a second of two disk controllers may be disconnected upon a failure of the link between a first and the second disk controller. In this case, the first controller may continue operating and commands from the ports of the second disk controller may not be processed.
  • Figure 7 shows a system 700 for operating a redundant disk controller, in accordance with another embodiment.
  • the system 700 may be implemented in the context of the functionality and architecture of Figures 1-6. Of course, however, the system 700 may be implemented in any desired environment. It should also be noted that the aforementioned definitions may apply during the present description.
  • At least one computer 702-706 is provided.
  • the computers 702- 706 are coupled to a plurality of RAID controllers 712-714.
  • the controllers 712-714 are in communication with a plurality of storage devices 716-722. Such communication may include utilizing ports associated with the storage devices 716-722.
  • Reliability of the system 700 may be achieved by using storage devices 716- 722 with intra-drive redundancy (e.g. the storage system 250 of Figure 2B). Furthermore, all connections (e.g. busses, etc.) may be duplicated to ensure reliability of the system 700.
  • the storage devices 716-722 may each include two ports per device, providing twice as much bandwidth compared to use of a storage device with a single port. Furthermore, each storage device 716-722 may simulate two disks by utilizing a redundancy system such as RAID 5, RAID 6, RAID 10, RAID 50, RAID 60, square parity redundancy schemas, etc.
  • write reduction logic 708-710 may be utilized to reduce a number of writes to the storage devices 716-722.
  • translating storage commands for providing data redundancy may be performed after the reducing.
  • storage commands may be received for providing data redundancy in accordance with a first data redundancy scheme (e.g. RAID 5, RAID 6, RAID 10, RAID 50, RAID 60, square parity redundancy schemas, etc.) of the controllers 712-714.
  • a first data redundancy scheme e.g. RAID 5, RAID 6, RAID 10, RAID 50, RAID 60, square parity redundancy schemas, etc.
  • the write reduction logic 708-710 may then be utilized to reduce a number of writes to the storage devices 716-722.
  • the storage commands may then be translated (e.g. by a circuit) for providing the data redundancy in accordance with a second data redundancy scheme associated with the storage devices 716-722.
  • the second data redundancy scheme may be the same as the first data redundancy scheme (e.g. RAID 5, RAID 6, RAID 10, RAID 50, RAID 60, square parity redundancy schemas, etc.).
  • the second data redundancy scheme may be different than the first data redundancy scheme (e.g. RAID 1, RAID 6, RAID 10, RAID 50, RAID 60, square parity redundancy schemas, etc).
  • the write reduction logic 708-710 may be utilized to format storage commands that are received for providing data redundancy in accordance with a first data redundancy scheme into a format compatible with the second data redundancy scheme.
  • the RAID controllers 712-714 may include a system with intra-drive redundancy as described in the context of the storage devices 716-722. In this way, a number of writes to the storage devices 716-722 may be reduced.
  • the storage commands may be translated for providing the data redundancy in accordance with a second data redundancy scheme associated with the storage devices 716-722 after the reduction of the number of writes. In this way, randomization of data may be avoided.
  • FIG 8 illustrates an exemplary system 800 in which the various architecture and/or functionality of the various previous embodiments may be implemented.
  • a system 800 is provided including at least one host processor 801 which is connected to a communication bus 802.
  • the system 800 also includes a main memory 804.
  • Control logic (software) and data are stored in the main memory 804 which may take the form of random access memory (RAM).
  • RAM random access memory
  • the system 800 also includes a graphics processor 806 and a display 808, i.e. a computer monitor.
  • the graphics processor 806 may include a plurality of shader modules, a rasterization module, etc. Each of the foregoing modules may even be situated on a single semiconductor platform to form a graphics processing unit (GPU).
  • GPU graphics processing unit
  • a single semiconductor platform may refer to a sole unitary semiconductor-based integrated circuit or chip. It should be noted that the term single semiconductor platform may also refer to multi-chip modules with increased connectivity which simulate on-chip operation, and make substantial improvements over utilizing a conventional central processing unit (CPU) and bus implementation. Of course, the various modules may also be situated separately or in various combinations of semiconductor platforms per the desires of the user.
  • CPU central processing unit
  • the system 800 may also include a secondary storage 810.
  • the secondary storage 810 includes, for example, a hard disk drive and/or a removable storage drive, representing a floppy disk drive, a magnetic tape drive, a compact disk drive, etc.
  • the removable storage drive reads from and/or writes to a removable storage unit in a well known manner.
  • Computer programs, or computer control logic algorithms may be stored in the main memory 804 and/or the secondary storage 810. Such computer programs, when executed, enable the system 800 to perform various functions. Memory 804, storage 810 and/or any other storage are possible examples of computer-readable media.
  • the architecture and/or functionality of the various previous figures may be implemented in the context of the host processor 801, graphics processor 806, secondary storage 810, an integrated circuit (not shown) that is capable of at least a portion of the capabilities of both the host processor 801 and the graphics processor 806, a chipset (i.e. a group of integrated circuits designed to work and sold as a unit for performing related functions, etc.), and/or any other integrated circuit for that matter.
  • an integrated circuit not shown
  • a chipset i.e. a group of integrated circuits designed to work and sold as a unit for performing related functions, etc.
  • the architecture and/or functionality of the various previous figures may be implemented in the context of a general computer system, a circuit board system, a game console system dedicated for entertainment purposes, an application-specific system, and/or any other desired system.
  • the system 800 may take the form of a desktop computer, lap-top computer, and/or any other type of logic.
  • the system 800 may take the form of various other devices including, but not limited to, a personal digital assistant (PDA) device, a mobile phone device, a television, etc.
  • PDA personal digital assistant
  • system 800 may be coupled to a network [e.g. a telecommunications network, local area network (LAN), wireless network, wide area network (WAN) such as the Internet, peer-to-peer network, cable network, etc.) for communication purposes.
  • a network e.g. a telecommunications network, local area network (LAN), wireless network, wide area network (WAN) such as the Internet, peer-to-peer network, cable network, etc.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Power Sources (AREA)
PCT/US2007/024294 2006-12-08 2007-11-21 Data redundancy in a plurality of storage devices WO2008073219A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN200780044865.6A CN101548271B (zh) 2006-12-08 2007-11-21 多个存储装置中的数据冗余
JP2009540232A JP2010511963A (ja) 2006-12-08 2007-11-21 複数のストレージデバイスでのデータ冗長性

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US87363006P 2006-12-08 2006-12-08
US60/873,630 2006-12-08
US11/942,629 US7904672B2 (en) 2006-12-08 2007-11-19 System and method for providing data redundancy after reducing memory writes
US11/942,629 2007-11-19
US11/942,623 2007-11-19
US11/942,623 US8090980B2 (en) 2006-12-08 2007-11-19 System, method, and computer program product for providing data redundancy in a plurality of storage devices

Publications (1)

Publication Number Publication Date
WO2008073219A1 true WO2008073219A1 (en) 2008-06-19

Family

ID=39512026

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2007/024294 WO2008073219A1 (en) 2006-12-08 2007-11-21 Data redundancy in a plurality of storage devices

Country Status (4)

Country Link
JP (2) JP2010511963A (enrdf_load_stackoverflow)
CN (2) CN102929751B (enrdf_load_stackoverflow)
TW (2) TWI437427B (enrdf_load_stackoverflow)
WO (1) WO2008073219A1 (enrdf_load_stackoverflow)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8214589B2 (en) 2009-03-13 2012-07-03 Seagate Technology Llc Data storage system redundancy scheme verification
US8230184B2 (en) 2007-11-19 2012-07-24 Lsi Corporation Techniques for writing data to different portions of storage devices based on write frequency
US8504783B2 (en) 2006-12-08 2013-08-06 Lsi Corporation Techniques for providing data redundancy after reducing memory writes
US8516166B2 (en) 2009-07-20 2013-08-20 Lsi Corporation System, method, and computer program product for reducing a rate of data transfer to at least a portion of memory

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI579688B (zh) * 2012-02-29 2017-04-21 萬國商業機器公司 磁碟陣列資料儲存系統
JP6063146B2 (ja) * 2012-04-27 2017-01-18 株式会社バッファローメモリ 外部記憶装置
CN102915212B (zh) * 2012-09-19 2015-06-10 记忆科技(深圳)有限公司 一种固态硬盘的raid实现方法、固态硬盘及电子设备
WO2016088254A1 (ja) * 2014-12-05 2016-06-09 株式会社日立製作所 ストレージシステム、方法
JP6696280B2 (ja) 2016-04-13 2020-05-20 富士通株式会社 情報処理装置、raid制御方法、およびraid制御プログラム
TWI648675B (zh) 2017-08-29 2019-01-21 群聯電子股份有限公司 資料儲存方法、記憶體控制電路單元及記憶體儲存裝置
CN109460372B (zh) * 2017-09-06 2022-11-22 群联电子股份有限公司 数据存储方法、存储器控制电路单元及存储器存储装置
CN110780811B (zh) * 2019-09-19 2021-10-15 华为技术有限公司 数据保护方法、装置及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6219750B1 (en) * 1997-03-27 2001-04-17 International Business Machines Corporation Disk drive having control mechanism to reduce or eliminate redundant write operations and the method thereof
US20030084397A1 (en) * 2001-10-31 2003-05-01 Exanet Co. Apparatus and method for a distributed raid
US6724678B2 (en) * 2002-04-24 2004-04-20 Renesas Technology Corp. Nonvolatile semiconductor memory unit
US20040268037A1 (en) * 2003-06-26 2004-12-30 International Business Machines Corporation Apparatus method and system for alternate control of a RAID array
US20050160218A1 (en) * 2004-01-20 2005-07-21 Sun-Teck See Highly integrated mass storage device with an intelligent flash controller

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5392244A (en) * 1993-08-19 1995-02-21 Hewlett-Packard Company Memory systems with data storage redundancy management
US5546558A (en) * 1994-06-07 1996-08-13 Hewlett-Packard Company Memory system with hierarchic disk array and memory map store for persistent storage of virtual mapping information
JPH0816328A (ja) * 1994-06-28 1996-01-19 Mitsubishi Electric Corp ディスクアレイシステム
DE19540915A1 (de) * 1994-11-10 1996-05-15 Raymond Engineering Redundante Anordnung von Festkörper-Speicherbausteinen
US5542065A (en) * 1995-02-10 1996-07-30 Hewlett-Packard Company Methods for using non-contiguously reserved storage space for data migration in a redundant hierarchic data storage system
JPH1153235A (ja) * 1997-08-08 1999-02-26 Toshiba Corp ディスク記憶装置のデータ更新方法、ならびにディスク記憶制御システム
US6298415B1 (en) * 1999-02-19 2001-10-02 International Business Machines Corporation Method and system for minimizing writes and reducing parity updates in a raid system
JP3832223B2 (ja) * 2000-09-26 2006-10-11 株式会社日立製作所 ディスクアレイのディスク障害復旧方法
KR100388498B1 (ko) * 2000-12-30 2003-06-25 한국전자통신연구원 복수 개의 레이드를 구비한 계층적 레이드 시스템
JP3592640B2 (ja) * 2001-01-09 2004-11-24 株式会社東芝 ディスク制御システムおよびディスク制御方法
JP2004021811A (ja) * 2002-06-19 2004-01-22 Hitachi Ltd 不揮発メモリを使用したディスク制御装置
KR20040066638A (ko) * 2003-01-20 2004-07-27 삼성전자주식회사 외부 저장 서브 시스템에서의 패리티 저장 방법 및에러블록 복구 방법
TWI261993B (en) * 2004-05-20 2006-09-11 Rdc Semiconductor Co Ltd System and method for data redundancy checking and correcting
JP4366298B2 (ja) * 2004-12-02 2009-11-18 富士通株式会社 記憶装置、その制御方法及びプログラム
JP2006252165A (ja) * 2005-03-10 2006-09-21 Toshiba Corp ディスクアレイ装置、及びコンピュータシステム
JP4671720B2 (ja) * 2005-03-11 2011-04-20 株式会社日立製作所 ストレージシステム及びデータ移動方法
US8244958B2 (en) * 2005-05-09 2012-08-14 Sandisk Il Ltd. Method and system for facilitating fast wake-up of a flash memory system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6219750B1 (en) * 1997-03-27 2001-04-17 International Business Machines Corporation Disk drive having control mechanism to reduce or eliminate redundant write operations and the method thereof
US20030084397A1 (en) * 2001-10-31 2003-05-01 Exanet Co. Apparatus and method for a distributed raid
US6724678B2 (en) * 2002-04-24 2004-04-20 Renesas Technology Corp. Nonvolatile semiconductor memory unit
US20040268037A1 (en) * 2003-06-26 2004-12-30 International Business Machines Corporation Apparatus method and system for alternate control of a RAID array
US20050160218A1 (en) * 2004-01-20 2005-07-21 Sun-Teck See Highly integrated mass storage device with an intelligent flash controller

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8504783B2 (en) 2006-12-08 2013-08-06 Lsi Corporation Techniques for providing data redundancy after reducing memory writes
US8230184B2 (en) 2007-11-19 2012-07-24 Lsi Corporation Techniques for writing data to different portions of storage devices based on write frequency
US8214589B2 (en) 2009-03-13 2012-07-03 Seagate Technology Llc Data storage system redundancy scheme verification
US8516166B2 (en) 2009-07-20 2013-08-20 Lsi Corporation System, method, and computer program product for reducing a rate of data transfer to at least a portion of memory

Also Published As

Publication number Publication date
JP2013257900A (ja) 2013-12-26
JP2010511963A (ja) 2010-04-15
TWI437427B (zh) 2014-05-11
TW201428491A (zh) 2014-07-16
CN102929751A (zh) 2013-02-13
TW200837561A (en) 2008-09-16
TWI550400B (zh) 2016-09-21
CN101548271A (zh) 2009-09-30
CN101548271B (zh) 2012-12-05
CN102929751B (zh) 2018-04-20

Similar Documents

Publication Publication Date Title
US9804794B2 (en) Techniques for providing data redundancy after reducing memory writes
US8090980B2 (en) System, method, and computer program product for providing data redundancy in a plurality of storage devices
CN101548271B (zh) 多个存储装置中的数据冗余
US8117376B2 (en) Storage system and control method thereof
CN113535093B (zh) 高性能持久存储器
US9495263B2 (en) Redundant SAS storage virtualization subsystem and system using the same, and method therefor
US20090113235A1 (en) Raid with redundant parity
US11157200B2 (en) Communicating over portions of a communication medium
US10229018B2 (en) System and method for data restore flexibility on dual channel NVDIMMs
US20120131268A1 (en) Data storage device
TW201939506A (zh) 儲存系統
CN204203855U (zh) 一种新型外置式sas 12g raid存储卡
US8291153B2 (en) Transportable cache module for a host-based raid controller
WO2015073503A1 (en) Apparatus and method for routing information in a non-volatile memory-based storage device
CN108614746A (zh) 一种数据处理方法及其系统、服务器
CN120561070A (zh) 基板管理控制器通用装置、运行方法及电子设备

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200780044865.6

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 07862167

Country of ref document: EP

Kind code of ref document: A1

DPE2 Request for preliminary examination filed before expiration of 19th month from priority date (pct application filed from 20040101)
ENP Entry into the national phase

Ref document number: 2009540232

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 07862167

Country of ref document: EP

Kind code of ref document: A1

DPE2 Request for preliminary examination filed before expiration of 19th month from priority date (pct application filed from 20040101)