JP5245472B2 - 制御方法、ディスクアレイ装置 - Google Patents

制御方法、ディスクアレイ装置 Download PDF

Info

Publication number
JP5245472B2
JP5245472B2 JP2008063973A JP2008063973A JP5245472B2 JP 5245472 B2 JP5245472 B2 JP 5245472B2 JP 2008063973 A JP2008063973 A JP 2008063973A JP 2008063973 A JP2008063973 A JP 2008063973A JP 5245472 B2 JP5245472 B2 JP 5245472B2
Authority
JP
Japan
Prior art keywords
data
parity
disk
old
buffer
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.)
Expired - Fee Related
Application number
JP2008063973A
Other languages
English (en)
Other versions
JP2009223367A (ja
Inventor
惇 猪頭
秀夫 ▲高▼橋
與志仁 紺田
典秀 久保田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008063973A priority Critical patent/JP5245472B2/ja
Priority to US12/369,389 priority patent/US8015435B2/en
Publication of JP2009223367A publication Critical patent/JP2009223367A/ja
Application granted granted Critical
Publication of JP5245472B2 publication Critical patent/JP5245472B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1019Fast writes, i.e. signaling the host that a write is done before data is written to disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1059Parity-single bit-RAID5, i.e. RAID 5 implementations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

ディスクへの書き込みエラーから復旧するRAIDコントローラの制御技術に関する。
ディスクアレイ装置の代表としてRAID(Redundant Arrays of Inexpensive(Independent)Disks)がある。RAIDは安価で信頼性の高いストレージシステムを構築することができ、特にRAID5、6が多く活用されており、非常に有用な装置である。
しかしながらこれらRAID5、6などのRAIDシステムにおいて以下の問題がある。その問題はRAIDコントローラがデータのディスクへの書き込みに成功したが、そのデータに対応するパリティデータのディスクへの書き込みが失敗した場合に発生する。このような場合、RAIDコントローラがパリティデータをディスクへ書き込むリトライが成功するまで、RAIDコントローラはパリティバッファにパリティデータを保持し続ける。一方でパリティバッファの資源は限られている。
そのためRAIDコントローラがパリティバッファにパリティデータを保持し続けた状態で、ホストコンピュータから新たな書き込み命令を続けて受信したり、高負荷の書き込み処理を受信すると、パリティバッファの容量が不足する。その結果、RAIDコントローラがホストコンピュータに対して、エラー応答を返してしまう(ジョブアベンド)といった問題が起きる。
RAIDに関連する特許文献として以下のものがある。
特開2006−252414号公報 特開2003−167688号公報
本願発明のディスクアレイ装置は、パリティデータの書き込みエラーが発生した場合であっても、メモリ資源を有効活用して、ホストコンピュータからのジョブを継続可能にすることを目的とする。
本実施例に係る制御方法は、キャッシュとバッファを有し、少なくとも1つの第1の記憶部と、第2の記憶部と、第3の記憶部とを含む複数の記憶部に接続されるコントローラの制御方法において、第1のデータを前記キャッシュに格納し、前記第1のデータと、前記第1の記憶部に格納されている第2のデータと、前記第2のデータ及び前記第2の記憶部に格納されている第3のデータによって形成されるストライプに対応する第1のパリティデータとに基づいて、第2のパリティデータを生成し、生成した第2のパリティデータを前記バッファに格納し、前記バッファに格納されている前記第2のパリティデータを前記第3の記憶部に書き込み、前記第2の記憶部が故障し、かつ前記バッファに格納されている前記第2のパリティデータと前記第3の記憶部に格納されている前記第2のパリティデータとが異なる場合に、前記第2のデータと、前記バッファに格納されている前記第2のパリティデータとに基づいて、前記第3のデータを復元し、前記バッファに格納されている前記第2のパリティデータを削除し、復元した前記第3のデータを前記キャッシュに格納し、前記キャッシュに格納されている前記第1のデータと前記第3のデータとに基づいて、前記第2のパリティデータを再生成し、再生成した前記第2のパリティデータを前記第3の記憶部に格納することを特徴とする。
また本実施例に係る制御方法は、前記第1の記憶部に格納されている前記第2のデータを第2のバッファに格納し、前記第3の記憶部に格納されている前記第1のパリティデータを前記バッファに格納し、前記第1のデータと、前記第2のバッファに格納されている前記第2のデータと、前記バッファに格納されている前記第1のパリティデータとに基づいて、前記第2のパリティデータを生成し、前記第3のデータを復元した場合に、前記バッファに格納されている前記第2のパリティデータと、前記第2のバッファに格納されている前記第2のデータとを削除することを特徴とする。
また本実施例に係る制御方法は、前記コントローラにかかる負荷率が所定の値以下である場合に、前記負荷率が高くなるほど長く設定される所定の時間間隔で前記第2のパリティデータを再生成することを特徴とする。
さらに本実施例に係るディスクアレイ装置は、少なくとも1つの第1の記憶部と、第2の記憶部と、第3の記憶部とを含む複数の記憶部と、第1のデータをキャッシュに格納し、前記第1のデータと、前記第1の記憶部に格納されている第2のデータと、前記第2のデータ及び前記第2の記憶部に格納されている第3のデータによって形成されるストライプに対応する第1のパリティデータとに基づいて、第2のパリティデータを生成し、生成した第2のパリティデータをバッファに格納し、前記バッファに格納されている前記第2のパリティデータを前記第3の記憶部に書き込み、前記第2の記憶部が故障し、かつ前記バッファに格納されている前記第2のパリティデータと前記第3の記憶部に格納されている前記第2のパリティデータとが異なる場合に、前記第2のデータと、前記バッファに格納されている前記第2のパリティデータとに基づいて、前記第3のデータを復元し、前記バッファに格納されている前記第2のパリティデータを削除し、復元した前記第3のデータを前記キャッシュに格納し、前記キャッシュに格納されている前記第1のデータと前記第3のデータとに基づいて、前記第2のパリティデータを再生成し、再生成した前記第2のパリティデータを前記第3の記憶部に格納する制御部とを備えることを特徴とする。
本願発明のディスクアレイ装置は、パリティデータの書き込みエラーが発生した場合であっても、バッファを開放し、パリティデータの書き込みをリトライするときに再作成することによって、ホストコンピュータにエラー応答を返す異常終了を回避することができる。
以下、RAIDシステムにおけるコントローラモジュールのバッファ容量の枯渇制御について説明する。
(実施例1)
[1.RAIDシステム100]
図1は本実施例に係るRAIDシステム100の構成図であるRAIDシステム100は、ホストコンピュータ101、CA(チャネルアダプタ)102、CM(コントローラモジュール)103、ディスク104、105、106、107から構成されている。RAIDシステム100は、各データのストライプが、3つのデータストライプと1のパリティストライプで構成されているRAID5である。RAID5のいわゆる(3+1)の構成である。
[1.1.ホストコンピュータ101]
ホストコンピュータ101は、書き込み命令、読み出し命令をCA102に出す。ホストコンピュータ101は、書き込み命令と共にディスク104〜107に書き込むデータをCA102に送る。
[1.2.CA(チャネルアダプタ)102]
CA102は、ホストコンピュータ101とCM103との間で通信制御を行う。CA102は、ホストコンピュータ101からCM103への書き込み命令又は読み出し命令を処理して、ホストコンピュータ101とCM103との間のデータ転送を制御する。
[1.3.CM(コントローラモジュール)103]
CM103は、CA102を介してホストコンピュータ101から受信するデータをディスク104〜107に分散して格納する。本実施例において、CM103は、データ(New Data)108をディスク104に書き込み、パリティデータ(Old Parity)110をパリティデータ(New Parity)111に更新する場合を考える。
CM103はディスク104にデータ(New Data)108を書き込む場合、まずCM103はデータ(Old Data)109をディスク104から読み出す。
そしてCM103は、データ(Old Data)109に対応するパリティデータ(Old Parity)110をディスク107から読み出す。パリティデータ(Old Parity)110は、データ(Old Data)109、及びディスク105、106に格納されておりデータ109に対応するデータ(図2に記載のデータ205、206)の排他的論理和である。
CM103は、データ(New Data)108とデータ(Old Data)109とデータ(Old Parity)110の排他的論理和をとってデータ(New Parity)111を生成する。CM103は、データ(New Data)108をディスク104に、データ(New Parity)109をディスク107に書き込みを試みる。
CM103は、ディスク104にデータ(New Data)108を書き込み成功し、ディスク107にパリティデータ(New Parity)111を書き込み失敗した場合、ディスク104〜107に格納するデータ間で整合性が取れない問題が発生する。
ここで図2は本実施例に係るディスク104〜107に格納するデータを示すデータテーブル200である。データテーブル200は、データ(New Data)108をディスク104に書き込む前と書き込んだ後におけるディスク104〜107に格納しているデータを示している。データテーブル200に示すデータは、ディスク104〜107が格納する1ストライプ分のデータである。ディスク104〜107は、データテーブル200に示すデータ以外のデータも格納している。カラム201はディスク104に格納するデータ、カラム202はディスク105に格納するデータ、カラム203はディスク106に格納するデータ、カラム204はディスク107に格納するデータを示している。
CM103がディスク104、107にデータを書く前(Pre)では、ディスク104はデータ(Old Data)109を、ディスク105はデータ(Old Data)205を、ディスク106はデータ(Old Data)206を、ディスク107はパリティデータ(Old Parity)110を格納している。
そしてCM103がディスク104にデータ(New Data)108を書き込んだ後(After)では、ディスク104はデータ(New Data)108を、ディスク105はデータ(Old Data)205を、ディスク106はデータ(Old Data)206を、ディスク107はパリティデータ(Old Parity)110を格納している。
本実施例においてCM103は、ディスク107にパリティデータ(New Parity)111の書き込みを失敗する。そのためCM103がディスク104にデータ(New Data)108を書き込んだ後(After)において、ディスク104〜107に格納されるデータは、ディスク104〜107データ間で整合性がとれていない状態である。
CM103がディスク107にパリティデータ(Old Parity)110を書き込み失敗した場合、CM103は書き込みを失敗したパリティデータ(New Parity)111をパリティバッファに保持する。CM103はパリティデータ111をパリティバッファに保持した状態で、さらなるホストコストコンピュータ101からの命令などによりCM103によるディスク104〜107へのデータ書き込みが発生すると、CM103のパリティバッファの容量が足りなくなる問題が発生する。
<1.3.1.バッファ量の枯渇制御>
そこで本実施例に係るCM103は以下の処理を行い、上記問題であるCM103が有するパリティバッファの容量枯渇を制御する。
CM103はデータ(Old Data)109をCM103が有するデータバッファに書き戻す。CM103はディスク105、106からデータ(Old Data)109に対応するデータ205、206を読み出し、CMが有するキャッシュに格納する。対応するデータ205、206はデータ(Old Data)109とパリティデータ(Old Parity)110と共に1ストライプを形成するデータである。1ストライプを形成するデータは、ホストコンピュータ101から書き込み命令のあったまとまったデータをディスク104〜107に配分したデータである。またストライプは、複数のディスク104〜107の連続してアドレス指定されたブロックの集合である。つまり複数のディスク104〜107において1ストライプを形成するデータは、複数のディスク104〜107それぞれの連続してアドレス指定されたブロックの集合に格納されたデータであって対応関係にあるものをいう。
CM103は、整合性の保たれた1ストライプ分のデータをキャッシュに格納している。CM103はキャッシュ103に保持するデータ(Old Data)109、データ205及びデータ206の排他的論理和を計算して、パリティデータ(New Parity)111を再び生成できる。そのためCM103は、パリティバッファに保持するパリティデータ(New Parity)111をパリティバッファから削除する。
CM103は、パリティデータ(New Parity)111のディスク107への再書き込みをリトライするに際し、キャッシュに保持するデータ(Old Data)109、データ205、データ206から再びパリティデータ(New Parity)111を生成する。そしてCM103は、再生成したパリティデータ(New Parity)111をディスク107に書き込む。
[1.4.ディスク104〜106、107]
上記に示したようにディスク104〜107は、CM103を介して、ホストコンピュータ101が送るデータを分散して格納している。
CM103は、ディスク104〜107が形成する1ストライプにデータとそのデータに対応するパリティデータを分散して格納する。
図3は本実施例に係るCM103の機能ブロック図である。
CM103は、バッファ獲得手段301、データ読み出し手段302、パリティ生成手段303、データ書き込み手段304、整合判定手段305、データ書き戻し手段306、バッファ開放手段307を有している。またCM103はハード構成として、CPU308、キャッシュ309、メモリ310から構成されている。CPU308が、バッファ獲得手段301、データ読み出し手段302、パリティ生成手段303、データ書き込み手段304、整合判定手段305、データ書き戻し手段306、バッファ開放手段307を実行する。CPU308はCM103がこれら機能を実行して、キャッシュ309、メモリ310へのデータ、そのデータに対応するパリティデータを書き込み/読み出し制御を行う。以下、CM103が有する各機能について説明する。
[2.1.バッファ獲得手段301]
CPU308がバッファ獲得手段301を実行し、メモリ310上でデータバッファ311、パリティバッファ312の獲得処理を行う。ホストコンピュータ101からスモールライト(Small Write)のデータ書き込み命令があると、バッファ獲得手段301は、データ(Old Data)109とデータ(Old Parity)110を読み出すためのデータバッファ311、パリティバッファ312をメモリ310上に確保する。より具体的にはバッファ獲得手段301は、メモリ310の一定のアドレス範囲にデータ(Old Data)109とデータ(Old Parity)110を格納できる領域を割り当てる処理を行う。
そしてバッファ獲得手段310がメモリ310上に獲得するデータバッファ311の容量は、データ(Old Data)109を格納できる最小限の容量であり、データ(Old Data)109と同じ大きさ若しくはそれに順ずる程度の容量である。同様にバッファ獲得手段310がメモリ310上に獲得するパリティバッファ312の容量は、パリティデータ(Old Parity)110を格納できる最小限の容量であり、パリティデータ(Old Parity)110と同じ大きさ若しくはそれに順ずる程度の容量である。これはデータバッファ311、パリティバッファ312の容量枯渇の原因となるエラーの発生確率が低いことによる。換言すれば、データバッファ311、パリティバッファ312の容量は、エラーの発生確率とデータ書き込み処理に必要なメモリ容量を考慮した容量である。そのため、バッファ獲得手段310は、予め定められたエラーの発生確率とデータ書き込み処理に必要なメモリ容量に応じて、データバッファ311及びパリティバッファ312を確保する。
またスモールライト(Small Write)は、RAIDシステム100における書き込み範囲が1ストライプの半分以下のブロック(0xC0 block以下)の書き込み処理である。
[2.2.データ読み出し手段302]
CPU308がデータ読み出し手段302を実行し、データバッファ311にデータ(Old Data)109、パリティバッファ312にパリティデータ(Old Parity)110を読み出す処理を行う。バッファ獲得手段301がデータバッファ311、パリティバッファ312をメモリ310上に獲得した後、データ読み出し手段302は、データバッファ311にデータ(Old Data)109、パリティバッファ312にパリティデータ(Old Parity)110を読み出す。データ読み出し手段302は、データバッファ311にデータ(Old Data)109、パリティバッファ312にパリティデータ(Old Parity)110を格納する。
[2.3.パリティ生成手段303]
CPU308がパリティ生成手段303を実行し、パリティデータ(New Parity)111を生成する。まずパリティ生成手段303は、データバッファ311のデータ(Old Data)109とパリティバッファ312のパリティデータ(Old Parity)110の排他的論理和(XOR)を計算して中間結果を算出した後、パリティ生成303は中間結果とキャッシュ309のデータ(New Data)108との排他的論理和(XOR)を計算してパリティデータ(New Parity)111を生成する。パリティ生成手段303はパリティデータ(New Parity)111をパリティバッファ312に格納する。
[2.4.データ書き込み手段304]
CPU308がデータ書き込み手段304を実行し、ディスク104にデータ(New Data)108を、ディスク107にパリティデータ(New Parity)111を書き込む処理を試みる。正常にデータ書き込み処理手段304が書き込み処理を実行できれば、データ(New Data)108をディスク104、パリティデータ(New Parity)111をディスク107に書き込むことができる。
しかしながら、ディスクへの書き込みタイミングの不一致、ディスク107へのゴミの混入などの原因により、データ書き込み手段304はデータ(New Data)108をディスク104に書き込むことができるが、パリティデータ(New Parity)111をディスク107に書き込むことができない場合が発生する。この場合パリティバッファ312はパリティデータ(New Parity)を保持したままとなる。そのため新たにホストコンピュータ101からディスク104〜107へのデータ書き込み命令があると、パリティバッファ312の容量が不足するといった問題は生じる。そこで本実施例におけるRAIDシステム100は、パリティバッファ312を開放し、パリティデータ(New Parity)111を再書き込みするときに、パリティデータ(New Parity)111を再作成することによって、メモリ310の資源を有効活用できるようにする。
[2.5.整合判定手段305]
CPU308が整合判定手段305を実行し、ディスク107に格納されるパリティデータを読み出し、パリティバッファ312に格納するパリティデータ(New Parity)111とディスク107に格納するパリティデータとを比較する。パリティバッファ312に格納するパリティデータ(New Parity)111とディスク107に格納するパリティデータとを比較した結果、整合判定手段305がパリティデータ(New Parity)111とディスク107に格納するパリティデータが一致しないと判定する場合、データ書き込み手段304がパリティデータ(New Parity)111をディスク106に書き込むことができなかったと判定する。またパリティバッファ312に格納するパリティデータ(New Parity)111とディスク107に格納するパリティデータとを比較した結果、整合判定手段305がパリティデータ(New Parity)111とディスク107に格納するパリティデータが一致すると判定する場合、データ書き込み手段304がパリティデータ(New Parity)111をディスク106に書き込むことができたと判定する。
[2.6.データ書き戻し手段306]
CPU308がデータ書き戻し手段306を実行し、データ(Old Data)109をデータバッファ311に書き戻す。データ書き込み手段306がパリティデータ(New Parity)111をディスク107へ書き込み失敗した場合に、データ書き戻し手段306はデータ(Old Data)109をデータバッファ311に書き戻す。
そしてデータ読み出し手段302はディスク105、106からデータ(New Data)108と1ストライプを形成して対応関係にあるデータをキャッシュ309に読み出す。
[2.7.バッファ開放手段307]
CPU308がバッファ開放手段307を実行し、パリティバッファ312に格納するパリティデータ(New Parity)111を削除する。
データ書き戻し手段306がデータ(Old Data)109をデータバッファ311に書き戻し、さらにディスク105、106からデータ(New Data)108と1ストライプを形成して対応関係にあるデータをキャッシュ309に読み出した場合、バッファ開放手段307はパリティバッファ312に格納するパリティデータ(New Parity)111を削除する。
これはキャッシュ309上には、ホストコンピュータ101からCA102を介して受信したデータ(New Data)108、ディスク105、106から読み出したデータ205、206が存在するためである。つまりキャッシュ309が、パリティデータ(New Parity)111を形成するためのデータを保持しているため、パリティバッファ312がパリティデータ(New Parity)111を保持しなくてもよい。ここでキャッシュ309は、データ(New Data)108を保持すると、データ(Old Data)205、データ(Old Data)206を格納される領域も空けておく。キャッシュ309に保持するデータとディスク104〜107で1ストライプを形成するデータを対応づけて管理するためである。これによりCM103でのデータ管理が簡易となるため、CM103の書き込み処理を高速に行うことができる。したがってCM103は、ディスク104〜107で形成する1ストライプ単位で、キャッシュ309にデータを保持する領域を確保する。CPU308が実行する確保手段(図示せず)キャッシュ309にデータを保持する領域を1ストライプ単位で確保する。
[3.パリティバッファ312の容量の枯渇制御に関するフローチャート]
図4は本実施例に係るCM103が処理するパリティバッファ312の容量枯渇の制御に関するフローチャートである。
ホストコンピュータ101からスモールライト(Small Write)のデータ書き込み命令があると、バッファ獲得手段301は、データ(Old Data)109とデータ(Old Parity)110を読み出すためのデータバッファ311、パリティバッファ312をメモリ310上に確保する(ステップS401)。
バッファ獲得手段301がデータバッファ311、パリティバッファ312をメモリ310上に獲得した後、データ読み出し手段302は、データバッファ311にデータ(Old Data)109、パリティバッファ312にパリティデータ(Old Parity)110を読み出す(ステップS402)。データバッファ311はデータ(Old Data)109を、パリティバッファ312はパリティデータ(Old Parity)110を保持する(ステップS403)。
パリティ生成手段303は、データバッファ311のデータ(Old Data)109とパリティバッファ312のパリティデータ(Old Parity)110の排他的論理和(XOR)を計算して中間結果を算出する(S404)。パリティ生成手段303は、パリティデータ(Old Parity)110をパリティバッファ312から削除する(ステップS405)。そしてパリティ生成303は中間結果とキャッシュ309のデータ(New Data)108との排他的論理和(XOR)を計算してパリティデータ(New Parity)111を生成する(ステップS406)。パリティ生成手段303はパリティデータ(New Parity)111をパリティバッファ312に格納する(ステップS407)。
そしてデータ書き込み手段304は、データ(New Data)108をディスク104、パリティデータ(New Parity)111をディスク107に書き込みトライし、パリティデータ(New Parity)111の書き込みができたか否かを判別する(ステップS408)。整合判定手段305を実行し、ディスク107に格納されるパリティデータを読み出し、パリティバッファ312に格納するパリティデータ(New Parity)111とディスク107に格納するパリティデータとを比較する。パリティバッファ312に格納するパリティデータ(New Parity)111とディスク107に格納するパリティデータとを比較した結果、整合判定手段305がパリティデータ(New Parity)111とディスク107に格納するパリティデータが一致しないと判定する場合、データ書き込み手段304がパリティデータ(New Parity)111をディスク106に書き込むことができなかったと判定する(ステップS408 NO)。またパリティバッファ312に格納するパリティデータ(New Parity)111とディスク107に格納するパリティデータとを比較した結果、整合判定手段305がパリティデータ(New Parity)111とディスク107に格納するパリティデータが一致すると判定する場合、データ書き込み手段304がパリティデータ(New Parity)111をディスク106に書き込むことができたと判定する(ステップS408 YES)。
データ書き込み手段304がデータ(New Data)108をディスク104、パリティデータ(New Parity)111をディスク107に書き込むことができたと判別する場合(ステップS408 YES)、バッファ開放手段307は、パリティバッファ312に格納するパリティデータ(New Parity)111、及びデータバッファ311に格納するデータ(Old Data)109を削除する(ステップS413)。CM103はデータの書き込み処理を終了する。データ書き込み手段304がデータパリティデータ(New Parity)111をディスク107に書き込むことができなかったと判別する場合(ステップS408 NO)、パリティバッファ312はパリティデータ(New Parity)111を保持したままとする(ステップS409)。
そしてデータ書き戻し手段306は、データ(Old Data)109をディスク104に書き戻す(ステップS410)。これはディスク104〜107におけるデータの整合性を保つためである。続いてデータ書き戻し手段306はディスク105、106からデータ(Old Data)205とデータ(Old Data)206をキャッシュ309に読み出す(ステップS411)。これらデータ(Old Data)205とデータ(Old Data)206が、データ(New Data)108と1ストライプを形成する対応関係にあるデータである。
バッファ開放手段307は、データバッファ311に格納するデータ(Old Data)109、及びパリティバッファ312に格納するパリティデータ(New Parity)111を削除する(ステップS412)。
上記図4のフローチャートに示すバッファ容量の枯渇制御を図解すると図5〜7のように表すことができる。図5はCM103におけるパリティデータ(New Data)111の生成を図示したものである。また図6はCM103におけるデータ(Old Data)205とデータ(Old Data)206の読み出しを図示したものである。
CM103のバッファ獲得手段301がデータバッファ311、パリティバッファ312をメモリ310上に確保する。続いてCM103のデータ読み出し手段302がデータバッファ311にデータ(Old Data)109、パリティバッファ312にパリティデータ(Old Parity)110を読み出す。CM103のデータ読み出し手段302は、データバッファ311にデータ(Old Data)109、パリティバッファ312にパリティデータ(Old Parity)110を保持する。パリティ生成手段303は、データ(Old Data)109、パリティデータ(Old Parity)110、及びデータ(New Data)108との排他的論理和(XOR)を計算してパリティデータ(New Parity)111を生成する。パリティ生成手段303はパリティデータ(New Parity)111をパリティバッファ312に格納する。そしてデータ書き込み手段304は、データ(New Data)108をディスク104、パリティデータ(New Parity)111をディスク107に書き込みトライする。
次に図6においてデータ書き込み手段304がパリティデータ(New Parity)111をディスク107に書き込むことができなかったと判別する場合には、パリティバッファ312はパリティデータ(New Parity)を保持したままとする。そしてデータ書き戻し手段306は、データ(Old Data)109をディスク104に書き戻す。続いてデータ書き戻し手段306はデータ(Old Data)205とデータ(Old Data)206をキャッシュ309に読み出す。バッファ開放手段307は、データバッファ311に格納するデータ(Old Data)109、及びパリティバッファ312に格納するパリティデータ(New Parity)111を削除する
[4.コマンドリトライの処理に関するフローチャート]
図7は本実施例に係るコマンドリトライの処理を図解した図である。そして図8は本実施例に係るCM103が実行するコマンドリトライの処理を示すフローチャートである。
CM103がパリティデータ(New Parity)111をディスク111へ再び書き込むことを試みる(コマンドリトライを発行する)に際し、パリティ生成手段303は再びキャッシュ309に保持するデータ(New Data)108とデータ(New Data)108に対応関係のあるデータ(Old Data)205、206から再びパリティデータ(New Parity)111を生成する(ステップS801)。
バッファ獲得手段301は再びパリティバッファ312をメモリ310上に確保し、データ書き込み手段304はパリティデータ(New Parity)111をディスク107に書き込むことを試みる(ステップS802)。CM103がパリティデータ(New Parity)111をディスク107に再書き込み(コマンドリトライ)を一定時間ごとにリトライする。そのためパリティ生成手段303は、一定時間ごとにパリティデータ(New Parity)111を再作成する。パリティ生成手段303は、CM103の負荷率(より具体的にはCPU308の負荷率)に応じて、パリティデータ(New Parity)111を再作成する。換言すれば、CM103にかかる負荷が高くなると、パリティ生成手段303は、パリティデータ(New Parity)111を再作成する時間間隔を長くする。CM103にかかる負荷率が一定の閾値以下のときに、パリティ生成手段303がパリティデータ(New Parity)111を再作成する。パリティ生成手段303がCM103にかかる負荷率が一定の閾値以下と判定する場合に、パリティデータ(New Parity)111を再作成するため、パリティ生成手段303がCM103にかかる負荷率が一定の閾値よりも高い場合には、パリティデータ(New Parity)111を再作成する時間間隔は「∞」となる。なおこの閾値はRAIDシステム100の動作環境に応じて予め定められた値である。
(実施例2)
[5.RAIDシステム900]
図9は本実施例に係るRAID900の構成図である。RAIDシステム900は、RAIDシステム100と同様RAID5の構成である。RAIDシステム900はホストコンピュータ、CA(チャネルアダプタ)、CM(コントロールモジュール)901、ディスク902〜905から構成されている。そしてRAIDシステム900では、ディスク903が故障していわゆるRAID構成が縮退した場合について説明する。そしてディスク903の故障のタイミングは、ディスク905にパリティデータ(New Parity)911を書き込み成功したときとする。
より詳細に本実施例における解決する問題を以下に説明する。CM901がホストコンピュータから受信したデータ(New Data)912をキャッシュ906に保持すると、CM901はデータ(Old Data)909をデータバッファ907に読み出す。またCM901はパリティデータ(Old Parity)91をパリティバッファ908に読み出す。そしてCM901はパリティデータ(New Parity)91を生成する。パリティデータ(New Parity)91の生成手順はパリティデータ(New Parity)111の生成手順と同様で行う。CM901は生成したパリティデータ(New Parity)91をパリティバッファ908に書き込み、パリティバッファ908に保持するパリティデータ(Old Parity)91を削除する。そしてCM901はディスク905にパリティデータ(New Parity)91を書き込み成功する。CM901のディスク903は故障する。CM901はそのためディスク903が保持するデータ(Old Data)を取り出すことができない。またCM901がデータ(New Data)912をディスクに書き込むことを失敗した場合には、ディスク902〜905が形成する1ストライプでデータの整合性が取れていないと問題が発生する。
つまり本実施例に係るRAIDシステム900が解決する問題は、ディスク903が故障し、かつデータ(New Data)912のディスク902への書き込みの失敗である。
[6.CM901]
図10は本実施例に係るCM901の機能ブロック図である。図11は本実施例に係るデータ(Old Data)1201の復元を行う処理フローチャートである。図12はディスク903からデータ(Old Data)1201を復元する処理手順を図解した図である。CM901が各処理手順を行う機能は図10に示す機能である。
図10に記載のバッファ獲得手段1001は、データバッファ907、パリティバッファをメモリ1009上に確保する。データ読み出し手段1002はデータバッファ907にデータ(Old Data)909、パリティバッファ908にパリティデータ(New Parity)910を読み出す。
そしてまずパリティ生成手段1003は、キャッシュ906に保持するデータ(New Data)912とデータバッファ907に保持するデータ(Old Data)909の排他的論理和を計算して中間結果を算出する(ステップS1101)。パリティ生成手段1003は、データ(Old Data)909をデータバッファ907から削除する(ステップS1102)。そしてパリティ生成手段1003は、ステップS1101で算出した中間結果とパリティバッファ908に保持するパリティデータ(New Parity)910の排他的論理和を計算してパリティデータ(Old Parity)911を生成する(ステップS1103)。パリティ生成手段1003はパリティデータ(Old Parity)911をパリティバッファ908に格納し、パリティデータ(New Parity)910をパリティバッファ908から削除する(ステップS1104)。
そしてデータ書き込み手段1004は、パリティデータ(Old Parity)911をディスク905に書き戻す(ステップS1105)。ここで整合判定手段1005は、ディスク905に格納されるパリティデータを読み出し、パリティバッファ90に格納するパリティデータ(Old Parity)911とディスク905に格納するパリティデータとを比較する。パリティバッファ90に格納するパリティデータ(Old Data)911とディスク905に格納するパリティデータとを比較した結果、整合判定手段1005がパリティバッファ90に格納するパリティデータ(Old Data)911とディスク905に格納するパリティデータとが一致しないと判定する場合、データ書き込み手段1004はパリティデータ(Old Parity)911をディスク905に書き戻すことができなかったと判定する。パリティバッファ90に格納するパリティデータ(Old Data)911とディスク905に格納するパリティデータとを比較した結果、整合判定手段1005がパリティバッファ90に格納するパリティデータ(Old Data)911ディスク905に格納するパリティデータとが一致すると判定する場合、データ書き込み手段1004はパリティデータ(Old Parity)911をディスク905に書き戻すことができたと判定する。
さらにパリティ生成手段1003は、ディスク902に格納するデータ(Old Data)909、ディスク904に格納するデータ(Old Data)1202、ディスク905に格納したパリティデータ(Old Parity)911の排他的論理和を計算してデータ(Old Data)1201を復元する(ステップS1106)。
[7.バッファ開放に関するフローチャート]
図13は本実施例に係るデータバッファ907及びパリティバッファ908の開放に関するフローチャートである。
データ書き戻し手段1006は、データ(Old Data)1201をキャッシュ906に読み出し、キャッシュ906はデータ(Old Data)1201を保持する(ステップS1301)。さらにデータ書き戻し手段1006は、データ(Old Data)1202をキャッシュ906に読み出し、キャッシュ906はデータ(Old Data)1202を保持する(ステップS1302)。データ(Old Data)1201、1202はデータ(New Data)912と対応関係にあるデータである。対応関係とは、パリティ生成手段1003がデータ(Old Data)1201、1202、及びデータ(New Data)912の排他的論理和を用いて、パリティデータ(New Parity)91を算出できる関係をいう。ディスク902〜904において、データ(Old Data)1201、1202、データ(New Data)912、及びパリティデータ(New Parity)91は1ストライプを形成する。
バッファ開放手段1007はデータバッファ907に格納するデータ(Old Data)909を削除し、さらにバッファ開放手段1007はパリティバッファ908に格納するパリティデータ(Old Parity)911を削除する(ステップS1303)。これによりデータバッファ907、パリティバッファ908を開放することができ、データのディスクへの書き込み失敗によるバッファ容量の枯渇を防ぐことができる。
図14は本実施例に係るデータバッファ907及びパリティバッファ908の開放を図解した図である。
図13のフローチャートにおいて説明したように、データ書き戻し手段1006は、データ(Old Data)1201、データ(Old Data)1202をキャッシュ906に読み出す。
バッファ開放手段1007はデータバッファ907に格納するデータ(Old Data)909、パリティバッファ908に格納するパリティデータ(Old Parity)91を削除する。
そしてデータ書き込み手段1004がディスク902へデータ(New Data)912を、ディスク905へパリティデータ(New Parity)91を再び書き込むことを試みる(コマンドリトライを発行する)に際し、パリティ生成手段1003は再びキャッシュ906に保持するデータ(New Data)912とデータ(New Data)912に対応関係のあるデータ(Old Data)1201、1202から再びパリティデータ(New Parity)910を生成する。
バッファ獲得手段1001は再びパリティバッファ908をメモリ1009上に確保する。そしてデータ書き込み手段1004はパリティデータ(New Parity)910を、パリティバッファ908を介して、ディスク905に書き込むことを試みる。さらにデータ書き込み手段1004はデータ(New Data)912をディスク902に書き込むことを試みる。
CM901はディスク905へのパリティデータ(New Parity)910の書き込み、ディスク902へのデータ(New Data)912の書き込み(コマンドリトライ)を一定時間ごとにリトライする。
そのためパリティ生成手段1003は、一定時間ごとにパリティデータ(New Parity)910を再作成する。パリティ生成手段1003は、CM901のCPU10
08の負荷率に応じて、パリティデータ(New Parity)910を再作成する。
[バッファ容量の枯渇制御の他の態様]
他にもRAIDシステム(RAID5の構成)におけるデータの書き込み失敗パターンを例示する。図15は本実施例に係るRAIDシステム1500におけるバッファ容量の枯渇制御を図解した図である。
RAIDシステム1500もRAID5の構成である。図15にはホストコンピュータ、CA(チャネルアダプタ)の図示を省略する。そして本実施例は、CM1501がホストコンピュータからデータ(New Data)1512を受信し、CM1501がデータ(New Data)1512をディスク1502に書き込み失敗し、ディスク1502が故障する場合の例である。またCM1501はディスク1505へパリティデータ(New Parity)1511を書き込み成功する。CM1501がディスク1502へデータ(New Data)1512を書き込み失敗するとCM1501におけるデータ状況は以下のとおりである。キャッシュ1506は、データ(New Data)1512を保持している。データバッファ1507はデータ(Old Data)1509を保持している。パリティバッファ1508はパリティデータ(New Parity)1511を保持している。
CM1501はデータ(New Data)1512、データ(Old Data)1509の排他的論理和を計算して中間結果を算出した後、さらにCM1501はその中間結果とパリティデータ(New Parity)1511の排他的論理和を計算して、パリティデータ(Old Parity)1510を算出する。CM1501はこのパリティデータ(Old Parity)1510をパリティバッファ1508に上書きする。続いてCM1501は、パリティバッファ1508に保持するパリティデータ(Old Parity)1510をディスク1505に書き戻す。
そしてCM1501はディスク1503、1504それぞれに格納するデータ(Old Data)をキャッシュ1506に読み出す。CM1501がディスク1503、1504から読み出すデータ(Old Data)は、パリティデータ(Old Parity)1510、データ(Old Data)1509と対応関係にあるデータである。
CM1501はデータバッファ1507にあるデータ(Old Data)1509を削除し、さらにパリティバッファ1508にあるパリティデータ(Old Parity)1510を削除する。
CM1501は、キャッシュ1506にデータ(New Data)1512、及びディスク1503、1504それぞれから読み出したデータが保持されており、キャッシュ1506上でデータの整合性がとれている。そのためCM1501は再びパリティデータ(New Parity)1511を作成することができる。したがってCM1501は、ディスク1502が復旧すると、パリティデータ(New Parity)1511を再作成して、ディスク1502へデータ(New Data)1512を、ディスク1505へパリティデータ(New Parity)1511を書き込むことをトライする。これによりデータバッファ1507、パリティバッファ1508の容量枯渇を防ぐことができる。
図16は本実施例に係るRAIDシステム1600におけるバッファ容量の枯渇制御を図解した図である。
RAIDシステム1600もRAID5の構成である。図16にはホストコンピュータ、CA(チャネルアダプタ)の図示を省略する。そして本実施例は、CM1601がホストコンピュータからデータ(New Data)1611を受信し、CM1601がパリティデータ(New Parity)1610をディスク1605に書き込み失敗し、ディスク1603が故障する場合の例である。またCM1601はディスク1602へデータ(New Data)1611を書き込み成功する。CM1601がディスク1605へパリティデータ(New Parity)1610を書き込み失敗するとCM1601におけるデータ状況は以下のとおりである。キャッシュ1606は、データ(New Data)1611を保持している。データバッファ1607はデータ(Old Data)1609を保持している。パリティバッファ1608はパリティデータ(New Parity)1610を保持している。
CM1601はデータバッファ1607に保持するデータ(Old Data)1609をディスク1602に書き戻す。CM1601は、データ(Old Data)1609とディスク1604に格納されるデータ(Old Data)の排他的論理和を計算して中間結果を算出した後、さらにCM1601はその中間結果とディスク1605に格納されるパリティデータ(Old Parity)の排他的論理和を計算して、ディスク1603に格納していたデータ(Old Data)を復元する。CM1601は復元したデータをキャッシュ1606に保持する。そしてCM1601は、復元したデータと対応関係にあるデータ(Old Data)をディスク1604から読み出す。
CM1601はデータバッファ1607にあるデータ(Old Data)1609を削除し、さらにパリティバッファ1608にあるパリティデータ(New Parity)1610を削除する。
CM1601は、キャッシュ1606にデータ(New Data)1611、ディスク1604から読み出したデータ、及びディスク1603に格納されておりCM1601が復元したデータが保持されており、キャッシュ1506上でデータの整合性がとれている。そのためCM1501は再びパリティデータ(New Parity)1610を作成することができる。したがってCM1601は、ディスク1603が復旧し、パリティデータ(New Parity)1610を再作成して、ディスク1602へデータ(New Data)1611を、ディスク1605へパリティデータ(New Parity)1610を書き込むことをトライする。これによりデータバッファ1607、パリティバッファ1608の容量枯渇を防ぐことができる。
本実施例に係るRAIDシステム100の構成図である。 本実施例に係るデータテーブル200である。 本実施例に係るCM103の機能ブロック図である。 本実施例に係るパリティバッファ312の容量枯渇の制御に関するフローチャートである。 本実施例に係るパリティバッファ312の容量枯渇の制御のフローチャートを図解した模式図である。 本実施例に係るパリティバッファ312の容量枯渇の制御のフローチャートを図解した模式図である。 本実施例に係るコマンドリトライの処理を図解した図である。 本実施例に係るコマンドリトライの処理を示すフローチャートである。 本実施例に係るRAID900の構成図である。 本実施例に係るCM901の機能ブロック図である。 本実施例に係るデータ(Old Data)1101の復元を行う処理フローチャートである。 ディスク903からデータ(Old Data)1101を復元する処理手順を図解した図である。 本実施例に係るデータバッファ907及びパリティバッファ908を開放するフローチャートである。 本実施例に係るデータバッファ907及びパリティバッファ908の開放を図解した図である。 本実施例に係るRAIDシステム1500におけるバッファ容量の枯渇制御を図解した図である。 本実施例に係るRAIDシステム1600におけるバッファ容量の枯渇制御を図解した図である。
符号の説明
101…ホストコンピュータ
102…チャネルアダプタ(CA)
103…コントローラモジュール(CM)
104…ディスク
105…ディスク
106…ディスク
107…ディスク
108…データ(Old Data)
109…データ(New Data)
110…パリティデータ(Old Parity)
111…パリティデータ(New Parity)
200…データテーブル
301…バッファ獲得手段
302…データ読み出し手段
303…パリティ生成手段
304…データ書き込み手段
305…整合判定手段
306…データ書き戻し手段
307…バッファ開放手段

Claims (3)

  1. キャッシュと、パリティバッファと、データバッファとを有し、少なくとも1つの第1のディスクと、第2のディスクと、第3のディスク、第4のディスクとを含む複数のディスクに接続されるコントローラの制御方法において、
    受信した新データを前記キャッシュに格納し、
    前記データと、前記第1のディスクに格納されている第1の旧データと、前記第1の旧データ及び前記第2のディスクに格納されている第2の旧データによって形成されるストライプに対応するパリティデータとに基づいて、パリティデータを生成し、生成したパリティデータを前記パリティバッファに格納し、
    前記パリティバッファに格納されている前記パリティデータを前記第ディスクに書き込み、
    前記第2のディスクが故障し、かつ前記データバッファに格納されている前記データ前記第ディスクに格納されている前記データとが異なる場合に、
    前記第1のディスクに格納されている前記第1の旧データと、前記第3のディスクに格納されている第3の旧データと、前記パリティバッファに格納されている前記パリティデータとに基づいて、前記第2の旧データを復元し、
    前記パリティバッファに格納されている前記パリティデータを削除し、
    復元した前記第2の旧データと、前記第3の旧データとを前記キャッシュに格納し、
    前記キャッシュに格納されている、前記新データ、前記第2の旧データ、および前記第3の旧データに基づいて、前記パリティデータを再生成し、
    再生成した前記パリティデータを前記第4のディスクに格納し、
    前記コントローラにかかる負荷率が所定の値以下であると判定された場合にのみ、前記負荷率が高くなるほど長く設定される所定の時間間隔で前記新パリティデータを再生成する
    ことを特徴とする制御方法。
  2. 前記第1のディスクに格納されている前記第1の旧データをデータバッファに格納し、
    前記第3のディスクに格納されている前記パリティデータを前記パリティバッファに格納し、
    前記第1のデータと、前記データバッファに格納されている前記第1の旧データと、前記パリティバッファに格納されている前記パリティデータとに基づいて、前記パリティデータを生成し、
    前記第2の旧データを復元した場合に、前記パリティバッファに格納されている前記パリティデータと、前記データバッファに格納されている前記第1の旧データとを削除する、
    ことを特徴とする請求項1記載の制御方法。
  3. 少なくとも1つの第1のディスクと、第2のディスクと、第3のディスクとを含む複数のディスクと、
    受信した新データをキャッシュに格納し、前記データと、前記第1のディスクに格納されている第1の旧データと、前記第1の旧データ及び前記第2のディスクに格納されている第2の旧データによって形成されるストライプに対応するパリティデータとに基づいて、パリティデータを生成し、生成したパリティデータを前記パリティバッファに格納し、前記パリティバッファに格納されている前記パリティデータを前記第ディスクに書き込み、前記第2のディスクが故障し、かつ前記パリティバッファに格納されている前記パリティデータと前記第ディスクに格納されている前記パリティデータとが異なる場合に、前記第1のディスクに格納されている前記第1の旧データと、前記第3のディスクに格納されている第3の旧データと、前記パリティバッファに格納されている前記パリティデータとに基づいて、前記第2の旧データを復元し、前記パリティバッファに格納されている前記パリティデータを削除し、復元した前記第2の旧データと、前記第3の旧データとを前記キャッシュに格納し、前記キャッシュに格納されている、前記新データ、前記第2の旧データ、および前記第3の旧データに基づいて、前記パリティデータを再生成し、再生成した前記パリティデータを前記第4のディスクに格納する制御部と、
    を備え、
    前記制御部にかかる負荷率が所定の値以下であると判定された場合にのみ、前記負荷率が高くなるほど長く設定される所定の時間間隔で前記新パリティデータを再生成することを特徴とするディスクアレイ装置。
JP2008063973A 2008-03-13 2008-03-13 制御方法、ディスクアレイ装置 Expired - Fee Related JP5245472B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008063973A JP5245472B2 (ja) 2008-03-13 2008-03-13 制御方法、ディスクアレイ装置
US12/369,389 US8015435B2 (en) 2008-03-13 2009-02-11 Data writing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008063973A JP5245472B2 (ja) 2008-03-13 2008-03-13 制御方法、ディスクアレイ装置

Publications (2)

Publication Number Publication Date
JP2009223367A JP2009223367A (ja) 2009-10-01
JP5245472B2 true JP5245472B2 (ja) 2013-07-24

Family

ID=41064307

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008063973A Expired - Fee Related JP5245472B2 (ja) 2008-03-13 2008-03-13 制御方法、ディスクアレイ装置

Country Status (2)

Country Link
US (1) US8015435B2 (ja)
JP (1) JP5245472B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8762292B2 (en) * 2009-10-23 2014-06-24 True Fit Corporation System and method for providing customers with personalized information about products
US8719621B1 (en) * 2010-05-05 2014-05-06 Marvell International Ltd. Solid-state disk cache assisted redundant array of independent disks
US9213486B2 (en) * 2012-02-22 2015-12-15 International Business Machines Corporation Writing new data of a first block size to a second block size using a write-write mode
JP6163588B2 (ja) * 2016-05-11 2017-07-12 株式会社日立製作所 ストレージシステム
JP6750011B2 (ja) * 2016-06-15 2020-09-02 株式会社日立製作所 情報処理システム
US10929226B1 (en) 2017-11-21 2021-02-23 Pure Storage, Inc. Providing for increased flexibility for large scale parity
US10872010B2 (en) * 2019-03-25 2020-12-22 Micron Technology, Inc. Error identification in executed code

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5148432A (en) * 1988-11-14 1992-09-15 Array Technology Corporation Arrayed disk drive system and method
JP3011020B2 (ja) * 1993-09-27 2000-02-21 株式会社日立製作所 アレイ型デイスクシステム
US5574882A (en) * 1995-03-03 1996-11-12 International Business Machines Corporation System and method for identifying inconsistent parity in an array of storage
US5875456A (en) * 1995-08-17 1999-02-23 Nstor Corporation Storage device array and methods for striping and unstriping data and for adding and removing disks online to/from a raid storage array
JP2001142650A (ja) * 1999-11-18 2001-05-25 Nec Corp アレイディスク制御方法及び装置
JP2003167687A (ja) * 2001-11-29 2003-06-13 Nec Corp ディスクアレイ制御装置及び方法並びにディスクアレイ制御プログラム
JP3590015B2 (ja) 2001-11-30 2004-11-17 株式会社東芝 ディスクアレイ装置および冗長データをもつ論理ドライブの一貫性回復方法
US7360112B2 (en) * 2005-02-07 2008-04-15 International Business Machines Corporation Detection and recovery of dropped writes in storage devices
JP4435705B2 (ja) 2005-03-14 2010-03-24 富士通株式会社 記憶装置、その制御方法及びプログラム
US20080140724A1 (en) * 2006-12-06 2008-06-12 David Flynn Apparatus, system, and method for servicing object requests within a storage controller

Also Published As

Publication number Publication date
US20090235114A1 (en) 2009-09-17
US8015435B2 (en) 2011-09-06
JP2009223367A (ja) 2009-10-01

Similar Documents

Publication Publication Date Title
US8904129B2 (en) Method and apparatus for backup and restore in a dynamic chunk allocation storage system
JP4754852B2 (ja) ストレージ制御装置および方法
US9053075B2 (en) Storage control device and method for controlling storages
JP5245472B2 (ja) 制御方法、ディスクアレイ装置
KR102533389B1 (ko) 장치 수명을 향상시키는 데이터 저장 장치 및 이를 포함하는 raid 시스템
US9135119B1 (en) System and method for data management
US10459638B2 (en) Computer system that generates group information and redundant code based on user data and changes the group information and redundant code based on transmission data, control method for computer system, and recording medium
KR101821001B1 (ko) Raid 어레이에서 장치내 데이터 보호
JP4719802B2 (ja) ストレージ管理装置、ストレージ管理方法およびストレージシステム
US11698728B2 (en) Data updating technology
WO2015052798A1 (ja) ストレージシステム及び記憶制御方法
US20090204846A1 (en) Automated Full Stripe Operations in a Redundant Array of Disk Drives
CN106776147B (zh) 一种差异数据备份方法和差异数据备份装置
US8225136B2 (en) Control method and storage device
JP2018508073A (ja) データ除去、割り当て、及び再構築
US20220342758A1 (en) Recovery from partial device error in data storage system
CN106528338A (zh) 一种远程数据复制方法、存储设备及存储系统
US20170371782A1 (en) Virtual storage
US10740189B2 (en) Distributed storage system
US11340826B2 (en) Systems and methods for strong write consistency when replicating data
US8402231B2 (en) Storage device, method for restoring data in storage device and storage controller
JP2010026812A (ja) 磁気ディスク装置
US9547554B2 (en) Mass storage device and method of operating the same to store parity data
JP5773446B2 (ja) 記憶装置、冗長性回復方法、およびプログラム
JP5598124B2 (ja) データ記録再生装置、データ記録方法、及び、データ記録プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101018

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120410

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120608

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120717

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120918

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130312

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130325

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160419

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees