(57)【要約】【課題】本発明の記憶制御装置は、ライト性能を低下させずに、複数の外部ボリュームを一つの仮想ボリュームとしてメインフレームに提供することができる。【解決手段】メインストレージ装置１内の仮想ボリューム１Ｂは、外部ストレージ装置２内の複数の外部ボリューム２Ｂに対応付けられている。メインフレーム３が仮想ボリューム１Ｂをフォーマットする場合、メインストレージ装置１の制御情報生成部１Ａ４は、仮想ボリューム１Ｂに関する制御情報１Ｃを生成して保持する。これにより、メインフレーム３から指定された書込みサイズと書込先に設定されたデータサイズとが一致する、いわゆる等長ライト時の処理性能を高めることができる。【選択図】図１
2009175824.tif 000002
【特許請求の範囲】
【請求項１】
メインフレーム及び他の記憶制御装置に接続されるメインフレーム用記憶制御装置であって、
前記他の記憶制御装置は、複数のメインフレーム用の実ボリュームを備えており、
前記各実ボリュームに対応付けられる仮想ボリュームと、
前記メインフレームから受信したコマンド及びデータを、前記他の記憶制御装置に送信するためのコマンド及びデータに変換し、かつ、前記他の記憶制御装置から受信したデータを前記ホストコンピュータに送信するためのデータに変換する、変換部と、
前記仮想ボリュームのフォーマットに関する制御情報を生成し、前記仮想ボリュームに対応付けて管理する制御情報生成部と、
前記変換部と前記制御情報生成部とを用いて、前記メインフレームから発行されるコマンドを処理し、その処理結果を前記メインフレームに通知するコマンド処理部と、
を備えるメインフレーム用記憶制御装置。
【請求項２】
前記変換部は、前記コマンド内のパラメータを変換するためのコマンド変換部と、前記データ内のカウント値を変換するためのデータ変換部とを備えている、請求項１に記載のメインフレーム用記憶制御装置。
【請求項３】
前記変換部は、
前記コマンド内のパラメータを変換するためのコマンド変換部であって、前記メインフレームから前記仮想ボリュームに対する前記コマンドを受信した場合に、このコマンド内の第１シリンダ番号を前記各実ボリュームのうち対応する実ボリュームの第２シリンダ番号に変換するコマンド変換部と、
前記メインフレームまたは前記他の記憶制御装置のいずれかから受信した前記データの各レコード内のカウント値をそれぞれ変換するためのデータ変換部であって、前記メインフレームから前記データを受信した場合には、このデータ内の各レコードのカウント値を前記第２シリンダ番号にそれぞれ変換し、前記他の記憶制御装置から前記データを受信した場合には、このデータ内の各レコードのカウント値を前記第１シリンダ番号にそれぞれ変換する、データ変換部と、
を備えている請求項１に記載のメインフレーム用記憶制御装置。
【請求項４】
前記制御情報生成部は、前記メインフレームが前記仮想ボリュームにフォーマットライトを要求した場合に、前記制御情報を各シリンダ毎に生成して保存する、請求項１〜３のいずれかに記載のメインフレーム用記憶制御装置。
【請求項５】
前記他の記憶制御装置は、前記各実ボリュームのフォーマットに関する他の制御情報を生成する他の制御情報生成部であって、フォーマットライトの要求に従って各シリンダ毎に生成される前記他の制御情報を前記実ボリューム内の制御情報領域に格納させる、他の制御情報生成部を備えており、
前記メインフレームが前記仮想ボリュームにフォーマットライトを要求した場合、前記変換部は、前記フォーマットライトの要求を前記各実ボリュームに対するフォーマットライトの要求に変換して前記他の記憶制御装置に送信させ、
前記制御情報生成部は、前記他の制御情報生成部による前記他の制御情報の生成と同期して、前記仮想ボリュームのフォーマットに関する前記制御情報を生成するようになっている、請求項１〜４のいずれかに記載のメインフレーム用記憶制御装置。
【請求項６】
前記制御情報は、シリンダを構成する各トラックの各レコード毎のデータサイズを記憶する情報である、請求項１〜５のいずれかに記載のメインフレーム用記憶制御装置。
【請求項７】
前記仮想ボリュームの記憶領域と前記各実ボリュームの記憶領域との対応関係に基づいてシリンダ番号を補正するためのシリンダ番号補正テーブルを更に備え、
前記コマンド変換部及び前記データ変換部は、前記シリンダ番号補正テーブルを用いることにより、前記第１シリンダ番号と前記第２シリンダ番号との変換を行う、請求項３に記載のメインフレーム用記憶制御装置。
【請求項８】
前記仮想ボリュームの記憶領域の先頭から順番に、前記各実ボリュームの記憶領域のうちユーザにより使用可能な記憶領域が対応付けられている、請求項１〜７のいずれかに記載のメインフレーム用記憶制御装置。
【請求項９】
他の記憶制御装置の有するメインフレーム用の複数の実ボリュームを一つの仮想ボリュームとしてまとめて、メインフレームに提供するためのメインフレーム用ボリュームの仮想化方法であって、
前記メインフレームから前記仮想ボリュームへのフォーマットライトが要求された場合に、前記仮想ボリュームのフォーマットに関する制御情報を生成し、生成した制御情報を前記仮想ボリュームに対応付けて、所定の実記憶領域に記憶させるステップと、
前記フォーマットライトの要求を前記仮想ボリュームに対応付けられている前記各実ボリュームへのフォーマットライトの要求に変換して前記他の記憶制御装置に送信させることにより、前記他の記憶制御装置内で前記各実ボリュームのフォーマットに関する他の制御情報をそれぞれ生成させるステップと、
前記メインフレームから前記仮想ボリュームへのライトコマンドを受信した場合には、前記制御情報に記憶されているデータサイズと前記メインフレームが指定するデータサイズとが一致するか否かを判定するステップと、
前記制御情報に記憶されている前記データサイズと前記メインフレームが指定する前記データサイズとが一致する場合は、前記メインフレームから受信するライトデータをキャッシュメモリに記憶させ、前記メインフレームに前記ライトコマンドの処理が完了した旨を通知するステップと、
前記制御情報に記憶されている前記データサイズと前記メインフレームが指定するデータサイズとが不一致の場合は、前記他の記憶制御装置にリードコマンドを発行し、前記ライトコマンドに関する所定のデータを前記他の記憶制御装置に要求するステップと、
前記他の記憶制御装置から受信したデータに基づいて、前記メインフレームから受信したライトコマンドを処理するステップと、
をそれぞれ実行する、メインフレーム用ボリュームの仮想化方法。
【請求項１０】
前記ライトコマンドを処理するステップの後に、前記キャッシュメモリに記憶された前記ライトデータを前記他の記憶制御装置に送信し、前記各実ボリュームのうち対応する実ボリュームに記憶させるステップを更に備える、請求項９に記載のメインフレーム用ボリュームの仮想化方法。
【請求項１１】
コンピュータを、他の記憶制御装置の有するメインフレーム用の複数の実ボリュームを一つの仮想ボリュームとしてまとめてメインフレームに提供する仮想化装置として機能させるためのコンピュータプログラムであって、
前記メインフレームから受信したコマンド及びデータを、前記他の記憶制御装置に送信するためのコマンド及びデータに変換し、かつ、前記他の記憶制御装置から受信したデータを前記ホストコンピュータに送信するためのデータに変換する、変換機能と、
前記仮想ボリュームのフォーマットに関する制御情報を生成し、前記仮想ボリュームに対応付けて管理する制御情報生成機能と、
前記変換部と前記制御情報生成部とを用いて、前記メインフレームから発行されるコマンドを処理し、その処理結果を前記メインフレームに通知するコマンド処理機能と、
を、前記コンピュータ上にそれぞれ実現させるためのコンピュータプログラム。
【請求項１２】
ホストコンピュータ及び他の記憶制御装置に接続されるホストコンピュータ用記憶制御装置であって、
前記他の記憶制御装置は、複数のホストコンピュータ用の実ボリュームを備えており、
前記各実ボリュームに対応付けられる仮想ボリュームと、
前記ホストコンピュータから受信したコマンド及びデータを、前記他の記憶制御装置に送信するためのコマンド及びデータに変換し、かつ、前記他の記憶制御装置から受信したデータを前記ホストコンピュータに送信するためのデータに変換する、変換部と、
前記仮想ボリュームのフォーマットに関する制御情報を生成し、前記仮想ボリュームに対応付けて管理する制御情報生成部と、
前記変換部と前記制御情報生成部とを用いて、前記ホストコンピュータから発行されるコマンドを処理し、その処理結果を前記ホストコンピュータに通知するコマンド処理部と、
を備えるホストコンピュータ用記憶制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メインフレーム用記憶制御装置及びメインフレーム用ボリュームの仮想化方法に関する。
【背景技術】
【０００２】
例えば、金融機関等では、多量のデータを使用して業務を行うために、メインフレームを用いる。メインフレームには、メインフレーム用のボリュームを提供する記憶制御装置が接続される。メインフレームが取り扱うデータ量は日々増大する。そこで、データ量の増大に応じて、記憶制御装置にディスクドライブを追加したり、あるいは、新たな記憶制御装置をシステムに導入する。
【０００３】
しかし、ディスクドライブの追加には限界がある。複数の記憶制御装置をシステムに導入した場合は、その維持管理が面倒であり、さらに、各記憶制御装置の有する記憶領域を有効に使用することができない。
【０００４】
ところで、メインフレーム用記憶制御装置の技術ではないが、いわゆるオープン系の記憶制御装置では、複数のボリュームを一つにまとめて仮想化する技術は知られている（特許文献１）。
【特許文献１】特開２０００−２４２４３４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記従来技術では、旧式の記憶制御装置が有する複数の実ボリュームを一つの仮想ボリュームとしてまとめてサーバに提供することができる。しかし、前記従来技術は、オープン系のストレージシステムに関するものであり、メインフレームを含むシステムにそのまま適用することはできない。メインフレームとオープン系とでは、データの取り扱い方法等が異なるためである。
【０００６】
さらに、複数の実ボリュームを一つの仮想ボリュームとして単純に仮想化するだけでは、かえってアクセス性能が低下する恐れもある。ライトコマンドを処理するために旧データが必要な場合、メインフレームから発行されるライトコマンド毎に、各実ボリュームから旧データを読み出す必要があるためである。
【０００７】
そこで、本発明の目的は、複数の実ボリュームを一つの仮想ボリュームとして仮想化し、メインフレームに提供することのできるメインフレーム用記憶制御装置及びメインフレーム用ボリュームの仮想化方法を提供することにある。本発明の他の目的は、アクセス性能を低下させることなく、複数の実ボリュームを一つの仮想ボリュームとしてメインフレームに提供することができるようにしたメインフレーム用記憶制御装置及びメインフレーム用ボリュームの仮想化方法を提供することにある。本発明の更なる目的は、後述する実施形態の記載から明らかとなるであろう。
【課題を解決するための手段】
【０００８】
上記課題を解決すべく、本発明の第１観点に従うメインフレーム用記憶制御装置は、メインフレーム及び他の記憶制御装置に接続されるメインフレーム用記憶制御装置であって、他の記憶制御装置は、複数のメインフレーム用の実ボリュームを備えており、各実ボリュームに対応付けられる仮想ボリュームと、メインフレームから受信したコマンド及びデータを、他の記憶制御装置に送信するためのコマンド及びデータに変換し、かつ、他の記憶制御装置から受信したデータをホストコンピュータに送信するためのデータに変換する、変換部と、仮想ボリュームのフォーマットに関する制御情報を生成し、仮想ボリュームに対応付けて管理する制御情報生成部と、変換部と制御情報生成部とを用いて、メインフレームから発行されるコマンドを処理し、その処理結果をメインフレームに通知するコマンド処理部と、を備える。
【０００９】
第２観点では、第１観点において、変換部は、コマンド内のパラメータを変換するためのコマンド変換部と、データ内のカウント値を変換するためのデータ変換部とを備えている。
【００１０】
第３観点では、第１観点において、変換部は、コマンド内のパラメータを変換するためのコマンド変換部であって、メインフレームから仮想ボリュームに対するコマンドを受信した場合に、このコマンド内の第１シリンダ番号を各実ボリュームのうち対応する実ボリュームの第２シリンダ番号に変換するコマンド変換部と、メインフレームまたは他の記憶制御装置のいずれかから受信したデータの各レコード内のカウント値をそれぞれ変換するためのデータ変換部であって、メインフレームからデータを受信した場合には、このデータ内の各レコードのカウント値を第２シリンダ番号にそれぞれ変換し、他の記憶制御装置からデータを受信した場合には、このデータ内の各レコードのカウント値を第１シリンダ番号にそれぞれ変換する、データ変換部と、を備えている。
【００１１】
第４観点では、第１〜３観点のいずれかにおいて、制御情報生成部は、メインフレームが仮想ボリュームにフォーマットライトを要求した場合に、制御情報を各シリンダ毎に生成して保存する。
【００１２】
第５観点では、第１〜４観点のいずれかにおいて、他の記憶制御装置は、各実ボリュームのフォーマットに関する他の制御情報を生成する他の制御情報生成部であって、フォーマットライトの要求に従って各シリンダ毎に生成される他の制御情報を実ボリューム内の制御情報領域に格納させる、他の制御情報生成部を備えており、メインフレームが仮想ボリュームにフォーマットライトを要求した場合、変換部は、フォーマットライトの要求を各実ボリュームに対するフォーマットライトの要求に変換して他の記憶制御装置に送信させ、制御情報生成部は、他の制御情報生成部による他の制御情報の生成と同期して、仮想ボリュームのフォーマットに関する制御情報を生成するようになっている。
【００１３】
第６観点では、第１〜５観点のいずれかにおいて、制御情報は、シリンダを構成する各トラックの各レコード毎のデータサイズを記憶する情報である。
【００１４】
第７観点では、第３観点において、仮想ボリュームの記憶領域と各実ボリュームの記憶領域との対応関係に基づいてシリンダ番号を補正するためのシリンダ番号補正テーブルを更に備え、コマンド変換部及びデータ変換部は、シリンダ番号補正テーブルを用いることにより、第１シリンダ番号と第２シリンダ番号との変換を行う。
【００１５】
第８観点では、第１〜７観点のいずれかにおいて、仮想ボリュームの記憶領域の先頭から順番に、各実ボリュームの記憶領域のうちユーザにより使用可能な記憶領域が対応付けられている。
【００１６】
第９観点に従う、メインフレーム用ボリュームの仮想化方法は、他の記憶制御装置の有するメインフレーム用の複数の実ボリュームを一つの仮想ボリュームとしてまとめて、メインフレームに提供するためのメインフレーム用ボリュームの仮想化方法であって、メインフレームから仮想ボリュームへのフォーマットライトが要求された場合に、仮想ボリュームのフォーマットに関する制御情報を生成し、生成した制御情報を仮想ボリュームに対応付けて、所定の実記憶領域に記憶させるステップと、フォーマットライトの要求を仮想ボリュームに対応付けられている各実ボリュームへのフォーマットライトの要求に変換して他の記憶制御装置に送信させることにより、他の記憶制御装置内で各実ボリュームのフォーマットに関する他の制御情報をそれぞれ生成させるステップと、メインフレームから仮想ボリュームへのライトコマンドを受信した場合には、制御情報に記憶されているデータサイズとメインフレームが指定するデータサイズとが一致するか否かを判定するステップと、制御情報に記憶されているデータサイズとメインフレームが指定するデータサイズとが一致する場合は、メインフレームから受信するライトデータをキャッシュメモリに記憶させ、メインフレームにライトコマンドの処理が完了した旨を通知するステップと、制御情報に記憶されているデータサイズとメインフレームが指定するデータサイズとが不一致の場合は、他の記憶制御装置にリードコマンドを発行し、ライトコマンドに関する所定のデータを他の記憶制御装置に要求するステップと、他の記憶制御装置から受信したデータに基づいて、メインフレームから受信したライトコマンドを処理するステップと、をそれぞれ実行する。
【００１７】
第１０観点では、第９観点において、ライトコマンドを処理するステップの後に、キャッシュメモリに記憶されたライトデータを他の記憶制御装置に送信し、各実ボリュームのうち対応する実ボリュームに記憶させるステップを更に備える。
【００１８】
第１１観点に従う、コンピュータプログラムは、コンピュータを、他の記憶制御装置の有するメインフレーム用の複数の実ボリュームを一つの仮想ボリュームとしてまとめてメインフレームに提供する仮想化装置として機能させるためのコンピュータプログラムであって、メインフレームから受信したコマンド及びデータを、他の記憶制御装置に送信するためのコマンド及びデータに変換し、かつ、他の記憶制御装置から受信したデータをホストコンピュータに送信するためのデータに変換する、変換機能と、仮想ボリュームのフォーマットに関する制御情報を生成し、仮想ボリュームに対応付けて管理する制御情報生成機能と、変換部と制御情報生成部とを用いて、メインフレームから発行されるコマンドを処理し、その処理結果をメインフレームに通知するコマンド処理機能と、を、コンピュータ上にそれぞれ実現させる。
【００１９】
第１２観点に従う、ホストコンピュータ用共有記憶装置は、ホストコンピュータ及び他の記憶制御装置に接続されるホストコンピュータ用記憶制御装置であって、他の記憶制御装置は、複数のホストコンピュータ用の実ボリュームを備えており、各実ボリュームに対応付けられる仮想ボリュームと、ホストコンピュータから受信したコマンド及びデータを、他の記憶制御装置に送信するためのコマンド及びデータに変換し、かつ、他の記憶制御装置から受信したデータをホストコンピュータに送信するためのデータに変換する、変換部と、仮想ボリュームのフォーマットに関する制御情報を生成し、仮想ボリュームに対応付けて管理する制御情報生成部と、変換部と制御情報生成部とを用いて、ホストコンピュータから発行されるコマンドを処理し、その処理結果をホストコンピュータに通知するコマンド処理部と、を備える。
【発明を実施するための最良の形態】
【００２０】
以下、図面に基づき、本発明の実施の形態を説明する。本実施形態では、以下に詳述するように、他の記憶制御装置２内に存在する複数の実ボリューム２Ｂ（１）〜２Ｂ（３）を、一つの仮想ボリューム１Ｂとして仮想化し、メインフレーム３に提供する。
【００２１】
図１は、本実施形態の概要を示す説明図である。この情報処理システムは、「メインフレーム用記憶制御装置」としてのメインストレージ装置１と、「他の記憶制御装置」としての外部ストレージ装置２と、メインフレーム３とを備えている。メインストレージ装置１から見た場合、外部ストレージ装置２はメインストレージ装置１の外部に存在するストレージ装置であるため、ここでは、外部ストレージ装置と呼ぶ。
【００２２】
メインフレーム３とは、主に企業等の基幹業務に使用される大規模な汎用コンピュータ装置である。メインフレーム３では、ＣＫＤ（Count Key and Data）方式と呼ばれる記録方式により、ディスク円盤にブロックデータを記録する。これに対し、オープン系システムの場合は、ＦＢＡ（Fixed Block Architecture）方式と呼ばれる記録方式により、ブロックデータを記憶する。
【００２３】
ＣＫＤ方式では、各レコード（各ブロック）毎にそれぞれカウント部、キー部及びデータ部の３種類のデータが記録される。カウント部には、そのレコードの番号やデータサイズ等が記憶されており、キー部には、検索対象となるキーが格納される。データ部には、そのレコードに記録されるデータ本体が記憶される。
【００２４】
メインフレーム３とメインストレージ装置１とは、通信経路４を介して接続される。通信経路４は、例えば、ＦＣ−ＳＡＮ（Fibre Channel-SAN（Storage Area Network））のように構成される。メインフレーム３とメインストレージ装置１とは、例えば、ＦＩＣＯＮ（Fibre Connection：登録商標）、ＥＳＣＯＮ（Enterprise System Connection：登録商標）、ＡＣＯＮＡＲＣ（Advanced Connection Architecture：登録商標）、ＦＩＢＡＲＣ（Fibre Connection Architecture：登録商標）のような通信プロトコルを用いて、双方向の通信を行うようになっている。
【００２５】
メインストレージ装置１と外部ストレージ装置２とは、通信経路５を介して接続されている。この通信経路５は、通信経路４と同様に、例えば、ＦＣ−ＳＡＮとして構成することができる。
【００２６】
メインストレージ１は、コントローラ１Ａと、仮想ボリューム１Ｂ及び制御情報１Ｃを備える。コントローラ１Ａは、例えば、コマンド処理部１Ａ１と、コマンド内パラメータ変換部１Ａ２と、レコード内パラメータ変換部１Ａ３と、制御情報生成部１Ａ４とを備えている。
【００２７】
コマンド処理部１Ａ１は、メインフレーム３から発行されたコマンドに基づいて処理を実行し、その処理結果をメインフレーム３に返す機能である。
【００２８】
「コマンド変換部」としてのコマンド内パラメータ変換部１Ａ２は、メインフレーム３から受信したコマンドを外部ストレージ装置２用のコマンドに変換すべく、コマンド内のパラメータを補正する機能である。補正対象のパラメータは、シリンダ番号である。
【００２９】
「データ変換部」としてのレコード内パラメータ変換部１Ａ３は、メインフレーム３から受信したデータの各レコード内のパラメータを補正し、かつ、外部ストレージ装置２から受信したデータの各レコード内のパラメータを補正するための機能である。補正対象のパラメータは、カウント部内のシリンダ番号である。
【００３０】
制御情報生成部１Ａ４は、仮想ボリューム１Ｂのフォーマットライト時に、仮想ボリューム１Ｂのフォーマットに関する制御情報１Ｃを生成し、予め用意される実記憶領域に保存させる機能である。制御情報１Ｃを保存するための実記憶領域としては、例えば、メインストレージ装置１内のメモリ装置やハードディスク装置等を挙げることができる。
【００３１】
外部ストレージ装置２は、コントローラ２Ａと、複数の実ボリューム２Ｂ（１）〜２Ｂ（３）と、各実ボリューム２Ｂ（１）〜２Ｂ（３）毎の制御情報２Ｃ（１）〜２Ｃ（３）とを備える。なお、以下の説明では、特に区別する必要が無い場合等に、実ボリューム２Ｂ（１）〜２Ｂ（３）を実ボリューム２Ｂと、制御情報２Ｃ（１）〜２Ｃ（３）を制御情報２Ｃと呼ぶ場合がある。
【００３２】
コントローラ２Ａは、例えば、コマンド処理部２Ａ１と、制御情報生成部２Ａ４とを備える。コマンド処理部２Ａ１は、メインストレージ装置１から受信したコマンドに応じて処理を行い、その処理結果をメインストレージ装置１に返す機能である。制御情報生成部２Ａ４は、各実ボリューム２Ｂのフォーマットライト時に、各実ボリューム２Ｂのフォーマットに関する制御情報２Ｃをそれぞれ生成し、各実ボリューム２Ｂ内に保存させる機能である。
【００３３】
仮想ボリューム１Ｂは、メインストレージ装置１内に仮想的に設けられる論理ボリュームである。仮想ボリューム１Ｂの実体は、外部ストレージ装置２内の各実ボリューム２Ｂである。仮想ボリューム１Ｂの先頭から順番に、各実ボリューム２Ｂの記憶領域がそれぞれ割り当てられている。つまり、仮想ボリューム１Ｂの有する仮想的な記憶領域を３つに分割して捉えるのならば、第１の仮想記憶領域には第１の実ボリューム２Ｂ（１）の実記憶領域が、第２の仮想記憶領域には第２の実ボリューム２Ｂ（２）の実記憶領域が、第３の仮想記憶領域には第３の実ボリューム２Ｂ（３）の実記憶領域が、それぞれ対応付けられている。
【００３４】
メインフレーム３は、仮想ボリューム１Ｂの実体がどこに存在するかを何ら意識することなく、仮想ボリューム１Ｂに対してライトコマンドやリードコマンドを発行することができる。実際のデータの読み書きは、メインフレーム３のアクセス先に対応する実ボリューム２Ｂに対して行われる。コントローラ１Ａ内のコマンド処理部１Ａ１は、各変換部１Ａ２，１Ａ３を用いてコマンドやライトデータを変換させ、外部ストレージ装置２に送信させる。
【００３５】
各実ボリューム２Ｂは、それぞれ制御情報２Ｃを備える。各制御情報２Ｃは、その実ボリューム２Ｂの各シリンダ毎にそれぞれ生成される。各実ボリューム２Ｂは、複数の（多数の）シリンダを備えており、各シリンダは多数のトラックを備えている。さらに、各トラックは、複数のレコードを備えている。
【００３６】
制御情報２Ｃは、各シリンダの各トラックを構成する各レコードのサイズ等を管理するための情報である。換言すれば、制御情報２Ｃは、各トラックが書込み済であるか否かを示すビットマップ情報であると考えることもできる。制御情報２Ｃは、実ボリューム２Ｂについてフォーマットライトが要求された場合に、コントローラ２Ａ内の制御情報生成部２Ａ４により生成される。生成された制御情報２Ｃは、実ボリューム２Ｂ内の制御情報格納領域に保存される。
【００３７】
仮想ボリューム１Ｂの制御情報１Ｃも、実ボリューム２Ｂの制御情報１Ｃと同様に、フォーマットライト時に制御情報生成部１Ａ４によって生成される。但し、仮想ボリューム１Ｂの制御情報１Ｃは、仮想的なボリューム１Ｂに関する制御情報であり、かつ、仮想ボリューム１Ｂとは別の実記憶領域に保存される点で、実ボリューム２Ｂに関する制御情報２Ｃと異なる。
【００３８】
本システムの動作を説明する。メインフレーム３が仮想ボリューム１Ｂにフォーマットライトを要求した場合、コントローラ１Ａは、そのフォーマットライト要求を各実ボリューム２Ｂ用のフォーマットライト要求に変換する。この変換処理には、各変換部１Ａ２，１Ａ３が使用される。
【００３９】
外部ストレージ装置２は、メインストレージ装置１から受信したフォーマットライト要求に従って、各実ボリューム２Ｂをフォーマットする。その際、制御情報生成部２Ａ４は、各実ボリューム２Ｂの制御情報２Ｃをそれぞれ生成して保存する。
【００４０】
メインストレージ装置１の制御情報生成部１Ａ４は、メインフレーム３からのフォーマットライト要求に基づいて、仮想ボリューム１Ｂの制御情報１Ｃを生成し、予め用意された実記憶領域に格納する。これにより、仮想ボリューム１Ｂの各シリンダ毎に、そのシリンダの各トラックを構成する各レコードのデータサイズ等が判明する。
【００４１】
メインフレーム３がライトコマンドを発行した場合、メインストレージ装置１は、制御情報１Ｃを参照し、メインフレーム３が仮想ボリューム１Ｂの所定位置に書き込もうとするデータのサイズと、その所定位置にフォーマットライト時に設定されたデータサイズとを比較する。
【００４２】
両方のデータサイズが一致する場合、コントローラ１Ａのコマンド処理部１Ａ１は、メインフレーム３から受信したライトデータをコントローラ１Ａ内のキャッシュメモリに記憶し、メインフレーム３にライトコマンドの処理が完了した旨を報告する。
【００４３】
フォーマットライト要求を発行して仮想ボリューム１Ｂを今後どのように使用するかを設定したのは、メインフレーム３である。従って、メインフレーム３により設定されたレコードのデータサイズと、メインフレーム３により書き込まれるレコードのデータサイズとは、通常の場合一致する。以下の説明では、フォーマットライト時に設定されたレコードのデータサイズと更新時（ライト時）のレコードのデータサイズとが一致する場合を、等長ライトを呼ぶ場合がある。等長ライトとは、予め設定されたサイズと等しいサイズでデータを書き込むことを意味する。
【００４４】
旧データの一部を更新して書き戻すというリードモディファイライトとは異なり、等長ライトの場合は、メインフレーム３から受信したライトデータをボリュームにそのまま書き込めばよい。つまり、コントローラ１Ａは、メインフレーム３から受信したライトデータを、コントローラ１Ａ内のキャッシュメモリに格納した時点で、ライトコマンドの処理が完了した旨をメインフレーム３に報告することができる。従って、等長ライトの場合は、ライトコマンドの処理時間を短縮でき、メインストレージ装置１のライト性能を改善できる。
【００４５】
キャッシュメモリ内のライトデータは、所定のタイミングで、外部ストレージ装置２に送信され、実ボリューム２Ｂを構成するディスクドライブに書き込まれる。キャッシュメモリ上のデータをディスクドライブに書き込む処理をデステージングと呼ぶ。逆に、キャッシュメモリにデータを格納する処理をステージングと呼ぶ。
【００４６】
メインストレージ装置１から外部ストレージ装置２にライトデータを転送する場合、コントローラ１Ａは、ライトコマンド内のシリンダ番号を実ボリューム２Ｂのシリンダ番号に変換し、かつ、ライトデータの各レコード内のカウント値の一部を実ボリューム２Ｂのシリンダ番号に変換する。
【００４７】
外部ストレージ装置２のコントローラ２Ａは、メインストレージ装置１から受信したライトコマンドに従って、メインストレージ装置１から受信したライトデータを実ボリューム２Ｂに書き込む。コントローラ２Ａは、書込先の実ボリューム２Ｂに関する制御情報２Ｃを参照し、等長ライトであるか否かを判定する。等長ライトの場合は、コントローラ２Ａ内のキャッシュメモリにライトデータを格納させた時点で、メインストレージ装置１にライトコマンドの処理が完了した旨を報告することができる。
【００４８】
このように構成される本実施形態によれば、メインフレーム用の複数の実ボリューム２Ｂを一つの仮想ボリューム１Ｂとしてまとめてメインフレーム３に提供できる。従って、ボリュームを有効に使用することができ、ユーザの使い勝手が向上する。
なお、メインフレームに限らず他のコンピュータにも、本実施例を適用できる。また、ストレージ装置は、直接メインフレームとコマンドやデータ等の送受信を行う構成でもよいし、あるいは、ホストコンピュータ等を介して送受信を行う構成でもよい。
【００４９】
さらに、本実施例では、仮想ボリューム１Ｂへのフォーマットライト時に、仮想ボリューム１Ｂに関する制御情報１Ｃを作成して保持する。従って、メインフレーム３から等長ライトが要求された場合には、直ちにライト処理を完了することができる。以下、本実施形態について詳細に説明する。
【実施例１】
【００５０】
図２は、本実施例に係る情報処理システムの全体構成を模式的に示す説明である。このシステムは、例えば、メインストレージ装置１０と、外部ストレージ装置２０と、メインフレーム３０と、サーバ４０とを備えている。図１との対応関係を説明する。メインストレージ装置１０は図１中のメインストレージ装置１に、外部ストレージ装置２０は図１中の外部ストレージ装置２に、メインフレーム３０は図１中のメインフレーム３に、それぞれ対応する。コントローラ１１０は図１中のコントローラ１Ａに、コントローラ２１０は図１中のコントローラ２Ａに、それぞれ対応する。さらに、図３に示す仮想ボリューム１２３Ｖは図１中の仮想ボリューム１Ｂに、図３に示す外部ボリューム２２３は図１中の実ボリューム２Ｂに、図３に示す制御情報Ｔ１０（Ｖ）は図１中の制御情報１Ｃに、図３に示す制御情報Ｔ１０（１）−Ｔ１０（３）は図１中の制御情報２Ｃ（１）−２Ｃ（３）に、それぞれ対応する。
【００５１】
図２に示すように、メインストレージ装置１０は、コントローラ１１０と、ディスク搭載部１２０とから構成される。コントローラ１１０は、メインストレージ装置１０の動作を制御する。ディスク搭載部（図中「ＨＤＵ」）１２０は、複数のディスクドライブ１２１を搭載する。
【００５２】
本実施例のメインストレージ装置１０は、外部ストレージ装置２０の有するボリューム２２３をメインストレージ装置１０内に取り込み、そのボリュームがあたかもメインストレージ装置１０内の実ボリュームであるかのようにメインフレーム３０に提供する。従って、メインストレージ装置１０は、必ずしもディスクドライブ１２１を備えている必要はない。上述の通り、メインストレージ装置１０は、外部ストレージ装置２０内のボリュームを利用できるためである。メインストレージ装置１０がディスクドライブ１２１やボリューム１２３を備えない場合でも、本発明は成立する。この場合、メインストレージ装置１０は、メインフレーム用のボリューム仮想化装置として考えることができる。
【００５３】
コントローラ１１０の構成を説明する。コントローラ１１０は、例えば、複数のマイクロプロセッサ１１１，１１２，１１３と、共有メモリ１１４と、キャッシュメモリ１１５と、接続回路部１１６と、を備える。
【００５４】
マイクロプロセッサ１１１，１１２，１１３は、マイクロプロセッサやメモリ、データ転送回路、通信インターフェース回路等を含んで構成される制御基板である。第１のマイクロプロセッサ１１１（ＭＰ１，ＭＰ２）は、上位装置としてのメインフレーム３０またはサーバ４０と通信を行うための制御基板である。第２のマイクロプロセッサ１１２（ＭＰ３，ＭＰ４）は、外部ストレージ装置２０と通信を行うための制御基板である。第３のマイクロプロセッサ１１３（ＭＰ５）は、各ディスクドライブ１２１と通信を行うためのものである。
【００５５】
第１のマイクロプロセッサ１１１のうち図２中の左側に示す２つのマイクロプロセッサ１１１（ＭＰ１）は、メインフレーム用の通信経路ＣＮ１を介して、メインフレーム３０との間で通信を行う。第１のマイクロプロセッサ１１１のうち図２中の右側に示す２つのマイクロプロセッサ１１１（ＭＰ２）は、オープン用の通信経路ＣＮ２を介して、サーバ４０との間で通信を行う。
【００５６】
同様に、第２のマイクロプロセッサ１１２のうち上側の２つのマイクロプロセッサ１１１（ＭＰ３）は、メインフレーム用の通信経路ＣＮ３を介して、外部ストレージ装置２０との間でメインフレーム用の通信を行う。第２のマイクロプロセッサ１１２のうち下側の２つのマイクロプロセッサ１１１（ＭＰ４）は、オープン用の通信経路ＣＮ４を介して、外部ストレージ装置２０との間でオープン用の通信を行う。メインフレーム用の通信は、例えば、ＦＩＣＯＮやＥＳＣＯＮ等の通信プロトコルに従う。オープン用の通信は、例えば、ＦＣＰ（Fibre Channel Protocol）等の通信プロトコルに従う。
【００５７】
本実施例によるシステムには、メインフレーム用ボリュームの仮想化と、オープン用ボリュームの仮想化とを混在させている。以下、メインフレーム用ボリュームの仮想化を中心に説明する。なお、第１のマイクロプロセッサ１１１及び第２のマイクロプロセッサ１１２は、チャネルアダプタと呼ばれる場合がある。第３のマイクロプロセッサ１１３（ＭＰ５）は、ディスクアダプタとも呼ばれる。
【００５８】
共有メモリ（図中「ＳＭ」）１１４は、各マイクロプロセッサ１１１，１１２，１１３によって共有される各種の管理情報等を記憶する。キャッシュメモリ（図中「ＣＭ」）１１５は、メインフレーム３０やサーバ４０から受信したデータと、外部ストレージ装置２０から受信したデータとを記憶する。
【００５９】
接続回路部１１６は、各マイクロプロセッサ１１１，１１２，１１３と共有メモリ１１４及びキャッシュメモリ１１５とをそれぞれ接続させる。各マイクロプロセッサ１１１，１１２，１１３は、接続回路部１１６を介して、共有メモリ１１４及びキャッシュメモリ１１５にアクセスすることができる。
【００６０】
ディスク搭載部１２０は、複数のディスクドライブ１２１を備えている。ディスクドライブ１２１としては、例えば、ＦＣ（Fibre Channel）ディスク、ＳＣＳＩ（Small Computer System Interface）ディスク、ＳＡＴＡディスク、ＡＴＡ（AT Attachment）ディスク、ＳＡＳ（Serial Attached SCSI）ディスク等を用いることができる。
【００６１】
なお、ハードディスクデバイスに限らず、例えば、半導体メモリデバイス（フラッシュメモリデバイスを含む）、光ディスクデバイス、光磁気ディスクデバイス、磁気テープデバイス、フレキシブルディスクデバイス等の、データを読み書き可能な種々の不揮発性記憶デバイスを利用可能である。
【００６２】
各ディスクドライブ１２１の有する物理的記憶領域をＲＡＩＤグループ１２２としてグループ化し、このグループ化された記憶領域に一つまたは複数の論理ボリューム１２３を設定することができる。例えば、４個１組のような複数のディスクドライブ１２１を用いて、冗長化された物理的記憶領域を生成し、この冗長化された記憶領域上に、論理的な記憶領域を設けることができる。なお、１つのディスクドライブ１２１に複数の論理ボリューム１２３を設けることもできる。
【００６３】
外部ストレージ装置２０は、メインストレージ装置１０と同様に、全体動作を制御するコントローラ２１０と、記憶領域を提供するディスク搭載部２２０とを備える。コントローラ２１０は、メインストレージ装置１０と通信を行うためのマイクロプロセッサ２１１（ＭＰ１，ＭＰ２）と、ディスクドライブ２２１と通信を行うためのマイクロプロセッサ２１３（ＭＰ５）と、共有メモリ２１４と、キャッシュメモリ２１５と、接続回路部２１６とを備える。
【００６４】
マイクロプロセッサ２１１（ＭＰ１）は、メインストレージ装置１０との間で、メインフレーム用の通信を行う。マイクロプロセッサ２１１（ＭＰ２）は、メインストレージ装置１０との間で、オープン用の通信を行う。
【００６５】
ディスク搭載部２２０は、複数のディスクドライブ２２１を備える。ＲＡＩＤグループ２２２には、一つ以上の論理ボリューム２２３を設けることができる。外部ストレージ装置２０内の論理ボリューム２２３は、データを格納するための実記憶領域を備えている実ボリュームである。外部ストレージ装置２０内に存在する実ボリュームであるため、以下の説明では、外部ボリューム２２３と呼ぶ場合がある。
【００６６】
図３に基づいて、仮想ボリューム１２３Ｖと外部ボリューム２２３との関係、及び各ボリューム１２３Ｖ，２２３と制御情報Ｔ１０（Ｖ），Ｔ１０（１）−Ｔ１０（３）の関係を説明する。
【００６７】
メインストレージ装置１０内には、仮想ボリューム１２３Ｖが設けられる。仮想ボリューム１２３Ｖの記憶領域（ユーザ領域＃０）には、その先頭から順番に、複数の外部ボリューム２２３が対応付けられている。これについては、図４と共に後述する。
【００６８】
各外部ボリューム２２３は、ユーザ領域（図４中のＵＡ）と制御情報格納領域（図４中のＣＡ）とを備える。ユーザ領域には、ユーザデータが格納される。制御情報格納領域には、制御情報Ｔ１０が格納される。制御情報Ｔ１０の構成は、図６と共に後述する。簡単に言えば、制御情報Ｔ１０は、ユーザ領域の各トラックがどのように使用されるかを示す情報である。
【００６９】
仮想ボリューム１２３Ｖにも、制御情報Ｔ１０（Ｖ）が対応付けられる。仮想ボリューム１２３Ｖは実体を備えない仮想的な存在であるため、制御情報Ｔ１０（Ｖ）は、予め用意された所定の記憶領域に格納される。所定の記憶領域としては、例えば、メインストレージ装置１０内の論理ボリューム１２３、共有メモリ１１４を挙げることができる。
【００７０】
図４は、仮想ボリューム１２３Ｖと複数の外部ボリューム２２３との対応関係を示す説明図である。仮想ボリューム１２３Ｖは、シリンダ番号（以下、ＣＹＬ＃とも呼ぶ）０からシリンダ番号１００１６までの合計１００１７個のシリンダを有しているとする。各外部ボリューム２２３は、ＣＹＬ＃０からＣＹＬ＃３３３８までの合計３３３９個のシリンダをそれぞれ有しているものとする。
【００７１】
仮想ボリューム１２３ＶのＣＹＬ＃０からＣＹＬ＃３３３８までの領域には、第１の外部ボリューム２２３（１）が対応付けられる。仮想ボリューム１２３ＶのＣＹＬ＃３３３９からＣＹＬ＃６６７７までの領域には、第２の外部ボリューム２２３（２）が対応付けられる。仮想ボリューム１２３ＶのＣＹＬ＃６６７８からＣＹＬ＃１００１６には、第３の外部ボリューム２２３（３）が対応付けられる。即ち、複数の外部ボリューム２２３の記憶領域を連結させることにより、仮想ボリューム１２３Ｖを構成している。
【００７２】
詳細は後述するが、メインフレーム３０が仮想ボリューム１２３Ｖの第１領域（ユーザ領域＃１）にアクセスする場合、コントローラ１１０は、コマンド内のシリンダ番号やレコード内のカウント値を変更せずに、外部ボリューム２２３（１）にアクセスすることができる。
【００７３】
メインフレーム３０が仮想ボリューム１２３Ｖの第２領域（ユーザ領域＃２）にアクセスする場合、コントローラ１１０は、ライトコマンドで指定されたシリンダ番号及びレコード内のカウント値を補正する必要がある。仮想ボリューム１２３Ｖの第２領域の各シリンダ番号と、第２領域に対応する外部ボリューム２２３（２）のシリンダ番号とは一致しないためである。この場合、コントローラ１１０は、メインフレーム３０から指定されたＣＹＬ＃から３３３９を減じて、外部ストレージ装置２０にコマンドを発行する。同様に、メインフレーム３０が仮想ボリューム１２３Ｖの第３領域（ユーザ領域＃３）にアクセスする場合、コントローラ１１０は、メインフレーム３０により指定されたＣＹＬ＃から６６７８を減じて、外部ストレージ装置２０にコマンドを発行する。
【００７４】
メインフレーム３０が仮想ボリューム１２３Ｖからデータを読み出す場合、外部ボリューム２２３から読み出されたデータの各レコード内のカウント値も補正する。なお、図４に示すＣＹＬ＃の値は一例であって、本発明はそれらの値に限定されない。
【００７５】
図５は、ボリュームの構成を模式的に示す説明図である。ボリューム（仮想ボリューム１２３Ｖ及び各外部ボリューム２２３）は、図４で示したように、それぞれ多数のシリンダを備えている。
【００７６】
各シリンダは、それぞれ１５個のトラックから構成される。各トラックは、ヘッダ部（図中「ＨＡ」）と、複数のレコードＲ０〜Ｒｎを備える。図５の下側に示すように、各レコードは、カウント部（図中「ＣＯＵＮＴ」）と、キー部（図中「ＫＥＹ」）と、データ部（図中「ＤＡＴＡ」）とを備える。このため、ＣＫＤフォーマットと呼ばれる。
【００７７】
カウント部は、アドレス情報（図中「ＣＣＨＨ」）と、論理レコード番号（図中「Ｒ＃」）と、キー長（図中「ＫＬ」）と、データ長（図中「ＤＬ」）とを備える。アドレス情報のＣＣＨＨのうち、ＣＣは論理シリンダアドレス（ＣＹＬ＃）を示し、ＨＨは論理ヘッドアドレス（トラック番号）を示す。
【００７８】
このように、メインフレーム用のストレージシステムでは、各データの各レコード内に、アドレスやキー長及びデータ長を示す情報がそれぞれ含まれている。これに対し、オープン系のストレージシステムでは、論理ブロックのデータそのものが順番に格納されており、先頭論理ブロックアドレスと論理ブロックの個数を指定するだけで、データの読み書きが可能である。
【００７９】
図６は、制御情報の構造を示す説明図である。仮想ボリューム１２３Ｖの制御情報Ｔ１０（Ｖ）及び各外部ボリューム２２３の制御情報Ｔ１０（１）〜Ｔ１０（３）の構成は、以下の通りである。以下、Ｔ１０（Ｖ），Ｔ１０（１）〜（３）を特に区別する必要が無い場合、Ｔ１０と示す。制御情報Ｔ１０は、メインフレーム３０がＣＫＤフォーマットライトを要求した場合に作成されて保存される。
【００８０】
図６（ａ）に示す通り、各ボリュームは、多数のシリンダを備える。ボリューム内の全シリンダは、所定個ずつのグループに分けられて管理される。図６（ｂ）に示すように、各シリンダグループは、別の所定個ずつのサブグループに分けられて管理される。図６（ｃ），（ｄ）に示すように、各サブグループ内の各シリンダには、それぞれ制御用のデータＣ１０〜Ｃ１４が対応付けられる。即ち、制御情報Ｔ１０は、各シリンダ毎にそれぞれ設けられる。
【００８１】
制御データＣ１０は、そのシリンダを構成する各トラック（図中、トラックを「ＨＤ」と示す場合がある）毎のビットマップである。制御データＣ１１は、第１データサイズである。制御データＣ１２は、第２データサイズである。制御データＨＤは、トラックに関する情報である。制御データＬＲＣ（Longitudinal Redundancy check）は、水平パリティチェックの値である。ＨＤ及びＬＲＣは、本発明と直接的な関係はないため、これ以上の説明を省略する。
【００８２】
図６（ｅ），（ｆ）に示すように、各トラック毎にそれぞれ４ビット（Ｃ１５〜Ｃ１７）が割り当てられる。Ｃ１５は、そのトラック内の各レコードが標準レコードであるか、それとも非標準レコードであるかを示す。標準レコードの場合、Ｃ１５には０がセットされる。非標準レコードの場合、Ｃ１５には１がセットされる。Ｃ１６は予備のビットであり、使用されていない。
【００８３】
Ｃ１７及びＣ１８の２つのビットは、そのトラックを構成する各レコードのサイズを示す情報である。以下、Ｃ１７及びＣ１８の２つのビットを、判定ビットと呼ぶ。第１データサイズＤＬ１に一致する場合、判定ビットには１０がセットされる。第２データサイズＤＬ２に一致する場合、判定ビットには０１がセットされる。第１データサイズ及び第２データサイズのいずれにも一致しない場合、判定ビットには００がセットされる。
【００８４】
図６に示すように、制御情報は各シリンダ毎に作成される。各シリンダの制御情報には、そのシリンダ内の全トラックについて、各トラックに書き込まれるレコードのサイズが示されている。
【００８５】
図７は、メインストレージ装置１０が外部ストレージ装置２０にアクセスするために使用される管理テーブルＴ２０の構成を示す。このテーブルＴ２０は、例えば、仮想ボリューム番号Ｃ２１と、ポート番号Ｃ２２と、外部ストレージ装置番号Ｃ２３と、ポート番号Ｃ２４と、外部ボリューム番号Ｃ２５とを対応付けている。
【００８６】
仮想ボリューム番号Ｃ２１は、メインストレージ装置１０内の仮想ボリューム１２３Ｖを識別する情報である。ポート番号Ｃ２２は、メインストレージ装置１０から外部ストレージ装置２０にコマンドやデータを送信するために使用される通信ポートを識別する情報である。外部ストレージ装置番号Ｃ２３は、外部ストレージ装置２０を識別するための情報である。ポート番号Ｃ２４は、外部ボリューム２２３に対応付けられている通信ポートを識別する情報である。外部ボリューム番号Ｃ２５は、外部ボリューム２２３を識別する情報である。
【００８７】
テーブルＴ２０の構成からわかるように、複数の外部ストレージ装置がそれぞれ有する外部ボリュームを一つの仮想ボリューム１２３Ｖに対応付けることができる。なお、図７に示す項目以外の他の項目をテーブルＴ２０で管理してもよい。例えば、外部ボリューム２２３を構成するディスクドライブの種類、ボリュームサイズ、ＲＡＩＤレベル、空き容量等を管理することもできる。
【００８８】
図８は、コマンド内のパラメータ及びレコード内のカウント値を補正（変換）するために使用されるテーブルＴ３０の構成を示す。このテーブルＴ３０は、例えば、外部ボリューム番号Ｃ３１と、仮想ボリュームの各領域Ｃ３２と、シリンダ番号の補正値Ｃ３３とを対応付けて管理する。シリンダ番号の補正値Ｃ３３は、シーク処理時の補正値Ｃ３３１と、ライト処理時の補正値Ｃ３３２と、リード処理時の補正値Ｃ３３３を備える。
【００８９】
外部ボリューム番号Ｃ３１は、各外部ボリューム２２３を識別する情報である。Ｃ３１の値と図７に示すＣ２５の値は等しい。仮想ボリュームの領域Ｃ３２とは、外部ボリューム２２３が対応付けられている仮想ボリューム１２３Ｖの領域を示す情報である。
【００９０】
シリンダ番号の補正値Ｃ３３は、外部ストレージ装置２０にコマンドを送信等する場合に使用されるシリンダ番号の補正値である。シーク処理時、ライト処理時及びリード処理時のそれぞれについて、仮想ボリュームの領域Ｃ３２に対応する補正値がそれぞれ設定されている。
【００９１】
図９は、ＣＫＤフォーマットライト処理を示すフローチャートである。以下に示す各フローチャートは、各処理の概要を示しており、実際のコンピュータプログラムと相違する場合がある。いわゆる当業者であれば、図示されたステップの変更や削除、新たなステップの追加等を行うことができるであろう。
【００９２】
ＣＫＤフォーマットライト処理は、ボリュームの使用方法を設定する。メインフレーム３０がフォーマットライト要求を発行すると（Ｓ１０）、メインストレージ装置１０は、仮想ボリューム１２３Ｖの制御情報Ｔ１０（Ｖ）を生成し、所定の記憶領域（例えば、共有メモリ１１４）に記憶する（Ｓ１１）。
【００９３】
メインストレージ装置１０は、メインフレーム３０から受信したフォーマットライト要求を、シリンダ番号補正テーブルＴ３０を用いることにより、外部ストレージ装置２０用のフォーマットライト要求に変換する（Ｓ１２）。メインストレージ装置１０は、外部接続管理テーブルＴ２０を用いることにより、Ｓ１２で変換されたフォーマットライト要求を外部ストレージ装置２０に送信する（Ｓ１３）。
【００９４】
外部ストレージ装置２０は、メインストレージ装置１０からフォーマットライト要求を受信すると、そのフォーマットライト要求で指定された外部ボリューム２２３についての制御情報Ｔ１０（（１）〜（３）のいずれか）を作成する（Ｓ１４）。作成された制御情報は、その外部ボリューム２２３の制御情報格納領域に記憶される。
【００９５】
外部ストレージ装置２０はメインストレージ装置１０にデータの転送を要求する（Ｓ１５）。この要求を受けて、メインストレージ装置１０は、メインフレーム３０にデータの転送を要求する（Ｓ１６）。
【００９６】
メインフレーム３０は、メインストレージ装置１０にライトデータを転送する（Ｓ１７）。このライトデータは、例えば、０データである。メインストレージ装置１０は、メインフレーム３０から受信したライトデータをキャッシュメモリ１１５に記憶し（Ｓ１８）、メインフレーム３０にライトコマンドの処理が完了した旨を報告する（Ｓ１９）。
【００９７】
メインストレージ装置１０は、ライトデータの各レコードに含まれているカウント値を外部ボリューム２２３のシリンダ番号に変換し（Ｓ２０）、その変換後のライトデータを外部ストレージ装置２０に送信する（Ｓ２１）。
【００９８】
外部ストレージ装置２０は、メインストレージ装置１０から受信したライトデータをキャッシュメモリ２１５に格納し（Ｓ２２）、メインストレージ装置１０にライトコマンドの処理が完了した旨を報告する（Ｓ２３）。その後、所定のタイミングを見計らって、外部ストレージ装置２０は、キャッシュメモリ２１５に記憶されたライトデータを、外部ボリューム２２３に書き込む（Ｓ２４）。
【００９９】
図１０は、図９中にＳ１１，Ｓ１４で示す制御情報の生成方法を示すフローチャートである。仮想ボリューム１２３Ｖ及び各外部ボリューム２２３のいずれも、以下に述べるように、各シリンダの各トラックが順番にフォーマットされ、制御情報が生成される。
【０１００】
コントローラ（１１０または２１０のいずれかである。）は、最初のシリンダ（Ｓ１１０）の先頭トラックをフォーマットする場合（Ｓ１１１）、コマンド（ＷＲＣＫＤ）で指定されるデータサイズ（ＤＬ）を、第１データサイズＤＬ１として記憶し（Ｓ１１２）、判定ビットに１０をセットする（Ｓ１１３）。
【０１０１】
次のトラック（ＨＤ＃１）をフォーマットする場合（Ｓ１１４）、そのトラックについてコマンドが指定するデータサイズ（ＤＬ）と、既に記憶されている第１データサイズＤＬ１とが、一致するか否かが判定される（Ｓ１１５）。
【０１０２】
一致する場合（S115:YES）、そのトラックの判定ビットには、１０がセットされる（Ｓ１１６）。不一致の場合（S115:NO）、第２データサイズＤＬ２がセットされているか否かを判定する（Ｓ１１８）。ここでは、２番目のトラック（ＨＤ＃１）について説明しているので、第２データサイズＤＬ２は未だセットされていない（S118:NO）。そこで、コントローラは、コマンド（ＷＲＣＫＤ）で指定されたデータサイズをＤＬ２にセットし（Ｓ１１９）、判定ビットを０１にセットする（Ｓ１２０）。
【０１０３】
そして、コントローラは、処理対象シリンダの最終トラックであるか否かを判定する（Ｓ１１７）。処理対象トラックはＨＤ＃１であり、最終トラックではないので（S117:NO）、Ｓ１１４に戻って処理対象トラックの番号を１つ進める。即ち、処理対象トラックは、ＨＤ＃２となる。
【０１０４】
コントローラは、ＨＤ＃２について指定されたデータサイズが、セット済のＤＬ１またはＤＬ２のいずれか一方と一致するか否かを判定する（Ｓ１１５）。ＨＤ＃２のデータサイズがＤＬ１と一致する場合（S115:YES）、コントローラは、判定ビットに１０をセットする（Ｓ１１６）。ＨＤ＃２のデータサイズがＤＬ２と一致する場合（S115:YES）、コントローラは、判定ビットに０１をセットする（Ｓ１１６）。
【０１０５】
ＨＤ＃２について指定されたデータサイズがＤＬ１またはＤＬ２のいずれとも不一致の場合（S115:NO）、ＤＬ２はセット済であるから（S118:YES）、判定ビットには００がセットされる（Ｓ１２１）。
【０１０６】
なお、上記では、ＨＤ＃０のデータサイズとＨＤ＃１のデータサイズとが一致せず、ＤＬ１にはＨＤ＃０で指定されたデータサイズがセットされ、ＤＬ２にはＨＤ＃１で指定されたデータサイズがセットされる場合を説明した。もしも、ＨＤ＃０のデータサイズとＨＤ＃１のデータサイズとが一致し（ＨＤ＃０のデータサイズ＝ＨＤ＃１のデータサイズ＝ＤＬ１）、ＨＤ＃２のデータサイズがＤＬ１と不一致の場合（S115:NO，S118:NO）、ＨＤ＃２のデータサイズがＤＬ２にセットされる（Ｓ１１９）。
【０１０７】
以上の処理（Ｓ１１１〜Ｓ１２１）を、各シリンダの先頭トラックから最終トラックまで実行することにより、処理対象シリンダの制御情報が確定する。ボリュームの各シリンダ毎に上述の処理を実行することにより、ボリューム内の全シリンダについて制御情報が設定される（Ｓ１２２，Ｓ１２３）。外部ボリューム２２３のような実ボリュームの場合は、ユーザデータを記憶するユーザ領域についてのみ制御情報が設定される。
【０１０８】
図１１は、仮想ボリューム１２３Ｖに対する更新処理を示すフローチャートである。メインストレージ装置１０は、メインフレーム３０からライトコマンドを受信すると（Ｓ３０）、そのライトコマンドで指定された書込先トラックに関する制御情報をメインストレージ装置１０が保持しているか否かを判定する（Ｓ３１）。
【０１０９】
制御情報が存在する場合（S31:YES）、メインストレージ装置１０は、共有メモリ１１４またはディスクドライブ１２１から制御情報を読み出してキャッシュメモリ１１５に格納し、書込先トラックに関する制御情報を参照する（Ｓ３２）。
【０１１０】
メインストレージ装置１０は、メインフレーム３０から指定された書込みサイズと制御情報に設定されているデータサイズとが一致するか否か、つまり、等長ライトであるか否かを判定する（Ｓ３３）。
【０１１１】
等長ライトの場合（S33:YES）、メインストレージ装置１０は、メインフレーム３０から受信したライトデータをキャッシュメモリ１１５に記憶し（Ｓ３４）、ライトコマンドの処理が完了した旨をメインフレーム３０に報告する（Ｓ３５）。
【０１１２】
上述の通り、本実施例では、外部ボリューム２２３のフォーマットライト時に、仮想ボリューム１２３Ｖについても制御情報を生成して保持する。従って、通常の場合、メインフレーム３０から指定される書込みサイズと制御情報内のデータサイズとは一致するため、図１１中に二点鎖線で示す範囲（Ｓ３１〜Ｓ３５）で更新処理が完了する。即ち、メインストレージ装置１０は、ライトデータをキャッシュメモリ１１５に格納した時点で、ライトコマンドの処理完了をメインフレーム３０に通知することができ、別のタイミングでデステージ処理を行うことができる。
【０１１３】
もしも、書込先トラックに関する制御情報をメインストレージ装置１０が保持していない場合（S31:NO）、または、等長ライトではない場合（S33:NO）のいずれかの場合、メインストレージ装置１０は、更新対象データがキャッシュメモリ１１５に存在するか否かを判定する（Ｓ３６）。
【０１１４】
更新対象データがキャッシュメモリ１１５に記憶されている場合（S36:YES）、メインストレージ装置１０は、メインフレーム３０から受信したデータと更新対象データとをキャッシュメモリ１１５上でマージする（Ｓ３４）。メインストレージ装置１０は、メインフレーム３０にライトコマンドの完了を通知する（Ｓ３５）。
【０１１５】
更新対象データがキャッシュメモリ１１５に記憶されていない場合（S36:NO）、メインストレージ装置１０は、更新対象データを取得すべく、外部ストレージ装置２０にリードコマンドを発行する（Ｓ３７）。リードコマンド内のパラメータ（シリンダ番号）は、読出し先の外部ボリューム２２３のシリンダ番号に設定される。メインストレージ装置１０は、外部ストレージ装置２０にリードコマンドを発行する場合、メインフレーム３０との間のライトコマンド処理をいったん中止させる。
【０１１６】
外部ストレージ装置２０は、メインストレージ装置１０からのリードコマンドを受信すると、要求されたデータを外部ボリューム２２３から読出し（Ｓ３８）、メインストレージ装置１０に送信する（Ｓ３９）。
【０１１７】
メインストレージ装置１０は、外部ストレージ装置２０から受信したデータをキャッシュメモリ１１５に格納する（Ｓ４０）。メインストレージ装置１０は、キャッシュメモリ１１５上で、受信データ内のカウント値を仮想ボリューム１２３Ｖに応じたカウント値に変換する（Ｓ４１）。その後、メインフレーム３０から同一の書込先について更新が再度要求された場合、Ｓ３６でＹＥＳと判定され、Ｓ３４，Ｓ３５のステップに進む。
【０１１８】
図１２は、メインストレージ装置１０のキャッシュメモリ１１５に蓄積されたライトデータを、外部ストレージ装置２０内の外部ボリューム２２３に書き込むための、デステージ処理を示すフローチャートである。
【０１１９】
メインストレージ装置１０は、外部ストレージ装置２０にライトコマンドを発行する（Ｓ５０）。メインストレージ装置１０は、外部ストレージ装置２０からの転送要求を受信すると（Ｓ５１）、デステージ対象データの各レコードのカウント値を、書込先である外部ボリューム２２３内のシリンダ番号に変換する（Ｓ５２）。メインストレージ装置１０は、キャッシュメモリ１１５に記憶されているデステージ対象データ（即ち、ライトデータである）を、外部ストレージ装置２０に送信する（Ｓ５３）。
【０１２０】
外部ストレージ装置２０は、メインストレージ装置１０から受信したデータをキャッシュメモリ２１５に記憶し（Ｓ５４）、メインストレージ装置１０にライトコマンドの完了を報告する（Ｓ５５）。その後、所定のタイミングを見計らって、外部ストレージ装置２０は、キャッシュメモリ２１５に記憶されたデータを外部ボリューム２２３を構成するディスクドライブ２２１に書き込む（Ｓ５６）。
【０１２１】
なお、上記では、ライトコマンドの完了とディスクドライブ２２１への書込みとが非同期式の場合を説明した。これに代えて、外部ボリューム２２３を構成するディスクドライブ２２１の記憶領域にデータを書き込んだ後で、メインストレージ装置１０にライトコマンドの処理完了を通知する構成でもよい。
【０１２２】
図１３は、メインフレーム３０が仮想ボリューム１２３Ｖからデータを読み出すためのリード処理を示すフローチャートである。メインフレーム３０は、仮想ボリューム１２３Ｖからデータを読み出すべく、リードコマンドを発行する（Ｓ６０）。メインストレージ装置１０は、メインフレーム３０から受信したリードコマンド内のパラメータ（シリンダ番号）を、読出し先の外部ボリューム２２３内のシリンダ番号に変換して、外部ストレージ装置２０にリードコマンドを発行する（Ｓ６１）。
【０１２３】
つまり、メインストレージ装置１０は、仮想ボリューム１２３Ｖの読出し対象領域に対応する外部ボリューム２２３のシリンダ番号を指定して、新たなリードコマンドを生成し、外部ストレージ装置２０に発行する。
【０１２４】
外部ストレージ装置２０は、メインストレージ装置１０からリードコマンドを受信すると（Ｓ６２）、外部ボリューム２２３からデータを読み出してメインストレージ装置１０に送信する（Ｓ６３）。
【０１２５】
メインストレージ装置１０は、外部ストレージ装置２０から受信したデータをキャッシュメモリ１１５に記憶し（Ｓ６４）、受信したデータ内の各レコードのカウント値を仮想ボリューム１２３Ｖに応じて書き換える（Ｓ６５）。即ち、メインストレージ装置１０は、キャッシュメモリ１１５上において、受信データの各レコード内のカウント部のうちＣＣの値を仮想ボリューム１２３Ｖのシリンダ番号に書き換える。
【０１２６】
そして、メインストレージ装置１０は、カウント値の書き換えられたデータをメインフレーム３０に送信する（Ｓ６６）。これにより、メインフレーム１０は、仮想ボリューム１２３Ｖからデータを読み出すことができる（Ｓ６７）。
【０１２７】
実施例は上述の構成を備えるため、複数の外部ボリューム２２３を一つの仮想ボリューム１２３Ｖとして仮想化し、メインフレーム３０に提供することができる。
【０１２８】
さらに、本実施例では、仮想ボリューム１２３Ｖの各トラックがどのように使用されるかを示す制御情報を、メインストレージ装置１０内で作成して保持する。従って、メインフレーム３０からの書込みサイズと仮想ボリューム１２３Ｖ内の書込先に設定されたデータサイズとが一致する等長ライトの場合、直ちに処理することができ、メインストレージ装置１０のライト性能を向上できる。
【０１２９】
等長ライトの場合、メインフレーム３０から受信したライトデータをメインストレージ装置１０内のキャッシュメモリ１１５に記憶させた時点で、メインフレーム３０にライトコマンドの処理完了を通知できる。仮想ボリューム１２３Ｖの制御情報は、メインフレーム３０からのフォーマットライト要求に応じて自動的に作成されるため、通常の場合、メインフレーム３０からのライトコマンドは等長ライトとして処理される。
【０１３０】
従って、仮想ボリューム１２３Ｖの制御情報をメインストレージ装置１０内で作成して保持することにより、メインストレージ装置１０のライト性能を低下させることなく、仮想ボリューム１２３Ｖをメインフレーム３０に提供できる。
【０１３１】
さらに、本実施例では、外部ボリューム２２３のフォーマットライト時に、外部ボリューム２２３に関する制御情報の生成と同期させて、仮想ボリューム１２３Ｖの制御情報を生成する。従って、仮想ボリューム１２３Ｖの制御情報と各外部ボリューム２２３の制御情報とを同時期に作成することができ、速やかにフォーマットライト処理を完了させることができる。メインフレーム３０からのフォーマットライト要求は、メインストレージ装置１０を経由して外部ストレージ装置２０に伝達されるため、その際に仮想ボリューム１２３Ｖの制御情報を同時に生成する方が効率的である。
【０１３２】
これに対し、先に各外部ボリューム２２３の制御情報を作成し、その後に、メインストレージ装置１０が外部ストレージ装置２０から各外部ボリューム２２３の制御情報を収集して、仮想ボリューム１２３Ｖに関する制御情報を生成する方法も考えられる。しかし、この場合は、仮想ボリューム１２３Ｖの制御情報を作成するまでに時間がかかり、フォーマットライト処理の完了に要する時間が長くなる。但し、この方法も、特許請求の範囲から除外されない限り、本発明の範囲に含まれる。
【０１３３】
なお、本発明は、上述した実施の形態に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。
【図面の簡単な説明】
【０１３４】
【図１】本発明の実施形態の概念を示す説明図である。
【図２】本実施例による記憶制御装置を含むシステムの全体構成を示す説明図である。
【図３】仮想ボリュームと各外部ボリュームとの対応及び制御情報の概略を模式的に示す説明図である。
【図４】仮想ボリュームと各外部ボリュームとの具体的な対応関係の一例を模式的に示す説明図である。
【図５】ボリューム内の記憶構成を示す説明図である。
【図６】制御情報の構成を示す説明図である。
【図７】外部接続管理テーブルの説明図である。
【図８】シリンダ番号補正テーブルの説明図である。
【図９】フォーマットライト処理のフローチャートである。
【図１０】制御情報の生成処理を示すフローチャートである。
【図１１】更新処理のフローチャートである。
【図１２】デステージ処理のフローチャートである。
【図１３】リード処理のフローチャートである。
【符号の説明】
【０１３５】
１：メインストレージ装置、１Ａ：コントローラ、１Ａ１：コマンド処理部、１Ａ２：コマンド内パラメータ変換部、１Ａ３：レコード内パラメータ変換部、１Ａ４：制御情報生成部、１Ｂ：仮想ボリューム、１Ｃ：制御情報、２：外部ストレージ装置、２Ａ：コントローラ、２Ａ１：コマンド処理部、２Ａ４：制御情報生成部、２Ｂ：外部ボリューム（実ボリューム）、２Ｃ：制御情報、３：メインフレーム、４，５：通信経路、１０：メインストレージ装置、２０：外部ストレージ装置、３０：メインフレーム、４０：サーバ、１１０：コントローラ、１１１，１１２，１１３：マイクロプロセッサ、１１４：共有メモリ、１１５：キャッシュメモリ、１１６：接続回路部、１２０：ディスク搭載部、１２１：ディスクドライブ、１２２：ＲＡＩＤグループ、１２３：論理ボリューム、１２３Ｖ：仮想ボリューム、２１０：コントローラ、２１１，２１３：マイクロプロセッサ、２１４：共有メモリ、２１５：キャッシュメモリ、２１６：接続回路部、２２０：ディスク搭載部、２２１：ディスクドライブ、２２２：ＲＡＩＤグループ、２２３：外部ボリューム（実ボリューム）。
【図１】
2009175824.tif 000003
【図２】
2009175824.tif 000004
【図３】
2009175824.tif 000005
【図４】
2009175824.tif 000006
【図５】
2009175824.tif 000007
【図６】
2009175824.tif 000008
【図７】
2009175824.tif 000009
【図８】
2009175824.tif 000010
【図９】
2009175824.tif 000011
【図１０】
2009175824.tif 000012
【図１１】
2009175824.tif 000013
【図１２】
2009175824.tif 000014
【図１３】
2009175824.tif 000015