JP5236072B2 - ストレージ装置、及びデータ保証方法 - Google Patents

ストレージ装置、及びデータ保証方法 Download PDF

Info

Publication number
JP5236072B2
JP5236072B2 JP2011514920A JP2011514920A JP5236072B2 JP 5236072 B2 JP5236072 B2 JP 5236072B2 JP 2011514920 A JP2011514920 A JP 2011514920A JP 2011514920 A JP2011514920 A JP 2011514920A JP 5236072 B2 JP5236072 B2 JP 5236072B2
Authority
JP
Japan
Prior art keywords
data
fixed
length
hard disk
disk drive
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
JP2011514920A
Other languages
English (en)
Other versions
JP2012504788A (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of JP2012504788A publication Critical patent/JP2012504788A/ja
Application granted granted Critical
Publication of JP5236072B2 publication Critical patent/JP5236072B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1009Cache, i.e. caches used in RAID system with parity

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Description

本発明は、ストレージ装置、及びデータ保証方法に関し、とくに不正なデータを確実に検出するための技術に関する。
ストレージ装置の信頼性を高める方法として、ハードディスクドライブ等の記憶装置に記憶されるデータにLRC(Longitudinal Redundancy Check)符号などの保証コードを付加する方法が知られている。例えば特開2005−84799号公報には、記憶装置が記憶するデータのブロックについての保証コードをブロック単位に計算することが記載されている。
ところで、メインフレーム等のホストコンピュータから送られてくる可変長形式のデータのI/O要求を受け付けるストレージ装置では、可変長形式データをハードディスクのセクタサイズに対応する固定長形式データに変換し、固定長形式データの夫々に保証コードを付加してハードディスクドライブに格納するようにしている。
しかしながら、個々の固定長形式データに保証コードを付加する方法では、例えば物理的な障害等により上記固定長データとこれに付加した保証コードの双方について更新がされずに書き損じが生じた場合に、これを検出することができないという問題があった。
本発明は、このような問題に鑑みてなされたもので、不正なデータを確実に検出することが可能なストレージ装置、及びデータ保証方法を提供することを目的とする。
上記のおよび他の課題を解決するために、本発明の一態様によるストレージ装置は、
ホストコンピュータと通信するチャネル制御部、
ハードディスクドライブを制御するディスク制御部、
前記チャネル制御部及び前記ディスク制御部がアクセス可能なキャッシュメモリ
を備え、
前記チャネル制御部は、前記ホストコンピュータからI/O要求を受信すると、前記I/O要求によって前記ハードディスクドライブに書き込まれるデータもしくは前記ハードディスクドライブから読み出されるデータを、前記キャッシュメモリを介して前記ディスク制御部との間で送信又は受信し、
前記チャネル制御部は、前記I/O要求とともに前記ホストコンピュータとの間で送信又は受信する可変長形式データについてのデータ転送を行う可変長DMA(Direct Memory Access)、前記キャッシュメモリとの間で固定長形式データのデータ転送を行う固定長DMA、及び前記可変長DMAと前記固定長DMAとの間に介在するバッファを備え、
前記固定長DMAは、前記キャッシュメモリへの前記固定長形式データの前記データ転送に際し、前記可変長形式データを前記キャッシュメモリにおけるデータの取り扱い単位に対応したデータサイズの複数の前記固定長形式データに分割し、当該分割により生成される前記固定長形式データの末尾の前記固定長形式データに、前記可変長形式データの全体に基づいて生成した第1の保証コード(TFLRC)を付加することとする。
このように本発明では、固定長DMAが、可変長形式データに基づく固定長形式データをキャッシュメモリに格納する際、そのうちの末尾の固定長形式データに、可変長形式データの全体に基づいて生成した第1の保証コードを付加する。これによれば、例えば物理的な障害等により上記固定長データとこれに付加した保証コードの双方について更新がされずに書き損じが生じた場合に、第1の保証コードを用いてそのようなデータの不正を検出することができる。尚、この第1の保証コードが付加されることにより、チャネル制御部、キャッシュメモリ、ディスク制御部、ハードディスクドライブ等において、データの不正を検出することができる。
本発明の他の一態様によるストレージ装置は、
前記チャネル制御部、前記ディスク制御部、及び前記キャッシュメモリの間のデータ転送に関する処理を行うマイクロプロセッサを備え、
前記マイクロプロセッサは、前記可変長形式データを前記キャッシュメモリに転送するための転送パラメータを、前記可変長DMA及び前記固定長DMAの夫々に設定し、
前記固定長DMAは、ある前記可変長形式データの前記キャッシュメモリへの前記データ転送が前記転送パラメータを複数回設定することにより行われる場合に、各前記転送パラメータについての前記データ転送に際して生成される前記第1の保証コードの途中計算値を記憶することにより、各前記転送パラメータに対応する前記データ転送で生成される前記途中計算値を引き継いで前記可変長形式データの全体に基づく前記第1の保証コードを生成することとする。
本発明によれば、可変長形式データのキャッシュメモリへのデータ転送が転送パラメータを複数回設定することにより行われる場合でも、可変長形式データの全体に基づく第1の保証コードを生成することができる。
本発明の他の一態様によるストレージ装置は、
前記固定長DMAに設定される前記転送パラメータにCCW(Channel Command Word)チェインごとに付与される識別子であるチェインIDが設定され、
前記固定長DMAは、前記チェインIDごとに前記途中計算値を記憶することにより、各前記転送パラメータに対応する前記データ転送で生成される前記途中計算値を引き継ぎ、前記チェインIDごとに前記可変長形式データの全体に基づく前記第1の保証コードを生成することとする。
本発明によれば、CCWチェインごとに可変長形式データの全体に基づく第1の保証コードを正しく生成することができる。
本発明の他の一態様によるストレージ装置は、
前記キャッシュメモリにおけるデータの取り扱い単位に対応したデータサイズは、FC(Fibre Channel)タイプのハードディスクドライブのセクタサイズに対応したデータサイズであり、
前記固定長DMAは、前記固定長形式データの夫々について、前記固定長形式データの夫々に基づく第2の保証コードを生成し、
前記ディスク制御部は、
前記ハードディスクドライブがFCタイプのハードディスクドライブである場合には、前記ハードディスクドライブの各セクタに前記第2の保証コードを付加するとともに前記末尾の固定長形式データの書き込み先のセクタに前記第1の保証コードを付加したデータを前記ストレージ装置の前記ハードディスクドライブに格納し、
前記ハードディスクドライブがSATA(Serial Advanced Technology Attachment)タイプのハードディスクドライブである場合には、前記ハードディスクドライブの各セクタに前記第2の保証コードは付加せず、前記末尾の固定長形式データの書き込み先のセクタに前記第1の保証コードを付加したデータを前記ストレージ装置の前記ハードディスクドライブに格納することとする。
例えばキャッシュメモリにおけるデータの取り扱い単位に対応したデータサイズが、FCタイプのハードディスクドライブのセクタサイズに対応したデータサイズであるが、実際にデータが書き込まれるハードディスクドライブがSATAタイプのハードディスクドライブである場合、各セクタに書き込むデータに第1の保証コード(TFLRC)と第2の保証コード(SLRC)の双方を書き込んでしまうと、セクタごとに保証コードの格納位置が異なる等、セクタごとのデータフォーマットが異なることとなり、チャネル制御部、ディスク制御部等で実行するソフトウエアの構成が複雑化し、ストレージ装置の保守性が低下する。
しかしながら本発明によれば、ハードディスクドライブがSATAタイプのハードディスクドライブである場合は第2の保証コードを付加せずに第1の保証コードのみを付加してセクタごとのデータフォーマットを一致させるので、保守性を低下させることなく、ハードディスクドライブに格納するデータに第1の保証コードを付加することができる。
本発明の他の一態様によるストレージ装置は、
前記可変長形式データがCKD(Count Key Data architecture)形式のデータであり、
前記固定長DMAは、前記可変長形式データのD部の末尾のアドレスが前記固定長形式データの末尾のアドレスに一致する場合、前記第1の保証コードを格納するための前記固定長形式データを新たに生成することとする。
本発明によれば、可変長形式データのD部の末尾のアドレスが固定長形式データのデータサイズの末尾のアドレスに一致する場合、即ちD部の末尾のデータが固定長形式データのデータサイズに丁度収まるような場合でも、固定長DMAが自動的に第1の保証コードを格納するための固定長形式データを新たに生成するので、上記のような場合でもデータに確実に第1の保証コードを付加することができる。
その他本願が開示する課題やその解決方法については、発明の実施形態の欄及び図面により明らかにされる。
本発明によれば、物理的な障害等により上記固定長データとこれに付加した保証コードの双方について更新がされずに書き損じが生じた場合であっても、そのような不正なデータを確実に検出することができる。
ストレージ装置10の構成を示す図である。 CHA11の主な構成要素を示す図である。 I/O要求に応じてCHA11、MP13、及びCM14間で行われる処理を説明するフローチャートである。 CKD形式のデータの1レコードの構成を示す図である。 可変長DMA1121に対して設定される転送パラメータの一例を示す図である。る。 固定長DMA1123に対して設定される転送パラメータの一例を示す図である。 第1の方式(データ保証方式)を説明する図である。 第2の方式(データ保証方式)を説明する図である。 可変長形式データ711が単一のレコードで構成される場合における第1の保証コード(TFLRC)の生成方法を説明する図である。 可変長形式データ711のD部413の末尾のアドレスが固定長形式データ712の末尾のアドレスに一致する場合における第1の保証コード(TFLRC)の生成方法を説明する図である。 所定の条件を満たした場合に、第1の保証コード(TFLRC)を付加する方法を説明する図である。 固定長DMA1123において、転送されるデータに第1の保証コード(TFLRC)が付加される様子を説明するフローチャートである。 固定長DMA1123において、転送されるデータに第1の保証コード(TFLRC)が付加される様子を説明するフローチャートである。 チェインIDを用いて行われる、転送パラメータ間でのLRC途中演算値の引き継ぎの様子を説明するフローチャートである。 チェインIDを用いて行われる、転送パラメータ間でのLRC途中演算値の引き継ぎの様子を説明するフローチャートである。 LRC途中計算値をMP13で管理した場合のLRC途中演算値の引き継ぎの様子を説明する図である。 FCタイプのハードディスクドライブ171に第1の方式で保証コードを付加して格納した場合のデータの格納形態(データフォーマット)を示す図である。 FCタイプのハードディスクドライブ171に第2の方式で保証コードを付加して格納した場合のデータの格納形態(データフォーマット)を示す図である。 SATAタイプのハードディスクドライブ171に第1の方式で保証コードを付加して格納した場合のデータの格納形態(データフォーマット)を示す図である。 SATAタイプのハードディスクドライブ171に、第2の保証コード(SLRC)を除去して第2の方式で保証コードを付加して格納した場合のデータの格納形態(データフォーマット)を示す図である。 図14Dにおいて各セクタにSLRCを付加する場合の模式図である。 図14DにおいてSLRCを付加しない場合の模式図である。
以下、実施形態について説明する。図1に実施形態として説明するストレージ装置10の構成を示している。同図に示すように、ストレージ装置10は、一つ以上のチャネルアダプタ(以下、CHA11(CHA: CHannel Adaptor)と記載する。)、一つ以上のディスクアダプタ(以下、DKA12(DKA: DisK Adaptor)と記載する。)、一つ以上の制御プロセッサ(以下、MP13(MP: Micro Processor)と記載する。)、キャッシュメモリ(以下、CM14(CM: Cache Memory)と記載する。)、共有メモリ(以下、SM15(SM: Shared Memory)と記載する。)、スイッチ16、及び記憶装置17を備えている。
CHA11は、ホストコンピュータ2から送られてくるI/O要求(データ書き込み要求、データ読み出し要求等)を受け付け、受け付けたI/O要求に応じてDKA12にI/Oコマンド(データ読み出しコマンド、データ書き込みコマンド)を送信する。I/Oコマンドの処理に際して行われるCHA11とDKA12の間のデータ(記憶装置17から読み出したデータ、記憶装置17に書き込むデータ)の引き渡しは、CM14を介して行われる。CHA11は、ホストコンピュータ2から受け付けたI/O要求に対応する処理を実行すると、その応答(読み出したデータ、読み出し完了報告、書き込み完了報告等)をホストコンピュータ2に送信する。
ホストコンピュータ2は、ストレージ装置10に対し、可変長形式データ(例えばCKD(Count Key Data architecture)形式)のI/O要求を送信する、メインフレーム(Mainframe)等の情報処理装置(コンピュータ)である。ホストコンピュータ2とストレージ装置10とは、例えば専用線、LAN(Local Area Network)、SAN(Storage Area Network)、インターネット、公衆通信網等を介して接続されている。ホストコンピュータ2とストレージ装置10との間の通信は、FICON(Fibre Connection)(登録商標)、ESCON(Enterprise System Connection) (登録商標)、ACONARC(Advanced Connection Architecture)(登録商標)、FIBARC(Fibre Connection Architecture)(登録商標)等のプロトコルに従って行われる。
DKA12は、CHA11から送られてくるI/Oコマンドを受信すると、記憶装置17からのデータの読み出し又は記憶装置17へのデータの書き込みを行う。またDKA12は、ステージング(記憶装置17からのデータの読み出しとCM14への格納)やデステージング(CM14に格納されているデータの記憶装置17への書き出し)を行う。
MP13は、例えばCPU、MPU、DMA(Direct Memory Access)を用いて構成される。MP13は、CHA11、DKA12、及びCM14とは独立したハードウエアとして構成され、CHA11、DKA12、及びCM14の間で行われるデータ転送に関する処理を実行し、上記データ転送の高速化や負荷分散を図る。
CM14は、例えば、高速アクセスが可能なRAM(Random Access Memory)を用いて構成される。CM14には、例えば記憶装置17に書き込まれるデータ(以下、書き込みデータと記載する。)や、記憶装置17から読み出されたデータ(以下、読み出しデータと記載する。)が格納される。SM15には、例えばストレージ装置10の制御に用いられる情報が格納される。
記憶装置17は、ハードディスクドライブ171(HDD)を用いて構成される。ハードディスクドライブ171は、例えばRAID(Redundant Arrays of Inexpensive (or Independent) Disks)の制御方式(例えば0,1,5,6等のRAIDレベル)に従って制御される。記憶装置17は、例えばRAIDによって提供される記憶領域(例えばRAIDグループの記憶領域)を用いて構成される論理装置LDEV(Logical Device))を単位とする記憶領域を提供する。尚、記憶装置17は、半導体記憶装置(SSD)等の他の記憶媒体を用いて構成してもよい。
スイッチ16は、例えば高速クロスバースイッチ(Cross Bar Switch)である。スイッチ16を介して行われる通信は、ファイバーチャネル、iSCSI(internet Small Computer System Interface)、TCP/IP等のプロトコルに従って行われる。
図2にCHA11の主な構成要素を示している。CHA11は、一つ以上のプロトコル制御部111、DMA112、及び中間バッファ113を備えている。プロトコル制御部111及びDMA112は、例えばカスタマイズされたLSI(Large Scale Integration)を用いて構成される。中間バッファ113は、例えばDRAM(Dynamic Random Access Memory)を用いて構成される。
プロトコル制御部111は、ホストコンピュータ2とストレージ装置10との間で送受信されるデータについて、ホストコンピュータ2とストレージ装置10との間の通信に用いられるプロトコル(FICON、ESCON等)に従ったデータフォーマットと、ストレージ装置10の内部で用いられるデータフォーマットの変換を行う。
DMA112は、CHA11とMP13との間、及びCHA11とCM14との間でデータ転送を行う。図2に示すように、DMA112は、可変長DMA1121、DMA間バッファ1122、固定長DMA1123、及びTFLRCバッファ1124を備えている。可変長DMA1121は、ホストコンピュータ2とDMA間バッファ1122との間の可変長形式データの転送を行う。固定長DMA1123は、DMA間バッファ1122と、MP13又はCM14との間の固定長形式データの転送を行う。DMA間バッファ1122には、可変長DMA1121と固定長DMA1123との間で授受されるデータが格納される。TFLRCバッファ1124には、後述する第1の保証コード(TFLRC)の途中計算値が格納される。
中間バッファ113には、プロトコル制御部111と可変長DMA1121との間で授受されるデータが格納される。中間バッファ113は、例えばDRAMを用いて構成される。
次に、ホストコンピュータ2から送られてくるI/O要求に応じてCHA11、MP13、及びCM14間で行われる処理について、図3とともに説明する。図3はホストコンピュータ2から送られてくる可変長形式データ(CKD形式)についてのI/O要求(データ書き込み要求)に応じて、CHA11が可変長形式データを固定長形式データに変換し、これをCM14に転送する場合に、CHA11、MP13、及びCM14間で行われる処理を説明するフローチャートである。尚、以下の説明において、符号の前に付した「S」の文字はステップを意味する。
同図に示すように、上記転送に際しては、まずMP13が、DMA112に、CKD形式のデータのうちのC部をCM14に格納するための転送パラメータを設定する(S311)。
図4にCKD形式のデータの1レコードの構成を示している。同図に示すように、CKD形式のデータの1レコードには、C部411(Count部)、K部412(Key部)、及びD部413(Data部)が含まれる。このうちC部411には、転送されるデータのフォーマット情報が設定される。K部412には、ホストコンピュータ2において動作するアプリケーションに関する情報が設定される。D部413には、データ(記憶装置17から読み出したデータ、記憶装置17に書き込むデータ)が設定される。
MP13が転送パラメータを設定すると、DMA112は中間バッファ113からC部411を読み出し、読み出したC部411をMP13に転送する(S312)。MP13は、DMA112からC部411を受信すると、これをCM14に転送する(S313)。以上によりCM14にC部411が格納される。
次にMP13は、DMA112に対し、CKD形式のデータのうちK部412及びD部413をCM14に格納するための転送パラメータを設定する(S314)。転送パラメータが設定されると、DMA112は、中間バッファ113からK部412及びD部413を読み出し、読み出したK部412及びD部413をMP13に転送する(S315)。MP13は、DMA112からK部412及びD部413を受信すると、これらをCM14に転送する。以上によりCM14にK部412及びD部413が格納される。
DMA112は、C部411、K部412、及びD部413の全ての転送が完了すると、転送結果を示すステータス情報をMP13に送信する(S316)。
ところで、図3のS311及びS314における転送パラメータの設定は、MP13からDMA112の構成要素である可変長DMA1121と固定長DMA1123の夫々に対して行われる。図5に可変長DMA1121に対して設定される転送パラメータの一例を、また図6に固定長DMA1123に対して設定される転送パラメータの一例を示す。
<データ保証方式>
ストレージ装置10では、記憶装置17やCM14に格納されるデータについて、前述した固定長DMA1123、スイッチ16、CM14、DKA12、及び記憶装置17において誤り訂正符号(LRC等)を用いたデータ保証を行う。
ストレージ装置10が行うデータ保証の方式には、ハードディスクドライブ171のセクタサイズに対応したデータサイズの固定長形式データごとに第2の保証コード(SLRC)をデータに付加する第1の方式、及びCKD形式で転送されるデータの全体(C部411、K部412、及びD部413の組み合わせからなるレコードの一つ又は複数で構成されるデータの全体)についての第1の保証コード(TFLRC)をデータに付加する第2の方式がある。
図7Aは第1の方式を説明する図である。第1の方式では、可変長形式データ711を複数の固定長形式データ712に分割し、各固定長形式データ712に第2の保証コード(SLRC)を付加する。また分割により生成された末尾の固定長形式データ712に、当該末尾の固定長形式データ712におけるデータ(可変長形式データ711の端数データ)に基づく保証コード(FLRC)と、当該末尾のデータ、保証コード(FLRC)、及び固定長形式データ712のデータサイズに合わせるための埋め合わせデータ(例えば0等のPADデータ(PAD: PADding))の全体に基づいて生成した第2の保証コード(SLRC)とが付加される。
図7Bは、第2の方式を説明する図である。同図に示すように、第2の方式では、各固定長形式データ712に第2の保証コード(SLRC)を付加し、また末尾の固定長形式データ712に可変長形式データ711の全体に基づいて生成した第1の保証コード(TFLRC)を付加する。第2の方式によれば、例えば物理的な障害等により固定長形式データ712とこれに付加した第2の保証コード(SLRC)の双方について更新がされずに書き損じが生じた場合であっても、第1の保証コード(TFLRC)を用いてデータの不正を検出することができる。
図8Aは、ホストコンピュータ2から送られてくる可変長形式データ711が単一のレコードで構成される場合における第1の保証コード(TFLRC)の生成方法を説明する図である。このように可変長形式データ711が単一のレコードで構成される場合には、図6に示した固定長DMA1123に設定される転送パラメータの「TF」ビットが1(TFLRCモード有効)であり、「LF」のビットが1であることを条件に、末尾の固定長形式データ712に第1の保証コード(TFLRC)が付加される。
図8Bは、可変長形式データ711のD部413の末尾のアドレスが固定長形式データ712の末尾のアドレスに一致する場合における第1の保証コード(TFLRC)の生成方法を説明する図である。この場合は第1の保証コード(TFLRC)を格納するための固定長形式データ712を新たに生成する。
尚、ホストコンピュータ2から送られてくる可変長形式データ711が、複数の連続するレコードからなる場合には、末尾のレコード以外のレコードは固定長DMA1123に設定される転送パラメータの「LF」ビットがオンに設定されないため、レコード単位で第1の保証コード(TFLRC)を付加することができない。このため、固定長DMA1123は、図8Cに示すように、(1)「LF」のビットが1である、(2)転送するレコードの長さがセクタサイズ未満である、(3)データの切れ目がちょうどセクタサイズに一致する、といった所定の条件を満たした場合に、第1の保証コード(TFLRC)を付加する。
図9は、MP13からCM14へのデータ転送に際し、固定長DMA1123において、転送されるデータに第1の保証コード(TFLRC)が付加される様子を説明するフローチャートである。以下、同図とともに説明する。
図3に示したように、MP13からCM14にデータ転送する際は、まずMP13が、可変長DMA1121及び固定長DMA1123に転送パラメータを設定する(S911)。
転送パラメータが設定されると、可変長DMA1121は、設定された転送パラメータに従って中間バッファ113からデータを読み出し、読み出したデータをDMA間バッファ1122に転送する(S912)。固定長DMA1123は、設定された転送パラメータに従い、DMA間バッファ1122に格納されているデータを読み出し、読み出したデータを固定長形式データ712に変換してCM14に転送する(S913)。このとき、固定長DMA1123は転送するデータに基づきLRCを計算し、計算した値を途中計算値として保持(記憶)する。
次にMP13は、転送パラメータの未処理分を、可変長DMA1121及び固定長DMA1123に設定する(S914)。転送パラメータが設定されると、可変長DMA1121は、転送パラメータに従って中間バッファ113からデータを読み出し、DMA間バッファ1122に転送する(S915)。固定長DMA1123は、転送パラメータに従ってDMA間バッファ1122に格納されているデータを読み出し、読み出したデータを固定長形式データ712に変換してCM14に転送する(S916)。そしてこのとき、固定長DMA1123は、S913で保持(記憶)しておいたLRCの途中計算値を用いてLRCを計算する。もしS916のデータ転送が末尾の固定長形式データ712の転送であるならば、S916で計算したLRCを第1の保証コード(TFLRC)として、CM14に転送する固定長形式データ712に付加する(S917)。
転送パラメータに対応するデータ転送が終了すると、可変長DMA1121及び固定長DMA1123は、転送結果を記載したステータス情報をMP13に送信する(S918)。
図10は、MP13からCM14に対してデータ転送が多重に行われる場合に、固定長DMA1123において、転送されるデータに第1の保証コード(TFLRC)が付加される様子を説明するフローチャートである。以下、同図とともに説明する。
前述と同様、まずMP13が、可変長DMA1121及び固定長DMA1123に、転送パラメータAを設定する(S1011)。転送パラメータAが設定されると、可変長DMA1121は、設定された転送パラメータAに従って中間バッファ113からデータを読み出し、読み出したデータをDMA間バッファ1122に転送する(S1012)。固定長DMA1123は、設定された転送パラメータAに従い、DMA間バッファ1122に格納されているデータを読み出し、読み出したデータを固定長形式データ712に変換してCM14に転送する(S1013)。そしてこのとき、固定長DMA1123は、転送パラメータAに従いCM14に転送されるデータに基づきLRCを計算し、計算した値を途中計算値として保持(記憶)する。
次にMP13が、可変長DMA1121及び固定長DMA1123に、転送パラメータBを設定する(S1014)。転送パラメータBが設定されると、可変長DMA1121は、設定された転送パラメータBに従って中間バッファ113からデータを読み出し、読み出したデータをDMA間バッファ1122に転送する(S1015)。そしてこのとき、固定長DMA1123は、S1013で計算した、転送パラメータAで転送されるデータについてのLRCをTFLRCバッファ1124に退避する(S1016)。
次に固定長DMA1123は、設定された転送パラメータBに従いDMA間バッファ1122に格納されているデータを読み出し、読み出したデータを固定長形式データ712に変換してCM14に転送する(S1017)。このとき、固定長DMA1123は、転送パラメータBに従いCM14に転送されるデータに基づきLRCを計算し、計算した値を途中計算値として保持(記憶)する。
次にMP13は、転送パラメータAの未処理分を、可変長DMA1121及び固定長DMA1123に設定する(S1018)。可変長DMA1121は、転送パラメータAに従い中間バッファ113からデータを読み出し、読み出したデータをDMA間バッファ1122に転送する(S1019)。そしてこのとき、固定長DMA1123は、S1017で計算した、転送パラメータBで転送されるデータについてのLRCをTFLRCバッファ1124に退避する(S1020)。また固定長DMA1123は、S1016においてTFLRCバッファ1124に退避しておいた転送パラメータAについてのLRCを読み出す(S1021)。
次に固定長DMA1123は、S1018で設定された転送パラメータAに従いDMA間バッファ1122に格納されているデータを読み出し、読み出したデータを固定長形式データ712に変換してCM14に転送する(S1022)。この際、固定長DMA1123は、S1021で読み出したLRCの途中計算値を用いてLRCを計算する。そしてS1022のデータ転送が末尾の固定長形式データ712の転送であるならば、S1022で計算したLRCを第1の保証コード(TFLRC)として、CM14に転送する固定長形式データ712に付加する(S1023)。
尚、転送パラメータBについての第1の保証コード(TFLRC)の付加も、転送パラメータAの場合と同様に行われる。各転送パラメータに対応するデータ転送が終了すると、可変長DMA1121及び固定長DMA1123は、転送結果を記載したステータス情報をMP13に送信する(S1024)。
ところで、図9及び図10における転送パラメータ間でのLRCの途中演算値の引き継ぎは、CCWのチェインごとに付与される識別子(以下、チェインIDと称する。)を用いて行われる。図11は、データ転送に際し、チェインIDを用いて行われる、転送パラメータ間でのLRCの途中演算値の引き継ぎの様子を説明するフローチャートである。以下、同図とともに説明する。
図11に示すように、MP13は、DMA112からのステータス情報の返信を待つことなくDMA112に転送パラメータを設定することができる(S1101〜S1103)。尚、同図は、チェインIDが共通の転送パラメータ(チェインID=0)をDMA112に対して3回設定している場合である。
同図に示すように、第1の転送パラメータの設定(パラメータ設定1(S1101))における固定長DMA1123に設定される転送パラメータの「FF」ビットは1、「LF」ビットは0である。また第2の転送パラメータの設定(パラメータ設定2(S1102))における固定長DMA1123に設定される転送パラメータの「FF」ビットは0、「LF」ビットは0である。第3の転送パラメータの設定(パラメータ設定3(S1103))における固定長DMA1123に設定される転送パラメータの「FF」ビットは0、「LF」ビットは1である。
パラメータ設定1(S1101)が行われると、DMA112がデータ転送1を開始する(S1104)。このデータ転送1はS1105で完了するが、パラメータ設定2(S1102)が、データ転送1の実行中に行われている。データ転送1が完了すると、DMA112は、この時点でのLRCの途中計算値を保持(記憶)する(S1105)。
続いてDMA112は、パラメータ設定2(S1102)についてのデータ転送2を開始する(S1106)。このときDMA112は、パラメータ設定2と共通のチェインIDを有している、パラメータ設定1(S1101)のデータ転送1において保持したLRCの途中計算値を引き継ぐ(S1106)。尚、同図に示すように、データ転送2の実行中にパラメータ設定3(S1103)が行われる。DMA112は、データ転送2が完了すると(S1107)、この時点でのLRCの途中計算値を保持(記憶)する。
次にDMA112は、パラメータ設定3(S1103)についてのデータ転送3を開始する(S1108)。このとき、DMA112は、チェインIDがパラメータ設定3と共通するパラメータ設定2のデータ転送2で保持したLRCの途中計算値を引き継ぐ。そしてデータ転送3が完了すると、DMA112は、末尾の固定長形式データ712に第1の保証コード(TFLRC)を付加し、ステータス情報をMP13に送信し(S1109)、MP13がこれを受信する。
図12は、データ転送に際し、チェインIDを用いて行われる、転送パラメータ間でのLRCの途中演算値の引き継ぎの様子を説明するフローチャートである。図11はチェインIDが単数の場合であったが、図12ではチェインIDが複数の場合である。以下、図12とともに説明する。
図11の場合と同じく、MP13はDMA112からのステータス情報の返信を待つことなくDMA112に転送パラメータを設定することが可能である(S1201〜S1205)。
同図に示すように、第1の転送パラメータの設定(パラメータ設定1(S1201))における固定長DMA1123に設定される転送パラメータの「FF」ビットは1、「LF」ビットは0であり、チェインIDは0である。また第2の転送パラメータの設定(パラメータ設定2(S1202))における固定長DMA1123に設定される転送パラメータの「FF」ビットは0、「LF」ビットは0であり、チェインIDは0である。第3の転送パラメータの設定(パラメータ設定3(S1203))における固定長DMA1123に設定される転送パラメータの「FF」ビットは1、「LF」ビットは0であり、チェインIDは1である。第4の転送パラメータの設定(パラメータ設定4(S1204))における固定長DMA1123に設定される転送パラメータの「FF」ビットは0、「LF」ビットは1であり、チェインIDは0である。第5の転送パラメータの設定(パラメータ設定5(S1205))における固定長DMA1123に設定される転送パラメータの「FF」ビットは0、「LF」ビットは1であり、チェインIDは1である。
このように、同図に示す事例では、パラメータ設定1(S1201)、パラメータ設定2(S1202)、及びパラメータ設定4(S1204)のチェインIDが共通しており、またパラメータ設定3(S1203)、パラメータ設定5(S1205)のチェインIDが共通している。
パラメータ設定1(S1201)が行われると、DMA112がデータ転送1を開始する(S1211)。このデータ転送1はS1212で完了するが、パラメータ設定2(S1202)が、データ転送1の実行中に行われている。データ転送1が完了すると、DMA112は、この時点でのLRCの途中計算値を保持(記憶)する(S1212)。
続いてDMA112は、パラメータ設定2(S1202)についてのデータ転送2を開始する(S1213)。このとき、DMA112は、共通のチェインIDを有している、パラメータ設定1(S1201)のデータ転送1において保持したLRCの途中計算値を引き継ぐ(S1213)。
同図に示すように、データ転送2の実行中にパラメータ設定3(S1203)が行われる。DMA112は、データ転送2が完了すると(S1213)、この時点でのLRCの途中計算値を保持(記憶)する。またこのとき、DMA112は、データ転送2のLRC途中計算値を、チェインIDが0のLRC途中計算値としてTFLRCバッファ1124に退避する(S1214)。
次にDMA112は、パラメータ設定3(S1203)についてのデータ転送3を開始する(S1215)。そしてデータ転送3が完了すると、DMA112は、この時点でのLRCの途中計算値を保持(記憶)する(S1216)。またこのとき、DMA112は、データ転送3のLRC途中計算値を、チェインIDが1のLRC途中計算値としてTFLRCバッファ1124に退避する(S1217)。
続いてDMA112は、パラメータ設定4(S1204)についてのデータ転送4を開始する(S1218)。このとき、DMA112は、S1214で退避したチェインIDが0のLRC途中計算値をTFLRCバッファ1124から読み出す(S1219)。そしてDMA112は、データ転送4におけるLRCの計算を、S1219で読み出したLRCの途中計算値を用いて行い(途中計算値の引き継ぎ)、データ転送4が完了すると(S1220)、データ転送4のLRC途中計算値を、チェインIDが0のLRC途中計算値としてTFLRCバッファ1124に退避する(S1221)。
次にDMA112は、パラメータ設定5(S1205)を受けてデータ転送5を開始する(S1222)。このとき、DMA112は、S1217で退避したチェインIDが1のLRC途中計算値をTFLRCバッファ1124から読み出す(S1223)。そしてDMA112は、データ転送5におけるLRCの計算を、S1223で読み出したLRCの途中計算値を用いて行い(途中計算値の引き継ぎ)、データ転送5が完了すると(S1224)、データ転送5のLRC途中計算値を、チェインIDが1のLRC途中計算値としてTFLRCバッファ1124に退避する(S1225)。
尚、以上のようにしてデータ転送が全て完了した後はDMA112が末尾の固定長形式データ712に第1の保証コード(TFLRC)を付加する。そしてDMA112ステータス情報をMP13に送信し、MP13がこれを受信することにより一連の処理が終了する。
図11又は図12に示したように、本実施形態のストレージ装置10では、設定される各転送パラメータに対応するデータ転送におけるLRC途中計算値を、MP13ではなくDMA112で管理するようにしている。LRC途中計算値は、例えば図13に示すように、MP13で管理する構成とすることもできるが、この場合はDMA112でデータ転送が行われる度に、DMA112からMP13、又はMP13からDMA112に随時LRC途中計算値を送信する必要があり、LRC途中計算値をDMA112で管理する場合に比べて性能が低下する。
またLRC途中計算値をDMA112で管理する場合には、前述したようにMP13はDMA112からのステータス情報の返信を待つことなくDMA112に転送パラメータを設定することができ、DMA112は前のデータ転送が終了した後、直ちに後続のデータ転送を開始することができ、このことによってもストレージ装置10処理性能の向上が図られる。
図14Aは、CM14におけるデータの取り扱い単位が520Byteであるストレージ装置10において、C部411が8Byteで構成されD部413が1024Byteで構成されるデータを、FC(Fibre Channel)タイプのハードディスクドライブ171(520Byte/セクタ)に前述した第1の方式で保証コードを付加して格納した場合のデータの格納形態(データフォーマット)を示す図である。
一方、図14Bは、上記と同じ構成からなるデータを、FCタイプのハードディスクドライブ171に前述した第2の方式で保証コードを付加して格納した場合のデータの格納形態を示す図である。
両者を比較すると、D部413の保証コードがFLRCであるかTFLRCであるかの違いはあるが、データの格納位置(データフォーマット)は基本的に一致している。このため、例えば第1の方式を採用しているストレージ装置10に第2の方式を導入する場合には、CHA11やDKA12、MP13等で実行されるソフトウエアを殆ど変更する必要がない。
図14Cは、CM14におけるデータの取り扱い単位が520Byte(FCタイプのハードディスクドライブを想定した管理形態)であるストレージ装置10において、上記と同じ構成からなるデータを、SATA(Serial Advanced Technology Attachment)タイプのハードディスクドライブ171(512Byte/セクタ)に前述した第1の方式で保証コードを付加して格納した場合のデータの格納形態を示す図である。
同図に示すように、SATAドライブのセクタサイズは512Byteであって、CM14におけるデータの取り扱い単位(520Byte)とデータサイズが異なるため、セクタごとに第2の保証コード(SLRC)の位置やデータの開始位置が異なり、データフォーマットがこのように複雑になる。
図14Dは、CM14におけるデータの取り扱い単位が520Byteであるストレージ装置10において、上記と同じ構成からなるデータを、SATAタイプのハードディスクドライブ171(512Byte/セクタ)に前述した第2の方式で保証コードを付加して格納した場合のデータの格納形態を示す図である。同図に示すように、この例では第2の保証コード(SLRC)を除去している。
このように、SATAドライブの場合は8Byte構成の第2の保証コード(SLRC)を除去することで、CM14の取り扱い単位のデータフォーマットとSATAドライブの各セクタのデータフォーマットを一致させることができる。尚、この場合は第2の保証コード(SLRC)による保証機能が損なわれるが、旧データの残存やデータの破損の検出機能は、第1の保証コード(TFLRC)によって保証される。また第2の保証コード(SLRC)には位置情報が含まれているが、同等の情報がC部411にも含まれているため、第2の保証コード(SLRC)を除去してもハードディスクドライブ171のI/O機能に支障を生じることもない。
尚、図14Dのデータフォーマットを採用する場合には、セクタサイズに比べてデータサイズの小さなデータをセクタに格納する場合に保証コードの生成負荷が少なくなる。即ち、図15Aに示すように、各セクタに第2の保証コード(SLRC)を付加する場合(第2の保証コード(SLRC)を除去しない場合)には、1セクタ内の一部のデータが書き換えられると、当該セクタの全体に基づき当該セクタの第2の保証コード(SLRC)を生成する必要があるが、図14Dのデータフォーマットを採用する場合には、図15Bに示すように、書き換えられる部分のみを参照して保証コード(同図ではFLRC)を生成すればよい。
以上、本実施形態について説明したが、上記実施形態は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物も含まれる。

Claims (10)

  1. ホストコンピュータと通信するチャネル制御部、
    ハードディスクドライブを制御するディスク制御部、
    前記チャネル制御部及び前記ディスク制御部がアクセス可能なキャッシュメモリ
    を備え、
    前記チャネル制御部は、前記ホストコンピュータからI/O要求を受信すると、前記I/O要求によって前記ハードディスクドライブに書き込まれるデータもしくは前記ハードディスクドライブから読み出されるデータを、前記キャッシュメモリを介して前記ディスク制御部との間で送信又は受信し、
    前記チャネル制御部は、前記I/O要求とともに前記ホストコンピュータとの間で送信又は受信する可変長形式データについてのデータ転送を行う可変長DMA(Direct Memory Access)、前記キャッシュメモリとの間で固定長形式データのデータ転送を行う固定長DMA、及び前記可変長DMAと前記固定長DMAとの間に介在するバッファを備え、
    前記固定長DMAは、前記キャッシュメモリへの前記固定長形式データの前記データ転送に際し、前記可変長形式データを前記キャッシュメモリにおけるデータの取り扱い単位に対応したデータサイズの複数の前記固定長形式データに分割し、当該分割により生成される前記固定長形式データの末尾の前記固定長形式データに、前記可変長形式データの全体に基づいて生成した第1の保証コードを付加し、
    前記キャッシュメモリにおけるデータの取り扱い単位に対応した前記データサイズは、FC(Fibre Channel)タイプのハードディスクドライブのセクタサイズに対応したデータサイズであり、
    前記固定長DMAは、前記固定長形式データの夫々について、前記固定長形式データの夫々に基づく第2の保証コードを生成し、
    前記ディスク制御部は、
    前記ハードディスクドライブがFCタイプのハードディスクドライブである場合には、前記ハードディスクドライブの各セクタに前記第2の保証コードを付加するとともに前記末尾の固定長形式データの書き込み先のセクタに前記第1の保証コードを付加したデータを前記ハードディスクドライブに格納し、
    前記ハードディスクドライブがSATA(Serial Advanced Technology Attachment)タイプのハードディスクドライブである場合には、前記ハードディスクドライブの各セクタに前記第2の保証コードは付加せず、前記末尾の固定長形式データの書き込み先のセクタに前記第1の保証コードを付加したデータを前記ハードディスクドライブに格納する
    ストレージ装置。
  2. 請求項1に記載のストレージ装置であって、
    前記チャネル制御部、前記ディスク制御部、及び前記キャッシュメモリの間のデータ転送に関する処理を行うマイクロプロセッサを備え、
    前記マイクロプロセッサは、前記可変長形式データを前記キャッシュメモリに転送するための転送パラメータを、前記可変長DMA及び前記固定長DMAの夫々に設定し、
    前記固定長DMAは、ある前記可変長形式データの前記キャッシュメモリへの前記データ転送が前記転送パラメータを複数回設定することにより行われる場合に、各前記転送パラメータについての前記データ転送に際して生成される前記第1の保証コードの途中計算値を記憶することにより、各前記転送パラメータに対応する前記データ転送で生成される前記途中計算値を引き継いで前記可変長形式データの全体に基づく前記第1の保証コードを生成するストレージ装置。
  3. 請求項2に記載のストレージ装置であって、
    前記固定長DMAに設定される前記転送パラメータにCCW(Channel Command Word)チェインごとに付与される識別子であるチェインIDが設定され、
    前記固定長DMAは、前記チェインIDごとに前記途中計算値を記憶することにより、各前記転送パラメータに対応する前記データ転送で生成される前記途中計算値を引き継ぎ、前記チェインIDごとに前記可変長形式データの全体に基づく前記第1の保証コードを生成するストレージ装置。
  4. 請求項1に記載のストレージ装置であって、
    前記可変長形式データがCKD(Count Key Data architecture)形式のデータであり、
    前記固定長DMAは、前記可変長形式データのD部の末尾のアドレスが前記固定長形式データの末尾のアドレスに一致する場合、前記第1の保証コードを格納するための前記固定長形式データを新たに生成するストレージ装置。
  5. メインフレームと通信する少なくとも一つのチャネル制御部、
    ハードディスクドライブを制御する少なくとも一つのディスク制御部、
    前記チャネル制御部及び前記ディスク制御部がアクセス可能なキャッシュメモリ、
    及び前記チャネル制御部、前記ディスク制御部、及び前記キャッシュメモリを通信可能に接続するスイッチ
    を備え、
    前記チャネル制御部は、前記ホストコンピュータからI/O要求を受信すると、前記I/O要求によって前記ハードディスクドライブに書き込まれるデータもしくは前記ハードディスクドライブから読み出されるデータを、前記キャッシュメモリを介して前記ディスク制御部との間で送信又は受信し、
    前記チャネル制御部は、前記メインフレームとの間の通信のプロトコルに関する処理を行うプロトコル制御部、前記I/O要求とともに前記メインフレームとの間で送信又は受信する可変長形式データについてのデータ転送を行う可変長DMA、前記キャッシュメモリとの間で固定長形式データのデータ転送を行う固定長DMA、前記プロトコル制御部と前記可変長DMAとの間に介在するバッファ、及び前記可変長DMAと前記固定長DMAとの間に介在するバッファを備え、
    前記固定長DMAは、前記キャッシュメモリへの前記固定長形式データの前記データ転送に際し、前記可変長形式データを前記ハードディスクドライブのセクタサイズに対応したデータサイズの複数の前記固定長形式データに分割し、当該分割により生成される前記固定長形式データの末尾の前記固定長形式データに、前記可変長形式データの全体に基づいて生成した第1の保証コードを付加し、
    前記キャッシュメモリにおけるデータの取り扱い単位に対応した前記データサイズは、FC(Fibre Channel)タイプのハードディスクドライブのセクタサイズに対応したデータサイズであり、
    前記固定長DMAは、前記固定長形式データの夫々について、前記固定長形式データの夫々に基づく第2の保証コードを生成し、
    前記ディスク制御部は、
    前記ハードディスクドライブがFCタイプのハードディスクドライブである場合には、前記ハードディスクドライブの各セクタに前記第2の保証コードを付加するとともに前記末尾の固定長形式データの書き込み先のセクタに前記第1の保証コードを付加したデータを前記ハードディスクドライブに格納し、
    前記ハードディスクドライブがSATA(Serial Advanced Technology Attachment)タイプのハードディスクドライブである場合には、前記ハードディスクドライブの各セクタに前記第2の保証コードは付加せず、前記末尾の固定長形式データの書き込み先のセクタに前記第1の保証コードを付加したデータを前記ハードディスクドライブに格納する
    ストレージ装置。
  6. ホストコンピュータと通信するチャネル制御部、
    ハードディスクドライブを制御するディスク制御部、
    前記チャネル制御部及び前記ディスク制御部がアクセス可能なキャッシュメモリ
    を備え、
    前記チャネル制御部は、前記ホストコンピュータからI/O要求を受信すると、前記I/O要求によって前記ハードディスクドライブに書き込まれるデータもしくは前記ハードディスクドライブから読み出されるデータを、前記キャッシュメモリを介して前記ディスク制御部との間で送信又は受信し、
    前記チャネル制御部は、前記I/O要求とともに前記ホストコンピュータとの間で送信又は受信する可変長形式データについてのデータ転送を行う可変長DMA、前記キャッシュメモリとの間で固定長形式データのデータ転送を行う固定長DMA、及び前記可変長DMAと前記固定長DMAとの間に介在するバッファを備えるストレージ装置におけるデータ保証方法であって、
    前記固定長DMAが、前記キャッシュメモリへの前記固定長形式データの前記データ転送に際し、前記可変長形式データを前記キャッシュメモリにおけるデータの取り扱い単位に対応したデータサイズの複数の前記固定長形式データに分割し、当該分割により生成される前記固定長形式データの末尾の前記固定長形式データに、前記可変長形式データの全体に基づいて生成した第1の保証コードを付加し、
    前記キャッシュメモリにおけるデータの取り扱い単位に対応した前記データサイズは、FC(Fibre Channel)タイプのハードディスクドライブのセクタサイズに対応したデータサイズであり、
    前記固定長DMAが、前記固定長形式データの夫々について、前記固定長形式データの夫々に基づく第2の保証コードを生成し、
    前記ディスク制御部が、
    前記ハードディスクドライブがFCタイプのハードディスクドライブである場合には、前記ハードディスクドライブの各セクタに前記第2の保証コードを付加するとともに前記末尾の固定長形式データの書き込み先のセクタに前記第1の保証コードを付加したデータを前記ハードディスクドライブに格納し、
    前記ハードディスクドライブがSATA(Serial Advanced Technology Attachment)タイプのハードディスクドライブである場合には、前記ハードディスクドライブの各セクタに前記第2の保証コードは付加せず、前記末尾の固定長形式データの書き込み先のセクタに前記第1の保証コードを付加したデータを前記ハードディスクドライブに格納する
    するデータ保証方法。
  7. 請求項に記載のデータ保証方法であって、
    前記ストレージ装置は、前記チャネル制御部、前記ディスク制御部、及び前記キャッシュメモリの間のデータ転送に関する処理を行うマイクロプロセッサをさらに備え、
    前記マイクロプロセッサが、前記可変長形式データを前記キャッシュメモリに転送するための転送パラメータを、前記可変長DMA及び前記固定長DMAの夫々に設定し、
    前記固定長DMAが、ある前記可変長形式データの前記キャッシュメモリへの前記データ転送が前記転送パラメータを複数回設定することにより行われる場合に、各前記転送パラメータについての前記データ転送に際して生成される前記第1の保証コードの途中計算値を記憶することにより、各前記転送パラメータに対応する前記データ転送で生成される前記途中計算値を引き継いで前記可変長形式データの全体に基づく前記第1の保証コードを生成するデータ保証方法。
  8. 請求項に記載のデータ保証方法であって、
    前記固定長DMAに設定される前記転送パラメータにCCWチェインごとに付与される識別子であるチェインIDが設定され、
    前記固定長DMAが、前記チェインIDごとに前記途中計算値を記憶することにより、各前記転送パラメータに対応する前記データ転送で生成される前記途中計算値を引き継ぎ、前記チェインIDごとに前記可変長形式データの全体に基づく前記第1の保証コードを生成するデータ保証方法。
  9. 請求項に記載のデータ保証方法であって、
    前記可変長形式データがCKD形式のデータであり、
    前記固定長DMAが、前記可変長形式データのD部の末尾のアドレスが前記固定長形式データの末尾のアドレスに一致する場合、前記第1の保証コードを格納するための前記固定長形式データを新たに生成するデータ保証方法。
  10. メインフレームと通信する少なくとも一つのチャネル制御部、
    ハードディスクドライブを制御する少なくとも一つのディスク制御部、
    前記チャネル制御部及び前記ディスク制御部がアクセス可能なキャッシュメモリ、
    及び前記チャネル制御部、前記ディスク制御部、及び前記キャッシュメモリを通信可能に接続するスイッチ
    を備え、
    前記チャネル制御部は、前記ホストコンピュータからI/O要求を受信すると、前記I/O要求によって前記ハードディスクドライブに書き込まれるデータもしくは前記ハードディスクドライブから読み出されるデータを、前記キャッシュメモリを介して前記ディスク制御部との間で送信又は受信するストレージ装置におけるデータ保証方法であって、
    前記チャネル制御部は、前記メインフレームとの間の通信のプロトコルに関する処理を行うプロトコル制御部、前記I/O要求とともに前記メインフレームとの間で送信又は受信する可変長形式データについてのデータ転送を行う可変長DMA、前記キャッシュメモリとの間で固定長形式データのデータ転送を行う固定長DMA、前記プロトコル制御部と前記可変長DMAとの間に介在するバッファ、及び前記可変長DMAと前記固定長DMAとの間に介在するバッファを備え、
    前記固定長DMAが、前記キャッシュメモリへの前記固定長形式データの前記データ転送に際し、前記可変長形式データを前記ハードディスクドライブのセクタサイズに対応したデータサイズの複数の前記固定長形式データに分割し、当該分割により生成される前記固定長形式データの末尾の前記固定長形式データに、前記可変長形式データの全体に基づいて生成した第1の保証コードを付加し、
    前記キャッシュメモリにおけるデータの取り扱い単位に対応した前記データサイズは、FC(Fibre Channel)タイプのハードディスクドライブのセクタサイズに対応したデータサイズであり、
    前記固定長DMAが、前記固定長形式データの夫々について、前記固定長形式データの夫々に基づく第2の保証コードを生成し、
    前記ディスク制御部が、
    前記ハードディスクドライブがFCタイプのハードディスクドライブである場合には、前記ハードディスクドライブの各セクタに前記第2の保証コードを付加するとともに前記末尾の固定長形式データの書き込み先のセクタに前記第1の保証コードを付加したデータを前記ハードディスクドライブに格納し、
    前記ハードディスクドライブがSATA(Serial Advanced Technology Attachment)タイプのハードディスクドライブである場合には、前記ハードディスクドライブの各セクタに前記第2の保証コードは付加せず、前記末尾の固定長形式データの書き込み先のセクタに前記第1の保証コードを付加したデータを前記ハードディスクドライブに格納する
    データ保証方法。
JP2011514920A 2009-02-19 2009-02-19 ストレージ装置、及びデータ保証方法 Expired - Fee Related JP5236072B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2009/000714 WO2010095173A1 (en) 2009-02-19 2009-02-19 Storage apparatus and data integrity assurance method

Publications (2)

Publication Number Publication Date
JP2012504788A JP2012504788A (ja) 2012-02-23
JP5236072B2 true JP5236072B2 (ja) 2013-07-17

Family

ID=40943722

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011514920A Expired - Fee Related JP5236072B2 (ja) 2009-02-19 2009-02-19 ストレージ装置、及びデータ保証方法

Country Status (3)

Country Link
US (1) US8041850B2 (ja)
JP (1) JP5236072B2 (ja)
WO (1) WO2010095173A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6046750B2 (ja) * 2013-01-24 2016-12-21 株式会社日立製作所 ストレージ装置およびストレージ装置制御方法
JP6206138B2 (ja) 2013-12-02 2017-10-04 富士通株式会社 ストレージ制御装置およびストレージ制御装置の制御プログラム
US9489149B2 (en) 2014-06-16 2016-11-08 Netapp, Inc. Methods and systems for using a write cache in a storage system
KR102387460B1 (ko) 2015-04-09 2022-04-15 삼성전자주식회사 데이터 저장 장치와 이의 작동 방법
EP3987404A4 (en) * 2019-06-21 2023-01-18 INTEL Corporation ADAPTIVE PIPELINE SELECTION TO SPEED UP MEMORY COPY OPERATIONS

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02294740A (ja) * 1989-05-09 1990-12-05 Fujitsu Ltd 計算機の検査方式
JPH0581774A (ja) * 1991-09-20 1993-04-02 Olympus Optical Co Ltd 情報記録再生装置
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
US5918055A (en) * 1997-02-06 1999-06-29 The Regents Of The University Of California Apparatus and method for managing digital resources by passing digital resource tokens between queues
US7185266B2 (en) * 2003-02-12 2007-02-27 Alacritech, Inc. Network interface device for error detection using partial CRCS of variable length message portions
JP2001101126A (ja) * 1999-07-09 2001-04-13 Canon Inc 装置間のデータ通信方法及びそのシステム
JP2002183079A (ja) * 2000-12-15 2002-06-28 Hitachi Ltd 入出力データ転送方法
JP2004288078A (ja) * 2003-03-25 2004-10-14 Hitachi Ltd 固定長ディスクを利用したディスクアレイシステム
JP4391170B2 (ja) 2003-09-05 2009-12-24 株式会社日立製作所 データ転送装置の制御方法、データ転送回路、及びディスクアレイ装置
JP4437953B2 (ja) 2004-12-10 2010-03-24 富士通株式会社 データ書込み方法とチャネルアダプタ
JP4634157B2 (ja) * 2005-01-17 2011-02-16 株式会社日立製作所 ストレージシステム
JP2006309375A (ja) * 2005-04-27 2006-11-09 Hitachi Ltd システム情報に基づいて動作する記憶装置システム及びその記憶装置システムの制御方法
JP2008142901A (ja) * 2006-12-06 2008-06-26 Canon Inc 画像形成コントローラ及び画像形成コントローラの制御方法
JP4362134B2 (ja) 2007-02-09 2009-11-11 富士通株式会社 データアクセス方法、チャネルアダプタ、データアクセス制御装置およびデータアクセスプログラム
JP2008225558A (ja) 2007-03-08 2008-09-25 Fujitsu Ltd データ中継集積回路、データ中継装置およびデータ中継方法

