JP2010511963A - Data redundancy across multiple storage devices - Google Patents

Data redundancy across multiple storage devices Download PDF

Info

Publication number
JP2010511963A
JP2010511963A JP2009540232A JP2009540232A JP2010511963A JP 2010511963 A JP2010511963 A JP 2010511963A JP 2009540232 A JP2009540232 A JP 2009540232A JP 2009540232 A JP2009540232 A JP 2009540232A JP 2010511963 A JP2010511963 A JP 2010511963A
Authority
JP
Japan
Prior art keywords
data redundancy
redundancy scheme
storage
storage device
raid
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.)
Pending
Application number
JP2009540232A
Other languages
Japanese (ja)
Other versions
JP2010511963A5 (en
Inventor
ラドスラフ ダーニラク,
Original Assignee
サンドフォース インコーポレイテッド
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 サンドフォース インコーポレイテッド filed Critical サンドフォース インコーポレイテッド
Publication of JP2010511963A publication Critical patent/JP2010511963A/en
Publication of JP2010511963A5 publication Critical patent/JP2010511963A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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
    • 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/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; 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/2015Redundant power supplies

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)

Abstract

複数のストレージデバイス内でデータ冗長性を提供するシステム、方法、及びコンピュータプログラム製品を提供する。動作中に、ストレージコマンドが、第1データ冗長性方式に従ってデータ冗長性を提供するために受け取られる。さらに、ストレージコマンドは、第2データ冗長性方式に従ってデータ冗長性を提供するために変換される。さらに、変換されたストレージコマンドは、複数のストレージデバイス内でデータ冗長性を提供するために出力される。
【選択図】 図1
Systems, methods, and computer program products are provided that provide data redundancy within a plurality of storage devices. During operation, a storage command is received to provide data redundancy according to the first data redundancy scheme. Further, the storage command is converted to provide data redundancy according to the second data redundancy scheme. In addition, the converted storage command is output to provide data redundancy within the plurality of storage devices.
[Selection] Figure 1

Description

[0001]本発明は、データストレージに関し、より具体的には、ストレージデバイス内のデータ冗長性に関する。   [0001] The present invention relates to data storage, and more specifically to data redundancy within a storage device.

背景background

[0002]ストレージシステムは、現代のエンタープライズコンピューティングシステムの性能に関する最も制限的な態様の1つである。ハードドライブに基づくストレージの性能は、シーク時間と1/2回転の時間とによって決定される。性能は、シーク時間を減らし、回転待ち時間を減らすことによって高められる。しかし、ドライブが回転できる速さには限度がある。最高速の現代のドライブは、15000rpmに達しようとしている。   [0002] Storage systems are one of the most restrictive aspects of the performance of modern enterprise computing systems. The performance of storage based on a hard drive is determined by the seek time and the time of 1/2 rotation. Performance is enhanced by reducing seek time and reducing rotation latency. However, the speed at which the drive can rotate is limited. The fastest modern drive is about to reach 15000 rpm.

[0003]図1に、従来技術によるシステム100を示す。システム100では、少なくとも1つのコンピュータ102〜108が、ホストコントローラ110、112に結合される。ホストコントローラ110、112は、複数のディスク114〜120に結合される。   [0003] FIG. 1 illustrates a system 100 according to the prior art. In system 100, at least one computer 102-108 is coupled to host controllers 110, 112. Host controllers 110 and 112 are coupled to a plurality of disks 114-120.

[0004]しばしば、システム100は、redundant array of independent disks(RAID)−1として構成され、ディスク114〜116のミラーリングされた内容をディスク118〜120に格納する。ディスク114〜116は、ディスク118〜120によってミラーリングされると言われる。   [0004] Often, the system 100 is configured as a redundant array of independent disks (RAID) -1 and stores the mirrored contents of the disks 114-116 on the disks 118-120. Disks 114-116 are said to be mirrored by disks 118-120.

[0005]コンピュータシステムの高められた信頼性は、ディスク114〜116、ホストコントローラ110、及びそれらの間の接続を二重化することによって達成される。したがって、信頼できるコンピュータシステムは、少なくとも、ディスク114〜120、RAIDコントローラ110、112、コンピュータ102〜108、並びにそれらの間の接続の一つに障害があるときでも動作することができる。しかし、ストレージシステム性能は、それでも、システム100を使用して不適切である場合がある。さらに、そのようなシステムの性能を高めることは、現在、コストがかかり、しばしば、実現可能ではない。   [0005] Increased reliability of the computer system is achieved by duplicating the disks 114-116, the host controller 110, and the connections between them. Thus, a reliable computer system can operate even when at least one of the disks 114-120, the RAID controllers 110, 112, the computers 102-108, and the connection between them is faulty. However, storage system performance may still be inappropriate using the system 100. Furthermore, increasing the performance of such systems is currently costly and often not feasible.

[0006]したがって、従来技術に関連する上記及び/又は他の問題に対処する必要がある。   [0006] Accordingly, there is a need to address the above and / or other problems associated with the prior art.

概要Overview

[0007]複数のストレージデバイス内でデータ冗長性を提供するシステム、方法、及びコンピュータプログラム製品を提供する。動作中に、ストレージコマンドが、第1データ冗長性方式に従ってデータ冗長性を提供するために受け取られる。さらに、ストレージコマンドは、第2データ冗長性方式に従ってデータ冗長性を提供するために変換される。さらに、変換されたストレージコマンドは、複数のストレージデバイス内でデータ冗長性を提供するために出力される。   [0007] Systems, methods, and computer program products are provided that provide data redundancy within a plurality of storage devices. During operation, a storage command is received to provide data redundancy according to the first data redundancy scheme. Further, the storage command is converted to provide data redundancy according to the second data redundancy scheme. In addition, the converted storage command is output to provide data redundancy within the plurality of storage devices.

従来技術によるシステムを示す図である。It is a figure which shows the system by a prior art. 一実施形態による、複数のストレージデバイス内でデータ冗長性を提供するシステムを示す図である。FIG. 1 illustrates a system for providing data redundancy within multiple storage devices, according to one embodiment. 一実施形態による、複数のストレージデバイス内でデータ冗長性を提供するストレージシステムを示す図である。FIG. 1 illustrates a storage system that provides data redundancy within a plurality of storage devices, according to one embodiment. 一実施形態による、ディスクアセンブリを示す図である。FIG. 6 illustrates a disk assembly, according to one embodiment. 別の実施形態による、ディスクアセンブリを示す図である。FIG. 6 illustrates a disk assembly according to another embodiment. 一実施形態による、冗長ディスクコントローラを動作させる方法を示す図である。FIG. 3 illustrates a method for operating a redundant disk controller, according to one embodiment. 別の実施形態による、冗長ディスクコントローラを動作させる方法を示す図である。FIG. 6 illustrates a method of operating a redundant disk controller according to another embodiment. 別の実施形態による、冗長ディスクコントローラを動作させるシステムを示す図である。FIG. 3 illustrates a system for operating a redundant disk controller according to another embodiment. さまざまな前の実施形態のさまざまなアーキテクチャ及び/又は機能性を実施できる例示的システムを示す図である。FIG. 6 illustrates an example system that can implement various architectures and / or functionality of various previous embodiments.

詳細な説明Detailed description

[0017]図2Aに、一実施形態による、複数のストレージデバイス内でデータ冗長性を提供するシステム280を示す。図示されているように、システム280は、少なくとも1つのコンピュータ285〜288を含む。コンピュータ285〜288は、少なくとも1つのコントローラ290〜291と通信する。さらに図示されているように、コントローラ290〜291は、ストレージシステム292と通信し、ストレージシステム292は、複数のディスクコントローラ293〜294及び複数のストレージデバイス296〜299を含む。コントローラ290〜291が、別々に図示されているが、別の実施形態では、そのようなコントローラ290〜291を1つのユニットにしてもよいことに留意されたい。さらに、複数のディスクコントローラ293〜294は、各種実施形態において、1つのユニット又は独立した複数のユニットにすることができる。   [0017] FIG. 2A illustrates a system 280 that provides data redundancy within multiple storage devices, according to one embodiment. As shown, system 280 includes at least one computer 285-288. Computers 285-288 communicate with at least one controller 290-291. As further illustrated, the controllers 290-291 communicate with the storage system 292, which includes a plurality of disk controllers 293-294 and a plurality of storage devices 296-299. Note that although controllers 290-291 are illustrated separately, in other embodiments, such controllers 290-291 may be a single unit. Further, the plurality of disk controllers 293-294 can be a single unit or a plurality of independent units in various embodiments.

[0018]動作中に、ストレージコマンドが、第1データ冗長性方式に従ってデータ冗長性を提供するために受け取られる。さらに、そのストレージコマンドは、第2データ冗長性方式に従ってデータ冗長性を提供するために変換される。さらに、変換されたストレージコマンドは、複数のストレージデバイス296〜299内でデータ冗長性を提供するために出力される。   [0018] During operation, storage commands are received to provide data redundancy according to a first data redundancy scheme. Further, the storage command is converted to provide data redundancy according to the second data redundancy scheme. Further, the converted storage command is output to provide data redundancy within the plurality of storage devices 296-299.

[0019]この説明の文脈では、ストレージコマンドは、データを格納するかデータのストレージを容易にする任意のコマンド、命令、又はデータを指す。さらに、この説明の文脈では、データ冗長性方式は、システム内で冗長データ又はフォールトトレランスを提供する任意のタイプの方式を指す。たとえば、各種実施形態で、データ冗長性方式は、redundant array of independent disks(RAID) 0データ冗長性方式、RAID 1データ冗長性方式、RAID 10データ冗長性方式、RAID 3データ冗長性方式、RAID 4データ冗長性方式、RAID 5データ冗長性方式、RAID 50データ冗長性方式、RAID 6データ冗長性方式、RAID 60データ冗長性方式、スクエアパリティ(square parity)データ冗長性スキーマ、任意の非標準RAIDデータ冗長性方式、任意のネストされたRAIDデータ冗長性方式、及び/又は上の定義を満足する任意の他のデータ冗長性方式を含むことができるが、これらに限定はされない。   [0019] In the context of this description, a storage command refers to any command, instruction, or data that stores data or facilitates storage of data. Further, in the context of this description, a data redundancy scheme refers to any type of scheme that provides redundant data or fault tolerance in the system. For example, in various embodiments, the data redundancy scheme is redundant array of independent disks (RAID) 0 data redundancy scheme, RAID 1 data redundancy scheme, RAID 10 data redundancy scheme, RAID 3 data redundancy scheme, RAID 4 Data redundancy scheme, RAID 5 data redundancy scheme, RAID 50 data redundancy scheme, RAID 6 data redundancy scheme, RAID 60 data redundancy scheme, square parity data redundancy scheme, any non-standard RAID data It may include, but is not limited to, a redundancy scheme, any nested RAID data redundancy scheme, and / or any other data redundancy scheme that satisfies the above definitions.

[0020]一実施形態で、第1データ冗長性方式は、RAID 1データ冗長性方式を含むことができる。別の実施形態で、第2データ冗長性方式は、RAID 5データ冗長性方式を含むことができる。別の実施形態で、第2データ冗長性方式は、RAID 6データ冗長性方式を含むことができる。   [0020] In one embodiment, the first data redundancy scheme may include a RAID 1 data redundancy scheme. In another embodiment, the second data redundancy scheme can include a RAID 5 data redundancy scheme. In another embodiment, the second data redundancy scheme may include a RAID 6 data redundancy scheme.

[0021]さらに、この説明の文脈で、複数のストレージデバイス296〜299は、任意のタイプのストレージデバイスを表すことができる。たとえば、さまざまな実施形態で、ストレージデバイス296〜299は、機械的ストレージデバイス(たとえば、ディスクドライブなど)、ソリッドステートストレージデバイス(たとえば、ダイナミックランダムアクセスメモリ(DRAM)、フラッシュメモリなど)、及び/又は任意の他のストレージデバイスを含むことができるが、これらに限定はされない。ストレージデバイス296〜299がフラッシュメモリを含む場合に、そのフラッシュメモリは、単一レベルセル(SLC)デバイス、マルチレベルセル(MLC)デバイス、NORフラッシュメモリ、NANDフラッシュメモリ、MLC NANDフラッシュメモリ、SLC NANDフラッシュメモリなどを含むことができるが、これらに限定はされない。   [0021] Further, in the context of this description, the plurality of storage devices 296-299 may represent any type of storage device. For example, in various embodiments, storage devices 296-299 may be mechanical storage devices (eg, disk drives, etc.), solid state storage devices (eg, dynamic random access memory (DRAM), flash memory, etc.), and / or Any other storage device can be included, but is not limited thereto. When the storage devices 296 to 299 include flash memory, the flash memory includes single-level cell (SLC) device, multi-level cell (MLC) device, NOR flash memory, NAND flash memory, MLC NAND flash memory, SLC NAND A flash memory or the like can be included, but is not limited thereto.

[0022]ここで、ユーザの望みに応じて前述のフレームワークを実施してもしなくてもよいさまざまなオプションのアーキテクチャ及び特徴に関し、より例示的な情報を示す。次の情報が、例示のために示され、いかなる形でも限定的と解釈されてはならないことに強く留意されたい。次の特徴のいずれをも、説明される他の特徴の排除を伴って又は伴わずにオプションで組み込むことができる。   [0022] More exemplary information will now be presented regarding various optional architectures and features that may or may not implement the aforementioned framework as desired by the user. It is strongly noted that the following information is presented for illustrative purposes and should not be construed as limiting in any way. Any of the following features may optionally be incorporated with or without the exclusion of other features described.

[0023]図2Bに、一実施形態による、複数のストレージデバイス内でデータ冗長性を提供するストレージサブシステム250を示す。オプションとして、ストレージサブシステム250を、図2Aの詳細の文脈で見ることができる。しかし、もちろん、ストレージサブシステム250を、任意の所望の環境の文脈で実施することができる。前述の定義を、この説明中にあてはめることができることにも留意されたい。   [0023] FIG. 2B illustrates a storage subsystem 250 that provides data redundancy within a plurality of storage devices, according to one embodiment. As an option, the storage subsystem 250 can be viewed in the context of the details of FIG. 2A. Of course, however, the storage subsystem 250 may be implemented in the context of any desired environment. It should also be noted that the above definitions can be applied during this description.

[0024]図示されているように、ストレージサブシステム250は、複数の主ストレージデバイス231〜232及び冗長情報を含むために記憶容量を増やすのに利用される少なくとも1つの追加ストレージデバイス233〜234を含む。ストレージサブシステム250のデータストレージの量は、複数の主ストレージデバイス231〜232のストレージ容量の合計と考えてよい。オプションとして、ストレージ容量を、追加ストレージデバイス233〜234を介して拡張することもできる。もちろん、一実施形態で、追加ストレージデバイス233〜234を、格納されたデータから計算される冗長情報の格納だけに使用することができる。   [0024] As shown, storage subsystem 250 includes a plurality of primary storage devices 231-232 and at least one additional storage device 233-234 that is used to increase storage capacity to include redundant information. Including. The amount of data storage in the storage subsystem 250 may be considered as the sum of the storage capacities of the plurality of main storage devices 231-232. Optionally, the storage capacity can be expanded via additional storage devices 233-234. Of course, in one embodiment, the additional storage devices 233-234 can only be used to store redundant information calculated from the stored data.

[0025]さらに図示されているように、第1ディスクコントローラ210は、少なくとも1つのポート201を含む。動作中に、ポート201のうちの少なくとも1つが、ストレージサブシステム250の第1ポートとして働くことができる。さらに、ポート201のうちの少なくとも1つが、ディスクコントローラバス203、電源接続275、及び第1ディスクコントローラ210をストレージデバイス231〜234の対応するバス241〜244に結合する内部接続211〜214への第1ディスクコントローラ210のポートとして働くことができる。   [0025] As further illustrated, the first disk controller 210 includes at least one port 201. During operation, at least one of the ports 201 can serve as the first port of the storage subsystem 250. Further, at least one of the ports 201 has a first connection to the internal connections 211-214 that couples the disk controller bus 203, the power connection 275, and the first disk controller 210 to the corresponding buses 241-244 of the storage devices 231-234. It can serve as a port for one disk controller 210.

[0026]バス203は、第1ディスクコントローラ210を第2ディスクコントローラ220に結合する。動作中に、バス203を使用して、第2ディスクコントローラ220を用いて第1ディスクコントローラ210の動作を監視することができる。第2ディスクコントローラ220が、第1ディスクコントローラ210の障害を検出する時に、ディスクコントローラ220は、ディスクコントローラバス203を介して第1ディスクコントローラ210に切断要求を発行することによって、内部接続211〜214を対応するバス241〜244から切断することができる。   [0026] The bus 203 couples the first disk controller 210 to the second disk controller 220. During operation, the bus 203 can be used to monitor the operation of the first disk controller 210 using the second disk controller 220. When the second disk controller 220 detects a failure of the first disk controller 210, the disk controller 220 issues a disconnection request to the first disk controller 210 via the disk controller bus 203, thereby connecting the internal connections 211 to 214. Can be disconnected from the corresponding buses 241-244.

[0027]第1ディスクコントローラ210を第2ディスクコントローラ220に結合するバス203を、第1ディスクコントローラ210を使用して第2ディスクコントローラ220の動作を監視するのに使用することもできる。第1ディスクコントローラ210が、第2ディスクコントローラ220の障害を検出する時に、第1ディスクコントローラ210は、ディスクコントローラバス203を介して第2ディスクコントローラ220に切断要求を発行することによって、内部接続221〜224を対応するバス241〜244から切断することができる。   [0027] The bus 203 coupling the first disk controller 210 to the second disk controller 220 may also be used to monitor the operation of the second disk controller 220 using the first disk controller 210. When the first disk controller 210 detects a failure of the second disk controller 220, the first disk controller 210 issues a disconnection request to the second disk controller 220 via the disk controller bus 203, thereby connecting the internal connection 221. ˜224 can be disconnected from the corresponding bus 241˜244.

[0028]一実施形態で、第1ディスクコントローラ210は、内部不正動作又は第1ディスクコントローラ210に関連する不正動作を検出することができる。この場合に、第1ディスクコントローラ210は、内部不正動作が検出される時に接続211〜214を対応するバス241〜244から切断することができる。同様に、第2ディスクコントローラ220は、内部不正動作又は第2ディスクコントローラ220に関連する不正動作を検出することができる。この場合に、第2ディスクコントローラ220は、内部不正動作が検出される時に接続221〜224を対応するバス241〜244から切断することができる。   [0028] In one embodiment, the first disk controller 210 may detect an internal illegal operation or an illegal operation associated with the first disk controller 210. In this case, the first disk controller 210 can disconnect the connections 211 to 214 from the corresponding buses 241 to 244 when an internal unauthorized operation is detected. Similarly, the second disk controller 220 can detect an internal illegal operation or an illegal operation related to the second disk controller 220. In this case, the second disk controller 220 can disconnect the connections 221 to 224 from the corresponding buses 241 to 244 when an internal unauthorized operation is detected.

[0029]さらに、一実施形態で、第1ディスクコントローラ210及び第2ディスクコントローラ220は、ディスクコントローラバス203の障害を検出することができる。この場合に、第2ディスクコントローラ220は、接続221〜224を対応するバス241〜244から切断することができ、第1ディスクコントローラ210は、アクティブのままであってもよい。別の実施形態で、第1ディスクコントローラ210は、接続211〜214を対応するバス241〜244から切断することができ、第2ディスクコントローラ220は、アクティブのままであってもよい。さらに別の実施形態では、アクティブのままになるディスクコントローラが、インアクティブになるコントローラの接続を切断することができる。   [0029] Further, in one embodiment, the first disk controller 210 and the second disk controller 220 can detect a failure in the disk controller bus 203. In this case, the second disk controller 220 can disconnect the connections 221-224 from the corresponding buses 241-244, and the first disk controller 210 may remain active. In another embodiment, the first disk controller 210 can disconnect the connections 211-214 from the corresponding buses 241-244, and the second disk controller 220 may remain active. In yet another embodiment, a disk controller that remains active can disconnect a controller that becomes inactive.

[0030]バス211〜214及び221〜224の切断を、三状態回路、マルチプレクサ、又はバス211〜214及び221〜224を切断する任意の他の回路を介して実施できることに留意されたい。たとえば、一実施形態で、ディスクコントローラ210又はディスクコントローラ220に関連する三状態バスドライバをハイインピーダンス状態にすることによって、切断を達成することができる。別の実施形態で、ストレージデバイス231〜234の入力のマルチプレクサを制御することによって、切断を達成することができる。   [0030] Note that disconnection of buses 211-214 and 221-224 may be performed via a tri-state circuit, a multiplexer, or any other circuit that disconnects buses 211-214 and 221-224. For example, in one embodiment, disconnection can be achieved by placing a three-state bus driver associated with disk controller 210 or disk controller 220 in a high impedance state. In another embodiment, disconnection can be achieved by controlling the multiplexer at the input of storage devices 231-234.

[0031]さらに図示されているように、第2ディスクコントローラ220は、少なくとも1つのポート202を含む。動作中に、ポート202のうちの少なくとも1つが、ストレージサブシステム250の第2ポートとして働くことができる。さらに、ポート202のうちの少なくとも1つが、ディスクコントローラバス203、電源接続276、及び第2ディスクコントローラ220をストレージデバイス231〜234の対応するバス241〜244に結合する内部接続221〜224への第2ディスクコントローラ220のポートとして働くことができる。   As further illustrated, the second disk controller 220 includes at least one port 202. During operation, at least one of the ports 202 can serve as the second port of the storage subsystem 250. In addition, at least one of the ports 202 has a first to internal connection 221-224 that couples the disk controller bus 203, power connection 276, and second disk controller 220 to the corresponding bus 241-244 of the storage devices 231-234. It can serve as a port for the two disk controller 220.

[0032]単一の冗長ストレージデバイス233が、追加の冗長ストレージデバイス234なしで設けられる場合に、ストレージサブシステム250は、ストレージデバイス231〜233のいずれかの単一の障害の存在の下でデータの消失なしで動作することができる。一実施形態で、データ及び冗長情報の編成は、RAID 5に従うものとしてよい。別の実施形態で、データ及び冗長情報の編成は、RAID 6、RAID 10、RAID 50、RAID 60、スクエアパリティ冗長性スキーマなどに従うものとしてよい。   [0032] When a single redundant storage device 233 is provided without an additional redundant storage device 234, the storage subsystem 250 can perform data in the presence of a single failure of any of the storage devices 231-233. Can operate without loss of. In one embodiment, the organization of data and redundant information may be in accordance with RAID 5. In another embodiment, the organization of data and redundancy information may be according to RAID 6, RAID 10, RAID 50, RAID 60, square parity redundancy scheme, etc.

[0033]2つの冗長ストレージデバイス233、234が設けられる場合に、ストレージサブシステム250は、ストレージデバイス231〜234のいずれか2つの障害の存在の下でデータの消失なしで動作し続けることができる。動作時に、ポート201、202は、2つの従来の独立のミラーリングされたディスクとして、ストレージサブシステム250内に格納されたデータを提示することができる。この場合に、そのような従来の独立のミラーリングされたディスクは、RAID 1、RAID 10、RAID 50、RAID 60、スクエアパリティ冗長性スキーマなどに見えてもよい。   [0033] When two redundant storage devices 233, 234 are provided, the storage subsystem 250 can continue to operate without data loss in the presence of any two failures of the storage devices 231-234. . In operation, ports 201 and 202 can present data stored in storage subsystem 250 as two conventional independent mirrored disks. In this case, such a conventional independent mirrored disk may appear as RAID 1, RAID 10, RAID 50, RAID 60, square parity redundancy scheme, etc.

[0034]ストレージサブシステム250への電力を、電気接続252を介して第1電源ユニット253に結合された第1電力コネクタ251を通じて供給することができる。ストレージサブシステム250への電力を、接続262を介して第2電源ユニット263に結合された第2電力コネクタ261を通じて供給することもできる。オプションとして、第1電源253の出力及び第2電源263の出力を加え合わせて、電力分配網270を介して、ディスクコントローラ210、220とストレージデバイス231〜234とに分配することができる。ストレージデバイス231〜234は、対応する接続271〜274を介して電力分配網270に結合される。ディスクコントローラ210、220は、電源接続275、276を介して電力分配網270に結合される。   [0034] Power to the storage subsystem 250 may be supplied through a first power connector 251 coupled to a first power supply unit 253 via an electrical connection 252. Power to the storage subsystem 250 can also be supplied through a second power connector 261 coupled to the second power supply unit 263 via connection 262. As an option, the output of the first power supply 253 and the output of the second power supply 263 can be added together and distributed to the disk controllers 210 and 220 and the storage devices 231 to 234 via the power distribution network 270. Storage devices 231-234 are coupled to power distribution network 270 via corresponding connections 271-274. Disk controllers 210 and 220 are coupled to power distribution network 270 via power connections 275 and 276.

[0035]電力コネクタ251への電力に障害が発生する場合に、ストレージサブシステム250への電力を、電力コネクタ261を通じて供給することができる。同様に、電力コネクタ261への電力に障害が発生する場合に、ストレージサブシステム250への電力を、電力コネクタ251を通じて供給することができる。接続252に障害が発生する場合に、ストレージサブシステム250への電力を、接続262を通じて供給することができる。接続262に障害が発生する場合に、ストレージサブシステム250への電力を、接続252を通じて供給することができる。   [0035] Power to the storage subsystem 250 can be supplied through the power connector 261 when a failure occurs in the power to the power connector 251. Similarly, the power to the storage subsystem 250 can be supplied through the power connector 251 when a failure occurs in the power to the power connector 261. If the connection 252 fails, power to the storage subsystem 250 can be supplied through the connection 262. If the connection 262 fails, power to the storage subsystem 250 can be supplied through the connection 252.

[0036]電源253に障害が発生する場合に、ストレージサブシステム250への電力を、電源263によって供給することができる。電源263に障害が発生する場合に、ストレージサブシステム250への電力を、電源253によって供給することができる。同様に、接続254に障害が発生する時に、ストレージサブシステム250への電力を、接続264を通じて供給することができる。同様に、接続264に障害が発生する時に、ストレージサブシステム250への電力を、接続254を通じて供給することができる。したがって、ストレージサブシステム250は、ストレージサブシステム250を動作不能にすることなく、さまざまなコンポーネントの障害を許容する。   [0036] In the event of a failure in the power supply 253, power to the storage subsystem 250 can be supplied by the power supply 263. When a failure occurs in the power supply 263, power to the storage subsystem 250 can be supplied by the power supply 253. Similarly, when connection 254 fails, power to storage subsystem 250 can be supplied through connection 264. Similarly, when connection 264 fails, power to storage subsystem 250 can be supplied through connection 254. Thus, the storage subsystem 250 tolerates various component failures without rendering the storage subsystem 250 inoperable.

[0037]一実施形態で、ディスクコントローラ210及び/又はディスクコントローラ220は、電源253、263への電力が切断されたことを検出する回路を含んでよい。さらに、そのような回路が、データの消失が発生しないように、ディスクコントローラ210、220の状態をストレージデバイス231〜234に保存するための電力を供給することができる。たとえば、電源253及び/又は電源263の切断を検出することができる。   [0037] In one embodiment, the disk controller 210 and / or disk controller 220 may include circuitry that detects that power to the power sources 253, 263 has been disconnected. Further, such a circuit can supply power for storing the state of the disk controllers 210 and 220 in the storage devices 231 to 234 so that data loss does not occur. For example, disconnection of the power supply 253 and / or the power supply 263 can be detected.

[0038]この場合に、電力を、電源253、263の切断の検出に応答して、ストレージデバイス231〜234に供給することができる。電源253、263は、電源253、263の両方への電力が切断された後に、ストレージデバイス231〜234へのディスクコントローラ210、220の状態の書込みを完了できるようにするのに十分な時間にわたってストレージサブシステム250に電力を供給することができる。したがって、少なくとも電源253、263の切断の結果としてデータ消失が発生しない時点まで、電力をストレージデバイス231〜234に供給することができる。さまざまな実施形態で、電源253、263は、バッテリ、キャパシタ、並びに/又は電源253、263への電力が切断された時にストレージサブシステム250に電力を供給する任意の他のコンポーネントを含むことができる。   In this case, power can be supplied to the storage devices 231-234 in response to detecting the disconnection of the power supplies 253, 263. The power supplies 253, 263 store the storage for a time sufficient to allow the writing of the state of the disk controllers 210, 220 to the storage devices 231-234 after the power to both the power supplies 253, 263 is disconnected. Subsystem 250 can be powered. Therefore, power can be supplied to the storage devices 231 to 234 until at least the time when data loss does not occur as a result of disconnection of the power supplies 253 and 263. In various embodiments, the power supplies 253, 263 can include batteries, capacitors, and / or any other component that provides power to the storage subsystem 250 when power to the power supplies 253, 263 is disconnected. .

[0039]ストレージサブシステム250が、図2Bに示された任意の要素のどのような単一の障害の存在の下であっても、データの消失なしに動作し続けることができることに留意されたい。また、さまざまな実施形態で、ストレージデバイス231〜234を、機械的ストレージデバイス、非機械的ストレージデバイス、揮発性ストレージ、又は不揮発性ストレージとすることができることに留意されたい。さらに、さまざまな実施形態で、ストレージデバイス231〜234は、DRAM又はフラッシュストレージ(たとえば、SLCデバイス、MLCデバイス、NORゲートフラッシュデバイス、NANDゲートフラッシュストレージデバイスなど)を含むことができるが、これらに限定はされない。   [0039] Note that the storage subsystem 250 can continue to operate without loss of data in the presence of any single failure of any of the elements shown in FIG. 2B. . It should also be noted that in various embodiments, the storage devices 231-234 can be mechanical storage devices, non-mechanical storage devices, volatile storage, or non-volatile storage. Further, in various embodiments, the storage devices 231-234 can include, but are not limited to, DRAM or flash storage (eg, SLC devices, MLC devices, NOR gate flash devices, NAND gate flash storage devices, etc.). Not done.

[0040]さらに、一実施形態で、ディスクコントローラ210、220を、2つの独立のチップとして実施することができる。別の実施形態で、ディスクコントローラ210、220を、1つのチップ上またダイ上で実施することができる。そのような実施態様を、たとえば、パッケージング時の影響に基づいて決定してよい。   [0040] Further, in one embodiment, the disk controllers 210, 220 can be implemented as two independent chips. In another embodiment, the disk controllers 210, 220 can be implemented on a single chip or on a die. Such an implementation may be determined, for example, based on packaging effects.

[0041]図3に、一実施形態によるディスクアセンブリ300を示す。オプションとして、ディスクアセンブリ300を、図1〜2の機能性及びアーキテクチャの文脈で実施することができる。しかし、もちろん、ディスクアセンブリ300を、任意の所望の環境の文脈で実施することができる。前述の定義を、この説明中にあてはめることができることにも留意されたい。   [0041] FIG. 3 illustrates a disk assembly 300 according to one embodiment. As an option, the disk assembly 300 may be implemented in the context of the functionality and architecture of FIGS. Of course, however, the disk assembly 300 may be implemented in the context of any desired environment. It should also be noted that the above definitions can be applied during this description.

[0042]図示されているように、ディスクアセンブリ300は、ディスクドライブ(図示せず)を含むプリント回路基板302、SATA(Serial Advanced Technology Attachment)コネクタ304の一部としてプライマリポートを有する電源コネクタ、及び第2SATAコネクタ306の一部としてセカンダリポートを有する電源コネクタを含んでいる。一実施形態で、ディスクアセンブリ300は、SAS(Serial Attached SCSI)コネクタを含んでもよい。たとえば、ディスクアセンブリ300は、ディスクドライブ(図示せず)を含むプリント回路基板302、SASコネクタ304の一部としてプライマリポートを有する電源コネクタ、及び第2SASコネクタ306の一部としてセカンダリポートを有する電源コネクタを含んでよい。   [0042] As shown, a disk assembly 300 includes a printed circuit board 302 that includes a disk drive (not shown), a power connector having a primary port as part of a SATA (Serial Advanced Technology Attachment) connector 304, and A power connector having a secondary port is included as part of the second SATA connector 306. In one embodiment, the disk assembly 300 may include a SAS (Serial Attached SCSI) connector. For example, the disk assembly 300 includes a printed circuit board 302 including a disk drive (not shown), a power connector having a primary port as part of the SAS connector 304, and a power connector having a secondary port as part of the second SAS connector 306. May be included.

[0043]オプションとして、コネクタ304、306は、ディスクアセンブリ300を、あるデータ冗長性構成として公開することができる。たとえば、SATAインターフェースは、RAID 1モードで構成されたディスクの対としてディスクアセンブリ300を公開することができる。別の実施形態で、SASインターフェースは、RAID 1モードで構成されたディスクの対としてディスクアセンブリ300を公開することができる。さらに別の実施形態で、SATA及びSASインターフェースは、RAID 0モードで構成された複数のディスクとしてディスクアセンブリ300を公開することができる。   [0043] Optionally, the connectors 304, 306 may expose the disk assembly 300 as a data redundancy configuration. For example, the SATA interface can expose the disk assembly 300 as a pair of disks configured in RAID 1 mode. In another embodiment, the SAS interface may expose the disk assembly 300 as a pair of disks configured in RAID 1 mode. In yet another embodiment, the SATA and SAS interfaces can expose the disk assembly 300 as multiple disks configured in RAID 0 mode.

[0044]図4に、別の実施形態によるディスクアセンブリ400を示す。オプションとして、ディスクアセンブリ400を、図1〜3の機能性及びアーキテクチャの文脈で実施することができる。しかし、もちろん、ディスクアセンブリ400を、任意の所望の環境の文脈で実施することができる。前述の定義を、この説明中にあてはまめることができることにも留意されたい。   [0044] FIG. 4 illustrates a disk assembly 400 according to another embodiment. As an option, the disk assembly 400 may be implemented in the context of the functionality and architecture of FIGS. Of course, however, the disk assembly 400 may be implemented in the context of any desired environment. It should also be noted that the above definitions can be applied during this description.

[0045]図示されているように、ディスクアセンブリ400は、複数のディスクアセンブリ410、420を含む。オプションとして、ディスクアセンブリ410、420は、図3からのディスクアセンブリ300を含むことができる。この場合に、各ディスクアセンブリ410、420は、プリント回路基板及びコネクタ430を含むことができる。   [0045] As shown, the disk assembly 400 includes a plurality of disk assemblies 410,420. Optionally, the disk assemblies 410, 420 can include the disk assembly 300 from FIG. In this case, each disk assembly 410, 420 can include a printed circuit board and a connector 430.

[0046]オプションで、各ディスクアセンブリ410、420を、電気接続401を介して相互接続することができる。この場合に、電気接続401は、たとえば図2Bのディスクコントローラバス203などのディスクコントローラバスを表すことができる。動作中に、ディスクアセンブリ400は、複数のディスク(たとえば、ディスクアセンブリ410及びディスクアセンブリ420)が従来のストレージ又はプライマリストレージ(たとえば、ディスクドライブなど)のスペースを占めることを可能にすることによって、システムのストレージ性能を高めることができる。   [0046] Optionally, each disk assembly 410, 420 can be interconnected via an electrical connection 401. In this case, the electrical connection 401 can represent a disk controller bus, such as the disk controller bus 203 of FIG. 2B, for example. During operation, the disk assembly 400 enables the system to allow multiple disks (eg, disk assembly 410 and disk assembly 420) to occupy space in conventional storage or primary storage (eg, disk drives, etc.). Storage performance can be improved.

[0047]図5に、一実施形態による、冗長ディスクコントローラを動作させる方法500を示す。オプションとして、この方法500を、図1〜4の機能性及びアーキテクチャの文脈で実施することができる。しかし、もちろん、方法500を、任意の所望の環境で実行することができる。前述の定義を、この説明中にあてはめることができることにも留意されたい。   [0047] FIG. 5 illustrates a method 500 for operating a redundant disk controller, according to one embodiment. As an option, the method 500 may be implemented in the context of the functionality and architecture of FIGS. Of course, however, the method 500 may be performed in any desired environment. It should also be noted that the above definitions can be applied during this description.

[0048]図示されているように、ストレージシステム(たとえば、ディスクアセンブリなど)の電源を入れる。工程510を参照されたい。ストレージシステムのディスクコントローラを監視する。工程520を参照されたい。オプションとして、ディスクコントローラを別のディスクコントローラによって監視することができる。そのような監視には、2つのディスクコントローラの間のバス(たとえば、図2Bのディスクコントローラバス203など)を介するディスクコントローラの監視、及び/又はストレージシステムのストレージデバイスに対応するバス(たとえば、ストレージデバイス231〜234の対応するバス241〜244など)上の動きの監視を含めることができる。   [0048] As shown, the storage system (eg, disk assembly, etc.) is powered on. See step 510. Monitor the disk controller of the storage system. See step 520. Optionally, the disk controller can be monitored by another disk controller. Such monitoring includes monitoring the disk controller via a bus between two disk controllers (eg, the disk controller bus 203 of FIG. 2B), and / or a bus (eg, storage) corresponding to the storage device of the storage system. Monitoring of movement on the corresponding buses 241-244 of the devices 231-234) can be included.

[0049]ストレージシステムは、監視されるディスクコントローラに障害が発生したと判定されるまで、ディスクコントローラを監視して動作し続ける。工程530を参照されたい。監視されているディスクコントローラに障害が発生する場合に、その監視されているディスクコントローラを切断する。工程540を参照されたい。   [0049] The storage system continues to operate by monitoring the disk controller until it is determined that a failure has occurred in the monitored disk controller. See step 530. When a failure occurs in the monitored disk controller, the monitored disk controller is disconnected. See step 540.

[0050]一実施形態で、ディスクコントローラの切断を、2つのディスクコントローラの間のバス(たとえば、図2Bのディスクコントローラバス203など)を介して切断コマンドを発行することによって実施することができる。この場合に、切断コマンドは、監視されるディスクコントローラをストレージデバイスにリンクするバス(たとえば、図2Bの接続211〜214又は接続221〜224)を切断することを含むことができる。一実施形態で、複数のディスクコントローラを、他のディスクコントローラによって監視してよい。この場合に、複数のディスクコントローラの各ディスクコントローラを、監視されるディスクコントローラと考えることができる。   [0050] In one embodiment, disconnecting a disk controller may be performed by issuing a disconnect command via a bus between two disk controllers (eg, the disk controller bus 203 of FIG. 2B). In this case, the disconnect command may include disconnecting the bus (eg, connections 211-214 or connections 221-224 of FIG. 2B) that links the monitored disk controller to the storage device. In one embodiment, multiple disk controllers may be monitored by other disk controllers. In this case, each disk controller of the plurality of disk controllers can be considered as a disk controller to be monitored.

[0051]図6に、別の実施形態による、冗長ディスクコントローラを動作させる方法600を示す。オプションとして、この方法600を、図1〜5の機能性及びアーキテクチャの文脈で実施することができる。しかし、もちろん、方法600を、任意の所望の環境で実行することができる。前述の定義を、この説明中にあてはめることができることにも留意されたい。   [0051] FIG. 6 illustrates a method 600 for operating a redundant disk controller, according to another embodiment. As an option, the method 600 may be implemented in the context of the functionality and architecture of FIGS. Of course, however, the method 600 may be performed in any desired environment. It should also be noted that the above definitions can be applied during this description.

[0052]図示されているように、ストレージシステム(たとえば、ディスクアセンブリなど)の電源を入れる。工程610を参照されたい。ストレージシステムの少なくとも2つのディスクコントローラの間のリンクを監視する。工程620を参照されたい。一実施形態で、ディスクコントローラの間のリンクは、図2Bのディスクコントローラバス203を含むことができる。さらに、ディスクコントローラの間のリンクを、ディスクコントローラのうちの少なくとも1つ(たとえば、図2Bの第1のディスクコントローラ210及び第2のディスクコントローラ220など)によって監視することができる。   [0052] As shown, the storage system (eg, disk assembly, etc.) is powered on. See step 610. Monitor the link between at least two disk controllers in the storage system. See step 620. In one embodiment, the link between the disk controllers can include the disk controller bus 203 of FIG. 2B. Further, the link between the disk controllers can be monitored by at least one of the disk controllers (eg, the first disk controller 210 and the second disk controller 220 in FIG. 2B).

[0053]リンクに障害が発生したと判定されるまで、ストレージシステムは、リンクを監視して動作し続ける。工程630を参照されたい。リンクに障害が発生する場合に、1つのディスクコントローラを切断する。工程640を参照されたい。   [0053] The storage system continues to operate by monitoring the link until it is determined that the link has failed. See step 630. When a failure occurs in the link, one disk controller is disconnected. See step 640.

[0054]一実施形態で、切断は、ディスクコントローラをストレージデバイスにリンクするバス(たとえば、図2Bの接続211〜214又は接続221〜224など)を切断することを含むことができる。この場合に、切断されるコントローラに関連するポートによって受け取られるコマンドは、処理されないものとすることができる。一例として、2つのディスクコントローラのうちの第2のディスクコントローラは、第1のディスクコントローラ及び第2のディスクコントローラの間のリンクの障害時に切断され得る。この場合に、第1コントローラは、動作し続けることができ、第2ディスクコントローラのポートからのコマンドは、処理されなくてもよい。   [0054] In one embodiment, disconnecting may include disconnecting a bus (eg, connections 211-214 or connections 221-224 of FIG. 2B) that links the disk controller to the storage device. In this case, commands received by the port associated with the controller being disconnected may not be processed. As an example, the second of the two disk controllers can be disconnected in the event of a link failure between the first disk controller and the second disk controller. In this case, the first controller can continue to operate, and commands from the port of the second disk controller need not be processed.

[0055]図7に、別の実施形態による、冗長ディスクコントローラを動作させるシステム700を示す。オプションとして、システム700を、図1〜6の機能性及びアーキテクチャの文脈で実施することができる。しかし、もちろん、システム700を、任意の所望の環境で実施することができる。前述の定義に、この説明中にあてはめることができることにも留意されたい。   [0055] FIG. 7 illustrates a system 700 for operating a redundant disk controller, according to another embodiment. As an option, the system 700 may be implemented in the context of the functionality and architecture of FIGS. Of course, however, the system 700 can be implemented in any desired environment. It should also be noted that the above definitions can be applied during this description.

[0056]図示されているように、少なくとも1つのコンピュータ702〜706が設けられる。コンピュータ702〜706は、複数のRAIDコントローラ712〜714に結合される。コントローラ712〜714は、複数のストレージデバイス716〜722と通信する。そのような通信には、ストレージデバイス716〜722に関連するポートを利用することを含めることができる。   [0056] As shown, at least one computer 702-706 is provided. Computers 702-706 are coupled to a plurality of RAID controllers 712-714. Controllers 712-714 communicate with a plurality of storage devices 716-722. Such communication can include utilizing ports associated with storage devices 716-722.

[0057]システム700の信頼性は、ドライブ内冗長性を有するストレージデバイス716〜722(たとえば、図2Bのストレージシステム250)を使用することによって達成することができる。さらに、すべての接続(たとえば、バスなど)を二重化して、システム700の信頼性を保証することができる。オプションとして、ストレージデバイス716〜722が、それぞれ、デバイスあたり2つのポートを含み、単一ポートを有するストレージデバイスの使用と比較して2倍の帯域幅を提供することができる。さらに、各ストレージデバイス716〜722は、RAID 5、RAID 6、RAID 10、RAID 50、RAID 60、スクエアパリティ冗長性スキーマなどの冗長性システムを利用することによって、2台のディスクをシミュレートすることができる。   [0057] Reliability of the system 700 can be achieved by using storage devices 716-722 (eg, storage system 250 of FIG. 2B) with intra-drive redundancy. In addition, all connections (eg, buses, etc.) can be duplicated to ensure system 700 reliability. Optionally, storage devices 716-722 each include two ports per device and can provide twice as much bandwidth as compared to using a storage device with a single port. In addition, each storage device 716-722 simulates two disks by utilizing a redundancy system such as RAID 5, RAID 6, RAID 10, RAID 50, RAID 60, square parity redundancy scheme, etc. Can do.

[0058]オプションとして、書込減少論理708〜710を利用して、ストレージデバイス716〜722への書込みの回数を減らすことができる。この場合に、データ冗長性を提供するためのストレージコマンドの変換は、減少の後に実行することができる。たとえば、ストレージコマンドを、コントローラ712〜714の第1データ冗長性方式(たとえば、RAID 5、RAID 6、RAID 10、RAID 50、RAID 60、スクエアパリティ冗長性スキーマなど)に従ってデータ冗長性を提供するために受け取ることができる。   [0058] Optionally, write reduction logic 708-710 can be utilized to reduce the number of writes to storage devices 716-722. In this case, the storage command conversion to provide data redundancy can be performed after the reduction. For example, to provide storage commands with data redundancy according to the first data redundancy scheme (eg, RAID 5, RAID 6, RAID 10, RAID 50, RAID 60, square parity redundancy scheme, etc.) of controllers 712-714. Can be received.

[0059]次に、書込減少論理708〜710を利用して、ストレージデバイス716〜722への書込みの回数を減らすことができる。次に、ストレージコマンドを、ストレージデバイス716〜722に関連する第2データ冗長性方式に従ってデータ冗長性を提供するために変換する(たとえば、回路によって)ことができる。一実施形態で、第2データ冗長性方式は、第1データ冗長性方式と同一(たとえば、RAID 5、RAID 6、RAID 10、RAID 50、RAID 60、スクエアパリティ冗長性スキーマなど)とすることができる。別の実施形態で、第2データ冗長性方式は、第1データ冗長性方式と異なるもの(たとえば、RAID 1、RAID 6、RAID 10、RAID 50、RAID 60、スクエアパリティ冗長性スキーマなど)とすることができる。   [0059] Next, write reduction logic 708-710 can be utilized to reduce the number of writes to storage devices 716-722. The storage command can then be translated (eg, by a circuit) to provide data redundancy according to a second data redundancy scheme associated with storage devices 716-722. In one embodiment, the second data redundancy scheme may be the same as the first data redundancy scheme (eg, RAID 5, RAID 6, RAID 10, RAID 50, RAID 60, square parity redundancy scheme, etc.). it can. In another embodiment, the second data redundancy scheme is different from the first data redundancy scheme (eg, RAID 1, RAID 6, RAID 10, RAID 50, RAID 60, square parity redundancy scheme, etc.). be able to.

[0060]一実施形態で、書込減少論理708〜710を利用して、第1データ冗長性方式に従ってデータ冗長性を提供するために受け取られたストレージコマンドを、第2データ冗長性方式と互換のフォーマットにフォーマットすることができる。厳密にはオプションとして、RAIDコントローラ712〜714は、ストレージデバイス716〜722の文脈で説明したドライブ内冗長性を有するシステムを含むことができる。この形で、ストレージデバイス716〜722への書込みの回数を減らすことができる。したがって、ストレージコマンドを、書込みの回数を減らした後に、ストレージデバイス716〜722に関連する第2データ冗長性方式に従ってデータ冗長性を提供するために変換することができる。この形で、データのランダム化を回避することができる。   [0060] In one embodiment, write commands that utilize write reduction logic 708-710 are compatible with the second data redundancy scheme for storage commands received to provide data redundancy according to the first data redundancy scheme. Can be formatted to Strictly as an option, the RAID controllers 712-714 may include systems with in-drive redundancy as described in the context of storage devices 716-722. In this manner, the number of writes to the storage devices 716 to 722 can be reduced. Accordingly, the storage command can be converted to provide data redundancy according to a second data redundancy scheme associated with storage devices 716-722 after reducing the number of writes. In this way, data randomization can be avoided.

[0061]図8に、前述のさまざまな実施形態のさまざまなアーキテクチャ及び/又は機能性を実施できる例示的システム800を示す。図示されているように、システム800は、通信バス802に接続された少なくとも1つの主処理装置801を含んで提供される。システム800は、メインメモリ804をも含む。制御論理(ソフトウェア)及びデータが、メインメモリ804に格納され、メインメモリ804は、ランダムアクセスメモリ(RAM)の形をとることができる。   [0061] FIG. 8 illustrates an example system 800 that can implement various architectures and / or functionality of the various embodiments described above. As shown, a system 800 is provided that includes at least one main processing unit 801 connected to a communication bus 802. System 800 also includes main memory 804. Control logic (software) and data are stored in main memory 804, which can take the form of random access memory (RAM).

[0062]システム800は、グラフィックスプロセッサ806及びディスプレイ808すなわちコンピュータモニタをも含む。一実施形態で、グラフィックスプロセッサ806は、複数のシェーダモジュール、ラスタライゼーションモジュールなどを含むことができる。前述のモジュールのそれぞれを、グラフィックス処理ユニット(GPU)を形成するために単一の半導体プラットフォーム上に配置することさえできる。   [0062] The system 800 also includes a graphics processor 806 and a display 808 or computer monitor. In one embodiment, the graphics processor 806 can include multiple shader modules, rasterization modules, and the like. Each of the aforementioned modules can even be placed on a single semiconductor platform to form a graphics processing unit (GPU).

[0063]この説明では、単一の半導体プラットフォームが、ただ一つの単位の半導体ベースの集積回路又はチップを指すことができる。その意味での単一の半導体プラットフォームが、オンチップ動作をシミュレートする高められた接続性を有するマルチチップモジュールをも指すことができ、従来の中央処理装置(CPU)及びバス実施態様の利用に対する実質的な改善を行うことができることに留意されたい。もちろん、さまざまなモジュールを、ユーザの望みに従って、別々に又は半導体プラットフォームのさまざまな組合せで配置することもできる。   [0063] In this description, a single semiconductor platform may refer to only one unit of semiconductor-based integrated circuit or chip. A single semiconductor platform in that sense can also refer to a multi-chip module with enhanced connectivity that simulates on-chip operation, for use of conventional central processing unit (CPU) and bus implementations. Note that substantial improvements can be made. Of course, the various modules can also be arranged separately or in various combinations of semiconductor platforms, according to the user's wishes.

[0064]システム800は、二次ストレージ810をも含むことができる。二次ストレージ810は、たとえば、ハードディスクドライブ及び/又は、フロッピディスクドライブ、磁気テープドライブ、コンパクトディスクドライブなどを表すリムーバブルストレージドライブを含む。リムーバブルストレージドライブは、周知の形でリムーバブルストレージユニットから読み取り、及び/又はこれに書き込む。   [0064] The system 800 may also include secondary storage 810. Secondary storage 810 includes, for example, hard disk drives and / or removable storage drives representing floppy disk drives, magnetic tape drives, compact disk drives, and the like. Removable storage drives read from and / or write to removable storage units in a well-known manner.

[0065]コンピュータプログラム、又はコンピュータ制御論理アルゴリズムを、メインメモリ804及び/又は二次ストレージ810に格納することができる。そのようなコンピュータプログラムは、実行された時に、システム800がさまざまな機能を実行することを可能にする。メモリ804、ストレージ810、及び/又は任意の他のストレージは、コンピュータ読み取り可能な媒体のあり得る例である。   [0065] Computer programs or computer control logic algorithms may be stored in main memory 804 and / or secondary storage 810. Such computer programs, when executed, allow the system 800 to perform various functions. Memory 804, storage 810, and / or any other storage are possible examples of computer-readable media.

[0066]一実施形態で、さまざまな前の図面のアーキテクチャ及び/又は機能性を、主処理装置801、グラフィックスプロセッサ806、二次ストレージ810、主処理装置801とグラフィックスプロセッサ806との両方の機能の少なくとも一部が可能な集積回路(図示せず)、チップセット(すなわち、関連する機能を実行するユニットとして働くように設計され、そのようなユニットとして販売される集積回路のグループなど)、並びに/或いはさらに言えば任意の他の集積回路の文脈で実施することができる。   [0066] In one embodiment, the architecture and / or functionality of the various previous drawings is different for both main processor 801, graphics processor 806, secondary storage 810, both main processor 801 and graphics processor 806. An integrated circuit capable of at least some of the functions (not shown), a chipset (ie, a group of integrated circuits designed and marketed as units that perform the relevant functions, etc.), And / or more specifically, in the context of any other integrated circuit.

[0067]さらに、前述のさまざまな図面のアーキテクチャ及び/又は機能性を、一般的コンピュータシステム、回路基板システム、エンターテイメント目的専用のゲーム機システム、特定用途向けシステム、及び/又は任意の他の所望のシステムの文脈で実施することができる。たとえば、システム800は、デスクトップコンピュータ、ラップトップコンピュータ、及び/又は任意の他のタイプの論理の形をとることができる。さらに、システム800は、携帯情報端末(PDA)デバイス、携帯電話機デバイス、テレビジョンなどを含むがこれらに限定はされないさまざまな他のデバイスの形をとることができる。   [0067] Further, the architecture and / or functionality of the various drawings described above may be used in general computer systems, circuit board systems, gaming machine systems dedicated to entertainment purposes, application specific systems, and / or any other desired Can be implemented in the context of the system. For example, system 800 can take the form of a desktop computer, a laptop computer, and / or any other type of logic. Additionally, system 800 can take the form of a variety of other devices including, but not limited to, personal digital assistant (PDA) devices, mobile phone devices, televisions, and the like.

[0068]さらに、図示されてはいないが、システム800を、通信のためにネットワーク(たとえば、遠隔通信ネットワーク、ローカルエリアネットワーク(LAN)、無線ネットワーク、インターネットなどの広域ネットワーク(WAN)、ピアツーピアネットワーク、ケーブルネットワークなど)に結合することができる。   [0068] Further, although not shown, system 800 may be configured to communicate with a network (eg, a telecommunication network, a local area network (LAN), a wireless network, a wide area network (WAN) such as the Internet, a peer-to-peer network, Cable network etc.).

[0069]さまざまな実施形態を上で説明したが、これらが、限定ではなく例としてのみ提供されたことを理解されたい。したがって、好ましい実施形態の広がり及び範囲は、上で説明された例示的実施形態のいずれかによって限定されるのではなく、添付の特許請求の範囲及びその同等物に従ってのみ定義されなければならない。   [0069] While various embodiments have been described above, it should be understood that these are provided by way of example only and not limitation. Accordingly, the breadth and scope of the preferred embodiments should not be limited by any of the exemplary embodiments described above, but should be defined only in accordance with the appended claims and their equivalents.

