(57)【要約】【課題】ディスクアクセスのオーバヘッドを可能な範囲で最小限に抑え、少ない容量のメモリで大容量の仮想ボリュームを定義することを可能にする。【解決手段】論理テーブルは、メモリ１２２上に配置される上位層論理テーブル１３１とディスク１２３〜１２５上に配置される下位層論理テーブル１４１〜１４３とからなる階層構造をとり、仮想ボリュームの各部分に対応する物理領域の各部分がどこにあるかを記憶する。物理テーブルは、メモリ１２２上に配置される上位層物理テーブル１３２とディスク１２３〜１２５上に配置される下位層物理テーブル１４４〜１４６とからなる階層構造をとり、物理領域の各部分の割り当て状態を記憶する。コントローラ１２１は、下位層論理テーブル１４１〜１４３／下位層物理テーブル１４４〜１４６の一部／全部をメモリ１２２にコピーして仮想ボリュームの管理を行う。【選択図】　　　　図１
2004078398.tif 000002
【特許請求の範囲】
【請求項１】
ホストからのアクセスが行われるディスクアレイ装置において、メモリ上に配置される上位層論理テーブルとディスク上に配置される下位層論理テーブルとからなる階層構造をとっており、仮想ボリュームの各部分に対応する物理領域の各部分がどこにあるかを記憶する論理テーブルと、
メモリ上に配置される上位層物理テーブルとディスク上に配置される下位層物理テーブルとからなる階層構造をとっており、物理領域の各部分の割り当て状態を記憶する物理テーブルと、
下位層論理テーブル／下位層物理テーブルの一部／全部をメモリにコピーして仮想ボリュームの管理を行うコントローラと
を有することを特徴とする仮想ボリューム管理方式。
【請求項２】
ホストからのアクセスが行われるディスクアレイ装置において、一定の大きさの複数の管理テーブルバッファを備える管理テーブルバッファ領域とその管理テーブルバッファ領域の管理を行うメモリ管理テーブルとからなるメモリ上のキャッシュ制御領域と、
メモリ上に配置される上位層論理テーブルとディスク上に配置される下位層論理テーブルとからなる階層構造をとっており、上位層論理テーブルが下位層論理テーブル中の各管理テーブルブロックの前記キャッシュ制御領域上の所在位置とディスク上の所在位置とを管理しており、仮想ボリュームにおける各論理エクステントが割り当てられているディスク上の物理エクステントがどこに存在するかを示す情報を記憶する論理テーブルと、
メモリ上に配置される上位層物理テーブルとディスク上に配置される下位層物理テーブルとからなる階層構造をとっており、上位層物理テーブルが下位層物理テーブル中の各管理テーブルブロックの前記キャッシュ制御領域上の所在位置とディスク上の所在位置とを管理しており、各物理エクステントの割り当て状態を示す情報を記憶する物理テーブルと、
下位層論理テーブル／下位層物理テーブルへのアクセスが必要な場合に、上記の管理テーブルバッファを獲得して、アクセスが必要な下位層論理テーブル／下位層物理テーブル中の管理テーブルブロックのデータを当該管理テーブルバッファにコピーし、アクセスが終わった後もそのままそのデータをその管理テーブルバッファに記憶しておくことにより、前記キャッシュ制御領域とディスク上の管理テーブルブロックが格納されている領域との間でのキャッシュ制御を行うコントローラと
を有することを特徴とする仮想ボリューム管理方式。
【請求項３】
下位層論理テーブル／下位層物理テーブルへのアクセスが必要な場合に必要な部分のデータをコピーするための管理テーブルバッファが余っていないときに、アクセス時点が最も古い管理テーブルバッファにおける追い出し処理によって、上記のデータのコピーを実現するコントローラを有することを特徴とする請求項２記載の仮想ボリューム管理方式。
【請求項４】
各ボリュームにおける各管理テーブルブロック毎に、有効フラグと割り当て物理アドレスとメモリ有効フラグと割り当てメモリアドレスとを管理する上位層論理テーブルと、
各ボリュームにおける各論理エクステント毎に、有効フラグと割り当て物理アドレスとを管理する下位層論理テーブルと、
各ディスクにおける各管理テーブルブロック毎に、リンクポインタとメモリ有効フラグと割り当てメモリアドレスとを管理し、また、空き管理テーブルブロックリンクの管理ために、空き管理テーブルブロックカウンタおよび空き管理テーブルブロック先頭リンクポインタを有している上位層物理テーブルと、
各ディスクにおける各物理エクステント毎に、リンクポインタを管理し、また、空きエクステントリンクの管理ために、空きエクステントカウンタおよび空きエクステント先頭リンクポインタを有している下位層物理テーブルと、
各管理テーブルバッファ毎に、順方向リンクポインタと逆方向リンクポインタとテーブル種別と管理ブロック情報とを管理し、また、空き管理テーブルバッファリンクの管理ために、空き管理テーブルバッファカウンタ，空き管理テーブルバッファ先頭リンクポインタ，および空き管理テーブルバッファ最後尾リンクポインタを有しており、使用中管理テーブルバッファリンクの管理ために、使用中管理テーブルバッファカウンタ，使用中管理テーブルバッファ先頭リンクポインタ，および使用中管理テーブルバッファ最後尾リンクポインタを有しているメモリ管理テーブルと、複数の管理テーブルバッファを有する管理テーブルバッファ領域とからなるキャッシュ制御領域と
を備えることを特徴とする請求項３記載の仮想ボリューム管理方式。
【請求項５】
下位層論理テーブルが構築されていないこと示す情報を持つ上位層論理テーブルを構築することによって仮想ボリュームの構築を行う仮想ボリューム構築手段と、
ホストからのライト要求に係るアクセスに応じて仮想ボリュームライト処理を行い、ホストからのリード要求に係るアクセスに応じて仮想ボリュームリード処理を行う仮想ボリュームリードライト手段と、
前記仮想ボリュームリードライト手段からの要求に応じて空き物理エクステント獲得処理を行う空き物理エクステント獲得手段と、
前記仮想ボリュームリードライト手段や前記空き物理エクステント獲得手段からの要求に応じて空き管理テーブルバッファ獲得処理を行う空き管理テーブルバッファ獲得手段とを備え、
これらの手段によって仮想ボリュームの管理のためのキャッシュ制御を実現するコントローラを有することを特徴とする請求項４記載の仮想ボリューム管理方式。
【請求項６】
一定の大きさの複数の管理テーブルバッファを備える管理テーブルバッファ領域とその管理テーブルバッファ領域の管理を行うメモリ管理テーブルとからなるメモリ上のキャッシュ制御領域，メモリ上に配置される上位層論理テーブルとディスク上に配置される下位層論理テーブルとからなる階層構造をとっており、上位層論理テーブルが下位層論理テーブル中の各管理テーブルブロックの前記キャッシュ制御領域上の所在位置とディスク上の所在位置とを管理しており、仮想ボリュームにおける各論理エクステントが割り当てられているディスク上の物理エクステントがどこに存在するかを示す情報を記憶する論理テーブル，およびメモリ上に配置される上位層物理テーブルとディスク上に配置される下位層物理テーブルとからなる階層構造をとっており、上位層物理テーブルが下位層物理テーブル中の各管理テーブルブロックの前記キャッシュ制御領域上の所在位置とディスク上の所在位置とを管理しており、各物理エクステントの割り当て状態を示す情報を記憶する物理テーブルを有するディスクアレイ装置内のコントローラを、下位層論理テーブル／下位層物理テーブルへのアクセスが必要な場合に、上記の管理テーブルバッファを獲得して、アクセスが必要な下位層論理テーブル／下位層物理テーブル中の管理テーブルブロックのデータを当該管理テーブルバッファにコピーし、アクセスが終わった後もそのままそのデータをその管理テーブルバッファに記憶しておくことにより、前記キャッシュ制御領域とディスク上の管理テーブルブロックが格納されている領域との間でのキャッシュ制御を行うように機能させるためのプログラム。
【請求項７】
コントローラを、請求項６に記載したように機能させることに加えて、下位層論理テーブル／下位層物理テーブルへのアクセスが必要な場合に必要な部分のデータをコピーするための管理テーブルバッファが余っていないときに、アクセス時点が最も古い管理テーブルバッファにおける追い出し処理によって、上記のデータのコピーを実現するように機能させるための請求項６記載のプログラム。
【請求項８】
各ボリュームにおける各管理テーブルブロック毎に、有効フラグと割り当て物理アドレスとメモリ有効フラグと割り当てメモリアドレスとを管理する上位層論理テーブル，各ディスクにおける各管理テーブルブロック毎に、リンクポインタとメモリ有効フラグと割り当てメモリアドレスとを管理し、また、空き管理テーブルブロックリンクの管理ために、空き管理テーブルブロックカウンタおよび空き管理テーブルブロック先頭リンクポインタを有している上位層物理テーブル，ならびに各管理テーブルバッファ毎に、順方向リンクポインタと逆方向リンクポインタとテーブル種別と管理ブロック情報とを管理し、また、空き管理テーブルバッファリンクの管理ために、空き管理テーブルバッファカウンタ，空き管理テーブルバッファ先頭リンクポインタ，および空き管理テーブルバッファ最後尾リンクポインタを有しており、使用中管理テーブルバッファリンクの管理ために、使用中管理テーブルバッファカウンタ，使用中管理テーブルバッファ先頭リンクポインタ，および使用中管理テーブルバッファ最後尾リンクポインタを有しているメモリ管理テーブルと、複数の管理テーブルバッファを有する管理テーブルバッファ領域とからなるキャッシュ制御領域を有することとなるメモリと、各ボリュームにおける各論理エクステント毎に、有効フラグと割り当て物理アドレスとを管理する下位層論理テーブル，および各ディスクにおける各物理エクステント毎に、リンクポインタを管理し、また、空きエクステントリンクの管理ために、空きエクステントカウンタおよび空きエクステント先頭リンクポインタを有している下位層物理テーブルを格納することとなるディスクとが存在するディスクアレイ装置内のコントローラを、下位層論理テーブルが構築されていないこと示す情報を持つ上位層論理テーブルを構築することによって仮想ボリュームの構築を行う仮想ボリューム構築手段，ホストからのライト要求に係るアクセスに応じて仮想ボリュームライト処理を行い、ホストからのリード要求に係るアクセスに応じて仮想ボリュームリード処理を行う仮想ボリュームリードライト手段，前記仮想ボリュームリードライト手段からの要求に応じて空き物理エクステント獲得処理を行う空き物理エクステント獲得手段，および前記仮想ボリュームリードライト手段や前記空き物理エクステント獲得手段からの要求に応じて空き管理テーブルバッファ獲得処理を行う空き管理テーブルバッファ獲得手段として機能させ、これらの手段によって仮想ボリュームの管理のためのキャッシュ制御を実現させるための請求項７記載のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ディスクアレイ装置における有用な技術のひとつとして知られている仮想ボリューム技術を実現するための仮想ボリューム管理方式（ディスクアレイ装置における仮想ボリューム管理方式）に関する。
【０００２】
【従来の技術】
ディスクアレイ装置においては、ボリュームという論理的なデータ記憶空間によってホストアクセス（ホストコンピュータからのアクセス）を制御する。ディスクアレイ装置内部では、ボリュームにライトされたデータが実際にディスクのどこかに保持されるので、ボリューム内の領域のアドレスとディスク内の領域のアドレスとの関係は、ディスクアレイ装置で管理情報として記憶されている。
【０００３】
仮想ボリューム技術とは、「ボリュームが構築された時点でボリュームの全領域を実装済みのディスクの物理領域に割り当ててしまうのではなくて、ボリュームが構築された時点ではディスクの物理領域を割り当てずに、それ以降の処理で必要に応じてボリュームの領域を物理領域に割り当てる技術」をいう。
【０００４】
この仮想ボリューム技術による第１の利点は、物理容量よりも大きなボリュームを構築することが可能になることである。アプリケーションとしては、大容量の論理空間を定義したいが、その全容量が必ずしも同時に必要ではなく、実際に必要な容量はわずかな容量ですむ場合がある。そのようなアプリケーションでは、大容量の論理空間を定義するのに、それに見合った物理容量が必要ないのであれば、コスト削減につながる。
【０００５】
また、仮想ボリューム技術による第２の利点は、後から物理領域への割り当てを動的に変更することが容易にできるということである。ホストアクセスの傾向によってディスク負荷を分散する場合や、ディスクを後から増設した場合等に、物理領域の割り当ての動的な変更を容易に行うことができれば、性能問題の解決策の一助となる。
【０００６】
以下に、上記のような仮想ボリューム技術を実現するための仮想ボリューム管理方式の中で現在よく知られた方式を、図１２〜図１５を用いて説明する。
【０００７】
図１２は、ディスクアレイ装置の物理的なイメージを示すブロック図である。ホスト２１に接続されているディスクアレイ装置２２には、ディスク２２３〜２２６が搭載されている。ディスク２２３〜２２６では、同図に示すように、物理空間が一定の物理エクステントと呼ぶ大きさに区切られて管理されている。
【０００８】
また、図１３は、ディスクアレイ装置の論理的なイメージを示すブロック図である。ホスト２１から見ると、ディスクアレイ装置２２にはボリューム２２７〜２２８が存在するように見える。ボリューム２２７〜２２８は、ディスクアレイ装置２２の内部の管理としては、同図に示すように、論理エクステントと呼ぶ大きさに区切られて管理されている。
【０００９】
ここで、論理エクステントと物理エクステントとは同一の大きさであり、一対一対応となるが、仮想ボリューム技術ではこの対応付けを必要に応じて行い、必要のない場合には対応付けがないままのエクステントが存在することになる。これらの対応付けを管理する手段として、メモリ部２２２に、当該対応付けを示す管理テーブルが設けられることになる。この管理テーブルとしては、例えば、図１４に示すような論理テーブルと、図１５に示すような物理テーブルとが、存在する。
【００１０】
図１４の論理テーブルは、各論理エクステント（エクステント番号（図中のエクステント＃０〜エクステント＃４）で識別される論理エクステント）毎に、その論理エクステントが物理エクステントに割り当てられているか否かを示す有効フラグと、割り当て先の物理アドレスを示す割り当て物理アドレスとを管理する。
【００１１】
また、図１５の物理テーブルは、各物理エクステント（エクステント番号（図中のエクステント＃０〜エクステント＃４）で識別される物理エクステント）毎に、リンクポインタを管理する。この物理テーブルは、全ての物理エクステントについて、各物理エクステントが割り当て済みか否かを管理するために、割り当て済みでないエクステント（空きエクステント）をリンクによって管理する（空きエクステントカウンタ，空きエクステント先頭リンクポインタ，およびリンクポインタを使って管理する）。
【００１２】
【発明が解決しようとする課題】
上記に示すような従来の仮想ボリューム管理方式によって、ディスクアレイ装置における仮想ボリューム技術は実現可能となるが、この従来技術においては、上記で示すような管理テーブル（例えば、図１４に示すような論理テーブルおよび図１５に示すような物理テーブル）を記憶するために、十分な容量のメモリを搭載していることが条件となる。
【００１３】
ここで、管理テーブルの大きさは、上記で示すように、論理ボリュームの大きさと物理容量の大きさとに比例して大きくなる。したがって、構築する論理ボリュームの容量を拡大したり、搭載する物理容量を拡大したりするほど、メモリの容量が多く必要になり、コストアップにつながる。
【００１４】
逆に、コストアップを回避するためにメモリの容量を固定するためには、仮想ボリュームとして使用できる論理容量や物理容量を制限することが必要になる。仮想ボリュームの容量が制限されるということは、仮想ボリューム技術の本来の特徴である「低コストで大容量のボリュームを定義すること」や、「性能問題の発生しないディスク増設を実現すること」等の利点を十分に達成できないことになる。
【００１５】
上記のように、仮想ボリューム技術を十分有効に活用するためには、「コスト的な制限なく、大容量の論理空間・物理空間を制御できること」が望まれる。しかしながら、従来の仮想ボリューム管理方式では、このような要請に的確に応えることができないという問題点があった。
【００１６】
本発明の目的は、上述の点に鑑み、ディスクアレイ装置において仮想ボリューム技術を実現するに際して、その管理情報の扱いを工夫すること（管理テーブルの全管理データをディスクドライブに配置し、そのうち必要な部分をその都度部分的にメモリ上の固定領域に入れ替えること）で、仮想ボリュームの管理情報処理におけるディスクアクセスのためのオーバヘッドを可能な範囲で最小限に抑えながら、少ない容量のメモリで大容量の仮想ボリュームを定義することができる仮想ボリューム管理方式を提供することにある。
【００１７】
すなわち、本発明の特徴は、仮想ボリュームの管理に必要な管理テーブル（論理テーブルおよび物理テーブル）を階層的に管理し、「上位層（上位階層）の管理テーブルの情報はメモリに常駐させ、下位層（下位階層）の管理テーブルの情報の実体をディスク上に置きながら必要に応じてメモリに読み込む」というキャッシュ制御を行うことにある。これにより、頻繁にアクセスされる管理テーブル内のデータがメモリ上に存在する場合が多くなり、仮想ボリュームに関する管理情報の処理に置いてメモリアクセスだけですむ場合が多くなり、ディスクアクセスまで行わなければならない場合が少なくなるため、平均的には管理情報が全てメモリ上に有る場合に近い処理時間となる。その結果、限られた容量のメモリで、より大容量の仮想ボリュームを実現することが可能になる。
【００１８】
【課題を解決するための手段】
本発明の仮想ボリューム管理方式は、ホストからのアクセスが行われるディスクアレイ装置において、一定の大きさの複数の管理テーブルバッファを備える管理テーブルバッファ領域とその管理テーブルバッファ領域の管理を行うメモリ管理テーブルとからなるメモリ上のキャッシュ制御領域と、メモリ上に配置される上位層論理テーブルとディスク上に配置される下位層論理テーブルとからなる階層構造をとっており、上位層論理テーブルが下位層論理テーブル中の各管理テーブルブロックの前記キャッシュ制御領域上の所在位置とディスク上の所在位置とを管理しており、仮想ボリューム（論理ボリューム）における各論理エクステントが割り当てられているディスク上の物理エクステントがどこに存在するかを示す情報（割り当てられていないということを示す情報を含む）を記憶する論理テーブルと、メモリ上に配置される上位層物理テーブルとディスク上に配置される下位層物理テーブルとからなる階層構造をとっており、上位層物理テーブルが下位層物理テーブル中の各管理テーブルブロックの前記キャッシュ制御領域上の所在位置とディスク上の所在位置とを管理しており、各物理エクステントの割り当て状態を示す情報を記憶する物理テーブルと、下位層論理テーブル／下位層物理テーブルへのアクセスが必要な場合に、上記の管理テーブルバッファを獲得して、アクセスが必要な下位層論理テーブル／下位層物理テーブル中の管理テーブルブロックのデータ（下位層論理テーブル／下位層物理テーブルの部分データ）を当該管理テーブルバッファにコピーし、アクセスが終わった後もそのままそのデータをその管理テーブルバッファに記憶しておくことにより、前記キャッシュ制御領域とディスク上の管理テーブルブロックが格納されている領域との間でのキャッシュ制御（「必要なデータを読み込むこと」および「更新されたデータを書き込むこと」を内容とするキャッシュ制御）を行うコントローラとを有する。
【００１９】
また、本発明の仮想ボリューム管理方式は、上記の特徴に加えて、下位層論理テーブル／下位層物理テーブルへのアクセスが必要な場合に必要な部分のデータをコピーするための管理テーブルバッファが余っていないときに、アクセス時点が最も古い管理テーブルバッファにおける追い出し処理（キャッシュ制御の一部としてメモリ上の古いデータを新しいデータで追い出す処理）によって、上記のデータのコピーを実現するコントローラを有することを特徴とするように構成することも可能である。
【００２０】
ここで、本発明の仮想ボリューム管理方式は、例えば、下位層論理テーブルが構築されていないこと示す情報（全ての有効フラグにおける無効を示す情報）を持つ上位層論理テーブルを構築することによって仮想ボリュームの構築を行う仮想ボリューム構築手段と、ホストからのライト要求に係るアクセスに応じて仮想ボリュームライト処理（後述の図７に示す処理）を行い、ホストからのリード要求に係るアクセスに応じて仮想ボリュームリード処理（後述の図８に示す処理）を行う仮想ボリュームリードライト手段と、前記仮想ボリュームリードライト手段からの要求（図７中のステップＡ３またはステップＡ８を実行するための要求）に応じて空き物理エクステント獲得処理（後述の図１０に示す処理）を行う空き物理エクステント獲得手段と、前記仮想ボリュームリードライト手段や前記空き物理エクステント獲得手段からの要求（図７中のステップＡ５もしくは図８中のステップＢ３または図１０中のステップＤ３を実行するための要求）に応じて空き管理テーブルバッファ獲得処理（後述の図９に示す処理）を行う空き管理テーブルバッファ獲得手段とを備え、これらの手段によって仮想ボリュームの管理のためのキャッシュ制御を実現するコントローラを有するように構成することが考えられる。
【００２１】
なお、本発明の仮想ボリューム管理方式は、より一般的には、ホストからのアクセスが行われるディスクアレイ装置において、メモリ上に配置される上位層論理テーブルとディスク上に配置される下位層論理テーブルとからなる階層構造をとっており、仮想ボリュームの各部分に対応する物理領域の各部分がどこにあるかを記憶する論理テーブルと、メモリ上に配置される上位層物理テーブルとディスク上に配置される下位層物理テーブルとからなる階層構造をとっており、物理領域の各部分の割り当て状態を記憶する物理テーブルと、下位層論理テーブル／下位層物理テーブルの一部／全部をメモリにコピーして仮想ボリュームの管理を行うコントローラとを有する構成であると表現することができる。
【００２２】
また、本発明は、一定の大きさの複数の管理テーブルバッファを備える管理テーブルバッファ領域とその管理テーブルバッファ領域の管理を行うメモリ管理テーブルとからなるメモリ上のキャッシュ制御領域，メモリ上に配置される上位層論理テーブルとディスク上に配置される下位層論理テーブルとからなる階層構造をとっており、上位層論理テーブルが下位層論理テーブル中の各管理テーブルブロックの前記キャッシュ制御領域上の所在位置とディスク上の所在位置とを管理しており、仮想ボリュームにおける各論理エクステントが割り当てられているディスク上の物理エクステントがどこに存在するかを示す情報を記憶する論理テーブル，およびメモリ上に配置される上位層物理テーブルとディスク上に配置される下位層物理テーブルとからなる階層構造をとっており、上位層物理テーブルが下位層物理テーブル中の各管理テーブルブロックの前記キャッシュ制御領域上の所在位置とディスク上の所在位置とを管理しており、各物理エクステントの割り当て状態を示す情報を記憶する物理テーブルを有するディスクアレイ装置内のコントローラを、下位層論理テーブル／下位層物理テーブルへのアクセスが必要な場合に、上記の管理テーブルバッファを獲得して、アクセスが必要な下位層論理テーブル／下位層物理テーブル中の管理テーブルブロックのデータを当該管理テーブルバッファにコピーし、アクセスが終わった後もそのままそのデータをその管理テーブルバッファに記憶しておくことにより、前記キャッシュ制御領域とディスク上の管理テーブルブロックが格納されている領域との間でのキャッシュ制御を行うように機能させる（当該機能に加えて、下位層論理テーブル／下位層物理テーブルへのアクセスが必要な場合に必要な部分のデータをコピーするための管理テーブルバッファが余っていないときに、アクセス時点が最も古い管理テーブルバッファにおける追い出し処理によって、上記のデータのコピーを実現するように機能させることも考えられる）ためのプログラムの態様で実現することも可能である。
【００２３】
【発明の実施の形態】
次に、本発明について図面を参照して詳細に説明する。
【００２４】
（１）　第１の実施の形態
【００２５】
図１は、本発明の第１の実施の形態に係る仮想ボリューム管理方式が適用されるコンピュータシステムの構成を示すブロック図である。
【００２６】
図１を参照すると、このコンピュータシステムは、ホスト（ホストコンピュータ）１１と、ディスクアレイ装置１２とを含んで構成されている。
【００２７】
ディスクアレイ装置１２は、コントローラ１２１と、メモリ１２２と、ディスク（物理ディスク）１２３〜１２５とを含んで構成されている（ディスクの数が３に限定されないことはいうまでもない）。
【００２８】
コントローラ１２１は、仮想ボリューム構築手段１と、仮想ボリュームリードライト手段２と、空き管理テーブルバッファ獲得手段３と、空き物理エクステント獲得手段４とを含んで構成されている。
【００２９】
メモリ１２２には、上位層論理テーブル１３１と、上位層物理テーブル１３２と、メモリ管理テーブル１３３と、管理テーブルバッファ領域１３４とが存在する。
【００３０】
ディスク１２３には、下位層論理テーブル１４１と、下位層物理テーブル１４４とが存在する。また、ディスク１２４には、下位層論理テーブル１４２と、下位層物理テーブル１４５とが存在する。さらに、ディスク１２５には、下位層論理テーブル１４３と、下位層物理テーブル１４６とが存在する。
【００３１】
上記のように、上位層論理テーブル１３１および上位層物理テーブル１３２は、メモリ１２２上に存在するため、コントローラ１２１からの高速なアクセスが可能である。
【００３２】
一方、下位層論理テーブル１４１〜１４３および下位層物理テーブル１４４〜１４６は、ディスク１２３〜１２５上に存在し、部分的に、その内容が管理テーブルバッファ領域１３４にコピーされる。管理テーブルバッファ領域１３４の状態は、メモリ管理テーブル１３３において管理される。すなわち、メモリ管理テーブル１３３と管理テーブルバッファ領域１３４とによって、下位層テーブル（下位層論理テーブル１４１〜１４３および下位層物理テーブル１４４〜１４６）のキャッシュ制御が行われる（メモリ管理テーブル１３３と管理テーブルバッファ領域１３４とによりキャッシュ制御領域が形成される）。
【００３３】
図２〜図６は、本発明の仮想ボリューム管理方式の特徴をなす仮想ボリューム管理テーブル（上位層／下位層の論理テーブル／物理テーブル）を説明するための図である。
【００３４】
本実施の形態、ひいては本発明では、論理テーブルは、２階層の階層構造で構築されている。
【００３５】
下位層論理テーブル１４１〜１４３は、従来技術における論理テーブルと同じものであり、各論理エクステントについて、割り当て先の物理エクステントを管理するための情報を保持している。この下位層論理テーブル１４１〜１４３は、ディスク１２３〜１２５上の物理エクステントに保存され、その一部のみが（管理テーブルブロックという単位で）必要に応じてメモリ１２２上に読み出される。ここで、下位層論理テーブル１４１〜１４３は、一定の大きさに分割されている（この分割単位が管理テーブルブロックに該当する）。
【００３６】
上位層論理テーブル１３１は、管理テーブルブロックを単位として、その管理テーブルブロックがディスク１２３〜１２５上のどの位置に保存されているか、また、メモリ１２２上のどの位置に保存されているか、を管理する。
【００３７】
また、本実施の形態、ひいては本発明では、物理テーブルも、２階層の階層構造で構築されており（下位層物理テーブル１４４〜１４６と上位層物理テーブル１３２とが存在する）、上述の論理テーブルと同様な管理を行っている。
【００３８】
メモリ１２２上には、下位層テーブルの管理テーブルブロックを一時的に保存する領域（管理テーブルバッファ領域１３４）と、それを管理する領域（メモリ管理テーブル１３３）とが存在する。必要に応じて、ディスク１２３〜１２５から管理テーブルブロックが読み出されてメモリ１２２に格納される。上記の領域（下位層テーブルを一時的に保存する領域）の大きさは、一定であるので、空き領域がない場合には追い出し制御が行われるが、頻繁に使用する管理テーブルブロックがメモリ１２２上に存在していることで、ディスクアクセスが必要になるケースは少ない。
【００３９】
図２は、上位層論理テーブル１３１の詳細な構成を示す図である。
【００４０】
上位層論理テーブル１３１は、メモリ１２２上に存在し、各ボリューム（仮想ボリューム）における各管理テーブルブロック（ボリューム番号（図中のボリューム＃０，＃１，…）および管理テーブルブロック番号（図中の管理テーブルブロック＃０，＃１，…）で識別される論理テーブル上の管理テーブルブロック）毎に、有効フラグと、割り当て物理アドレスと、メモリ有効フラグと、割り当てメモリアドレスとを管理する。
【００４１】
ある管理テーブルブロックに対する有効フラグは、その管理テーブルブロックがディスク１２３〜１２５上に存在するか否かを示す（存在する場合にフラグオンとなる）。
【００４２】
ある管理テーブルブロックに対する割り当て物理アドレスは、その管理テーブルブロックがディスク１２３〜１２５上に存在する場合（有効フラグがフラグオンの場合）に、その管理テーブルブロックのディスク１２３〜１２５上のアドレスを示す。
【００４３】
ある管理テーブルブロックに対するメモリ有効フラグは、その管理テーブルブロックがメモリ１２２上に存在するか否かを示す（存在する場合にフラグオンとなる）。
【００４４】
ある管理テーブルブロックに対する割り当てメモリアドレスは、その管理テーブルブロックがメモリ１２２上に存在する場合（メモリ有効フラグがフラグオンの場合）に、その管理テーブルブロックのメモリ１２２上のアドレスを示す。
【００４５】
図３は、下位層論理テーブル１４１〜１４３の詳細な構成を示す図である。
【００４６】
下位層論理テーブル１４１〜１４３は、各ボリューム（仮想ボリューム）における各論理エクステント（ボリューム番号（図中のボリューム＃０，＃１，…）およびエクステント番号（図中のエクステント＃０，＃１，…）で識別される論理エクステント）毎に、有効フラグと、割り当て物理アドレスとを管理する。
【００４７】
なお、このテーブルは、図３の全体のイメージのままでは存在せず、ディスク１２３〜１２５上に分散して配置されている。また、その一部が必要に応じてメモリ１２２上のキャッシュ制御領域にコピーされている。このコピーの際等に取り扱われる下位層論理テーブル１４１〜１４３内のデータの分割単位を、管理テーブルブロック（論理テーブル上の管理テーブルブロック）と呼ぶ。
【００４８】
ここでは、エクステント＃０から＃Ｎ−１（Ｎは正整数）までのテーブル（データ）をまとめて管理テーブルブロック＃０と呼び、エクステント＃Ｎから＃２Ｎ−１までのテーブル（データ）をまとめて管理テーブルブロック＃１と呼ぶこととする。
【００４９】
ある論理エクステントに対する有効フラグは、その論理エクステントが物理エクステントに割り当てられているか否かを示す（割り当てられている場合にフラグオンとなる）。
【００５０】
ある論理エクステントに対する割り当て物理アドレスは、その論理エクステントが物理エクステントに割り当てられている場合に、その物理エクステントのアドレスを示す。
【００５１】
図４は、上位層物理テーブル１３２の詳細な構成を示す図である。
【００５２】
上位層物理テーブル１３２は、メモリ１２２上に存在し、各ディスクにおける各管理テーブルブロック（ディスク番号（図中のディスク＃０，＃１，…）および管理テーブルブロック番号（図中の管理テーブルブロック＃０，＃１，…）で識別される物理テーブル上の管理テーブルブロック）毎に、リンクポインタと、メモリ有効フラグと、割り当てメモリアドレスとを管理する。また、空き管理テーブルブロックリンクの管理ために、空き管理テーブルブロックカウンタおよび空き管理テーブルブロック先頭リンクポインタを有している。
【００５３】
リンクポインタは、空き管理テーブルブロック先頭リンクポインタとともに、空き管理テーブルブロックリンクを形成する。この空き管理テーブルブロックリンクは、自己（物理テーブル上の管理テーブルブロック）に含まれる物理エクステントのなかにひとつでも論理エクステントに割り当てられていない物理エクステントが存在する管理テーブルブロックのみで形成されるリンクである。
【００５４】
空き管理テーブルブロックカウンタは、空き管理テーブルブロックリンクを形成する管理テーブルブロックの数を管理する。
【００５５】
ある管理テーブルブロックに対するメモリ有効フラグは、その管理テーブルブロックがメモリ１２２上に存在するか否かを示す（存在する場合にフラグオンとなる）。
【００５６】
ある管理テーブルブロックに対する割り当てメモリアドレスは、その管理テーブルブロックがメモリ１２２上に存在する場合（メモリ有効フラグがフラグオンの場合）に、その管理テーブルブロックのメモリ１２２上のアドレスを示す。
【００５７】
図５は、下位層物理テーブル１４４〜１４６の詳細な構成を示す図である。
【００５８】
下位層物理テーブル１４４〜１４６は、各ディスクにおける各物理エクステント（ディスク番号（図中のディスク＃０，＃１，…）およびエクステント番号（図中のエクステント＃０，＃１，…）で識別される物理エクステント）毎に、リンクポインタを管理する。また、空きエクステントリンクの管理ために、空きエクステントカウンタおよび空きエクステント先頭リンクポインタを有している。
【００５９】
なお、このテーブルも、下位層論理テーブル１４１〜１４３と同様に、図５の全体のイメージのままでは存在せず、ディスク１２３〜１２５上に分散して配置されている。また、その一部がメモリ１２２上のキャッシュ制御領域にコピーされている。このコピーの際等に取り扱われる下位層物理テーブル１４４〜１４６内のデータの分割単位を、管理テーブルブロック（物理テーブル上の管理テーブルブロック）と呼ぶ。
【００６０】
ここでは、エクステント＃０から＃Ｍ−１（Ｍは正整数）までのテーブル（データ）をまとめて管理テーブルブロック＃０と呼び、エクステント＃Ｍから＃２Ｍ−１までのテーブル（データ）をまとめて管理テーブルブロック＃１と呼ぶこととする。
【００６１】
リンクポインタは、空きエクステント先頭リンクポインタとともに、空きエクステントリンクを形成する。この空きエクステントリンクは、論理エクステントが割り当てられていない物理エクステントのみで形成されるリンクである。
【００６２】
空きエクステントカウンタは、空きエクステントリンクを形成する物理エクステントの数を管理する。
【００６３】
図６は、メモリ１２２上のキャッシュ制御領域（メモリ管理テーブル１３３および管理テーブルバッファ領域１３４）の詳細な構成を示す図である。
【００６４】
管理テーブルバッファ領域１３４は、管理テーブルブロック（論理テーブル上の管理テーブルブロックまたは物理テーブル上の管理テーブルブロック）を格納するための領域であり、複数の管理テーブルバッファ（図中の管理テーブルバッファ（＃０），管理テーブルバッファ（＃１），…）を備えている。
【００６５】
メモリ管理テーブル１３３は、各管理テーブルバッファ（管理テーブルバッファ番号（図中の管理テーブルバッファ＃０，＃１，…）で識別される管理テーブルバッファ）毎に、順方向リンクポインタと、逆方向リンクポインタと、テーブル種別と、管理ブロック情報とを管理する。また、空き管理テーブルバッファリンクの管理ために、空き管理テーブルバッファカウンタ，空き管理テーブルバッファ先頭リンクポインタ，および空き管理テーブルバッファ最後尾リンクポインタを有しており、使用中管理テーブルバッファリンクの管理ために、使用中管理テーブルバッファカウンタ，使用中管理テーブルバッファ先頭リンクポインタ，および使用中管理テーブルバッファ最後尾リンクポインタを有している。
【００６６】
順方向リンクポインタおよび逆方向リンクポインタは、空き管理テーブルバッファ先頭リンクポインタおよび空き管理テーブルバッファ最後尾リンクポインタとともに空き管理テーブルバッファリンクを形成するか、または、使用中管理テーブルバッファ先頭リンクポインタおよび使用中管理テーブルバッファ最後尾リンクポインタとともに使用中管理テーブルバッファリンクを形成する。
【００６７】
空き管理テーブルバッファカウンタは、空き管理テーブルバッファリンクに含まれる管理テーブルバッファの数を管理する。また、使用中管理テーブルバッファカウンタは、使用中管理テーブルバッファリンクに含まれる管理テーブルバッファの数を管理する。
【００６８】
ある管理テーブルバッファに対するテーブル種別は、その管理テーブルバッファに、論理テーブル上の管理テーブルブロックが格納されているか物理テーブル上の管理テーブルブロックが格納されているかを示す。
【００６９】
ある管理テーブルバッファに対する管理ブロック情報は、その管理テーブルバッファに格納されている管理テーブルブロックの管理テーブルブロック番号を示す。
【００７０】
図７は、本実施の形態に係る仮想ボリューム管理方式における仮想ボリュームライト処理を示す流れ図である。この処理は、上位層論理テーブルメモリ有効フラグチェックステップＡ１と、上位層論理テーブル有効フラグチェックステップＡ２と、空き物理エクステント獲得処理ステップＡ３と、管理テーブルブロック作成ステップＡ４と、空き管理テーブルバッファ獲得処理ステップＡ５と、管理テーブルブロック読み出しステップＡ６と、論理エクステント有効フラグチェックステップＡ７と、空き物理エクステント獲得処理ステップＡ８と、データ書き込みステップＡ９とからなる。
【００７１】
図８は、本実施の形態に係る仮想ボリューム管理方式における仮想ボリュームリード処理を示す流れ図である。この処理は、上位層論理テーブルメモリ有効フラグチェックステップＢ１と、上位層論理テーブル有効フラグチェックステップＢ２と、空き管理テーブルバッファ獲得処理ステップＢ３と、管理テーブルブロック読み出しステップＢ４と、論理エクステント有効フラグチェックステップＢ５と、ダミーデータ作成ステップＢ６と、データ読み出しステップＢ７とからなる。
【００７２】
図９は、本実施の形態に係る仮想ボリューム管理方式における空き管理テーブルバッファ獲得処理を示す流れ図である。この処理は、空き管理テーブルバッファカウンタチェックステップＣ１と、使用中管理テーブルバッファリンク除去ステップＣ２と、管理テーブルバッファ関係情報削除ステップＣ３と、空き管理テーブルバッファリンク除去ステップＣ４と、管理テーブルバッファ新規関係情報構築ステップＣ５と、使用中管理テーブルバッファリンク挿入ステップＣ６とからなる。
【００７３】
図１０は、本実施の形態に係る仮想ボリューム管理方式における空き物理エクステント獲得処理を示す流れ図である。この処理は、ディスク選択ステップＤ１と、上位層物理テーブルメモリ有効フラグチェックステップＤ２と、空き管理テーブルバッファ獲得処理ステップＤ３と、管理テーブルブロック読み出しステップＤ４と、空きエクステントリンク除去ステップＤ５とからなる。
【００７４】
次に、図１〜図１０を参照して、上記のように構成された本実施の形態に係る仮想ボリューム管理方式の全体の動作について詳細に説明する。
【００７５】
第１に、仮想ボリューム構築処理時の動作について説明する。
【００７６】
ディスクアレイ装置１２上のコントローラ１２１内の仮想ボリューム構築手段１は、仮想ボリュームの構築を、図２に示すような上位層論理テーブル１３１を構築することによって行う。
【００７７】
この時点では、下位層論理テーブル１４１〜１４３が構築されていないので、上位層論理テーブル１３１中の有効フラグは全て無効となっている。
【００７８】
ここまでの処理（有効フラグが全て無効の上位層論理テーブル１３１を構築する処理）により、仮想ボリュームの構築は完了する。
【００７９】
なお、ここまでの処理は全てメモリ１２２上の操作で実現できるので、この仮想ボリューム構築処理は、高速に実施することが可能となる。
【００８０】
第２に、ボリューム（仮想ボリューム）に対するリードライト処理時の動作について説明する。
【００８１】
まず、仮想ボリュームライト処理時の動作フローについて説明する（図７参照）。
【００８２】
ホスト１１からディスクアレイ装置１２に対してライト対象の論理エクステントのアドレス（論理アドレス）が指定されてアクセスが行われた場合に、仮想ボリュームライト処理が始まる。すなわち、コントローラ１２１内の仮想ボリュームリードライト手段２は、以下に示すような処理を行う。
【００８３】
まず、上位層論理テーブル１３１において、当該アドレスの論理エクステントを含む管理テーブルブロックに対するメモリ有効フラグをチェックし、フラグオンであるか否か（そのメモリ有効フラグが有効であるか無効であるか）を判定する（ステップＡ１）。
【００８４】
ステップＡ１で「そのメモリ有効フラグが無効である」と判定した場合には、必要な管理テーブルブロックがメモリ１２２上に存在しないことを意味しているので、次に、上位層論理テーブル１３１において、当該管理テーブルブロックに対する有効フラグをチェックし、フラグオンであるか否か（その有効フラグが有効であるか無効であるか）を判定する（ステップＡ２）。
【００８５】
ステップＡ２で「その有効フラグが有効である」と判定した場合には、必要な管理テーブルブロックがディスク１２３〜１２５上に存在することを意味しているので、当該管理テーブルブロックをメモリ１２２に転送するための空き管理テーブルバッファ獲得処理を行わせる（ステップＡ５）。なお、この空き管理テーブルバッファ獲得処理については、後で詳しく説明する。
【００８６】
ステップＡ５の空き管理テーブルバッファ獲得処理でメモリ１２２上の管理テーブルバッファ領域１３４内の管理テーブルバッファを獲得したら、当該管理テーブルバッファに、ディスク１２３〜１２５上の下位層論理テーブル１４１〜１４３から、当該管理テーブルブロックの読み出し処理を実行する（ステップＡ６）。
【００８７】
ステップＡ６の読み出し処理（管理テーブルバッファへの当該管理テーブルブロックの転送処理）が終了した場合または先述のステップＡ１で「そのメモリ有効フラグが有効である」と判定した場合（必要な管理テーブルブロックがメモリ１２２上の管理テーブルバッファ領域１３４内の管理テーブルバッファに存在していた場合）には、メモリ１２２上の管理テーブルバッファ領域１３４内の当該管理テーブルバッファにおける当該管理テーブルブロック（メモリ１２２上に転送された下位層論理テーブル１４１〜１４３の部分データ）中の当該論理エクステント（アクセス対象の論理エクステント）に対する有効フラグをチェックし、その有効フラグが有効であるか無効であるかを判定する（ステップＡ７）。
【００８８】
ステップＡ７で「その有効フラグが無効である」と判定した場合には、これからライトしようとしている論理エクステントがまだ物理エクステントに割り当てられていないことを意味しているので、空き物理エクステント獲得処理を行わせる（ステップＡ８）。なお、この空き物理エクステント獲得処理については、後で詳しく説明する。
【００８９】
また、ステップＡ２で「その有効フラグが無効である」と判定した場合（必要な管理テーブルブロックがディスク１２３〜１２５上にも存在しない場合）にも、当該管理テーブルブロックの構築を実施しなければならないので、空き物理エクステント獲得処理を行わせる（ステップＡ３）。
【００９０】
ステップＡ３で空き物理エクステントを獲得したら、論理テーブル上の管理テーブルブロック（下位層論理テーブル１４１〜１４３内の当該管理テーブルブロック）をその物理エクステント上に作成する（下位層論理テーブル１４１〜１４３内の管理テーブルブロックの作成処理を行う）（ステップＡ４）。
【００９１】
さらに、この場合には、これからライトしようとしている論理エクステントがまだ物理エクステントに割り当てられていないので、空き物理エクステント獲得処理を行う（ステップＡ８）。
【００９２】
ステップＡ８の空き物理エクステント獲得処理が終了した場合または先述のステップＡ７で「その有効フラグ（アクセス対象の論理エクステントに対する有効フラグ）が有効である」と判定した場合には、当該論理エクステントは物理エクステントに割り当てられており、これからデータをライトしようとしている論理エクステントがどの物理エクステントに割り当てられているかが分かっているので、ディスク１２３〜１２５上の当該物理エクステントにライト対象のデータを書き込む（ステップＡ９）。これによって、仮想ボリュームライト処理が完了する。
【００９３】
次に、仮想ボリュームリード処理時の動作フローについて説明する（図８参照）。
【００９４】
仮想ボリュームリード処理のフロー（図８のフロー）は、仮想ボリュームライト処理のフロー（図７のフロー）とほとんど同じであるので、異なる部分のみを説明する。
【００９５】
両処理が異なる点は、ホスト１１から指定されたアドレスで特定される論理エクステントが物理エクステントに割り当てられていない場合（そのようなアドレスに対するライト要求／リード要求が発生した場合）の対応である。
【００９６】
仮想ボリュームリード処理の場合には、通常、このようなアドレスはホスト１１から見て有意なデータが存在しないので、リードすることには意味がない。しかし、仮にリードされた場合には、ダミーデータを返せばよい。したがって、仮想ボリュームライト処理の時とは違い、この時点での物理エクステントの割り当て処理（図７中のステップＡ３，ステップＡ４，およびステップＡ８）は行われない。
【００９７】
すなわち、仮想ボリュームリードライト手段２は、図８のフローにおいては、図７におけるステップＡ３，ステップＡ４，およびステップＡ８に対応する処理を行わない。一方、図８のフローにおける特有の処理として、ダミーデータ作成処理（ステップＢ６）を実行し、指定されたアドレスで特定される論理エクステントが物理エクステントに割り当てられていない場合に、ダミーデータをホスト１１に返却する。
【００９８】
なお、仮想ボリュームライト処理と仮想ボリュームリード処理との間の処理内容の違い（ライト処理かリード処理かの違い）に基づき、図７のフローにおける「データのディスクへの書き込み」（ステップＡ９参照）が、図８のフローにおいては「データのディスクからの読み出し」（ステップＢ７参照）に変わっている。
【００９９】
第３に、空き管理テーブルバッファ獲得処理時の動作について説明する（図９参照）。
【０１００】
コントローラ１２１内の空き管理テーブルバッファ獲得手段３は、先述のステップＡ５もしくはステップＢ３または後述のステップＤ３における空き管理テーブルバッファ獲得処理として、以下に示すような処理を行う。
【０１０１】
処理を開始すると、メモリ管理テーブル１３３内の空き管理テーブルバッファカウンタをチェックし、その値が０（ゼロ）でないかどうかの判定によって、空き管理テーブルバッファの有無を判定する（ステップＣ１）。
【０１０２】
ステップＣ１で「空き管理テーブルバッファが存在しない（空き管理テーブルバッファカウンタの値がゼロである）」と判定した場合には、全ての管理テーブルバッファが別の管理テーブルブロックで埋まってしまっていることを意味するため、追い出し処理を行わなければならない。そこで、ＬＲＵ（Ｌｅａｓｔ　Ｒｅａｃｅｎｔｌｙ　Ｕｓｅｄ）リンクである使用中管理テーブルバッファリンクの最後尾に存在する管理テーブルバッファを当該使用中管理テーブルバッファリンクからはずす（ステップＣ２）。
【０１０３】
次に、当該管理テーブルバッファの関係情報を削除する（ステップＣ３）。すなわち、当該管理テーブルバッファに格納されていた管理テーブルブロックに対応する上位層テーブル（上位層論理テーブル１３１または上位層物理テーブル１３２）におけるメモリ有効フラグを無効にする。
【０１０４】
一方、ステップＣ１で「空き管理テーブルバッファが存在する（空き管理テーブルバッファカウンタの値がゼロではない）」と判定した場合には、追い出し処理は必要ないので、空き管理テーブルバッファを空き管理テーブルバッファリンクからはずす（ステップＣ４）。
【０１０５】
次に、ステップＣ３またはステップＣ４で獲得した管理テーブルバッファの新規関係情報を構築する（ステップＣ５）。すなわち、当該管理テーブルバッファに格納される管理テーブルブロックに対応する情報を以下のａおよびｂに示すように設定する。
【０１０６】
ａ．上位層テーブル（上位層論理テーブル１３１または上位層物理テーブル１３２）において、当該管理テーブルブロックに対応するメモリ有効フラグを有効とし、当該管理テーブルブロックに対応する割り当てメモリアドレスをセットする。
【０１０７】
ｂ．メモリ管理テーブル１３３において、当該管理テーブルブロックに対応するテーブル種別および管理ブロック情報をセットする。
【０１０８】
その上で、当該管理テーブルバッファをＬＲＵリンクである使用中管理テーブルバッファリンクの先頭に挿入する（ステップＣ６）。これによって、空き管理テーブルバッファ獲得処理が完了する。
【０１０９】
第４に、空き物理エクステント獲得処理時の動作について説明する（図１０参照）。
【０１１０】
コントローラ１２１内の空き物理エクステント獲得手段４は、ステップＡ３またはステップＡ８における空き物理エクステント獲得処理として、以下に示すような処理を行う。
【０１１１】
処理を開始すると、上位層物理テーブル１３２内の空き管理テーブルブロックカウンタをチェックする（ディスクが複数有ればこの空き管理テーブルブロックカウンタも複数有るので、複数の空き管理テーブルブロックカウンタをチェックする）。そして、当該チェックに基づいて、割り当て量が全てのディスク１２３〜１２５の各々に公平に分散するように、ディスクの選択を行う（ステップＤ１）。通常は、割り当て量が最も少ない（空き管理テーブルブロックカウンタの値が最も大きい）ディスクを選択する。
【０１１２】
次に、上位層物理テーブル１３２における当該ディスク（ステップＤ１で選択したディスク）に関する空き管理テーブルブロックリンクの先頭にリンクされている管理テーブルブロックをチェックし、当該管理テーブルブロックのメモリ有効フラグが有効であるか無効であるかを判定する（ステップＤ２）。
【０１１３】
ステップＤ２で「当該管理テーブルブロックのメモリ有効フラグが無効である」と判定した場合には、当該管理テーブルブロックがメモリ１２２上に存在しないことを意味しているので、読み出し処理が必要となる。したがって、この場合には、空き管理テーブルバッファ獲得処理を行わせ（ステップＤ３）、ステップＤ３で獲得した管理テーブルバッファに当該管理テーブルブロックの読み出し（転送）を行う（ステップＤ４）。
【０１１４】
一方、ステップＤ２で「当該管理テーブルブロックのメモリ有効フラグが有効である」と判定した場合またはステップＤ４の管理テーブルブロックの読み出しが終了した場合には、当該管理テーブルブロックに関する空きエクステントリンクの先頭にリンクされている物理エクステントを空きエクステントリンクからはずすことにより、下位層物理テーブル１４４〜１４６において空き物理エクステントを獲得する（ステップＤ５）。これによって、空き物理エクステント獲得処理が完了する。
【０１１５】
（２）　第２の実施の形態
【０１１６】
図１１は、本発明の第２の実施の形態の構成を示すブロック図である。
【０１１７】
図１１を参照すると、本発明の第２の実施の形態は、図１に示した第１の実施の形態に係る仮想ボリューム管理方式に対して、仮想ボリューム管理制御プログラム１１００を備える点が異なっている。
【０１１８】
仮想ボリューム管理制御プログラム１１００は、ディスクアレイ装置１２内のコントローラ１２１に読み込まれ、当該コントローラ１２１の動作を仮想ボリューム構築手段１，仮想ボリュームリードライト手段２，空き管理テーブルバッファ獲得手段３，および空き物理エクステント獲得手段４として制御する。仮想ボリューム管理制御プログラム１１００の制御によるコントローラ１２１の動作は、上位層論理テーブル１３１，上位層物理テーブル１３２，メモリ管理テーブル１３３，および管理テーブルバッファ領域１３４を有することとなるメモリ１２２ならびに下位層論理テーブル１４１〜１４３および下位層物理テーブル１４４〜１４６を格納することとなるディスク１２３〜１２５が存在することを前提として、第１の実施の形態におけるコントローラ１２１（仮想ボリューム構築手段１，仮想ボリュームリードライト手段２，空き管理テーブルバッファ獲得手段３，および空き物理エクステント獲得手段４）の動作と全く同様になるので、その詳しい説明を割愛する。
【０１１９】
【発明の効果】
以上説明したように、本発明によると、以下に示すような効果が生じる。
【０１２０】
本発明の第１の効果は、仮想ボリュームの管理に不可欠な管理テーブル（下位層論理テーブルおよび下位層物理テーブル）をディスク上に配置し、その一部だけをメモリ上で管理することにより、高価な大容量のメモリを実装しなくても大容量の仮想ボリューム空間を実現することが可能になるということにある。
【０１２１】
ここで、一般に、管理情報をディスク上に配置する場合には、管理情報の参照においてオーバヘッドが発生することになる。しかし、本発明では、管理情報を管理テーブルブロックと呼ぶブロック（分割単位）に区切って、限られたメモリ領域（キャッシュ制御領域）を使用したキャッシュ管理を行うことにより、全ての管理情報のうちよく参照される部分がメモリ上に存在することになる。
【０１２２】
すなわち、本発明の第２の効果は、上記のようなオーバヘッドの問題が生じないということにある。この結果として、特に問題なく、「大容量のメモリを使用せずに大容量の仮想ボリュームを実現することが可能になる」という上記の第１の効果を挙げることができる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態に係る仮想ボリューム管理方式が適用されるコンピュータシステムの構成を示すブロック図である。
【図２】図１中の上位層論理テーブルの詳細な構成を示す図である。
【図３】図１中の下位層論理テーブルの詳細な構成を示す図である。
【図４】図１中の上位層物理テーブルの詳細な構成を示す図である。
【図５】図１中の下位層物理テーブルの詳細な構成を示す図である。
【図６】図１中のメモリ管理テーブルおよび管理テーブルバッファ領域の詳細な構成を示す図である。
【図７】図１に示す仮想ボリューム管理方式における仮想ボリュームライト処理を示す流れ図である。
【図８】図１に示す仮想ボリューム管理方式における仮想ボリュームリード処理を示す流れ図である。
【図９】図１に示す仮想ボリューム管理方式における空き管理テーブルバッファ獲得処理を示す流れ図である。
【図１０】図１に示す仮想ボリューム管理方式における空き物理エクステント獲得処理を示す流れ図である。
【図１１】本発明の第２の実施の形態の構成を示すブロック図である。
【図１２】従来の仮想ボリューム管理方式を説明するためのブロック図である。
【図１３】従来の仮想ボリューム管理方式を説明するためのブロック図である。
【図１４】従来の仮想ボリューム管理方式における論理テーブルの構成を示す図である。
【図１５】従来の仮想ボリューム管理方式における物理テーブルの構成を示す図である。
【符号の説明】
１　仮想ボリューム構築手段
２　仮想ボリュームリードライト手段
３　空き管理テーブルバッファ獲得手段
４　空き物理エクステント獲得手段
１１　ホスト
１２　ディスクアレイ装置
１２１　コントローラ
１２２　メモリ
１２３，１２４，１２５　ディスク
１３１　上位層論理テーブル
１３２　上位層物理テーブル
１３３　メモリ管理テーブル
１３４　管理テーブルバッファ領域
１４１，１４２，１４３　下位層論理テーブル
１４４，１４５，１４６　下位層物理テーブル
１１００　仮想ボリューム管理制御プログラム
【図１】
2004078398.tif 000003
【図２】
2004078398.tif 000004
【図３】
2004078398.tif 000005
【図４】
2004078398.tif 000006
【図５】
2004078398.tif 000007
【図６】
2004078398.tif 000008
【図７】
2004078398.tif 000009
【図８】
2004078398.tif 000010
【図９】
2004078398.tif 000011
【図１０】
2004078398.tif 000012
【図１１】
2004078398.tif 000013
【図１２】
2004078398.tif 000014
【図１３】
2004078398.tif 000015
【図１４】
2004078398.tif 000016
【図１５】
2004078398.tif 000017