Also Published As

Publication number Publication date
WO2010095173A1 (en) 2010-08-26
US8041850B2 (en) 2011-10-18
JP2012504788A (ja) 2012-02-23
US20100211703A1 (en) 2010-08-19

Similar Documents

Publication Publication Date Title
US5742752A (en) Method for performing a RAID stripe write operation using a drive XOR command set
JP4555029B2 (ja) ディスクアレイ装置
US6981171B2 (en) Data storage array employing block verification information to invoke initialization procedures
US7966471B2 (en) Storage controller and method for control of a data storage device
US9003119B2 (en) Control apparatus and method, and storage apparatus
US20080140929A1 (en) Storage system
JP5102915B2 (ja) ストレージ装置及びそのデータ検証方法
WO2010073291A1 (en) Storage apparatus and data verification method in storage apparatus
JP2000511318A (ja) 階層記憶管理システムのための変換式raid
JP2007513435A (ja) データ組織化を管理するための方法、システム、及びプログラム
JP5635621B2 (ja) ストレージシステム及びストレージシステムのデータ転送方法
JP5236072B2 (ja) ストレージ装置、及びデータ保証方法
JP2007122476A (ja) データストレージシステム、データストレージ制御装置及びそのディスクのライト抜け診断方法
CN103164293A (zh) 扩展计数密钥数据的基于块的端到端数据保护方法和***
JP6426838B2 (ja) ストレージシステム、及び、記憶制御方法
US20080222500A1 (en) Data relay apparatus, data relay method and data relay integrated circuit
US8327043B2 (en) Buffer management device which manages buffer transfer, storage apparatus comprising the same device, and buffer management method
JP6649989B2 (ja) ストレージシステム及びその制御方法
US7398448B2 (en) Storage system has the function of preventing drive write error
US7921265B2 (en) Data access method, channel adapter, and data access control device
US7293139B2 (en) Disk array system generating a data guarantee code on data transferring
JP4390694B2 (ja) Dma回路及びこれを用いたディスクアレイ装置
US20200183605A1 (en) Extent based raid encoding
JP6318769B2 (ja) ストレージ制御装置、制御プログラム、および制御方法
WO2001001581A9 (en) Data integrity management for data storage systems

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120531

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120612

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120801

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130326

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5236072

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

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees