JP6206138B2 - ストレージ制御装置およびストレージ制御装置の制御プログラム - Google Patents

ストレージ制御装置およびストレージ制御装置の制御プログラム Download PDF

Info

Publication number
JP6206138B2
JP6206138B2 JP2013249542A JP2013249542A JP6206138B2 JP 6206138 B2 JP6206138 B2 JP 6206138B2 JP 2013249542 A JP2013249542 A JP 2013249542A JP 2013249542 A JP2013249542 A JP 2013249542A JP 6206138 B2 JP6206138 B2 JP 6206138B2
Authority
JP
Japan
Prior art keywords
data
verification information
field
record
format
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
JP2013249542A
Other languages
English (en)
Other versions
JP2015106372A (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 JP2013249542A priority Critical patent/JP6206138B2/ja
Priority to US14/547,179 priority patent/US9367393B2/en
Publication of JP2015106372A publication Critical patent/JP2015106372A/ja
Application granted granted Critical
Publication of JP6206138B2 publication Critical patent/JP6206138B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/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
    • 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/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、ストレージ制御装置およびストレージ制御装置の制御プログラムに関する。
情報処理システムに使用される外部記憶装置として、データアクセスの高速性やデータの障害耐性を高める構成を有するディスクアレイ装置(RAID(Redundant Arrays of Inexpensive Disks)装置ともいう)が多く用いられている。このディスクアレイ装置は、種類の異なる汎用的なオペレーティングシステムによって稼動するオープン系システムで多く利用されるため、固定長レコードのデータフォーマットを有している。
一方、メインフレーム系システムは、可変長レコードのデータフォーマットを扱う。そこで、ストレージ制御装置は、可変長レコードのデータフォーマットを固定長レコードのデータフォーマットに変換して、メインフレーム系システムから外部記憶装置へのアクセスを可能にしている。
データを外部記憶装置に記憶する際には、記憶したデータが再度読み出されるときに、エラーが生じていないかを判定するためのエラーチェックコードがデータに付される。たとえば、メインフレーム系システムのCKDフォーマットでは、レコードを構成するフィールドごとにエラーチェックコードが付される。また、固定長データフォーマットでは、論理ブロックごとにエラーチェックコードが付される。
特開2006−164141号公報 特開2008−197804号公報
ストレージ制御装置は、メインフレームホストから受け付けたデータのデータフォーマットを変換してメモリ上に一旦保持してから外部記憶装置に記憶させる。このとき、データに異常が生じて外部記憶装置にデータを書き込むことができなくなることがある。このような場合、ストレージ制御装置は、異常なデータを破棄し、メインフレームホストにエラー応答をおこないホストリトライをおこなう。
しかしながら、データ異常の態様によっては、ホストリトライが失敗し、メモリ上に異常なデータが残る異常状態(たとえば、Pinned Data)に至る場合がある。このような異常状態は、保守要員によるデータの復旧作業を必要とし、時間および人に係る工数、費用などの復旧コストを生じる。
したがって、ストレージ制御装置における復旧コストの抑制は、異常状態から復旧するリカバリ性能の改善によって図ることができる。
1つの側面では、本発明は、データ異常時のリカバリ性能を改善できるストレージ制御装置およびストレージ制御装置の制御プログラムを提供することを目的とする。
上記目的を達成するために、以下に示すような、ストレージ制御装置が提供される。ストレージ制御装置は、所定フィールドからなる可変長データフォーマットのデータを、固定長データフォーマットのデータに変換して、変換した固定長データフォーマットのデータを記憶装置に記憶させる。ストレージ制御装置は、書込部と、検証情報付加部とを備える。書込部は、可変長データフォーマットのデータを、データ蓄積用メモリにおける固定長データを分割した分割データ長の1以上の連続した分割領域に書き込む。検証情報付加部は、1以上の分割領域に書き込まれる可変長データフォーマットの所定フィールドのデータにもとづいて生成された、当該所定フィールドが位置する分割領域内のデータ異常を検証可能にする検証情報を、所定フィールドが位置する分割領域内付加する。
1態様によれば、ストレージ制御装置およびストレージ制御装置の制御プログラムにおいて、データ異常時のリカバリ性能を改善できる。
第1の実施形態のストレージ制御装置の構成の一例を示す図である。 第2の実施形態のストレージ装置とメインフレームホストとの接続、およびストレージ装置の構成の一例を示す図である。 第2の実施形態のメインフレームホストからHDDへのデータのアクセス手順の一例を示す図である。 第2の実施形態の書込エラー発生後の状態の一例を示す図である。 第2の実施形態の書込エラー発生タイミング1における書込エラー発生の一例を示す図である。 第2の実施形態の書込エラー発生タイミング3における書込エラー発生の一例を示す図である。 第2の実施形態の書込エラー発生タイミング2における書込エラー発生の一例を示す図である。 第2の実施形態のCKDレコードフォーマットパタン(その1)の一例を示す図である。 第2の実施形態のCKDレコードフォーマットパタン(その2)の一例を示す図である。 第2の実施形態のCKDレコードフォーマットパタン(その3)の一例を示す図である。 第2の実施形態のCKDレコードフォーマットパタン(その4)の一例を示す図である。 第2の実施形態のCKDレコードフォーマットパタン(その5)の一例を示す図である。 新対象レコードと他のレコードとがLBA内で混在するCKDトラックの一例を示す図である。 第2の実施形態のCKDトラック破壊例(ケース1)を示す図である。 第2の実施形態のCKDトラック破壊例(ケース2)を示す図である。 第2の実施形態のCKDトラック破壊例(ケース3)を示す図である。 第2の実施形態のCKDトラック破壊例(ケース4)を示す図である。 第2の実施形態のCKDトラック破壊例(ケース5)を示す図である。 第2の実施形態のCKDトラック破壊例(ケース6)を示す図である。 第2の実施形態のチェックコードを設けたカウント部のフォーマットの一例を示す図である。 第2の実施形態のデータライト処理のフローチャートを示す図である。 第2の実施形態のリカバリ処理のフローチャートを示す図である。 第2の実施形態のレコード先端部リカバリ処理のフローチャートを示す図である。 第2の実施形態のレコード終端部リカバリ処理のフローチャートを示す図である。 第2の実施形態のデータリード処理のフローチャートを示す図である。 第2の実施形態のCAのハードウェア構成の一例である。
以下、図面を参照して実施の形態を詳細に説明する。
[第1の実施形態]
まず、第1の実施形態のストレージ制御装置について図1を用いて説明する。図1は、第1の実施形態のストレージ制御装置の構成の一例を示す図である。
ストレージ制御装置1は、外部装置2からデータの書込指示を受け付けて記憶装置3にデータを記憶させ、また、外部装置2からデータの読出指示を受け付けて記憶装置3からデータを読み出して外部装置2に応答する。
外部装置2は、ストレージ制御装置1に対して記憶装置3へのデータの書込指示または記憶装置3からのデータの読出指示をおこなう。外部装置2が扱うデータは、可変長データフォーマット4である。可変長データフォーマット4は、複数のフィールド(たとえば、フィールド4a,4b,4c)を含んで構成される。外部装置2は、たとえば、メインフレーム系システムにあるメインフレームホストであり、ストレージ制御装置1にとっての上位装置に相当する。
記憶装置3は、データを記憶可能なストレージ装置であり、固定長データフォーマット5を有している。記憶装置3は、外部装置2にとって外部記憶装置である。記憶装置3は、ストレージ制御装置1によって制御され、ストレージ制御装置1を介してデータのリード(読み出し)/ライト(書き込み)がおこなわれる。記憶装置3は、たとえば、ハード ディスク ドライブ(HDD:Hard Disk Drive)であり、1または2以上のHDDによって構成されるディスクアレイ装置である。
ストレージ制御装置1は、外部装置2からフィールド4a,4b,4cからなる可変長データフォーマット4のデータを受け付ける。ストレージ制御装置1は、可変長データフォーマット4のデータを、固定長データフォーマット5のデータに変換する。ストレージ制御装置1は、変換した固定長データフォーマット5のデータを記憶装置3に記憶させる。
ストレージ制御装置1は、データ蓄積用メモリ1aと、書込部1bと、検証情報付加部1cとを含む。データ蓄積用メモリ1aは、複数の分割領域6を有し、各分割領域単位でデータを保持可能にしている。分割領域6は、記憶装置3のデータ保持単位である固定長を2分割した分割長である。たとえば、記憶装置3のデータ保持単位が512byteである場合に、分割長は、256byteである。
なお、ストレージ制御装置1は、固定長を2分割した分割長の分割領域6に限らず、固定長を4分割、あるいは8分割した分割領域を有するものであってもよい。たとえば、記憶装置3のデータ保持単位が4096byteである場合に、分割長は、4096byteを8分割した512byteであってもよい。
書込部1bは、可変長データフォーマット4のデータを、データ蓄積用メモリ1aの分割領域6に書き込む。書込部1bは、可変長データフォーマット4のデータの大きさが分割長以下の場合に、1つの分割領域6に可変長データフォーマット4のデータを書き込む。書込部1bは、可変長データフォーマット4のデータの大きさが分割長を超える場合に、2以上の連続した分割領域6に可変長データフォーマット4のデータを書き込む。
たとえば、分割長の2倍を超えて分割長の3倍に満たない大きさのデータ7は、3つの分割領域6b,6c,6dに書き込まれる。分割領域6bは、フィールド4aに対応するデータ7aと、フィールド4bの一部(前部)に対応するデータ7bが書き込まれる。分割領域6cは、フィールド4bの一部(後部)に対応するデータ7cと、フィールド4cの一部(前部)に対応するデータ7dが書き込まれる。分割領域6dは、フィールド4cの一部(後部)に対応するデータ7eが書き込まれる。
このようにして、書込部1bは、可変長データフォーマット4のデータを、データ蓄積用メモリ1aの分割領域6に書き込む。
検証情報付加部1cは、1以上の分割領域6に書き込まれる可変長データフォーマット4のフィールド4aに検証情報8を付加する。検証情報8は、フィールド4aが位置する分割領域6b内のデータ(データ7aとデータ7b)の異常を検証可能にする情報である。たとえば、検証情報8は、CRC(Cyclic Redundancy Check:巡回冗長検査)などのチェックコードである。
これにより、ストレージ制御装置1は、分割領域6単位でのデータ異常の検証をおこなうことができる。たとえば、分割領域6bを含む固定長データフォーマット5で記憶装置3にデータを書き込むことができなかった場合、ストレージ制御装置1は、検証情報8によって異常の原因が分割領域6bのデータにあるかないかを検証することができる。
たとえば、固定長データフォーマット5によれば、固定長単位のチェックコードによりデータ異常を検出することができる場合があるが、分割領域6a,6bのいずれか一方、または両方のデータに異常があることを検出できても、データ異常の分割領域6を特定することができない。また、可変長データフォーマット4によれば、可変長データフォーマット4は、フィールド4a,4b,4cごとに付されたチェックコードにより、いずれのフィールドにデータの異常があるかを検出できる場合がある。しかしながら、このようなチェックコードは、フィールドが複数の分割領域6に跨った場合にデータ異常の分割領域6を特定することができない。
ストレージ制御装置1は、このような可変長データフォーマットのデータを受け付けて、固定長データフォーマットに変換する場合であっても、いずれの分割領域6にデータ異常があるかを検証可能にし得る。ストレージ制御装置1は、分割領域6のデータ異常の有無を検証可能にしたことで、データ異常時のリカバリ性能を改善できる。このようなストレージ制御装置1は、保守要員によるデータの復旧作業を軽減し、時間および人に係る工数、費用などの復旧コストを低減できる。
[第2の実施形態]
次に、第2の実施形態のストレージ装置とメインフレームホストとの接続、およびストレージ装置の構成について図2を用いて説明する。図2は、第2の実施形態のストレージ装置とメインフレームホストとの接続、およびストレージ装置の構成の一例を示す図である。
ストレージ装置10は、メインフレームホスト11の外部記憶装置であるHDD12を制御する。ストレージ装置10は、メインフレームホスト11からデータの書込指示を受け付けてHDD12にデータを記憶させ、また、メインフレームホスト11からデータの読出指示を受け付けてHDD12からデータを読み出してメインフレームホスト11に応答する。
メインフレームホスト11は、メインフレーム系システムに含まれ、ストレージ制御装置1にとって上位装置に相当する。メインフレームホスト11は、CH(Channel)13を備える。CH13は、メインフレームホスト11のI/F(Interface)制御モジュールである。メインフレームホスト11は、CH#A、CH#B、CH#C、CH#D、CH#E、CH#F、CH#G、およびCH#Hの8つのCH13を備える。なお、HDD#0、HDD#1、HDD#2、およびHDD#3のそれぞれは、1または2以上のHDDによって構成されるディスクアレイ装置であってもよい。
ストレージ装置10は、HDD12と、CA(Channel Adapter)14と、CM(Controller Module)15を含む。HDD12は、1レコードを512byteの固定長データフォーマットで記憶するデータ格納デバイスである。ストレージ装置10は、HDD#0、HDD#1、HDD#2、およびHDD#3の4つのHDD12を備える。
CA14は、ストレージ装置10のI/F制御モジュールである。ストレージ装置10は、CA#0、CA#1、CA#2、CA#3、CA#4、CA#5,CA#6、およびCA#7の8つのCA14を備える。
CM15は、データの排他制御、CM15が備えるキャッシュメモリ(データ蓄積用メモリ)16の管理、HDD12のリード/ライト制御など、ストレージ装置10を統括的に制御する制御モジュールである。CA14は、メインフレームホスト11からの読出要求(リードI/O)に対応するデータをキャッシュメモリ16から読み出して、メインフレームホスト11に転送するとともに、メインフレームホスト11から書込要求(ライトI/O)のあったデータをキャッシュメモリ16上に書き込む。ストレージ装置10は、CM#0、CM#1、CM#2、およびCM#3の4つのCM15を備える。
CM15は、2つのCA14と接続する冗長構成を有する。CM#0は、CA#0およびCA#1と接続し、CM#1は、CA#2およびCA#3と接続する。CM#2は、CA#4およびCA#5と接続し、CM#3は、CA#6およびCA#7と接続する。
CA14は、メインフレームホスト11の対応するCH13と接続する。CA#0は、CH#Aと接続し、CA#1は、CH#Bと接続する。CA#2は、CH#Cと接続し、CA#3は、CH#Dと接続する。CA#4は、CH#Eと接続し、CA#5は、CH#Fと接続する。CA#6は、CH#Gと接続し、CA#7は、CH#Hと接続する。
CM15は、キャッシュメモリ16を備える。キャッシュメモリ16は、HDD12から読み出されたデータを格納し、また、メインフレームホスト11から書込要求のあったデータを格納する。CM#0はキャッシュメモリ#0を備え、CM#1はキャッシュメモリ#1を備え、CM#2はキャッシュメモリ#2を備え、CM#3はキャッシュメモリ#3を備える。
CM15は、内部バス17を介してHDD12と接続する。CM15は、すべてのHDD12にアクセス可能であるが担当するHDD12が設定されている。CM#0はHDD#0を担当し、CM#1はHDD#1を担当し、CM#2はHDD#2を担当し、CM#3はHDD#3を担当する。これにより、ストレージ装置10は、CM15間でのHDD12へのアクセス競合を防止し、CM15のメモリリソースの低減や、HDD12の性能低下の抑止を図ることができる。
次に、第2の実施形態のメインフレームホストからHDDへのデータのアクセス手順について図3を用いて説明する。図3は、第2の実施形態のメインフレームホストからHDDへのデータのアクセス手順の一例を示す図である。
まず、モジュール間で送受信されるデータのフォーマットについて説明する。メインフレームホスト11とストレージ装置10の間、すなわちCH13とCA14の間は、可変長データフォーマットのデータが送受信される。第2の実施形態では、可変長データフォーマットとしてCKDフォーマットを用いる。可変長データフォーマットは、たとえば、1byteから47kbyteまでのデータ長のデータを扱うことができる。
CM15のキャッシュメモリ16とCA14との間は、ハーフ論理ブロックサイズの固定長データフォーマットのデータが送受信される。CA14は、可変長データフォーマットと固定長データフォーマットの相互変換をおこなう。キャッシュメモリ16は、ハーフ論理ブロックサイズの単位でデータの管理をおこなう。
CM15のキャッシュメモリ16とHDD12との間は、論理ブロックサイズの固定長データフォーマットのデータが送受信される。HDD12は、論理ブロックサイズの単位でデータを記録する。
上述したデータフォーマットにおける各モジュール間におけるデータのアクセス手順について図3に示す一例に沿って説明する。
[ステップS111]メインフレームホスト11は、CH#EからHDD#0に対するライトI/Oを発行する。ストレージ装置10は、CH#Eに対応するCA#4によりライトI/Oを受け付ける。このとき、CH#EからCA#4に対して送信されるデータは、CKDフォーマットの可変長データである。
[ステップS112]CA#4は、CM#2からキャッシュメモリ#2の割当を受けて、CKDフォーマットの可変長データを、ハーフ論理ブロックサイズの固定長データフォーマットに変換したデータD11をキャッシュメモリ#2に書き込む。さらに、CM#2は、HDD#0を担当するCM#0と、CM#0の対となるCM#1とに、キャッシュメモリ16の割当を要求し、CM#0からキャッシュメモリ#0の割当を受け付け、CM#1からキャッシュメモリ#1の割当を受け付ける。なお、CM15は、あらかじめ対となるCM15が決められていて、一方に障害が発生した場合に他方が一方の処理を引き継ぐことで障害発生時におけるストレージ装置10の可用性を確保している。たとえば、CM#0とCM#1の対、およびCM#2とCM#3の対があらかじめ設定されている。
[ステップS113]CM#2は、CA#4によって書き込まれたデータD11を、キャッシュメモリ#0とキャッシュメモリ#1にコピーする。これにより、HDD#0を担当するCM#0がデータD13を保持し、CM#0の対となるCM#1がデータD12を保持することで、ストレージ装置10は、書込データの二重化をおこなう。
[ステップS114]CM#0は、キャッシュメモリ#0が保持するデータD13をHDD#0に書き込む。このとき、CM#0からHDD#0に対して送信されるデータは、論理ブロックサイズの単位のデータである。HDD#0が保持するデータD14は、論理ブロックサイズの単位のデータであることから、CM#0は、データD13をHDD#0に書き込む場合に、必要に応じてRMW(Read Modify Write)をおこなう。
次に、第2の実施形態のメインフレームホストからHDDへのデータのアクセス時の書込エラー発生後の状態について図4から図6を用いて説明する。図4は、第2の実施形態の書込エラー発生後の状態の一例を示す図である。
図3に示したアクセス手順において、メインフレームホスト11からHDD12へのデータのアクセス時に書込エラーが発生するタイミングは、データアクセス時のエラー発生状態を示す表200にあるように以下の3つである。
1つ目は、CA#4からCM#2へのデータ転送タイミングである。すなわち、書込エラー発生タイミングの1つは、CA14からCM15へのデータ転送タイミング(書込エラー発生タイミング1)である。
2つ目は、CM#2からCM#0またはCM#1へのデータ転送タイミングである。すなわち、書込エラー発生タイミングの1つは、送信元CM15から送信先CM15(書込先HDD12の担当CM15と、担当CM15と対となるCM15)へのデータ転送タイミング(書込エラー発生タイミング2)である。
3つ目は、CM#0からHDD#0へのデータ転送タイミングである。すなわち、書込エラー発生タイミングの1つは、担当CM15から書込先HDD12へのデータ転送タイミング(書込エラー発生タイミング3)である。なお、担当CM15に障害が発生した場合には、担当CM15と対となるCM15から書込先HDD12へのデータ転送タイミングを含む。
まず、書込エラー発生タイミング1について図5を用いて説明する。図5は、第2の実施形態の書込エラー発生タイミング1における書込エラー発生の一例を示す図である。
[ステップS121]メインフレームホスト11は、CH#EからHDD#0に対するライトI/Oを発行する。ストレージ装置10は、CH#Eに対応するCA#4によりライトI/Oを受け付ける。
[ステップS122]CA#4は、データD11をキャッシュメモリ#2に書き込む。ここで、データD11に生じた異常がデータ異常a(図4)である。この時点では、キャッシュメモリ#0、キャッシュメモリ#1、およびHDD#0は、データの書込前である。
[ステップS123]CM#2は、データD11の異常を検出してメインフレームホスト11に対してホストリトライをおこなう。
[ステップS124]メインフレームホスト11は、CH#Eと異なるCH#GからHDD#0に対するライトI/Oを発行する。ストレージ装置10は、CH#Gに対応するCA#6によりライトI/Oを受け付ける。
[ステップS125]CA#は、データD15をキャッシュメモリ#3に書き込む。以下、ストレージ装置10は、ステップS113およびステップS114と同様の処理であるステップS126およびステップS127をおこなう。
このように、ストレージ装置10は、書込エラー発生タイミング1について、メインフレームホスト11にエラー応答をおこなう。ストレージ装置10は、キャッシュメモリ#0、キャッシュメモリ#1、およびHDD#0にデータを書き込む前なので、異常を生じたデータD11を破棄してホストリトライをおこなうことによってデータ異常aをリカバリできる。
次に、書込エラー発生タイミング3について図6を用いて説明する。図6は、第2の実施形態の書込エラー発生タイミング3における書込エラー発生の一例を示す図である。
ストレージ装置10は、ステップS111からステップS113と同様の処理であるステップS131からステップS133をおこなう。
[ステップS134]CM#0は、キャッシュメモリ#0が保持するデータD13をHDD#0に書き込む。ここで、データD14に生じた異常がデータ異常d(図4)である。この時点では、キャッシュメモリ#0、キャッシュメモリ#1、およびキャッシュメモリ#2は、データが正常に書き込まれている。
[ステップS135]データ異常dの検出により、ストレージ装置10は、正常に書込をおこなえないCM#0を切り離し、HDD#0の担当をCM#1に組み替える。これによりHDD#の担当となったCM#1は、キャッシュメモリ#1が保持するデータD12をHDD#0に書き込む。
このように、ストレージ装置10は、書込エラー発生タイミング3について、担当CMにエラー応答をおこなう。ストレージ装置10は、キャッシュメモリ#0、キャッシュメモリ#1、およびキャッシュメモリ#2にデータが正常に書き込まれているので、異常を生じたデータD1を破棄してHDD#0の担当をCM#1に組み替えることによってデータ異常をリカバリできる。
次に、書込エラー発生タイミング2について図7を用いて説明する。図7は、第2の実施形態の書込エラー発生タイミング2における書込エラー発生の一例を示す図である。
ストレージ装置10は、ステップS111およびステップS112と同様の処理であるステップS141およびステップS142をおこなう。
[ステップS143]CM#2は、CA#4によって書き込まれたデータD11を、キャッシュメモリ#0とキャッシュメモリ#1にコピーする。ここで、データD13に生じた異常がデータ異常b(図4)であり、データD12に生じた異常がデータ異常c(図4)である。この時点では、キャッシュメモリ#2は、データが正常に書き込まれているが、HDD#0は、データの書込前である。
[ステップS144]CM#0は、キャッシュメモリ#0が保持するデータD13をHDD#0に書き込もうとするが、データD13に異常があるためHDD#0に書き込むことができない。
[ステップS145]CM#1は、CM#0に代わってキャッシュメモリ#1が保持するデータD12をHDD#0に書き込もうとするが、データD12に異常があるためHDD#0に書き込むことができない。
このような異常なデータは、HDD12に書き込むことができないためにキャッシュメモリ16上に残る。このような状態は、「Pinned Data」と呼ばれる。このような場合においても、ストレージ装置10は、異常を生じたデータを破棄してホストリトライをおこなうことによってデータ異常b、データ異常cをリカバリできることがあるが、ホストリトライによってもリカバリできないことがある。このようなホストリトライによってリカバリできない場合に、保守要員によるデータの復旧作業を要し、時間および人に係る工数、費用などの復旧コストがかかっていた。
ホストリトライが失敗する原因は、データのフォーマットと、データ異常の発生している位置に依存する。まず、ハーフ論理ブロックサイズの固定長データフォーマットに変換されてキャッシュメモリ16に格納されるCKDレコードフォーマットパタンについて、図8から図12を用いて説明する。図8は、第2の実施形態のCKDレコードフォーマットパタン(その1)の一例を示す図である。図9は、第2の実施形態のCKDレコードフォーマットパタン(その2)の一例を示す図である。図10は、第2の実施形態のCKDレコードフォーマットパタン(その3)の一例を示す図である。図11は、第2の実施形態のCKDレコードフォーマットパタン(その4)の一例を示す図である。図12は、第2の実施形態のCKDレコードフォーマットパタン(その5)の一例を示す図である。
可変長データフォーマットのレコードは、ハーフ論理ブロックサイズの固定長データフォーマットに変換されてキャッシュメモリ16に格納される。
ここで、CKDレコードフォーマットパタンについて説明する。可変長データフォーマットのレコードR#1は、CKDレコードフォーマットのデータ構造を有し、カウント部(図中、Cとして表す)、キー部(図中、Kとして表す)、およびデータ部(図中、Dとして表す)の3つのフィールドから構成される。カウント部は固定長であり、レコードR#1のアドレスとデータ長の情報を含む。キー部は可変長であり、オペレーティングシステムがレコードR#1を識別するために用いられる。データ部は可変長であり、ユーザデータが格納される領域である。
上述したように、キャッシュメモリ16ではハーフ論理ブロック(HLBA:Half Logical Block Address)の単位でデータを管理しているので、可変長データ(CKDデータ)のレコードはハーフ論理ブロック(HLBA#2)の先頭から格納される。たとえば、レコード#R1はHLBA#2の先頭から格納され、レコード#R2はHLBA#7の先頭から格納される。そのため、1つのハーフ論理ブロック内に2つ以上のCKDデータのレコードが格納されることはない。なお、CKDデータのレコードの中間部が位置するHLBAの数は、CKDデータのレコードの大きさによって変化する。中間部は、CKDデータのレコードの先端(先頭)部と終端(末尾)部が位置しない部分である。
また、フィールドごとにエラー保護のために計算された8バイトのエラーチェックコード(以下、FCC(Field Check Code:フィールドチェックコード)という)が書き込まれる。FCC(第2の検証情報)は、各フィールドの最後の8バイトに書込まれる。FCCは、たとえば、CRCを用いることができる。
1つの論理ブロック(LBA:Logical Block Address)は、2つのハーフ論理ブロックを含み、論理ブロックのエラー保護のために計算された8バイトのエラーチェックコード(以下、BCC(Block Check Code:ブロックチェックコード)という)を有する。BCC(第3の検証情報)は、たとえば、CRCを用いることができる。
CKDレコードフォーマットパタン(その1)210は、更新対象(図中ハッチングで示す)のレコードR#1のレコードの終端部と、後のレコード(レコードR#2)の先端部とがLBA内で混在するパタンを示す。すなわち、LBA#3に含まれる2つのHLBAのうちの1つであるHLBA#6にレコードR#1が格納され、もう1つであるHLBA#7にレコードR#2が格納されている。
CKDレコードフォーマットパタン(その2)211は、更新対象のレコードR#2のレコードの先端部と、前のレコード(レコードR#1)の終端部とがLBA内で混在するパタンを示す。すなわち、LBA#1に含まれる2つのHLBAのうちの1つであるHLBA#2にレコードR#1が格納され、もう1つであるHLBA#3にレコードR#2が格納されている。
CKDレコードフォーマットパタン(その3)212は、更新対象のレコードR#2の先端部と終端部の双方が他のレコードと別々のLBA内で混在するパタンを示す。更新対象のレコードR#2のレコードの先端部は、前のレコード(レコードR#1)の終端部と1つのLBA内で混在し、更新対象のレコードR#2のレコードの終端部は、後のレコード(レコードR#3)の先端部ともう1つのLBA内で混在する。すなわち、LBA#1に含まれる2つのHLBAのうちの1つであるHLBA#2にレコードR#1が格納され、もう1つであるHLBA#3にレコードR#2が格納されている。さらに、LBA#3に含まれる2つのHLBAのうちの1つであるHLBA#6にレコードR#2が格納され、もう1つであるHLBA#7にレコードR#3が格納されている。
CKDレコードフォーマットパタン(その4)213は、更新対象のレコードR#2が1つのHLBA内に納まり、LBA内で他のレコードと混在するパタンを示す。すなわち、LBA#1に含まれる2つのHLBAのうちの1つであるHLBA#2にレコードR#1が格納され、もう1つであるHLBA#3にレコードR#2が格納されている。
CKDレコードフォーマットパタン(その5)214は、更新対象のレコードR#2がLBA内で他のレコードと混在しないパタンを示す。すなわち、LBA#2に含まれる2つのHLBA(HLBA#4、HLBA#5)にレコードR#2が格納されている。
上述した5つのCKDレコードフォーマットパタンのうちホストリトライが失敗する原因となるのは、CKDレコードフォーマットパタン(その1)210からCKDレコードフォーマットパタン(その4)21に示したパタンである。そのうち、CKDレコードフォーマットパタン(その3)212は、CKDレコードフォーマットパタン(その1)210とCKDレコードフォーマットパタン(その2)211が重複するパタンの一形態である。また、CKDレコードフォーマットパタン(その4)214は、CKDレコードフォーマットパタン(その1)210、またはCKDレコードフォーマットパタン(その2)211の一形態である。
ここで、LBA内で他のレコードと混在する更新対象レコードのRMWについて図13を用いて説明する。図13は、混在する更新対象レコードと他のレコードとがLBA内で混在するCKDトラックの一例を示す図である。CKDトラック220は、図10に示したCKDレコードフォーマットパタン(その3)212を簡略化したCKDトラックの一形態である。
RMWは、更新対象レコードR#12をLBA#3、LBA#4に書き込むような場合におこなわれる。CA14は、HLBA#7を先頭にしてHLBA#8までを、更新対象レコードR#12の書込範囲(書込範囲RA2)とする。このとき、HDD12の最小アクセス単位であるLBA#3は、HLBA#6のデータ(レコードR#11)が不足範囲RA1となり、LBA#4は、HLBA#9のデータ(レコードR#13)が不足範囲RA3となる。
CA14は、不足範囲RA1と不足範囲RA3のデータを補うため、最小読出範囲RA5と最小読出範囲RA6のデータをHDD12から読み出す。CA14は、読み出したデータの異常の有無をBCCにより確認する。CA14は、読み出したデータに異常がなければ、読み出したデータに書込範囲RA2をマージする。CA14は、マージしたデータ、すなわち書き戻し範囲RA4のデータをキャッシュメモリ16に書き戻す。
ここで、書き戻し範囲RA4のデータに異常があると、CA14は、RMWを失敗し、ホストリトライによって復旧できない。
次に、RMWにおけるデータ異常を、図14から図19に示すCKDトラックの破壊例を用いて説明する。まず、CKDトラック破壊例(ケース1)について図14を用いて説明する。図14は、第2の実施形態のCKDトラック破壊例(ケース1)を示す図である。図15は、第2の実施形態のCKDトラック破壊例(ケース2)を示す図である。図16は、第2の実施形態のCKDトラック破壊例(ケース3)を示す図である。図17は、第2の実施形態のCKDトラック破壊例(ケース4)を示す図である。図18は、第2の実施形態のCKDトラック破壊例(ケース5)を示す図である。図19は、第2の実施形態のCKDトラック破壊例(ケース6)を示す図である。
CKDトラック破壊のケース1は、更新対象レコードの終端部が位置するLBA内にある更新対象レコードを含む2つのレコードのうち更新対象レコードが位置するHLBAにデータ異常個所があるケースである。CKDトラック破壊例(ケース1)230は、更新対象レコードR#22が位置するLBA#4のうちHLBA#8にデータ異常個所がある。CA14は、RMWでLBA#4のBCC異常を検出する。
CKDトラック破壊のケース2は、更新対象レコードの終端部が位置するLBA内にある更新対象レコードを含む2つのレコードのうち更新対象でないレコードが位置するHLBAにデータ異常個所があるケースである。CKDトラック破壊例(ケース2)231は、更新対象レコードR#22が位置するLBA#4のうちHLBA#9にデータ異常個所がある。CA14は、RMWでLBA#4のBCC異常を検出する。
CKDトラック破壊のケース3は、更新対象レコードの終端部が位置するLBA内にある2つのHLBAのそれぞれにデータ異常個所があるケースである。CKDトラック破壊例(ケース3)232は、更新対象レコードR#22が位置するLBA#4のうちHLBA#8とHLBA#9とにデータ異常個所がある。CA14は、RMWでLBA#4のBCC異常を検出する。
CKDトラック破壊のケース4は、更新対象レコードの先端部が位置するLBA内にある更新対象レコードを含む2つのレコードのうち更新対象でないレコードが位置するHLBAにデータ異常個所があるケースである。CKDトラック破壊例(ケース4)233は、更新対象レコードR#22が位置するLBA#3のうちHLBA#6にデータ異常個所がある。CA14は、RMWでLBA#3のBCC異常を検出する。
CKDトラック破壊のケース5は、更新対象レコードの先端部が位置するLBA内にある更新対象レコードを含む2つのレコードのうち更新対象レコードが位置するHLBAにデータ異常個所があるケースである。CKDトラック破壊例(ケース5)234は、更新対象レコードR#22が位置するLBA#3のうちHLBA#7にデータ異常個所がある。CA14は、RMWでLBA#3のBCC異常を検出する。
CKDトラック破壊のケース6は、更新対象レコードの先端部が位置するLBA内にある2つのHLBAのそれぞれにデータ異常個所があるケースである。CKDトラック破壊例(ケース6)235は、更新対象レコードR#22が位置するLBA#3のうちHLBA#6とHLBA#7とにデータ異常個所がある。CA14は、RMWでLBA#3のBCC異常を検出する。
CA14は、CKDトラック破壊のケース1から6に示したBCC異常の検出に対して、ホストリトライにより復旧しようとするとレコード#21やレコード#23に異常があった場合にまでBCCを更新してしまう。この場合、レコード#21やレコード#23のデータ異常を検出できなくなるため、データ異常個所をHLBA単位で特定する必要がある。なお、フィールド単位でデータ異常を検出するFCCがあるが、FCCはHLBA単位でデータ異常個所を特定できない。
そこで、CKDレコードフォーマットのカウント部にチェックコード(第1の検証情報)を設けてカウント部が位置するHLBAのデータ異常を検出可能にする。チェックコードを設けたカウント部について図20を用いて説明する。図20は、第2の実施形態のチェックコードを設けたカウント部のフォーマットの一例を示す図である。
CA14は、メインフレームホスト11からCKDレコードフォーマットのカウント部を8byteのデータとして受け取るが、制御情報を付加して64byteのデータからなるカウント部240をキャッシュメモリ16に書き込む。
カウント部240は、4byteのフラグと、44byteの制御情報と、8byteのCCHHRKDDと、8byteのFCCとを含むフォーマットである。44byteの制御情報は、4byteのチェックコードを含む。
フラグは、CKDレコードにおけるカウント部の正常/異常を示すフラグ1と、キー部の正常/異常を示すフラグ2と、データ部の正常/異常を示すフラグ3と、チェックコードの有効/無効を示すフラグ4とを含む。フラグ1、フラグ2、およびフラグ3は、各フィールドのデータの書き込み時または読み出し時に異常を検出した場合にセットされる。フラグ1、フラグ2、およびフラグ3は、データ読み出し時に参照され、フラグがセットされている場合、CA14は、メインフレームホスト11に対してデータ異常を報告する。セットされたフラグは、リトライによりデータの書き込みが正常に終了した場合にリセットされる。
制御情報は、HDD12に固有の制御情報である。従来の制御情報は、未使用の予約領域があり、カウント部240は予約領域にチェックコードの領域を有している。チェックコードは、カウント部240が位置するHLBAのデータ異常を検出可能なチェックコードである。カウント部240は、CKDレコードフォーマットが有する複数のフィールドのうち先頭に位置することから更新対象レコードの先頭部が位置するHLBAに位置する。また、カウント部240はHLBAに納まるサイズであることから、2以上のHLBAに分割されることもない。
CCHHRKDDは、メインフレームホスト11から受け取ったカウント部であり、「CCHHRKDD」を構成する各キャラクタがデータ種別とデータサイズを示す。すなわち、「CC」はシリンダ値を示す2byteのデータであることを示し、「HH」はヘッド値を示す2byteのデータであることを示す。また、「R」はレコード番号を示す1byteのデータであることを示し、「K」はキー長(キー部のデータ長)を示す1byteのデータであることを示し、「DD」はデータ長(データ部のデータ長)を示す2byteのデータであることを示す。
FCCは、カウント部240のデータを保証するためのチェックコードである。
次に、このチェックコードを用いたデータ異常発生位置の判定と、データ異常発生位置に対応するリカバリをおこなう各処理について説明する。まず、データ書き込み時におこなうデータライト処理について図21を用いて説明する。図21は、第2の実施形態のデータライト処理のフローチャートを示す図である。データライト処理は、CA14がメインフレームホスト11からライトI/Oを受け付けて実行する処理である。
[ステップS11]CA14は、メインフレームホスト(ホスト)11から書き込みをおこなうレコードのデータを受信する。
[ステップS12]CA14は、カウント部のフラグ領域にあるデータ異常フラグ(フラグ1、フラグ2、およびフラグ3)をリセットする。
[ステップS13]CA14は、カウント部のフラグ領域にあるチェックコード有効フラグ(フラグ4)をセットする。
[ステップS14]CA14は、カウント部が位置するHLBAに書き込むデータにもとづいてチェックコードを生成する。
[ステップS15]CA14は、制御情報を付加したデータをキャッシュメモリ16に書き込む。
[ステップS16]CA14は、キャッシュメモリ16に書き込んだデータのエラー検出をおこなう。CA14は、エラーを検出した場合にステップS17にすすみ、エラーを検出しない場合にステップS20にすすむ。
[ステップS17]CA14は、検出したエラーのリカバリをおこなうリカバリ処理を実行する。リカバリ処理の詳細は、図22を用いて後で説明する。
[ステップS18]CA14は、リカバリ処理において検出したエラーのリカバリを成功したか否かを判定する。CA14は、エラーのリカバリを成功した場合にステップS20にすすみ、エラーのリカバリを成功しない場合にステップS19にすすむ。
[ステップS19]CA14は、メインフレームホスト11にデータライトの正常終了を報告し、データライト処理を終了する。
[ステップS20]CA14は、メインフレームホスト11にエラー(データライトの失敗)を報告し、データライト処理を終了する。
メインフレームホスト11は、エラー報告を受け取ると、同じデータのライトをリトライするリカバリをおこなう。メインフレームホスト11は、リトライを規定回数失敗すると、リトライアウトとしてデータライト失敗を確定する。
次に、リカバリ処理について図22を用いて説明する。図22は、第2の実施形態のリカバリ処理のフローチャートを示す図である。リカバリ処理は、CA14がデータライト処理のステップS17で実行する処理である。
[ステップS21]CA14は、データライト処理のステップS16で検出したエラーがBCCによるCRCエラーであるか否かを判定する。CA14は、検出したエラーがCRCエラーである場合にステップS22にすすみ、CRCエラーでない場合にステップS32にすすむ。CRCエラーでないエラーは、リカバリできないエラーであり、たとえば、ハードウェア異常などがある。
[ステップS22]CA14は、更新対象レコードの中間部が位置するLBAからCRCエラーを検出したか否かを判定する。更新対象レコードの中間部が位置するLBAからCRCエラーを検出したか否かは、エラー情報に含まれるエラー発生アドレスから計算して判定できる。CA14は、更新対象レコードの中間部が位置するLBAからCRCエラーを検出した場合にステップS23にすすみ、更新対象レコードの中間部が位置するLBAからCRCエラーを検出しない場合にステップS25にすすむ。
[ステップS23]CA14は、更新対象レコードの中間部についてエラーのリカバリをおこなう。CA14は、異常を生じたデータを破棄してホストリトライをおこなうことによって更新対象レコードの中間部についてエラーをリカバリすることができる。
[ステップS24]CA14は、さらなるエラー検出の有無を判定する。CA14は、エラー検出があればステップS21にすすみ、エラー検出がなければステップS31にすすむ。
[ステップS25]CA14は、ステップS21からステップS24により更新対象レコードの中間部にエラー原因がない場合に当該処理を実行する。CA14は、更新対象レコードの先端部が位置するLBAからCRCエラーを検出したか否かを判定する。更新対象レコードの先端部が位置するLBAからCRCエラーを検出したか否かは、エラー情報に含まれるエラー発生アドレスから計算して判定できる。CA14は、更新対象レコードの先端部が位置するLBAからCRCエラーを検出した場合にステップS26にすすみ、更新対象レコードの先端部が位置するLBAからCRCエラーを検出しない場合にステップS29にすすむ。
[ステップS26]CA14は、更新対象レコードの先端部で検出したエラーのリカバリをおこなうレコード先端部リカバリ処理を実行する。レコード先端部リカバリ処理の詳細は、図23を用いて後で説明する。
[ステップS27]CA14は、さらなるエラー検出の有無を判定する。CA14は、エラー検出があればステップS28にすすみ、エラー検出がなければステップS31にすすむ。
[ステップS28]CA14は、ステップS27で検出したエラーがBCCによるCRCエラーであるか否かを判定する。CA14は、検出したエラーがCRCエラーである場合にステップS29にすすみ、CRCエラーでない場合にステップS32にすすむ。
[ステップS29]CA14は、更新対象レコードの終端部で検出したエラーのリカバリをおこなうレコード終端部リカバリ処理を実行する。レコード終端部リカバリ処理の詳細は、図24を用いて後で説明する。
[ステップS30]CA14は、さらなるエラー検出の有無を判定する。CA14は、エラー検出があればステップS32にすすみ、エラー検出がなければステップS31にすすむ。
[ステップS31]CA14は、リカバリ処理が正常に終了する旨、すなわちリカバリを成功した旨を出力する。これにより、CA14は、データライト処理のステップS18で検出したエラーのリカバリの成功を判定できる。CA14は、リカバリ処理を終了する。
[ステップS32]CA14は、リカバリ処理がエラー終了する旨、すなわちリカバリを失敗した旨を出力する。これにより、CA14は、データライト処理のステップS18で検出したエラーのリカバリの失敗を判定できる。CA14は、リカバリ処理を終了する。
次に、レコード先端部リカバリ処理について図23を用いて説明する。図23は、第2の実施形態のレコード先端部リカバリ処理のフローチャートを示す図である。レコード先端部リカバリ処理は、CA14がリカバリ処理のステップS26で実行する処理である。
[ステップS41]CA14は、RnCのチェックコードが有効であるか否かを判定する。RnCは、更新対象レコード(レコードn:Rn)のカウント部(C)を示す。CA14は、カウント部にあるフラグ4を参照することでRnCのチェックコードの有効性を判定できる。CA14は、RnCのチェックコードが有効である場合にステップS42にすすみ、有効でない場合にステップS44にすすむ。
[ステップS42]CA14は、RnCのチェックコードが有効であることからRnCのチェックコードを用いてエラー判定をおこなう。CA14は、チェックコードを用いてRnCが位置するHLBAのデータを検証することでエラー判定をおこなう。
[ステップS43]CA14は、エラー検出の有無を判定する。CA14は、エラー検出があればステップS46にすすみ、エラー検出がなければステップS48にすすむ。このようにして、ストレージ装置10は、チェックコードによるHLBAのデータ検証をおこなうことができる。
[ステップS44]CA14は、RnCのチェックコードが有効でないことからRnC、RnK、およびRnDからデータを読み出してFCCによるエラー判定をおこなう。RnKは更新対象レコード(レコードn:Rn)のキー部(K)を示し、RnDは更新対象レコード(レコードn:Rn)のデータ部(D)を示す。なお、更新対象レコードのフィールドのFCCは、必ずしもレコード先端部のHLBAにあるとは限らないので、FCCによるデータ検証は、HLBA単位のデータ検証ができない場合がある。たとえば、CKDレコードフォーマットパタン(その2)211やCKDレコードフォーマットパタン(その3)212の場合、CA14は、R#1のデータ部についてHLBA単位のデータ検証ができない。CA14は、データ部のFCCによっては、図示しないHLBA#1にあるデータ部の異常と、HLBA#2にあるデータ部の異常とを判別できない。
[ステップS45]CA14は、エラー検出の有無を判定する。CA14は、エラー検出があればステップS46にすすみ、エラー検出がなければステップS48にすすむ。このようにして、ストレージ装置10は、チェックコードによるHLBAのデータ検証をおこなうことができる。
[ステップS46]CA14は、Rn-1DのFCCからエラー判定をおこなう。
[ステップS47]CA14は、エラー検出の有無を判定する。CA14は、エラー検出があればステップS48にすすみ、エラー検出がなければステップS49にすすむ。
[ステップS48]CA14は、Rn-1Dのデータに異常があることを検出したので、Rn-1Cのフラグ3にRn-1Dのデータ異常を記録する。このように、ストレージ装置10は、LBA内で更新対象レコードと混在する他のレコードのデータ異常を記録することができる。
[ステップS49]CA14は、レコード先端部のエラー検出を無効化する。すなわち、レコード先端部が位置するLBAでおこなうRMWのCRCエラーの検出を抑止する。
[ステップS50]CA14は、RMWにより更新対象レコードのデータをキャッシュメモリ16に書き込み、レコード先端部リカバリ処理を終了する。
これにより、更新対象レコードの先端部が位置するHLBAにエラーがあった場合にも、更新対象レコードの先端部が位置するHLBAのデータはリカバリされる。また、LBA内で更新対象レコードと混在する他のレコードが位置するHLBAにエラーがあった場合にも、他のレコードのカウント部にエラー情報(異常検出情報)が記録される。
次に、レコード終端部リカバリ処理について図24を用いて説明する。図24は、第2の実施形態のレコード終端部リカバリ処理のフローチャートを示す図である。レコード終端部リカバリ処理は、CA14がリカバリ処理のステップS29で実行する処理である。
[ステップS51]CA14は、Rn+1Cのチェックコードが有効であるか否かを判定する。Rn+1Cは、更新対象レコードRnと同じLBAにあり、更新対象レコードRnの次のHLBAに位置するレコードのカウント部を示す。CA14は、カウント部にあるフラグ4を参照することでRn+1Cのチェックコードの有効性を判定できる。CA14は、Rn+1Cのチェックコードが有効である場合にステップS52にすすみ、有効でない場合にステップS54にすすむ。
[ステップS52]CA14は、Rn+1Cのチェックコードが有効であることからRn+1Cのチェックコードを用いてエラー判定をおこなう。CA14は、チェックコードを用いてRn+1Cが位置するHLBAのデータを検証することでエラー判定をおこなう。
[ステップS53]CA14は、エラー検出の有無を判定する。CA14は、エラー検出があればステップS56にすすみ、エラー検出がなければステップS57にすすむ。このようにして、ストレージ装置10は、チェックコードによるHLBAのデータ検証をおこなうことができる。
[ステップS54]CA14は、Rn+1Cのチェックコードが有効でないことからRn+1Cからデータを読み出してFCCによるエラー判定をおこなう。なお、カウント部は、HLBAより小さい固定長のフィールドであることから、カウント部は、検証対象のレコード先端部のHLBAに位置する。
なお、Rn+1K、およびRn+1Dなど、その他のフィールドは可変長であり、必ずしも検証対象のレコード先端部のHLBAにあるとは限らないが、カウント部のあるHLBA内にある場合に検証対象に含めてもよい。たとえば、CKDレコードフォーマットパタン(その2)211やCKDレコードフォーマットパタン(その3)212の場合、CA14は、R#3のデータ部についてHLBA単位のデータ検証ができない。CA14は、HLBA#7にあるカウント部とキー部についてFCCによるエラー判定をおこなうことができる。
[ステップS55]CA14は、エラー検出の有無を判定する。CA14は、エラー検出があればステップS56にすすみ、エラー検出がなければステップS57にすすむ。このようにして、ストレージ装置10は、チェックコードによるHLBAのデータ検証をおこなうことができる。
[ステップS56]CA14は、Rn+1Cのデータに異常があることを検出したので、Rn+1Cのフラグ1にRn+1Cのデータ異常を記録する。このように、ストレージ装置10は、LBA内で更新対象レコードと混在する他のレコードのデータ異常を記録することができる。
[ステップS57]CA14は、レコード終端部のエラー検出を無効化する。すなわち、レコード終端部が位置するLBAでおこなうRMWのCRCエラーの検出を抑止する。
[ステップS58]CA14は、RMWにより更新対象レコードのデータをキャッシュメモリ16に書き込み、レコード終端部リカバリ処理を終了する。
これにより、更新対象レコードの終端部が位置するHLBAにエラーがあった場合にも、更新対象レコードの終端部が位置するHLBAのデータはリカバリされる。また、LBA内で更新対象レコードと混在する他のレコードが位置するHLBAにエラーがあった場合にも、他のレコードのカウント部にエラー情報(異常検出情報)が記録される。
なお、CA14は、リカバリ処理、レコード先端部リカバリ処理、およびレコード終端部リカバリ処理を実行することで、エラーを検出する検出部、エラーをリカバリするリカバリ部として機能する。また、CA14は、データライト処理を実行することで、データを書き込む書込部、チェックコード(検証情報)を付加する検証情報付加部として機能する。
次に、データ読出時におこなうデータリード処理について図25を用いて説明する。図25は、第2の実施形態のデータリード処理のフローチャートを示す図である。データリード処理は、CA14がメインフレームホスト11からリードI/O(データリード要求)を受け付けて実行する処理である。
[ステップS61]CA14は、キャッシュメモリ16上からのデータ読出をCM15に要求する。
[ステップS62]CA14は、キャッシュメモリ16にデータが用意されたのを確認して、読出対象のレコードのカウント部を取得する。
[ステップS63]CA14は、カウント部のフラグ領域にデータ異常フラグがセット(ON)されているか否かを判定する。CA14は、カウント部のフラグ領域にデータ異常フラグがセットされている場合にステップS67にすすみ、データ異常フラグがセットされていない場合にステップS64にすすむ。
[ステップS64]CA14は、読み出したカウント部から、キー部のデータ長とデータ部のデータ長とを取得し、メインフレームホスト11から要求されたデータをキャッシュメモリ16から読み出してメインフレームホスト11に送信する。
[ステップS65]CA14は、ステップS64でおこなったデータ送信が正常に終了したか否かを判定する。CA14は、データ送信が正常に終了した場合、すなわちエラーを検出しない場合にステップS66にすすみ、データ送信が正常に終了しない場合、すなわちエラーを検出した場合にステップS67にすすむ。
[ステップS66]CA14は、メインフレームホスト11にデータリードの正常終了を報告し、データリード処理を終了する。
[ステップS67]CA14は、メインフレームホスト11にエラー(データリードの失敗)を報告し、データリード処理を終了する。
メインフレームホスト11は、エラー報告を受け取ると、同じデータのリードをリトライするリカバリをおこなう。メインフレームホスト11は、リトライを規定回数失敗すると、リトライアウトとしてデータリード失敗を確定する。
以上に説明した各処理により、ストレージ装置10は、チェックコードを用いたデータ異常発生位置の判定と、データ異常発生位置に対応するリカバリをおこなうことができる。
すなわち、ストレージ装置10は、更新対象レコードのカウント部にチェックコードを付加することにより、更新対象レコードの先端部が位置するHLBAにエラーがあった場合に、更新対象レコードの先端部が位置するHLBAのデータをリカバリできる。また、ストレージ装置10は、LBA内で更新対象レコードの先端部と混在する他のレコードが位置するHLBAにエラーがあった場合にも、他のレコードのカウント部にエラー情報を記録することができる。また、ストレージ装置10は、他のレコードのカウント部にエラー情報を記録することで、更新対象レコードと混在するレコードにエラーがある場合にも、更新対象レコードにエラーがないことを確認してデータを書き込むことができる。
また、ストレージ装置10は、更新対象レコードと混在するレコードのカウント部にチェックコードが付加されていることにより、混在するレコードが位置するHLBAにエラーがあった場合に、混在するレコードのカウント部にエラー情報を記録することができる。なお、更新対象レコードの終端部のエラーを判定できない場合があるが、CRCエラーの検出を抑止したRMWによる上書きによりリカバリされ得る。また、ストレージ装置10は、混在するレコードの他のレコードのカウント部、又はカウント部を含む先端部にエラーがある場合にも、混在するレコードのカウント部にエラー情報を記録することで、更新対象レコードにエラーがないことを確認してデータを書き込むことができる。
なお、ストレージ装置10は、チェックコードをカウント部に設けるようにしたが、キャッシュメモリ16にデータを書き込んだときに、先頭のHLBAに位置するフィールドであれば、カウント部に限らずキー部などその他のフィールドにチェックコードを設けるものであってもよい。
なお、ストレージ装置10は、LBAを2分割したHLBAをデータの記憶単位としたが、LBAを4分割、あるいは8分割など整数で分割した記憶領域を記憶単位とするものであってもよい。たとえば、HDD12のデータ保持単位が4096byteである場合に、キャッシュメモリ16の記憶単位は、4096byteを8分割した512byteであってもよい。
なお、ストレージ装置10は、カウント部にチェックコードを有しない既存のデータを扱うこともできるため、既存のストレージ装置のファームウェアのアップデートにより実現することもできる。この場合、ストレージ装置10は、データライト時、あるいはデータリード時に、カウント部にチェックコードを付加することができ、アクセスのあったデータから順次チェックコードを付加することができる。
次に、第2の実施形態のCA14のハードウェア構成について図26を用いて説明する。図26は、第2の実施形態のCAのハードウェア構成の一例である。
CA14は、プロセッサ20によって装置全体が制御されている。プロセッサ20には、バス25を介してRAM(Random Access Memory)21と複数の周辺機器が接続されている。プロセッサ20は、マルチプロセッサであってもよい。プロセッサ20は、たとえばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。またプロセッサ20は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
RAM21は、CA14の主記憶装置として使用される。RAM21には、プロセッサ20に実行させるOSのプログラムやファームウェア、アプリケーションプログラム(制御プログラムなど)の少なくとも一部が一時的に格納される。また、RAM21には、プロセッサ20による処理に必要な各種データが格納される。また、RAM21は、各種データの格納に用いるメモリと別体にキャッシュメモリを含むものであってもよい。
バス25に接続されている周辺機器としては、不揮発性メモリ22、入出力インタフェース24、および通信インタフェース23がある。
不揮発性メモリ22は、CA14の電源遮断時においても記憶内容を保持する。不揮発性メモリ22は、たとえば、EEPROMやフラッシュメモリなどの半導体記憶装置や、HDDなどである。また、不揮発性メモリ22は、CA14の補助記憶装置として使用される。不揮発性メモリ22には、オペレーティングシステムのプログラムやファームウェア、アプリケーションプログラム、および各種データが格納される。
入出力インタフェース24は、図示しない入出力装置と接続して入出力をおこなう。
通信インタフェース23は、CH13と接続する。
以上のようなハードウェア構成によって、第2の実施形態のCA14の処理機能を実現することができる。なお、CA14の他、CM15、第1の実施形態に示したストレージ制御装置1も、図示したCA14と同様のハードウェアにより実現することができる。
CA14は、たとえばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施形態の処理機能を実現する。CA14に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。たとえば、CA14に実行させるプログラムを不揮発性メモリ22に格納しておくことができる。プロセッサ20は、不揮発性メモリ22内のプログラムの少なくとも一部をRAM21にロードし、プログラムを実行する。またCA14に実行させるプログラムを、図示しない光ディスク、メモリ装置、メモリカードなどの可搬型記録媒体に記録しておくこともできる。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。メモリ装置は、入出力インタフェース24あるいは図示しない機器接続インタフェースとの通信機能を搭載した記録媒体である。たとえば、メモリ装置は、メモリリーダライタによりメモリカードへのデータの書き込み、またはメモリカードからのデータの読み出しをおこなうことができる。メモリカードは、カード型の記録媒体である。
可搬型記録媒体に格納されたプログラムは、たとえばプロセッサ20からの制御により、不揮発性メモリ22にインストールされた後、実行可能となる。またプロセッサ20が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、ストレージ制御装置1、ストレージ装置10(CA14、CM15)が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD、DVD−RAM、CD−ROM/RWなどがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
また、上記の処理機能の少なくとも一部を、DSP、ASIC、PLDなどの電子回路で実現することもできる。
以上の実施の形態に関し、更に以下の付記を開示する。
(付記1) 所定のフィールドからなる可変長データフォーマットのデータを、固定長データフォーマットのデータに変換して、変換した前記固定長データフォーマットのデータを記憶装置に記憶させるストレージ制御装置であって、
前記可変長データフォーマットのデータを、データ蓄積用メモリにおける前記固定長データを分割した分割データ長の1以上の連続した分割領域に書き込む書込部と、
前記1以上の分割領域に書き込まれる前記可変長データフォーマットの所定フィールドに、前記所定フィールドが位置する前記分割領域内のデータ異常を検証可能にする検証情報を付加する検証情報付加部と、
を備えることを特徴とするストレージ制御装置。
(付記2) 前記書込部は、前記1以上の分割領域のうちの先頭または末尾に位置する分割領域のデータが前記固定長データフォーマットのデータの一部となる場合に、前記固定長データフォーマットのデータを前記記憶装置から読み出して前記固定長データフォーマットのデータの一部となるデータを上書きして前記分割領域に書込むことを特徴とする付記1記載のストレージ制御装置。
(付記3) 前記検証情報を付加する所定のフィールドは、固定長であって、前記1以上の分割領域のうちの先頭の分割領域に位置することを特徴とする付記2記載のストレージ制御装置。
(付記4) 前記先頭の分割領域のデータが、前記固定長データフォーマットのデータの一部となる場合に、前記検証情報にもとづいて前記先頭の分割領域のデータの異常を検出する検出部を備えることを特徴とする付記3記載のストレージ制御装置。
(付記5) 前記検出部は、前記固定長データフォーマットのデータのうち前記先頭の分割領域のデータを除く既存データの異常を検出した場合に、前記既存データにおける前記所定のフィールドに異常検出情報を付加することを特徴とする付記4記載のストレージ制御装置。
(付記6) 前記1以上の分割領域のうちの末尾の分割領域のデータが、前記固定長データフォーマットのデータの一部となる場合に、前記固定長データフォーマットのデータのうち前記末尾の分割領域のデータを除く既存データの前記検証情報にもとづいて前記既存データの異常を検出する検出部を備えることを特徴とする付記3記載のストレージ制御装置。
(付記7) 前記検出部は、前記既存データの異常を検出した場合に、前記既存データにおける前記所定のフィールドに異常検出情報を付加することを特徴とする付記6記載のストレージ制御装置。
(付記8) 前記検出部が前記書込部による書込対象のデータの異常を検出した場合に、前記書込対象のデータの上書きによりリカバリをおこなうリカバリ部を備えることを特徴とする付記1乃至付記7のいずれか1つに記載のストレージ制御装置。
(付記9) 前記可変長データフォーマットは、カウント部、キー部、およびデータ部を含み、前記所定のフィールドは、前記カウント部であることを特徴とする付記1記載のストレージ制御装置。
(付記10) 前記検証情報付加部は、前記フィールド単位に設定される第2の検証情報と独立して前記検証情報を付加することを特徴とする付記1記載のストレージ制御装置。
(付記11) 所定のフィールドからなる可変長データフォーマットのデータを、固定長データフォーマットのデータに変換して、変換した前記固定長データフォーマットのデータを記憶装置に記憶させるストレージ制御装置の制御プログラムであって、
コンピュータに、
前記可変長データフォーマットのデータを、データ蓄積用メモリにおける前記固定長データを分割した分割データ長の1以上の連続した分割領域に書き込む処理と、
前記1以上の分割領域に書き込まれる前記可変長データフォーマットの所定フィールドに、前記所定フィールドが位置する前記分割領域内のデータ異常を検証可能にする検証情報を付加する処理と、
を実行させることを特徴とするストレージ制御装置の制御プログラム。
(付記12) 所定のフィールドからなる可変長データフォーマットのデータを、固定長データフォーマットのデータに変換して、変換した前記固定長データフォーマットのデータを記憶装置に記憶させるストレージ制御装置の制御方法であって、
コンピュータが、
前記可変長データフォーマットのデータを、データ蓄積用メモリにおける前記固定長データを分割した分割データ長の1以上の連続した分割領域に書き込むときに、
前記1以上の分割領域に書き込まれる前記可変長データフォーマットの所定フィールドに、前記所定フィールドが位置する前記分割領域内のデータ異常を検証可能にする検証情報を付加する、
処理を実行することを特徴とするストレージ制御装置の制御方法。
1 ストレージ制御装置
1a データ蓄積用メモリ
1b 書込部
1c 検証情報付加部
2 外部装置
3 記憶装置
4 可変長データフォーマット
4a,4b,4c フィールド
5 固定長データフォーマット
6,6a,6b,6c,6d 分割領域
7,7a,7b,7c,7d,7e データ
8 検証情報
10 ストレージ装置
11 メインフレームホスト
12 HDD
13 CH
14 CA
15 CM
16 キャッシュメモリ
17 内部バス
20 プロセッサ
21 RAM
22 不揮発性メモリ
23 通信インタフェース
24 入出力インタフェース
25 バス

Claims (10)

  1. 定フィールドからなる可変長データフォーマットのデータを、固定長データフォーマットのデータに変換して、変換した前記固定長データフォーマットのデータを記憶装置に記憶させるストレージ制御装置であって、
    前記可変長データフォーマットのデータを、データ蓄積用メモリにおける前記固定長データを分割した分割データ長の1以上の連続した分割領域に書き込む書込部と、
    前記1以上の分割領域に書き込まれる前記可変長データフォーマットの所定フィールドのデータにもとづいて生成された、当該所定フィールドが位置する分割領域内のデータ異常を検証可能にする検証情報を、前記所定フィールドが位置する前記分割領域内付加する検証情報付加部と、
    を備えることを特徴とするストレージ制御装置。
  2. 前記書込部は、前記1以上の分割領域のうちの先頭または末尾に位置する分割領域のデータが前記固定長データフォーマットのデータの一部となる場合に、前記固定長データフォーマットのデータを外部装置から読み出して前記固定長データフォーマットのデータの一部となるデータを上書きして前記分割領域に書き込むことを特徴とする請求項1記載のストレージ制御装置。
  3. 前記1以上の分割領域のうちの先頭の分割領域に位置する固定長フィールドのデータが、前記固定長データフォーマットのデータの一部となる場合に、前記検証情報にもとづいて前記先頭の分割領域のデータの異常を検出する検出部を備え、
    前記固定長データフォーマットのデータのうち前記先頭の分割領域のデータを除く既存データの異常を検出した場合に、前記既存データにおける前記所定フィールドに異常検出情報を付加することを特徴とする請求項記載のストレージ制御装置。
  4. 前記1以上の分割領域のうちの末尾の分割領域のデータが、前記固定長データフォーマットのデータの一部となる場合に、前記固定長データフォーマットのデータのうち前記末尾の分割領域のデータを除く既存データの前記検証情報にもとづいて前記既存データの異常を検出する検出部を備え、
    前記検証情報付加部は、固定長であって前記1以上の分割領域のうちの先頭の分割領域に位置するフィールドに前記検証情報を付加することを特徴とする請求項記載のストレージ制御装置。
  5. 前記検証情報付加部は、
    前記可変長データフォーマットに含まれるフィールドごとに書き込まれるデータにもとづいて前記検証情報を生成し、前記フィールドごとに前記検証情報を付加することを特徴とする請求項1記載のストレージ制御装置。
  6. 前記可変長データフォーマットは、固定長フィールド、第1の可変長のフィールドおよび第2の可変長のフィールドを含み、
    前記検証情報付加部は、
    前記固定長フィールドに書き込まれるデータにもとづいて第1検証情報を生成して前記固定長フィールドに前記第1検証情報を付加し、
    前記第1の可変長のフィールドに書き込まれるデータにもとづいて第2検証情報を生成して前記第1の可変長のフィールドに前記第2検証情報を付加し、
    前記第2の可変長のフィールドに書き込まれるデータにもとづいて第3検証情報を生成して前記第2の可変長のフィールドに前記第3検証情報を付加することを特徴とする請求項1記載のストレージ制御装置。
  7. 前記固定長フィールドは、前記1以上の分割領域のうちの先頭の分割領域に位置し、
    前記検証情報付加部は、前記固定長フィールドが含まれる前記分割領域に書き込まれるデータにもとづいて第4検証情報を生成して前記固定長フィールドに前記第4検証情報を付加し、
    前記1以上の分割領域に書き込まれるデータにもとづいて前記1以上の分割領域ごとに第5検証情報を生成して前記1以上の分割領域ごとに前記第5検証情報を付加することを特徴とする請求項6記載のストレージ制御装置。
  8. 定フィールドからなる可変長データフォーマットのデータを、固定長データフォーマットのデータに変換して、変換した前記固定長データフォーマットのデータを記憶装置に記憶させるストレージ制御装置の制御プログラムであって、
    コンピュータに、
    前記可変長データフォーマットのデータを、データ蓄積用メモリにおける前記固定長データを分割した分割データ長の1以上の連続した分割領域に書き込む処理と、
    前記1以上の分割領域に書き込まれる前記可変長データフォーマットの所定フィールドのデータにもとづいて生成された、当該所定フィールドが位置する分割領域内のデータ異常を検証可能にする検証情報を、前記所定フィールドが位置する前記分割領域内付加する処理と、
    を実行させることを特徴とするストレージ制御装置の制御プログラム。
  9. 前記制御プログラムは、
    前記コンピュータに、
    前記可変長データフォーマットに含まれるフィールドごとに書き込まれるデータにもとづいて前記検証情報を生成し、前記フィールドごとに前記検証情報を付加することを特徴とする請求項8記載のストレージ制御装置の制御プログラム。
  10. 前記可変長データフォーマットは、固定長フィールド、第1の可変長のフィールドおよび第2の可変長のフィールドを含み、
    前記制御プログラムは、
    前記コンピュータに、
    前記固定長フィールドに書き込まれるデータにもとづいて第1検証情報を生成して前記固定長フィールドに前記第1検証情報を付加し、
    前記第1の可変長のフィールドに書き込まれるデータにもとづいて第2検証情報を生成して前記第1の可変長のフィールドに前記第2検証情報を付加し、
    前記第2の可変長のフィールドに書き込まれるデータにもとづいて第3検証情報を生成して前記第2の可変長のフィールドに前記第3検証情報を付加する処理を実行させることを特徴とする請求項8記載のストレージ制御装置の制御プログラム。
JP2013249542A 2013-12-02 2013-12-02 ストレージ制御装置およびストレージ制御装置の制御プログラム Expired - Fee Related JP6206138B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013249542A JP6206138B2 (ja) 2013-12-02 2013-12-02 ストレージ制御装置およびストレージ制御装置の制御プログラム
US14/547,179 US9367393B2 (en) 2013-12-02 2014-11-19 Storage control apparatus and storage control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013249542A JP6206138B2 (ja) 2013-12-02 2013-12-02 ストレージ制御装置およびストレージ制御装置の制御プログラム

Publications (2)

Publication Number Publication Date
JP2015106372A JP2015106372A (ja) 2015-06-08
JP6206138B2 true JP6206138B2 (ja) 2017-10-04

Family

ID=53265413

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013249542A Expired - Fee Related JP6206138B2 (ja) 2013-12-02 2013-12-02 ストレージ制御装置およびストレージ制御装置の制御プログラム

Country Status (2)

Country Link
US (1) US9367393B2 (ja)
JP (1) JP6206138B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110825747B (zh) * 2019-11-05 2022-09-06 政采云有限公司 一种信息存取方法、装置和介质
JP2023100303A (ja) * 2022-01-06 2023-07-19 ローム株式会社 メイン装置、サブ装置、及び通信システム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3422370B2 (ja) * 1992-12-14 2003-06-30 株式会社日立製作所 ディスクキャッシュ制御装置
US5617432A (en) * 1994-11-09 1997-04-01 International Business Machines Corporation Common error protection code for data stored as a composite of different data formats
US6101574A (en) * 1995-02-16 2000-08-08 Fujitsu Limited Disk control unit for holding track data in non-volatile cache memory
JP3260998B2 (ja) * 1995-02-16 2002-02-25 富士通株式会社 ディスク制御装置
JP4437953B2 (ja) 2004-12-10 2010-03-24 富士通株式会社 データ書込み方法とチャネルアダプタ
JP4362134B2 (ja) 2007-02-09 2009-11-11 富士通株式会社 データアクセス方法、チャネルアダプタ、データアクセス制御装置およびデータアクセスプログラム
US8230317B2 (en) * 2008-04-09 2012-07-24 International Business Machines Corporation Data protection method for variable length records by utilizing high performance block storage metadata
JP4693893B2 (ja) * 2008-11-25 2011-06-01 株式会社日立製作所 記憶制御装置及び記憶制御装置の制御方法
JP5236072B2 (ja) 2009-02-19 2013-07-17 株式会社日立製作所 ストレージ装置、及びデータ保証方法
US8307271B1 (en) * 2009-09-17 2012-11-06 Emc Corporation Fast verification of data block cycle redundancy checks
JP5378604B2 (ja) * 2010-04-27 2013-12-25 株式会社日立製作所 ThinProvisioningが適用された、メインフレーム系のストレージ装置
TWM416151U (en) * 2011-06-17 2011-11-11 Su-Wei Lin Card reader

Also Published As

Publication number Publication date
US9367393B2 (en) 2016-06-14
JP2015106372A (ja) 2015-06-08
US20150154073A1 (en) 2015-06-04

Similar Documents

Publication Publication Date Title
JP4916033B2 (ja) データ格納方法、データ・ストレージ・システムおよびプログラム(ストレージ・システムにおけるデータ完全性の検証)(著作権および商標登録表示本特許文書の開示の一部は、著作権保護を受ける内容を含む。本所有権者は、特許文書または特許開示書のいずれか一つによるファクシミリ複写物には、複写物が特許商標庁の特許ファイルまたは記録として世に出現している限り異論はないが、他の場合に全ての著作権は完全に留保する。)(本明細書で参照するある種のマークについては、出願人またはその譲受人と提携しまたは提携しない第三者の、慣習法上の、または登録された商標である可能性がある。これらのマークを使用するのは、例示によって実施可能な開示を提供するためであり、そのようなマークに関連するもののみに本発明の範囲を制限するように解釈されるべきではない。)
US6629198B2 (en) Data storage system and method employing a write-ahead hash log
CN102929750B (zh) 非易失性介质肮脏区段跟踪
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
US8234446B2 (en) Disk array apparatus, data distribution and management method, and data distribution and management program
US20140068208A1 (en) Separately stored redundancy
US20090259882A1 (en) Apparatus and method for identifying disk drives with unreported data corruption
US7725805B2 (en) Method and information apparatus for improving data reliability
JP2008539474A (ja) パワーセーフディスクストレージ装置、システム及び方法
JP2006107311A (ja) ディスクアレイ装置およびその制御方法
CN106168920B (zh) 控制包括只读闪速数据存储设备的独立磁盘冗余阵列
US20180157428A1 (en) Data protection of flash storage devices during power loss
JP2006139478A (ja) ディスクアレイシステム
JP2006164319A (ja) 不正データを検出するための装置、方法、及びプログラム
JP2006251960A (ja) ストレージ装置
US7921265B2 (en) Data access method, channel adapter, and data access control device
US7730370B2 (en) Apparatus and method for disk read checking
JP6206138B2 (ja) ストレージ制御装置およびストレージ制御装置の制御プログラム
US8418029B2 (en) Storage control device and storage control method
JP4469822B2 (ja) ディスクアレイ装置およびディスクアレイ装置のデータ管理方法
JP2006072435A (ja) ストレージシステムおよびデータ記録方法
JP4143040B2 (ja) ディスクアレイ制御装置、同装置に適用されるデータ欠損検出時の処理方法及びプログラム
JP5729043B2 (ja) ストレージ装置および制御装置
JP6318769B2 (ja) ストレージ制御装置、制御プログラム、および制御方法
JP2008041080A (ja) 記憶制御システム、記憶制御システムの制御方法、ポートセレクタ、及びコントローラ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160804

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170523

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170724

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: 20170808

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170821

R150 Certificate of patent or registration of utility model

Ref document number: 6206138

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees