JP4383321B2 - 記憶制御装置および外部記憶装置 - Google Patents

記憶制御装置および外部記憶装置 Download PDF

Info

Publication number
JP4383321B2
JP4383321B2 JP2004325161A JP2004325161A JP4383321B2 JP 4383321 B2 JP4383321 B2 JP 4383321B2 JP 2004325161 A JP2004325161 A JP 2004325161A JP 2004325161 A JP2004325161 A JP 2004325161A JP 4383321 B2 JP4383321 B2 JP 4383321B2
Authority
JP
Japan
Prior art keywords
data
temporary storage
mirroring
unit
cache memory
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
JP2004325161A
Other languages
English (en)
Other versions
JP2006134241A (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 JP2004325161A priority Critical patent/JP4383321B2/ja
Priority to US11/059,588 priority patent/US7606971B2/en
Publication of JP2006134241A publication Critical patent/JP2006134241A/ja
Application granted granted Critical
Publication of JP4383321B2 publication Critical patent/JP4383321B2/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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • 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/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2089Redundant storage control functionality
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

この発明は、データの正当性を保証して制御する記憶制御装置および該記憶制御装置によりコンピュータの外部記憶装置として用いられる装置内部でのデータの正当性が保証された外部記憶装置に関するものである。より具体的には、装置内でデータを転送する際に、破壊等されたデータを検出し、該データが装置内で伝播しないようにしてデータの正当性を保証して制御する記憶制御装置および該記憶制御装置によりコンピュータの外部記憶装置として用いられる装置内部でのデータの正当性が保証された外部記憶装置に関するものである。
近年、様々なデータが電子化され、コンピュータ上で扱われるようになるに従い、コンピュータとは独立して大量のデータを効率良く格納することができる外部記憶装置としてディスクアレイ装置の重要性が増してきている。このディスクアレイ装置は、RAID(Redundant Arrays of Inexpensive Disks)技術を取り入れることにより、単純なディスク装置に比べて信頼性を高めているところに特徴がある。また、ディスクアレイ装置は、一般にキャッシュを内蔵することによりデータへのアクセス時間を短くすることを可能としている。
RAID技術では、複数のディスクに同じデータを記憶させる手法(RAID−1)や、パリティ情報をディスクに分散して記憶させる手法(RAID−5)などにより信頼性を高めているが、現在のディスクアレイ装置の多くは、データに対してチェックコードを付加することにより更にデータの保証を行い、信頼性を高める手法が採用されている。
これは512バイトのデータブロックに対して、データから計算された巡回冗長検査(CRC:Cyclic Redundancy Check)コードとデータの位置情報を示すブロックIDを付加することにより行われる。このCRCコードとブロックIDとを合わせて、データブロックに対するチェックコードという意味でブロックチェックコード(BCC)と呼ぶことがある。CRCは、512バイトのデータとシードと呼ばれる予め決められた値に対する所定の計算によって得られる。また、ブロックIDは、最初の512バイトのバイトデータブロックに対して定義され、次の512バイトに対しては「1」が加算された値(+1)がそのデータブロックのブロックIDとなる。BCCは、ANSI(American National Standards Institute)でも2バイトのCRCコードと6バイトのブロックID(2バイトのMeta Tagと4バイトのReference Tagとから構成される)によるチェックコードがT10コードという名称で標準化されている。
以下に、このような従来のディスクアレイ装置について図14を用いて説明する。図14は従来のディスクアレイ装置を用いたディスクアレイシステムの構成を示すブロック図である。図14に示すように、ディスクアレイ装置100はファイバチャネル・リンク104A、104BによってホストコンピュータA102AおよびホストコンピュータB102Bの2台のホストコンピュータに接続されている。ディスクアレイ装置100は、ホストI/Fを担当するホストアダプタA106A、ホストアダプタB106B、キャッシュメモリA108A、キャッシュメモリB108B、キャッシュの管理を行なうキャッシュコントローラA110A、キャッシュコントローラB110B、ディスクI/Fを担当するディスクアダプタA112A、ディスクアダプタB112B、複数ディスクへの接続を提供するスイッチA114A、スイッチB114B、及び複数のディスクドライブA116A、ディスクドライブB116Bを備えて構成されている。
キャッシュコントローラA110A、キャッシュコントローラB110Bは、それぞれホストアダプタA106A、ホストアダプタB106BとディスクアダプタA112A、ディスクアダプタB112Bとの間のデータ転送経路を提供する。また、キャッシュコントローラA110AとキャッシュコントローラB110Bとの間にもデータ転送経路(キャッシュ間リンク)118が設けられ、キャッシュメモリA108AとキャッシュメモリB108Bとの間におけるデータのミラーリングに利用される。キャッシュメモリA108AおよびキャッシュメモリB108BはDRAMなどの揮発性のメモリで構成される。このため、一方のキャッシュメモリに格納されるデータは必ず他方のキャッシュメモリにも該データのコピーを格納することで、障害発生時にデータが消失することがないように制御される。これをキャッシュのミラーリングと呼ぶ。
つぎに図14を参照して従来のディスクアレイ装置においてホストコンピュータからのデータをディスクに格納する際のディスクアレイ装置の動作を説明する。ここでは、ホストコンピュータA102Aからの送信されたデータをディスクアレイ装置に格納する場合について説明する。ディスクドライブA116Aへ格納されるデータは、まずホストコンピュータA102AからホストアダプタA106Aへ送信される。ホストアダプタA106Aでは、受信したデータにブロックチェックコード(BCC)を付加した上で、該データをキャッシュコントローラA110Aへ転送する。
キャッシュコントローラA110Aは、受信したBCC付きデータを一時的にキャッシュメモリA108A内に格納すると共にキャッシュコントローラB110Bへ当該データを転送し、キャッシュメモリB108Bに格納することでミラーリング処理を行なう。これにより、キャッシュメモリB108BにはキャッシュメモリA108Aに格納されたデータと同一のデータが格納される。そして、ミラーリングが完了すると、キャッシュコントローラA110Aは、ホストアダプタA106Aに対してミラーリング処理が終了した旨の通知を行う。ホストアダプタA106Aは、ホストコンピュータAにデータの格納を正常に終了したことを知らせる。
また、キャッシュメモリA108Aに格納されたデータは、所定のタイミングでディスクドライブA116AおよびディスクドライブB116Bに格納される。このとき、ディスクアダプタA112Aは、データに付加されたBCCをチェックすることによりデータの正当性、すなわちデータが破壊等されていないかを確認している。
また、データをミラーリングした際に、ミラーリング先のデータの信頼性を確認するためにミラーリングを行うときに、ミラーリング先にデータのコピーを送信するとともに他の制御手段にもデータのコピーを送信し、そこでデータのチェックを行う技術が提案されている(たとえば、特許文献1参照)。
特開2001−175582号公報
しかしながら、上記のような従来の技術では、キャッシュメモリのミラーリングによって信頼性の向上が図られているが、ミラーリング元のキャッシュメモリへデータを書き込む際に、ハード故障などにより破壊等された間違ったデータを書き込んだ場合や、間違ったアドレスにデータを書き込んでしまった場合には、ミラーリング先のキャッシュメモリ上のミラーリングされたデータも当然信頼できないものとなってしまう。このため、ディスクアレイ装置内に正しいデータが格納されないまま、ホストコンピュータに対して正常にデータが格納されたという通知がなされてしまうという状態が発生し、データの信頼性に問題が生じてしまう。また、上記の特許文献1の技術においてもミラーリング自体が行われた後にデータのチェックが行われるため、仮にデータの不具合が見つかった場合でもミラーリングしたデータの消去、再ミラーリングなどの工程が必要となり、処理が複雑になるという問題がある。
この発明は、上述した従来技術による問題点を解消するためになされたものであり、正しいデータを確実且つ容易にミラーリングすることが可能であり、データの信頼性の高い記憶制御が可能な記憶制御装置および外部記憶装置を得ることを目的とする。
上述した課題を解決し、目的を達成するため、本願の開示する記憶制御装置は、一つの態様において、データのミラーリングにより冗長化管理され、外部から入力されたデータを一時的に保持する複数の一時記憶手段と、一時記憶手段に対するデータの入出力を制御する一時記憶制御手段と、複数の一時記憶手段の間におけるデータのミラーリングを制御するとともに、複数の一時記憶手段の間でデータのミラーリングを行う際にミラーリング元の一時記憶手段が保持するデータの正当性を確認し、データの正当性が確認された場合のみ該データのミラーリングを実行するミラーリング制御手段とを備える。
そして、本願の開示する記憶制御装置は、一つの態様において、ミラーリング制御手段が複数の一時記憶手段の間でデータのミラーリングを行う際にミラーリング元の一時記憶手段が保持するデータの正当性を確認し、データの正当性が確認された場合のみ該データのミラーリングを実行する。また、ミラーリング元の一時記憶手段が保持するデータの正当性が確認されなかった場合、すなわちデータが破壊等されたデータであった場合には、ミラーリング制御手段は該データのミラーリングを中止し、ミラーリング先の一時記憶手段にはデータを送信しない。
本願の開示する一つの態様によれば、ミラーリング元の一時記憶手段が保持するデータのうち正当性の保証された正しいデータのみを確実且つ容易にミラーリングすることができる。
また、本願の開示する外部記憶装置は、一つの態様において、データのミラーリングにより冗長化管理され、外部から入力されたデータを一時的に保持する複数の一時記憶手段と、一時記憶手段に対するデータの入出力を制御する一時記憶制御手段と、複数の一時記憶手段の間におけるデータのミラーリングを制御するミラーリング制御手段と、一時記憶手段に保持されたデータを格納する複数のディスクを含むディスク装置と、ディスク装置に対するデータの入出力を制御するディスク制御手段とを備える。
そして、本願の開示する外部記憶装置は、一つの態様において、ミラーリング制御手段が複数の一時記憶手段の間でデータのミラーリングを行う際にミラーリング元の一時記憶手段が保持するデータの正当性を確認し、データの正当性が確認された場合のみ該データのミラーリングを実行する。また、ミラーリング元の一時記憶手段が保持するデータの正当性が確認されなかった場合、すなわちデータが破壊等されたデータであった場合には、ミラーリング制御手段は該データのミラーリングを中止し、ミラーリング先の一時記憶手段にはデータを送信しない。
本願の開示する一つの態様によれば、ミラーリング元の一時記憶手段が保持するデータのうち正当性の保証された正しいデータのみを確実且つ容易にミラーリングすることができる。そして、正当性の保証された正しいデータのみを確実にディスク装置に格納することができる。
また、本願の開示する外部記憶装置は、一つの態様において、ディスク装置を複数備える
本願の開示する一つの態様によれば、複数のディスク装置に外部から入力されたデータが格納される。これにより、障害発生時のデータ保証の信頼性を高めることができる。
また、本願の開示する外部記憶装置は、一つの態様において、外部から入力されたデータに該データの正当性を確認するためのチェックコードを付加するチェックコード付加手段を備え、一時記憶手段はチェックコードを付加したデータを一時的に保持し、ミラーリング制御手段は前記のチェックコードと、ミラーリング元の一時記憶手段に保持したチェックコードを付加したデータから生成した他のチェックコードと、を比較してミラーリング元の前記一時記憶手段が保持するデータの正当性を確認する
本願の開示する一つの態様によれば、チャックコードを用いてミラーリング元の前記一時記憶手段が保持するデータの正当性が確認される。これにより、ミラーリング元の一時記憶手段が保持するデータの正当性を容易に且つ確実に確認することができる。
また、本願の開示する外部記憶装置は、一つの態様において、ミラーリング制御手段は、ミラーリング元の一時記憶手段が保持する前記チェックコードを付加したデータを読み出す読み出し手段と、読み出し手段が読み出したチェックコードを付加したデータを一時的に保持する保持手段と、チェックコードを付加したデータから比較用のチェックコードを生成する比較チェックコード生成手段と、チェックコードを付加したデータのチェックコードと比較用のチェックコードとが一致するか否かの比較を行う比較手段と、比較手段における比較結果が一致する場合にのみ保持手段に保持した前記チェックコードを付加したデータの転送を行う転送手段とを備える。
本願の開示する一つの態様によれば、ミラーリング制御手段が上記の構成を備えることにより、チェックコードを付加したデータのチェックコードと比較用のチェックコードとが一致するか否かの比較を行うことでミラーリング元の一時記憶手段が保持するデータの正当性が確認される。これにより、ミラーリング元の一時記憶手段が保持するデータの正当性を容易に且つ確実に確認することができる。
本願の開示する一つの態様によれば、ミラーリング元の一時記憶手段が保持するデータのミラーリングを行う際に該データの正当性を確認し、データの正当性が確認された場合のみ該データのミラーリングを実行するため、ミラーリング元の一時記憶手段が保持するデータのうち正当性の保証された正しいデータのみを確実且つ容易にミラーリングすることができ、ミラーリング先の一時記憶手段に誤ったデータが格納されることを防止することができるため、格納されたデータの信頼性の高い制御を行うことが可能な記憶制御装置が得られるという効果を奏する。
本願の開示する一つの態様によれば、ミラーリング元の一時記憶手段が保持するデータのミラーリングを行う際に該データの正当性を確認し、データの正当性が確認された場合のみ該データのミラーリングを実行するため、ミラーリング元の一時記憶手段が保持するデータのうち正当性の保証された正しいデータのみを確実且つ容易にミラーリングすることができ、ミラーリング先の一時記憶手段に誤ったデータが格納されることを防止することができるため、格納されたデータの信頼性の高い外部記憶装置が得られるという効果を奏する。
また、本願の開示する一つの態様によれば、ディスク装置を複数備えるため、障害発生時のデータ保証の信頼性を高めることができるという効果を奏する。
また、本願の開示する一つの態様によれば、データの正当性の確認にチャックコードを用いるため、ミラーリング元の一時記憶手段が保持するデータの正当性を容易に且つ確実に確認することができるという効果を奏する。
また、本願の開示する一つの態様によれば、チェックコードを付加したデータのチェックコードと比較用のチェックコードとが一致するか否かの比較を行うことでミラーリング元の一時記憶手段が保持するデータの正当性を確認できるため、ミラーリング元の一時記憶手段が保持するデータの正当性を容易に且つ確実に確認することができるという効果を奏する。
以下に添付図面を参照して、この発明にかかる外部記憶装置の好適な実施の形態を詳細に説明する。なお、本発明は以下の記述に限定されるものではなく、本発明の要旨を逸脱しない範囲において適宜変更可能である。
図1は、本実施例にかかる外部記憶装置であるディスクアレイ装置を用いたディスクアレイシステムのシステム構成を示すブロック図である。このディスクアレイシステムにおいては、図1に示すようにディスクアレイ装置1はファイバチャネル・リンクA4A、ファイバチャネル・リンクB4BによってホストコンピュータA2AおよびホストコンピュータB2Bの2台のホストコンピュータに接続されている。また、ディスクアレイ装置1は、ホストアダプタA6Aと、ホストアダプタB6Bと、キャッシュメモリA8Aと、キャッシュメモリB8Bと、キャッシュコントローラA10Aと、キャッシュコントローラB10Bと、ディスクアダプタA12Aと、ディスクアダプタB12Bと、スイッチA14Aと、スイッチB14Bと、複数のディスクドライブA16Aと、複数のディスクドライブB16Bと、データ転送経路(キャッシュ間リンク)18と、ミラーリング制御DMAエンジン(DMAE)A20A(以下、DMAE・A20Aと呼ぶ)と、ミラーリング制御DMAエンジン(DMAE)B20B(以下、DMAE・B20Bと呼ぶ)と、を備えて構成されている。
なお、以下においては、ホストコンピュータA2AとホストコンピュータB2Bとを総称してホストコンピュータと呼ぶ場合がある。同様に、ホストアダプタA6AとホストアダプタB6Bとを総称してホストアダプタと、キャッシュメモリA8AとキャッシュメモリB8Bとを総称してキャッシュメモリ8と、キャッシュコントローラA10AとキャッシュコントローラB10Bとを総称してキャッシュコントローラ10と、ディスクアダプタA12AとディスクアダプタB12Bとを総称してディスクアダプタ12と、スイッチA14AとスイッチB14Bを総称してスイッチ14と、ディスクドライブA16AとディスクドライブB16Bとを総称してディスクドライブ16と、DMAE・A20AとDMAE・B20Bとを総称してDMAE20と呼ぶ場合がある。
ここで、ホストアダプタA6AとホストアダプタB6Bとは、それぞれホストコンピュータA2AおよびホストコンピュータB2BのホストI/Fを担当する。
キャッシュメモリA8AおよびキャッシュメモリB8Bは、外部装置であるホストコンピュータ2から送信されたデータを一時的に保持する一時記憶手段である。このようなキャッシュメモリA8AおよびキャッシュメモリB8Bは、DRAMなどの揮発性のメモリで構成される。このため、一方のキャッシュメモリに格納されるデータは必ず他方のキャッシュメモリにも該データのコピーが格納、すなわちミラーリングされる。たとえばミラーリング元であるキャッシュメモリA8Aに格納されるデータについては、必ずミラーリング先であるキャッシュメモリB8Bにも該データのコピーが格納される。
同様にミラーリング元であるキャッシュメモリB8Bに格納されるデータについては、必ずミラーリング先であるキャッシュメモリA8Aにも該データのコピーが格納される。これにより、一方のキャッシュメモリ(たとえばキャッシュメモリA8A)に障害が発生した場合においても、同一のデータが他方のキャッシュメモリ(たとえばキャッシュメモリB8B)に格納されているため、データの消失を防止することができる。
また、このディスクアレイ装置1においては、ミラーリング先のキャッシュメモリにデータのミラーリングを行う際に、ミラーリング元のキャッシュメモリ内のデータの正当性確認、すなわちデータが破壊等されていないかの確認が行われている。そして、この確認の結果、データの正当性が確認された場合(データが破壊等されていないことが確認された場合)のみ、他方のキャッシュメモリにデータが格納されている。したがって、このディスクアレイ装置1においては、ミラーリング先のキャッシュメモリ内に不具合の生じた誤ったデータが格納されることが防止されているため、保持されたデータの信頼性の高い外部記憶装置が実現されている。
たとえばキャッシュメモリB8BにキャッシュメモリA8Aに保持されたデータのミラーリングを行う際に、キャッシュメモリA8A内のデータの正当性確認、すなわちデータが破壊等されていないかの確認が行われる。そして、データの正当性が確認された場合(データが破壊等されていないことが確認された場合)のみ、キャッシュメモリB8Bにデータが格納される。同様に、キャッシュメモリA8AにキャッシュメモリB8Bに保持されたデータのミラーリングを行う際に、キャッシュメモリB8B内のデータの正当性確認、すなわちデータが破壊等されていないかの確認が行われる。そして、データの正当性が確認された場合(データが破壊等されていないことが確認された場合)のみ、キャッシュメモリA8Aにデータが格納される。
また、キャッシュメモリ8は、図1に示したディスクアレイシステムのキャッシュメモリとしての役割だけではなく、キャッシュコントローラ10のシステムメモリとしての役割も有する。すなわち、キャッシュメモリ8は、後述するキャッシュコントローラ10内のCPU22が実行するプログラムの格納領域及び作業領域として、その一部が利用される。また後述するようにDMAE20への指示情報となるディスクリプタも、後述するキャッシュコントローラ10内のCPU22が作成してキャッシュメモリ8内に格納する。
図2はキャッシュコントローラA10Aの周辺部および該キャッシュコントローラA10Aの詳細構成を示したブロック図である。なお、図2においては、キャッシュコントローラA10Aの構成を示すが、キャッシュコントローラB10Bの構成もキャッシュコントローラA10Aの構成と同様である。キャッシュコントローラA10Aは1つまたは複数のCPU22A(図2においては2つ)と、該CPU22Aが接続されるメモリコントローラ24Aと、を備えて構成される。メモリコントローラ24Aは図示しない複数のI/Oポートを有するとともにホストアダプタA6A、ディスクアダプタA12AおよびDMAE・A20Aが接続される。
このように構成されるキャッシュコントローラA10AおよびキャッシュコントローラB10Bは、一時記憶手段であるキャッシュメモリ8に対するデータの入出力を制御するキャッシュメモリの制御手段であり、それぞれキャッシュメモリA8AおよびキャッシュメモリB8Bの管理を行ない、ホストコンピュータから受け取ったデータを自キャッシュメモリへ格納する。すなわち、キャッシュコントローラA10Aは、ホストコンピュータA2Aから受け取ったデータを自キャッシュメモリであるキャッシュメモリA8Aへ格納する。一方、キャッシュコントローラB10Bは、ホストコンピュータB2Bから受け取ったデータを自キャッシュメモリであるキャッシュメモリB8Bへ格納する。
ここで、キャッシュコントローラ10は、ホストコンピュータから受け取ったデータを自キャッシュメモリへ格納する際、データから計算された巡回冗長検査(CRC:Cyclic Redundancy Check)コードとデータの位置情報を示すブロックIDとをデータに付加して自キャッシュメモリへ格納する。このCRCコードとブロックIDとを合わせて、データブロックに対するチェックコードという意味でブロックチェックコード(BCC)と呼ぶ。
また、キャッシュコントローラ10は、ホストコンピュータ2から受け取ったデータを自キャッシュメモリへ格納する他に、DMAE20へ指示を出して、ミラーリングのために自キャッシュメモリではない他方のキャッシュメモリへもホストコンピュータから受け取ったデータを転送する補助処理も行う。
すなわち、BCCを付加したデータを自キャッシュメモリに格納した後、キャッシュコントローラ10は、格納したデータの長さとアドレスとを含むデータ転送指示情報(ディスクリプタ)を作成し、キャッシュメモリ8に格納する。そしてキャッシュコントローラ10はDMAE20に対してディスクリプタを作成した旨を通知する。この通知をトリガとしてDMAE20はミラーリングを開始する。
このようなキャッシュコントローラ10は、システムメモリとしてキャッシュメモリを使用する。すなわち、キャッシュコントローラは、CPU22Aが実行するプログラムの格納領域及び作業領域として、キャッシュメモリ8内の一部を利用する。また、DMAE20へのデータ転送指示情報となるディスクリプタもCPU22Aがキャッシュメモリ8内に作成、格納する。
また、キャッシュコントローラ10は、ホストアダプタ6とディスクアダプタ12との間のデータ転送経路を提供する。すなわち、キャッシュコントローラA10Aは、ホストアダプタA6AとディスクアダプタA12Aとの間のデータ転送経路を提供する。キャッシュコントローラB10Bは、ホストアダプタB6BとディスクアダプタB12Bとの間のデータ転送経路を提供する。
また、このようなキャッシュコントローラA10AとキャッシュコントローラB10Bとの間には、DMAE・A20AおよびDMAE・B20Bを介してデータ転送経路(キャッシュ間リンク)18が設けられており、キャッシュメモリA8A、キャッシュメモリB8Bのミラーリングに利用される。
ディスク装置制御手段であるディスクアダプタ12は、ディスクドライブ16とのディスクI/Fを担当する。また、ディスクアダプタ12は、キャッシュメモリに格納されたBCC付きデータを所定のタイミングでディスクドライブに格納する際にBCCのチェックを行い、格納されるBCC付きデータ、すなわちキャッシュメモリに格納されているBCC付きデータが破壊等されていない正常なデータであるかを確認する。スイッチ14は、ディスクアダプタ12から、ディスクドライブ16に含まれる複数ディスクへの接続を提供する。ディスクドライブ16は、それぞれ複数のディスクを備え、キャッシュメモリ8に格納されたデータが所定のタイミングで該ディスクに格納される。
図3は、ミラーリング制御手段であるDMAE・A20Aの構成を示したブロック図である。なお、図3においては、DMAE・A20Aの構成を示し、DMAE・A20Aを例に説明するが、DMAE・B20Bについても構成およびその機能はDMAE・A20Aと同様である。DMAE・A20Aは、メモリI/F26Aと、送信部28Aと、受信部30Aと、リンクI/F32Aと、を備えて構成される。また、送信部28Aは、ディスクリプタ制御部34Aと、リード制御部36Aと、バッファ38Aと、CRC生成論理部40Aと、CRCレジスタ42Aと、ブロックID(BID)カウントレジスタ44Aと、BIDカウンタ46Aと、比較論理部48Aと、転送制御部50Aと、を備えて構成される。そして、受信部30Aは、バッファ52Aと、ライト制御54Aと、を備えて構成される。
メモリI/F26Aは、キャッシュコントローラA10Aのメモリコントローラ24Aに接続され、キャッシュメモリ8Aに格納されたディスクリプタやデータへのアクセスを行う。ディスクリプタ制御部34Aは、キャッシュメモリ8Aからディスクリプタを読み出して解析し、該ディスクリプタをリード制御部36Aと転送制御部50Aとへ送信する。また、ディスクリプタ内のブロックID(BID)初期値をBIDカウントレジスタ44Aにセットする。
リード制御部36Aは、キャッシュメモリA8Aからのデータの読み出しを制御する。すなわち、リード制御部36Aは、ディスクリプタ制御部34Aから受信したディスクリプタに指定された転送元キャッシュアドレスから、指定されたバイト数のデータを読み出し、バッファ38Aへ格納する。また、リード制御部36Aは、リード制御部36Aが読み出したデータをバッファ38Aへ格納するのと同時にCRC生成論理部40Aへ送信する。
CRC生成論理部40Aは、リード制御部36Aから送信されるデータを受信し、決められた初期値から(T10コードを使用する場合はALL’1’)512バイト毎にCRCを生成して、生成したCRCをCRCレジスタ42Aに格納する。BIDカウントレジスタ44Aは、ディスクリプタ制御部34Aによりディスクリプタ内のブロックID(BID)初期値をセットされ、保持する。その後は、リード制御部36Aが520バイトデータブロックを読み出すごとにBIDカウンタによりBIDに「1」を加算(+1)された、次のデータブロックに対するBIDの期待値を格納する。
比較論理部48Aは、リード制御部36Aが読み出すデータのうち、520バイトの最後の8バイトにあるBCCと、上記のCRCレジスタおよびBIDカウントレジスタに保持された期待値と、を受信する。そして520バイトの最後の8バイトにあるBCCと、上記のCRCレジスタおよびBIDカウントレジスタに保持された期待値とが一致するか否かの比較を行い、比較結果を転送制御部50Aに送信する。
転送制御部50Aは、上記の比較結果を確認し、ミラーリング先のキャッシュメモリ(ここではキャッシュメモリB8B)への最終的なデータ転送を制御する。すなわち、ディスクリプタ制御部34Aから受け取ったディスクリプタに指定された転送先キャッシュアドレスへ、指定されたバイト数のデータをバッファから転送する。具体的には、520バイトデータブロック毎に比較回路からのBCC比較結果を受け取り、一致していればそのデータブロックを転送し、不一致が見つかった場合はそのデータブロックを含めた残りのデータの転送は行わない。
ここで、比較結果が一致する場合とは、キャッシュコントローラA10Aが受け取ったデータとキャッシュメモリA8Aに格納されたデータとが一致することを意味し、キャッシュメモリA8Aに格納されたデータが破壊等されていない正常なデータであることを意味する。比較結果が一致する場合には、キャッシュメモリA8Aに格納されたデータが正常なデータであることを保証することができる。したがって、上記の比較結果が一致している場合には、転送制御部50Aがバッファ38Aに格納されたデータブロックをミラーリング先のキャッシュメモリであるキャッシュメモリB8Bに転送することにより、データの正当性が保証されたミラーリングが可能であり、正常且つ同一のデータがキャッシュメモリA8AおよびキャッシュメモリB8Bに格納される。
一方、比較結果が一致しない場合(比較結果において不一致が見つかった場合)とは、キャッシュコントローラA10Aが受け取ったデータとキャッシュメモリA8Aに格納されたデータとが一致しないことを意味し、キャッシュメモリA8Aに格納されたデータが破壊等されていることを意味する。上記の比較を行うことにより、ミラーリングが完了する前に、すなわちデータがキャッシュメモリB8Bに格納される前に破壊等されたデータを検出することができる。
比較結果が一致しない場合には、キャッシュメモリA8Aに格納されたデータが正常なデータであることを保証することができない。したがって、上記の比較結果が一致しない場合には、転送制御部50Aはバッファ38Aに格納されたデータブロックをミラーリングキャッシュメモリであるキャッシュメモリB8Bに転送しない。これにより、破壊等された異常なデータがミラーリングキャッシュメモリであるキャッシュメモリB8Bに格納される(ミラーリングされる)ことを防止することができる。これにより、ミラーリングしたデータの消去、再ミラーリングなどの工程の発生を防止することができ、正しいデータのみを確実且つ容易にミラーリングすることができる。
バッファ52Aは、DMAE・B20Bにおいてデータの正当性が確認され、転送されたデータを一時的に保持する。そしてバッファ52Aに保持されたデータは、ライト制御54Aの制御によりキャッシュメモリA8Aへ格納される。
つぎに、ディスクアレイ装置1においてデータのミラーリングを行う際の具体的な処理手順について図4〜図13を用いて説明する。図4〜図13は、本実施例にかかるディスクアレイシステムの処理手順を示すフローチャートである。ここでは、ホストコンピュータA2Aから送信されたデータをキャッシュメモリA8AおよびディスクドライブA16Aに格納するとともに、該データをキャッシュメモリB8Bにミラーリングする場合を例に説明する。
まず、ホストコンピュータA2Aから送信されたデータをキャッシュメモリA8AおよびキャッシュメモリB8Bに格納する処理について図4〜図6に示すフローチャートを用いて説明する。最初にホストコンピュータA2AがホストアダプタA6Aにデータを送信する(ステップS101)。ホストアダプタA6Aは、ホストコンピュータA2Aが送信したデータを受信し(ステップS102)、該データに512バイト毎に8バイトのBCCを付与する(ステップS103)。そしてホストアダプタA6Aは、BCCを付与したデータ(以下、BCC付きデータと呼ぶ)をキャッシュコントローラA10Aに送信する(ステップS104)。
キャッシュコントローラA10Aは、ホストアダプタA6Aから送信されたBCC付きデータを受信し(ステップS105)、該BCC付きデータをキャッシュメモリA8Aに送信する(ステップS106)。キャッシュメモリA8Aでは、キャッシュコントローラA10Aから送信されたBCC付きデータを受信し(ステップS107)、該データを格納、すなわち書き込む(ステップS108)。
つぎに、キャッシュコントローラA10Aは、データの長さとデータのアドレスを記述したデータ転送指示情報(ディスクリプタ)を作成し、キャッシュメモリA8Aに送信する(ステップS109)。キャッシュメモリA8Aはディスクリプタを受信し(ステップS110)、キャッシュメモリA8A内の作業域に該ディスクリプタの書き込み(格納)を行う(ステップS111)。また、キャッシュメモリA8Aがディスクリプタを書き込んだ後、キャッシュコントローラA10Aは、DMAE・A20AにキャッシュメモリA8Aのディスクリプタを読み出すよう指示情報を送る。
DMAE・A20Aはこの指示情報を受けてキャッシュメモリA8Aからディスクリプタを読み出し(ステップS112)、該ディスクリプタの情報に基づいてキャッシュメモリA8AからBCC付きデータを読み出す(ステップS113)。つぎに、DMAE・A20Aは、読み出したBCC付きデータのBCCをチェックし、キャッシュメモリA8Aから読み出したBCC付きデータが破壊等されていないか、すなわち正常なデータであるか否かを確認する(ステップS114)。このBCCのチェックについての詳細な処理は後述する。
ここで、キャッシュメモリA8Aから読み出したBCC付きデータが正常なデータでない場合(破壊等されている場合、ステップS114否定)、図5のフローチャートに示すようにDMAE・A20AはキャッシュコントローラA10Aに対してエラー情報を送信する(ステップS115)。キャッシュコントローラA10Aは、DMAE・A20Aから送信されたエラー情報を受信し(ステップS116)、該エラー情報をホストアダプタA6Aに送信する(ステップS117)。
ホストアダプタA6Aでは、キャッシュコントローラA10Aから送信されたエラー情報を受信し(ステップS118)、該エラー情報をホストコンピュータA2Aに送信する(ステップS119)。そして、ホストコンピュータA2Aがエラー情報を受信することで(ステップS120)、ホストコンピュータA2Aがステップ101において送信したデータの一連の処理が終了する。
一方、ステップS114においてキャッシュメモリA8Aから読み出したBCC付きデータが破壊等されていないか、すなわち正常なデータであるか否かを確認した結果、該BCC付きデータが正常なデータである場合(破壊等されていない場合、ステップS114肯定)には、DMAE・A20Aは該BCC付きデータをDMAE・B20Bに送信する(ステップS121)。DMAE・B20Bは、図6のフローチャートに示すようにDMAE・A20Aから送信されたBCC付きデータを受信すると(ステップS122)、該BCC付きデータをキャッシュコントローラB10Bに送信する(ステップS123)。
キャッシュコントローラB10Bは、DMAE・B20Bから送信されたBCC付きデータを受信し(ステップS124)、該BCC付きデータをキャッシュメモリB8Bに送信する(ステップS125)。キャッシュメモリB8Bでは、キャッシュコントローラB10Bから送信されたBCC付きデータを受信し(ステップS126)、該BCC付きデータの書き込み(格納)を行う(ステップS127)。そして、キャッシュメモリB8BにおいてBCC付きデータの書き込み(格納)が完了すると、キャッシュコントローラB10BはBCC付きデータの書き込み(格納)完了の情報(以下、データ格納完了情報と呼ぶ)をDMAE・B20BおよびDMAE・A20Aを経由してキャッシュコントローラA10Aに送信する(ステップS128)。
キャッシュコントローラA10Aは、キャッシュコントローラB10Bからデータ格納完了情報を受信すると(ステップS129)、該情報をホストアダプタA6Aに送信する(ステップS130)。ホストアダプタA6Aは、キャッシュコントローラA10Aからデータ格納完了情報を受信すると(ステップS131)、該情報をホストコンピュータA2Aに送信する(ステップS132)。そして、ホストコンピュータA2Aがデータ格納完了情報を受信することで(ステップS133)、ホストコンピュータA2Aがステップ101において送信したデータがキャッシュメモリA8AおよびキャッシュメモリB8Bに正常な状態で格納され、キャッシュメモリA8AおよびキャッシュメモリB8Bに対するデータの格納処理が終了する。
つぎに、キャッシュメモリA8AまたはキャッシュメモリB8Bに格納されたBCC付きデータをディスクドライブA16AおよびディスクドライブB16Bに格納する処理について図7〜図10に示すフローチャートを用いて説明する。まず、図7のフローチャートに示すようにキャッシュコントローラA10AがキャッシュメモリA8AからBCC付きデータを読み出し(ステップS201)、該BCC付きデータをディスクアダプタA12Aに送信する(ステップS202)。ディスクアダプタA12Aは、キャッシュコントローラA10Aから送信されたBCC付きデータを受信し(ステップS203)、該BCC付きデータのBCCをチェックし、BCC付きデータが破壊等されていないか、すなわち正常なデータであるか否かを確認する(ステップS204)。
ここで、キャッシュコントローラA10Aから送信されたBCC付きデータが正常なデータである場合(破壊等されていない場合、ステップS204肯定)、ディスクアダプタA12Aは、BCC付きデータをスイッチA14AおよびスイッチB14Bに送信する(ステップS205)。スイッチA14Aは、BCC付きデータを受信すると(ステップS206)、該BCC付きデータをディスクドライブA16Aに送信する(ステップS207)。そして、ディスクドライブA16Aでは、スイッチA14Aから送信されたBCC付きデータを受信し、受信したBCC付きデータをディスクドライブA16A内のディスクに書き込む(ステップS208)。これにより、キャッシュメモリA8Aに格納されたBCC付きデータをディスクドライブA16Aに格納する一連の処理が終了する。
また、スイッチB14Bは、BCC付きデータを受信すると(ステップS209)、該BCC付きデータをディスクドライブB16Bに送信する(ステップS210)。そして、ディスクドライブB16Bでは、スイッチB14Bから送信されたBCC付きデータを受信し、ディスクドライブB16B内のディスクに受信したBCC付きデータを書き込む(ステップS211)。これにより、キャッシュメモリA8Aに格納されたBCC付きデータをディスクドライブB16Bに格納する一連の処理が終了する。
一方、ステップ204において、キャッシュコントローラA10Aから送信されたBCC付きデータが破壊等されていないか、すなわち正常なデータであるか否かを確認した結果、該BCC付きデータが正常なデータでない場合(破壊等されている場合、ステップS204否定)には、ミラーリングキャッシュメモリであるキャッシュメモリB8Bに格納されたBCC付きデータをディスクドライブA16AおよびディスクドライブB16Bに格納する処理に移る。この場合にはディスクアダプタA12Aは、図8のフローチャートに示すようにキャッシュコントローラA10Aに対してエラー情報を送信する(ステップS212)。キャッシュコントローラA10Aは、ディスクアダプタA12Aからエラー情報を受信すると(ステップS213)、DMAE・A20AおよびDMAE・B20Bを介して該エラー情報をキャッシュコントローラB10Bに送信する(ステップS214)。
キャッシュコントローラB10Bは、キャッシュコントローラA10Aから送信されたエラー情報を受信すると(ステップS215)、キャッシュメモリB8Bから該キャッシュメモリB8Bに格納されたBCC付きデータを読み出す(ステップS216)。そしてキャッシュコントローラB10Bは、読み出したBCC付きデータをDMAE・B20BおよびDMAE・A20Aを介してキャッシュコントローラA10Aに送信する(ステップS217)。
キャッシュコントローラA10Aは、キャッシュコントローラB10Bから送信されたBCC付きデータを受信し(ステップS218)、該BCC付きデータをディスクアダプタA12Aに送信する(ステップS219)。そして図9のフローチャートに示すように、ディスクアダプタA12AはキャッシュコントローラA10Aから送信されたBCC付きデータを受信すると(ステップS220)、該BCC付きデータのBCCをチェックし、BCC付きデータが破壊等されていないか、すなわち正常なデータであるか否かを確認する(ステップS221)。
ここで、キャッシュコントローラA10Aから送信されたBCC付きデータが正常なデータである場合(破壊等されていない場合、ステップS221肯定)、ディスクアダプタA12Aは、BCC付きデータをスイッチA14AおよびスイッチB14Bに送信する(ステップS222)。スイッチA14Aは、BCC付きデータを受信すると(ステップS223)、該BCC付きデータをディスクドライブA16Aに送信する(ステップS224)。そして、ディスクドライブA16Aでは、スイッチA14Aから送信されたBCC付きデータを受信し、受信したBCC付きデータをディスクドライブA16A内のディスクに書き込む(ステップS225)。これにより、キャッシュメモリB8Bに格納されたBCC付きデータをディスクドライブA16Aに格納する一連の処理が終了する。
また、スイッチB14Bは、BCC付きデータを受信すると(ステップS226)、該BCC付きデータをディスクドライブB16Bに送信する(ステップS227)。そして、ディスクドライブB16Bでは、スイッチB14Bから送信されたBCC付きデータを受信し、ディスクドライブB16B内のディスクに受信したBCC付きデータを書き込む(ステップS228)。これにより、キャッシュメモリB8Bに格納されたBCC付きデータをディスクドライブB16Bに格納する一連の処理が終了する。
一方、ステップ221において、キャッシュコントローラA10Aから送信されたBCC付きデータが破壊等されていないか、すなわち正常なデータであるか否かを確認した結果、該BCC付きデータが正常なデータでない場合(破壊等されている場合、ステップS221否定)には、ディスクアダプタA12AはキャッシュコントローラA10Aにエラー情報を送信する(ステップS229)。キャッシュコントローラA10Aは、図10のフローチャートに示すようにディスクアダプタA12Aから送信されたエラー情報を受信し(ステップS230)、該エラー情報をホストアダプタA6Aに送信する(ステップS231)。
ホストアダプタA6Aでは、キャッシュコントローラA10Aから送信されたエラー情報を受信し(ステップS232)、該エラー情報をホストコンピュータA2Aに送信する(ステップS233)。そして、ホストコンピュータA2Aがエラー情報を受信することで(ステップS234)、一連の処理が終了する。
つぎにDMAE・A20AにおいてDMAE・B20Bにデータを転送する場合の転送処理について図11および図12を用いて説明する。なお、ここでは、DMAE・A20Aを例に説明するがDMAE・B20Bの場合の処理も同様である。まず、図11に示すように、ディスクリプタ制御部34AがキャッシュメモリA8Aに格納されたディスクリプタを読み出す(ステップS301)。そして、ディスクリプタ制御部34Aは、該ディスクリプタをリード制御部36Aと転送制御部50Aとへ送信し、また、読み出したディスクリプタ内のブロックID(BID)をBIDカウントレジスタ44Aに送信する(ステップS302)。
リード制御部36Aは、ディスクリプタ制御部34Aから送信されたディスクリプタを受信し(ステップS303)、ディスクリプタに含まれる転送元キャッシュアドレスから指定されたバイト数のBCC付きデータを読み出し、バッファ38Aに送信する。また、読み出したBCC付きデータのうちデータのみをCRC生成論理部40Aに送信し、BCCのみを比較論理部に送信する(ステップS304)。バッファ38Aは、リード制御部36Aから送信されたBCC付きデータの書き込みを行う(ステップS305)。
転送制御部50Aは、ディスクリプタ制御部34Aから送信されたディスクリプタを受信し(ステップS306)、転送処理を行うまで該ディスクリプタを保持する。BIDカウントレジスタ44Aは、ディスクリプタ制御部34Aから送信されたディスクリプタ内のBIDを受信し(ステップS307)、初期値をBID初期値にセットする(ステップS308)。そして、BIDカウントレジスタ44Aは、リード制御部36Aが520バイトを読み出す毎にカウンタ値に「1」を加算(+1)して次のデータブロックに対するBIDの期待値をBIDカウントレジスタ44Aに格納する(ステップS309)。
つぎに、CRC生成論理部40Aは、ステップS304でリード制御部36Aから送信されたBCC付きデータのデータ部分(512バイト分)を受信し(ステップS310)、512バイト毎にデータから計算したCRCを生成して(ステップS311)、CRCレジスタ42Aに格納する(ステップS312)。そして、比較論理部48Aは、ステップ304でリード制御部36Aから送信されたBCC付きデータのBCC部分(8バイト分)を受信し(ステップS313)、CRC生成論理部40Aから該CRC生成論理部40Aで生成したCRCを読み出し(ステップS314)、BIDカウントレジスタ44AからBIDを読み出す(ステップS315)。そして図12に示すように、比較論理部48Aは、リード制御部36Aから送信されたBCCと、CRC生成論理部40Aから読み出したCRCおよびBIDカウントレジスタ44Aから読み出したBIDと、を比較し(ステップS316)、比較結果を転送制御部50Aに送信する(ステップS317)。
転送制御部50Aでは、上記の比較結果を受信し(ステップS318)、リード制御部36Aから送信されたBCCと、CRC生成論理部40Aから読み出したCRCおよびBIDカウントレジスタ44Aから読み出したBIDと、が一致している否かを判断する(ステップS319)。ここで、比較結果が一致する場合は(ステップS319肯定)、転送制御部50Aは、保持していたディスクリプタに指示されたBCC付きデータをバッファ38Aから読み出し(ステップS320)、該BCC付きデータをリンクI/F32Aに送信する(ステップS321)。
リンクI/F32Aは、転送制御部50Aから送信されたBCC付きデータを受信し(ステップS322)、DMAE・B20Bに送信する(ステップS323)。これにより、DMAE・A20AからDMAE・B20Bへの一連の転送処理が終了する。
一方、ステップS319において比較結果が一致しない場合は(ステップS319否定)、転送制御部50Aは転送処理中止し(ステップS324)、キャッシュコントローラA10Aにエラー情報を送信する(ステップS325)。これによりDMAE・A20Aにおいて転送処理を中止した場合の一連の処理が終了する。以上の処理を行うことにより、キャッシュメモリA8Aに格納されたBCC付きデータをキャッシュメモリB8Bに転送する際に、破壊等されたデータを検出し、該破壊等されたデータのミラーリングを防止することができる。したがって、キャッシュメモリA8Aに格納されたBCC付きデータであって破壊等されたBCC付きデータがキャッシュメモリB8Bに転送されることがないため、ミラーリングされたBCC付きデータの正当性を確実に保証することが可能である。
最後に、DMAE・B20Bにおいてデータの正当性が確認されたBCC付きデータがDMAE・B20BからDMAE・A20Aに転送された場合の転送処理について図13を用いて説明する。
まず、リンクI/F32Aは、DMAE・B20Bから送信されたデータの正当性が確認されたBCC付きデータを受信すると(ステップS401)、該BCC付きデータをバッファ52Aに送信する(ステップS402)。ここで、DMAE・B20Bから送信されてくるBCC付きデータは、520バイト(データ部512バイト+BCC部8バイト)単位で送信されてくる。
バッファ52Aは、リンクI/F32Aから送信されたBCC付きデータを受信し、該BCC付きデータの書き込み(格納)を行う(ステップS403)。つぎに、バッファ52Aは、格納したBCC付きデータを所定のタイミングでライト制御部54Aに送信する(ステップS404)。ライト制御部54Aは、バッファ52Aから送信されたBCC付きデータを受信し、該BCC付きデータをメモリI/F26Aに送信する(ステップS405)。そして、メモリI/F26Aは、ライト制御部54Aから送信されたBCC付きデータを受信し、キャッシュコントローラA10Aに送信する(ステップS406)。これにより、データの正当性が確認されたBCC付きデータがDMAE・B20BからDMAE・A20Aに転送された場合のDMAE・A20Aにおける一連の転送処理が終了する。そして、キャッシュコントローラA10Aに送られたBCC付きデータはキャッシュメモリA8Aへの書き込み(格納)が行われ、キャッシュメモリB8Bに格納されたBCC付きデータのキャッシュメモリA8Aへのミラーリングが終了する。
なお、ここでは、DMAE・A20Aを例に説明するがDMAE・B20Bの場合の処理も同様である。また、DMAE・B20Bにおいては、上述したDMAE・A20Aの場合と同様の処理によりデータの正当性が確認されている。したがって、以上の処理を行うことにより、キャッシュメモリB8Bに格納されたBCC付きデータをキャッシュメモリA8Aに転送する際に、破壊等されたデータのミラーリングが防止される。したがって、キャッシュメモリB8Bに格納されたBCC付きデータであって破壊等されたBCC付きデータがキャッシュメモリA8Aに転送されることがないため、ミラーリングされたBCC付きデータの正当性を確実に保証することが可能である。
上述してきたように本実施例では、DMAE・A20Aが、リード制御部36Aが読み出すBCC付きデータのうち、520バイトの最後の8バイトにあるBCCと、DMAE・A20A内で生成されCRCレジスタ42AおよびBIDカウントレジスタ44Aに保持された値とが一致するか否かの比較を比較論理部48Aにおいて行う。そして、この比較結果を転送制御部50Aにおいて確認し、この比較結果が一致している場合には、転送制御部50Aはバッファ38Aに格納されたデータブロックをミラーリングキャッシュメモリであるキャッシュメモリB8Bに転送する。一方、比較結果において不一致が認められた場合、すなわち破壊等されたデータが検出された場合には、転送制御部50Aはバッファ38Aに格納されたデータブロックを含めた残りのデータの転送は行わない。
このような処理を行うことにより、ディスクアレイ装置内に正しいデータが格納されない状態でキャッシュメモリB8Bに正常にデータが格納されたという通知(正常終了通知)がホストコンピュータA2Aに対してなされることが確実に防止される。これにより、本実施例では、ディスクアレイ装置1内においてミラーリングされたデータの正当性を確実に保証してキャッシュメモリの冗長化管理を確実に行い、データの信頼性を高めることができるという効果を有する。したがって、本実施例では、正しいデータを確実且つ容易にミラーリングすることが可能であり、データの信頼性の高い外部記憶装置を得ることができる。
なお、上記においてはホストコンピュータA2Aから送信されたデータをキャッシュメモリA8Aおよびディスクドライブ16Aに格納するとともに該データをキャッシュメモリB8Bにミラーリングする場合を例に説明したが、ホストコンピュータB2Bから送信されたデータをキャッシュメモリB8Bおよびディスクドライブ16Bに格納するとともに該データをキャッシュメモリA8Aにミラーリングする場合も上記と同様の処理により行うことができる。
また、上記においてはキャッシュメモリが2つの場合について説明したが、本発明においてはキャッシュメモリは2つに限定されるものではなく、キャッシュメモリを3つ以上の複数個備えた構成とすることも可能である。
以上のように、本発明にかかる外部記憶装置は、電子化されたデータの格納に有用であり、特に、電子化されたデータを大量に取り扱うコンピュータのデータを効率良く格納する用途に適している。
本実施例にかかるディスクアレイシステムのシステム構成を示すブロック図である。 キャッシュコントローラおよびその周辺部の構成を示すブロック図である。 DMAEの構成を示すブロック図である。 ディスクアレイシステムの処理手順を示すフローチャート(1)である。 ディスクアレイシステムの処理手順を示すフローチャート(2)である。 ディスクアレイシステムの処理手順を示すフローチャート(3)である。 ディスクアレイシステムの処理手順を示すフローチャート(4)である。 ディスクアレイシステムの処理手順を示すフローチャート(5)である。 ディスクアレイシステムの処理手順を示すフローチャート(6)である。 ディスクアレイシステムの処理手順を示すフローチャート(7)である。 ディスクアレイシステムの処理手順を示すフローチャート(8)である。 ディスクアレイシステムの処理手順を示すフローチャート(9)である。 ディスクアレイシステムの処理手順を示すフローチャート(10)である。 従来のディスクアレイシステムのシステム構成を示すブロック図である。
符号の説明
1 ディスクアレイ装置
2A ホストコンピュータA
2B ホストコンピュータB
4A ファイバチャネル・リンクA
4B ファイバチャネル・リンクB
6A ホストアダプタA
6B ホストアダプタB
8A キャッシュメモリA
8B キャッシュメモリB
10A キャッシュコントローラA
10B キャッシュコントローラB
12A ディスクアダプタA
12B ディスクアダプタB
14A スイッチA
14B スイッチB
16A ディスクドライブA
16B ディスクドライブB
18 キャッシュ間リンク
20A DMAE・A
20B DMAE・B
22A CPU
24A メモリコントローラ
26A メモリI/F
28A 送信部
30A 受信部
32A リンクI/F
34A ディスクリプタ制御部
36A リード制御部
38A バッファ
40A CRC生成論理部
42A CRCレジスタ
44A BIDカウントレジスタ
46A BIDカウンタ
48A 比較論理部
50A 転送制御部
52A バッファ
54A ライト制御

Claims (3)

  1. データのミラーリングにより冗長化管理され、外部から入力されたデータを一時的に保持する複数ある一時記憶と、
    外部からデータが入力されると、入力されたデータについて該データの正当性を確認するためのチェックコードを生成し、生成したチェックコードを付加したデータを前記一時記憶部に入力する一時記憶制御部と、
    前記一時記憶制御部を介さずに、チェックコードが付加されたデータを前記一時記憶部から出力し、複数ある前記一時記憶部の間でデータのミラーリングを実行するミラーリング制御部とを備え、
    前記ミラーリング制御部は、
    ミラーリングを実行する場合に、ミラーリング元となる一時記憶部が保持するチェックコードが付加されたデータを該一時記憶部から出力する出力部と、
    前記出力部によって出力されたデータの内前記一時記憶制御部によって付加されたチェックコードを除くデータからチェックコードを生成する生成部と、
    前記生成部によって生成されたチェックコードと、前記一時記憶部から出力されたデータに含まれていたチェックコードとを比較し、ミラーリング元となる一時記憶部から出力されたデータの正当性を確認する確認部と、
    前記確認部によってデータの正当性が確認された場合にのみ、前記一時記憶部から出力されたデータのミラーリングを実行する実行部と
    を備えたことを特徴とする記憶制御装置。
  2. データのミラーリングにより冗長化管理され、外部から入力されたデータを一時的に保持する複数ある一時記憶と、
    前記一時記憶に保持されたデータを記憶する複数のディスクを含むディスク装置と、
    外部からデータが入力されると、入力されたデータについて該データの正当性を確認するためのチェックコードを生成し、生成したチェックコードを付加したデータを前記一時記憶部に入力する一時記憶制御部と、
    前記一時記憶制御部を介さずに、チェックコードが付加されたデータを前記一時記憶部から出力し、複数ある前記一時記憶部の間でデータのミラーリングを実行するミラーリング制御部と、
    前記ディスク装置に対するデータの入出力を制御するディスク装置制御を備え、
    前記ミラーリング制御部は、
    ミラーリングを実行する場合に、ミラーリング元となる一時記憶部が保持するチェックコードが付加されたデータを該一時記憶部から出力する出力部と、
    前記出力部によって出力されたデータの内前記一時記憶制御部によって付加されたチェックコードを除くデータからチェックコードを生成する生成部と、
    前記生成部によって生成されたチェックコードと、前記一時記憶部から出力されたデータに含まれていたチェックコードとを比較し、ミラーリング元となる一時記憶部から出力されたデータの正当性を確認する確認部と、
    前記確認部によってデータの正当性が確認された場合にのみ、前記一時記憶部から出力されたデータのミラーリングを実行する実行部と
    を備えたことを特徴とする外部記憶装置。
  3. 前記ディスク装置制御部は、前記一時記憶部に保持されたデータを前記ディスク装置に入力する際に、入力するデータの正当性を確認し、データの正当性が確認された場合には、正当性が確認されたデータを該ディスク装置に入力し、データの正当性が確認されなかった場合には、該一時記憶部のミラーリング先となる一時記憶部に保持されたデータを該ディスク装置に入力することを特徴とする請求項2に記載の外部記憶装置。
JP2004325161A 2004-11-09 2004-11-09 記憶制御装置および外部記憶装置 Expired - Fee Related JP4383321B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004325161A JP4383321B2 (ja) 2004-11-09 2004-11-09 記憶制御装置および外部記憶装置
US11/059,588 US7606971B2 (en) 2004-11-09 2005-02-17 Storage control apparatus and external storage apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004325161A JP4383321B2 (ja) 2004-11-09 2004-11-09 記憶制御装置および外部記憶装置

Publications (2)

Publication Number Publication Date
JP2006134241A JP2006134241A (ja) 2006-05-25
JP4383321B2 true JP4383321B2 (ja) 2009-12-16

Family

ID=36317693

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004325161A Expired - Fee Related JP4383321B2 (ja) 2004-11-09 2004-11-09 記憶制御装置および外部記憶装置

Country Status (2)

Country Link
US (1) US7606971B2 (ja)
JP (1) JP4383321B2 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8949312B2 (en) * 2006-05-25 2015-02-03 Red Hat, Inc. Updating clients from a server
US7725764B2 (en) * 2006-08-04 2010-05-25 Tsx Inc. Failover system and method
JP4358869B2 (ja) 2007-02-21 2009-11-04 富士通株式会社 ストレージ制御装置、ストレージ制御方法
JP5158074B2 (ja) * 2007-03-20 2013-03-06 富士通株式会社 ストレージ管理プログラム、ストレージ管理方法、ストレージ管理装置およびストレージシステム
JP5125722B2 (ja) * 2008-04-18 2013-01-23 日本電気株式会社 ディスクアレイシステム、ディスク装置、筐体間ミラーリング方法およびプログラム
US8732396B2 (en) * 2009-06-08 2014-05-20 Lsi Corporation Method and apparatus for protecting the integrity of cached data in a direct-attached storage (DAS) system
JP5454177B2 (ja) * 2010-02-01 2014-03-26 富士通株式会社 ディスクアレイ装置及びディスクアレイ装置制御方法
JP5685848B2 (ja) * 2010-07-27 2015-03-18 富士通株式会社 計算機、プログラム、及び計算機の制御方法
US8739012B2 (en) * 2011-06-15 2014-05-27 Texas Instruments Incorporated Co-hosted cyclical redundancy check calculation
JP2014032516A (ja) * 2012-08-02 2014-02-20 Fujitsu Ltd ストレージ装置、制御装置およびデータ保護方法
JP5966744B2 (ja) * 2012-08-06 2016-08-10 富士通株式会社 ストレージ装置、ストレージ装置の管理方法、ストレージ装置の管理プログラム及び記憶媒体
US10083075B1 (en) * 2015-04-30 2018-09-25 Amdocs Development Limited System, method, and computer program for automatic discard of corrupt memory segments
US10007432B2 (en) * 2015-10-13 2018-06-26 Dell Products, L.P. System and method for replacing storage devices
EP3352071B1 (en) * 2016-11-25 2019-08-28 Huawei Technologies Co., Ltd. Data check method and storage system
CN106844601B (zh) * 2017-01-16 2021-03-16 上海小海龟科技有限公司 一种数据存储方法及数据存储装置
JP7125602B2 (ja) * 2018-08-01 2022-08-25 富士通株式会社 データ処理装置および診断方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05224968A (ja) 1992-02-14 1993-09-03 Nec Corp データチェック方式
JPH10133962A (ja) 1996-11-01 1998-05-22 Fujitsu Ltd 外部記録装置を備えたデータ処理装置における転送データ検証方法および装置
US5909334A (en) * 1996-05-10 1999-06-01 Western Digital Corporation Verifying write operations in a magnetic disk drive
JP3686562B2 (ja) 1999-12-15 2005-08-24 株式会社日立製作所 ディスク制御装置
JP2001318766A (ja) 2000-05-08 2001-11-16 Nec Software Shikoku Ltd ディスクアレイ装置およびキャッシュメモリ制御方法
JP2002023966A (ja) 2000-06-30 2002-01-25 Toshiba Corp 転送データを冗長化したディスクシステム
JP3501763B2 (ja) 2001-02-19 2004-03-02 Necアクセステクニカ株式会社 データ送信装置、データ受信装置及びデータ送受信装置
US6839808B2 (en) * 2001-07-06 2005-01-04 Juniper Networks, Inc. Processing cluster having multiple compute engines and shared tier one caches
US7949792B2 (en) * 2004-02-27 2011-05-24 Cisco Technology, Inc. Encoding a TCP offload engine within FCP

Also Published As

Publication number Publication date
US7606971B2 (en) 2009-10-20
US20060101215A1 (en) 2006-05-11
JP2006134241A (ja) 2006-05-25

Similar Documents

Publication Publication Date Title
JP4383321B2 (ja) 記憶制御装置および外部記憶装置
US7036066B2 (en) Error detection using data block mapping
US7562264B2 (en) Fault tolerant soft error detection for storage subsystems
US9477550B2 (en) ECC bypass using low latency CE correction with retry select signal
KR100640037B1 (ko) 파일 제어 시스템 및 파일 제어 장치
US20020184556A1 (en) Data storage array employing block verification information to invoke initialization procedures
US20040199851A1 (en) Combined tag and data ECC for enhanced soft error recovery from cache tag errors
US20110047440A1 (en) Systems and Methods to Respond to Error Detection
US7155567B2 (en) Control method for data transfer device, data transfer circuit, and disk array device
US20060206680A1 (en) File control apparatus
JP4322870B2 (ja) Raid装置、raid制御方法、及びraid制御プログラム
JP3851093B2 (ja) データ転送方法及びデータ処理システム
JP2014032516A (ja) ストレージ装置、制御装置およびデータ保護方法
US7552249B2 (en) Direct memory access circuit and disk array device using same
US8868517B2 (en) Scatter gather list for data integrity
JP2005078596A (ja) データ転送装置の制御方法、データ転送装置、チャネル制御装置、及び記憶デバイス制御装置
US7133883B2 (en) General techniques for diagnosing data corruptions
EP4266178A1 (en) Error correction code validation
US20050188279A1 (en) Method, system, and program for data corruption detection and fault isolation
US10740179B2 (en) Memory and method for operating the memory
US20060076418A1 (en) Electronic memory component or memory module, and method of operating same
JP2008158724A (ja) ディスクアレイ装置のステージング方法
US20240134743A1 (en) Electronic device, electronic system, method for operating an electronic device, and method for operating an electronic system
US20240232007A9 (en) Electronic device, electronic system, method for operating an electronic device, and method for operating an electronic system
KR20070074322A (ko) 메모리 시스템에 있어서 메모리 미러링 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060222

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090210

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090413

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090918

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

Free format text: PAYMENT UNTIL: 20121002

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4383321

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20121002

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20131002

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees