JP2006072435A - ストレージシステムおよびデータ記録方法 - Google Patents
ストレージシステムおよびデータ記録方法 Download PDFInfo
- Publication number
- JP2006072435A JP2006072435A JP2004251605A JP2004251605A JP2006072435A JP 2006072435 A JP2006072435 A JP 2006072435A JP 2004251605 A JP2004251605 A JP 2004251605A JP 2004251605 A JP2004251605 A JP 2004251605A JP 2006072435 A JP2006072435 A JP 2006072435A
- Authority
- JP
- Japan
- Prior art keywords
- data
- check code
- storage
- write data
- storage device
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1009—Cache, i.e. caches used in RAID system with parity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/109—Sector level checksum or ECC, i.e. sector or stripe level checksum or ECC in addition to the RAID parity calculation
Abstract
【課題】 記憶装置に対してホストデータを記録する上での信頼性を向上させるためのストレージ技術を提供する。
【解決手段】 ストレージシステム10は、ストレージ部50に対して、ライトデータに基づく第1のチェックコードをキャッシュメモリ370に記憶し、第1のチェックコードが付加されたライトデータの書き込みを、所定の記憶領域を指定して指示した後、該所定の記憶領域に記録されているデータの読み出しを、ストレージ部50に対して指示し、該読み出されたデータに基づき第2のチェックコードを生成し、第1および第2のチェックコードの対応関係が正しい場合に、ライトデータがストレージ部50へと正常に記録されたと判断する。
【選択図】 図2
【解決手段】 ストレージシステム10は、ストレージ部50に対して、ライトデータに基づく第1のチェックコードをキャッシュメモリ370に記憶し、第1のチェックコードが付加されたライトデータの書き込みを、所定の記憶領域を指定して指示した後、該所定の記憶領域に記録されているデータの読み出しを、ストレージ部50に対して指示し、該読み出されたデータに基づき第2のチェックコードを生成し、第1および第2のチェックコードの対応関係が正しい場合に、ライトデータがストレージ部50へと正常に記録されたと判断する。
【選択図】 図2
Description
本発明は、データを記憶可能な記憶装置を用いて、ホストコンピュータが取り扱うホストデータを保存するストレージ技術に関するものである。
従来のストレージ技術として、ホストデータを記憶装置に記録する際には、チェックコードを付加してホストデータを記憶装置に書き込み、記憶装置に保存されているホストデータをホストコンピュータに引き渡す際には、記憶装置から読み出したホストデータに付加されているチェックコードを用いて、ホストデータの誤りを検査する技術があった。従来のストレージ技術によれば、記憶装置に生じた電気的なノイズや物理的な損壊などによって、記憶装置に保存されているホストデータに誤りが生じてしまった場合であっても、その誤ったホストデータがホストコンピュータによって取り扱われることを防止することができる。なお、チェックコードを用いた検査には、水平冗長度検査(Longitudinal Redundancy Check、以下、LRCという)や巡回冗長検査(Cyclic Redundancy Check、以下、CRCという)などの誤り検査方法がある。
下記特許文献1には、記憶装置に保存されているホストデータをホストコンピュータに引き渡す際に、チェックコードを用いた誤り検査を行うストレージ技術が開示されている。
しかしながら、従来のストレージ技術では、チェックコードを利用して、記憶装置への記録後に生じたホストデータの誤りを検出することが可能であるが、ホストデータとチェックコードと間に整合性を有するような誤りが生じてしまった場合には、その誤りを検出することができなかった。例えば、記憶装置に対してホストデータを記録する際に、記憶装置の正しい記憶領域にホストデータが記録されなかった場合には、最新のデータが記録されるべき記憶領域に、古いデータが記録されたままとなるが、記録されている古いデータと、これに付加されたチェックコードとの間には整合性が保たれている。そのため、その古いデータは、ホストコンピュータに引き渡す際の誤り検査によって正常であると判断されてしまう。
正しい記憶領域にホストデータが記録されない例としては、誤った記憶領域にホストデータが書き込まれてしまう場合(記憶装置ハードディスクドライブの場合には、所謂オフトラックによるもの)や、記憶装置にホストデータが一切書き込まれない場合(記憶装置がハードディスクドライブの場合には、ディスクヘッド回路の一時的な断線によるもの)などが想定される。
本発明は、上記した課題を踏まえ、記憶装置に対してホストデータを記録する際の信頼性を向上させるためのストレージ技術を提供することを目的とする。
上記した課題を解決するため、本発明の第1のストレージシステムは、データを記憶可能な複数の記憶領域を有する記憶装置を用いて、ホストコンピュータが取り扱うホストデータを保存するストレージシステムであって、前記ホストコンピュータ側から書き込みを指示されたホストデータを、ライトデータとして受け取るライトデータ受取手段と、該受け取ったライトデータと所定の対応関係を有するチェックコードを第1のチェックコードとして該ライトデータに基づいて生成し、該第1のチェックコードを該ライトデータに付加するチェックコード付加手段と、前記生成された第1のチェックコードを記憶するキャッシュメモリと、前記記憶装置に対して、前記第1のチェックコードが付加されたライトデータの書き込みを、前記複数の記憶領域のうちの所定の記憶領域を指定して指示する書き込み指示手段と、該書き込みの後、前記記憶装置に対して、該書き込みが指定された記憶領域に記憶されているデータの読み出しを、該記憶領域を指定して指示する読み出し指示手段と、
該読み出されたデータと所定の対応関係を有するチェックコードを第2のチェックコードとして該データに基づいて生成するチェックコード生成手段と、前記キャッシュメモリに記憶されている第1のチェックコードと、前記生成された第2のチェックコードとを比較し、両チェックコードの対応関係が正しい場合に、前記ライトデータが前記記憶装置へと正常に記録されたと判断する記録検査手段とを備えたことを特徴とする。
該読み出されたデータと所定の対応関係を有するチェックコードを第2のチェックコードとして該データに基づいて生成するチェックコード生成手段と、前記キャッシュメモリに記憶されている第1のチェックコードと、前記生成された第2のチェックコードとを比較し、両チェックコードの対応関係が正しい場合に、前記ライトデータが前記記憶装置へと正常に記録されたと判断する記録検査手段とを備えたことを特徴とする。
また、本発明の第1のデータ記録方法は、データを記憶可能な複数の記憶領域を有する記憶装置を用いて、ホストコンピュータが取り扱うホストデータを保存するストレージシステムにおいて、データを一時的に記憶するキャッシュメモリを有し前記記憶装置に対する前記ホストデータの記録を制御するコントローラによって、前記記憶装置に前記ホストデータを記録するデータ記録方法であって、前記ホストコンピュータ側から書き込みを指示されたホストデータを、ライトデータとして受け取り、該受け取ったライトデータと所定の対応関係を有するチェックコードを第1のチェックコードとして該ライトデータに基づいて生成し、該第1のチェックコードを該ライトデータに付加し、前記コントローラによって、前記生成された第1のチェックコードを前記キャッシュメモリに記憶し、前記コントローラによって、前記記憶装置に対して、前記第1のチェックコードが付加されたライトデータの書き込みを、前記複数の記憶領域のうちの所定の記憶領域を指定して指示し、該書き込みの後、前記コントローラによって、前記記憶装置に対して、該書き込みが指定された記憶領域に記憶されているデータの読み出しを、該記憶領域を指定して指示し、該読み出されたデータと所定の対応関係を有するチェックコードを第2のチェックコードとして該データに基づいて生成し、前記コントローラによって、前記記憶されている第1のチェックコードと、前記生成された第2のチェックコードとを比較し、両チェックコードの対応関係が正しい場合に、前記ライトデータが前記記憶装置へと正常に記録されたと判断することを特徴とする。
本発明の第1のストレージシステムおよび第1のデータ記録方法によれば、記憶装置にライトデータを記録する際に、記憶装置の正しい記憶領域にライトデータが記録されなかったことを判別することができ、その対策を取ることができる。その結果、記憶装置に対してホストデータを記録する上での信頼性を向上させることができる。また、ライトデータそのものではなく、ライトデータよりもデータ量の少ないチェックコードを比較することによってライトデータの記録を検査するため、ストレージシステム内部でのデータ転送量を抑制し、検査処理速度を向上させることができる。
上記した課題を解決するため、本発明の第2のストレージシステムは、データを記憶可能な複数の記憶領域を有する記憶装置を用いて、ホストコンピュータが取り扱うホストデータを保存するストレージシステムであって、前記ホストコンピュータ側から書き込みを指示されたホストデータを、ライトデータとして受け取るライトデータ受取手段と、該受け取ったライトデータと所定の対応関係を有するチェックコードを第1のチェックコードとして該ライトデータに基づいて生成し、該第1のチェックコードを該ライトデータに付加するチェックコード付加手段と、前記生成された第1のチェックコードを記憶するキャッシュメモリと、前記記憶装置に対して、前記第1のチェックコードが付加されたライトデータの書き込みを、前記複数の記憶領域のうちの所定の記憶領域を指定して指示する書き込み指示手段と、該書き込みの後、前記記憶装置に対して、該書き込みが指定された記憶領域に記憶されているデータの読み出しを、該記憶領域を指定して指示する読み出し指示手段と、該読み出されたデータに付加されているチェックコードを第2のチェックコードとして抽出するチェックコード抽出手段と、前記キャッシュメモリに記憶されている第1のチェックコードと、前記抽出された第2のチェックコードとを比較し、両チェックコード同士が一致する場合に、前記ライトデータが前記記憶装置へと正常に記録されたと判断する記録検査手段とを備えたことを特徴とする。
また、本発明の第2のデータ記録方法は、データを記憶可能な複数の記憶領域を有する記憶装置を用いて、ホストコンピュータが取り扱うホストデータを保存するストレージシステムにおいて、データを一時的に記憶するキャッシュメモリを有し前記記憶装置に対する前記ホストデータの記録を制御するコントローラによって、前記記憶装置に前記ホストデータを記録するデータ記録方法であって、前記ホストコンピュータ側から書き込みを指示されたホストデータを、ライトデータとして受け取り、該受け取ったライトデータと所定の対応関係を有するチェックコードを第1のチェックコードとして該ライトデータに基づいて生成し、該第1のチェックコードを該ライトデータに付加し、前記コントローラによって、前記生成された第1のチェックコードを前記キャッシュメモリに記憶し、前記コントローラによって、前記記憶装置に対して、前記第1のチェックコードが付加されたライトデータの書き込みを、前記複数の記憶領域のうちの所定の記憶領域を指定して指示し、該書き込みの後、前記コントローラによって、前記記憶装置に対して、該書き込みが指定された記憶領域に記憶されているデータの読み出しを、該記憶領域を指定して指示し、該読み出されたデータに付加されているチェックコードを第2のチェックコードとして抽出し、前記コントローラによって、前記記憶されている第1のチェックコードと、前記抽出された第2のチェックコードとを比較し、両チェックコード同士が一致する場合に、前記ライトデータが前記記憶装置へと正常に記録されたと判断することを特徴とする。
本発明の第2のストレージシステムおよび第2のデータ記録方法によれば、第1のストレージシステムおよび第1のデータ記録方法と同様に、記憶装置に対してホストデータを記録する上での信頼性の向上や、検査処理速度の向上を図ることができる。また、読み出されたデータから第2のチェックコードを生成する第1のストレージシステムおよび第1のデータ記録方法と異なり、読み出されたデータに付加されているチェックコードを第2のチェックコードとして取り扱うことによって、ライトデータの記録検査に要する処理負荷の低減を図り、検査処理速度を更に向上させることができる。
上記の構成を有する本発明の第1および第2のストレージシステムは、以下の態様を採ることもできる。前記記憶装置を複数備え、更に、前記複数の記憶装置をRAID技術によって制御するRAIDコントローラを備えても良い。これによって、ホストデータ保存全般の信頼性を向上させることができる。
また、RAIDコントローラを備える場合に、前記RAIDコントローラは、前記記録検査手段によって前記ライトデータが正常に記録されなかったと判断された記憶装置の利用を禁止し、該禁止された記憶装置に保存されていたデータを、該記憶装置とは異なる他の記憶装置に復旧する禁止復旧手段を備えても良い。これによって、信頼性の低い記録エラーの発生した記憶装置の利用を禁止することによって、再度の記録エラーの発生を予防すると共に、その記憶装置に保存されていたホストデータを、他の記憶装置に退避させることができる。
また、RAIDコントローラを備える場合に、前記RAIDコントローラは、前記記録検査手段によって前記ライトデータが正常に記録されなかったと判断された記憶装置に保存されていたデータを復旧し、該復旧されたデータを該記憶装置に上書きする上書復旧手段を備えても良い。これによって、誤った記憶領域にライトデータが記録されることによって、その記憶領域に保存されていたホストデータが書き換えられてしまった場合であっても、その記憶装置に保存されていたデータを修復することができる。
また、RAIDコントローラを備える場合に、更に、前記ライトデータの書き込みが指示される前に、該ライトデータの書き込みが指定される前記所定の記憶領域と所定の対応関係を有するアドレスコードを生成し、該アドレスコードを該ライトデータに付加するアドレスコード付加手段と、前記記憶装置に保存されているデータの記憶領域と、該データに付加されているアドレスコードとの対応関係が正しい場合に、該データが正常な記憶領域に保存されていると判断するアドレス誤り検査手段とを備え、前記RAIDコントローラは、前記記録検査手段によって前記ライトデータが正常に記録されなかったと判断された記憶装置に対して前記アドレス誤り検査手段による誤り検査を行い、該検査によって誤りが検出されたデータを復旧するアドレス復旧手段を備えても良い。これによって、誤った記憶領域にライトデータが記録されることによって、その記憶領域に保存されていたホストデータが書き換えられてしまった場合であっても、そのホストデータを修復することができる。
また、前記記録検査手段によって前記ライトデータが前記記憶装置へと正常に記録されなかったと判断された場合に、該記憶装置に対する該ライトデータの再度の書き込みを指示する再書き込み指示手段を備えても良い。これによって、記録損なったライトデータの記録を実現することができる。
また、前記記録検査手段による判断を実行するか否かを、所定の基準に従って決定する検査決定手段を備えても良い。これによって、保存されるホストデータの重要性や、記憶装置の信頼性,求められる記録速度などの条件に応じて、記録時の誤り検査の実行を選択することができる。なお、記録検査手段による判断を実行するか否かの所定の基準としては、論理ユニット単位,RAIDグループ単位,ホストコンピュータと接続するポート単位,ホストコンピュータ単位などの種々の基準を採用することができる。
また、前記記録検査手段によって正常に記録されたと判断された後に、前記キャッシュメモリから第1のチェックコードを消去するキャッシュ消去手段を備えても良い。これによって、キャッシュメモリに必要とされる記憶容量の増大を抑制することができる。
なお、前記記憶装置は、磁気ディスクまたは光ディスク,半導体メモリの少なくともいずれかに前記複数の記憶領域を有する装置であるとしても良い。また、第1のストレージシステムにおいては、前記第1および第2のチェックコードの生成は、水平冗長度検査,巡回冗長検査の少なくともいずれかにおけるコード生成方式に従って行われることとしても良いし、第2のストレージシステムにおいては、前記第1のチェックコードの生成は、水平冗長度検査,巡回冗長検査の少なくともいずれかにおけるコード生成方式に従って行われることとしても良い。また、前記記憶装置に記録されるライトデータは、前記第1のチェックコードに加え、該ライトデータの書き込みが指定される前記所定の記憶領域と所定の対応関係を有するアドレスコードが付加された態様で記録されることとしても良い。
以上説明した本発明の構成および作用を一層明らかにするために、以下本発明を適用したストレージシステムについて、次の順序で説明する。
目次
A.第1実施例
A−(1)ストレージシステム10の構成
A−(2)ストレージシステム10の動作
A−(2−1).ライトバック処理
A−(2−2).データ記録処理
A−(2−3).記録検査処理(第1実施例)
B.第2実施例(記録検査処理)
C.第3実施例(記録エラー処理)
D.第4実施例(記録エラー処理)
E.第5実施例(記録エラー処理)
F.その他の実施形態
A.第1実施例
A−(1)ストレージシステム10の構成
A−(2)ストレージシステム10の動作
A−(2−1).ライトバック処理
A−(2−2).データ記録処理
A−(2−3).記録検査処理(第1実施例)
B.第2実施例(記録検査処理)
C.第3実施例(記録エラー処理)
D.第4実施例(記録エラー処理)
E.第5実施例(記録エラー処理)
F.その他の実施形態
A.第1実施例:
A−(1)ストレージシステム10の構成:
図1は、ストレージシステム10の外観構成を示す全体斜視図である。本発明の実施例の一つであるストレージシステム10は、データを記憶可能な複数の記録領域を有する複数のハードディスクドライブ(Hard Disk Drive、以下、HDDという)510で構成されたストレージ部50と、ストレージ部50をRAID(Redundant Arrays of Independent (Inexpensive) Disks、レイド)技術によって制御するRAID制御部30を備える。ストレージシステム10は、ホストコンピュータシステムHCSに接続され、ホストコンピュータシステムHCSにおける各種ホストコンピュータが取り扱うホストデータを、複数のHDD510を用いて保存する。
A−(1)ストレージシステム10の構成:
図1は、ストレージシステム10の外観構成を示す全体斜視図である。本発明の実施例の一つであるストレージシステム10は、データを記憶可能な複数の記録領域を有する複数のハードディスクドライブ(Hard Disk Drive、以下、HDDという)510で構成されたストレージ部50と、ストレージ部50をRAID(Redundant Arrays of Independent (Inexpensive) Disks、レイド)技術によって制御するRAID制御部30を備える。ストレージシステム10は、ホストコンピュータシステムHCSに接続され、ホストコンピュータシステムHCSにおける各種ホストコンピュータが取り扱うホストデータを、複数のHDD510を用いて保存する。
ホストコンピュータシステムHCSの態様としては、ホストコンピュータである種々のサーバSVが接続されたSAN(Storage Area Network)を構成するシステムや、ホストコンピュータである種々のサーバSVが接続されたネットワークを構成しストレージシステム10をNAS(Network Attached Storage)として利用するシステム,ホストコンピュータであるメインフレームMFで構成されたシステムなどがあり、これらのシステムを混在させたシステムであっても良い。なお、ホストコンピュータとしては、サーバSVやメインフレームMFに限るものではなく、各種のコンピュータやパーソナルコンピュータであっても良い。
ストレージシステム10は、ホストコンピュータシステムHCSの態様に応じて、ファイバチャンネル(Fibre Channel)などのSCSI−3(Small Computer System Interface - 3)や、ギガビットイーサネット(Gigabit Ethernet)(イーサネット(Ethernet)は登録商標),メインフレームシリアルチャンネル,メインフレームファイバチャンネルなどの種々のインターフェースを介して、ホストコンピュータシステムHCSと接続することが可能である。
図2は、ストレージシステム10の内部構成を示すブロック図である。ストレージシステム10のRAID制御部30は、RAID制御部30内の各部の動作を制御するための演算処理を行うセントラルプロセッシングユニット(Central Processing Unit、以下、CPUという)310と、CPU310の演算処理を規定したプログラムを予め記憶するリードオンリメモリ(Read Only Memory、以下、ROMという)314と、CPU310が取り扱うデータを一時的に記憶するランダムアクセスメモリ(Random Access Memory、以下、RAMという)312と、ホストコンピュータシステムHCS側とストレージ部50の間におけるホストデータのやり取りを制御するための回路を有するデータコントローラ320と、データコントローラ320が取り扱うデータを一時的に記憶するキャッシュメモリ370と、ホストデータと所定の対応関係を有するチェックコードを該ホストデータに基づいて生成するコード生成回路330と、2つのチェックコード同士を比較するコード比較回路340とを備える。
RAID制御部30は、CPU310の管理下でデータコントローラ320がキャッシュメモリ370,コード生成回路330,コード比較回路340との間でデータのやり取りを実行することによって、種々の制御処理を実現する。RAID制御部30は、ストレージ部50を構成する複数のHDD510が有する記憶領域を、n個の論理ユニット(Logical Unit)LU−1〜LU−nに区分けして取り扱う。各論理ユニットLU−1〜LU−nは、更に、所定のデータ長のデータを記憶可能な記憶容量単位の論理ブロック(Logical Block)に区分けされ、各論理ブロックに通し番号である論理ブロックアドレス(Logical Block Address)が付されている。RAID制御部30は、各HDD510のデータにアクセスする際に、先頭の論理ブロックアドレスと、転送データ長(論理ブロック数)を指定して、連続した複数の論理ブロック単位のデータにアクセスする。なお、本実施例では、論理ブロックは、512バイトのデータを記憶可能な記憶容量単位で区分けされているが、任意のデータ長のデータを記憶可能な記憶容量単位で区分けされていても良い。
本実施例では、コード生成回路330の生成するチェックコードは、誤り検査方法の一つであるLRCにおけるコード生成方式に従って生成されるLRCコードである。本実施例では、コード生成回路330は、論理ブロックに記憶される512バイト単位のデータに基づいて1バイトのLRCコードを生成するが、任意のデータ長単位のデータに基づいて任意のデータ長のLRCコードを生成することとしても良い。
ストレージシステム10は、RAID制御部30やストレージ部50の他、ホストコンピュータシステムHCSとRAID制御部30との間のインターフェースの変換を行うホストI/F20と、RAID制御部30とストレージ部50との間のインターフェースの変換を行うストレージI/F40とを備える。ストレージI/F40とストレージ部50との間は、IDE(Integrated Drive Electronics)やSCSI(Small Computer System Interface)などのインターフェースを介して接続され、本実施例では、ファイバチャンネルを介して接続されている。
A−(2)ストレージシステム10の動作:
A−(2−1).ライトバック処理:
図3は、RAID制御部30のライトバック処理を示すフローチャートである。ライトバック処理は、ホストコンピュータシステムHCSにおけるホストコンピュータからストレージシステム10に対するホストデータの書き込みを実現させる処理である。ホストI/F20がホストコンピュータシステムHCSからホストデータの書き込みの指示であるライトコマンドを受信すると、RAID制御部30は、ライトバック処理を開始する。
A−(2−1).ライトバック処理:
図3は、RAID制御部30のライトバック処理を示すフローチャートである。ライトバック処理は、ホストコンピュータシステムHCSにおけるホストコンピュータからストレージシステム10に対するホストデータの書き込みを実現させる処理である。ホストI/F20がホストコンピュータシステムHCSからホストデータの書き込みの指示であるライトコマンドを受信すると、RAID制御部30は、ライトバック処理を開始する。
RAID制御部30は、ライトバック処理を開始すると、ホストI/F20を介して、ホストコンピュータシステムHCS側から書き込みを指示されたホストデータを、ライトデータとして受け取る(ステップS110)。なお、本実施例では、RAID制御部30は、ホストコンピュータシステムHCS側から書き込みを指示されたホストデータを、512バイト単位に区切り、512バイト単位のホストデータを1つのライトデータとして取り扱うが、任意のデータ長単位のホストデータを1つのライトデータとして取り扱うこととしても良い。以下の説明では、説明の便宜上、1つのライトデータについてのみの取り扱いを述べるが、実際には、1つのホストデータを構成する複数のライトデータの全てについて同様の取り扱いがなされる。
RAID制御部30は、ライトデータを受け取った後(ステップS110)、そのライトデータをキャッシュメモリ370に格納する(ステップS120)。その後、RAID制御部30は、ホストデータの書き込みの終了をホストコンピュータシステムHCS側に対して応答する(ステップS130)。これによって、ホストコンピュータシステムHCSにおけるホストコンピュータは、ストレージシステム10内においてホストデータの書き込みが実際に終了するのを待たずとも、次の処理へ移行することができる。
RAID制御部30は、ライトデータの書き込みの終了を応答した後(ステップS130)、ストレージ部50に対するライトデータの記録を行うデータ記録処理を実行して(ステップS140)、ライトバック処理を終了する。なお、ストレージシステム10に対するホストデータの書き込み指示が複数なされた場合には、RAID制御部30は、各書き込み指示に応じた複数のライトバック処理を並行して実行する。
A−(2−2).データ記録処理:
図4は、RAID制御部30のデータ記録処理を示すフローチャートである。RAID制御部30は、データ記録処理を開始すると、キャッシュメモリ370に格納されているライトデータの処理経過を管理するためのデータベースであるキャッシュ管理テーブルDTに、キャッシュメモリ370に格納されたライトデータ(ステップS130)の登録を行う(ステップS210)。本実施例では、キャッシュ管理テーブルDTは、RAM312に作成される。
図4は、RAID制御部30のデータ記録処理を示すフローチャートである。RAID制御部30は、データ記録処理を開始すると、キャッシュメモリ370に格納されているライトデータの処理経過を管理するためのデータベースであるキャッシュ管理テーブルDTに、キャッシュメモリ370に格納されたライトデータ(ステップS130)の登録を行う(ステップS210)。本実施例では、キャッシュ管理テーブルDTは、RAM312に作成される。
図5は、キャッシュ管理テーブルDTの一例を示す説明図である。キャッシュ管理テーブルDTには、図5に示すように、個々のライトデータを識別可能なデータIDと、そのライトデータについてのストレージ部50に対する記録処理が完了したか否かの記録状況と、そのライトデータについての後述する記録検査処理が完了したか否かの検査状況とが登録される。
キャッシュ管理テーブルDTに登録されるデータIDは、ライトデータ毎の識別が可能な識別番号であればよく、論理ユニット番号(LUN,Logical Unit Number)と論理ブロックアドレスとの組み合わせたものや、キャッシュメモリ370上のアドレスを用いることとしても良い。
キャッシュ管理テーブルDTに登録される記録状況および検査状況には、各処理が未了である場合には2値データの「0」が登録され、各処理が完了した場合には2値データの「1」が登録される。キャッシュ管理テーブルDTにデータIDが登録される際には(ステップS210)、その記録状況および検査状況には、「0」が登録される。
RAID制御部30は、キャッシュ管理テーブルDTにライトデータを登録した後(ステップS210)、コード生成回路330によって、ライトデータと所定の対応関係を有するLRCコードを第1のLRCコードとして該ライトデータに基づいて生成し(ステップS220)、該第1のLRCコードを該ライトデータに付加してキャッシュメモリ370に格納する(ステップS230)。
その後、RAID制御部30は、ストレージ部50に対して、第1のLRCコードが付加されたライトデータの書き込みを、ストレージ部50における所定の記憶領域を指定して指示する(ステップS240)。ライトデータの書き込みが指定される所定の記憶領域は、RAID制御部30が採用するRAID技術に基づいて決定される記憶領域である。本実施例では、1つのライトデータは、1つの論理ブロックに記憶され、ライトデータが記憶される記憶領域は、論理ブロックアドレスで特定することが可能である。
RAID制御部30は、ライトデータの書き込みを指示した後(ステップS240)、書き込み指定された記憶領域を有するHDD510から正常に書き込みを終了したとの応答があれば(ステップS250)、図5に示したキャッシュ管理テーブルの記録状況に「1」を登録することによって、記録済みの登録を行う(ステップS260)。
一方、正常に書き込みを終了したとの応答がない場合には(ステップS250)、応答エラー処理を実行する(ステップS290)。応答エラー処理としては、ストレージシステム10のリセットも考えられるが、本実施例では、ストレージ部50に対するライトデータの書き込み(ステップS240)からの処理をリトライする。
RAID制御部30は、記録済みの登録を行った後(ステップS260)、ライトデータの記録が検査対象であれば(ステップS270)、ライトデータが誤り無く記録されたか否かを検査する記録検査処理を実行し(ステップS280)、ライトデータの記録が検査対象でなければ(ステップS270)、データ記録処理を終了する。なお、記録検査処理の詳細については後述する。
図6は検査管理テーブルCTの一例を示す説明図である。ライトデータの記録が検査対象であるか否かの判断(ステップS270)は、検査管理テーブルCTに従って決定される。本実施例では、検査管理テーブルCTは、ストレージシステム10の初期設定時に、ROM314に予め記憶されたデフォルト設定がRAM312検査管理テーブルCTとして記憶され、RAM312に記憶された検査管理テーブルCTは、ホストコンピュータシステムHCSやストレージシステム10の管理コンピュータ(図示しない)などから適宜設定の変更が可能とされている。本実施例では、検査管理テーブルCTは、図6に示すように、論理ユニット毎に、記録検査処理を実行するのであれば2値データの「1」が登録され、記録検査を実行しないのであれば2値データの「0」が登録されている。RAID制御部30は、検査管理テーブルを参照し、ライトデータの記録が行われた論理ユニットが、記録検査の対象であるか否かによって、そのライトデータの記録が検査対象であるか否かを判断する(ステップS270)。なお、ライトデータの記録が検査対象であるか否かの判断は、論理ユニット単位で行うことに限るものではなく、RAIDグループ単位,ホストコンピュータシステムHCSと接続するポート単位,ホストコンピュータシステムHCSにおけるホストコンピュータ単位などの種々の基準を採用しても良いし、ライトデータの記録の全てを検査対象としても良い。
A−(2−3).記録検査処理(第1実施例):
図7は、第1の実施例におけるRAID制御部30の記録検査処理を示すフローチャートである。RAID制御部30は、記録検査処理を開始すると、図4に示したデータ記憶処理(ステップS240)において書き込みが指定された所定の記憶領域に記録されているデータの読み出しを、該記憶領域を指定してストレージ部50に対して指示する(ステップS310)。その後、コード生成回路330によって、読み出されたデータと所定の対応関係を有するLRCコードを第2のLRCコードとして該データに基づいて生成し(ステップS320)、生成された第2のLRCコードをキャッシュメモリ370に格納する(ステップS330)。
図7は、第1の実施例におけるRAID制御部30の記録検査処理を示すフローチャートである。RAID制御部30は、記録検査処理を開始すると、図4に示したデータ記憶処理(ステップS240)において書き込みが指定された所定の記憶領域に記録されているデータの読み出しを、該記憶領域を指定してストレージ部50に対して指示する(ステップS310)。その後、コード生成回路330によって、読み出されたデータと所定の対応関係を有するLRCコードを第2のLRCコードとして該データに基づいて生成し(ステップS320)、生成された第2のLRCコードをキャッシュメモリ370に格納する(ステップS330)。
その後、キャッシュメモリ370に格納されている第1のLRCコードと第2のLRCコードとを、コード比較回路340によって比較し(ステップS340)、両チェックコードの対応関係が正しいか否かを判断する(ステップS350)。本実施例では、両チェックコードの対応関係が正しい場合とは、両チェックコードの値が一致する場合である。
両チェックコードの対応関係が正しい場合には(ステップS350)、ライトデータがストレージ部50へと正常に記録されたと判断し(ステップS360)、図5に示したキャッシュ管理テーブルの検査状況に「1」を登録することによって、記録検査済みの登録を行う(ステップS370)。その後、図5に示したキャッシュ管理テーブルの記録状況および検査状況が共に「1」が登録されたライトデータおよびそのチェックコードを、キャッシュメモリ370から消去し(ステップS375)、記録検査処理を終了する。
一方、両チェックコードの対応関係が正しくない場合には(ステップS350)、ライトデータがストレージ部50へと正常に記録されなかった場合の対策である記録エラー処理を実行する(ステップS380)。本実施例では、記録エラー処理(ステップS380)として、ストレージ部50に対するライトデータの書き込み(図4のステップS240)からの処理をリトライする。
図8は、第1の実施例におけるデータ移行の様子を示す説明図である。[1]図4に示したデータ記録処理におけるライトデータの格納処理(図4のステップS230)にて、第1のチェックコードLRC1が付加されたライトデータは、データコントローラ320によってキャッシュメモリ370に記憶される。[2]データ記録処理における書き込み指示処理(図4のステップS240)にて、第1のチェックコードLRC1が付加されたライトデータは、キャッシュメモリ370に記憶されたまま、データコントローラ320を介してHDD510に書き込まれる。
[3]図7に示した記録検査処理における読出し指示処理(図7のステップS310)にて、HDD510に保存されているチェックコード付きのデータは、データコントローラ320に読み出された後、データコントローラ320によってチェックコードが削除され、データコントローラ320からコード生成回路330へと引き渡される。[4]記録検査処理におけるチェックコード生成処理(図7のステップS320)にて、第2のチェックコードLRC2が、コード生成回路330によって生成される。[5]記録検査処理におけるチェックコードの格納処理(図7のステップS330)にて、第2のチェックコードLRC2は、データコントローラ320を介してコード生成回路330からキャッシュメモリ370に記憶される。[6]記録検査処理におけるチェックコードの比較処理にて(図7のステップS340)にて、キャッシュメモリ370に記憶されている第1,2のチェックコードLRC1,LRC2は、データコントローラ320を介してコード比較回路340へと引き渡される。
以上説明した第1の実施例のストレージシステム10によれば、ストレージ部50に対してライトデータを記録する際に、ストレージ部50における正しい記憶領域にライトデータが記録されなかったことを判別することができ、その対策を取ることができる。その結果、ストレージ部50に対してホストデータを記録する上での信頼性を向上させることができる。また、ライトデータそのものではなく、ライトデータよりもデータ量の少ないLRCコードを比較することによって、ライトデータの記録を検査するため、ストレージシステム10内部でのデータ転送量を抑制し、検査処理速度を向上させることができる。
また、ストレージ部50に備える複数のHDD510は、RAID制御部30によりRAID技術によって制御するため、ホストデータ保存全般の信頼性を向上させることができる。また、記録エラー処理(図7のステップS380)によって、ストレージ部50に対するライトデータの再度の書き込みを指示することができるため、記録損なったライトデータの記録を実現することができる。また、図7に示した記録検査処理を実行するか否かを、図6に示した検査管理テーブルCTに従って決定するため(図4のステップS270)、ストレージ部50におけるHDD510の信頼性,ホストコンピュータシステムHCS側から要求される記録速度などの条件に応じて、記録検査処理の実行を選択することができる。また、正常に記録されたと判断された後に、キャッシュメモリ370からライトデータおよびそのLRCコードを消去するため(図7のステップS375)、キャッシュメモリ370に必要とされる記憶容量の増大を抑制することができる。また、図8に示した一連のデータ移行や、チェックコードの生成,チェックコードの比較を、それぞれデータコントローラ320,コード生成回路330,コード比較回路340によるハードウェアで処理を実行するため、検査処理速の高速化を図ることができる。
なお、前述のデータ記録処理(図4)では、ホストコンピュータシステムHCS側から書き込み指示されたホストデータの記録について説明したが、RAID5技術に基づくパリティデータや、RAID1技術に基づくミラーデータ等のRAID技術に基づく冗長データについても、データ記録処理(図4)を適用して、ホストデータと同様に記録を行うこととしても良い。また、前述の記録検査処理(図7)は、ホストデータの記録検査について説明したが、RAID5技術に基づくパリティデータや、RAID1技術に基づくミラーデータ等のRAID技術に基づく冗長データについても、記録検査処理(図7)を適用して、ホストデータと同様に記録検査を行うこととしても良い。
B.第2実施例(記録検査処理):
本発明の実施例の一つである第2の実施例のストレージシステム10は、第1の実施例のストレージシステム10の構成および動作と比べて、その動作の一つである記録検査処理の点で異なる他は同様である。
本発明の実施例の一つである第2の実施例のストレージシステム10は、第1の実施例のストレージシステム10の構成および動作と比べて、その動作の一つである記録検査処理の点で異なる他は同様である。
図9は、第2の実施例におけるRAID制御部30の記録検査処理を示すフローチャートである。第2の実施例の記録検査処理は、第1の実施例の記録検査処理のように、読み出されたデータに基づいて第2のチェックコードを生成するのではなく(図7のステップS320)、読み出されたデータに付加されているLRCコードを第2のLRCコードとして抽出する点(ステップS420)が異なる他は、第1の実施例の記録検査処理と同様である。
図10は、第2の実施例におけるデータ移行の様子を示す説明図である。第2の実施例では、図8に示した第1の実施例と同様に[1]ライトデータの格納処理、[2]書き込み指示処理が実行された後、[3]図7に示した記録検査処理における読出し指示処理(図7のステップS310)にて、HDD510に保存されているチェックコード付きのデータは、データコントローラ320に読み出される。[4]記録検査処理におけるチェックコード生成処理(図8のステップS420)にて、読み出されたデータに付加されているチェックコードを第2のチェックコードLRC2として抽出する[5]記録検査処理におけるチェックコードの格納処理(図7のステップS330)にて、第2のチェックコードLRC2は、データコントローラ320からキャッシュメモリ370に記憶される。その後、図8に示した第1の実施例と同様に[6]チェックコードの比較処理が実行される。
以上説明した第2の実施例のストレージシステム10によれば、第1の実施例と同様に、ストレージ部50に対してホストデータを記録する上での信頼性の向上や、検査処理速度の向上を図ることができる。また、読み出されたデータから第2のチェックコードを生成する第1の実施例と異なり、読み出されたデータに付加されているチェックコードを第2のチェックコードとして取り扱うことによって、ライトデータの記録検査に要する処理負荷の低減を図り、検査処理速度を更に向上させることができる。
C.第3実施例(記録エラー処理):
本発明の実施例の一つである第3の実施例のストレージシステム10は、第1の実施例のストレージシステム10の構成および動作と比べて、その動作の一つである記録エラー処理の点で異なる他は同様である。
本発明の実施例の一つである第3の実施例のストレージシステム10は、第1の実施例のストレージシステム10の構成および動作と比べて、その動作の一つである記録エラー処理の点で異なる他は同様である。
図11は、第3の実施例におけるRAID制御部30の記録エラー処理を示すフローチャートである。第3の実施例の記録エラー処理は、第1の実施例の記録エラー処理(ステップS380)のように、直ちに、ライトデータの書き込みをリトライするのでなく、リトライの前に復旧処理を行う点が異なる。
第3の実施例の記録エラー処理では、RAID制御部30は、記録検査処理(図7のステップS350)においてライトデータが正常に記録されなかったと判断されたHDD510の利用を禁止し(ステップS510)、利用が禁止されたHDD510に保存されていたデータを、RAID技術によって他のHDD510に復旧する(ステップS520)。その後、ストレージ部50に対するライトデータの書き込み(図4のステップS240)からの処理をリトライする。
以上説明した第3の実施例のストレージシステム10によれば、信頼性の低い記録エラーの発生したHDD510の利用を禁止することによって、再度の記録エラーの発生を予防すると共に、そのHDD510に保存されていたホストデータを、他のHDD510に退避させることができる。なお、第3の実施例における記録エラー処理を、第2の実施例における記録エラー処理に適用しても良い。
D.第4実施例(記録エラー処理):
本発明の実施例の一つである第4の実施例のストレージシステム10は、第1の実施例のストレージシステム10の構成および動作と比べて、その動作の一つである記録エラー処理の点で異なる他は同様である。
本発明の実施例の一つである第4の実施例のストレージシステム10は、第1の実施例のストレージシステム10の構成および動作と比べて、その動作の一つである記録エラー処理の点で異なる他は同様である。
図12は、第4の実施例におけるRAID制御部30の記録エラー処理を示すフローチャートである。第4の実施例の記録エラー処理は、第1の実施例の記録エラー処理(ステップS380)のように、直ちに、ライトデータの書き込みをリトライするのでなく、リトライの前に復旧処理を行う点が異なる。
第4の実施例の記録エラー処理では、RAID制御部30は、記録検査処理(図7のステップS350)においてライトデータが正常に記録されなかったと判断されたHDD510に保存されていたデータを、RAID技術によって復旧し(ステップS610)、復旧されたデータを、元のHDD510に上書きする(ステップS620)。その後、ストレージ部50に対するライトデータの書き込み(図4のステップS240)からの処理をリトライする。
以上説明した第4の実施例のストレージシステム10によれば、誤った記憶領域にライトデータが記録されることによって、その記憶領域に保存されていたホストデータが書き換えられてしまった場合であっても、そのHDD510に保存されていたデータを修復することができる。なお、第4の実施例における記録エラー処理を、第2の実施例における記録エラー処理に適用しても良い。
E.第5実施例(記録エラー処理):
本発明の実施例の一つである第5の実施例のストレージシステム10は、第1の実施例のストレージシステム10の構成および動作と比べて、ライトデータの書き込みが指定される記憶領域と所定の対応関係を有するアドレスコードを該ライトデータに付加する点、および、記録エラー処理の点で異なる他は同様である。
本発明の実施例の一つである第5の実施例のストレージシステム10は、第1の実施例のストレージシステム10の構成および動作と比べて、ライトデータの書き込みが指定される記憶領域と所定の対応関係を有するアドレスコードを該ライトデータに付加する点、および、記録エラー処理の点で異なる他は同様である。
第5の実施例におけるRAID制御部30は、図4に示したデータ記録処理において、第1のLRCコードに加えアドレスコードが付加された態様でライトデータを記録する(図4のステップS220〜S240)。本実施例では、アドレスコードの付加は、ホストコンピュータシステムHCSから受け取ったホストデータを、512バイト単位のライトデータに区切った際に、先頭のライトデータに対して初期値のアドレスコードを割り当て、これに続くライトデータに対して初期値に1ずつ順に加算したアドレスコードを割り当てることによって行う。このようにアドレスコードが付加された一群のライトデータは、ストレージ部50における連続した論理ブロックのそれぞれに対して順に記録される。なお、本実施例のアドレスコードは、1バイトのデータ長であるが、任意のデータ長単位のライトデータに対して任意のデータ長のアドレスコードを付加することとしても良い。
図13は、アドレスコードと論理ブロックアドレスとの関係を模式的に示す説明図である。ホストデータを512バイト単位に区切った先頭のライトデータには、アドレスコードLAとして初期値「x」が付加され、これに続くライトデータには、初期値「x」に1ずつ加算したアドレスコードLAが付加される。n個目のライトデータには、アドレスコードLAとして「x+n」が付加されることとなる。
HDD510上の記憶領域である論理ブロックには、その並び順にそれぞれ論理ブロックアドレスLBAが割り当てられている。先頭のライトデータが、論理ブロックアドレスLBAの値が「y」である論理ブロックに記録されると、これに続くライトデータは、論理ブロックアドレスLBAの値が1ずつ加算された論理ブロックに記録される。n個目のライトデータは、論理ブロックアドレスLBAの値が「y+n」である論理ブロックに記録されることとなる。
これによって、HDD510上に保存されている一群のデータについてのアドレスコードLAの「x」の値と、論理ブロックアドレスLBAの「y」の値とを一群のデータの連続性から算出することによって、一群のデータのうちの所定のデータについてアドレスコードLAと論理ブロックアドレスLBAとの対応関係が正しいか否かを判断することができる。
図14は、第5の実施例におけるRAID制御部30の記録エラー処理を示すフローチャートである。第5の実施例の記録エラー処理は、第1の実施例の記録エラー処理(ステップS380)のように、直ちに、ライトデータの書き込みをリトライするのでなく、リトライの前に復旧処理を行う点が異なる。
第5の実施例の記録エラー処理では、RAID制御部30は、記録検査処理(図7のステップS350)においてライトデータが正常に記録されなかったと判断されたHDD510に対して、アドレスコードを用いた誤り検査を実施する(ステップS710)。アドレスコードを用いた誤り検査とは、アドレスコードと論理ブロックアドレスとの対応関係に誤りが生じているデータを特定する検査である。
RAID制御部30は、アドレスコードを用いた誤り検査によって、データの誤りを検出した場合には(ステップS720)、誤りが検出されたホストデータをRAID技術によって復旧する(ステップS720)。その後、ストレージ部50に対するライトデータの書き込み(図4のステップS240)からの処理をリトライする。
以上説明した第5の実施例のストレージシステム10によれば、誤った記憶領域にライトデータが記録されることによって、その記憶領域に保存されていたホストデータが書き換えられてしまった場合であっても、そのホストデータを修復することができる。なお、第5の実施例における記録エラー処理を、第2の実施例における記録エラー処理に適用しても良い。
F.その他の実施形態:
以上、本発明の実施の形態について説明したが、本発明はこうした実施の形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内において様々な形態で実施し得ることは勿論である。例えば、第1ないし5の実施例では、ライトデータの記録を終了する前にホストコンピュータシステムHCSに対して応答するライトバック処理(図3)において本発明を適用したが、ライトデータの記録を終了した後にホストコンピュータシステムHCSに対して応答するライトスルー処理において本発明を適用しても良い。
以上、本発明の実施の形態について説明したが、本発明はこうした実施の形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内において様々な形態で実施し得ることは勿論である。例えば、第1ないし5の実施例では、ライトデータの記録を終了する前にホストコンピュータシステムHCSに対して応答するライトバック処理(図3)において本発明を適用したが、ライトデータの記録を終了した後にホストコンピュータシステムHCSに対して応答するライトスルー処理において本発明を適用しても良い。
図15は、その他の実施形態におけるRAID制御部30のライトスルー処理を示すフローチャートである。図15に示すライトスルー処理は、図3に示したライトバック処理と比べ、データ記録処理(ステップS940)の後に、ホストコンピュータシステムHCSに対する応答を行う(ステップS950)点が異なる。なお、ライトスルー処理におけるホストコンピュータシステムHCSに対する応答では、書き込み終了応答ではなく、不正終了応答を行うことによって、再度のライトコマンドの送信を要求するようにしても良い。
また、記録検査処理(図7,図9)において比較するための第1および第2のチェックコードを、キャッシュメモリに格納するのではなく、データコントローラ320に内蔵のバッファ(図示しない)に格納することとしても良い。また、ストレージ部50は、複数のHDD510によって構成するものに限るものではなく、単一のHDDによって構成しても良く、また、磁気ディスクまたは光ディスク,半導体メモリの少なくともいずれかに前記複数の記憶領域を有する装置によって構成しても良い。
また、記録検査処理(図7,図9)を実行するか否かを図6に示した検査管理テーブルCTで判断するのではなく、ホストコンピュータシステムHCSからのライトコマンドの種類に応じて実行するか否かを判断することとしても良い。また、図5に示したキャッシュ管理テーブルDTや、図6に示した検査管理テーブルCTを、RAM312に格納するのではなく、キャッシュメモリ370や、データコントローラ320に内蔵のバッファ(図示しない)に格納することとしても良い。
また、ライトコマンドに付加するチェックコードは、LRCコードに限るものではなく、巡回冗長検査におけるCRCコードであっても良いし、ホストコンピュータシステムHCSからライトコマンドを受け取った順に付与する通し番号、ストレージ部50に対するアクセスに用いる論理アドレスなどを更に付加しても良い。
また、本実施例では、チェックコードの生成やチェックコードの比較を、コード生成回路330やコード比較回路340によるハードウェアによって実現したが、これらの処理をソフトウェアによって実現することとしても良い。
10...ストレージシステム
20...ホストI/F
30...RAID制御部
40...ストレージI/F
50...ストレージ部
310...CPU
312...RAM
314...ROM
320...データコントローラ
330...コード生成回路
340...コード比較回路
370...キャッシュメモリ
510...HDD
HCS...ホストコンピュータシステム
20...ホストI/F
30...RAID制御部
40...ストレージI/F
50...ストレージ部
310...CPU
312...RAM
314...ROM
320...データコントローラ
330...コード生成回路
340...コード比較回路
370...キャッシュメモリ
510...HDD
HCS...ホストコンピュータシステム
Claims (15)
- データを記憶可能な複数の記憶領域を有する記憶装置を用いて、ホストコンピュータが取り扱うホストデータを保存するストレージシステムであって、
前記ホストコンピュータ側から書き込みを指示されたホストデータを、ライトデータとして受け取るライトデータ受取手段と、
該受け取ったライトデータと所定の対応関係を有するチェックコードを第1のチェックコードとして該ライトデータに基づいて生成し、該第1のチェックコードを該ライトデータに付加するチェックコード付加手段と、
前記生成された第1のチェックコードを記憶するキャッシュメモリと、
前記記憶装置に対して、前記第1のチェックコードが付加されたライトデータの書き込みを、前記複数の記憶領域のうちの所定の記憶領域を指定して指示する書き込み指示手段と、
該書き込みの後、前記記憶装置に対して、該書き込みが指定された記憶領域に記憶されているデータの読み出しを、該記憶領域を指定して指示する読み出し指示手段と、
該読み出されたデータと所定の対応関係を有するチェックコードを第2のチェックコードとして該データに基づいて生成するチェックコード生成手段と、
前記キャッシュメモリに記憶されている第1のチェックコードと、前記生成された第2のチェックコードとを比較し、両チェックコードの対応関係が正しい場合に、前記ライトデータが前記記憶装置へと正常に記録されたと判断する記録検査手段と
を備えたストレージシステム。 - データを記憶可能な複数の記憶領域を有する記憶装置を用いて、ホストコンピュータが取り扱うホストデータを保存するストレージシステムであって、
前記ホストコンピュータ側から書き込みを指示されたホストデータを、ライトデータとして受け取るライトデータ受取手段と、
該受け取ったライトデータと所定の対応関係を有するチェックコードを第1のチェックコードとして該ライトデータに基づいて生成し、該第1のチェックコードを該ライトデータに付加するチェックコード付加手段と、
前記生成された第1のチェックコードを記憶するキャッシュメモリと、
前記記憶装置に対して、前記第1のチェックコードが付加されたライトデータの書き込みを、前記複数の記憶領域のうちの所定の記憶領域を指定して指示する書き込み指示手段と、
該書き込みの後、前記記憶装置に対して、該書き込みが指定された記憶領域に記憶されているデータの読み出しを、該記憶領域を指定して指示する読み出し指示手段と、
該読み出されたデータに付加されているチェックコードを第2のチェックコードとして抽出するチェックコード抽出手段と、
前記キャッシュメモリに記憶されている第1のチェックコードと、前記抽出された第2のチェックコードとを比較し、両チェックコード同士が一致する場合に、前記ライトデータが前記記憶装置へと正常に記録されたと判断する記録検査手段と
を備えたストレージシステム。 - 前記記憶装置を複数備え、
更に、前記複数の記憶装置をRAID技術によって制御するRAIDコントローラを備えた請求項1または2記載のストレージシステム。 - 前記RAIDコントローラは、前記記録検査手段によって前記ライトデータが正常に記録されなかったと判断された記憶装置の利用を禁止し、該禁止された記憶装置に保存されていたデータを、該記憶装置とは異なる他の記憶装置に復旧する禁止復旧手段を備えた請求項3記載のストレージシステム。
- 前記RAIDコントローラは、前記記録検査手段によって前記ライトデータが正常に記録されなかったと判断された記憶装置に保存されていたデータを復旧し、該復旧されたデータを該記憶装置に上書きする上書復旧手段を備えた請求項3記載のストレージシステム。
- 請求項3記載のストレージシステムであって、
更に、前記ライトデータの書き込みが指示される前に、該ライトデータの書き込みが指定される前記所定の記憶領域と所定の対応関係を有するアドレスコードを生成し、該アドレスコードを該ライトデータに付加するアドレスコード付加手段と、
前記記憶装置に保存されているデータの記憶領域と、該データに付加されているアドレスコードとの対応関係が正しい場合に、該データが正常な記憶領域に保存されていると判断するアドレス誤り検査手段と
を備え、
前記RAIDコントローラは、前記記録検査手段によって前記ライトデータが正常に記録されなかったと判断された記憶装置に対して前記アドレス誤り検査手段による誤り検査を行い、該検査によって誤りが検出されたデータを復旧するアドレス復旧手段を備えた
ストレージシステム。 - 前記記録検査手段によって前記ライトデータが前記記憶装置へと正常に記録されなかったと判断された場合に、該記憶装置に対する該ライトデータの再度の書き込みを指示する再書き込み指示手段を備えた請求項1ないし6のいずれか記載のストレージシステム。
- 前記記録検査手段による判断を実行するか否かを、所定の基準に従って決定する検査決定手段を備えた請求項1ないし7のいずれか記載のストレージシステム。
- 前記記録検査手段によって正常に記録されたと判断された後に、前記キャッシュメモリから第1のチェックコードを消去するキャッシュ消去手段を備えた請求項1ないし8のいずれか記載のストレージシステム。
- 前記記憶装置は、磁気ディスクまたは光ディスク,半導体メモリの少なくともいずれかに前記複数の記憶領域を有する装置である請求項1ないし9のいずれか記載のストレージシステム。
- 前記第1および第2のチェックコードの生成における前記所定の対応関係は、水平冗長度検査,巡回冗長検査の少なくともいずれかのコード生成における対応関係である請求項1記載のストレージシステム。
- 前記第1のチェックコードの生成における前記所定の対応関係は、水平冗長度検査,巡回冗長検査の少なくともいずれかのコード生成方式における対応関係である請求項2記載のストレージシステム。
- 前記記憶装置に記録されるライトデータは、前記第1のチェックコードに加え、該ライトデータの書き込みが指定される前記所定の記憶領域と所定の対応関係を有するアドレスコードが付加された態様で記録される請求項1ないし12のいずれか記載のストレージシステム。
- データを記憶可能な複数の記憶領域を有する記憶装置を用いて、ホストコンピュータが取り扱うホストデータを保存するストレージシステムにおいて、データを一時的に記憶するキャッシュメモリを有し前記記憶装置に対する前記ホストデータの記録を制御するコントローラによって、前記記憶装置に前記ホストデータを記録するデータ記録方法であって、
前記ホストコンピュータ側から書き込みを指示されたホストデータを、ライトデータとして受け取り、
該受け取ったライトデータと所定の対応関係を有するチェックコードを第1のチェックコードとして該ライトデータに基づいて生成し、該第1のチェックコードを該ライトデータに付加し、
前記コントローラによって、前記生成された第1のチェックコードを前記キャッシュメモリに記憶し、
前記コントローラによって、前記記憶装置に対して、前記第1のチェックコードが付加されたライトデータの書き込みを、前記複数の記憶領域のうちの所定の記憶領域を指定して指示し、
該書き込みの後、前記コントローラによって、前記記憶装置に対して、該書き込みが指定された記憶領域に記憶されているデータの読み出しを、該記憶領域を指定して指示し、
該読み出されたデータと所定の対応関係を有するチェックコードを第2のチェックコードとして該データに基づいて生成し、
前記コントローラによって、前記記憶されている第1のチェックコードと、前記生成された第2のチェックコードとを比較し、両チェックコードの対応関係が正しい場合に、前記ライトデータが前記記憶装置へと正常に記録されたと判断する
データ記録方法。 - データを記憶可能な複数の記憶領域を有する記憶装置を用いて、ホストコンピュータが取り扱うホストデータを保存するストレージシステムにおいて、データを一時的に記憶するキャッシュメモリを有し前記記憶装置に対する前記ホストデータの記録を制御するコントローラによって、前記記憶装置に前記ホストデータを記録するデータ記録方法であって、
前記ホストコンピュータ側から書き込みを指示されたホストデータを、ライトデータとして受け取り、
該受け取ったライトデータと所定の対応関係を有するチェックコードを第1のチェックコードとして該ライトデータに基づいて生成し、該第1のチェックコードを該ライトデータに付加し、
前記コントローラによって、前記生成された第1のチェックコードを前記キャッシュメモリに記憶し、
前記コントローラによって、前記記憶装置に対して、前記第1のチェックコードが付加されたライトデータの書き込みを、前記複数の記憶領域のうちの所定の記憶領域を指定して指示し、
該書き込みの後、前記コントローラによって、前記記憶装置に対して、該書き込みが指定された記憶領域に記憶されているデータの読み出しを、該記憶領域を指定して指示し、
該読み出されたデータに付加されているチェックコードを第2のチェックコードとして抽出し、
前記コントローラによって、前記記憶されている第1のチェックコードと、前記抽出された第2のチェックコードとを比較し、両チェックコード同士が一致する場合に、前記ライトデータが前記記憶装置へと正常に記録されたと判断する
データ記録方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004251605A JP2006072435A (ja) | 2004-08-31 | 2004-08-31 | ストレージシステムおよびデータ記録方法 |
US10/972,435 US7398448B2 (en) | 2004-08-31 | 2004-10-26 | Storage system has the function of preventing drive write error |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004251605A JP2006072435A (ja) | 2004-08-31 | 2004-08-31 | ストレージシステムおよびデータ記録方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006072435A true JP2006072435A (ja) | 2006-03-16 |
Family
ID=35944791
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004251605A Pending JP2006072435A (ja) | 2004-08-31 | 2004-08-31 | ストレージシステムおよびデータ記録方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7398448B2 (ja) |
JP (1) | JP2006072435A (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008305054A (ja) * | 2007-06-06 | 2008-12-18 | Fujitsu Ltd | ストレージ管理装置、ストレージシステム、ストレージ管理方法、およびストレージ管理プログラム |
JP2011053878A (ja) * | 2009-09-01 | 2011-03-17 | Fujitsu Ltd | ディスクへの書き込み位置の誤算出を検出するストレージ制御装置、ストレージシステム、及びアクセス方法。 |
JP2011525643A (ja) * | 2008-12-22 | 2011-09-22 | 株式会社日立製作所 | ストレージ装置、及びストレージ装置におけるデータ検証方法 |
US8140800B2 (en) | 2008-06-02 | 2012-03-20 | Hitachi, Ltd. | Storage apparatus |
JP2012516477A (ja) * | 2009-05-27 | 2012-07-19 | 株式会社日立製作所 | ストレージ装置、及びその制御方法、並びにプログラム |
WO2015118680A1 (ja) * | 2014-02-10 | 2015-08-13 | 株式会社日立製作所 | ストレージ装置 |
JP2015152945A (ja) * | 2014-02-10 | 2015-08-24 | サイレックス・テクノロジー株式会社 | デバイスサーバとその制御方法 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4372134B2 (ja) * | 2006-09-29 | 2009-11-25 | 株式会社日立製作所 | データ比較機能を有するストレージシステム |
JP2009009407A (ja) * | 2007-06-28 | 2009-01-15 | Hitachi Ltd | 暗号機能を備えたストレージシステム及びデータ保証方法 |
JP6307962B2 (ja) * | 2014-03-19 | 2018-04-11 | 日本電気株式会社 | 情報処理システム、情報処理方法、及び、情報処理プログラム |
CN110018784B (zh) | 2018-01-09 | 2023-01-10 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置及计算设备 |
CN111816239B (zh) * | 2019-04-12 | 2022-11-11 | 杭州宏杉科技股份有限公司 | 磁盘检测方法、装置、电子设备及机器可读存储介质 |
WO2023035136A1 (zh) * | 2021-09-08 | 2023-03-16 | 长江存储科技有限责任公司 | 用于存储器的数据保护方法及其存储装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2672916B2 (ja) * | 1991-12-13 | 1997-11-05 | 富士通株式会社 | アレイディスク装置のデータチェック方法 |
US5455942A (en) * | 1992-10-01 | 1995-10-03 | International Business Machines Corporation | Partial page write detection for a shared cache using a bit pattern written at the beginning and end of each page |
JP2001202295A (ja) | 2000-01-17 | 2001-07-27 | Hitachi Ltd | サブシステム |
US7380198B2 (en) * | 2003-06-11 | 2008-05-27 | International Business Machines Corporation | System and method for detecting write errors in a storage device |
JP4401788B2 (ja) * | 2004-01-06 | 2010-01-20 | 株式会社日立製作所 | ストレージ制御装置 |
-
2004
- 2004-08-31 JP JP2004251605A patent/JP2006072435A/ja active Pending
- 2004-10-26 US US10/972,435 patent/US7398448B2/en not_active Expired - Fee Related
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008305054A (ja) * | 2007-06-06 | 2008-12-18 | Fujitsu Ltd | ストレージ管理装置、ストレージシステム、ストレージ管理方法、およびストレージ管理プログラム |
US8140800B2 (en) | 2008-06-02 | 2012-03-20 | Hitachi, Ltd. | Storage apparatus |
JP2011525643A (ja) * | 2008-12-22 | 2011-09-22 | 株式会社日立製作所 | ストレージ装置、及びストレージ装置におけるデータ検証方法 |
US8250453B2 (en) | 2008-12-22 | 2012-08-21 | Hitachi Ltd. | Storage apparatus and data verification method in storage apparatus |
JP2012516477A (ja) * | 2009-05-27 | 2012-07-19 | 株式会社日立製作所 | ストレージ装置、及びその制御方法、並びにプログラム |
JP2011053878A (ja) * | 2009-09-01 | 2011-03-17 | Fujitsu Ltd | ディスクへの書き込み位置の誤算出を検出するストレージ制御装置、ストレージシステム、及びアクセス方法。 |
US8671264B2 (en) | 2009-09-01 | 2014-03-11 | Fujitsu Limited | Storage control device and storage system |
WO2015118680A1 (ja) * | 2014-02-10 | 2015-08-13 | 株式会社日立製作所 | ストレージ装置 |
JP2015152945A (ja) * | 2014-02-10 | 2015-08-24 | サイレックス・テクノロジー株式会社 | デバイスサーバとその制御方法 |
US9736076B2 (en) | 2014-02-10 | 2017-08-15 | Silex Technology, Inc. | Device server and control method thereof |
Also Published As
Publication number | Publication date |
---|---|
US20060047872A1 (en) | 2006-03-02 |
US7398448B2 (en) | 2008-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6523087B2 (en) | Utilizing parity caching and parity logging while closing the RAID5 write hole | |
US6467023B1 (en) | Method for logical unit creation with immediate availability in a raid storage environment | |
US7421535B2 (en) | Method for demoting tracks from cache | |
US7975168B2 (en) | Storage system executing parallel correction write | |
US8402210B2 (en) | Disk array system | |
US8904129B2 (en) | Method and apparatus for backup and restore in a dynamic chunk allocation storage system | |
JP5247887B2 (ja) | ストレージ装置、及びその制御方法、並びにプログラム | |
JP4634157B2 (ja) | ストレージシステム | |
US7590884B2 (en) | Storage system, storage control device, and storage control method detecting read error response and performing retry read access to determine whether response includes an error or is valid | |
US20130254457A1 (en) | Methods and structure for rapid offloading of cached data in a volatile cache memory of a storage controller to a nonvolatile memory | |
US7818524B2 (en) | Data migration systems and methods for independent storage device expansion and adaptation | |
JP2006146833A (ja) | ディスク装置の整合性検査支援方法およびディスクアレイ装置の整合性検査方法 | |
JP4852315B2 (ja) | データ信頼性向上方法及びその方法を用いた情報処理装置 | |
JP2002323959A (ja) | 磁気ディスク制御装置のログ主体不揮発性書き込みキャッシュ・システム及び方法 | |
US10067833B2 (en) | Storage system | |
JP4114877B2 (ja) | 不正データを検出するための装置、方法、及びプログラム | |
US7398448B2 (en) | Storage system has the function of preventing drive write error | |
WO2009084071A1 (ja) | Raid制御装置及びraidシステム | |
US8327043B2 (en) | Buffer management device which manages buffer transfer, storage apparatus comprising the same device, and buffer management method | |
JP2005004753A (ja) | データのバージョンチェックを行う方法及び装置 | |
US8418029B2 (en) | Storage control device and storage control method | |
JP2005107838A (ja) | ディスクアレイコントローラ及びログ情報記録方法 | |
US8041850B2 (en) | Storage apparatus and data integrity assurance method | |
US7174476B2 (en) | Methods and structure for improved fault tolerance during initialization of a RAID logical unit | |
JP2004185477A (ja) | 光記憶媒体アレイ装置およびデータ転送方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060922 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090818 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091019 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100202 |