(57)【特許請求の範囲】
【請求項１】
複数の一定サイズのページにて形成される仮想的な記憶領域である仮想ボリュームと、前記仮想ボリューム上にデータを格納するデータ部を纏めたデータ領域と、前記データ部へのアクセスに用いられる制御情報を格納する制御情報部を纏めた制御情報領域と、を形成するストレージコントローラと、
前記仮想ボリュームに実記憶領域を提供する記憶媒体と、
を備え、
前記ストレージコントローラは、
前記仮想ボリュームを設定後、当該仮想ボリュームの容量を一定の第１のサイズの前記データ領域と一定の第２のサイズの前記制御情報領域とを備えたグループの単位で拡張し、
前記仮想ボリューム上の第１のデータ部を対象とするライト要求があった場合に、前記第１のサイズと前記第２のサイズとに基づいて、前記第１のデータ部を含む第１のページへの実記憶領域の割り当ての有無を判断し、当該割り当てが行われていない場合は前記第１のページに実記憶領域を割り当て、前記第１のデータ部へのアクセスに用いられる制御情報を格納する第１の制御情報部を含む第２のページへの実記憶領域の割り当ての有無を判断し、当該割り当てが行われていない場合は前記第２のページに実記憶領域を割り当てるストレージシステム。
【請求項２】
請求項１に記載のストレージシステムであって、
前記ストレージコントローラは、前記グループの単位で前記仮想ボリュームの容量を拡張した場合に、前記データ領域と制御情報領域とを交互に配置するストレージシステム。
【請求項３】
請求項１に記載のストレージシステムであって、
前記ストレージコントローラは、前記仮想ボリュームとして第一の仮想ボリュームと第二の仮想ボリュームとを有し、前記第一の仮想ボリューム上に前記データ領域を形成し、前記第二の仮想ボリューム上に前記制御情報領域を形成するストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶デバイスで構成されたボリュームのデータ配置を管理するためのストレージシステムに関する。
【背景技術】
【０００２】
ストレージサブシステムあるいはストレージ装置として、記憶デバイスに、例えば、ディスクドライブを用いたものが知られている。記憶デバイスに対するデータの入出力処理を制御する場合、ディスクのヘッドを位置決めすることが行われている。
【０００３】
例えば、特許文献１によると、記憶デバイスで構成されたボリュームは一つまたは複数のトラックを備えている。記憶デバイスの実記憶領域は、トラック内の先頭に制御情報部（ホームアドレス、レコード０）があり、その後ろにデータ部（レコード１、レコード２、・・・）が配置されている。メインフレーム（ＭＦ）ホスト計算機が、トラックのリードまたはライトをストレージコントローラに要求した場合、ストレージコントローラは、リードコマンドまたはライトコマンドに従ってディスクから、トラックを読み出し、トラックの制御情報部の値（ホームアドレス）を読んで、トラックの位置情報を確認し、トラックに対するヘッドの位置決めが正しく行われたことを確認した後に、データ部に対してリードまたはライトアクセスを実施する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許公報第５５０６９７９号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
近年、オンライン商取引の活発化に伴い、ネットワークに接続されたストレージ装置に対して発行されるリードまたはライトアクセスの性能向上が望まれる。こうした環境下では、前述したストレージコントローラが、トラックの位置情報を確認する処理を省き、データ部のみをディスクに対して読み書きすることで、リードアクセスまたはライトアクセス処理の高速化を行う。
【０００６】
例えば、ストレージコントローラが、ホスト計算機から、あるトラックに対するリードアクセスまたはライトアクセスを受領した場合に、このトラック内の制御情報の値を参照せず、トラックの先頭にディスクのヘッドを位置づける処理が正しく行われたことを確認する処理を省くときには、ディスクからストレージコントローラへの制御情報部の転送は不要となり、リードアクセスまたはライトアクセス処理を高速化できる。
【０００７】
しかし、特許文献１に記載されている、ボリュームのデータ配置を採用したのでは、ストレージコントローラが、ディスクからデータ部のみを読み出すようにしたとしても、ディスクのヘッドを、トラックの先頭にある制御情報部の位置をスキップして、データ部に位置付ける処理がオーバヘッドとなる。
【０００８】
本発明の目的は、ディスクに対するリード／ライトアクセスの性能を向上させることができるストレージシステムを提供することにある。
【課題を解決するための手段】
【０００９】
前記目的を達成するために、本発明は、複数の一定サイズのページにて形成される仮想的な記憶領域である仮想ボリュームと、前記仮想ボリューム上にデータを格納するデータ部を纏めたデータ領域と、前記データ部へのアクセスに用いられる制御情報を格納する制御情報部を纏めた制御情報領域と、を形成するストレージコントローラと、前記仮想ボリュームに実記憶領域を提供する記憶媒体と、を備え、前記ストレージコントローラは、前記仮想ボリュームを設定後、当該仮想ボリュームの容量を一定の第１のサイズの前記データ領域と一定の第２のサイズの前記制御情報領域とを備えたグループの単位で拡張し、
前記仮想ボリューム上の第１のデータ部を対象とするライト要求があった場合に、前記第１のサイズと前記第２のサイズとに基づいて、前記第１のデータ部を含む第１のページへの実記憶領域の割り当ての有無を判断し、当該割り当てが行われていない場合は前記第１のページに実記憶領域を割り当て、前記第１のデータ部へのアクセスに用いられる制御情報を格納する第１の制御情報部を含む第２のページへの実記憶領域の割り当ての有無を判断し、当該割り当てが行われていない場合は前記第２のページに実記憶領域を割り当てるストレージシステムであることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、制御情報部を参照する必要がない場合、ディスクに対するリード／ライトアクセスの性能を向上させることができる。
【図面の簡単な説明】
【００１１】
【図１】ストレージシステムの全体構成を示すブロック構成図である。
【図２】ストレージコントローラ内で実行するマイクロプログラムの構成を示す構成図である。
【図３】ストレージ装置内の論理構成を示す構成図である。
【図４】ＨＤＥＶ番号とＬＤＥＶ番号との対応関係を管理するための管理テーブルの構成図である。
【図５】ＬＤＥＶ番号とボリューム属性及びボリューム容量の対応関係を管理するための管理テーブルの構成図である。
【図６】ＬＤＥＶ番号とディスク番号との対応関係を管理するための管理テーブルの構成図である。
【図７】ＬＤＥＶ番号とプール番号との対応関係を管理するための管理テーブルの構成図である。
【図８】プール番号とディスク番号との対応関係を管理するための管理テーブルの構成図である。
【図９】３３９０形式のＬＤＥＶ内のデータ配置を説明するための構成図である。
【図１０】３３９０形式のＬＤＥＶ内のデータ配置と実億領域上のデータ配置を説明するための構成図である。
【図１１】分散ユーザデータ領域と分散制御情報領域のサイズを管理するための管理テーブルの構成図である。
【図１２】分散ユーザデータ領域と分散制御情報領域のアドレスを管理するための管理テーブルの構成図である。
【図１３】第１実施例におけるアドレス変換処理を説明するためのフローチャートである。
【図１４】３３９０‐Ａ形式のＬＤＥＶ内のデータ配置を説明するための構成図である。
【図１５】シリンダグループ内の構成を説明するための構成図である。
【図１６】３３９０形式のＬＤＥＶ上のアドレスと３３９０‐Ａ形式のＬＤＥＶ上のアドレスとの対応関係を説明するための構成図である。
【図１７】分散ユーザデータ領域と分散制御情報領域のサイズを管理するための管理テーブルの構成図である。
【図１８】分散ユーザデータ領域と分散制御情報領域のアドレスを管理するための管理テーブルの構成図である。
【図１９】３３９０‐Ａ形式のＬＤＥＶの容量拡張処理を示すフローチャートである。
【図２０】容量拡張後における３３９０形式のＬＤＥＶ上のアドレスと３３９０‐Ａ形式のＬＤＥＶ上のアドレスとの対応関係を説明するための構成図である。
【図２１】第２実施例におけるアドレス変換処理を説明するためのフローチャートである。
【図２２】第３実施例におけるＨＤＥＶとＬＤＥＶとの関係を説明するための構成図である。
【図２３】第３実施例における分散ユーザデータ領域と分散制御情報領域のアドレスを管理するための管理テーブルの構成図である。
【図２４】第４実施例におけるコピー処理を説明するためのフローチャートである。
【図２５】ページ管理テーブルの構成図である。
【図２６】ページ管理ディレクトリの構成図である。
【図２７】第５実施例におけるＭＦホストライトコマンド処理を説明するためのフローチャートである。
【図２８】第６実施例におけるコピーデータ受信処理を説明するためのフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の実施例を説明する。
【００１３】
なお、以下の説明では、「管理テーブル」等の表現にて各種情報を説明することがあるが、各種情報は、テーブル以外のデータ構造で表現されていてもよい。また、データ構造に依存しないことを示すために「管理テーブル」を「管理情報」と呼ぶことができる。
【００１４】
また、以後の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）によって実行されることで、定められた処理を、適宜に記憶資源（例えばメモリ）及び通信インタフェース装置（例えば通信ポート）を用いながら行うため、処理の主語がプロセッサとされてもよい。プロセッサは、ＣＰＵの他に専用ハードウェアを有していても良い。コンピュータプログラムは、プログラムソースから各計算機にインストールされても良い。プログラムソースは、例えば、プログラム配布サーバ又は記憶メディアであっても良い。
【００１５】
また、各要素例えば、ＬＤＥＶ（Ｌｏｇｉｃａｌ  ＤＥＶｉｃｅ）は、番号などで識別可能であるが、識別可能な情報であれば、名前など他種の識別情報が用いられても良い。
【００１６】
以下、図を用いて、本発明の実施例を説明する。以下の図中、同一の部分には同一の符号を付加する。ただし、本発明が本実施例に制限されることは無く、本発明の思想に合致するあらゆる応用例が本発明の技術的範囲に含まれる。また、特に限定しない限り、各構成要素は複数でも単数でも構わない。
【００１７】
＜ストレージシステムの全体構成＞
【００１８】
図１に、ストレージシステムの全体構成を示す。
【００１９】
図１において、ストレージシステムは、例えば、複数のストレージ装置１０１と、複数のメインフレーム（ＭＦ）ホスト計算機１０２と、管理ホスト計算機１０３とを備える計算機システムとして構成される。
【００２０】
各ストレージ装置１０１と各ＭＦホスト計算機１０２は、例えば、ネットワーク１１１を介して接続され、複数のストレージ装置のうち一つのストレージ装置（以下、第一のストレージ装置と称することもある。）１０１と管理ホスト計算機１０３は、例えば、ネットワーク１１３を介して接続される。
【００２１】
第１のストレージ装置１０１は、例えば、ネットワーク１１１を介して、異なるストレージ装置（以下、第二のストレージ装置と称することもある。）１０１に接続される。
【００２２】
各ＭＦホスト計算機１０２は、通信線１１４を介してネットワーク１１１に接続される。
【００２３】
各ストレージ装置１０１は、通信線１１５を介してネットワーク１１１に接続される。
【００２４】
管理ホスト計算機１０３は、通信線１１６を介してネットワーク１１３に接続される。
【００２５】
第１のストレージ装置１０１は、通信線１１７を介してネットワーク１１３に接続される。
【００２６】
なお、上述の通信線１１４〜１１７は、例えば、メタルケーブルや光ファイバケーブル等の有線として構成される。しかし、各ＭＦホスト計算機１０２と各ストレージ装置１０１、第１のストレージ装置１０１と管理計算機１０３、各ＭＦホスト計算機１０２と管理計算機１０３をそれぞれ無線で接続することも可能である。この場合は、通信線１１４〜１１７は省略される。
【００２７】
また、ネットワーク１１１とネットワーク１１３は、共通のネットワークであっても良い。各ネットワーク１１１、１１３は、通信ネットワークであり、例えば、ＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）又はＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）である。
【００２８】
次に、各ストレージ装置１０１の構成を説明する。
【００２９】
各ストレージ装置１０１は、例えば、一つまたは複数のストレージコントローラ１３１と、一つまたは複数のディスク１３２を備える。なお、各ストレージ装置１０１は同一の構成であるので、以下、第一のストレージ装置１０１の構成について説明する。
【００３０】
一つまたは複数のディスク１３２には、データを格納する記憶デバイスとして、少なくとも、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、ＳＡＳ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ）−ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＳＡＴＡ（Ｓｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ）−ＨＤＤが含まれている。なお、ディスク１３２は、それらのうちの少なくとも１つに代えて、またはそれらに加えて、他の種類の物理的な記憶デバイスであっても良い。
【００３１】
一つまたは複数のディスク１３２は、例えば、ファイバチャネルケーブル等の通信線１１２を介して、ストレージコントローラ１３１に接続される。なお、複数のディスク１３２で、一つまたは複数のＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ）グループを構成することができる。
【００３２】
次に、ストレージコントローラ１３１の構成を説明する。
【００３３】
ストレージコントローラ１３１は、各ＭＦホスト計算機１０２から受信したコマンドに従って、ディスク１３２に対するデータの入出力処理、即ち、ディスク１３２へのデータのライト（書き込み）やリード（読み出し）を制御する。
【００３４】
ストレージコントローラ１３１は、アクセス要求元である各ＭＦホスト計算機１０２に対して、実記憶領域が既に割り当てられている状態の論理デバイス、または後述するシン・プロビジョニング機能で用いられる仮想記憶領域で構成される論理デバイスを、アクセス対象の論理デバイスあるいは論理ボリュームとして提供する。
【００３５】
仮想記憶領域からなる論理デバイスは、実記憶領域が既に割り当て済みであってもよいし、割り当て済みでなくともよい。
【００３６】
この際、ストレージコントローラ１３１は、実記憶領域、または仮想記憶領域を、例えば、シリンダ・ヘッド番号（以下、トラック番号）によって参照したり、識別したりすることができる。
【００３７】
ストレージコントローラ１３１は、例えば、記憶資源と、通信インタフェース装置（以下、インタフェース装置を「Ｉ／Ｆ」と略記）と、それらに接続されたＣＰＵ１２２とを有する。
【００３８】
記憶資源は、例えば、主メモリ１２３、及びキャッシュメモリ１２４である。
【００３９】
通信Ｉ／Ｆとしては、例えば、ホストＩ／Ｆ１２１と、管理ホストＩ／Ｆ１２７と、ディスクＩ／Ｆ１２５とを備える。これら主メモリ１２３、キャッシュメモリ１２４、ＣＰＵ１２２、ホストＩ／Ｆ１２１、管理ホストＩ／Ｆ１２７、ディスクＩ／Ｆ１２５は、バス等の通信線からなるネットワーク１２６を介して相互に接続される。管理ホストＩ／Ｆ１２７は、例えば、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）である。
【００４０】
各ＭＦホスト計算機１０２や管理ホスト計算機１０３のハードウェア構成は、一般的な計算機と同じである。すなわち、各ＭＦホスト計算機１０２や管理ホスト計算機１０３は、通信インタフェース装置と、記憶資源と、それらに接続されたＣＰＵとを有する。通信インタフェース装置としては、例えば、ネットワーク１１１を介した通信を行うためのホストバスアダプタ（ＨＢＡ）と、ネットワーク１１３を介した通信を行うためのＮＩＣである。記憶資源は、例えば、メモリや内蔵ＨＤＤで構成される。
【００４１】
図２に、ストレージコントローラ１３１内で実行するマイクロプログラム２３１の構成を示す。
【００４２】
図２において、主メモリ１２３には、一つまたは複数のマイクロプログラム２３１がＣＰＵ１２２によって読み込まれる。このマイクロプログラム２３１には、コマンド制御部２５１、ＲＡＩＤ制御部２５２、構成制御部２５３、アドレス変換部２５４が含まれる。ＣＰＵ１２２が、主メモリ１２３に読み込まれたマイクロプログラム２３１内の各制御部２５１〜２５４を実行することにより、後述する種々の処理が行われる。
【００４３】
キャッシュメモリ１２４は、例えば、各ＭＦホスト計算機１０２から受信したライトデータおよびマイクロプログラム２３１内のＲＡＩＤ制御部２５２がディスク１３２から読み出したデータを一時的に記憶するバッファを構成する。
【００４４】
ホストＩ／Ｆ１２１は、ネットワーク１１１を介して、各ＭＦホスト計算機１０２に接続され、各ＭＦホスト計算機１０２から、アクセス要求としてアクセスコマンド（ライトコマンド又はリードコマンド）を受信し、受信したアクセスコマンドをコマンド制御部２５１に転送する。
【００４５】
管理ホストＩ／Ｆ１２７は、ネットワーク１１３を介して、管理ホスト計算機１０３に接続され、管理ホスト計算機１０３から、例えば、後述するＬＤＥＶの容量拡張を行う指示や、ＬＤＥＶ間のデータコピー指示を受信した場合、受信した指示をコマンド制御部２５１または構成制御部２５３に転送する。
【００４６】
ディスクＩ／Ｆ１２５は、各ディスク１３２と記憶資源（主メモリ１２３とキャッシュメモリ１２４）との間のデータ送受信を行う。ディスクＩ／Ｆ１２５は、通信路１１２を介して各ディスク１３２にそれぞれ接続される。
【００４７】
次に、ストレージ装置１０１の基本的動作を簡単に説明する。
【００４８】
ストレージコントローラ１３１は、ホストＩ／Ｆ１２１を介して、いずれかのＭＦホスト計算機１０２からライトコマンドを受信した場合、ＭＦホスト計算機１０２から受信したライトデータをキャッシュメモリ１２４に記憶する。
【００４９】
ストレージコントローラ１３１は、キャッシュメモリ１２４に記憶しているライトデータを、ディスクＩ／Ｆ１２５を介してディスク１３２に書き込む。なお、ストレージコントローラ１３１は、ライトデータをキャッシュメモリ１２４に記憶した時点で、ライトコマンドの処理が完了した旨をＭＦホスト計算機１０２に通知する構成でもよいし、或いは、ライトデータをディスク１３２に書き込んだ時点で、ライトコマンドの処理が完了した旨をＭＦホスト計算機１０２に通知する構成でもよい。
【００５０】
ＭＦホスト計算機１０２からリードコマンドを受信した場合、ストレージコントローラ１３１は、そのリードコマンドにパラメータで指定されるデータ（リード対象データ）がキャッシュメモリ１２４に記憶されているか否かを調べる。
【００５１】
リード対象データがキャッシュメモリ１２４に記憶されている場合、ストレージコントローラ１３１は、リード対象データをキャッシュメモリ１２４から読み出し、読み出したリード対象データを、ホストＩ／Ｆ１２１を介してＭＦホスト計算機１０２に送信する。一方、リード対象データがキャッシュメモリ１２４に記憶されていない場合は、ストレージコントローラ１３１は、ディスクＩ／Ｆ１２５を介して、一つまたは複数のディスク１３２からリード対象データを読み出し、読み出したリード対象データをキャッシュメモリ１２４に記憶する。その後、ストレージコントローラ１３１は、キャッシュメモリ１２４に記憶されているリード対象データを、ホストＩ／Ｆ１２１を介してＭＦホスト計算機１０２に送信する。
【００５２】
＜ストレージ装置内の論理構成＞
【００５３】
図３に、ストレージ装置１０１内の論理構成を示す。
【００５４】
図３において、ストレージ装置１０１は、各ＭＦホスト計算機１０２や管理ホスト計算機１０３から参照される記憶領域を構成するホスト用論理デバイスとして、一つまたは複数のホスト用論理デバイス（以下、ＨＤＥＶと称することがある。）３２１を有する。
【００５５】
ＨＤＥＶ３２１には、ストレージ装置１０１内で固有のＨＤＥＶ番号が付けられ、ＭＦホスト計算機１０２や管理ホスト計算機１０３は、ＨＤＥＶ番号により、ＨＤＥＶ３２１を識別する。例えば、各ＭＦホスト計算機１０２上のＯＳ３３１は、ＨＤＥＶ３２１に対してリードアクセスまたはライトアクセスを行う。
【００５６】
ＨＤＥＶ３２１は、例えば、トラックの集合（トラック１、トラック２、・・・）で構成されており、各トラックに付与されたシリンダ・ヘッド番号（トラック番号）は、各ＭＦホスト計算機１０２や管理ホスト計算機１０３が、各トラックを識別するときの参照対象となる。
【００５７】
ＨＤＥＶ３２１には、一つまたは複数の論理デバイス（以下、ＬＤＥＶまたはボリュームと称することがある。）３２２が対応付けられている。
【００５８】
ＬＤＥＶ３２２には、ストレージ装置１０１内で固有のＬＤＥＶ番号が付けられ、マイクロプログラム２３１は、ＬＤＥＶ番号により、ＬＤＥＶ３２２を識別する。
【００５９】
ＬＤＥＶ３２２は、例えば、一つまたは複数のディスク１３２内の記憶領域として定義される。また、ＬＤＥＶ３２２は、複数のＲＡＩＤグループで構成される記憶領域として定義されていてもよい。
【００６０】
ＬＤＥＶ３２２は、トラックに対応した複数のデータ部３２５と複数の制御情報部３２６から構成される。各データ部３２５は、トラック（トラック番号）に対応した１または複数のレコード（図示せず）で構成され、各レコードには、ＭＦホスト計算機１０２がリードまたはライトするデータが格納される。各制御情報部３２６は、各トラックのデータ部３２５をアクセスするための制御情報あるいは、各トラックのデータ部３２５を参照または更新するための制御情報で構成される。
【００６１】
この際、ストレージ装置１０１内で、全てのトラックサイズは一定の値である。ストレージ装置１０１内で、全てのデータ部３２５と全ての制御情報部３２６のサイズは一定の値である。
【００６２】
各ディスク１３２には、ストレージ装置１０１内で固有のディスク番号がつけられ、マイクロプログラム２３１は、ディスク番号により、各ディスク１３２を識別する。
【００６３】
また、ＬＤＥＶ３２２は、後述するシン・プロビジョニング機能で用いられる仮想ボリューム上に保存されていてもよい。
【００６４】
ＬＤＥＶ３２２のデータが保存される仮想ボリュームは、この仮想ボリュームに対して実記憶領域を提供するプール３２３と関連付けられる。
【００６５】
プール３２３には、ストレージ装置１０１内で固有のプール番号がつけられ、マイクロプログラム２３１は、プール番号により、プール３２３を識別する。
【００６６】
プール３２３は、一つまたは複数のディスク１３２から構成される。また、プール３２３は、一つまたは複数のＲＡＩＤグループから構成されていてもよい。一つまたは複数のディスク１３２は、ストレージ装置の内部にあってもよいし、外部にあってもよい。
【００６７】
図４に、ＨＤＥＶ番号とＬＤＥＶ番号との対応関係を管理するための管理テーブル４００の構成を示す。
【００６８】
管理テーブル４００は、ＨＤＥＶ番号フィールド４０１とＬＤＥＶ番号フィールド４０２から構成される。ＨＤＥＶ番号は、ストレージ装置１０１内でＨＤＥＶ３２１を一意に識別するための番号であって、ＨＤＥＶ番号フィールド４０１の各エントリには、ＨＤＥＶ３２１に対応した番号が格納される。ＬＤＥＶ番号は、ストレージ装置１０１内でＬＤＥＶ３２２を一意に識別するための番号であって、ＬＤＥＶ番号フィールド４０２の各エントリには、ＬＤＥＶ３２２に対応した番号が格納される。
【００６９】
図５に、ＬＤＥＶ番号とボリューム属性との対応関係を管理するための管理テーブル５００の構成を示す。
【００７０】
管理テーブル５００は、ＬＤＥＶ番号フィールド５０１とボリューム属性フィールド５０２及びボリューム容量フィールド５０３から構成される。ＬＤＥＶ番号は、ストレージ装置１０１内でＬＤＥＶ３２２を一意に識別するための番号であって、ＬＤＥＶ番号フィールド５０１の各エントリには、ＬＤＥＶ３２２に対応した番号が格納される。ボリューム属性は、ＬＤＥＶ３２２のボリューム属性が、通常ボリュームまたは仮想ボリュームであることを特定するものであり、ボリューム属性フィールド５０２の各エントリには、通常ボリュームまたは仮想ボリュームの名称が格納される。
【００７１】
ＬＤＥＶ３２２のボリューム属性が通常ボリュームであるとき、このＬＤＥＶ３２２は、一つまたは複数のディスク１３２内の実記憶領域で構成されたボリュームであることを示す。
【００７２】
ボリューム容量は、通常ボリュームまたは仮想ボリュームにデータを格納することができる最大容量であり、ボリューム容量フィールド５０３の各エントリには、通常ボリュームまたは仮想ボリュームの容量が数値で格納される。
【００７３】
図６に、ＬＤＥＶ番号とディスク番号との対応関係を管理するための管理テーブル６００の構成を示す。
【００７４】
管理テーブル６００は、ＬＤＥＶ３２２のボリューム属性が通常ボリュームであるときの管理テーブルであって、ＬＤＥＶ番号フィールド６０１とディスク番号フィールド６０２から構成される。ＬＤＥＶ番号は、ストレージ装置１０１内でＬＤＥＶ３２２を一意に識別するための番号であって、ＬＤＥＶ番号フィールド６０１の各エントリには、ＬＤＥＶ３２２に対応した番号が格納される。ディスク番号は、ストレージ装置１０１内でディスク１３２を一意に識別するための番号であって、ディスク番号フィールド６０２の各エントリには、ＬＤＥＶ３２２を構成するディスク１３２の番号が格納される。
【００７５】
図７に、ＬＤＥＶ番号とプール番号との対応関係を管理するための管理テーブル７００の構成を示す。
【００７６】
管理テーブル７００は、ＬＤＥＶ３２２のボリューム属性が仮想ボリュームであるときの管理テーブルであって、ＬＤＥＶ番号フィールド７０１とプール番号フィールド７０２から構成される。ＬＤＥＶ番号は、ストレージ装置１０１内でＬＤＥＶ３２２を一意に識別するための番号であって、ＬＤＥＶ番号フィールド７０１の各エントリには、ＬＤＥＶ３２２に対応した番号が格納される。プール番号は、ストレージ装置１０１内でプール３２３を一意に識別するための番号であって、プール番号フィールド７０２の各エントリには、ＬＤＥＶ３２２に対応したプール３２３の番号が格納される。
【００７７】
図８に、プール番号とディスク番号との対応関係を管理するための管理テーブル８００の構成を示す。
【００７８】
管理テーブル８００は、ＬＤＥＶ３２２のボリューム属性が仮想ボリュームであるときの管理テーブルであって、プール番号フィールド８０１とディスク番号フィールド８０２から構成される。プール番号は、ストレージ装置１０１内でプール３２３を一意に識別するための番号であって、プール番号フィールド８０１の各エントリには、プール３２３に対応した番号が格納される。ディスク番号は、ストレージ装置１０１内でディスク１３２を一意に識別するための番号であって、ディスク番号フィールド６０２の各エントリには、プール３２３に実記憶領域が割り当てられるディスク１３２の番号が格納される。
【実施例１】
【００７９】
本実施例は、データ部と制御情報部を異なる領域に格納、ストレージコントローラが、ディスクからデータ部のみを読み書きする場合に、前述した制御情報部の位置をスキップする処理を省き、ディスクのヘッドを直接データ部に位置付けできるようにしたものである。
【００８０】
この際、データ部を配置するユーザデータ領域と、このユーザデータ領域に連なる記憶領域であって、制御情報部を配置する制御情報領域を、それぞれ容量変更の対象となる記憶領域、例えば、容量を拡張または縮小する場合の記憶領域として管理し、記憶領域として、ユーザデータ領域と制御情報領域が並ぶデータ配置（第１データ配置）を採用するボリューム（ＬＤＥＶ）を３３９０形式のボリュームとして管理する。
【００８１】
＜３３９０形式のＬＤＥＶ３２２内のデータ配置＞
図９に、ＨＤＥＶ３２１を構成する３３９０形式のＬＤＥＶ３２２内のデータ配置を示す。
【００８２】
図９において、ＬＤＥＶ３２２の記憶領域９０１は、ユーザデータ領域９０２と制御情報領域９０３から構成される。ユーザデータ領域９０２は、複数のデータ部（トラックに対応した１または複数のレコードを含む）３２５を格納する第１データ領域として構成され、制御情報領域９０３は、ユーザデータ領域９０２に連なり、かつユーザデータ領域９０２に格納された各データ部３２５をそれぞれアクセスするための制御情報で構成された制御情報部３２６を格納する第１制御情報領域として構成される。この際、ストレージコントローラ１３１は、ユーザデータ領域９０２に連続して制御情報領域９０３が配置された記憶領域９０１のデータ配置を第１データ配置とする第１ボリューム形式（以下、３３９０形式と称することもある。）でＬＤＥＶ３２２を管理する。マイクロプログラム２３１は、各トラック内のデータ部３２５をトラック番号により識別し、各トラック内の制御情報部３２６をトラック番号により識別する。
【００８３】
３３９０形式のＬＤＥＶ３２２は、ＨＤＥＶ３２１内のトラック数が大きくなると、ユーザデータ領域９０２および制御情報領域９０３内のトラック数も大きくなる。即ち、３３９０形式のＬＤＥＶ３２２は、容量の拡張に伴ってＨＤＥＶ３２１内のトラック数が増加した場合、ＨＤＥＶ３２１内のトラック数の増加に応じて、ユーザデータ領域９０２および制御情報領域９０３内のトラック数も増加する。
【００８４】
３３９０形式のＬＤＥＶ３２２のデータ配置としては、ユーザデータ領域９０２の手前に、制御情報領域９０３を配置することもできる。
【００８５】
＜３３９０形式のＬＤＥＶ３２２に対するライトコマンドまたはリードコマンド処理の一例＞
【００８６】
以下、ＭＦホスト計算機１０２が、ホストＩ／Ｆ１２１を介して、ストレージコントローラ１３１に対して、ライトコマンドを要求した場合の処理を説明する。ライトコマンドのパラメータは、ＨＤＥＶ番号とＨＤＥＶ３２１内のライト対象トラックのトラック番号と、ライト対象データである。
【００８７】
ストレージコントローラ１３１内のコマンド制御部２５１は、ＭＦホスト計算機１０２からのライトコマンドを受信した場合、ライトコマンドのパラメータであるＨＤＥＶ番号を基に管理テーブル４００を参照し、ＨＤＥＶ番号に対応したＬＤＥＶ番号を取得する。
【００８８】
コマンド制御部２５１は、取得したＬＤＥＶ番号からＬＤＥＶ３２２を特定し、ライト対象トラックのトラック番号を基に、特定したＬＤＥＶ３２２上のトラック番号（ＨＤＥＶ３２１内のライト対象トラックのトラック番号と同一のトラック番号）のデータ部３２５のアドレスと、特定したＬＤＥＶ３２２上のトラック番号（ＨＤＥＶ３２１内のライト対象トラックのトラック番号と同一のトラック番号）の制御情報部３２６のアドレスを計算する。
【００８９】
次に、コマンド制御部２５１は、前述したライトコマンドが、トラック番号の制御情報部３２６を参照する必要があるかどうかを判定する。トラック番号の制御情報部３２６を参照する必要がある場合、例えば、ＭＦホスト計算機１０２が、制御情報部３２６の参照結果として、ディスクに対するヘッドの位置決め状態に関する情報の返送を求めている場合、ＲＡＩＤ制御部２５２は、ＬＤＥＶ番号を基に管理テーブル６００を参照し、制御情報部３２６のアドレスに基づき、一つまたは複数のディスク１３２から、トラック番号の制御情報部３２６を、キャッシュメモリ１２４に読み込む。コマンド制御部２５１は、キャッシュメモリ１２４に読み込まれたトラック番号の制御情報部３２６を参照する。
【００９０】
コマンド制御部２５１が、トラック番号の制御情報部３２６を参照する必要がなければ、前述した制御情報部３２６のリード処理は省略してもよい。
【００９１】
即ち、データ部３２５と制御情報部３２６をそれぞれ異なる領域に格納し、データ部３２５を格納するトラックのサイズを設定した値とした場合、コマンド制御部２５１が、制御情報部３２６の制御情報を参照せずに、ディスク側でディスクのヘッドをデータ部３２５に直接位置づける。この場合、ディスクのヘッド位置付けにおいて、制御情報部３２６の領域をスキップする処理が不要となるので、ストレージコントローラ１３１は、制御情報部３２６を参照するときよりも、リードアクセスまたはライトアクセス処理を高速化できる。
【００９２】
次に、コマンド制御部２５１は、ライト対象データを、キャッシュメモリ１２４に書き込む。
【００９３】
この後、ＲＡＩＤ制御部２５２は、ＬＤＥＶ番号を基に管理テーブル６００を参照し、ＬＤＥＶ番号に対応したディスク番号を取得し、ＬＤＥＶ３２２を構成するディスク１３２を特定し、データ部３２５のアドレスに基づき、キャッシュメモリ１２４上のライト対象データを特定した一つまたは複数のディスク１３２に書き込む。即ち、３３９０形式のデータ配置が実記憶領域上のデータ配置と同じである場合、アドレス変換部２５４によるアドレス変換で得られたアドレスを用いることなく、ＲＡＩＤ制御部２５２は、コマンド制御部２５１の計算結果によるアドレスを用いることで、キャッシュメモリ１２４上のライト対象データを、特定した一つまたは複数のディスク１３２に書き込むことができる。
【００９４】
次に、ストレージコントローラ１３１は、ホストＩ／Ｆ１２１を介して、ライトコマンドの処理が完了した旨をＭＦホスト計算機１０２に通知する。
【００９５】
以上が、ＭＦホスト計算機１０２が、ホストＩ／Ｆ１２１を介して、ストレージコントローラ１３１に対して、ライトコマンドを要求した場合の処理である。
【００９６】
次に、ＭＦホスト計算機１０２が、ホストＩ／Ｆ１２１を介して、ストレージコントローラ１３１に対して、リードコマンドを要求した場合の処理を説明する。リードコマンドのパラメータは、ＨＤＥＶ番号とＨＤＥＶ３２１内のリード対象トラックのトラック番号である。
【００９７】
ストレージコントローラ１３１内のコマンド制御部２５１は、ＭＦホスト計算機１０２からのリードコマンドを受信した場合、リードコマンドのパラメータであるＨＤＥＶ番号を基に管理テーブル４００を参照し、ＨＤＥＶ番号に対応したＬＤＥＶ番号を取得する。
【００９８】
コマンド制御部２５１は、取得したＬＤＥＶ番号でＬＤＥＶ３２２を特定し、リード対象トラックのトラック番号（ＨＤＥＶ３２１内のリード対象トラックのトラック番号と同一のトラック番号）を基に、特定したＬＤＥＶ３２２上のトラック番号のデータ部３２５のアドレスと、リード対象トラックのトラック番号（ＨＤＥＶ３２１内のリード対象トラックのトラック番号と同一のトラック番号）の制御情報部３２６のアドレスを計算する。
【００９９】
次に、コマンド制御部２５１は、前述したリードコマンドが、トラック番号の制御情報部３２６を参照する必要があるかどうかを判定する。トラック番号の制御情報部３２６を参照する必要がある場合、ＲＡＩＤ制御部２５２は、ＬＤＥＶ番号を基に管理テーブル６００を参照し、制御情報部３２６のアドレスに基づき、一つまたは複数のディスク１３２から、トラック番号の制御情報部３２６を、キャッシュメモリ１２４に読み込む。コマンド制御部２５１は、キャッシュメモリ１２４に読み込まれたトラック番号の制御情報部３２６を参照する。トラック番号９４２の制御情報部３２６を参照する必要がなければ、前述した制御情報部３２６のリード処理は省略してもよい。
【０１００】
次に、ＲＡＩＤ制御部２５２は、ＬＤＥＶ番号を基に管理テーブル６００を参照し、ＬＤＥＶ番号に対応したディスク番号を取得してディスク１３２を特定し、データ部３２５のアドレスに基づき、リード対象トラックのトラック番号のデータ部３２５を、特定した一つまたは複数のディスク１３２から、キャッシュメモリ１２４に読み込む。
【０１０１】
ストレージコントローラ１３１は、キャッシュメモリ１２４にある、リード対象トラックのトラック番号のデータ部３２５を、ホストＩ／Ｆ１２１を介して、ＭＦホスト計算機１０２に送信する。
【０１０２】
以上が、ＭＦホスト計算機１０２が、ホストＩ／Ｆ１２１を介して、ストレージコントローラ１３１に対して、リードコマンドを要求した場合の処理である。
【０１０３】
前述したリードコマンドに対する処理では、リード対象トラックのトラック番号のデータ部３２５または制御情報部３２６が、キャッシュメモリ１２４に既に存在していた場合、一つまたは複数のディスク１３２からキャッシュメモリ１２４に、リード対象トラックのトラック番号のデータ部３２５または制御情報部３２６を読み込む処理を省略することができる。
【０１０４】
また、リードコマンドに対する処理でも、コマンド制御部２５１が、制御情報部３２６の制御情報を参照せずに、ディスクのヘッドを直接データ部３２５に位置付けることができるので、ストレージコントローラ１３１は、制御情報部３２６を参照しない場合は、制御情報部３２６をスキップする処理が不要であるため、リードアクセスまたはライトアクセス処理を高速化できる。
【０１０５】
＜３３９０形式のＬＤＥＶ３２２の容量拡張＞
【０１０６】
図１０に、３３９０形式のＬＤＥＶ３２２の容量拡張を実施する際の一例を示す。
【０１０７】
３３９０形式のＬＤＥＶ３２２の容量を変更する必要が生じた場合、例えば、図９に示す３３９０形式のＬＤＥＶ３２２の容量を拡張する必要が生じた場合、アクセス要求元が、アクセス対象のボリュームを３３９０形式のボリュームとして認識できるとともに、コマンド制御部２５１が、ＬＤＥＶ３２２を、容量拡張後でも３３９０形式のＬＤＥＶ３２２としてアクセスできるように、ユーザデータ領域に連続して制御情報領域を形成するデータ配置が採用される。
【０１０８】
具体的には、容量拡張後における３３９０形式のＬＤＥＶ３２２の記憶領域９１０は、分散ユーザデータ領域１００１、１００２と、分散制御情報領域１０１１、１０１２から構成される。
【０１０９】
即ち、容量拡張前のＬＤＥＶ３２２の記憶領域が、分散ユーザデータ領域１００１と分散制御情報領域１０１１で構成され、この記憶領域に、分散ユーザデータ領域１００２と分散制御情報領域１０１２を追加する場合、分散ユーザデータ領域１００１に連続して、分散ユーザデータ領域１００２を、新たなに確保された記憶領域として配置し、分散ユーザデータ領域１００２に連続して分散制御情報領域１０１１を配置し、分散制御情報領域１０１１に連続して、新たに確保された記憶領域として分散制御情報領域１０１２を配置し、記憶領域９１０全体として、ユーザデータ領域に連続して制御情報領域を形成するデータ配置（３３９０形式によるデータ配置）としている。
【０１１０】
一方、ディスク１３２上に構築される実記憶領域９２０は、分散ユーザデータ領域１００１、分散制御情報領域１０１１、分散ユーザデータ領域１００２、分散制御情報領域１０１２の順で構成される。
【０１１１】
即ち、容量拡張前の実記憶領域の記憶領域が、分散ユーザデータ領域１００１と分散制御情報領域１０１１で構成され、この記憶領域に、分散ユーザデータ領域１００２と分散制御情報領域１０１２を追加する場合、分散制御情報領域１０１１に連続して、新たに確保された記憶領域である分散ユーザデータ領域１００２を配置し、分散ユーザデータ領域１００２に連続して、新たに確保された記憶領域である分散制御情報領域１０１２を配置するデータ配置としている。
【０１１２】
この際、マイクロプログラム２３１内の構成制御部２５３は、管理ホストＩ／Ｆ１２７を介して、管理ホスト計算機１０３から容量拡張指示を受領した場合、分散制御情報領域１０１１に連なる実記憶領域として、新たに確保した実記憶領域を形成し、この実記憶領域に、分散ユーザデータ領域１００２と、分散制御情報領域１０１２とを連続して配置する。
【０１１３】
各分散ユーザデータ領域１００１、１００２と分散制御情報領域１０１１、１０１２は、図９の記憶領域９０１に構成されるユーザデータ領域９０２と制御情報領域９０３と同一のもので構成することができる。
【０１１４】
実記憶領域９２０上において、分散ユーザデータ領域１００１と分散制御情報領域１０１１という２つの領域からなる実記憶領域のデータ配置は、３３９０形式のデータ配置となり、分散ユーザデータ領域１００２と分散制御情報領域１０１２という２つの領域からなる実記憶領域のデータ配置は、３３９０形式のデータ配置となる。即ち、実記憶領域９２０上において、３３９０形式のデータ配置が２組構成されたことになる。
【０１１５】
分散ユーザデータ領域１００２の大きさは、管理ホスト計算機１０３上の管理画面において指定される拡張容量によって決まり、例えば、前述したトラックサイズの整数倍となる。
【０１１６】
分散ユーザデータ領域１００１のサイズと分散制御情報領域１０１１のサイズの比は、分散ユーザデータ領域１００２のサイズと分散制御情報領域１０１２のサイズの比に等しい。
【０１１７】
また、記憶領域９１０に配置された分散ユーザデータ領域１００２におけるアドレス１０２１が示すデータ部３２５のトラック番号と、実記憶領域９２０に配置された分散ユーザデータ領域１００２におけるアドレス１０２２が指すデータ部３２５のトラック番号は等しい。
【０１１８】
図１０では、容量拡張後の実記憶領域９２０には、分散ユーザデータ領域１００１、分散制御情報領域１０１１、分散ユーザデータ領域１００２、分散制御情報領域１０１２の順番で、データが配置されることになる（以下、このデータ配置を、実記憶領域上のデータ配置と称することもある）。
【０１１９】
コマンド制御部２５１が参照する記憶領域９１０のデータ配置と、実記憶領域９２０のデータ配置が異なる構成の場合、３３９０形式のデータ配置である記憶領域９１０におけるトラック番号のデータ部３２５を指すアドレス（以下、データアドレスと称することもある）１０２１と、実記憶領域上のデータ配置である実記憶領域９２０におけるトラック番号のデータ部３２５を指すアドレス（以下、データアドレスと称することもある）１０２２は、トラック番号が同一であっても、各分散ユーザデータ領域１００２におけるアドレスの値が異なる。このため、マイクロプログラム２３１内のアドレス変換部２５４は、例えば、記憶領域９１０の分散ユーザデータ領域１００２におけるトラック番号のデータ部３２５を指すアドレス１０２１を、実記憶領域９２０におけるトラック番号のデータ部３２５を指すアドレス１０２２に変換するためのアドレス変換を実行する。
【０１２０】
同様に、マイクロプログラム２３１内のアドレス変換部２５４は、３３９０形式のデータ配置上である記憶領域９１０におけるトラック番号の制御情報部３２６を指すアドレス（以下、制御情報アドレスと称することもある。）を、実記憶領域上のデータ配置である実記憶領域９２０におけるトラック番号の制御情報部３２６を指すアドレス（以下、制御情報アドレスと称することもある。）に変換するためのアドレス変換を行う。
【０１２１】
コマンド制御部２５１は、ＬＤＥＶ３２２の容量拡張後も、アドレス変換部２５４のアドレス変換で得られたアドレスを用いることで、実記憶領域上のデータ配置に従うボリュームを、３３９０形式のボリュームとしてアクセスすることができる。
【０１２２】
＜３３９０形式のデータ配置上のアドレス１０２１と、実記憶領域上のデータ配置におけるアドレス１０２２のアドレス変換処理＞
【０１２３】
図１１に、分散ユーザデータ領域と分散制御情報領域のサイズを管理するための管理テーブル１１００の構成を示す。
【０１２４】
図１１において、管理テーブル１１００は、主メモリ１２３またはキャッシュメモリ１２４に格納されるテーブルであって、ｉフィールド１１０１と、分散ユーザデータ領域ｉのサイズフィールド１１０２と、分散制御情報領域ｉのサイズフィールド１１０３から構成される。ｉフィールド１１０１の各エントリには、分散ユーザデータ領域と分散制御情報領域を識別するための番号が格納される。分散ユーザデータ領域ｉサイズフィールド１１０２の各エントリには、例えば、分散ユーザデータ領域１００１、１００２のサイズが数値（１５０、１００）で格納される。分散制御情報領域ｉのサイズフィールド１１０３の各エントリには、例えば、分散制御情報領域１０１１、１０１２のサイズが数値（１５、１０）で格納される。
【０１２５】
分散ユーザデータ領域と分散制御情報領域のサイズに関する情報は、前述した３３９０形式のボリュームの容量拡張を実施する度に、管理テーブル１１００のエントリに追加される。
【０１２６】
図１１における管理テーブル１１００の各エントリにおいて、分散ユーザデータ領域のサイズと、分散制御情報領域のサイズと、は一定ではない。但し、管理テーブル１１００の各エントリにおいて、分散ユーザデータ領域のサイズと分散制御情報領域のサイズとの比は一定である。
【０１２７】
図１２に、分散ユーザデータ領域と分散制御情報領域のアドレスを管理するための管理テーブル１２００を示す。
【０１２８】
図１２において、管理テーブル１２００は、ｉフィールド１２０１と、分散ユーザデータ領域ｉの先頭アドレスフィールド（３３９０形式）１２０２と、分散ユーザデータ領域ｉの先頭アドレスフィールド（実記憶領域上のデータ配置）１２０３、分散制御情報領域ｉの先頭アドレスフィールド１２０４と、分散制御情報領域ｉの先頭アドレスフィールド（実記憶領域上のデータ配置）１２０５から構成され、例えば、主メモリ１２３またはキャッシュメモリ１２４に格納される。
【０１２９】
ｉフィールド１２０１の各エントリには、分散ユーザデータ領域と分散制御情報領域を識別するための番号が格納される。分散ユーザデータ領域ｉの先頭アドレスフィールド１２０２の各エントリには、例えば、記憶領域９１０における分散ユーザデータ領域１００１、１００２の先頭アドレスが、数値（０、１５０）で格納される。分散ユーザデータ領域ｉの先頭アドレスフィールド１２０３の各エントリには、例えば、実記憶領域９２０における分散ユーザデータ領域１００１、１００２の先頭アドレスが、数値（０、１６５）で格納される。
【０１３０】
分散制御情報領域ｉの先頭アドレスフィールド１２０４の各エントリには、例えば、記憶領域９１０における分散制御情報領域１０１１、１０１２の先頭アドレスが、数値（２５０、２６５）で格納される。分散制御情報領域ｉの先頭アドレスフィールド１２０５の各エントリには、例えば、実記憶領域９２０における分散制御情報領域１０１１、１０１２の先頭アドレスが、数値（１５０、１６５）で格納される。
【０１３１】
分散ユーザデータ領域と分散制御情報領域の先頭アドレスに関する情報は、前述した３３９０形式のボリュームの容量拡張を実施する度に、管理テーブル１２００のエントリに追加される。
【０１３２】
次に、前述した３３９０形式のデータ配置上のトラック番号のデータ部３２５を指すアドレスから、実記憶領域９２０上のデータ配置のトラック番号のデータ部３２５を指すアドレスを計算する処理を図１３のフローチャートに従って説明する。
【０１３３】
マイクロプログラム２３１内のアドレス変換部２５４は、まず、ｉを０とし（Ｓ１１）、管理テーブル１１００、１２００を参照して、３３９０形式上の０番目（ｉ番目）の分散ユーザデータ領域の先頭アドレスとサイズに関する情報を取得し（Ｓ１２）、次に、例えば、記憶領域９１０における分散ユーザデータ領域１００２におけるアドレス１０２１が、０番目（ｉ番目）の分散ユーザデータ領域に含まれるか否かを判定し（Ｓ１３）、このステップＳ１３で否定の判定結果を得たときには、ｉをインクリメント（例えば、ｉを１に）し（Ｓ１４）、ステップＳ１３で肯定の判定結果が得られるまで、ステップＳ１２〜Ｓ１４の処理を繰り返す。
【０１３４】
ステップＳ１３で肯定の判定結果が得られた場合、例えば、記憶領域９１０における分散ユーザデータ領域１００２におけるアドレス１０２１は、２番目の分散ユーザデータ領域１００２に含まれる場合、アドレス変換部２５４は、管理テーブル１１００に格納された各分散ユーザデータ領域と分散制御領域のサイズと、管理テーブル１２００に格納された各分散ユーザデータ領域と分散制御情報領域のアドレスと、３３９０形式のデータ配置上でトラック番号のデータ部３２５を指すアドレス１０２１と、を基に、アドレス１０２１が含まれる分散ユーザデータ領域１００２の番号（２）と、分散ユーザデータ領域１００２の先頭アドレスからアドレス１０２１までのオフセットアドレスと、を計算する（Ｓ１５）。
【０１３５】
次に、アドレス変換部２５４は、分散ユーザデータ領域と分散制御情報領域のアドレスと、分散ユーザデータ領域１００２の番号（２）と、を基に、管理テーブル１２００を参照して、分散ユーザデータ領域１００２の番号（２）が表す分散ユーザデータ領域１００２の先頭アドレス（実記憶領域９２０における分散ユーザデータ領域１００２の先頭アドレス）を取得する（Ｓ１６）。
【０１３６】
最後に、アドレス変換部２５４は、前述した実記憶領域９２０における分散ユーザデータ領域１００２の先頭アドレスと、記憶領域９１０における先頭アドレスからアドレス１０２１までのオフセットアドレスと、を基に、実記憶領域９２０上のトラック番号のデータ部３２５を指すアドレス１０２２を計算する（Ｓ１７）。
【０１３７】
上記処理を実行することで、アドレス変換部２５４は、３３９０形式のデータ配置上のトラック番号のデータ部３２５を指すアドレス１０２１を、実記憶領域９２０上のデータ配置のトラック番号のデータ部３２５を指すアドレス１０２２に変換することができる。
【０１３８】
また、アドレス変換部２５４は、アドレス１０２１をアドレス１０２２に変換する処理と同様の処理を実行することで、前述した３３９０形式のデータ配置上のトラック番号１０３１の制御情報部３２６を指すアドレスから、実記憶領域９２０上のトラック番号の制御情報部３２６を指すアドレスを計算することができる。
【０１３９】
本実施例によれば、トラックの制御情報部３２６をスキップして、ディスクのヘッドをデータ部３２５に位置付ける処理のオーバヘッドを減らせるので、ストレージコントローラ１３１は、トラックの制御情報部３２６を参照するときよりも、ディスクに対するリードアクセスまたはライトアクセスの性能を向上させることができる。
【０１４０】
また、本実施例によれば、３３９０形式の記憶領域９１０の容量が拡張された場合でも、３３９０形式のデータ配置上のトラック番号のデータ部３２５を指すアドレス１０２１を、実記憶領域９２０上のデータ配置のトラック番号のデータ部３２５を指すアドレス１０２２に変換することができるとともに、３３９０形式のデータ配置上のトラック番号の制御情報部３２６を指すアドレスを、実記憶領域９２０上のトラック番号の制御情報部３２６を指すアドレスに変換することができる。
【０１４１】
このため、コマンド制御部２５１は、３３９０形式のデータ配置である、ＬＤＥＶ３２２の容量拡張後も、アドレス変換部２５４のアドレス変換で得られたアドレスを用いることで、実記憶領域上のデータ配置に従うボリュームを、３３９０形式のボリュームとしてアクセスすることができる。
【実施例２】
【０１４２】
本実施例は、一つの分散ユーザデータ領域（第２データ領域）と一つの分散制御情報領域を一つのシリンダグループ（ＣＧ）として、シリンダグループを複数グループ有し、各シリンダグループを容量拡張単位の記憶領域として管理し、記憶領域として、複数のシリンダグループが並ぶデータ配置（第２データ配置）を採用するボリュームを第２ボリューム形式（以下、３３９０−Ａ形式と称することもある。）のボリューム（ＬＤＥＶ３２２）として管理し、３３９０形式のボリュームに関するアドレスを３３９０−Ａ形式のボリュームに関するアドレスに変換するものである。
【０１４３】
＜３３９０‐Ａ形式のＬＤＥＶ３２２内のデータ配置＞
【０１４４】
図１４に、３３９０‐Ａ形式のＬＤＥＶ３２２内のデータ配置を示す。
【０１４５】
図１４において、ＬＤＥＶ３２２の実記憶領域９３０は、分散ユーザデータ領域１４０１と、分散ユーザデータ領域１４０１に連なる分散制御情報領域１４１１を含むシリンダグループ（ＣＧ）１４２１と、分散ユーザデータ領域１４０２と、分散ユーザデータ領域１４０２に連なる分散制御情報領域１４１２を含むシリンダグループ（ＣＧ）１４２２から構成される。各分散ユーザデータ領域１４０１、１４０２は、それぞれ同一のサイズで構成され、各分散制御情報領域１４１１、１４１２もそれぞれ同一のサイズで構成される。即ち、各シリンダグループ（ＣＧ）１４１１、１４２２はそれぞれ同一のサイズで構成され、シリンダグループの容量が、容量拡張の単位になっている。
【０１４６】
この際、ストレージコントローラ１３１は、例えば、シリンダグループ（ＣＧ）１４２１を構成する記憶領域であって、分散ユーザデータ領域（第２データ領域）１４０１に連続して分散制御情報領域（第２制御情報領域）１４１１が配置された実記憶領域９３０のデータ配置を第２データ配置とする第２ボリューム形式（以下、３３９０−Ａ形式と称することもある。）でＬＤＥＶ３２２を管理する。
【０１４７】
３３９０‐Ａ形式のＬＤＥＶ３２２を構成する一つまたは複数のＣＧ１４２１は、ＣＧ番号によって参照されてもよい。また、当該ＬＤＥＶ３２２を構成する一つまたは複数の分散ユーザデータ領域１４０１は、後述する分散ユーザデータ領域の番号によって参照されてもよい。また、当該ＬＤＥＶ３２２を構成する一つまたは複数の分散制御情報領域１４１１は、後述する分散制御情報領域の番号によって参照されてもよい。
【０１４８】
図１５に、シリンダグループ１４２１内の構成を示す。
【０１４９】
シリンダグループ（ＣＧ）１４２１は、分散ユーザデータ領域１４０１と分散制御情報領域１４１１から構成される。分散ユーザデータ領域１４０１は、複数（Ｄ個）のデータ部（トラック１〜Ｄに対応した１または複数のレコードを含む）３２５を格納する第２データ領域として構成される。
【０１５０】
分散制御情報領域１４１１は、分散ユーザデータ領域１４０１に連なり、かつ分散ユーザデータ領域１４０１に格納された各データ部３２５をそれぞれアクセスするための制御情報で構成された複数（Ｄ個）の制御情報部３２６と、各データ部３２５の各トラックにレコードが存在するか否かを示すレコード有無情報で構成された複数（Ｄ個）のレコード有無情報部３２７と、ＬＤＥＶ３２２をストレージコントローラ１３１が管理するためのストレージ機能管理情報３２８と、ストレージコントローラ１３１がシリンダグループを拡張するためのモードか否かを判定するための拡張モード判定情報３２９を格納する第２制御情報領域として構成される。
【０１５１】
この際、マイクロプログラム２３１は、各トラック内のデータ部３２５をトラック番号により識別し、各トラック内の制御情報部３２６をトラック番号により識別する。
【０１５２】
各制御情報部３２６と各レコード有無情報部３２７は、例えば、ビットマップで構成することもできる。レコードは、各トラックのデータ部３２５に一つまたは複数保存される。このレコードは、例えば、ＭＦホスト計算機１０２からのライトデータなどである。
【０１５３】
また、各シリンダグループ１４２１、１４２２において、分散ユーザデータ領域１４０１、１４０２内のトラックのデータ部３２５の数（Ｄ個）と、分散制御情報領域１４１１、１４１２内のトラックの制御情報部３２６の数（Ｄ個）及び分散制御情報領域１４１１、１４１２内のトラックのレコード有無情報部３２７の数（Ｄ個）は等しい。
【０１５４】
図１６に、３３９０形式のＬＤＥＶ３２２上のアドレスと３３９０‐Ａ形式のＬＤＥＶ３２２上のアドレスの対応を示す。
【０１５５】
図１６において、３３９０形式のＬＤＥＶ３２２の記憶領域９１０は、分散ユーザデータ領域１４０１、１４０２、１４０３と、分散制御情報領域１４１１、１４１２、１４１３から構成され、３３９０−Ａ形式のＬＤＥＶの実記憶領域９３０は、分散ユーザデータ領域１４０１と分散制御情報領域１４１１を含むシリンダグループ１４２１と、分散ユーザデータ領域１４０２と分散制御情報領域１４１２を含むシリンダグループ１４２２と、分散ユーザデータ領域１４０３と分散制御情報領域１４１３を含むシリンダグループ１４２３から構成される。
【０１５６】
３３９０形式のボリュームのデータ配置は、分散ユーザデータ領域１４０１、分散ユーザデータ領域１４０２、分散ユーザデータ領域１４０３、分散制御情報領域１４１１、分散制御情報領域１４１２、分散制御情報領域１４１３の順番であり、３３９０‐Ａ形式のボリュームのデータ配置は、シリンダグループ１４２１、シリンダグループ１４２２、シリンダグループ１４２３の順番である。
【０１５７】
３３９０形式のボリュームのデータ配置と３３９０‐Ａ形式のボリュームのデータ配置が異なる構成を採用すると、３３９０形式のデータ配置である記憶領域９１０におけるトラック番号のデータ部３２５を指すアドレスと、３３９０−Ａ形式のデータ配置である実記憶領域９３０におけるトラック番号のデータ部３２５を指すアドレスは、トラック番号が同一であっても、各分散ユーザデータ領域や各分散制御情報領域におけるアドレスの値が異なる。このため、マイクロプログラム２３１内のアドレス変換部２５４は、例えば、記憶領域９１０の分散ユーザデータ領域１４０３におけるトラック番号のデータ部３２５を指すアドレス１０３１を、実記憶領域９３０におけるトラック番号のデータ部３２５を指すアドレス１０３２に変換するためのアドレス変換を実行する。
【０１５８】
同様に、マイクロプログラム２３１内のアドレス変換部２５４は、３３９０形式のデータ配置上である記憶領域９１０におけるトラック番号の制御情報部３２６を指すアドレスを、３３９０−Ａ形式のデータ配置である実記憶領域９３０におけるトラック番号の制御情報部３２６を指すアドレスに変換するためのアドレス変換を行う。
【０１５９】
コマンド制御部２５１は、アドレス変換部２５４のアドレス変換により得られたアドレスを用いることで、実記憶領域上は３３９０‐Ａ形式のデータ配置に従うＬＤＥＶ３２２を、３３９０形式のＬＤＥＶ３２２としてアクセスすることができる。即ち、コマンド制御部２５１は、３３９０形式のデータ配置のＬＤＥＶ３２２にアクセスしても、３３９０形式のデータ配置のＬＤＥＶ３２２にアドレスが、アドレス変換部２５４のアドレス変換によって、３３９０‐Ａ形式のデータ配置に従うＬＤＥＶ３２２のアドレスが変換されるので、結果として、実記憶領域上のデータ部３２５をアクセスすることができる。
【０１６０】
＜３３９０‐Ａ形式のＬＤＥＶ３２２の容量拡張＞
【０１６１】
図１７に、分散ユーザデータ領域と分散制御情報領域のサイズを管理するための管理テーブル１７００の構成を示す。
【０１６２】
図１７において、管理テーブル１７００は、３３９０‐Ａ形式のＬＤＥＶ３２２を管理するためのテーブルとして、分散ユーザデータ領域長フィールド１７０１と、分散制御情報領域長フィールド１７０２から構成され、例えば、主メモリ１２３またはキャッシュメモリ１２４に格納される。分散ユーザデータ領域長フィールド１７０１のエントリには、各分散ユーザデータ領域共通の長さを示す情報が数値で格納される。分散制御情報領域長フィールド１７０２のエントリには、各分散制御情報領域共通の長さを示す情報が数値で格納される。
【０１６３】
図１８に、分散ユーザデータ領域と分散制御情報領域のアドレスを管理するための管理テーブル１８００の構成を示す。
【０１６４】
図１８において、管理テーブル１８００は、ｉフィールド１８０１と、分散ユーザデータ領域ｉの先頭アドレスフィールド（３３９０形式）１８０２と、分散ユーザデータ領域ｉの先頭アドレスフィールド（３３９０−Ａ形式のデータ配置）１８０３、分散制御情報領域ｉの先頭アドレスフィールド（３３９０形式）１８０４と、分散制御情報領域ｉの先頭アドレスフィールド（３３９０−Ａ形式のデータ配置）１８０５から構成され、例えば、主メモリ１２３またはキャッシュメモリ１２４に格納される。
【０１６５】
ｉフィールド１２０１の各エントリには、分散ユーザデータ領域と分散制御情報領域を識別するための番号が格納される。分散ユーザデータ領域ｉの先頭アドレスフィールド１８０２の各エントリには、例えば、記憶領域９１０における分散ユーザデータ領域１４０１、１４０２の先頭アドレスが数値（０、１００）で格納される。分散ユーザデータ領域ｉの先頭アドレスフィールド１８０３の各エントリには、例えば、実記憶領域９３０における分散ユーザデータ領域１４０１、１４０２の先頭アドレスが数値（０、１５０）で格納される。
【０１６６】
分散制御情報領域ｉの先頭アドレスフィールド１８０４の各エントリには、例えば、記憶領域９１０における分散制御情報領域１４１１、１４１２の先頭アドレスが数値（５００、５５０）で格納される。分散制御情報領域ｉの先頭アドレスフィールド１８０５の各エントリには、例えば、実記憶領域９３０における分散制御情報領域１４１１、１４１２の先頭アドレスが数値（１００、２５０）で格納される。
【０１６７】
各分散ユーザデータ領域と各分散制御情報領域の先頭アドレスに関する情報は、３３９０形式のボリュームの容量拡張を実施する度に、管理テーブル１８００のエントリに追加される。
【０１６８】
次に、３３９０‐Ａ形式のＬＤＥＶ３２２の容量拡張処理を図１９のフローチャートに従って説明する。
【０１６９】
管理ホスト計算機１０３が、管理ホストＩ／Ｆ１２７を介して、構成制御部２５３にＬＤＥＶ３２２の容量拡張指示を行うと、構成制御部２５３は、管理テーブル１７００を参照し、分散ユーザデータ領域のサイズ（１００）と分散制御情報領域のサイズ（５０）を取得する（Ｓ２１）。
【０１７０】
次に、構成制御部２５３は、管理ホスト１０３において指定された拡張容量が、取得した分散ユーザデータ領域のサイズ（１００）の整数倍であるかどうかをチェックする（Ｓ２２）。
【０１７１】
この管理画面で指定される拡張容量が、分散ユーザデータ領域のサイズ（１００）の整数倍でない場合、構成制御部２５３は、このＬＤＥＶ３２２の容量拡張は失敗したことを、管理ホストＩ／Ｆ１２７を介して、管理ホスト計算機１０３に通知して、容量拡張処理を終了する。
【０１７２】
一方、拡張容量が、分散ユーザデータ領域のサイズ（１００）の整数倍である場合、構成制御部２５３は、拡張容量を分散ユーザデータ領域のサイズ（１００）で割った商を、拡張シリンダグループ数として、主メモリ１２３に保存する。
【０１７３】
次に、構成制御部２５３は、前述した拡張シリンダグループ数の数だけ、シリンダグループ（ＣＧ）を保存できる記憶領域（以下、拡張ＣＧ領域と称することもある。）を確保する（Ｓ２３）。この場合、容量拡張において、確保する拡張ＣＧ領域のサイズは、拡張前領域の容量単位であるＣＧのサイズの整数倍である。
【０１７４】
この後、構成制御部２５３は、拡張する容量分のＣＧ領域確保に成功したか否かを判定し（Ｓ２４）、拡張ＣＧ領域の確保に失敗した場合、管理ホストＩ／Ｆ１２７を介して、ＬＤＥＶ３２２の容量拡張に失敗したことを管理ホスト計算機１０３に通知して、容量拡張処理を終了する。
【０１７５】
拡張ＣＧ領域の確保に成功した場合、構成制御部２５３は、ボリューム管理情報内のボリューム容量に変更後のサイズを設定し（Ｓ２５）、ホストＩ／Ｆ１２１を介して、ＭＦホスト計算機１０２に対して容量変更が行われたことを通知するとともに、容量拡張が成功したことを通知し、このルーチンでの処理を終了する。
【０１７６】
なお、拡張ＣＧ領域上に存在する、一つまたは複数の分散制御情報領域は予め初期化していてもいいし、していなくても良い。
【０１７７】
また、容量拡張指示は、前述したＭＦホスト計算機１０２およびストレージ装置１０１からなるストレージシステムがオンライン中に行ってもよい。
【０１７８】
図２０に、容量拡張後における３３９０形式のＬＤＥＶ３２２上のアドレスと３３９０‐Ａ形式のＬＤＥＶ３２２上のアドレスの対応を示す。
【０１７９】
マイクロプログラム２３１内の構成制御部２５３が、管理ホストＩ／Ｆ１２７を介して、管理ホスト計算機１０３から容量拡張指示を受領すると、構成制御部２５３は、３３９０形式のＬＤＥＶ３２２上のデータ配置として、分散ユーザデータ領域１４０３の後に、分散ユーザデータ領域１４０４、１４０５を配置し、３３９０−Ａ形式のＬＤＥＶ３２２上のデータ配置として、シリンダグループ１４２３の後ろに、新たに確保した実記憶領域として、拡張シリンダグループ１４２４、１４１５を配置する。
【０１８０】
図２０において、３３９０形式のＬＤＥＶ３２２の記憶領域９１０は、分散ユーザデータ領域１４０１、１４０２、１４０３、１４０４、１４０５と、分散制御情報領域１４１１、１４１２、１４１３、１４１４、１４１５から構成され、３３９０−Ａ形式のＬＤＥＶの実記憶領域９３０は、分散ユーザデータ領域１４０１と分散制御情報領域１４１１を含むシリンダグループ１４２１と、分散ユーザデータ領域１４０２と分散制御情報領域１４１２を含むシリンダグループ１４２２と、分散ユーザデータ領域１４０３と分散制御情報領域１４１３を含むシリンダグループ１４２３と、分散ユーザデータ領域１４０４と分散制御情報領域１４１４を含む拡張シリンダグループ１４２４と、分散ユーザデータ領域１４０５と分散制御情報領域１４１５を含む拡張シリンダグループ１４２５から構成される。
【０１８１】
３３９０形式のボリュームのデータ配置は、分散ユーザデータ領域１４０１、分散ユーザデータ領域１４０２、分散ユーザデータ領域１４０３、分散ユーザデータ領域１４０４、分散ユーザデータ領域１４０５、分散制御情報領域１４１１、分散制御情報領域１４１２、分散制御情報領域１４１３、分散制御情報領域１４１４、分散制御情報領域１４１５の順番であり、実記憶領域となる３３９０‐Ａ形式のボリュームのデータ配置は、シリンダグループ（ＣＧ）１４２１、シリンダグループ１４２２、シリンダグループ１４２３、拡張シリンダグループ１４２４、拡張シリンダグループ１４２５の順番である。
【０１８２】
３３９０形式のボリュームのデータ配置と３３９０‐Ａ形式のボリュームのデータ配置が異なる構成を採用すると、３３９０形式のデータ配置である記憶領域９１０におけるトラック番号のデータ部３２５を指すアドレスと、３３９０−Ａ形式のデータ配置である実記憶領域９３０におけるトラック番号のデータ部３２５を指すアドレスは、トラック番号が同一であっても、各分散ユーザデータ領域や各分散制御情報領域におけるアドレスの値が異なる。このため、マイクロプログラム２３１内のアドレス変換部２５４は、例えば、記憶領域９１０の分散ユーザデータ領域１４０５におけるトラック番号のデータ部３２５を指すアドレス１０５１を、実記憶領域９３０におけるトラック番号のデータ部３２５を指すアドレス１０５２に変換するためのアドレス変換を実行する。
【０１８３】
同様に、マイクロプログラム２３１内のアドレス変換部２５４は、３３９０形式のデータ配置上である記憶領域９１０におけるトラック番号の制御情報部３２６を指すアドレスを、３３９０−Ａ形式のデータ配置である実記憶領域９３０におけるトラック番号の制御情報部３２６を指すアドレスに変換するためのアドレス変換を行う。
【０１８４】
コマンド制御部２５１は、３３９０‐Ａ形式のＬＤＥＶ３２２の容量拡張後も、アドレス変換部２５４のアドレス変換により得られたアドレスを用いることで、実記憶領域上は３３９０‐Ａ形式のデータ配置に従うＬＤＥＶ３２２を、３３９０形式のＬＤＥＶ３２２としてアクセスすることができる。
【０１８５】
次に、３３９０形式のボリューム上のトラック番号のデータ部を指すアドレス１０５１から、３３９０‐Ａ形式のボリューム上のトラック番号のデータ部を指すアドレス１０５２を計算する処理を図２１のフローチャートに従って説明する。
【０１８６】
マイクロプログラム２３１内のアドレス変換部２５４は、アドレス変換処理の開始とともに、３３９０形式のデータ配置上でトラック番号のデータ部３２５を指すアドレス１０５１を基に、管理テーブル１７００と管理テーブル１８００を参照し、アドレス１０５１が含まれる、３３９０形式の分散ユーザデータ領域１４０５の番号（５）と、３３９０形式の分散ユーザデータ領域１４０５の先頭アドレス（４００）からアドレス１０５１までのオフセットアドレスと、を計算する（Ｓ３１）。
【０１８７】
次に、アドレス変換部２５４は、アドレス１０５１が含まれる、３３９０形式の分散ユーザデータ領域１４０５の番号（５）と、３３９０形式の分散ユーザデータ領域１４０５の先頭アドレス（４００）からアドレス１０５１までのオフセットアドレスと、を基に、管理テーブル１８００を参照して、分散ユーザデータ領域１４０５の番号（５）が表す、３３９０−Ａ形式の分散ユーザデータ領域１４０５の先頭アドレス（６００）を取得する（Ｓ３２）。
【０１８８】
最後に、アドレス変換部２５４は、取得した３３９０−Ａ形式上の分散ユーザデータ領域１４０５の先頭アドレス（６００）と、３３９０形式の分散ユーザデータ領域１４０５の先頭アドレス（４００）からアドレス１０５１までのオフセットアドレスと、を基に、３３９０‐Ａ形式上のトラック番号のデータ部３２５を指すアドレス１０５２を計算し（Ｓ３３）、このルーチンでの処理を終了する。
【０１８９】
同様に、アドレス変換部２５４は、前述した３３９０形式のデータ配置上のトラック番号の制御情報部３２６を指すアドレスから、３３９０‐Ａ形式上のトラック番号の制御情報部３２６を指すアドレスを計算することもできる。
【０１９０】
＜３３９０‐Ａ形式のＬＤＥＶ３２２に対するリードコマンド処理の一例＞
【０１９１】
次に、ストレージコントローラ１３１が、ホストＩ／Ｆ１２１を介して、ＭＦホスト計算機１０２からリードコマンドを受信した場合の処理を説明する。
【０１９２】
マイクロプログラム２３１内のコマンド制御部２５１は、前述した３３９０形式のＬＤＥＶ３２２内のリード対象トラックのトラック番号のデータ部３２５のアドレスを計算し、計算結果をアドレス変換部２５４に通知する。
【０１９３】
次に、アドレス変換部２５４は、計算で得られたアドレスを基に実記憶領域上のトラックのデータ部３２５のアドレスと制御情報部３２６のアドレスを計算し、これらの値をコマンド制御部２５１に通知する。この際、ＬＤＥＶ３２２の実記憶領域上のデータ配置は３３９０‐Ａ形式に従って構成されるものとする。
【０１９４】
コマンド制御部２５１が受信したアドレスが指すトラック番号のデータ部３２５と、コマンド制御部２５１が受信したアドレスが指すトラック番号の制御情報部３２６がキャッシュメモリ１２４に記憶されていない場合、コマンド制御部２５１は、ＲＡＩＤ制御部２５２にデータの読み出しを指示する。ＲＡＩＤ制御部２５２は、ディスクＩ／Ｆ１２５を介して、一つまたは複数のディスク１３２から、各アドレスに対応するデータを読み出し、それぞれ読み出したデータをキャッシュメモリ１２４に記憶する。
【０１９５】
コマンド制御部２５１が受信したアドレスが指すトラック番号のデータ部３２５と、コマンド制御部２５１が受信したアドレスが指すトラック番号の制御情報部３２６がキャッシュメモリ１２４に記憶されている場合、コマンド制御部２５１は、アドレスが指すトラックのデータ部３２５をキャッシュメモリ１２４から読み出し、アドレスが指すトラックの制御情報の値を確認した後に、キャッシュメモリ１２４から読み出したデータ部３２５をホストＩ／Ｆ１２１を介して、ＭＦホスト計算機１０２に送信する。
【０１９６】
前述したリードコマンド処理のアドレス変換に関わる処理は、ライトコマンド処理においても同様に実行することができる。
【０１９７】
本実施例によれば、コマンド制御部２５１は、３３９０‐Ａ形式のＬＤＥＶ３２２の容量拡張後も、アドレス変換部２５４のアドレス変換により得られたアドレスを用いることで、実記憶領域上は３３９０‐Ａ形式のデータ配置に従うＬＤＥＶ３２２を、３３９０形式のＬＤＥＶ３２２としてアクセスすることができる。
【実施例３】
【０１９８】
本実施例は、実記憶領域上のボリュームであって、３３９０−Ａ形式のボリュームを複数ボリューム用意し、一方のボリュームに分散ユーザデータ領域を配置し、他方のボリュームに分散制御情報領域を配置して、実記憶領域上のボリュームを管理するものである。
【０１９９】
＜ユーザデータ領域と制御情報領域を異なるボリュームに保存して管理する方式＞
【０２００】
図２２に、シリンダグループ１４２１内の分散ユーザデータ領域１４０１と分散制御情報領域１４１１を違うボリュームに保存して管理する一例を示す。
【０２０１】
図２２において、ＨＤＥＶ２２０１は、ＨＤＥＶ３２１と同一の構成であり、このＨＤＥＶ２２０１には、複数（ｍ個）のトラックが配置され、２つのＬＤＥＶ２２０２、２２０３が対応付けられている。ＬＤＥＶ２２０２は、複数（ｎ個）の分散ユーザデータ領域１４０１、・・・を格納するボリュームとして構成され、ＬＤＥＶ２２０３は、複数（ｎ個）の分散制御情報領域１４１１、・・・を格納するボリュームとして構成される。
【０２０２】
この際、シリンダグループ１４２１を分散ユーザデータ領域１４０１と分散制御情報領域１４１１で構成した場合、分散ユーザデータ領域１４０１がＬＤＥＶ２２０２に配置され、分散制御情報領域１４１１が、ＬＤＥＶ２２０２とは異なるＬＤＥＶ２２０３に配置される。このため、ＬＤＥＶ２２０２を大容量のもので構成し、ＬＤＥＶ２２０３を小容量のもので構成しても、ボリュームの容量拡張に対応することができる。
【０２０３】
また、例えば、ＬＤＥＶ２２０２に保存した分散ユーザデータ領域１４０１と、ＬＤＥＶ２２０３に保存した分散ユーザデータ領域１４０１に対応する分散制御情報領域１４１１を組み合わせて、一つのシリンダグループと見なしてもよい。さらに、ＬＤＥＶ２２０２の各分散ユーザデータ領域と、各分散ユーザデータ領域に対応するＬＤＥＶ２２０３の制御情報領域を組み合わせた一つまたは複数のシリンダグループを纏めて、３３９０‐Ａ形式のＬＤＥＶと見なしてもよい。
【０２０４】
図２３に、分散ユーザデータ領域と分散制御情報領域のアドレスを管理するための管理テーブル２３００の構成を示す。
【０２０５】
図２３において、管理テーブル２３００は、分散ユーザデータ領域番号フィールド２３０１と、ＬＤＥＶ内のアドレスフィールド２３０２と、分散制御情報領域番号フィールド２３０３と、ＬＤＥＶ内のアドレスフィールド２３０４から構成される。
【０２０６】
分散ユーザデータ領域番号フィールド２３０１の各エントリには、ＬＤＥＶ２２０２内に配置される分散ユーザデータ領域の番号が格納され、ＬＤＥＶ内のアドレスフィールド２３０２の各エントリには、ＬＤＥＶ２２０２内に配置される分散ユーザデータ領域のアドレスが格納される。分散制御情報領域番号フィールド２３０３の各エントリには、ＬＤＥＶ２２０３内に配置される分散制御情報領域の番号が格納され、ＬＤＥＶ内のアドレスフィールド２３０４の各エントリには、ＬＤＥＶ２２０３内に配置される分散制御情報領域のアドレスが格納される。
【０２０７】
次に、ＭＦホスト計算機１０２が、前述したＨＤＥＶ２２０１に対してリードアクセスを行う場合の処理を説明する。
【０２０８】
ＭＦホスト計算機１０２によるリードアクセスのパラメータは、例えば、ＨＤＥＶ番号とトラック番号である。
【０２０９】
ＭＦホスト計算機１０２が、リードコマンドをストレージコントローラ１３１に送信すると、マイクロプログラム２３１内のコマンド制御部２５１は、ＭＦホスト計算機１０２からのリードコマンドのパラメータに従ってＨＤＥＶ２２０１を参照する。この後、マイクロプログラム２３１内のコマンド制御部２５１は、前述したＨＤＥＶ番号とトラック番号を基に、ＬＤＥＶ番号と、３３９０形式のＬＤＥＶ上におけるトラック内のデータ部３２５のアドレスと、制御情報部３２６のアドレスと、を計算し、アドレス変換部２５４に通知する。
【０２１０】
アドレス変換部２５４は、管理テーブル１７００と管理テーブル１８００を参照して、分散ユーザデータ領域と分散制御情報領域のサイズと、３３９０形式の分散ユーザデータ領域と分散制御情報領域の先頭アドレスを取得し、取得した情報と、トラック内のデータ部３２５のアドレスと、制御情報部３２６のアドレスと、に基づき、３３９０‐Ａ形式のＬＤＥＶ内のＬＤＥＶ番号と、トラック番号と、を計算し、コマンド制御部２５１に通知する。
【０２１１】
コマンド制御部２５１は、ホストＩ／Ｆ１２１を介して、ＭＦホスト計算機１０２からリードアクセスを受領すると、受信したトラック番号から３３９０‐Ａ形式のＬＤＥＶ内の分散ユーザデータ領域の番号と、分散ユーザデータ領域の先頭アドレスからトラック番号のデータ部３２５までのオフセットアドレスと、３３９０‐Ａ形式のＬＤＥＶ内の分散制御情報領域の番号と、分散制御情報領域の先頭アドレスからトラック番号の制御情報部３２６までのオフセットアドレスと、を計算する。
【０２１２】
コマンド制御部２５１は、管理テーブル２３００を参照して、分散ユーザデータ領域のアドレスを取得し、取得したアドレスと、分散ユーザデータ領域の番号と、オフセットアドレスと、に基づき、ＬＤＥＶ２２０２における分散ユーザデータ領域内のトラック番号のデータ部３２５を指すアドレスを取得する。
【０２１３】
また、コマンド制御部２５１は、管理テーブル２３００を参照して、分散制御情報領域のアドレスを取得し、取得したアドレスと、分散制御情報領域の番号と、オフセットアドレスと、に基づき、ＬＤＥＶ２２０３における分散制御情報領域内のトラック番号の制御情報部３２６を指すアドレスを取得する。
【０２１４】
次に、コマンド制御部２５１は、取得したアドレスに基づき、分散ユーザデータ領域内のリード対象トラックのデータ部３２５に対してアクセスを行う。
【０２１５】
また、コマンド制御部２５１は、取得したアドレスに基づき、分散制御情報領域内のリード対象トラックの制御情報部３２６を参照し、または更新してもよい。なお、リード対象トラックの制御情報部３２６を参照する必要がない場合には、コマンド制御部２５１は、リード対象トラックの制御情報部３２６を参照する処理を省略することができる。
【０２１６】
コマンド制御部２５１は、リード対象トラック内のデータ部３２５をホストＩ／Ｆ１２１を介して、ＭＦホスト計算機１０２に送信する。
【０２１７】
以上が、分散ユーザデータ領域と分散制御情報領域を異なるボリュームに保存して管理した場合の、リードアクセスの一例である。
【０２１８】
なお、ＭＦホスト計算機１０２からのアクセスの種類がライトアクセスであった場合も、前述したトラックに対するアクセスの処理は同様に実行することができる。
【０２１９】
本実施例によれば、実記憶領域上のボリュームであって、３３９０−Ａ形式のボリュームを複数ボリューム用意し、一方のボリュームにユーザデータ領域を配置し、他方のボリュームに制御情報領域を配置して、実記憶領域上のボリュームを管理するようにしたため、分散制御情報領域を配置するボリューム（ＬＤＥＶ２２０３）を小容量のもので構成し、分散ユーザデータ領域を配置するボリューム（ＬＤＥＶ２２０２）を大容量のもので構成することができる。この場合、ＬＤＥＶ２２０３を小容量のもので構成しても、ＬＤＥＶ２２０２を大容量のもので構成することで、ボリュームの容量拡張に対応することができる。
【実施例４】
【０２２０】
本実施例は、３３９０形式のＬＤＥＶ３２２から３３９０‐Ａ形式のＬＤＥＶ３２２へのデータコピーを行うものである。
【０２２１】
＜３３９０形式のＬＤＥＶ３２２から３３９０‐Ａ形式のＬＤＥＶ３２２へのデータコピー処理＞
【０２２２】
次に、３３９０形式のＬＤＥＶ３２２から、３３９０‐Ａ形式のＬＤＥＶ３２２への、トラックのデータ部をコピーする処理を図２４のフローチャートに従って説明する。
【０２２３】
まず、コピー元の３３９０形式のＬＤＥＶ３２２は、アドレス（ｓ）によって参照され、コピー先は、３３９０−Ａ形式のＬＤＥＶ３２２であって、３３９０−Ａ形式のＬＤＥＶ３２２は、一つまたは複数のシリンダグループ１４２１から構成されることを前提する。この際、３３９０‐Ａ形式のＬＤＥＶ内のトラックのデータ部３２５は、例えば、分散ユーザデータ領域の番号（ｎ）と、ｎ番目の分散ユーザデータ領域の先頭アドレスからのオフセットアドレス（ｄ）によってアクセスされる。
【０２２４】
管理ホスト計算機１０３から、管理ホストＩ／Ｆ１２７を介してコピー開始指示をコマンド制御部２５１が受領すると、マイクロプログラム２３１内のコマンド制御部２５１は、コピー処理を開始する。
【０２２５】
コマンド制御部２５１は、コピー元のＬＤＥＶ３２２の先頭アドレスを、コピー元アドレス（ｓ）に設定し、コピー元アドレス（ｓ）を０にする（Ｓ４１）。
【０２２６】
次に、コマンド制御部２５１は、コピー元アドレス（ｓ）がコピー元ＬＤＥＶ３２２の終端アドレスか否かを判定し（Ｓ４２）、コピー元アドレス（ｓ）がコピー元ＬＤＥＶ３２２の終端アドレスを指していた場合、コピー処理が完了したことを、管理ホストＩ／Ｆ１２７を介して、管理ホスト計算機１０３に通知して、コピー処理を終了する。
【０２２７】
一方、コマンド制御部２５１は、コピー元アドレス（ｓ）がコピー元ＬＤＥＶ３２２の終端アドレスを指していないと判定した場合、アドレス変換部２５４に、コピー元アドレス（ｓ）を通知する。
【０２２８】
次に、アドレス変換部２５４は、管理テーブル１７００を参照して、分散ユーザデータ領域のサイズを取得し、管理テーブル１８００を参照して、分散ユーザデータ領域と分散制御情報領域の先頭アドレスを取得し、取得したサイズ及び先頭アドレス、コピー元アドレス（ｓ）と、を基に、分散ユーザデータ領域の番号（ｎ）と、コピー先の分散ユーザデータ領域（ｎ）の先頭アドレスからのオフセットアドレス（ｄ）の値を計算し、計算結果をコマンド制御部２５１に通知する（Ｓ４３）。
【０２２９】
コマンド制御部２５１は、分散ユーザデータ領域（ｎ）が、コピー先ＬＤＥＶの終端分散ユーザデータ領域であるか否かを判定し（Ｓ４４）、分散ユーザデータ領域（ｎ）が、コピー先ＬＤＥＶの終端分散ユーザデータ領域である場合、コピー元ＬＤＥＶの容量が、コピー先ＬＤＥＶ３２２の容量より大きいため、コピーに失敗したことを、管理ホストＩ／Ｆ１２７を介して、管理ホスト計算機１０３に通知し、コピー処理を終了する。
【０２３０】
一方、コマンド制御部２５１は、分散ユーザデータ領域（ｎ）が、コピー先ＬＤＥＶの終端分散ユーザデータ領域でないと判定した場合、コピー先の分散ユーザデータ領域（ｎ）内の先頭アドレスからのオフセットアドレス（ｄ）の指す記憶領域に、コピー元アドレス（ｓ）の指す記憶領域からデータ（データ部３２５）をコピーする（Ｓ４５）。
【０２３１】
この後、コマンド制御部２５１は、コピー元アドレス（ｓ）をインクリメントし（ｓ＝ｓ＋１）、ステップＳ３２の処理に戻る（Ｓ４６）。この後、ステップＳ３２で肯定の判定結果が得られるまで、ステップＳ３２〜Ｓ３６の処理が繰り返えされる。
【０２３２】
ステップＳ４１〜Ｓ４６の処理を実行することで、例えば、３３９０形式の記憶領域９１０における分散ユーザデータ領域１４０１内のデータ部３２５を、３３９０−Ａ形式の実記憶領域９３０における分散ユーザデータ領域１４０１内にコピーすることができる。
【０２３３】
また、３３９０形式のＬＤＥＶ３２２から３３９０‐Ａ形式のＬＤＥＶ３２２への、トラックの制御情報部３２６をコピーする処理も同様に実行することができる。この場合、例えば、３３９０形式の記憶領域９１０における分散制御情報領域１４１１内の制御情報部３２６を、３３９０−Ａ形式の実記憶領域９３０における分散制御情報領域１４１１内にコピーすることができる。
【０２３４】
コピーするデータ量は、コピー元ＬＤＥＶ３２２内の全部のデータ、または一部のデータのどちらであってもよい。
【０２３５】
前述した３３９０形式のＬＤＥＶ３２２から３３９０‐Ａ形式のＬＤＥＶ３２２へのデータコピー処理では、分散ユーザデータ領域のコピーを終了した後、分散制御情報領域のコピーを行うか、その逆の順番で行ってもよい。また、一部の分散ユーザデータ領域のコピー終了後、一部の分散制御情報領域をコピーすることを交互に行っても良い。
【０２３６】
また、３３９０−Ａ形式のＬＤＥＶ３２２から、３３９０形式のＬＤＥＶ３２２へのデータコピーを行う処理も、３３９０−Ａ形式のＬＤＥＶ３２２のアドレスを３３９０形式のＬＤＥＶ３２２のアドレスに変更する処理を行うことで、同様に実行することができる。
【０２３７】
本実施例によれば、３３９０形式のＬＤＥＶ３２２から３３９０‐Ａ形式のＬＤＥＶ３２２へのデータコピーを行うことで、３３９０形式のＬＤＥＶ３２２に属するデータ部３２５と制御情報部３２６から、実記憶領域上のデータ部３２５と制御情報部３２６を構築することができる。
【実施例５】
【０２３８】
本実施例は、ＬＤＥＶ３２２を、仮想記憶領域を有する仮想ボリュームとして管理し、仮想ボリュームに対してアクセスがある場合、仮想ボリュームに、プールから実記憶領域を割り当てるようにしたものである。
【０２３９】
＜仮想ボリュームへの実記憶領域割り当てに関わる処理＞
【０２４０】
仮想ボリュームへの実記憶領域割り当てに関わる処理として、前述したアドレス変換処理と、後述のページ割り当て処理とがある。ページ割り当て処理では、後述するページ管理テーブルとページ管理ディレクトリを基に、仮想ボリュームに対するホストライトを契機とした仮想記憶領域への実記憶領域の割り当てが行われる。以下、仮想ボリュームへの実記憶領域割り当てに関わる処理を行う機能を、シン・プロビジョニング機能と呼ぶ。
【０２４１】
図２５に、ページ割り当て処理で用いるページ管理テーブル２５０００の構成を示す。
【０２４２】
図２５において、ページ管理テーブル２５０００は、仮想ボリュームへの実記憶領域割り当て処理を実行するときに用いるテーブルであって、ページ番号フィールド２５０１と、ＬＤＥＶ内のページ先頭アドレスフィールド２５０２と、ディスク番号フィールド２５０３と、ディスク内のページ先頭アドレスフィールド２５０４と、割り当て済み判定情報フィールド２５０５から構成され、ＬＤＥＶ３２２毎に存在し、例えば、主メモリ１２３またはキャッシュメモリ１２４に格納される。
【０２４３】
ページ番号フィールド２５０１の各エントリには、ＬＤＥＶ３２２内に割り当てられるページのページ番号が格納される。ＬＤＥＶ内のページ先頭アドレスフィールド２５０２の各エントリには、ＬＤＥＶ３２２内に割り当てられるページの先頭アドレスが格納される。ディスク番号フィールド２５０３の各エントリには、ＬＤＥＶ３２２を構成するディスク１３２の番号が格納される。
【０２４４】
ディスク内のページ先頭アドレスは、ディスク内の実記憶領域の先頭アドレスであって、ディスク内のページ先頭アドレスフィールド２５０４の各エントリには、ＬＤＥＶ３２２を構成するディスク１３２の先頭アドレスが格納される。割り当て済み判定情報フィールド２５０５の各エントリには、ＬＤＥＶ３２２にページが割り当てられている場合には、「割り当て済み」の情報が格納され、ＬＤＥＶ３２２にページが割り当てられていない場合には、「未割り当て」の情報が格納される。即ち、この割り当て済み判定情報は、ページを単位として、仮想記憶領域への実記憶領域の割り当て状態を管理するために用いられる。
【０２４５】
ページは、プール３２３に格納される、一定のサイズの記憶領域であり、ＬＤＥＶ３２２の記憶領域を分割管理するための単位である。また、ページは、例えば、一つまたは複数のトラックの集まりである。トラックは、ストレージ装置１０１内において、一定サイズで、例えば、５９３９２バイトで構成することができる。
【０２４６】
図２６に、ページ割り当て処理で用いるページ管理ディレクトリ２６００の構成を示す。
【０２４７】
図２６において、ページ管理ディレクトリ２６００は、ＬＤＥＶ３２２とページ管理テーブル２５０００との対応関係を管理するためのテーブルであって、ＬＤＥＶ番号フィールド２６０１と、ページ管理テーブルのアドレスフィールド２６０２から構成され、例えば、主メモリ１２３またはキャッシュメモリ１２４あるいはディスク１３２上に保存される。
【０２４８】
ＬＤＥＶ番号フィールド２６０１の各エントリには、ＬＤＥＶ３２２の番号が格納される。ページ管理テーブルのアドレスフィールド２６０２の各エントリには、ＬＤＥＶ３２２のページを管理するためのページ管理テーブル２５０００のアドレスが格納される。
【０２４９】
次に、コマンド制御部２５１が、ＭＦホスト計算機１０２からのライトアクセスを受領した際の処理の一例を説明する。ライトアクセス時のパラメータは、例えば、ＬＤＥＶ番号とＬＤＥＶ内のトラック番号である。
【０２５０】
コマンド制御部２５１は、ＭＦホスト計算機１０２からライトアクセスのパラメータを受信した場合、ＬＤＥＶ３２２のトラック番号とトラックサイズを基に、ＬＤＥＶ３２２内のアドレスを計算する。
【０２５１】
この後、コマンド制御部２５１は、ページ管理ディレクトリ２６００を参照して、ＬＤＥＶ番号に対応するページ管理テーブル２５０００のアドレスを取得する。
【０２５２】
次に、コマンド制御部２５１は、取得したアドレスに対応したページ管理テーブル２５０００を参照して、ライトアクセス先のアドレスが示すトラックを含むページを検索し、この検索で得られたページ番号と、ページ先頭アドレスからライトアクセス先トラックまでのオフセットアドレスを取得する。
【０２５３】
この後、コマンド制御部２５１は、取得したページ番号のページエントリ内の割り当て済み判定情報を参照し、割り当て済み判定情報が割り当て済み状態を示す場合は、このページエントリに対応したディスク内のページ先頭アドレスで特定された、ライトアクセス先トラック番号のデータ部３２５に対してライトアクセスを行う。
【０２５４】
割り当て済み判定情報が未割り当て状態の場合、コマンド制御部２５１は、管理テーブル７００を参照して、ＬＤＥＶ番号に対応したプール番号を取得し、取得したプール番号を基に管理テーブル８００を参照して、プール番号に対応したディスク番号を取得し、取得したディスク番号を基に、ＬＤＥＶ番号３２２に対応するプール３２３に属する一つまたは複数のディスク１３２から、ページ単位で実記憶領域の割り当てを行う。
【０２５５】
この際、コマンド制御部２５１は、ページ管理テーブル２５０００を参照して、ライトアクセス先のアドレスが示すトラックを含むページエントリを探し、新たに割り当てたページの先頭アドレスをページ管理テーブル２５０００に登録し、割り当て済み判定情報フィールド２５０２の「未割り当て」を「割り当て済み」として、ページ管理テーブル２５０００を更新する。
【０２５６】
以上が、仮想ボリュームに対してプールからページ割り当てを行う処理である。
【０２５７】
＜３３９０‐Ａ形式のＬＤＥＶ３２２が仮想ボリューム上で構成されている場合のページ割り当て処理＞
【０２５８】
次に、３３９０‐Ａ形式のＬＤＥＶ３２２を仮想ボリューム上で構成する場合において、ＭＦホスト計算機１０２のライトアクセス契機に、ユーザデータ領域と、このユーザデータ領域に対応する制御情報領域のそれぞれにページを割り当てる処理を図２７のフローチャートに従って説明する。
【０２５９】
コマンド制御部２５１が、ＭＦホストＩ／Ｆ１２１を介して、ＭＦホスト計算機１０２からのライトアクセスを受領した際の処理は、以下の通りとなる。
【０２６０】
ライトアクセス時のパラメータは、例えば、３３９０形式のＬＤＥＶ３２２におけるＬＤＥＶ番号とＬＤＥＶ内のトラック番号である。
【０２６１】
まず、コマンド制御部２５１は、ＭＦホストライトコマンド処理を開始すると、図５の管理テーブル５００を参照して、ＬＤＥＶ３２２のボリューム容量を取得し、取得したＬＤＥＶ３２２のボリューム容量と予め設定されているトラックサイズを基に、ＬＤＥＶ３２２のトラック番号に対応するＬＤＥＶ３２２内のトラックのデータ部３２５のアドレスと、同じくトラックの制御情報部３２６のアドレスを計算する。
【０２６２】
次に、コマンド制御部２５１は、管理テーブル１７００を参照して、分散ユーザデータと分散制御情報のサイズを取得し、管理テーブル１８００を参照して、分散ユーザデータ領域と分散制御情報領域の先頭アドレスを取得し、取得した分散ユーザデータと分散制御情報のサイズと、分散ユーザデータ領域と分散制御情報領域の先頭アドレスと、計算で得られたデータ部３２５のアドレス（データアドレス）および制御情報部３２６のアドレス（制御情報アドレス）と、を基に、３３９０‐Ａ形式のＬＤＥＶ上におけるトラックのデータ部３２５のアドレス（データアドレス）と、制御情報部３２６のアドレス（制御情報アドレス）と、を計算する（Ｓ５１）。
【０２６３】
この後、コマンド制御部２５１は、ＬＤＥＶ番号を基にページ管理ディレクトリ２６００を参照して、ＬＤＥＶ番号に対応するページ管理テーブル２５０００のアドレスを取得する。
【０２６４】
コマンド制御部２５１は、取得したアドレスに対応したページ管理テーブル２５０００を参照して、計算で得られたアドレス（データアドレス）およびアドレス（制御情報アドレス）が指すデータを含むページの、ページ番号をそれぞれ取得する。
【０２６５】
コマンド制御部２５１は、ページ管理テーブル２５０００のうち、取得したページ番号に対応したページエントリ内の割り当て済み判定情報を参照し、アドレス（データアドレス）が含まれるページは、実記憶領域が割り当て済みか否かを判定し（Ｓ５２）、割り当て済み判定情報が割り当て済み状態を示す場合、即ち、実記憶領域が割り当て済みと判定した場合は、ステップＳ５６の処理に移行する。
【０２６６】
一方、割り当て済み判定情報が未割り当て状態の場合、即ち、アドレス（データアドレス）が含まれるページは、実記憶領域が割り当て済みでないと判定した場合、コマンド制御部２５１は、管理テーブル７００を参照して、ＬＤＥＶ番号に対応したプール番号を取得し、取得したプール番号を基に管理テーブル８００を参照して、プール番号に対応したディスク番号を取得し、取得したディスク番号を基に、ＬＤＥＶ番号３２２に対応するプール３２３に属する一つまたは複数のディスク１３２から、ページ単位で実記憶領域の割り当てを行う（Ｓ５３）。即ち、アドレス（データアドレス）が含まれるページに対してページ割り当てを実行する。
【０２６７】
この後、コマンド制御部２５１は、アドレス（制御情報アドレス）が含まれるページは、実記憶領域が割り当て済みか否かを判定し（Ｓ５４）、割り当て済み判定情報が割り当て済み状態を示す場合、即ち、実記憶領域が割り当て済みと判定した場合は、ステップＳ５６の処理に移行する。
【０２６８】
ステップＳ５４で、アドレス（制御情報アドレス）が含まれるページは、実記憶領域が割り当て済みでないと判定した場合、コマンド制御部２５１は、管理テーブル７００を参照して、ＬＤＥＶ番号に対応したプール番号を取得し、取得したプール番号を基に管理テーブル８００を参照して、プール番号に対応したディスク番号を取得し、取得したディスク番号を基に、ＬＤＥＶ番号３２２に対応するプール３２３に属する一つまたは複数のディスク１３２から、ページ単位で実記憶領域の割り当てを行い（Ｓ５５）、ステップＳ５６の処理に移行する。即ち、ステップＳ５５では、アドレス（制御情報アドレス）が含まれるページに対してページ割り当てを実行する。
【０２６９】
ステップＳ５６において、コマンド制御部２５１は、アドレス（制御情報アドレス）が示す領域に、トラックのデータ部３２５に対応する制御情報を生成する。
【０２７０】
次に、アドレス（データアドレス）が含まれるページは、実記憶領域が割り当て済みである場合、コマンド制御部２５１は、アドレス（データアドレス）が示す領域に、データをライトする。即ち、コマンド制御部２５１は、ページ内のライトアクセス先トラック番号のデータ部３２５に対してライトアクセスを行う（Ｓ５７）。
【０２７１】
この際、コマンド制御部２５１は、ページ管理テーブル２５０００を参照して、ライトアクセス先のアドレスが示すトラックを含むページエントリを探し、新たに割り当てたページの先頭アドレスをページ管理テーブル２５０００に登録し、割り当て済み判定情報フィールド２５０２の「未割り当て」を「割り当て済み」として、ページ管理テーブル２５０００を更新し、このルーチンでの処理を終了する。
【０２７２】
コマンド制御部２５１は、前述したページ割り当て処理の中で、アドレス（制御情報アドレス）が属する制御情報領域を初期化後に、ライトアクセスを行ってもよい。
【０２７３】
本実施例によれば、仮想ボリュームに実記憶領域を割り当てる場合、データ部３２５のページと制御情報部３２６のページをプールから割り当てることができる。
【実施例６】
【０２７４】
本実施例は、コピー元のストレージコントローラからコピー先のストレージコントローラに、リモートコピー処理に伴うデータとしてコピー対象データを送信し、このコピー対象データをコピー先ストレージコントローラが受信した場合、コピー先ストレージコントローラが、受信したコピー対象データの中にレコードの有無に関する情報を判定し、この判定結果に従った処理を実行するものである。
【０２７５】
＜３３９０‐Ａ形式のＬＤＥＶ３２２が仮想ボリューム上で構成されている場合のリモートコピー処理に同期する０データページ破棄処理＞
【０２７６】
図２８は、第二のストレージ装置において、仮想ボリューム上に保存された３３９０‐Ａ形式のＬＤＥＶ３２２に対して、第一のストレージ装置１０１からデータを送信するリモートコピー処理に同期して、受信側のＬＤＥＶ３２２内のページ状態を未割り当てにする処理を示すフローチャートである。
【０２７７】
以下、ページ状態を未割り当てに戻すことを、ページ破棄と呼ぶ。
【０２７８】
第一のストレージ装置１０１と第二のストレージ装置１０１において、リモートコピー処理を以下のように行う。
【０２７９】
第一のストレージ装置１０１内の管理ホストＩ／Ｆ１２７を介して、管理ホスト１０３から、第一のストレージ装置１０１内の第一のコマンド制御部２５１が、リモートコピーの実施要求を受け取ると、第一のコマンド制御部２５１は、第一のストレージ装置１０１内の第一のＬＤＥＶ３２２（３３９０形式、または、３３９０‐Ａ形式）の一部または全部のトラックのデータ部３２５と、一部または全部のトラックの制御情報部３２６と、をコピー対象データとして、一つまたは複数のディスク１３２から、第一のキャッシュメモリ１２４に読み込む。
【０２８０】
第一のコマンド制御部２５１は、第一のキャッシュメモリ上のＬＤＥＶ３２２の一部または全部のトラックを、第一のストレージ装置１０１内の第一のホストＩ／Ｆ１２１と、ネットワーク１１１と、を介して、一定のデータ単位で送信する。データ単位は、例えば、一つまたは複数のトラックのデータ部３２５であったり、一つまたは複数のトラックの制御情報部３２６であったりしてもよい。
【０２８１】
一方、第二のストレージ装置１０１内の第二のホストＩ／Ｆ１２１を介して、第二のストレージ装置１０１内の第二のコマンド制御部２５１が、第一のコマンド制御部２５１からコピー対象データを受信すると、第二のコマンド制御部２５１は、コピーデータ受信処理を開始し、第二のストレージ装置１０１内の第二のキャッシュメモリ１２４に、受信したコピー対象データを書き込む（Ｓ６１）。
【０２８２】
この際、第二のストレージ装置１０１内の第二のＬＤＥＶ３２２は、３３９０‐Ａ形式に従い、前述したシン・プロビジョニング機能で用いられる仮想ボリューム上で構成される。
【０２８３】
第二のコマンド制御部２５１は、第二のキャッシュメモリ１２４に保存されているコピー対象データの中の各データ部３２５に対して、トラック内に、前述したレコードが存在するか否かを判定し（Ｓ６２）、キャッシュメモリ１２４上のトラックのデータ部３２５はレコード無し、と判定した場合は、ステップＳ６６の処理に移行し、キャッシュメモリ１２４上のトラックのデータ部３２５はレコード有り、と判定した場合は、ステップＳ６３の処理に移行する。このとき、第二のコマンド制御部２５１は、トラック毎にレコード有無を調べた結果を、第二のＬＤＥＶ３２２の各トラックのデータ部３２５に対応するレコード有無情報部３２７に保存する。
【０２８４】
ステップＳ６３において、第二のコマンド制御部２５１は、データ部３２５または制御情報部２６を含むページは、実記憶領域が割り当て済みか否かを判定する。
【０２８５】
具体的には、第二のコマンド制御部２５１は、ＬＤＥＶ３２２のＬＤＥＶ番号を基にページ管理テーブル２５０００とページ管理ディレクトリ２６００を参照し、第二のキャッシュメモリ１２４上にある書き込み先仮想領域であって、コピー対象データに属するデータ部３２５と制御情報部３２６の書き込み先仮想領域に、プール３２３からライト先ページが割り当てられているかどうかをチェックする。
【０２８６】
データ部３２５または制御情報部２６を含むページは、実記憶領域が割り当て済みでないと判定した場合、第二のコマンド制御部２５１は、データ部３２５または制御情報部２６を含むページに対して、プール３２３内の実記憶領域を割り当てる（Ｓ６４）。
【０２８７】
具体的には、第二のキャッシュメモリ１２４上の、一つまたは複数のトラックのデータ部３２５のライト先ページが、未割り当て状態であり、かつ、これらのトラックのデータ部３２５にレコードがある場合、第二のコマンド制御部２５１は、ＬＤＥＶ３２２のＬＤＥＶ番号を基に管理テーブル７００を参照して、ＬＤＥＶ番号に対応したプール番号を取得し、取得したプール番号を基に管理テーブル８００を参照して、プール番号に対応したディスク番号を取得し、取得したディスク番号を基に、ＬＤＥＶ３２２のＬＤＥＶ番号に対応するプール３２３に属する一つまたは複数のディスクから、ページ単位で実記憶領域の割り当てを行う。
【０２８８】
同様に、第二のキャッシュメモリ１２４上の、前述した一つまたは複数のトラックの制御情報部３２６のライト先ページが、未割り当て状態である場合、第二のコマンド制御部２５１は、ＬＤＥＶ３２２のＬＤＥＶ番号を基に管理テーブル７００を参照して、ＬＤＥＶ番号に対応したプール番号を取得し、取得したプール番号を基に管理テーブル８００を参照して、プール番号に対応したディスク番号を取得し、取得したディスク番号を基に、ＬＤＥＶ３２２のＬＤＥＶ番号に対応するプールに属する一つまたは複数のディスクから、ページ単位で実記憶領域の割り当てを行う。
【０２８９】
次に、第二のコマンド制御部２５１は、第二のキャッシュメモリ１２４上のデータ部３２５と制御情報部３２６を、割り当て済み実記憶領域に対して書き込む（Ｓ６５）。
【０２９０】
具体的には、第二のキャッシュメモリ１２４上の書き込み先仮想領域に、コピー対象データに属するデータ部３２５のライト先ページが、割り当て済み状態である場合、第二のコマンド制御部２５１は、第二のキャッシュメモリ１２４上の、コピー対象データに属するデータ部３２５を、プール３２３内の実記憶領域を構成する第二の一つまたは複数のディスク１３２に書き込む。
【０２９１】
同様に、第二のキャッシュメモリ１２４上の書き込み先仮想領域に、コピー対象データに属する制御情報部３２６のライト先ページが、割り当て済み状態である場合、第二のコマンド制御部２５１は、第二のキャッシュメモリ１２４上の、コピー対象データに属する制御情報部３２６を、プール３２３内の実記憶領域を構成する第二の一つまたは複数のディスク１３２に書き込む。
【０２９２】
この後、第二のコマンド制御部２５１は、ページ管理テーブル２５０００を基に、ライトアクセス先のトラックのデータ部３２５を含むページエントリを探し、新たに割り当てたページの先頭アドレスを登録し、割り当て済み判定情報を割り当て済み状態に更新する。同様に、第二のコマンド制御部２５１は、ページ管理テーブル２５００を基に、ライトアクセス先のトラックの制御情報部３２６を含むページエントリを探し、新たに割り当てたページの先頭アドレスを登録し、割り当て済み判定情報を割り当て済み状態に更新する。
【０２９３】
次に、第二のコマンド制御部２５１は、前述した一つまたは複数のトラックのデータ部３２５をプール３２３内の実記憶領域を構成する第二の一つまたは複数のディスク１３２に書き込み、前述した一つまたは複数のトラックの制御情報部３２６をプール３２３内の実記憶領域を構成する第二の一つまたは複数のディスク１３２に書き込む。
【０２９４】
この後、ステップ６６において、第二のコマンド制御部２５１は、第二のＬＤＥＶ３２２の前述した一つまたは複数のトラックのデータ部３２５に対応するレコード有無情報部３２７に、レコードが有ることを示す情報を保存して、レコード有無情報部３２７を更新する。
【０２９５】
第二のキャッシュメモリ１２４上の、前述した一つまたは複数のトラックのデータ部のライト先ページが未割り当て状態であり、かつ、これらのトラックのデータ部にレコードが無い場合、第二のコマンド制御部２５１は、第二のキャッシュメモリ１２４の書き込み先仮想領域に、プール３２３からページを割り当てない。この場合、第二のコマンド制御部２５１は、前述した一つまたは複数のトラックのデータ部３２５を、第二の一つまたは複数のディスク１３２に書き込まない。さらに、第二のコマンド制御部２５１は、第二のＬＤＥＶ３２２のトラックのデータ部３２５に対応するレコード有無情報部３２７には、レコード無し状態を示す情報を保存する。
【０２９６】
第二のキャッシュメモリ１２４上の、前述した一つまたは複数のトラックのデータ部のライト先ページが未割り当て状態であり、かつ、これらのトラックのデータ部にレコードが無い場合、第二のコマンド制御部２５１は、プール３２３からページを割り当てた後に、レコードが無いことを示す初期値を書き込んでもよい。
【０２９７】
また、ステップＳ６６では、第二のコマンド制御部２５１は、第二のＬＤＥＶ３２２の割り当て済みページ内のトラックのデータ部３２５のレコード有無をチェックし、レコードが存在しないトラックのレコード有無情報部３２７に、レコードが無いことを示す情報を保存して、レコード有無情報部３２７を更新する。
【０２９８】
次に、第二のコマンド制御部２５１は、第二のＬＤＥＶ３２２の全てのトラックのレコード有無情報部３２７の値に基づき、第二のＬＤＥＶ３２２の割り当て済みページ内の、トラックのデータ部３２５のレコード有無をチェックし、レコードが存在しないページを未割り当て状態、即ち、ページ破棄を実行し（Ｓ６７）、このルーチンでの処理を終了する。
【０２９９】
本実施例においては、第二のストレージ装置における第二のストレージコントローラ１３１は、第一のストレージ装置１０１における第一のストレージコントローラ１３１を他のコントローラとして、第一のストレージコントローラ１３１とネットワーク１１１を介して情報の授受を行い、第一のストレージコントローラ１３１から受信した情報の中に、第１データ部３２５または第２データ部３２５に関する情報として、トラックに対応したレコードに関するする情報が存在するか否かを判定し、この判定の結果を、仮想ボリューム（３３９０‐Ａ形式のＬＤＥＶ３２２）の第２制御情報領域に格納し、仮想ボリュームの第２制御情報領域に格納された判定結果が、トラックに対応したレコードが存在しないことを示す場合、トラックに対応した実記憶領域として、プールから仮想ボリュームに割り当てられているページを開放する処理を、リモートコピー処理に同期して実行することになる。
【０３００】
前述したページ破棄処理は、第二のキャッシュメモリ１２４上の、一つまたは複数のトラックに対応したコピー対象データを、一つまたは複数のディスク１３２に書き込む前に行ってもよい。
【０３０１】
以上が、第一のストレージ装置１０１内の第一のＬＤＥＶ３２２から、第二のストレージ装置１０１内の第二のＬＤＥＶ３２２に対して、リモートデータコピーを実施する処理の一例である。
【０３０２】
本実施例によれば、第二のストレージ装置１０１内の第二のストレージコントローラ１３１は、第一のストレージ装置１０１内の第一のストレージコントローラ１３１からコピー対象データを受信した場合、トラックのデータ部３２５のレコード有無をチェックし、レコードが存在しないページを未割り当て状態、即ち、ページ破棄の処理を実行することができる。
【０３０３】
本実施例では、第一のコマンド制御部２５１が、送信側の第一のＬＤＥＶ３２２の一つまたは複数のトラックのデータ部３２５と、一つまたは複数のトラックの制御情報部３２６と、を含むコピー対象データを、一つまたは複数のディスク１３２から、第一のキャッシュメモリ１２４に読み込む処理において、第一のコマンド制御部２５１は、第一のキャッシュメモリ１２４上の、一つまたは複数のトラックのデータ部３２５に対応するレコード有無情報部３２７を参照し、コピー対象データに属するデータ部３２５にレコードが無い場合には、これらのトラックのデータ部３２５を第二のストレージ装置に送信しなくてもよい。また、これらのトラックのデータ部３２５にレコードが無いことを、第二のストレージ装置にメッセージで通知してもよい。
【０３０４】
３３９０形式のＬＤＥＶ３２２により、ＭＦホスト計算機１０２は、トラックの制御情報部３２６の値を確認しない処理を行う場合には、トラックの制御情報部３２６をスキップして、ディスクのヘッドをトラックのデータ部３２５に位置付ける処理のオーバヘッドを減らすことができる。
【０３０５】
以上、本発明の実施例を説明したが、本発明は、各実施例に限定されるものでなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、シリンダグループの削除などで、ボリュームの容量を縮小する場合、ボリュームの容量を拡張するときのアドレス変換処理を、ボリュームの容量を縮小するときのアドレス変換処理に適用することもできる。
【符号の説明】
【０３０６】
１０１  ストレージ装置、１０２  ＭＦホスト計算機、１０３  管理ホスト計算機、１１１、１１３、１２６  ネットワーク、１２２  ＣＰＵ、１２３  主メモリ、２３１  マイクロプログラム、１２４  キャッシュメモリ、１３１  ストレージコントローラ、１３２  ディスク、３２２  ＬＤＥＶ、３２３  プール、３２５  データ部、３２６  制御情報部、３２７  レコード有無情報部、９０１  記憶領域  ９２０、９３０  実記憶領域、１４０１〜１４０５  分散ユーザデータ領域、１４１１〜１４１５  分散制御情報領域、１４２１〜１４２５  シリンダグループ（ＣＧ）、２２０２、２２０３  ＬＤＥＶ。
【図１】
0005537732.tif 000002
【図２】
0005537732.tif 000003
【図３】
0005537732.tif 000004
【図４】
0005537732.tif 000005
【図５】
0005537732.tif 000006
【図６】
0005537732.tif 000007
【図７】
0005537732.tif 000008
【図８】
0005537732.tif 000009
【図９】
0005537732.tif 000010
【図１０】
0005537732.tif 000011
【図１１】
0005537732.tif 000012
【図１２】
0005537732.tif 000013
【図１３】
0005537732.tif 000014
【図１４】
0005537732.tif 000015
【図１５】
0005537732.tif 000016
【図１６】
0005537732.tif 000017
【図１７】
0005537732.tif 000018
【図１８】
0005537732.tif 000019
【図１９】
0005537732.tif 000020
【図２０】
0005537732.tif 000021
【図２１】
0005537732.tif 000022
【図２２】
0005537732.tif 000023
【図２３】
0005537732.tif 000024
【図２４】
0005537732.tif 000025
【図２５】
0005537732.tif 000026
【図２６】
0005537732.tif 000027
【図２７】
0005537732.tif 000028
【図２８】
0005537732.tif 000029