Claims (44)

第1データ冗長性方式に従ってデータ冗長性を提供するためにストレージコマンドを受け取る工程と、
第2データ冗長性方式に従って前記データ冗長性を提供するために前記ストレージコマンドを変換する工程と、
複数のストレージデバイス内で前記データ冗長性を提供するために前記変換されたストレージコマンドを出力する工程と
を含む方法。
Receiving a storage command to provide data redundancy according to a first data redundancy scheme;
Converting the storage command to provide the data redundancy according to a second data redundancy scheme;
Outputting the converted storage command to provide the data redundancy in a plurality of storage devices.
前記第1データ冗長性方式が、redundant array of independent disks(RAID)−1データ冗長性方式を含む、請求項1に記載の方法。   The method of claim 1, wherein the first data redundancy scheme comprises a redundant array of independent disks (RAID) -1 data redundancy scheme. 前記第2データ冗長性方式が、redundant array of independent disks(RAID)−5データ冗長性方式を含む、請求項1に記載の方法。   The method of claim 1, wherein the second data redundancy scheme comprises a redundant array of independent disks (RAID) -5 data redundancy scheme. 前記第2データ冗長性方式が、redundant array of independent disks(RAID)−6データ冗長性方式を含む、請求項1に記載の方法。   The method of claim 1, wherein the second data redundancy scheme comprises a redundant array of independent disks (RAID) -6 data redundancy scheme. 前記ストレージデバイスが、機械的ストレージデバイスを含む、請求項1に記載の方法。   The method of claim 1, wherein the storage device comprises a mechanical storage device. 前記機械的ストレージデバイスが、ディスクドライブを含む、請求項5に記載の方法。   The method of claim 5, wherein the mechanical storage device comprises a disk drive. 前記ストレージデバイスが、ソリッドステートストレージデバイスを含む、請求項1に記載の方法。   The method of claim 1, wherein the storage device comprises a solid state storage device. 前記ソリッドステートストレージデバイスが、フラッシュメモリを含む、請求項7に記載の方法。   The method of claim 7, wherein the solid state storage device comprises flash memory. 前記フラッシュメモリが、NANDフラッシュメモリを含む、請求項8に記載の方法。   The method of claim 8, wherein the flash memory comprises a NAND flash memory. 前記NANDフラッシュメモリが、単一レベルセル(SLC)NANDフラッシュメモリを含む、請求項9に記載の方法。   The method of claim 9, wherein the NAND flash memory comprises a single level cell (SLC) NAND flash memory. 前記NANDフラッシュメモリが、マルチレベルセル(MLC)NANDフラッシュメモリを含む、請求項9に記載の方法。   The method of claim 9, wherein the NAND flash memory comprises a multi-level cell (MLC) NAND flash memory. 前記ソリッドステートメモリが、ダイナミックランダムアクセスメモリ(DRAM)を含む、請求項7に記載の方法。   The method of claim 7, wherein the solid state memory comprises dynamic random access memory (DRAM). 前記ストレージデバイスの電源の切断を検出する工程をさらに含む、請求項1に記載の方法。   The method of claim 1, further comprising detecting power down of the storage device. 前記電源の前記切断の検出に応じて、前記ストレージデバイスに電力を供給する工程をさらに含む、請求項13に記載の方法。   The method of claim 13, further comprising supplying power to the storage device in response to detecting the disconnection of the power source. 少なくとも、前記電源の切断の結果としてデータ消失が生じない時点まで、前記ストレージデバイスに電力が供給される、請求項14に記載の方法。   The method of claim 14, wherein power is supplied to the storage device at least until a time when no data loss occurs as a result of the power down. 前記電力が、キャパシタを利用して供給される、請求項15に記載の方法。   The method of claim 15, wherein the power is supplied utilizing a capacitor. 前記電力が、バッテリを利用して供給される、請求項15に記載の方法。   The method of claim 15, wherein the power is supplied utilizing a battery. 前記ストレージデバイスへの書込みの回数を減らす工程をさらに含む、請求項1に記載の方法。   The method of claim 1, further comprising reducing the number of writes to the storage device. 前記変換する工程が、前記減らす工程の後に実行される、請求項18に記載の方法。   The method of claim 18, wherein the converting step is performed after the reducing step. 前記第1データ冗長性方式又は前記第2データ冗長性方式の一方が、redundant array of independent disks(RAID)−10データ冗長性方式、redundant array of independent disks(RAID)−50データ冗長性方式、redundant array of independent disks(RAID)−60データ冗長性方式、及びスクエアパリティ冗長性方式のうちの1つを含む、請求項1に記載の方法。   One of the first data redundancy scheme or the second data redundancy scheme is a redundant array of independent disks (RAID) -10 data redundancy scheme, a redundant array of independent disks (RAID) -50 data redundancy scheme, or a redundant redundancy scheme. The method of claim 1, comprising one of an array of independent disks (RAID) -60 data redundancy scheme and a square parity redundancy scheme. 第1データ冗長性方式を利用してデータ冗長性を提供するためにストレージコマンドを受け取るコンピュータコードと、
第2データ冗長性方式を利用して前記データ冗長性を提供するために前記ストレージコマンドを変換するコンピュータコードと、
複数のストレージデバイス内で前記データ冗長性を提供するために前記変換されたストレージコマンドを出力するコンピュータコードと
を含む、コンピュータ読み取り可能な媒体上で実行される、コンピュータコード。
Computer code for receiving storage commands to provide data redundancy using a first data redundancy scheme;
Computer code for converting the storage command to provide the data redundancy utilizing a second data redundancy scheme;
Computer code executed on a computer readable medium comprising: computer code for outputting the converted storage command to provide the data redundancy in a plurality of storage devices.
第1データ冗長性方式を利用してデータ冗長性を提供するように適合されたストレージコマンドを、第2データ冗長性方式を利用して前記データ冗長性を提供するように適合されたストレージコマンドに変換する回路
を備える装置。
A storage command adapted to provide data redundancy using the first data redundancy scheme is changed to a storage command adapted to provide the data redundancy using the second data redundancy scheme. A device with a circuit to convert.
前記回路に結合された複数のストレージデバイスをさらに備える、請求項22に記載の装置。   24. The apparatus of claim 22, further comprising a plurality of storage devices coupled to the circuit. 複数のストレージデバイスへの書込みの回数を減らす工程と、
前記減らす工程の後に、データ冗長性方式を利用してデータ冗長性を提供する工程と、
を含む方法。
Reducing the number of writes to multiple storage devices;
Providing data redundancy using a data redundancy scheme after the reducing step;
Including methods.
前記データ冗長性方式が、redundant array of independent disks(RAID)データ冗長性方式を含む、請求項24に記載の方法。   25. The method of claim 24, wherein the data redundancy scheme comprises a redundant array of independent disks (RAID) data redundancy scheme. 前記データ冗長性方式が、redundant array of independent disks(RAID)−5データ冗長性方式を含む、請求項25に記載の方法。   26. The method of claim 25, wherein the data redundancy scheme comprises a redundant array of independent disks (RAID) -5 data redundancy scheme. 前記データ冗長性方式が、redundant array of independent disks(RAID)−6データ冗長性方式を含む、請求項25に記載の方法。   26. The method of claim 25, wherein the data redundancy scheme comprises a redundant array of independent disks (RAID) -6 data redundancy scheme. 前記ストレージデバイスが、機械的ストレージデバイスを含む、請求項24に記載の方法。   25. The method of claim 24, wherein the storage device comprises a mechanical storage device. 前記機械的ストレージデバイスが、ディスクドライブを含む、請求項28に記載の方法。   30. The method of claim 28, wherein the mechanical storage device comprises a disk drive. 前記ストレージデバイスが、ソリッドステートストレージデバイスを含む、請求項24に記載の方法。   25. The method of claim 24, wherein the storage device comprises a solid state storage device. 前記ソリッドステートストレージデバイスが、フラッシュメモリを含む、請求項30に記載の方法。   32. The method of claim 30, wherein the solid state storage device includes flash memory. 前記フラッシュメモリが、NANDフラッシュメモリを含む、請求項31に記載の方法。   32. The method of claim 31, wherein the flash memory comprises a NAND flash memory. 前記NANDフラッシュメモリが、単一レベルセル(SLC)NANDフラッシュメモリを含む、請求項32に記載の方法。   36. The method of claim 32, wherein the NAND flash memory comprises a single level cell (SLC) NAND flash memory. 前記NANDフラッシュメモリが、マルチレベルセル(MLC)NANDフラッシュメモリを含む、請求項32に記載の方法。   36. The method of claim 32, wherein the NAND flash memory comprises a multi-level cell (MLC) NAND flash memory. 前記ソリッドステートメモリが、ダイナミックランダムアクセスメモリ(DRAM)を含む、請求項30に記載の方法。   32. The method of claim 30, wherein the solid state memory comprises dynamic random access memory (DRAM). 前記ストレージデバイスの電源の切断を検出する工程をさらに含む、請求項24に記載の方法。   25. The method of claim 24, further comprising detecting power down of the storage device. 前記電源の前記切断の検出に応じて、前記ストレージデバイスに電力を供給する工程をさらに含む、請求項36に記載の方法。   38. The method of claim 36, further comprising supplying power to the storage device in response to detecting the disconnection of the power source. 少なくとも、前記電源の前記切断の結果としてデータ消失が生じない時点まで、前記ストレージデバイスに電力が供給される、請求項37に記載の方法。   38. The method of claim 37, wherein power is supplied to the storage device at least until a point in time where no data loss occurs as a result of the power down. 前記電力が、キャパシタを利用して供給される、請求項38に記載の方法。   40. The method of claim 38, wherein the power is supplied utilizing a capacitor. 前記電力が、バッテリを利用して供給される、請求項38に記載の方法。   40. The method of claim 38, wherein the power is supplied utilizing a battery. 前記減らす工程の後に、データ冗長性方式を利用してデータ冗長性を提供することによって、ランダム化が回避される、請求項24に記載の方法。   25. The method of claim 24, wherein after the reducing step, randomization is avoided by providing data redundancy utilizing a data redundancy scheme. 複数のストレージデバイスへの書込みの回数を減らすコンピュータコードと、
前記減らす工程の後に、データ冗長性方式を利用してデータ冗長性を提供するコンピュータコードと
を含む、コンピュータ読み取り可能な媒体上で実行される、コンピュータプログラム製品。
Computer code to reduce the number of writes to multiple storage devices;
A computer program product, executed on a computer readable medium, comprising computer code for providing data redundancy utilizing a data redundancy scheme after the reducing step.
複数のストレージデバイスへの書込みの回数を減らし、前記減らす工程の後に、データ冗長性方式を利用してデータ冗長性を提供する回路
を備える装置。
An apparatus comprising a circuit that reduces the number of writes to a plurality of storage devices and provides data redundancy using a data redundancy scheme after the reducing step.
前記回路に結合された複数のストレージデバイスをさらに備える、請求項43に記載の装置。   44. The apparatus of claim 43, further comprising a plurality of storage devices coupled to the circuit.
JP2009540232A 2006-12-08 2007-11-21 Data redundancy across multiple storage devices Pending JP2010511963A (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US87363006P 2006-12-08 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,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
PCT/US2007/024294 WO2008073219A1 (en) 2006-12-08 2007-11-21 Data redundancy in a plurality of storage devices

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2013169214A Division JP2013257900A (en) 2006-12-08 2013-08-16 Data redundancy in plural storage devices

Publications (2)

Publication Number Publication Date
JP2010511963A true JP2010511963A (en) 2010-04-15
JP2010511963A5 JP2010511963A5 (en) 2011-01-27

Family

ID=39512026

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2009540232A Pending JP2010511963A (en) 2006-12-08 2007-11-21 Data redundancy across multiple storage devices
JP2013169214A Pending JP2013257900A (en) 2006-12-08 2013-08-16 Data redundancy in plural storage devices

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2013169214A Pending JP2013257900A (en) 2006-12-08 2013-08-16 Data redundancy in plural storage devices

Country Status (4)

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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013232053A (en) * 2012-04-27 2013-11-14 Buffalo Memory Co Ltd External storage device
WO2016088254A1 (en) * 2014-12-05 2016-06-09 株式会社日立製作所 Storage system and method

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7904672B2 (en) 2006-12-08 2011-03-08 Sandforce, Inc. System and method for providing data redundancy after reducing memory writes
US7849275B2 (en) 2007-11-19 2010-12-07 Sandforce, Inc. System, method and a computer program product for writing data to different 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
TWI579688B (en) * 2012-02-29 2017-04-21 萬國商業機器公司 Raid data storage system
CN102915212B (en) * 2012-09-19 2015-06-10 记忆科技(深圳)有限公司 RAID (redundant arrays of inexpensive disks) realization method of solid state disks, solid state disk and electronic equipment
JP6696280B2 (en) 2016-04-13 2020-05-20 富士通株式会社 Information processing apparatus, RAID control method, and RAID control program
TWI648675B (en) 2017-08-29 2019-01-21 群聯電子股份有限公司 Data storage method, memory control circuit unit and memory storage device
CN109460372B (en) * 2017-09-06 2022-11-22 群联电子股份有限公司 Data storage method, memory control circuit unit and memory storage device
CN110780811B (en) * 2019-09-19 2021-10-15 华为技术有限公司 Data protection method, device and storage medium

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0816328A (en) * 1994-06-28 1996-01-19 Mitsubishi Electric Corp Disk array system
JPH08235076A (en) * 1994-11-10 1996-09-13 Raymond Eng Inc Redundant array of semiconductor memory element
JP2002108571A (en) * 2000-09-26 2002-04-12 Hitachi Ltd Method for recovering disk failure of disk array
JP2002207572A (en) * 2001-01-09 2002-07-26 Toshiba Corp Disk control system and disk control method
JP2004227560A (en) * 2003-01-20 2004-08-12 Samsung Electronics Co Ltd Parity storage method and error block restoration method in external storage subsystem
JP2006163474A (en) * 2004-12-02 2006-06-22 Fujitsu Ltd Storage device, control method thereof, and program
JP2006252165A (en) * 2005-03-10 2006-09-21 Toshiba Corp Disk array device and computer system
JP2006252247A (en) * 2005-03-11 2006-09-21 Hitachi Ltd Storage system and data movement method
WO2006120679A2 (en) * 2005-05-09 2006-11-16 Sandisk Il Ltd. A method and system for facilitating fast wake-up of a flash memory system

Family Cites Families (13)

* 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
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
JP3358795B2 (en) * 1997-03-27 2002-12-24 インターナショナル・ビジネス・マシーンズ・コーポレーション Disk drive device and control method therefor
JPH1153235A (en) * 1997-08-08 1999-02-26 Toshiba Corp Data updating method of disk storage device and disk storage control system
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
US20050160218A1 (en) * 2004-01-20 2005-07-21 Sun-Teck See Highly integrated mass storage device with an intelligent flash controller
KR100388498B1 (en) * 2000-12-30 2003-06-25 한국전자통신연구원 A Hierarchical RAID System Comprised of Multiple RAIDs
US20030084397A1 (en) * 2001-10-31 2003-05-01 Exanet Co. Apparatus and method for a distributed raid
JP2003316664A (en) * 2002-04-24 2003-11-07 Mitsubishi Electric Corp Nonvolatile semiconductor storage device
JP2004021811A (en) * 2002-06-19 2004-01-22 Hitachi Ltd Disk controller using nonvolatile memory
US7213102B2 (en) * 2003-06-26 2007-05-01 International Business Machines Corporation Apparatus method and system for alternate control of a RAID array
TWI261993B (en) * 2004-05-20 2006-09-11 Rdc Semiconductor Co Ltd System and method for data redundancy checking and correcting

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0816328A (en) * 1994-06-28 1996-01-19 Mitsubishi Electric Corp Disk array system
JPH08235076A (en) * 1994-11-10 1996-09-13 Raymond Eng Inc Redundant array of semiconductor memory element
JP2002108571A (en) * 2000-09-26 2002-04-12 Hitachi Ltd Method for recovering disk failure of disk array
JP2002207572A (en) * 2001-01-09 2002-07-26 Toshiba Corp Disk control system and disk control method
JP2004227560A (en) * 2003-01-20 2004-08-12 Samsung Electronics Co Ltd Parity storage method and error block restoration method in external storage subsystem
JP2006163474A (en) * 2004-12-02 2006-06-22 Fujitsu Ltd Storage device, control method thereof, and program
JP2006252165A (en) * 2005-03-10 2006-09-21 Toshiba Corp Disk array device and computer system
JP2006252247A (en) * 2005-03-11 2006-09-21 Hitachi Ltd Storage system and data movement method
WO2006120679A2 (en) * 2005-05-09 2006-11-16 Sandisk Il Ltd. A method and system for facilitating fast wake-up of a flash memory system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013232053A (en) * 2012-04-27 2013-11-14 Buffalo Memory Co Ltd External storage device
WO2016088254A1 (en) * 2014-12-05 2016-06-09 株式会社日立製作所 Storage system and method

Also Published As

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

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
JP2013257900A (en) Data redundancy in plural storage devices
US8930611B2 (en) Storage system and control method thereof
US10229018B2 (en) System and method for data restore flexibility on dual channel NVDIMMs
US20090113235A1 (en) Raid with redundant parity
US11157200B2 (en) Communicating over portions of a communication medium
TWI765129B (en) Storage system
US20120159004A1 (en) Redundant solid state disk system via interconnect cards
JP2022113100A (en) Distribution of error checking and correction (ecc) bits to allocate ecc bits to metadata
US11169584B2 (en) Dual-connector storage system and method for simultaneously providing power and memory access to a computing device
CN116783654A (en) Adaptive error correction to improve system memory reliability, availability and serviceability (RAS)
US11487654B2 (en) Method for controlling write buffer based on states of sectors of write buffer and associated all flash array server
JP2002073286A (en) Storage system
CN116263645A (en) Address generation for correcting standby for adaptive dual device data
JP2018156218A (en) Path switching unit and path changeover method and path changeover program and computer system

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101122

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101122

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120426

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120529

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120829

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120905

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20121001

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20121009

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20121029

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20121105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121129

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130416

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20130725