(57)【要約】【課題】  トラックフォーマットテーブルを用いてファイルを記憶装置に書き込む際にライト抜けが発生したとき、その書き込みデータを読み出す要求元に異常を認識させて、誤った処理の実行を防止する。【解決手段】  制御手段１０３は、要求元１１１から書き込み要求を受け取ると、キャッシュ手段１０２に転送された書き込みデータに識別情報を付加して、記憶装置１１２に書き込み、トラックフォーマットテーブル１１３に記録された書き込み先トラックのフォーマット情報にもその識別情報を付加する。次に、読み出し要求を受け取ると、記憶装置１１２から読み出されたデータの識別情報とトラックフォーマットテーブル１１３に記録された読み出し元トラックのフォーマット情報の識別情報を比較し、両者が一致しなければ要求元１１１にデータ異常を通知する。【選択図】図１
2006252239.tif 000002
【特許請求の範囲】
【請求項１】
要求元からのアクセス要求に応じて、複数のレコードからなるファイルを記憶装置に書き込む制御および該記憶装置から読み出す制御を行うファイル制御装置であって、
前記記憶装置の各トラックのフォーマット情報を記録したトラックフォーマットテーブルを格納する格納手段と、
前記記憶装置への書き込みデータおよび該記憶装置からの読み出しデータを格納するキャッシュ手段と、
前記要求元から書き込み要求を受け取ったとき、該要求元から転送された書き込みデータに正常性を確認するための識別情報を付加して、前記記憶装置に書き込み、前記トラックフォーマットテーブルに記録された書き込み先トラックのフォーマット情報に該識別情報を付加し、該要求元から読み出し要求を受け取ったとき、該記憶装置から読み出された読み出しデータの識別情報と該トラックフォーマットテーブルに記録された読み出し元トラックのフォーマット情報の識別情報が一致しなければ、該要求元にデータ異常を通知する制御手段と
を備えることを特徴とするファイル制御装置。
【請求項２】
要求元からのアクセス要求に応じて、複数のレコードからなるファイルを記憶装置に書き込む制御および該記憶装置から読み出す制御を行うファイル制御装置であって、
ミラーリング用の第１および第２の記憶装置に共通する、各トラックのフォーマット情報を記録したトラックフォーマットテーブルを格納する格納手段と、
前記第１および第２の記憶装置への書き込みデータと該第１および第２の記憶装置からの読み出しデータを格納するキャッシュ手段と、
前記要求元から書き込み要求を受け取ったとき、該要求元から転送された書き込みデータに正常性を確認するための識別情報を付加して、前記第１および第２の記憶装置に書き込み、前記トラックフォーマットテーブルに記録された書き込み先トラックのフォーマット情報に該識別情報を付加し、該要求元から読み出し要求を受け取ったとき、該第１の記憶装置からデータを読み出し、読み出しデータの識別情報と該トラックフォーマットテーブルに記録された読み出し元トラックのフォーマット情報の識別情報が一致しなければ、次に該第２の記憶装置からデータを読み出し、読み出しデータの識別情報と該読み出し元トラックのフォーマット情報の識別情報が一致すれば、該読み出しデータを該要求元に転送する制御手段と
を備えることを特徴とするファイル制御装置。
【請求項３】
要求元からのアクセス要求に応じて、複数のレコードからなるファイルを記憶装置に書き込む制御および該記憶装置から読み出す制御を行うプロセッサのためのプログラムであって、
前記要求元から書き込み要求を受け取ったとき、該要求元から転送された書き込みデータに正常性を確認するための識別情報を付加して、前記記憶装置に書き込み、トラックフォーマットテーブルに記録された書き込み先トラックのフォーマット情報に該識別情報を付加し、
前記要求元から読み出し要求を受け取ったとき、前記記憶装置から読み出された読み出しデータの識別情報と前記トラックフォーマットテーブルに記録された読み出し元トラックのフォーマット情報の識別情報が一致しなければ、該要求元にデータ異常を通知する
処理を前記プロセッサに実行させることを特徴とするプログラム。
【請求項４】
要求元からのアクセス要求に応じて、複数のレコードからなるファイルを記憶装置に書き込む制御および該記憶装置から読み出す制御を行うプロセッサのためのプログラムであって、
前記要求元から書き込み要求を受け取ったとき、該要求元から転送された書き込みデータに正常性を確認するための識別情報を付加して、ミラーリング用の第１および第２の記憶装置に書き込み、該第１および第２の記憶装置に共通するトラックフォーマットテーブルに記録された書き込み先トラックのフォーマット情報に該識別情報を付加し、
前記要求元から読み出し要求を受け取ったとき、前記第１の記憶装置からデータを読み出し、読み出しデータの識別情報と前記トラックフォーマットテーブルに記録された読み出し元トラックのフォーマット情報の識別情報が一致しなければ、次に前記第２の記憶装置からデータを読み出し、読み出しデータの識別情報と該読み出し元トラックのフォーマット情報の識別情報が一致すれば、該読み出しデータを該要求元に転送する
処理を前記プロセッサに実行させることを特徴とするプログラム。
【請求項５】
要求元からのアクセス要求に応じて、複数のレコードからなるファイルを記憶装置に書き込む制御および該記憶装置から読み出す制御を行うファイル制御方法であって、
前記要求元から書き込み要求を受け取ったとき、該要求元から転送された書き込みデータに正常性を確認するための識別情報を付加して、前記記憶装置に書き込み、トラックフォーマットテーブルに記録された書き込み先トラックのフォーマット情報に該識別情報を付加し、
前記要求元から読み出し要求を受け取ったとき、前記記憶装置から読み出された読み出しデータの識別情報と前記トラックフォーマットテーブルに記録された読み出し元トラックのフォーマット情報の識別情報が一致しなければ、該要求元にデータ異常を通知する
ことを特徴とするファイル制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、要求元からのアクセス要求に応じて、複数のレコードからなるファイルを記憶装置に書き込む制御および記憶装置から読み出す制御を行うファイル制御装置に関する。
【背景技術】
【０００２】
ＲＡＩＤ（Redundant Array of Inexpensive Disks）のようなディスクアレイシステムでは、磁気ディスク装置に対する書き込み／読み出し要求をホストコンピュータから受け取って、ファイルの書込／読出制御を行うコントローラが設けられる。
【０００３】
図１２は、このようなディスクアレイシステムの構成例を示している。図１２のシステムは、ホストコンピュータ１１およびディスクアレイ装置１２からなり、ディスクアレイ装置１２は、チャネルアダプタ（ＣＡ）２１、コントローラ２２、および複数のディスク２３−１〜２３−ｐを備える。各ディスクは、１つ以上の磁気ディスク装置からなる。
【０００４】
ホストコンピュータ１１は、チャネルアダプタ２１およびコントローラ２２を介して、ディスク２３−１〜２３−ｐにアクセスする。このとき、コントローラ２２は、ホストコンピュータ１１から受け取った書き込みデータを、一旦、キャッシュメモリ２４に格納し、キャッシュメモリ２４からアクセス対象ディスク２３に書き込む。また、アクセス対象ディスク２３から読み出したデータを、一旦、キャッシュメモリ２４に格納し、キャッシュメモリ２４からホストコンピュータ１１に転送する。
【０００５】
ディスク２３−１〜２３−ｐが可変長レコードを格納している場合、各ディスクのトラック毎にレコードフォーマットを定義したトラックフォーマットテーブル（ＴＦＴ）が、キャッシュメモリ２４内に用意される（例えば、下記特許文献１を参照）。コントローラ２２は、このＴＦＴを参照しながら、キャッシュメモリ２４内に各ディスクと同じフォーマットでデータを保持する。
【特許文献１】特許第３２６０９９８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した従来のファイル制御には、次のような問題がある。
コントローラ２２がキャッシュメモリ２４内のデータをアクセス対象ディスク２３に書き込む際、そのディスク２３から書き込み終了の応答があったにもかかわらず、実際にはデータが書き込まれていないライト抜けが発生することがある。この場合、ホストコンピュータ１１がそのデータを含むファイルの読み出しを要求すると、書き込み前の古いデータがホストコンピュータ１１に転送されてしまう。
【０００７】
図１３は、このようなライト抜け発生のシーケンスを示している。まず、ホストコンピュータ１１は、書き込み要求をチャネルアダプタ２１に送信し（ステップ１３０１）、チャネルアダプタ２１は、キャッシュメモリ２４のメモリ領域をコントローラ２２に要求する（ステップ１３０２）。これを受けて、コントローラ２２は、メモリ領域をチャネルアダプタ２１に付与し（ステップ１３０３）、チャネルアダプタ２１は、キャッシュメモリ２４内のＴＦＴから書き込み先トラックのフォーマット情報を読み出す（ステップ１３０４）。
【０００８】
次に、チャネルアダプタ２１は、ホストコンピュータ１１から転送されるデータを、フォーマット情報に従ってキャッシュメモリ２４のメモリ領域に書き込む（ステップ１３０５）。そのトラックのフォーマット情報を変更する必要がある場合は、さらに変更後のフォーマット情報をＴＦＴに書き込む（ステップ１３０６）。そして、ホストコンピュータ１１に正常終了の応答を送信し（ステップ１３０７）、コントローラ２２から付与されたメモリ領域を開放する（ステップ１３０８）。
【０００９】
その後、コントローラ２２は、書き込み要求をディスク２３に送信し（ステップ１３０９）、キャッシュメモリ２４のデータをディスク２３に書き込む（ステップ１３１０）。このとき、ライト抜けが発生しても、ディスク２３はコントローラ２２に正常終了の応答を送信してしまう（ステップ１３１１）。
【００１０】
図１４は、ライト抜け発生後のデータ読み出しのシーケンスを示している。まず、ホストコンピュータ１１は、ディスク２３に書き込まれたデータに対する読み出し要求をチャネルアダプタ２１に送信し（ステップ１４０１）、チャネルアダプタ２１は、キャッシュメモリ２４のメモリ領域をコントローラ２２に要求する（ステップ１４０２）。これを受けて、コントローラ２２は、一旦、チャネルアダプタ２１に処理中断の応答を送信する（ステップ１４０３）。
【００１１】
その後、コントローラ２２は、読み出し要求をディスク２３に送信し（ステップ１４０４）、ディスク２３から転送されたデータを、ＴＦＴのフォーマット情報に従ってキャッシュメモリ２４のメモリ領域に書き込む（ステップ１４０５）。ディスク２３は、コントローラ２２に正常終了の応答を送信する（ステップ１４０６）。
【００１２】
これを受けて、コントローラ２２は、チャネルアダプタ２１に処理再開の応答を送信し（ステップ１４０７）、データが書き込まれたメモリ領域をチャネルアダプタ２１に付与する（ステップ１４０８）。そして、チャネルアダプタ２１は、キャッシュメモリ２４内のＴＦＴから読み出し元トラックのフォーマット情報を読み出す（ステップ１４０９）。
【００１３】
次に、チャネルアダプタ２１は、フォーマット情報に従ってキャッシュメモリ２４からデータを読み出し、ホストコンピュータ１１に転送する（ステップ１４１０）。そして、ホストコンピュータ１１に正常終了の応答を送信し（ステップ１４１１）、コントローラ２２から付与されたメモリ領域を開放する（ステップ１４１２）。
【００１４】
このとき、ホストコンピュータ１１には読み出し元トラックの古いデータが転送され、データ化けが発生するが、ホストコンピュータ１１は正常終了の応答を受け取っているため、データ化けを認識することはない。このため、転送データを正常とみなして処理を続行し、結果的に誤った処理結果を出力してしまう。
【００１５】
本発明の課題は、ＴＦＴを用いてファイルを記憶装置に書き込む際にライト抜けが発生したとき、その書き込みデータを読み出す要求元に異常を認識させて、誤った処理の実行を防止することである。
【課題を解決するための手段】
【００１６】
図１は、本発明のファイル制御装置の原理図である。図１のファイル制御装置は、格納手段１０１、キャッシュ手段１０２、および制御手段１０３を備え、要求元１１１からのアクセス要求に応じて、複数のレコードからなるファイルを記憶装置１１２に書き込む制御および記憶装置１１２から読み出す制御を行う。
【００１７】
格納手段１０１は、記憶装置１１２の各トラックのフォーマット情報を記録したトラックフォーマットテーブル１１３を格納する。キャッシュ手段１０２は、記憶装置１１２への書き込みデータおよび記憶装置１１２からの読み出しデータを格納する。
【００１８】
制御手段１０３は、要求元１１１から書き込み要求を受け取ったとき、要求元１１１から転送された書き込みデータに正常性を確認するための識別情報を付加して、記憶装置１１２に書き込み、トラックフォーマットテーブル１１３に記録された書き込み先トラックのフォーマット情報にその識別情報を付加し、要求元１１１から読み出し要求を受け取ったとき、記憶装置１１２から読み出された読み出しデータの識別情報とトラックフォーマットテーブル１１３に記録された読み出し元トラックのフォーマット情報の識別情報が一致しなければ、要求元１１１にデータ異常を通知する。
【００１９】
データの書き込み時に、書き込みデータと書き込み先トラックのフォーマット情報の両方に同じ識別情報が付加され、データの読み出し時に、読み出しデータの識別情報と読み出し元トラックのフォーマット情報の識別情報が比較される。そして、両者が一致すれば読み出しデータは正常と判定され、一致しなければ読み出しデータは異常と判定される。正常の場合は読み出しデータが要求元１１１に転送され、異常の場合はデータ異常が要求元１１１に通知される。
【００２０】
ライト抜けが発生すると、読み出しデータの識別情報と読み出し元トラックのフォーマット情報の識別情報が一致しなくなるため、データ異常が要求元１１１に通知され、要求元１１１は異常を認識することができる。
【００２１】
格納手段１０１およびキャッシュ手段１０２は、例えば、後述する図２のキャッシュメモリ２２４−ｉ（ｉ＝１，２）に対応し、制御手段１０３は、例えば、図２のＭＰＵ（Micro Processing Unit ）２２１−ｉ（ｉ＝１，２，３，４）またはＭＰＵ２２２−ｉ（ｉ＝１，２）に対応する。
【００２２】
要求元１１１は、例えば、図２のホストコンピュータ２０１に対応し、記憶装置１１２は、例えば、図２のディスク２１３−ｉ（ｉ＝１，２）に対応する。データに付加される識別情報は、例えば、後述する図３の保証コード３０１に対応し、フォーマット情報に付加される識別情報は、例えば、後述する図４の保証コード４０６に対応する。
【発明の効果】
【００２３】
本発明によれば、ファイルを記憶装置に書き込む際にライト抜けが発生すると、その書き込みデータを読み出す際に、要求元が異常を認識することができる。これにより、要求元は適切なリカバリ動作を実施することが可能になる。
【発明を実施するための最良の形態】
【００２４】
以下、図面を参照しながら、本発明を実施するための最良の形態を詳細に説明する。
図２は、実施形態のディスクアレイシステムの構成例を示している。図２のシステムは、ホストコンピュータ２０１およびディスクアレイ装置２０２からなり、ディスクアレイ装置２０２は、チャネルアダプタ（ＣＡ）２１１−１〜２１１−４、コントローラ２１２−１、２１２−２、およびディスク２１３−１、２１３−２を備える。
【００２５】
ここでは、２つのディスクのみが示されているが、一般にはｐ個のディスクがディスクアレイ装置２０２内に設けられる。各ディスクは、１つ以上の磁気ディスク装置からなり、ホストコンピュータ２０１は、各ディスクを１つの記憶装置とみなしてデータの書き込み／読み出し要求を行う。
【００２６】
例えば、ディスク２１３−１がＲＡＩＤ１のディスクに相当し、磁気ディスク装置２２６−１および２２６−２から構成される場合、これらの磁気ディスク装置間でデータのミラーリングが行われる。ミラーリングでは、同じデータが磁気ディスク装置２２６−１および２２６−２の両方に同時に書き込まれる。
【００２７】
同様に、ディスク２１３−２がＲＡＩＤ１のディスクに相当し、磁気ディスク装置２２６−１および２２６−２から構成される場合、これらの磁気ディスク装置間でデータのミラーリングが行われる。
【００２８】
ディスクアレイ装置２０２は、２つのコントローラ２１２−１および２１２−２により二重化されており、各コントローラは２つのチャネルアダプタ２１１を介してホストコンピュータ２０１と通信することができる。
【００２９】
チャネルアダプタ２１１−ｉ（ｉ＝１，２，３，４）は、ＭＰＵ（Micro Processing Unit ）２２１−ｉを含む。コントローラ２１２−１は、ＭＰＵ２２２−１、メモリ２２３−１、キャッシュメモリ２２４−１、およびドライブインタフェース（ＤＩ）２２５−１、２２５−２を含み、コントローラ２１２−２は、ＭＰＵ２２２−２、メモリ２２３−２、キャッシュメモリ２２４−２、およびドライブインタフェース（ＤＩ）２２５−３、２２５−４を含む。
【００３０】
ＭＰＵ２２１−１、２２１−２、および２２２−１は、例えば、メモリ２２３−１に格納されたプログラムを実行することにより、必要な処理を行う。ＭＰＵ２２１−３、２２１−４、および２２２−２は、例えば、メモリ２２３−２に格納されたプログラムを実行することにより、必要な処理を行う。
【００３１】
ホストコンピュータ２０１は、いずれかのチャネルアダプタ２１１を介してコントローラ２１２に書き込み／読み出し要求を送信し、そのコントローラ２１２を介してディスク２１３にアクセスする。以下では、コントローラ２１２−１がチャネルアダプタ２１１−１を介してホストコンピュータ２０１からのアクセス要求を受け取った場合について説明する。
【００３２】
コントローラ２１２−１は、ディスク２１３−ｉ（ｉ＝１，２）の各トラックのフォーマット情報を記録したＴＦＴをキャッシュメモリ２２４−１内に保持しており、ディスク２１３−ｉの各トラックとＴＦＴの対応するフォーマット情報の双方にデータ保証用のコードを付加して、両者の対応関係を管理する。そして、ディスク２１３−ｉからデータを読み出す際に、そのデータの保証コードをＴＦＴの保証コードと比較して、読み出されたデータの正常性を確認する。
【００３３】
ディスク２１３−ｉに属する各磁気ディスク装置では、ＦＢＡ（Fixed Block Architecture）を用いてＣＫＤ（Count Key Data）形式の可変長データを格納するために、ＣＯＦ（CKD on FBA）と呼ばれるデータフォーマットを採用している。
【００３４】
図３は、メインフレームで用いられるＣＯＦフォーマットのデータ構造を示している。この例では標準フォーマットが用いられており、１トラックはＬＢＡ＃０〜＃９４の９５個の論理ブロックからなり、各論理ブロックは５１２バイトの有効データと８バイトのブロックチェックコード（ＢＣＣ）からなる。この論理ブロックは、磁気ディスク装置におけるデータ格納単位に相当する。
【００３５】
有効データ領域は、２つの２５６バイト領域に分割され、各領域に１レコードを格納することができる。各レコードは、一般的にはカウント部Ｃ、キー部Ｋ、およびデータ部Ｄからなる。
【００３６】
カウント部Ｃは、トラックアドレス、レコード番号、後続するキー部Ｋおよびデータ部Ｄの長さ等を格納し、キー部Ｋは、カウント部Ｃに続いてキーデータを格納する。ただし、この例ではキー部Ｋの長さは０に指定され、キー部Ｋは使用されていない。トラックアドレスは、ディスク２１３−ｉ内におけるトラックの物理アドレスであり、例えば、Ｃｙｌｉｎｄｅｒ値とＨｅａｄ値からなる。データ部Ｄは、カウント部Ｃまたはキー部Ｋに続いてデータを格納する。
【００３７】
ＬＢＡ＃０の保証コード３０１は、このトラックのデータの正常性を保証するためのコードであり、例えば、６バイトのタイムスタンプ３１１と２バイトの更新回数３１２からなる。タイムスタンプ３１１は、データ書き込み時の日時（年／月／日／時／分／秒）に対応する情報であり、更新回数３１２は、データ書き込み時に毎回インクリメントされる数値情報である。
【００３８】
また、ＬＢＡ＃０のＲ０は、レコード番号０のレコードであり、通常、キー部の長さを０バイトとし、かつ、データ部の長さを８バイトとして運用され、特別なデータを格納する。ＬＢＡ＃１〜＃ｎのＲ１〜Ｒｍは、レコード番号１〜ｍの可変長レコードであり、一般データを格納する。ＬＢＡ＃ｎのＥＯＴは、トラック上の終端を示す特別なデータパターンである。
【００３９】
図４は、キャッシュメモリ２２４−１内に保持されるＴＦＴのフォーマット情報を示している。このフォーマット情報は、トラックアドレス４０１、トラック内レコード数４０２、開始レコード番号４０３、制御フラグ４０４、レコードのデータ長４０５、および保証コード４０６からなり、トラック毎に用意される。
【００４０】
トラック内レコード数４０２は、そのトラックに記録されているレコードの数を表し、開始レコード番号４０３は、そのトラックの先頭レコードの番号を表す。制御フラグ４０４としては、そのトラックの正常／不良を示すフラグ、標準フォーマットか否かを示すフラグ、そのフォーマット情報の有効／無効を示すフラグ等が用いられる。レコードのデータ長４０５は、標準フォーマットを用いた場合のレコード領域の長さを表し、図３の場合は２５６バイトとなる。また、保証コード４０６は、図３の保証コード３０１と同様に、６バイトのタイムスタンプ４１１と２バイトの更新回数４１２からなる。
【００４１】
次に、図５から図１０までを参照しながら、図４のフォーマット情報を用いた書き込み／読み出し動作のシーケンスを説明する。
図５は、ホストコンピュータ２０１から書き込み要求を受け取ったディスクアレイ装置２０２の書き込み動作のシーケンスを示している。図５のステップ５０１〜５０８の動作は、図１３のステップ１３０１〜１３０８の動作と同様である。ステップ５０４でＴＦＴから読み出されるフォーマット情報には、前回の書き込み時に付加された保証コード４０６が含まれている。
【００４２】
チャネルアダプタ２１１−１がコントローラ２１２−１から付与されたメモリ領域を開放すると、コントローラ２１２−１は、現在の日時から新たなタイムスタンプを生成する。また、キャッシュメモリ２２４−１内のＴＦＴから、書き込み先トラックのフォーマット情報に含まれる更新回数４１２を読み出し、その値をインクリメントして新たな更新回数を生成する。これにより、書き込み先トラックの新たな保証コードが生成される。
【００４３】
そして、キャッシュメモリ２２４−１内の書き込みデータに新たな保証コード３０１を付加し（ステップ５０９）、ＴＦＴ内の書き込み先トラックのフォーマット情報の保証コード４０６にも、新たな保証コードを書き込む（ステップ５１０）。
【００４４】
次に、書き込み要求をディスク２１３に送信し（ステップ５１１）、キャッシュメモリ２２４−１の書き込みデータをディスク２１３に書き込む（ステップ５１２）。このとき、ライト抜けが発生しても、ディスク２１３はコントローラ２１２−１に正常終了の応答を送信する（ステップ５１３）。
【００４５】
図６は、図５の書き込み動作の後にホストコンピュータ２０１から読み出し要求を受け取ったディスクアレイ装置２０２の読み出し動作のシーケンスを示している。図６のステップ６０１〜６０６の動作は、図１４のステップ１４０１〜１４０６の動作と同様である。ステップ１４０５でディスク２１３から読み出されるデータには、書き込み時に付加された保証コード３０１が含まれている。
【００４６】
ディスク２１３から正常終了の応答を受信すると、コントローラ２１２−１は、読み出されたデータの保証コード３０１と、キャッシュメモリ２２４−１内のＴＦＴに保持された、読み出し元トラックのフォーマット情報の保証コード４０６を比較する（ステップ６０７）。両者が一致すれば読み出しデータは正常と判定し、一致しなければ読み出しデータは異常と判定する。
【００４７】
図５に示したように、書き込み時にライト抜けが発生した場合は、読み出しデータに古い保証コード３０１が記録されているため、ＴＦＴ内の保証コード４０６とは一致しない。したがって、読み出しデータは異常と判定される（ステップ６０８）。
【００４８】
そこで、コントローラ２１２−１は、チャネルアダプタ２１１−１に処理再開の応答を送信し（ステップ６０９）、続いてデータ異常の応答を送信する（ステップ６１０）。チャネルアダプタ２１１−１は、ホストコンピュータ２０１に異常終了の応答を送信する（ステップ６１１）。これにより、ホストコンピュータ２０１は、読み出しデータの異常を認識し、リカバリ動作を実施する（ステップ６１２）。
【００４９】
以上の説明では、コントローラ２１２−１がデータ保証のための制御を行っているが、同様の制御をチャネルアダプタ２１１−１が行うことも可能である。この場合、チャネルアダプタ２１１−１のＭＰＵ２２１−１は、コントローラ２１２−１のキャッシュメモリ２２４−１を利用して必要な処理を実行する。
【００５０】
図７は、チャネルアダプタ２１１−１がデータ保証を行う場合の書き込み動作のシーケンスを示している。図７のステップ７０１〜７０４の動作は、図５のステップ５０１〜５０４の動作と同様である。
【００５１】
ＴＦＴから書き込み先トラックのフォーマット情報を読み出すと、チャネルアダプタ２１１−１は、図５の場合と同様にして新たな保証コードを生成する（ステップ７０５）。そして、ホストコンピュータ２０１から転送されるデータと保証コードを、フォーマット情報に従ってキャッシュメモリ２２４−１内のメモリ領域に書き込む（ステップ７０６）。これにより、書き込みデータに新たな保証コード３０１が付加される。また、書き込み先トラックのフォーマット情報にも新たな保証コード４０６を付加し（ステップ７０７）、そのフォーマット情報をＴＦＴに書き込む（ステップ７０８）。
【００５２】
その後のステップ７０９〜７１３の動作は、図５のステップ５０７、５０８、および５１１〜５１３の動作と同様である。
図８は、チャネルアダプタ２１１−１がデータ保証を行う場合の読み出し動作のシーケンスを示している。図８のステップ８０１〜８１０の動作は、図１４のステップ１４０１〜１４１０の動作と同様である。
【００５３】
ホストコンピュータ２０１へのデータ転送が終了すると、チャネルアダプタ２１１−１は、そのデータの保証コード３０１と読み出し元トラックのフォーマット情報の保証コード４０６を比較する（ステップ８１１）。書き込み時にライト抜けが発生した場合は、両者が一致しないため、読み出しデータは異常と判定される（ステップ８１２）。
【００５４】
そこで、チャネルアダプタ２１１−１は、ホストコンピュータ２０１に異常終了の応答を送信し（ステップ８１３）、コントローラ２１２−１から付与されたメモリ領域を開放する（ステップ８１４）。ホストコンピュータ２０１は、受信した応答により読み出しデータの異常を認識し、リカバリ動作を実施する（ステップ８１５）。
【００５５】
ところで、図２に示したように、ディスク２１３に属する２つの磁気ディスク装置間でデータのミラーリングが行われている場合、一方の磁気ディスク装置においてライト抜けが発生しても、他方の磁気ディスク装置では発生しないことも考えられる。この場合、ライト抜けが発生していない磁気ディスク装置からデータを読み出すことで、データの正常性を保証することが可能である。
【００５６】
図９は、ディスク２１３に属する磁気ディスク装置＃０および＃１の間でミラーリングが行われている場合の読み出し動作のシーケンスを示している。図９のステップ９０１〜９０８の動作は、図６のステップ６０１〜６０８の動作と同様である。ただし、磁気ディスク装置＃０が読み出し元としてアクセスされる。
【００５７】
データ異常が検出されると、コントローラ２１２−１は、次に磁気ディスク装置＃１をアクセス先としてステップ９０４〜９０６と同様の動作を行う（ステップ９０９〜９１１）。そして、磁気ディスク装置＃１から読み出されたデータの保証コード３０１と、キャッシュメモリ２２４−１内のＴＦＴに保持された、読み出し元トラックのフォーマット情報の保証コード４０６を比較する（ステップ９１２）。ここで、両者が一致すれば、読み出しデータを正常と判定する（ステップ９１３）。
【００５８】
その後のステップ９１４〜９１９の動作は、図１４のステップ１４０７〜１４１２の動作と同様である。これにより、磁気ディスク装置＃１から読み出された正常なデータがホストコンピュータ２０１に転送される。
【００５９】
図１０は、ライト抜けが発生していない磁気ディスク装置＃１のデータを用いてライト抜けが発生した磁気ディスク装置＃０のデータを訂正する場合の読み出し動作のシーケンスを示している。図１０のステップ１００１〜１０１５の動作は、図９のステップ９０１〜９１５の動作と同様である。
【００６０】
コントローラ２１２−１は、メモリ領域をチャネルアダプタ２１１−１に付与した後、書き込み要求を磁気ディスク装置＃０に送信し（ステップ１０１６）、チャネルアダプタ２１１−１は、キャッシュメモリ２２４−１内のＴＦＴから読み出し元トラックのフォーマット情報を読み出す（ステップ１０１７）。
【００６１】
次に、コントローラ２１２−１は、磁気ディスク装置＃１からキャッシュメモリ２２４−１に読み出されたデータを、フォーマット情報に従って磁気ディスク装置＃０に書き込む（ステップ１０１８）。また、チャネルアダプタ２１１−１は、フォーマット情報に従って同じデータをキャッシュメモリ２２４−１から読み出し、ホストコンピュータ２０１に転送する（ステップ１０１９）。
【００６２】
その後、磁気ディスク装置＃０は、コントローラ２１２−１に正常終了の応答を送信する（ステップ１０２０）。そして、チャネルアダプタ２１１−１は、ホストコンピュータ２０１に正常終了の応答を送信し（ステップ１０２１）、コントローラ２１２−１から付与されたメモリ領域を開放する（ステップ１０２２）。
【００６３】
図１１は、ディスクアレイ装置２０２のＭＰＵ２２１−ｉおよび２２２−ｉが処理に用いるプログラムおよびデータの提供方法を示している。情報処理装置等の外部装置１１０１や可搬記録媒体１１０２に格納されたプログラムおよびデータは、ディスクアレイ装置２０２のメモリ２２３−ｉにロードされる。
【００６４】
外部装置１１０１は、そのプログラムおよびデータを搬送する搬送信号を生成し、通信ネットワーク上の任意の伝送媒体を介してディスクアレイ装置２０２に送信する。可搬記録媒体１１０２は、メモリカード、フレキシブルディスク、光ディスク、光磁気ディスク等の任意のコンピュータ読み取り可能な記録媒体である。ＭＰＵ２２１−ｉおよび２２２−ｉは、そのデータを用いてそのプログラムを実行し、必要な処理を行う。
【００６５】
なお、以上の実施形態では、保証コードとしてタイムスタンプおよび更新回数が用いられているが、いずれか一方のみを保証コードとして用いてもよい。また、ＣＲＣ（Cyclic Redundancy Check ）、チェックサム（ＣＨＫＳＵＭ）、ＥＣＣ（Error Correcting Code ）、およびパリティのように、書き込みデータから生成された保証コードを用いることも可能である。
【００６６】
さらに、以上の実施形態では、記憶装置として磁気ディスク装置が用いられているが、本発明は、光ディスク装置、光磁気ディスク装置等の他のディスク装置や、テープ装置のような他の記憶装置を用いたストレージシステムに対しても、適用可能である。
【００６７】
（付記１）  要求元からのアクセス要求に応じて、複数のレコードからなるファイルを記憶装置に書き込む制御および該記憶装置から読み出す制御を行うファイル制御装置であって、
前記記憶装置の各トラックのフォーマット情報を記録したトラックフォーマットテーブルを格納する格納手段と、
前記記憶装置への書き込みデータおよび該記憶装置からの読み出しデータを格納するキャッシュ手段と、
前記要求元から書き込み要求を受け取ったとき、該要求元から転送された書き込みデータに正常性を確認するための識別情報を付加して、前記記憶装置に書き込み、前記トラックフォーマットテーブルに記録された書き込み先トラックのフォーマット情報に該識別情報を付加し、該要求元から読み出し要求を受け取ったとき、該記憶装置から読み出された読み出しデータの識別情報と該トラックフォーマットテーブルに記録された読み出し元トラックのフォーマット情報の識別情報が一致しなければ、該要求元にデータ異常を通知する制御手段と
を備えることを特徴とするファイル制御装置。
（付記２）  要求元からのアクセス要求に応じて、複数のレコードからなるファイルを記憶装置に書き込む制御および該記憶装置から読み出す制御を行うファイル制御装置であって、
ミラーリング用の第１および第２の記憶装置に共通する、各トラックのフォーマット情報を記録したトラックフォーマットテーブルを格納する格納手段と、
前記第１および第２の記憶装置への書き込みデータと該第１および第２の記憶装置からの読み出しデータを格納するキャッシュ手段と、
前記要求元から書き込み要求を受け取ったとき、該要求元から転送された書き込みデータに正常性を確認するための識別情報を付加して、前記第１および第２の記憶装置に書き込み、前記トラックフォーマットテーブルに記録された書き込み先トラックのフォーマット情報に該識別情報を付加し、該要求元から読み出し要求を受け取ったとき、該第１の記憶装置からデータを読み出し、読み出しデータの識別情報と該トラックフォーマットテーブルに記録された読み出し元トラックのフォーマット情報の識別情報が一致しなければ、次に該第２の記憶装置からデータを読み出し、読み出しデータの識別情報と該読み出し元トラックのフォーマット情報の識別情報が一致すれば、該読み出しデータを該要求元に転送する制御手段と
を備えることを特徴とするファイル制御装置。
（付記３）  前記制御手段は、前記第２の記憶装置から読み出された読み出しデータを用いて、前記第１の記憶装置に格納されたデータを訂正することを特徴とする付記２記載のファイル制御装置。
（付記４）  複数のレコードからなるファイルを格納する複数の記憶装置と、
記憶装置の各トラックのフォーマット情報を記録したトラックフォーマットテーブルを格納する格納手段と、
記憶装置への書き込みデータおよび記憶装置からの読み出しデータを格納するキャッシュ手段と、
要求元から書き込み要求を受け取ったとき、該要求元から転送された書き込みデータに正常性を確認するための識別情報を付加して、前記複数の記憶装置の１つに書き込み、前記トラックフォーマットテーブルに記録された書き込み先トラックのフォーマット情報に該識別情報を付加し、該要求元から読み出し要求を受け取ったとき、該記憶装置から読み出された読み出しデータの識別情報と該トラックフォーマットテーブルに記録された読み出し元トラックのフォーマット情報の識別情報が一致しなければ、該要求元にデータ異常を通知する制御手段と
を備えることを特徴とするファイル格納装置。
（付記５）  複数のレコードからなるファイルを格納する複数の記憶装置と、
前記複数の記憶装置のうちミラーリング用の第１および第２の記憶装置に共通する、各トラックのフォーマット情報を記録したトラックフォーマットテーブルを格納する格納手段と、
前記第１および第２の記憶装置への書き込みデータと該第１および第２の記憶装置からの読み出しデータを格納するキャッシュ手段と、
要求元から書き込み要求を受け取ったとき、該要求元から転送された書き込みデータに正常性を確認するための識別情報を付加して、前記第１および第２の記憶装置に書き込み、前記トラックフォーマットテーブルに記録された書き込み先トラックのフォーマット情報に該識別情報を付加し、該要求元から読み出し要求を受け取ったとき、該第１の記憶装置からデータを読み出し、読み出しデータの識別情報と該トラックフォーマットテーブルに記録された読み出し元トラックのフォーマット情報の識別情報が一致しなければ、次に該第２の記憶装置からデータを読み出し、読み出しデータの識別情報と該読み出し元トラックのフォーマット情報の識別情報が一致すれば、該読み出しデータを該要求元に転送する制御手段と
を備えることを特徴とするファイル格納装置。
（付記６）  要求元からのアクセス要求に応じて、複数のレコードからなるファイルを記憶装置に書き込む制御および該記憶装置から読み出す制御を行うプロセッサのためのプログラムであって、
前記要求元から書き込み要求を受け取ったとき、該要求元から転送された書き込みデータに正常性を確認するための識別情報を付加して、前記記憶装置に書き込み、トラックフォーマットテーブルに記録された書き込み先トラックのフォーマット情報に該識別情報を付加し、
前記要求元から読み出し要求を受け取ったとき、前記記憶装置から読み出された読み出しデータの識別情報と前記トラックフォーマットテーブルに記録された読み出し元トラックのフォーマット情報の識別情報が一致しなければ、該要求元にデータ異常を通知する
処理を前記プロセッサに実行させることを特徴とするプログラム。
（付記７）  要求元からのアクセス要求に応じて、複数のレコードからなるファイルを記憶装置に書き込む制御および該記憶装置から読み出す制御を行うプロセッサのためのプログラムであって、
前記要求元から書き込み要求を受け取ったとき、該要求元から転送された書き込みデータに正常性を確認するための識別情報を付加して、ミラーリング用の第１および第２の記憶装置に書き込み、該第１および第２の記憶装置に共通するトラックフォーマットテーブルに記録された書き込み先トラックのフォーマット情報に該識別情報を付加し、
前記要求元から読み出し要求を受け取ったとき、前記第１の記憶装置からデータを読み出し、読み出しデータの識別情報と前記トラックフォーマットテーブルに記録された読み出し元トラックのフォーマット情報の識別情報が一致しなければ、次に前記第２の記憶装置からデータを読み出し、読み出しデータの識別情報と該読み出し元トラックのフォーマット情報の識別情報が一致すれば、該読み出しデータを該要求元に転送する
処理を前記プロセッサに実行させることを特徴とするプログラム。
（付記８）  要求元からのアクセス要求に応じて、複数のレコードからなるファイルを記憶装置に書き込む制御および該記憶装置から読み出す制御を行うファイル制御方法であって、
前記要求元から書き込み要求を受け取ったとき、該要求元から転送された書き込みデータに正常性を確認するための識別情報を付加して、前記記憶装置に書き込み、トラックフォーマットテーブルに記録された書き込み先トラックのフォーマット情報に該識別情報を付加し、
前記要求元から読み出し要求を受け取ったとき、前記記憶装置から読み出された読み出しデータの識別情報と前記トラックフォーマットテーブルに記録された読み出し元トラックのフォーマット情報の識別情報が一致しなければ、該要求元にデータ異常を通知する
ことを特徴とするファイル制御方法。
（付記９）  要求元からのアクセス要求に応じて、複数のレコードからなるファイルを記憶装置に書き込む制御および該記憶装置から読み出す制御を行うプロセッサのためのファイル制御方法であって、
前記要求元から書き込み要求を受け取ったとき、該要求元から転送された書き込みデータに正常性を確認するための識別情報を付加して、ミラーリング用の第１および第２の記憶装置に書き込み、該第１および第２の記憶装置に共通するトラックフォーマットテーブルに記録された書き込み先トラックのフォーマット情報に該識別情報を付加し、
前記要求元から読み出し要求を受け取ったとき、前記第１の記憶装置からデータを読み出し、読み出しデータの識別情報と前記トラックフォーマットテーブルに記録された読み出し元トラックのフォーマット情報の識別情報が一致しなければ、次に前記第２の記憶装置からデータを読み出し、読み出しデータの識別情報と該読み出し元トラックのフォーマット情報の識別情報が一致すれば、該読み出しデータを該要求元に転送する
ことを特徴とするファイル制御方法。
【図面の簡単な説明】
【００６８】
【図１】本発明のファイル制御装置の原理図である。
【図２】２台のコントローラを有するディスクアレイシステムの構成図である。
【図３】ＣＯＦフォーマットを示す図である。
【図４】トラックフォーマットテーブルのフォーマット情報を示す図である。
【図５】第１の書き込みシーケンスを示す図である。
【図６】第１の読み出しシーケンスを示す図である。
【図７】第２の書き込みシーケンスを示す図である。
【図８】第２の読み出しシーケンスを示す図である。
【図９】第３の読み出しシーケンスを示す図である。
【図１０】第４の読み出しシーケンスを示す図である。
【図１１】プログラムおよびデータの提供方法を示す図である。
【図１２】ディスクアレイシステムの構成図である。
【図１３】ライト抜けを示す図である。
【図１４】ライト抜けに起因するデータ化けを示す図である。
【符号の説明】
【００６９】
１１、２０１  ホストコンピュータ
１２、２０２  ディスクアレイ装置
２１、２１１−１、２１１−２、２１１−３、２１１−４  チャネルアダプタ
２２、２１２−１、２１２−２  コントローラ
２３−１、２３−２、２３−ｐ、２１３−１、２１３−２  ディスク
２４、２２４−１、２２４−２  キャッシュメモリ
１０１  格納手段
１０２  キャッシュ手段
１０３  制御手段
１１１  要求元
１１２  記憶装置
１１３  トラックフォーマットテーブル
２２１−１、２２１−２、２２１−３、２２１−４、２２２−１、２２２−２  ＭＰＵ
２２３−１、２２３−２  メモリ
２２５−１、２２５−２、２２５−３、２２５−４  ドライブインタフェース
２２６−１、２２６−２、２２７−１、２２７−２  磁気ディスク装置
３０１、４０６  保証コード
３１１、４１１  タイムスタンプ
３１２、４１２  更新回数
４０１  トラックアドレス
４０２  トラック内レコード数
４０３  開始レコード番号
４０４  制御フラグ
４０５  レコードのデータ長
１１０１  外部装置
１１０２  可搬記録媒体
【図１】
2006252239.tif 000003
【図２】
2006252239.tif 000004
【図３】
2006252239.tif 000005
【図４】
2006252239.tif 000006
【図５】
2006252239.tif 000007
【図６】
2006252239.tif 000008
【図７】
2006252239.tif 000009
【図８】
2006252239.tif 000010
【図９】
2006252239.tif 000011
【図１０】
2006252239.tif 000012
【図１１】
2006252239.tif 000013
【図１２】
2006252239.tif 000014
【図１３】
2006252239.tif 000015
【図１４】
2006252239.tif 000016