(57)【要約】仮想的な論理領域に記憶容量を動的に提供する複数の実論理領域に対して、記憶容量の均等化が迅速、かつ確実に実行される計算機システムを提供する。  本発明の計算機システムは、上位装置からのアクセスに対して、仮想論理領域に記憶領域を動的に割り当てる運用を実行している過程で、複数の論理領域間で記憶容量のバランスが崩れる契機を検出し、その後記憶領域を複数の論理領域間で移動させて、記憶容量のバランスを維持するようにしたことを特徴とするものである。
2010122674.tif 000002
【特許請求の範囲】
【請求項１】
記憶領域を有する記憶デバイスと、
上位装置からのアクセスが許容され、仮想論理領域と、
前記記憶領域を有する複数の実論理領域と、
前記仮想領域に対する前記実論理記憶領域からの前記記憶領域の割り当てを制御するコントローラと、を備え、
前記コントローラは、
前記上位装置から前記仮想論理領域にアクセスがあることに合わせて、前記仮想論理領域に、前記複数の実論理領域から、基準となる容量を持った記憶単位を順次割り当てる第１の処理と、
前記複数の実論理領域間で、前記仮想領域に割り当てられる記憶容量に不均衡が発生する状況を検出する第２処理と、
前記検出に応じて、前記複数の実論理領域間で、前記記憶容量が均等になるように、前記記憶単位の割り当てを前記複数の実論理領域間で変更する第３の処理と、を実行する計算機システム。
【請求項２】
前記コントローラは、
複数の実論理領域をグループとして前記仮想領域に割り当て、前記グループに新たな前記実論理領域が追加されることを前記不均衡が発生する状況と判定する第４の処理と、
前記複数の実論理領域の容量比を勘案し、前記複数の実論理領域の間で、前記記憶単位の割り当て比が均等になるように、前記記憶単位の割り当てを変更する第５の処理と、
前記記憶単位の割り当ての際、当該記憶単位が割り当てられている、前記仮想ボリュームの領域に、前記上位装置からのアクセスがあった場合、前記複数の実記憶領域間で前記記憶単位の割り当てを中断する第６の処理と、
前記複数の実論理領域間で前記仮想ボリュームに対する割り当てが変更される前記記憶単位が固定パターンデータを格納するか否かを判定し、前記固定データパターンを格納する記憶単位を未割り当ての属性に変更し、前記固定パターンデータを格納する専用領域を前記仮想ボリュームに割り当てる第７の処理と、を実行する、請求項１記載の計算機システム。
【請求項３】
前記コントローラは、複数の実論理領域をグループとして前記仮想領域に割り当て、前記グループに新たな前記実論理領域が追加されることを前記不均衡が発生する状況と判定する、請求項１記載の計算機システム。
【請求項４】
前記コントローラは、前記複数の実論理領域の容量比を勘案し、前記複数の実論理領域の間で、前記記憶単位の割り当て比が均等になるように、前記記憶単位の割り当てを変更する請求項１記載の計算機システム。
【請求項５】
前記コントローラは、前記複数の実論理記憶領域のうち、前記記憶単位の割り当て比が多い第１の実記憶領域に対して、前記記憶単位の前記仮想ボリュームに対する割り当てを解放し、その割り当てを前記第２の実記憶領域の前記記憶単位に設定する、請求項２記載の計算機システム。
【請求項６】
前記コントローラは、  前記第１の実領域の前記仮想ボリュームに対する割り当てが解放された記憶単位の属性を未割り当てに変更する、請求項５記載の計算機システム。
【請求項７】
前記コントローラは、複数の実論理領域をグループとして前記仮想領域に割り当て、前記グループから前記実論理領域の少なくとも一つが削除されることを前記不均衡が発生する状況と判定する、請求項１記載の計算機システム。
【請求項８】
前記コントローラは、前記削除された実論理領域から、前記グループから削除されることなく残った他の実論路領域に、前記削除された記憶領域の記憶単位の割り当てを変更し、前記残った複数の実論理領域間で前記記憶単位の割り当てを変更する、請求項７記載の計算機システム。
【請求項９】
前記コントローラは、前記記憶単位の割り当ての際、当該記憶単位が割り当てられている、前記仮想ボリュームの領域に、前記上位装置からのアクセスがあった場合、前記複数の実記憶領域間で前記記憶単位の割り当てを中断する、請求項１記載の計算機システム。
【請求項１０】
前記コントローラは、前記複数の実論理領域間で前記仮想ボリュームに対する割り当てが変更される前記記憶単位が固定パターンデータを格納するか否かを判定し、前記固定データパターンを格納する記憶単位を未割り当ての属性に変更し、前記固定パターンデータを格納する専用領域を前記仮想ボリュームに割り当てる、請求項１記載の計算機システム。
【請求項１１】
前記仮想ボリュームは、直接前記記憶デバイスの記憶領域が割り当てられていない、請求項１記載の計算機システム。
【請求項１２】
前記固定パターンデータは、全０データからなるものである、請求項１０記載の計算機システム。
【請求項１３】
上位装置からのアクセスに対して、仮想論理領域に記憶領域を動的に割り当てる運用を実行している過程で、
複数の論理領域間で記憶容量のバランスが崩れる契機を検出する処理と、
その後記憶領域を複数の論理領域間で移動させて、記憶容量のバランスを維持する処理と、
を備える計算機システムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システムに係わり、特に、ホスト装置に対して動的に記憶容量を割り当てる計算機システムに関するものである。
【背景技術】
【０００２】
従来から、ホスト装置に対して大規模なデータストレージサービスを提供する計算機システムが存在する。このシステムは、ホスト装置と、ホスト装置が接続するストレージ装置と、ストレージ装置の管理装置と、を備えたものとして知られている。
ストレージ装置は、複数のハードディスクをＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ／Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）方式で管理する。そして、多数のハードディスクが有する物理的な記憶領域を論理化し、これを論理ボリュームとしてホスト装置に提供する。ホスト装置は論理ボリュームにアクセスしてデータのリード・ライトを要求する。
この種の論理化技術の一つにシン・プロビジョニングと称されるものがある。ストレージ装置は、物理的な記憶領域を有さない仮想的なボリュームをホスト装置に対して設定する。ホスト装置が仮想的なボリュームにライトアクセスにすることに合わせて、ストレージ装置は、仮想ボリュームに対して記憶領域を順次割り当てていく。
したがって、この技術は、論理ボリュームに対して当初から大容量な記憶領域を割り当てる方式に比べて、ストレージ資源を有効に活用できる点で効果的である。この技術は、特願２００３−１５９１５号公報、及び、特開２００６−３３８３４１号公報に記載されている。
仮想ボリュームに記憶領域を提供するための手段は、それぞれ実の記憶領域が割り当てられた複数の論理ボリュームをプールと呼ばれる論理グループに纏めたものから構成される。複数の論理ボリュームはそれぞれプールボリュームと呼ばれる。仮想ボリュームにホスト装置からライトアクセスがあると、仮想ボリュームのアクセス先に、プールボリュームの対応領域の記憶領域を割り当てる。
ストレージ装置は、仮想ボリュームに対するホスト装置からのアクセス領域を、プールボリュームに記憶容量が割り当てられた領域に対応させることにより、ホスト装置からのライトデータを保存することができる。
ストレージ装置は、複数のプールボリュームへの記憶領域の割り当てが均等になるようにするが、長い時間を経過してゆく過程で、この均等が崩れてくる問題がある。そこで、特開２００８−２３４１５８号は、複数のプールボリューム間で記憶領域を移動させて、記憶領域の容量が複数のプールボリュームについて均等になることを開示している。
なお、米国特許第６８５７０５９号公報には、仮想ボリュームの未割当て領域へリードアクセスが来た場合、ストレージ装置は、プログラムによって全部が“０”からなる固定パターンを作成してホスト装置へ応答すること、仮想ボリュームの未割当て領域へライトが来た場合、記憶領域を割り当てることが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特願２００３−０１５９１５号公報
【特許文献２】特開２００６−３３８３４１号公報
【特許文献３】特開２００８−２３４１５８号公報
【特許文献４】米国特許第６８５７０５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特開２００８−２３４１５８号は、外部操作によって、記憶領域を移動させることを開示しているものの、複数のプールボリュームについて、記憶容量の均等化が迅速、かつ確実に実行されることまでを提案するものではなかった。例えば、プールボリュームから固定データを破棄すると、それだけで、複数のプールボリュームについての記憶容量の均等化が損なわれることにもなってしまう。
そこで、この発明は、仮想的な論理領域に記憶容量を動的に提供する複数の実論理領域に対して、記憶容量の均等化が迅速、かつ確実に実行される計算機システムを提供することを目的とするものである。
さらに、本発明は、固定パターンのデータを削除することのように、実論理領域のデータ量に変化が避けられない場合にも、仮想的な論理領域に記憶容量を動的に提供する複数の実論理領域に対して、記憶容量の均等化が維持される計算機システムを提供することを目的とするものである。
【課題を解決するための手段】
【０００５】
この目的を達成するために、本発明は、上位装置からのアクセスに対して、仮想論理領域に記憶領域を動的に割り当てる運用を実行している過程で、複数の論理領域間で記憶容量のバランスが崩れる契機を検出し、その後記憶領域を複数の論理領域間で移動させて、記憶容量のバランスを維持するようにした計算機システムであることを特徴とするものである。
本発明は、さらに、論理領域から固定パターンデータの削除を行いながら、複数の記憶領域間で記憶容量のバランスを図るようにした計算機システムであることを特徴とするものである。
【発明の効果】
【０００６】
本発明によれば、仮想的な論理領域に記憶容量を動的に提供する複数の実論理領域に対して、記憶容量の均等化が迅速、かつ確実に実行される計算機システムを提供することができる。
さらに、本発明によれば、固定パターンのデータを削除することのように、実論理領域のデータ量に変化が避けられない場合にも、仮想的な論理領域に記憶容量を動的に提供する複数の実論理領域に対して記憶容量の均等化が維持される計算機システムを提供することができる。
【図面の簡単な説明】
【０００７】
図１は、本発明に係わる計算機システムの第１の例を示すハードウエアブロック図である。
図２は、図１に示した計算機ステムにおいて、ストレージ装置が行う記憶領域の動的割り当ての動作を示す機能ブロック図である。
図３は、ストレージ装置のメモリブロック図である。
図４は、ＶＤＥＶ管理情報を説明するブロック図である。
図５は、ＬＤＥＶ管理情報を説明するブロック図である。
図６は、アドレス管理テーブルを説明するブロック図である。
図７は、ＰＯＯＬ管理情報のブロック図である。
図８は、ＶＶＯＬ−ＤＩＲ及びＰＳＣＢのブロック図である。
図９は、計算機システムの第２の形態を示すハードウエアブロック図である。
図１０Ａは図１に示すシステムにおける、ターゲットデバイスと、ＬＤＥＶと、ＰＤＥＶとのマッピングの関係を示すブロック図であり、図１０Ｂは図９のシステムの同ブロック図である。
図１１に、１つの仮想ボリュームと複数のプールボリュームとの間で、均等に、ページが割り当てられている様子を示すブロック図である。
図１２は、複数のプールボリューム間でのページのリバランスの過程を示す仮想ボリューム及びプールボリュームのブロック図である。
図１３は、複数のプールボリューム間で、プールボリュームの容量比を勘案してリバランスを行う様子を示す、仮想ボリューム及びプールボリュームのブロック図である。
図１４は、リバランスの契機にしたがって、ストレージ装置がリバランの処理を行うことを説明するフローチャートである。
図１５はリバンラスを示すフローチャートートである。
図１６Ａはプールを管理するテーブルであり、図１６Ｂはプールボリュームを管理するテーブルであり、図１６Ｃは、フリーキュー単位を管理するテーブルである。
図１７は、ホスト装置から仮想ボリュームへのライトアクセスに対して、プールに属するプールボリュームから仮想ボリュームにページを割り当てる順序を示したブロック図である。
図１８は、この割り当て順序を管理するテーブルである。
図１９は、複数のプールボリューム間でマイグレーションされるページ数の算出の処理を示すフローチャートである。
図２０は、算出されたページ数とページの移動の様子を示す、仮想ボリュームとプールボリュームとのブロック図である。
図２１は、図２０に示すページの移動形態を実現するための管理テーブルである。
図２２は、ページ割り当てバランス管理テーブルである。
図２３は、マイグレーション処理の詳細を示すフローチャートである。
図２４は固定データパターンの破棄を伴う、マイグレーション処理の詳細を示すフローチャートである。
図２５は、ページマイグレーションに対してホスト装置からＩ／Ｏ処理を優先させることを説明するフローチャートである。
図２６は、図２４の処理を実現するためのプール及びキャッシュメモリのブロック図である。
図２７Ａは、仮想ボリュームの未使用領域がプールボリュームの０データ専用領域に割り当たっている様子を示す仮想ボリュームとプールボリュームとのブロック図であり、図２７Ｂは仮想ボリュームにプールボリュームの未使用領域が割り当てられたことを示すブロック図であり、図２７Ｃはプールボリュームの割り当てページが全０データである場合の処理内容を説明するブロック図である。
図２８は、０データ専用領域へのリード処理を示すフローチャートである。
図２９は、仮想ボリュームの未割当領域にホスト装置からライト要求が発行された場合の処理を説明するフローチャートである。
図３０Ａは、追加プールボリュームに０データ専用領域を設定している様子を説明する仮想ボリュームとプールボリュームとのブロック図であり、図３０Ｂは、削除されるプールボリュームに０データ専用領域が割り当てられている様子を説明するブロック図である。
図３１は図２６の変形例に係るブロック図である。
図３２は、複数のプールボリューム間でページマイグレーションが行われている様子を説明するブロック図であり、図３３の前提となるものである。
図３３はページのマイグレーションを実現するフリーキュー処理を説明するブロック図である。
図３４は、図３５の前提となるブロック図である。
図３５は、マイグレーションの中断が発生した場合でのフリーキュー処理を説明するブロック図である。
図３６は、マイグレーション進捗管理のための管理テーブルである
図３７は、リバランスを考慮したプールボリュームのシュリンク処理を説明するフローチャートである。
図３８は、ＧＵＩによってユーザに提供されるシュリンク情報の例である。
図３９はシュリンクの予想結果の出力例である。
図４０はストレージ装置がシュリンクするプールボリュームを決定するための処理の詳細を示したフローチャートである。
図４１及び図４２は、プールボリュームの削減を伴ったリバランスを説明するためのブロック図である。
図４３は、図９に示すストレージ装置が複数のクラスタを備えていることを説明するハードウエアブロック図である。
図４４は、仮想ボリュームの属性に、ホスト装置からのアクセスに対する応答の高速性を示す「性能」を追加したことを説明する仮想ボリュームとプールボリュームとのブロック図である。
【発明を実施するための形態】
【０００８】
次に本発明の実施形態について説明する。図１は、本発明に係わる計算機システムの第１の例を示すハードウエアブロック図である。計算機システムは、ホスト計算機１０と、管理装置２０と、これらが接続するストレージ装置３０と、を備えている。ストレージ装置は、ストレージシステム、あるいはストレージサブシステムとも呼ばれている。
ホスト計算機１０は、ストレージ装置３０の論理的な記憶資源にアクセスする。管理装置２０は、ストレージ装置３０の記憶領域の構成を管理する。ストレージ装置３０は、物理デバイス３４に設定された記憶領域にデータを格納する。
ホスト計算機１０は、入力手段１１０、出力手段１２０、ＣＰＵ１３０、メモリ１４０、ディスクアダプタ１５０、ネットワークアダプタ１６０及びディスクドライブ１７０を備える。入力手段１１０は、ホスト計算機１０を操作する管理者等から入力を受け付ける手段である。入力手段１１０は、例えば、キーボードで構成される。出力手段１２０は、ホスト計算機１０の状態や設定項目を表示する手段である。出力手段１２０は、例えばディスプレイ装置で構成される。
ＣＰＵ１３０は、ディスクドライブ１７０に格納されているプログラムをメモリ１４０に読み込んで、そのプログラムに規定された処理を実行する。メモリ１４０は、例えばＲＡＭ等で構成され、プログラムやデータ等を格納する。
ディスクアダプタ１５０は、ストレージ装置３０とストレージネットワーク５０を介して接続し、ストレージ装置３０にデータを送受信する。ストレージネットワーク５０は、データ転送に適したプロトコル（例えば、Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）で構成される。
ネットワークアダプタ１６０は、ストレージシステム管理装置２０又はストレージ装置３０と管理ネットワーク４０を介してデータを送受信する。管理ネットワーク４０は、例えばＥｔｈｅｒｎｅｔで構成される。
ディスクドライブ１７０は、例えばハードディスク装置で構成され、データやプログラムを格納する。
管理装置２０は、入力手段２１０、出力手段２２０、ＣＰＵ２３０、メモリ２４０、ネットワークアダプタ２５０及びディスクドライブ２６０を備える。
入力手段２１０は、管理装置２０を操作する管理者等の入力を受け付ける手段である。入力手段２１０は、例えばキーボードで構成される。出力手段２２０は、管理装置２０の状態や設定項目を表示する手段である。出力手段２２０は、例えばディスプレイ装置で構成される。
ＣＰＵ２３０は、ディスクドライブ２６０に格納されている管理プログラムをメモリ２４０に読み込んで、そのプログラムに基づくストレージ装置に対する管理処理を実行する。メモリ２４０は、例えばＲＡＭ等で構成され、プログラムやデータ等を格納する。
ネットワークアダプタ２５０は、ホスト計算機１０又はストレージ装置３０と管理ネットワーク４０を介してデータを送受信する。
ディスクドライブ２６０は、例えばハードディスク装置で構成され、データやプログラムを格納する。
ストレージ装置３０は、コントローラ３１、ストレージキャッシュメモリ３２、共有メモリ３３、物理デバイス（ＰＤＥＶ）３４、電源スイッチ３５及び電源３６を備える。  コントローラ３１は、ＰＤＥＶ３４に構成された記憶領域へのデータの格納を制御する。  ストレージキャッシュメモリ３２は、ＰＤＥＶ３４に読み書きされるデータを一時的に格納する。共有メモリ３３は、コントローラ３１やＰＤＥＶ３４の構成情報を格納する。ＰＤＥＶ３４は、複数のディスク装置によって構成される。電源３６は、ストレージ装置３０の各部に電力を供給する。電源スイッチ３５は、電源３６からの電力の供給をＯＮ／ＯＦＦするスイッチである。ディスク装置（記憶デバイス）は、例えばハードディスクドライブで構成され、主としてユーザデータを格納する。記憶デバイスとしては、フラッシュメモリなどの半導体メモリからなるドライブでもよい。
コントローラ３１は、ホストアダプタ３１０、ネットワークアダプタ３２０、不揮発性メモリ３３０、電源制御部３４０、メモリ３５０、プロセッサ３６０、ストレージアダプタ３７０及び共有メモリアダプタ３８０によって構成される。
ホストアダプタ３１０は、ストレージネットワーク５０を介してホスト計算機１０との間でデータを送受信する。ネットワークアダプタ３２０は、管理ネットワーク４０を介してホスト計算機１０又は管理装置２０との間でデータを送受信する。
不揮発性メモリ３３０は、ハードディスクやフラッシュメモリで構成され、コントローラ３１で動作するプログラムや構成情報等を格納する。電源制御部３４０は、電源３６から供給される電力を制御する。
メモリ３５０は、例えばＲＡＭ等で構成され、プログラムやデータ等を格納する。プロセッサ３６０は、不揮発性メモリ３３０に格納されているプログラムをメモリ３５０に読み込んで、そのプログラムに規定された処理を実行する。
ストレージアダプタ３７０は、ＰＤＥＶ３４及びストレージキャッシュメモリ３２との間でデータを送受信する。共有メモリアダプタ３８０は、共有メモリ３３との間でデータを送受信する。
図２は、図１に示した計算機ステムにおいて、ストレージ装置３０が行う記憶領域の動的割り当ての動作を示す機能ブロック図である。ＰＤＥＶ３４からＲＡＩＤ構成によってＲＡＩＤグループが構成される。このＲＡＩＤグループから仮想デバイス（ＶＤＥＶ）４００が構成される（Ｓ１０１）。ＶＤＥＶ４００は記憶領域である複数の論理デバイス（ＬＤＥＶ）５００に分割されている。ＰＤＥＶ３４から構成されたＶＤＥＶを、「第１種ＶＤＥＶ」と呼ぶ。この第１種ＶＤＥＶに含まれるＬＤＥＶを、「第１種ＬＤＥＶ」と呼ぶ。
ホスト計算機１０は、ストレージ装置３０のボリューム（論理領域）にアクセスする。ホスト計算機１０から見えるボリュームを「ターゲットデバイス」と呼ぶ。ターゲットデバイス７００は、第１種ＬＤＥＶ５００を含むボリュームにホスト計算機１０へのパスを定義して設定される（Ｓ１０２）。
ストレージ装置３０の外部に接続されている外部物理デバイス６００をＰＤＥＶ３４と同様に扱うこともできる。すなわち、ＲＡＩＤ構成によって複数の外部物理デバイス（ＥＤＥＶ）６００から複数の第１種ＶＤＥＶ４００が構成される（Ｓ１０３）。第１種ＶＤＥＶ４００は一つ以上の記憶領域である第１種ＬＤＥＶ５００に分割されている。この第１種ＬＤＥＶ５００にホスト計算機１０へのパスを設定して、ターゲットデバイス７００が設定される（Ｓ１０４）。
また、ストレージ装置３０において、第２種ＶＤＥＶ４０１を設定できる。第２種ＶＤＥＶとは、ＰＤＥＶ３４によって構成される第１種ＶＤＥＶとは異なり、アドレスと領域を持っているがＰＤＥＶ３４に対応する領域は持っていない仮想的なデバイスである。第２種ＶＤＥＶに対応するキャッシュメモリの領域の設定は可能である。この第２種ＶＤＥＶ４０１には、一つ以上のＬＤＥＶを構成する。このＬＤＥＶを２種ＬＤＥＶ５０１と呼ぶ。
この第２種ＬＤＥＶ５０１にホスト計算機１０へのパスを設定して、ターゲットデバイス７０１が設定される（Ｓ１１０）。このターゲットデバイスが仮想ボリュームに対応する。
第２種ＶＤＥＶ及び第２種ＬＤＥＶは、物理的な記憶領域がＰＤＥＶから割り当てられていない（記憶領域を持っていない）。これをホスト計算機１０が使用するためには、第２種ＬＤＥＶを、ストレージプール（あるいは単に“プール”という。）６０に関連付ける必要がある。
ストレージプール６０は、第１種ＬＤＥＶ５００の一つまたは複数を、ストレージプールの属性で纏めたグループである。第１種ＬＤＥＶ５００は、ストレージプールに割り当てられている（Ｓ１１２）。第１種ＬＤＥＶがプールボリュームである。
このストレージプールに設定された第１種ＬＤＥＶ５００を第２種ＬＤＥＶ５０１に、アドレスを用いて、関連付けを行う（Ｓ１１１）。この関連付けを、“マッピング”あるいは、“割り当て”という。
これによって、ホスト計算機１０が、仮想ボリュームに対してライト・リードアクセスが可能となる。また、第１種ＬＤＥＶと第２種ＬＤＥＶとのマッピングを変更することで、仮想ボリュームの記憶領域を変更できる。
図３は、ストレージ装置３０のメモリ３５０ブロック図である。メモリ３５０には、プロセッサ３６０によって読み込まれて実行される各種プログラムや、ＬＤＥＶの設定に関する構成情報３５１及びストレージプールの設定に関するプール情報３５２が格納される。
コマンド制御プログラム３５０１は、ホスト計算機１０又は管理装置２０からのコマンドを解釈し、そのコマンドに規定された処理を実行する。構成制御プログラム３５０３は、ストレージ装置３０の構成を制御する。ディスクＩ／Ｏプログラム３５０５は、ＰＤＥＶ３４へのアクセスを制御する。プール制御プログラム３５０７は、ストレージプールを設定する。
構成情報３５１は、ストレージ装置３０のＶＤＥＶ及びＬＤＥＶに関する設定を格納する。プール情報３５２は、ストレージプールに関する設定を格納する。
構成情報３５１は、アドレス管理テーブル３５１１、ＬＤＥＶ管理情報３５１２、ＶＤＥＶ管理情報３５１４を含む。
アドレス管理テーブル３５１１は、ターゲットデバイスとＬＤＥＶとＶＤＥＶと物理デバイスとのアドレスのマッピング情報を格納する。アドレス管理テーブル３５１１は、ターゲットデバイス−ＬＤＥＶマッピング情報３５１１１、ＬＤＥＶ−ＶＤＥＶマッピング情報３５１１２及びＶＤＥＶ−ＰＤＥＶマッピング情報３５１１３を含む。ＬＤＥＶ管理情報３５１２は、ＬＤＥＶに関する情報を格納する。ＶＤＥＶ管理情報３５１４は、仮想論理ボリュームに関する情報を格納する。
プール情報３５２は、ＰＯＯＬ管理情報３５２１、ＰＯＯＬ−ＶＯＬ管理情報３５２２、ＶＶＯＬ−ＤＩＲ３５２３、ＰＳＣＢ３５２４を含む。ＰＯＯＬ管理情報３５２１は、ストレージプールの設定を格納する。ＰＯＯＬ−ＶＯＬ管理情報３５２２は、ストレージプールのボリュームの情報を格納する。ＶＶＯＬ−ＤＩＲ３５２３は、ストレージプールのＬＤＥＶのアドレスの割り当てを格納する。ＰＳＣＢ情報は、ストレージプールのＬＤＥＶのアドレスの情報を格納する。
さらに、メモリ３５０は、ストレージプールに属する複数のＬＤＥＶ（プールボリューム）５００にＰＤＥＶから記憶領域を均等に割り当てるための割り当て処理プログラム３５０８と、複数のプールボリューム間で記憶領域を移動させて、複数のプールボリュームの記憶容量を均等化させるためのリバランス処理プログラム３５０９と、を有している。
割り当て処理プログラムがホスト計算機からＩＯがきてページを割り当てる際に、どのプールボリュームからどの頻度で割り当てるかは、仮想ボリュームごとに定義した割り当て順序テーブル（あるいは選択順序テーブル）によって定義されている。
図４は、ＶＤＥＶ管理情報の説明図である。ＶＤＥＶ管理情報は、ＶＤＥＶ固有情報３５１４１から構成される。ＶＤＥＶ固有情報３５１４１は、ＶＤＥＶ番号（ＶＤＥＶ＃）３５１４２、エミュレーションタイプ３５１４３、総サイズ３５１４４、残サイズ３５１４５、デバイス属性３５１４６、デバイス状態３５１４７、設定ＬＤＥＶ数３５１４８、ＬＤＥＶ番号３５１４９、先頭ＶＤＥＶ−ＳＬＯＴ＃３５１５０及び終了ＶＤＥＶ−ＳＬＯＴ＃３５１５１で構成される。
ＶＤＥＶ＃３５１４２は、ＶＤＥＶの識別子である。エミュレーションタイプ３５１４３はＶＤＥＶのエミュレーションタイプの識別子である。総サイズ３５１４４は、ＶＤＥＶに設定されている総サイズである。残サイズ３５１４５はＶＤＥＶの未使用の領域のサイズである。
デバイス属性３５１４６は、ＶＤＥＶに定義されている属性の識別子である。そのＶＤＥＶが第１種ＶＤＥＶである場合には第１種ＶＤＥＶを示す識別子が格納され、そのＶＤＥＶが第２種ＶＤＥＶであり、仮想ボリュームに設定されている場合には第２種ＶＤＥＶを示す識別子が格納される。
デバイス状態３５１４７は、ＶＤＥＶの状態を示す識別子である。ＶＤＥＶの状態は、正常、閉塞、障害閉塞等がある。閉塞は、パンク閉塞など、障害の発生意外の要因によって閉塞されていることを示す。障害閉塞は、デバイスの何れかに障害が発生しておりそのために閉塞されていることを示す。
設定ＬＤＥＶ数３５１４８は、ＶＤＥＶに設定されているＬＤＥＶの総数である。ＬＤＥＶ番号３５１４９はＶＤＥＶに設定されているＬＤＥＶの番号が格納される。先頭ＶＤＥＶ−ＳＬＯＴ＃３５１５０は、設定されているＬＤＥＶの物理的な先頭のスロット番号の識別子である。
終了ＶＤＥＶ−ＳＬＯＴ＃３５１５１は、設定されているＬＤＥＶの物理的な最終のスロット番号である。このＬＤＥＶ番号３５１４９、先頭ＶＤＥＶ−ＳＬＯＴ＃３５１５０及び終了ＶＤＥＶ−ＳＬＯＴ＃３５１５１は、ＬＤＥＶ数と同じ数だけＬＤＥＶ番号毎に設定される。
図５は、ＬＤＥＶ管理情報の説明図である。ＬＤＥＶ管理情報は、ＶＤＥＶ固有情報３５１２１から構成される。ＬＤＥＶ固有情報３５１２１は、ＬＤＥＶ番号（ＬＤＥＶ＃）３５１２２、エミュレーションタイプ３５１２３、サイズ３５１２４、先頭スロット番号３５１２５、終了スロット番号３５１２６、パス定義情報３５１２７、デバイス属性３５１２８、デバイス状態３５１２９、プログラム使用状況３５１３００及びＰＯＯＬ−ＩＤ３５１３０１で構成される。
ＬＤＥＶ＃３５１２２は、ＬＤＥＶの識別子である。エミュレーションタイプ３５１２３はＬＤＥＶのエミュレーションタイプの識別子である。サイズ３５１２４は、ＬＤＥＶに設定されている総サイズである。
先頭スロット番号３５１２５は設定されたＬＤＥＶの先頭のスロット番号の識別子である。終了スロット番号３５１２６は設定されたＬＤＥＶの最終のスロット番号である。パス定義情報３５１２７は、ホスト計算機１０に定義されたパスの識別子である。
デバイス属性３５１２８は、ＬＤＥＶの属性の識別子である。ＬＤＥＶが第１種ＬＤＥＶである場合には第１種ＬＤＥＶを示す識別子が格納され、ＬＤＥＶが第２種ＬＤＥＶである場合には第２種ＬＤＥＶを示す識別子が格納される。また、ＬＤＥＶがストレージプールに設定されている場合は、プール属性を示す識別子が格納される。
デバイス状態３５１２９は、そのＬＤＥＶが所属するＶＤＥＶの状態を示す識別子である。ＶＤＥＶの状態は、正常、閉塞、障害閉塞等がある。閉塞は、パンク閉塞など、障害の発生意外の要因によって閉塞されていることを示す。障害閉塞は、デバイスの何れかに障害が発生しておりそのために閉塞されていることを示す。
プログラム使用状況３５１３００は、ＬＤＥＶが何れかのプログラムによって処理中である場合に、そのプログラムの識別子が格納される。ＰＯＯＬ−ＩＤ３５１３０１は、ＬＤＥＶがストレージプールに設定されている場合に、その識別子が格納される。
図６は、アドレス管理テーブルの説明図である。アドレス管理テーブル３５１１は、ターゲットデバイスとＬＤＥＶとＶＤＥＶと物理デバイスとのアドレスのマッピング情報を格納する。アドレス管理テーブル３５１１は、ターゲットデバイス−ＬＤＥＶマッピング情報３５１１１、ＬＤＥＶ−ＶＤＥＶマッピング情報３５１１２及びＶＤＥＶ−ＰＤＥＶマッピング情報３５１１３を含む。
ターゲットデバイス−ＬＤＥＶマッピング情報３５１１１は、ターゲットデバイスのアドレスとＬＤＥＶのアドレスとの対応が格納される。ＬＤＥＶ−ＶＤＥＶマッピング情報３５１１２は、ＬＤＥＶのアドレスとＶＤＥＶのアドレスが格納される。
ＶＤＥＶ−ＰＤＥＶマッピング情報３５１１３は、ＶＤＥＶのアドレスとそのＲＡＩＤグループ番号（又はパリティグループ）とＰＤＥＶのアドレスか格納される。
ストレージ装置３０は、このアドレス管理テーブルを参照することによって、ターゲットデバイスのアドレスがどのＬＤＥＶのどのアドレスに対応するかを知ることができる。また、ＬＤＥＶのアドレスがどのＶＤＥＶのどのアドレスに対応するかを知ることができる。また、ＶＤＥＶのアドレスがどのＲＡＩＤグループに属しており、どのＰＤＥＶのどのアドレスに対応するかを知ることができる。
図７は、ＰＯＯＬ管理情報の説明図である。ＰＯＯＬ管理情報３５２１は、ＰＯＯＬ固有情報３５２１１から構成される。ＰＯＯＬ固有情報３５２１１は、ＰＯＯＬ−ＩＤ３５２１２、属性／用途３５２１３、エミュレーションタイプ３５２１４、容量３５２１５、空き容量３５２１６、閾値３５２１７、状態３５２１８、ＰＯＯＬ−ＶＯＬ数３５２１９、ＰＯＯＬ−ＶＯＬデバイス番号リスト３５２２０、ＰＯＯＬを利用しているデバイス数３５２２１及びＰＯＯＬを利用しているデバイス番号３５２２２で構成される。
ＰＯＯＬ−ＩＤ３５２１２は、ＰＯＯＬの識別子である。属性／用途３５２１３は、そのストレージプールの属性及び用途を示す識別子である。用途は、例えばスナップショットやＳＹＳ領域など、運用形態の用途である。
エミュレーションタイプ３５２１４はストレージプールのエミュレーションタイプの識別子である。容量３５２１５は、ストレージプールの総容量である、空き容量３５２１６はストレージプールの未使用の領域のサイズである。
閾値３５２１７は、ストレージプールが許容する最大のデータ格納容量である。状態３５２１８は、ストレージプールの現在の状態である。例えば、定義中、拡張中、有効等である。ＰＯＯＬ−ＶＯＬ数３５２１９は、ストレージプールとして設定されているＬＤＥＶの総数である。
ＰＯＯＬ−ＶＯＬデバイス番号リスト３５２２０はストレージプールとして設定されているＬＤＥＶ番号の一覧である。ＰＯＯＬを利用しているデバイス数３５２２１は、ストレージプールのＬＤＥＶが関連付けられている第２種ＬＤＥＶの数である。ＰＯＯＬを利用しているデバイス番号３５２２２は、ストレージプールのＬＤＥＶが関連付けられている第２種ＬＤＥＶ番号の一覧である。
図８は、ＶＶＯＬ−ＤＩＲ３５２３及びＰＳＣＢ３５２４の説明図である。ＶＶＯＬ−ＤＩＲ３５２３は、仮想ボリュームの記憶領域である第２種ＬＤＥＶの構成の情報である。ＰＳＣＢ（ＰＯＯＬ  Ｓｌｏｔ  Ｃｏｎｔｒｏｌ  Ｂｒｏｃｋ）３５２４は、ストレージプールに設定された第１種ＬＤＥＶの構成の情報である。
前述のように、ストレージ装置３０は、ＰＤＥＶ３４からＲＡＩＤ構成によって第１種ＶＤＥＶを構成する。この第１種ＶＤＥＶを、記憶領域である第１種ＬＤＥＶに分割する。第１種ＬＤＥＶがストレージプールに設定される。このストレージプールに設定された第１種ＬＤＥＶによって構成されるボリュームをＰＯＯＬ−ＶＯＬ９００とする。
また、ストレージ装置３０は、仮想ボリューム（ＶＶＯＬ）を設定し、第２種ＶＤＥＶを構成する。この第２種ＶＤＥＶを記憶領域である第２種ＬＤＥＶに分割する。
ストレージ装置３０は、ＶＶＯＬ８００の第２種ＬＤＥＶを、ＰＯＯＬ−ＶＯＬ９００の第１種ＬＤＥＶに割り当てる。これによって、ホスト計算機１０がアクセスする仮想ボリュームの記憶領域が、物理デバイスであるＰＤＥＶ３４から構成された第１種ＬＤＥＶに設定される。
ＶＶＯＬの構成は、ＶＶＯＬ−ＤＩＲ３５２３に格納される。ＶＶＯＬ−ＤＩＲ３５２３は、ＬＤＥＶ番号（ＬＤＥＶ＃）３５２３１及びエントリ３５２３２によって構成される。
ＬＤＥＶ番号（ＬＤＥＶ＃）３５２３１は第２種ＬＤＥＶの識別子である。エントリ３５２３２は、第２種ＬＤＥＶの構成情報である。このエントリ３５２３２は、第２種ＬＤＥＶアドレス３５２３３及びＰＳＣＢポインタ３５２３４から構成される。
第２種ＬＤＥＶアドレス３５２３３は、ＶＶＯＬの第２種ＬＤＥＶのアドレスが格納される。
ＰＳＣＢポインタ３５２３４は、第２種ＬＤＥＶがＰＯＯＬ−ＶＯＬ９００の第１種ＬＤＥＶに割り当てられている場合に、その第１種ＬＤＥＶの領域のポインタが格納される。なお、初期状態では第２種ＬＤＥＶは第１種ＬＤＥＶに割り当てられていないので、ＰＳＣＢポインタ３５２３４には「ＮＵＬＬ」が格納される。
ＰＳＣＢ（ＰＯＯＬ  Ｓｌｏｔ  Ｃｏｎｔｒｏｌ  Ｂｒｏｃｋ）３５２４は、ストレージプールに設定されている第１種ＬＤＥＶの情報である。このＰＳＣＢ３５２４は、ストレージプールに設定されている第１種ＬＤＥＶのスロット毎に設定される。
ＰＳＣＢ３５２４は、ＬＤＥＶ番号（ＬＤＥＶ＃）３５２４１、ＰＯＯＬ−ＶＯＬアドレス３５２４２、ＰＳＣＢ前方ポインタ３５２４３及びＰＳＣＢ後方ポインタ３５２４４から構成される。
ＬＤＥＶ番号（ＬＤＥＶ＃）３５２４１は、ＰＯＯＬ−ＶＯＬでの第１種ＬＤＥＶの識別子である。ＰＯＯＬ−ＶＯＬアドレス３５２４２は、ＰＯＯＬ−ＶＯＬ９００における第１種ＬＤＥＶのアドレスである。
ＰＳＣＢ前方ポインタ３５２４３及びＰＳＣＢ後方ポインタ３５２４４は、ＰＯＯＬ−ＶＯＬ９００内の第１種ＬＤＥＶの前後のスロットの識別子である。
また、ＰＯＯＬ−ＶＯＬ９００の領域のうち、未使用の領域は、その先頭がフリーＰＳＣＢキュー３５２４０で示される。フリーＰＳＣＢキュー３５２４０は、次のスロットを示すＰＳＣＢ３５２４へのポインタを含む。
ストレージ装置３０は、フリーＰＳＣＢキュー３５２４０に示されたポインタを参照して、次のＰＳＣＢ３５２４を得る。さらに、次のＰＳＣＢ３５２４のＰＳＣＢ後方ポインタ３５２４５を参照して、段階的にＰＳＣＢ３５２４を辿る。そして、その未使用の領域の最終のスロットに対応するＰＳＣＢ３５２４を得る。この最後のＰＳＣＢ３５２４のＰＳＣＢ後方ポインタ３５２４４はフリーＰＳＣＢキュー３５２４０である。ストレージ装置３０は、フリーＰＳＣＢキュー３５２４０を辿り、ＰＳＣＢ３５２４のポインタによって連結された集合によって、ストレージプールのＰＯＯＬ−ＶＯＬ９００の未使用の領域を知ることができる。
ストレージ装置３０は、ストレージプールに設定された第１種ＬＤＥＶに対応するＰＳＣＢ３５２４を設定する。具体的には、ストレージプールに設定された第１種ＬＤＥＶの各スロットに対応するＰＳＣＢ３５２４を設定し、さらにフリーＰＳＣＢキュー３５２４０を設定する。初期状態ではストレージプールは全て未使用であるため、フリーＰＳＣＢキュー３５２４０によって連結される集合は、ストレージプールに設定された第１種ＬＤＥＶの全ての領域に対応する。
そして、ストレージ装置３０は、このストレージプールの領域を使用する場合に、必要なスロット分のＰＳＣＢ３５２４を第２種ＬＤＥＶであるＶＶＯＬ−ＤＩＲ３５２３に割り当てることで、当該領域が使用可能となる。複数のスロットの集号がページに相当する。ページは複数のＰＳＣＢから特定される。ホスト装置からＶＶＯＬ８００へのアクセス、ＶＶＯＬ８００のアクセス領域に対するＰＯＯＬ−ＶＯＬからの記憶領域の割り当てはページ単位で実行される。
具体的には、ストレージ装置３０は、フリーＰＳＣＢキュー３５２４０を参照する。そして、第２種ＬＤＥＶに割り当てる必要な領域分（ページ）のＰＳＣＢ３５２４を取得する。この取得したＰＳＣＢ３５２４を、それぞれＶＶＯＬ−ＤＩＲ３５２３のエントリに割り当てる。すなわち、ＶＶＯＬ−ＤＩＲ３５２３の各エントリのＰＳＣＢポインタ３５２３４に、対応するＰＳＣＢ３５２４を示すポインタを格納する。
なお、割り当て済みのＰＳＣＢ３５２４は、フリーＰＳＣＢキュー３５２４０の連結から外す。
これによって、第２種ＬＤＥＶの各ページ（スロット）が、ＶＶＯＬ−ＤＩＲ３５２３の各エントリのＰＳＣＢポインタ３５２３４で示されるＰＳＣＢ３４２４に割り当てられる。ＰＳＣＢ３５２４は第１種ＬＤＥＶのスロットに対応しているので、結果として、第２種ＬＤＥＶが第１種ＬＤＥＶに割り当てられ、ホスト計算機１０のアクセス対象である仮想ボリュームが物理デバイスとして使用可能となる。
図９は、計算機システムの第２の形態を示すハードウエアブロック図である。本実施形態の計算機システムも、一つ以上のホスト計算機１０、管理サーバ２０、第１のストレージ装置１２５、及び、第２のストレージ装置１６１を備えている。第１のストレージ装置１２５は、第１のネットワーク１２１を介してホスト計算機１０に接続される。第２のストレージ装置１６１は、第２のネットワーク１２３を介して第１のストレージシステム１２５に接続されている。一つ以上のホスト計算機１０、管理サーバ２０、第１のストレージ装置１２５及び第２のストレージ装置１６１は、第３のネットワーク１０８を介して相互に接続される。
第１のネットワーク１２１、第２のネットワーク１２３及び第３のネットワーク１０８は、いかなる種類のネットワークであってもよい。例えば、第１のネットワーク１２１及び第２のネットワーク１２３は、いわゆるＳＡＮであってもよい。第３のネットワーク１０８は、いわゆるＬＡＮであってもよい。
第１のストレージ装置１２５は、コントローラと記憶デバイス群３４とを備える。コントローラは、例えば、複数のフロントエンドインタフェース１２７と、複数のバックエンドインタフェース１３７と、第１の内部ネットワーク１５６と、一以上のキャッシュメモリ３２と、一以上の制御メモリ３５０と、一以上の制御プロセッサ３６０とを備える。
フロントエンドインタフェース１２７は、ストレージ装置１２５にネットワークを介して接続されたホスト計算機１０又は第２のストレージ装置１６１と通信するためのインタフェース回路である。
従って、ストレージ装置１２５は、少なくとも二つのフロントエンドインタフェース１２７を備え、それらのうち一つは第１のネットワーク１２１に接続され、別の一つは第２のネットワーク１２３に接続される。
フロントエンドインタフェース１２７は、例えば、第１のネットワーク１２１又は第２のネットワーク１２３に接続されるポート１２９と、メモリ１３１と、ローカルルータ（以下、「ＬＲ」と略記する）１３３とを備える。ＬＲ１３３に、ポート１２９及びメモリ１３１が接続される。
ＬＲ１３３は、ポート１２９を介して受けたデータを任意の制御プロセッサ１４３で処理するために振り分ける。具体的には、例えば、制御プロセッサ１４３が、或るアドレスを指定するＩ／Ｏコマンドをその制御プロセッサ１４３に実行させるようにＬＲ１３３を設定する。その設定に従って、ＬＲ１３３が、Ｉ／Ｏコマンド及びデータを振り分ける。
バックエンドインタフェース１３７は、ＰＤＥＶ３４と通信するためのインタフェース回路である。バックエンドインタフェース１３７は、例えば、ＰＤＥＶ３４に接続されるディスクインタフェース１４１と、メモリ１３５と、ＬＲ１３９と、を備える。ＬＲ１３９に、ディスクインタフェース１４１及びメモリ１３５が接続される。
第１の内部ネットワーク１５６は、例えば、スイッチ（例えばクロスバスイッチ）或いはバスで構成される。第１の内部ネットワーク１５６に、複数のフロントエンドインタフェース１２７、複数のバックエンドインタフェース１３７、一以上のキャッシュメモリ３２、一以上の制御メモリ３５０及び一以上の制御プロセッサ１４３が接続されている。これらの要素間の通信は、第１の内部ネットワーク１５６を介して行われる。
コントローラの構成要素であるフロントエンドインタフェース１２７、バックエンドインタフェース１３７、キャッシュメモリ３２、制御メモリ３５０及び制御プロセッサ３６０に、第２の内部ネットワーク（例えばＬＡＮ）１５５が接続され、その第２の内部ネットワーク１５５に、保守管理端末１５３が接続される。
保守管理端末１５３は、第３のネットワーク１０８にも接続されており、ストレージシステム１２５を保守又は管理する計算機である。ストレージシステム１２５の保守員は、例えば、保守管理端末１５３（又は、その保守管理端末１５３と通信可能な管理サーバ１１１）を操作して、制御メモリ３５０に記憶される種々の情報を定義することができる。
第２のストレージ装置１６１は、コントローラ１６５及びＰＤＥＶ１６３を備える。コントローラ１６５は、例えば、ネットワークアダプタ１６２と、ホストアダプタ１６４と、キャッシュメモリ１７２と、制御メモリ１７１と、プロセッサ１６７と、ストレージアダプタ１６９と、を備える。
ネットワークアダプタ１６２は、第３のネットワーク１０８に接続され、管理サーバ１１１と通信するインタフェースである。
ホストアダプタ１６４は、第２のネットワーク１２３に接続され、第１のストレージ装置１２５と通信するインタフェースである。ホストアダプタ１６４は、例えば、第１のストレージ装置１２５のフロントエンドインタフェース１２７と同様のものであってもよい。
制御メモリ１７１は、種々のコンピュータプログラム及び情報を記憶するメモリである。キャッシュメモリ１７２は、第１のストレージ装置１２５からのＩ／Ｏコマンドに従って読み出される又は書き込まれるデータを一時記憶するメモリである。
プロセッサ１６７は、制御メモリ１７１に記憶されている種々のコンピュータプログラムを実行する。少なくとも、プロセッサ１６７は、第１のストレージ装置１２５からのＩ／Ｏコマンドに従って、キャッシュメモリ１７２及びＰＤＥＶ１６３に対するデータの書き込み及び読み出しを制御する。
ＰＤＥＶ１６３は、物理記憶デバイスであり、例えば、第１のストレージ装置のＰＤＥＶ３４と同様のものであってもよい。あるいは、ＰＤＥＶは、テープ記憶媒体であってもよい。
本実施形態の第１のストレージ装置１２５は、いわゆる外部接続機能を備える。第２のストレージ装置１６１は、この機能によって第１のストレージ装置１２５に外部接続されている。ここで、外部接続について説明する。
既に説明したように、第１のストレージ装置１２５は、一つ又は複数の論理ボリュームをホスト計算機１０に提供する。各論理ボリュームは、ホスト計算機１０によって一つの記憶デバイスと認識される。例えば、第１のストレージ装置１２５が提供する論理ボリュームが、第１のストレージ装置１２５内のＰＤＥＶ３４に対応付けられてもよい。その場合、第１のストレージ装置１２５は、論理ボリュームへのライトコマンドを受信すると、その論理ボリュームに対応付けられたＰＤＥＶ３４にデータを格納する。このような論理ボリュームは、以下の説明において通常ボリュームとも記載される。
あるいは、第１のストレージ装置１２５が提供する論理ボリュームは、第２のストレージ装置１６１内のＰＤＥＶ１６３に対応付けられてもよい。この場合、第１のストレージ装置１２５は、論理ボリュームへのライトコマンドを受信すると、その論理ボリュームに対応付けられたＰＤＥＶ１６３にデータを書き込むためのライトコマンドを生成し、生成したライトコマンドを第２のストレージ装置１６１に送信する。第２のストレージ装置１６１は、第１のストレージ装置１２５から受信したライトコマンドに従って、データをＰＤＥＶ１６３に格納する。このような論理ボリュームは、以下の説明において仮想ボリュームとも記載される。
このように、第１のストレージ装置１２５が提供する論理ボリュームに格納されるデータを、実際には第１のストレージ装置１２５の外部に接続された第２のストレージ装置１６１に格納する機能が、外部接続機能と呼ばれる。
コントローラ１２５は、ストレージ制御処理を確立するクラスタ１２５１を複数備える。各クラスタは内部ネットワーク１５６を有し、複数のクラスタ内部ネットワーク１５６がクラスタ間のネットワーク１５６１によって接続される。
したがって、一つのクラスタの制御プロセッサ３６０は他のクラスタにアクセスすること、例えば、他のクラスタのキャッシュメモリ３２のデータをリード・ライトすることができる。複数のクラスタ間のネットワーク１５６１は、パス、スイッチによって構成される。
図１０Ａは、ターゲットデバイスとＬＤＥＶ及びＰＤＥＶとの説明図である。ホスト計算機１０は、ストレージ装置３０に設定されたターゲットデバイス７００をアクセスする。ターゲットデバイス７００の記憶領域は、第１種ＬＤＥＶ５００である。
第１種ＬＤＥＶ５００は、物理ボリュームからＲＡＩＤ構成によって構成された第１種ＶＤＥＶ４００の領域である。第１種ＶＤＥＶ４００が一つ以上の第１種ＬＤＥＶ５００に分割されている。
また、ホスト計算機１０は、ストレージ装置３０に設定された仮想ボリュームをターゲットデバイス７０１としてアクセスする。このターゲットデバイス７０１の仮想的な記憶領域は第２種ＬＤＥＶ５０１である。第２種ＬＤＥＶ５０１は、ストレージプールとして設定されている第１種ＬＤＥＶ５００に関連付けられている。すなわち、第１種ＬＤＥＶと第２種ＬＤＥＶとの関連付けは、アドレスのマッピングによって管理されている。
ホスト計算機１０が、仮想ボリュームであるターゲットデバイス７０１にアクセスする。この仮想ボリュームの記憶領域は第２種ＬＤＥＶ５０１である。ストレージ装置３０は、第２種ＬＤＥＶ５０１へのアクセスを受け付けると、第２種ＬＤＥＶ５０１に関連付けられている第１種ＬＤＥＶ５００をアクセス先に変換する。ホスト計算機からのライトデータは、直接プールボリュームのＶＤＥＶに格納される。
図１０Ｂは、図９に示した第２の計算機システムの図１０Ａに対応するブロック図である。第１種ＶＤＥＶと第２種ＶＤＥＶ同士はアドレスをマッピングすることによって関係付けられており、ホストからのライトデータは、ＰＤＥＶに直接格納される。
図１１に、１つの仮想ボリューム（第２種ＬＤＥＶ）と複数のプールボリューム（第１種ＬＤＥＶ）との間で、均等に、アクセス対象及び記憶領域の単位としてのページ（１，２，３）が割り当てられている様子を示す。仮想ボリュームにはプールが割り当てられており、プールには複数のボリュームがある。仮想ボリュームのページは、複数のボリュームのページが対応している。
ホスト装置から仮想ボリュームにアクセスがあると、仮想ボリュームのページには、プールボリュームのページが割り当てられる。
図１１は、仮想ボリュームに、ホスト装置から（１）、（２）、（３）の順番でアクセスがあると、均等割当て処理プログラム３５０８（図３）は、ページ（１）をプールボリューム＃０に、ページ（２）をプールボリューム＃１に、ページ（３）をプールボリューム＃２に順番に割り当てる処理を行う。
図１１の状態から、プールにボリューム＃３を追加して、ページ割り当てをプールボリューム間で均等にしない場合、仮想ボリューム中の未割り当て領域へのライトに対して、空き領域を多く有するプールボリューム＃３からの仮想ボリュームに対する割り当てが多くなる。当然、空き領域を多く有するＲＡＩＤグループへのアクセスが集中するため、ストレージ装置のホスト装置からのアクセス処理性能が低下する。
そこで、リバランス処理プログラム３５０９（図３）は、プールにボリュームを追加すると、追加したプールボリュームと既存のプールボリュームとの間で記憶容量の不均衡が生じるとして、追加したプールボリュームを使用する前、各プールボリューム間で記憶容量が均等になるように、既存のプールボリュームから追加したプールボリュームにページを移動することとした。複数のプールボリューム間でページを移動することを、ページの再配置、あるいはページのリバランスということにする。図１２は、リバランスの過程を示すブロック図である。
なお、プール管理プログラムがプール情報を管理しており、プールボリュームが追加されると、プール管理プログラムがこの追加を検出する。そして、その契機で、リバランス処理プログラムが起動する。
リバランス処理プログラム３５０９は、先ず、プールに追加されたプールボリューム＃３において割り当てに使用されていない未使用のページを確保する。
そして、割り当て済みページ数が他のプールボリューム＃１、＃２より大きいプールボリューム＃０のページ（４）のデータを、プールボリューム＃３の未使用のページにコピーする（Ｓ１２０２）。
リバランス処理プログラムは、プールボリューム＃０に割り当てられていたページ（４）の割り当てを解放して、これをフリーキューに接続する。さらに、仮想ボリュームのページ（４）の領域の割り当てを、プールボリューム＃０のページからプールボリューム＃３のページ（４）に変更する（Ｓ１２００）。ページ間のデータのコピーをマイグレーションという。この過程が、ページの移動であり、ページの再配置である。ページの移動をページマイグレーションともいうことにする。
これらの処理の結果、複数のプールボリューム全体に対するページの割り当てが均等になるため、複数のプールボリュームそれぞれに対するＩ／Ｏのレートが同程度になり、ストレージシステムのホストからのアクセスに対する処理性能がプールボリュームの追加後も良好に維持される。
図１２では、複数のプールボリューム間で割り当てられたページ数が、複数のプールボリュームの容量それぞれが同一であることを前提に、同数になるようにした。
複数のプールボリューム間で割り当てページを均等にする上で、プールボリュームの容量を勘案して、複数のプールボリューム間で、全ページ数（プールボリュームにある、割り当て可能な全ページ数）中割り当てに使用されたページの割合（ページ使用率）を均等にすることが重要である。ページ数の代わりに記憶容量で計算しても同じことである。
図１３はそのことを示すブロック図である。符号１３００は、各ボリュームに割り当てられているページの全容量であり、１３０２は、ボリューム間でマイグレーションされるページの容量である。プールボリュームの容量比は、プールボリューム＃０：＃１：＃２が１：３：２である。したがって、ページの使用率が同じ割合になるように、プールボリューム＃１および＃３からプールボリューム＃２にそれぞれページが再配置される。
図１６Ａはプールを管理するテーブルであり、図１６Ｂはプールボリュームを管理するテーブルである。これらのテーブルは、プール情報３５２（図３）の一部として、メモリ３５０に記録されている。これらのテーブルは管理情報から作成される。ストレージシステムのリバランス処理プログラム３５０９は、これらテーブルを参照して、図１２及び図１３で説明するリバンランス処理系を構築する。
図１６Ｃは、フリーキュー単位を管理するテーブルである。仮想ボリュームのアクセス領域に対する未使用ページ（プールボリューム）の割り当ては、既述のように、フリーキューによって管理される。フリーキューはプールボリューム毎に設定されている。
フリーキューにはプールボリュームの複数の未使用ページがＦＩＦＯ構造で接続されている。未使用ページが仮想ボリュームへ割り当てられる際は、未使用ページが順番にフリーキューから解放されて、仮想ボリュームからのマッピング、データコピー先として処理される。
このテーブルは、フリーキューの識別番号（＃）と、フリーキューが空き領域を管理する対象となるプールボリューム＃と、フリーキューに連結するフリー領域の個数と、フリーキューが所属するプール＃からなる。このテーブルも、プール情報の一環としてメモリ３５０に記録されている。
図１７は、ホスト装置から仮想ボリュームへのライトアクセスに対して、プールに属するプールボリュームから仮想ボリュームにページを割り当てる順序を示した説明図である。ここでの説明は、記憶容量の比が２：３：２である複数のプールボリュームを持ったプールを前提としている。
仮想ボリュームのページをプールボリュームに均等に割り当てるためには、プールボリュームに追加されたボリュームを含めて、ボリュームに対してページの割り当て順序を定めることが必要である。この割り当て順序は、管理情報としてメモリに登録されている（図１８参照）。
割り当て処理プログラム３５０８は、この管理情報を参照して、複数あるフリーキューの中から目的のフリーキューのアドレスを算出して、フリーキューに繋がる未使用ページのアドレス（ポインタ情報：ＰＳＣＢ）を取得し、ここに仮想アドレスのページに対して送られた、ホスト装置からのライトデータを格納する。
これを可能にするために、フリーキューのアドレスとプールボリュームの識別情報とは１：１に対応している。例えば、フリーキュー＃０はプールボリューム＃０のフリー領域を管理しており、フリーキュー＃１はプールボリューム＃１のフリー領域を管理しており、フリーキュー＃２はプールボリューム＃２のフリー領域を管理している。
図１７は、プールボリューム＃０に連続して２回ページを割り当て、次いで、プールボリューム＃１に連続して３回ページを割り当て、さらに、プールボリューム＃２に連続して２回ページを割り当て、以後これを繰り返すことを示している。
図１８は、この割り当て順序を管理するテーブルであり、図１７に示す割り当ての方式が登録されている。このテーブルもプール情報としてメモリに記録されている。割り当て処理プログラム３５０８は、この管理テーブルを参照して、プールボリュームに対するページの割り当ての順次制御処理を管理する。
このプログラムは、ソフトウエアカウンタを備え、どのプールボリュームまでページを割り当てたか否かを管理する。カウンタはページの割り当ての都度インクリメントされることから、カウンタの位置によって、現在のページ割当て対象となっているプールボリュームが分かる。図１８は、カウンタがプールボリューム＃１（フリーキュー＃１）のところにあることを示している。
ストレージ装置がページの再配置（図１２、図１３）を実行することの契機となる事象は、図１２及び図１３に示すように、プールボリュームをプールに追加することのほか、図１４に示すように、プールからプールボリュームの削除（Ｓｈｒｉｎｋ）、複数のプールボリューム間で使用されているページの全体のページ数に対するバランス、あるいはプールボリュームの容量に対する使用量のバランス、その他、ＧＵＩを介してユーザ側からの要求によるものがある。
図１４において、リバランス処理プログラム３５０９は、プールの空き容量を一定時間監視する（Ｓ３３００１，Ｓ３３０２）。プール全体の使用量（割り当てに使用された全ページの容量）が閾値を越えたか否かを判定する（Ｓ３３００３）。
閾値を越えると、管理装置２０又は保守端末は、プールに新たにプールボリュームを追加する処理を行う。ストレージ装置は、図５乃至図７に示す管理情報をプールボリュームの追加に合わせて更新する（Ｓ３３００４）。その後、リバランス処理に移行する（Ｓ３３０２０）。リバンランス処理を、後に、図１５に基づいて説明する。
一方、プールボリュームの削除も、リバランス処理の契機となる。ＧＵＩを介して管理ユーザからリバランス指示があると、ストレージシステムはリバランス処理を実行する。ＧＵＩは管理サーバ２０あるいは保守端末に存在する。
さらにまた、リバランスプログラムの監視機能は、所定タイミングごとに、プールの各プールボリュームについて、使用されているページの全ページ数に対するバランスをチェックして（Ｓ３３００９）、これを閾値と比較する（Ｓ３３１０）。閾値より大きい場合には、バランスが崩れているとして、ストレージ装置はリバランス処理を行う。
図１５はリバンラスを示すフローチャートートである。リバランス処理プログラムが、リバランスの対象となったプールについてリバランスの可否を判定する（Ｓ７００７）。この判定は、例えば、図３のプール情報３５２を判定して行われる。プールの状態（図７の３５２１８）が閉塞状態にあるときには、リバランスができないと判定される。
リバランスが可能と判定されると、リバランス処理プログラムは前処理を行う（Ｓ７０１０）。たとえば、ページマイグレーション（ページの割り当ての変更あるいは移動）移動元のプールボリュームと移動先のプールボリュームとを決定する、ページマイグレーションの処理が適用されるプールボリュームの選択順序（割り当て順序）を決定する、そして、ページマイグレーション後のプールボリュームの容量をシミュレートするなどである。
プールボリュームがプールに追加されると、プール管理情報によってプールが管理され、ストレージ装置は、プールボリュームの容量比の見直しを行う。
次いで、リバランス処理プログラムは、プール内でマイグレーションすべきページ数を算出する（Ｓ７０１１）。その後、ページのマイグレーション処理を行う（Ｓ７０１２）。このとき、後述するが、マイグレーションの際に、複数のプールボリュームに存在する固定パターン（例えば、ページの全てのデータ“０”のもの）を破棄して、プールボリュームの容量を縮小するための処理を同時に行う。
ページマイグレーションの際、リバランス処理プログラムは、リバランス処理の中断条件の発生の有無を判定する。例えば、リバランスの対象となったページにホスト計算機からＩ／Ｏがあった場合には、リバランスを中断する。リバランスの中断の要因がなくなった後リバランス処理を再開してもよい。
次いで、リバランス処理プログラムは、ページマイグレーションの進捗を管理する（Ｓ７０１３）。この管理によって、リバランス処理プログラムは、リバランスの進捗状況を管理ユーザに対して見せることができる。
図１９は、図１５のマイグレーションするページ数の算出（Ｓ７０１１）の詳細を示すフローチャートである。ここでのページ数の算出の方式は、複数のプールボリューム間でバランスされたページ数を理想のページとし、これと現在使用されているページ数の差を埋めるようにすることである。
リバランス処理プログラムは、ＨＤＰ  ＶＯＬ（仮想ボリューム）に割り当てられている各プールボリュームでのページの使用量を検索する。
図１９の説明において、次のことを前提とする。
ＨＤＰ  ＶＯＬ＃ｉのプール使用量全体（プールに属する全てのボリュームにおいて割り当てられている（使用されている）ページの総数）：Ａ［ｉ］
ＨＤＰ  ＶＯＬ＃ｉのプールボリューム＃ｊ使用量全体（使用するページの総数）：Ｂ［ｉ］［ｊ］
プールボリュームの＃ｊの容量（総ページ数）：Ｃ［ｊ］
プール全体の容量（総ページ数）：Ｄ
追加プールＶＯＬ全体の容量（総ページ数）：Ｅ
先ず、リバランス処理プログラムは、プールボリューム追加前に、ＨＤＰ  ＶＯＬ［ｉ］に割り当てられているプールＶＯＬ［ｊ］が使用してページ数を算出し、これをＢ［ｉ］［ｊ］に格納する（Ｓ１９００）。Ｂ［ｉ］［ｊ］はメモリ３５０のワーク領域に設定されている。
次いで、プールボリュームをプールに追加後に、ＨＤＰ  ＶＯＬ［ｉ］がプールボリューム［ｊ］を使用すべきページ数を次のようにして求める（Ｓ１９０２）。
ＨＤＰ  ＶＯＬ＃ｉのプール使用量全体×プールボリューム［ｊ］の理想の使用率＝Ａ［ｉ］×Ｃ［ｊ］／（Ｄ＋Ｅ）
プールボリュームの理想の使用率とは、プールボリュームに格納可能な総ページ数に対する、プールボリュームに割り当てられたページ数の割合であって、複数のプールボリューム間で均等にページが割り当てられていることを前提とした値である。
プールボリュームボリューム［ｊ］について移動が関係するページ数は、プールボリューム追加前と追加後の差であって、次のとおりである（Ｓ１９０４）。
ページ数＝  Ｂ［ｉ］［ｊ］−Ａ［ｉ］×Ｃ［ｊ］／（Ｄ＋Ｅ）
上記計算値がプラス（＋）の値の場合は、プールボリューム［ｊ］は移動元ボリュームとなり、計算値がマイナス（−）の値の場合は、プールボリューム［ｊ］は移動先ボリュームとなる。
リバランス処理プログラムは、移動ページ数を算出したら、プール番号毎に、移動ページ数、プールボリュームが移動元か移動元か移動先かを専用のテーブルに登録する。
図２０は、図１９の処理によって算出されたページ数とページの移動の様子を示すブロック図である。ページの移動は、一つのストレージプールグループに属する複数のプールボリュームと、これに対応する複数の仮想ボリュームと、において、各仮想ボリュームについてページの移動を算出した結果に基づく。プールボリュームのシンボルの中の数値は、プールボリュームにおいて割り当てに使用されているページ数を示している。
図２０に示す様に、仮想ボリューム＃０について、複数のプールボリューム間でページの移動はない。仮想ボリューム＃１、＃２について、図２０に示す矢印の方向で、矢印の上に示してある数のページがマイグレーションされる。
リバランス処理プログラムは、プール単位でページの移動を行う。すなわち、図２０に示す全てのページ移動を行う。なお、仮想ボリューム単位でページの移動を行ってもよい。たとえば、仮想ボリューム＃１について、複数のプールボリューム間でページの移動を行い、仮想ボリューム＃２については、ページの移動を実行しないようにしてもよい。
図２１は、図２０に示すページの移動形態を実現するための管理テーブルである。この管理テーブルはメモリ３５０の所定領域に格納される。管理テーブルは仮想ボリューム毎に存在し、図１９のステップＳ１９０６の処理に基づいて作成される。
仮想ボリューム毎で各プールボリュームが移動元となるかあるいは移動先となるかが登録されており、移動元のプールボリュームから移動先のプールボリュームについて移動されるページ数が移動元及び移動先のプールボリュームにそれぞれ登録されている。
リバランス処理プログラムは、Ｓ７０１１（図１５）の処理でこのテーブルを作成・登録し、Ｓ７０１２でこのテーブルを参照してマイグレーションを実行する。
図２２は、バランス見直し（図１４のＳ３３００９）を実現するためのページ割り当てバランス管理テーブルである。割り当て管理プログラム３５０８がページをプールボリュームに割り当てていく過程で、リバランス処理プログラム３５０９は、この管理テーブルに必要な事項を登録する。このテーブルはメモリの所定領域に格納される。この管理テーブルは仮想ボリューム毎に存在する。
このテーブルにおいて、理想の割り当てページ数とは、プールボリュームについて現在割り当てられているページ数に対して理想となる割り当てページ数であり、複数のプールボリュームの容量比を勘案して決定される。プールボリューム＃０：＃１：＃２：＃３（容量比）は、２：３：２：２である。仮想ボリュームに割り当てられているページの総数が１８であるので、容量比を勘案すると、理想の割り当てページ数の比は、４：６：４：４になる。
そして、割り当てバランスは、理想の割り当てページ数に対する実際の割り当てページ数の比である。割り当てバランスが１を超えるプールボリュームは、過剰にページが割り当てられていることを示し、逆に、これが１未満であるプールボリュームは、過少にページが割り当てられていることを示している。
均等割当て処理プログラム、又は管理装置は、割り当てページ管理テーブルを定期的に参照して、割り当てバランスの良否を判定する。例えば、１．０から±０．３５の範囲が割り当てバランスが良いとすると、プールボリューム＃０のバランスが悪く、他のプールボリュームのバランスはよい、ということになる。
バランスが悪いと判断されたプールボリューム数が全体プールボリュームに対して＊＊％（閾値：図１４のＳ３３０１０）を超えたら、プール全体のバランスが悪いと判断し、リバランス処理プログラムがページについてマイグレーション処理を開始する。割り当てページ管理テーブルのチェックは、ストレージ装置の保守端末の管理プログラムが実行してもよい。
一方、割り当てバランスの良否の判断は、プールボリューム個々について行われてもよい。たとえば、割り当て比が、１．０から±０．８５の範囲外のプールボリュームが少なくとも一つあったら、ストレージシステムは、プール全体のバランスが悪いと判断し、リバランスを開始する。
図２３は、図１５のマイグレーション処理（Ｓ７０１２）の詳細を示すフローチャートである。この処理は、複数の仮想ボリュームが存在する場合は、各仮想ボリュームについて行われる。
リバランス処理プログラムは、仮想ボリュームの中から、関連ページを検出する。移動対象となるのはプールボリュームのページであるが、アドレス管理テーブル３５１１を参照することにより、移動対象となるページに対応する関連ページを仮想ボリュームの全ページの中から特定することができる。
リバランス処理プログラムは、仮想ボリューム中の先頭から全ページのそれぞれについて、関連ページであるか否かの判定を行う。どのページまでチェックしたかを管理するためにソフトウエアカウンタを用いる。ページのチェックが進む都度、カウンタをインクリメントする。そこで、リバランス処理プログラムは、カウンタの初期化を行う（Ｓ２３００）。
次いで、リバランス処理プログラムは、仮想ボリューム中のページを先頭ページから選択する（Ｓ２３０２）。次いで、選択したページにプールボリュームの移動対象ページが割り当てられているか否かを判定する（Ｓ２３０４）。
リバランス処理プログラムは、この判定を肯定すると、アドレス管理テーブル３５１１に基づいて移動対象ページが属するプールボリュームの識別情報を検出する（Ｓ２３０６）。
次いで、図２１のテーブルを参照して、プールボリュームが移動元か移動先かを判定する（Ｓ２３０８）。リバランス処理プログラムは、プールボリュームが移動先である場合には、移動元プールボリュームからページ移動するための空き領域を移動先プールボリュームに確保する（Ｓ２３１０）。
ページが移動されるプールボリュームとしては、割り当てバランスが低いものが選択されるが、複数のプールボリュームが移動先として競合した場合には、追加されたプールボリューム、次いで、移動先となる上での優先度が高いプールボリュームから順に選択される。移動先優先度テーブルには、各プールボリュームについて移動先となる優先度が登録されている。
リバランス処理プログラムは、移動先プールボリューム、移動元プールボリューム、移動対象ページ数を決めると、ページの移動のスケジュールを決定し、これをメモリ３５０のマイグレーション実行ジョブに登録する（Ｓ２３１２）。
このスケジュールは、例えば複数のページの移動を伴う場合、どのような順番でページの移動を行うかを決めるためのものである。このスケジュールは、Ｓ２３０２にて順次選択されたページがある都度、新たな移動先ボリュームなどが決定される都度更新登録される。
次いで、リバランス処理プログラムは、カウンタのカウント値をインクリメントし（Ｓ２３１６）、Ｓ２３０２にて選択していないページが未だ存在するか否かを判定する（Ｓ２３１８）。
未検討のページが存在する場合にはステップＳ２３０２にリターンし、さらに、ページが存在しない場合にはＳ２３１２において順次更新されたスケジュールにしたがって、マイグレーションが実行される（Ｓ２３２０）。なお、マイグレーション処理（Ｓ２３２０）をＳ２３１２の後に実行するようにしてもよい。
また、Ｓ２３２０の処理がＳ２３１２とＳ２３１６の２３１６の間に入っていてもよい。
図２４は、固定データパターンの破棄を伴う、マイグレーション処理の詳細を示すフローチャートである。このフローチャートは移動元ページが複数ある場合には各移動元ページについて適用される。
ストレージアダプタ３７０は、リバランス処理プログラムにしたがって、移動元プールボリュームから移動元ページの全データをスロット単位で、キャッシュメモリ３２にステージジングする（Ｓ２４００）。
図２６にこの様子が示されている。プールボリューム＃１は移動元であり、プールボリューム＃２は移動先である。Ｓ２６００は、移動元ページがキャッシュメモリの第１の領域３２Ａにステージングされる様子を示している。符号２６０１はスロットである。ステージングはスロット単位で実行される。符号２６０１Ａは移動元ページであり、符号２６０１Ｂは移動先ページである。
ストレージアダプタ３７０内のＤＲＲ回路（Ｄａｔａ  Ｒｅｃｏｖｅｒ  ａｎｄ  Ｒｅｃｏｎｓｔｒｕｃｔ回路）は、スロット単位で移動元ページ２６０１Ａのデータをチェックし、データが“０”か否かをチェックする（図２４：Ｓ２４０２−Ｓ２４０４、図２６：Ｓ２６０２）。
この判定は、移動元ページのデータが固定パターンの一つ（全データが“０”）であるか否かを判定するためのものである。データが固定パターンの場合にはページのマイグレーションは行わず仮想ボリュームの移動対象ページに対するマッピングを、固定パターンデータを格納している専用領域に変更する。
ＤＲＲが“１”の存在を検出すると、ステップ２４１４に移行して、キャッシュメモリ内メモリコントローラは、移動元ページデータを、第１領域３２Ａから第２領域３２Ｂへ、キャッシュメモリ間コピーを行う（図２４：Ｓ２４１４、図２６：Ｓ２６０４）。そして、ストレージアダプタ３７０は、移動元キャッシュメモリ３２Ａをクリアする（図２４：Ｓ２４１６）する。
次いで、第２領域３２Ｂのデータを移動先プールボリューム＃２の移動先ページ２６０１Ｂにデステージ（図２６：Ｓ２６０６）、移動元ページ２６０１Ａを未使用ページに変更し、さらに、仮想ボリュームのページに対する割り当てを移動元ページから移動先ページに変更するなどのマイグレーション処理を行う（図２４：Ｓ２４１８）。
ＤＲＲが判定しているスロットのデータが“０”の場合は、ストレージアダプタ３７０は、スロット単位の全データのチェックが終了したか否かを判定し（Ｓ２４０６）、これを否定判定する場合には、ステップＳ２４０２に戻り、同一スロットの他のデータにつて、“０”か否かをチェックする。
スロットの全部のデータについてチェックが終わると、ステップＳ２４１０に移行し、移動元ページに残りのスロットがあるか否かをチェックして、これを肯定判定する場合には、次のスロットについて既述のチェックを行う。
ページに属する全てのスロットについて判定が終わると、ステップＳ２４１２に移行して、全データが“０”からなる移動元ページは、マイグレーションが必要でないとして、未使用ページに変更する。
ストレージ装置が図２４に示す処理を実行することにより、ページを再配置する際、固定パターンデータを持つページを使用済みの管理から解放して、固定パターンデータが重複して仮想ボリュームに割り当てられることを解消し、ひいては、ホスト装置は、プールボリュームの記憶領域を効率よく利用することができるようになる。
既述の実施形態では、０データの存在のチェックを、ストレージアダプタ３７０内の回路（ＤＲＲ）によりパリティ生成時についでに処理するとしたが、専用ソフトウェアで行う、又は、専用回路で行うものであってもよい。
図２４で説明するマイグレーションの過程で、移動元のページに対して、ホスト計算機からＩ／Ｏまたはストレージ装置内コピーＩ／Ｏが発行されると、ストレージ装置は、Ｉ／Ｏ処理の方を優先させてページマイグレーションを中止する。
すなわち、図２５に示す様に、仮想ボリュームにリード又はライトＩ／Ｏが供給されると、プロセッサは、移動元ページに対する論理アドレスが含まれているか否かをチェックする（Ｓ２５００）。
移動元ページに対する論理アドレスが含まれていることは、仮想ボリュームと移動元ページとの間のパスが切断されてなく、ページマイグレーション処理は終了していないことを意味するため、プロセッサは、移動元ページのデータが格納されている、キャッシュメモリの第２の領域（図２６の３２Ｂ）のデータをクリアし、さらに移動先ページに対してクリア処理を行う（Ｓ２５０４）。
ここでのクリア処理とは、仮想ボリュームにマッピングされている場合には、マッピング管理情報を削除することであり、また、移動先ページが使用ページとして管理されているのであれば、その管理情報を削除することである。
次いで、プロセッサは、Ｓ２５０６において、図２４のマイグレーション処理をスキップする（終了する）。なお、リードＩ／Ｏの場合は、これの処理が終了するまで、マイグレーション処理を一時停止し、その後再開するようにしてもよい。
図２６で説明したように、キャッシュメモリ３２には、第１領域（移動元用のキャッシュ領域）３２Ａと、第２領域（移動先用のキャッシュ領域）３２Ｂとがあり、両者の差分が無くなるまで、第２領域から移動元ページのデータが移動先ページ２６０１Ｂにコピーされないため、移動元ページにＩ／Ｏが入ったタイミングでページの移動処理を中止することができる。
これに対して、図３１に示す、キャッシュメモリの構成（図９の形態）では、ローカルルータ（ＬＲ）１３３のＤＲＲが０データの検出を行い、プロセッサは、キャッシュメモリ３２の一つのキャッシュ領域３２Ａにステージングされたデータを他のキャッシュ領域を利用することなく直接移動先ページ２６０１Ｂにデステージするため、ページのマイグレーションは、図２６のキャッシュメモリの構造のものより高速に進むことができる半面、移動元ページ２６０１Ａにホスト装置からＩ／Ｏのアクセスがあっても、ページのマイグレーションを中止できづらくなる。
図３１の場合でも、０チェックしたデータをキャッシュメモリにためこみ、結果０でなければプールボリューム＃２に格納する。図３１の斜め書きの方が高速である。
次に、図２４のＳ２４１８のページマイグレーション処理をフリーキューに関連して説明する。この説明のために、図３２に示すマイグレーションを前提にする。すなわち、プールボリューム＃０のページ＃１０００のデータが、プールボリューム＃３のページ＃２０００にコピーされ、仮想ボリューム（ＨＤＰ  Ｖｏｌ＃０）の前者のページ対するマッピングを後者のページのマッピングに変更される過程を、図３３を用いて説明する。
リバランス処理プログラム３５０９は、移動中キューを確保し、これをフリーキュー＃３に接続し、次いで、プールボリューム＃３に割り当てられているフリーキュー＃３に接続するフリー領域の中から、移動先ページとなる対象領域３３０２を選択し、このポインタ情報（Ｐｏｏｌ−Ｖｏｌ＃３、＃２０００）３３０３を移動中キュー（キュー＃０）３３００の最後に接続する（Ｓ３３００）。移動先ページとなる領域を、フリーキューとは別キューで管理するのは、移動先ページとなる領域が仮想ボリュームに割り当てられないようにするためである。
コピージョブからページデータのマイグレーションが正常に終了したとの通知をリバランス処理プログラムが受けると、ＶＶＯＬ  ＤＩＲにあるページ（プールボリューム＃０、ページ＃１０００）へのマッピング３３０６の情報である、ポインタ情報３３０４をクリアして、これを、移動先ページのアドレス（Ｐｏｏｌ−Ｖｏｌ＃３、＃２０００）へのポインタ情報に変更し（Ｓ３３０２）、移動元ページのアドレスをフリーキュー＃のキュー構造の適切な位置に挿入する。さらに、移動先ページを移動中キューから解放する。
図３４に示す様に、移動元ページから移動先ページへのデータマイグレーションの過程が、ホスト装置からのＩ／Ｏなどによって、これが中断（３４００）されると、図３５に示す様に、リバランス処理プログラムは、移動中キューを確保し、移動先キューに対して設定されたポインタ情報３３０４をクリアし、変更前の情報に戻す。
さらに、移動先となるページ３３０３がもともと存在していたプールボリュームのフリーキュー＃３を確保し、このふりキューに対して移動先ページ３３０３がフリー領域として挿入される位置を検索する。
リバランス処理プログラムは、移動中キュー３３００をフリーキュー（Ｑｕｅｕｅ＃３）に接続し、移動先ページ３３０３を移動中キュー３３００から解放し、さらに、移動先ページをフリーキュー（Ｑｕｅｕｅ＃３）に接続する。
以上のように、ストレージ装置はフリーキューとは別キューである、移動中キューを利用することにより、ページの再配置を可能にするとともに、ページ再配置に競合するホストＩ／Ｏなどの要因がストレージ装置に加わっても、Ｉ／Ｏの処理を優先させることができる。
次に、図２７Ａ、図２７Ｂ、図２７Ｃを利用して、仮想ボリュームとプールボリュームについて、固定データパターンに対する割り当て処理の詳細をここで説明しておく。固定データパターンとして、ページ内の全データが“０”のパターンを例とする。
図２７Ａは、仮想ボリューム（ＤＰ  ＶＯＬ）の作成を示すブロック図である。ストレージ装置は、仮想ボリュームの未割り当て領域（未使用ページ）２７００の全てを、プールボリュームの０データの専用領域２７０２に割り当てる。
０データ専用領域は、プール内の少なくとも一つのボリュームに設けてもよいし、キャッシュメモリに設けてもよい。ホスト計算機から仮想ボリュームの未割り当て領域にリード要求がきたら、ストレージ装置は、プールボリュームの０データ専用領域をリードして０データをホスト計算機に返す。
図２７Ｂに示す様に、ストレージ装置が、仮想ボリュームの未割り当て領域にホスト装置からライト要求を受けると、プールボリュームの空きページを選択して、ここにライトデータを格納する。
ストレージ装置は、ライト要求２７０８を受けた仮想ボリュームのページ２７０６の割当先を「０データ専用領域」２７０２から割当て領域２７０４に変更する。すなわち、ストレージ装置は、割り当て２７１０を解放して、新たな割り当て２７１２を管理テーブルに設定する。ライト要求が全“０”データの場合には、プールボリュームの割り当て済み領域２７０４に全“０”データを上書きする。
次いで、図２７Ｃに示す様に、ストレージ装置は、仮想ボリュームの先頭ページから順番に、割り当てられているプールボリュームのページのデータが全て０であるかどうか検索し（２７２０）、全データが“０”のページ２７２２を検出したら、仮想ボリュームのページ２７２４の割り当て先を現在割当てられているページ２７２２から「０データ専用領域」としての専用ページ２７０２に変更する。
全データが“０”である、プールボリュームのページを使用済み領域ではなく空き領域として管理する。この“０データページ破棄処理”は、図２４に示す様に、ページのリバランス処理に付帯して実行されたが、ページリバランス処理とは独立して実行されてもよい。
この時、“０データページ破棄処理”に伴って、複数のプールボリューム間でページ割り当て比に不均衡が生じる場合には、図１４のＳ３３０９、及び、図２２で説明したように、リバランス処理が適用される。
図２８は、０データ専用領域へのリード処理を示すフローチャートである。プロセッサ３６０は、仮想ボリュームへのホスト装置からのリード要求が、未割り当て領域に対するものであるか否かを判定する（Ｓ３５００１）。これを否定判定すると、プールボリュームの割り当て領域のアドレスを検索し、リード要求に対して、検索されたページのデータを応答する（Ｓ３５００５）。
一方、リード対象が未割り当て領域の場合には、全０データをホスト装置に対して応答するが、ステップＳ３５００２において、仮想ボリュームに割り当てられているプールボリュームの数をチェックする。
この判定は、０データ専用領域の設定方法が複数あることに起因している。１つ目は、０データ専用領域をプールの先頭プールボリュームに１つだけに設ける。２つ目は、プール内の全てのプールボリューム０データ専用領域を設ける。
０データ専用領域を設定したプールボリューム数が少ない（１つ目の方法、２つ目の方法でもプールボリューム数が少ないなど）と、ＰＤＥＶ（記憶デバイス）へのリード負荷が大きくなるため、ストレージ装置が０データを作成してホスト計算機に応答する（Ｓ３５００５）。ストレージ装置は０データを、例えば、メモリ（キャッシュメモリ）上で作り出す。０データ専用領域を設定したプールボリューム数の大小は、規定値との比較による。
一方、０データ専用領域が設定されたプールボリュームが多い場合には、リード負荷が複数のプールボリュームに分散されるため、ストレージ装置はプールボリュームの０データ専用領域に対応する物理領域をリードして０データをホスト装置に返答する（Ｓ３５００３）。
なお、記憶デバイスが高速なリード性能を持つもの（例ＳＳＤ）であれば、リード負荷を無視することができるので、プールボリュームの数の如何に拘わらず、プロセッサは、記憶デバイスに常時０データを読みに行くようにすればよい。プール毎に、記憶デバイスのリード特性を管理することにより、これは可能である。
また、プールに、高回転速度なＨＤＤと低回転速度なＨＤＤとが混在して割り当てられている場合、高回転速度であるＨＤＤに設定されたプール又はプールボリュームに０データ専用領域を設定し、これに仮想ボリュームの未割当て領域をマッピングすればよい。
図２９は、仮想ボリュームの未割当領域にホスト装置からライト要求が発行された場合の処理（図２７Ｂ）について説明するものである。ストレージ装置は、仮想ボリュームのライト対象が未割り当て領域であるか否かを判定する（Ｓ２９００）。これを否定判定すると、仮想ボリュームのライト対象ページに割り当てられているページ（プールボリュームの）のアドレスを検索し、ページにライトデータを上書きする（Ｓ２９０２）。
一方、前記判定を肯定すると、プールボリュームの空き領域からページを選択し（Ｓ２９０４）、ここにライトデータを格納する（Ｓ２９０６）。ライト要求を受けた仮想ボリュームのページは、“０データ専用領域”からプールボリュームのページに向けてマッピング管理情報を変更する（Ｓ２９０８）。
既述の実施形態では、移動元プールボリュームに割り当てられているページを移動先プールボリュームにマイグレーションする際に、移動対象ページが固定データパターンである場合には、移動対象ページをマイグレーションすることなく解放し、仮想ボリュームのページを移動先プールボリュームの固定データパターンを格納している領域にマッピングした。
さらに、ストレージ装置は、プールにプールボリュームが追加された際に、複数のプールボリューム間で、ページをマイグレーションする契機で、“０”データ専用領域に関するリバランスを行うようにしてもよい。
すなわち、図３０Ａに示す様に、追加プールボリューム３０００に０データ専用領域３００２を設定し、既存のプールボリューム３００８の０データ専用領域３００６に対して設定されていた、仮想ボリューム３００４の未割当領域３００５からのマッピング３００１が、追加プールボリューム３０００の専用領域３００２のマッピング３００３に変更される。
したがって、仮想ボリュームの未割当領域から０データ専用領域へのマッピングが、追加したプールボリュームを含めた複数のプールボリュームに対して均等に行われる。
また、図３０Ｂに示す様に、プールボリューム３１００が削除されると、削除されたプールボリュームの使用済みページが残りのプールボリュームに均等に再配置されるが、この際、削除されたプールボリュームの専用領域３１０２に対する仮想ボリュームの未割当領域３１０４，３１０６からの３１０８も、残りのプールボリュームの専用領域３１０２，３１１４に均等に変更される（３１１０，３１１２）。
このように、仮想ボリュームのページに対する０データ専用領域の割り当てを複数のプールボリュームに分散させることによって、仮想ボリュームにライトアクセスがあった際での、仮想ボリュームの未使用領域の割り当てを０データ専用領域から解放し、次いで、未使用領域をプールボリュームの未使用領域に割り当てる処理を、複数のプールボリュームにわたって分散させることができる。
図３６は、マイグレーション進捗管理（図１５のＳ７０１３）のための管理テーブルである。リバランス処理プログラムはこの管理テーブルへ管理情報を登録し、登録した管理情報を更新する。マイグレーションの進捗状況は、画面への表示によって管理ユーザに供給される。管理情報には、プール毎に「マイグレーションを行っているかいないか」の情報があり、具体的には次のものがある。
リバランス中：リバランス処理実行中。
リバランス未：（１）リバランスしていない、（２）リバランス対象外。
リバランス未完了：（１）リバランス処理が中断（障害、ユーザ指示など）され、計画の途中までしか実行していない、（２）リバランス処理の計画は最後まで実行されたが、スキップされたページがあった、（３）電源ＯＦＦした、など。
さらに、リバランス処理を失敗した場合は、リバランス中断したことを画面に示し、ユーザが再度リバランス処理を実行できるタイミングを与えるようにすること、マイグレーション対象のプールについて、ＨＤＰ  ＶＯＬ総数のうち、何個のＨＤＰ  ＶＯＬをマイグレーション完了したかの情報を提供するようにしてもよい。
次に、図１４のプールボリュームを削除する処理（Ｓｈｒｉｎｋ“シュリンク”）を詳細に説明する。図３７は、リバランスを考慮したプールボリュームのシュリンク処理を説明するフローチャートである。プールボリュームのシュリンクは、ＧＵＩを介してユーザ指示による。
図３８は、ＧＵＩによってユーザに提供される情報の例であり、プール及びプールボリュームの特性が含まれている。ユーザはこの情報に基づいて、シュリンクするプールボリューム、このプールボリュームが属するプール、シュリンクする容量、プールボリュームがシュリンクされた後での、プールにおけるページの使用率などを指定する。
ページの使用率とはプール内のプールボリュームに割り当て可能な全ページ数に対する仮想ボリュームに実際に割り当てられているページ数の比である。シュリンクはプールボリュームに対して実行される。
ユーザからのシュリンク条件がリバランスプログラムに指示されると（Ｓ３７００）、シュリンクの対象となるプールがシュリンクできるものであるか、あるいはそうでないかを判定する（Ｓ３７０２）。
プール管理情報、プールボリューム管理情報にアクセスして、これらの状態を参照する。例えば、プールやプールボリュームが閉塞されていたり、あるいはプールに属するプールボリュームにホスト装置からのＩ／Ｏやストレージシステム内のコピーＩ／Ｏが存在する場合は、管理サーバあるいはストレージシステムの保守端末のＧＵＩがユーザにシュリンク不可を通知する（Ｓ３７２０）。
シュリンクが可能であることを判定すると、リバランス処理プログラムは、ステップ  Ｓ３７０４において、ユーザからプールボリュームの指定があったか否かをチェックする。プールボリュームが指定された場合、指定されたプールボリュームがプールから削除されても、プール全体におけるページの使用量あるいは使用率が閾値を超えないと、ステップＳ３７０６に移行してシュリンクした後でのプール・プールボリュームの特性を予想して、これをＧＵＩによってユーザに表示する（Ｓ３７０８）。
図３９はシュリンクの予想結果の出力例である。シュリンク前のプールの容量、使用量、空き容量と割合は、プール管理情報からデータを採取する。空き容量の割合は、プールの容量と空き容量から算出する。
シュリンク後のプールの容量、使用量、空き容量と割合は、ユーザが指定したシュリンクプールボリューム、又はストレージ側でシュリンク対象と決定したプールボリューム全ての容量、使用量、空き容量をプールボリューム管理テーブルから算出し、プールの情報から減算する。
Ｓ３７０４で、削除すべきプールボリュームがユーザから指定されない、と判定すると、ストレージ装置がユーザから削除する容量を受け取った際、どのプールボリュームを削除するかを決める。
例えば、期待する使用量が入力された場合、現状の使用量から期待する使用量になるために、削除する容量を算出し、ストレージ側でどのプールボリュームを削除するかを決める。ストレージ側でプールボリュームを選択する場合、割り当てページ数の少ないプールボリュームから選択すれば、移動量を少なく抑えることができる。
対象プールボリュームをシュリンクしてもプール使用量が閾値（たとえば、全体容量の８０％以上）を超えないかを、ストレージ装置がチェックする。
使用量が閾値を超えることになる削除の要求は却下される。プールボリューム＃＊＊をユーザが入力した場合、ユーザ指定のプールボリュームを削除することにより、使用量が閾値を超えることになる場合は、ユーザの削除要求を却下する。
また、シュリンクを実施することで、プールボリューム数が所定値（例：８）以下になると、リバランス機能が十分に発揮されないため、残存するプールボリューム数が所定値異化になる場合は、ユーザへその旨の警告を出す。
図３９の値を画面に出力し、ユーザは入力した条件、即ち、指定したプールボリュームをシュリンクしてもよいか確認し、これを許容する場合、「続行」をユーザがＧＵＩに入力する（Ｓ３７１０）。これによりシュリンク計画が決定され、ストレージ装置は、シュリンク処理とリバランス処理を開始する。
ステップＳ３７０２において、プールボリュームが指定されない場合は、ストレージ装置がシュリンクするプールボリュームを決定する（Ｓ３７２２）。図４０は、それを実現するための処理の詳細を示したフローチャートである。
リバランス処理プログラムは、シュリンクする容量を超えない範囲でシュリンクするプールボリュームを決定する。シュリンクするプールから、割り当てられたページの容量が少ない順にプールボリュームを並べる（Ｓ４０００）。
次に、割り当てられたページの容量が最も少ないプールボリュームの容量とシュリンクすべき容量（当初の容量又はシュリンク後ではシュリンクの残量）とを比較し、プールボリュームの容量がシュリンクすべき容量を超える場合には、ステップＳ４００８  に移行して他のプールボリュームを選択して、再度ステップＳ４００２を行う。
一方、シュリンクすべき容量よりプールボリュームの容量が少ない場合には、このプールボリュームをシュリンク対象ボリュームとして選択（Ｓ４００４）し、シュリンクすべき容量から選択したプールボリュームの容量を減じ、シュリンクの残量用を更新し（Ｓ４００６）、ステップ４００８に進み、次にページ使用量が少ないプールボリュームについて、ステップ４００２の処理を行う。図４０に示す処理はシュリンクの対象となったプールに属する全てのプールボリュームについて行われる。
図３７のステップＳ３７１０にしたがい、ユーザがシュリンクを許容する入力をストレージ装置に行うと、以後、プールボリュームの削除処理を伴った、ページマイグレーション処理の前処理が行われる。
次いで、ステップＳ３７１４に移行し、シュリンクを伴って行うマイグレーションが適用されるページ数を算出する。さらに、ステップＳ３７１６において、ページマイグレーションを行い、Ｓ３７１８において、マイグレーションの進歩管理が行われる。Ｓ３７１２−Ｓ３７１８は、図１５において説明した処理とほぼ同様である。
図４１及び図４２は、プールボリュームの削減を伴ったリバランスを説明するためのブロック図である。図４１は、プールからプールボリューム＃ｊ＋１が削除されることを示している。残存するプールボリュームの容量比に応じて、プールボリューム＃ｊ＋１が有している使用済みページ数（４ページ）を、図４１に記載するような割合で既存のプールボリュームに移動させる。
図４１に示す様に、第１には、削除するプールボリュームから複数のページが、移動先となるプールボリュームの容量比に応じてプールボリュームに分配される。
この際、ストレージ装置、図４２に示すように、複数のプールボリュームについて現実の割り当てページ数が、理想のページ数になるように、プールボリュームのシュリンクによるページの移動４２０２と、リバランス処理によるページの移動とをバランスさせて行う。
図４３は、既述の実施形態の変形例を示すものであり、図９に示すストレージ装置が複数のクラスタを備えていることを示すハードウエアブロック図である。第１のクラスタ１２５１が、第１の仮想ボリューム（ＨＤＰ  ＶＯＬ＃０）に対するリバランスを制御し、第２のクラスタが第２の仮想ボリューム（ＨＤＰ  ＶＯＬ＃１）に対するリバランスを制御する。
プール＃０、プール＃１、プール＃３は、それぞれのクラスタ内、あるいは複数のクラスタを跨いで形成される。リバランスは、これら複数のプール全体に対して同時に行ってもよいし、個々のプールについて個別に行うようにしてもよい。
例えば、プールＶＯＬグループ＃２で使用しているときに、プールＶＯＬグループ＃０にプールＶＯＬが追加された場合、プールＶＯＬグループ＃２内のプールＶＯＬグループ＃１に含まれるプールＶＯＬのデータをプールＶＯＬグループ＃０内のプールＶＯＬへ移動し、プールＶＯＬグループ＃２をプールＶＯＬグループ＃０にする。もしくは、プールＶＯＬグループ＃１内のプールＶＯＬ数を減らす。
すなわち、図４３の実施形態は、プールはクラスタ間にまたがって作成される。そのプールに所属するプールボリュームのうち、仮想ボリュームと同じクラスタにあるプールボリュームにページが極力力割り当てられるようになっている。
つまり、実体が同じクラスタにあれば、クラスタ間をまたがったデータ転送が発生しないためである。それでも、プールボリュームが足りなくなったら、別のクラスタのプールボリュームが使用されるが、極力クラスタからはみでる範囲を減らそうとする。
プールＶＯＬがクラスタにまたがっている状態でプールＶＯＬが追加されたら、クラスタからはみでて格納しているデータをクラスタ内に入るようにリバランスする。
図４４はさらに他の実施形態を示すものであり、仮想ボリューム（ＨＤＰ  ＶＯＬ）の属性に、ホスト装置からのアクセスに対する応答の高速性を示す「性能」を追加した例を示すブロック図である。例えば、「性能」には、「超高速」「高速」「低速」のような識別子を登録する。プールボリュームの属性にも、この「性能」を設定することができる。
管理ユーザは、仮想ボリュームの属性を考慮して、この属性に合うようにプールボリュームを仮想ボリュームに対して設定する。例えば、「超高速」の仮想ボリューム＃１には、ＳＳＤから作成したプールボリュームを割付ける。「高速」の仮想ボリューム＃２２には、ＳＡＳやＦＣから作成したプールボリュームを割付ける。
「低速」の仮想ボリューム＃３には、ＳＡＴＡから作成したプールボリュームを割付ける。その他、外部ストレージのプールボリュームを割り付ける仮想ボリュームがあってもよい。ストレージ装置は、ＳＳＤのプールボリュームの範囲でリバランスを行う。ＳＳＤのプールボリュームが追加された場合は、ＳＳＤのプールＶＯＬを使用する仮想ボリュームがリバランスする。
これは、図４３と同様の考え方である。図４３ではプールにまたがったかどうかでグルーピングしているが、図４４はＨＤＤの種類でグルーピングしている。１つのプールの中にＳＳＤのグループ（プール＃１とする）やＳＡＳやＦＣのグループ（プール＃２とする）など存在する。プールにＳＳＤのプールボリューム（＝ＨＤＤ）が追加されたら、プールの中のプール＃１内でリバランスし、プール＃２などの他のところには影響しない動きとなる。
既述の実施形態において、プールボリュームがプールから削除されると、このプールボリュームはページ割当て順序情報管理テーブルから削除されるために、このプールボリュームの仮想ボリュームのアドレスにリンクする新たなページが割当てられることはないが、プールからプールボリュームが完全に削除されるまでは、ホスト装置からのリードアクセスがこのプールボリュームに供給される。
ストレージ装置の制御メモリにリバランスのオン／オフフラグ設定情報を、管理ユーザは管理装置又は保守装置を介して設定可能である。この設定情報をオンにしておくと、契機が発生しても、ストレージ装置はページのリバランス処理を行わない。この設定情報は、プール毎、仮想ボリューム毎に設定することもできる。
既述の実施形態では、ページリバランス契機の判定、リバランス実施の可否をストレージ装置が行ったが、これを管理装置が行うようにしもよい。前者の場合は、ストレージ装置が本発明の計算機システムになり、後者の場合は、管理装置とストレージ装置との組み合わせが計算機システムになる。
【図１】
2010122674.tif 000003
【図２】
2010122674.tif 000004
【図３】
2010122674.tif 000005
【図４】
2010122674.tif 000006
【図５】
2010122674.tif 000007
【図６】
2010122674.tif 000008
【図７】
2010122674.tif 000009
【図８】
2010122674.tif 000010
【図９】
2010122674.tif 000011
【図１０Ａ】
2010122674.tif 000012
【図１０Ｂ】
2010122674.tif 000013
【図１１】
2010122674.tif 000014
【図１２】
2010122674.tif 000015
【図１３】
2010122674.tif 000016
【図１４】
2010122674.tif 000017
【図１５】
2010122674.tif 000018
【図１６Ａ】
2010122674.tif 000019
【図１６Ｂ】
2010122674.tif 000020
【図１６Ｃ】
2010122674.tif 000021
【図１７】
2010122674.tif 000022
【図１８】
2010122674.tif 000023
【図１９】
2010122674.tif 000024
【図２０】
2010122674.tif 000025
【図２１】
2010122674.tif 000026
【図２２】
2010122674.tif 000027
【図２３】
2010122674.tif 000028
【図２４】
2010122674.tif 000029
【図２５】
2010122674.tif 000030
【図２６】
2010122674.tif 000031
【図２７Ａ】
2010122674.tif 000032
【図２７Ｂ】
2010122674.tif 000033
【図２７Ｃ】
2010122674.tif 000034
【図２８】
2010122674.tif 000035
【図２９】
2010122674.tif 000036
【図３０Ａ】
2010122674.tif 000037
【図３０Ｂ】
2010122674.tif 000038
【図３１】
2010122674.tif 000039
【図３２】
2010122674.tif 000040
【図３３】
2010122674.tif 000041
【図３４】
2010122674.tif 000042
【図３５】
2010122674.tif 000043
【図３６】
2010122674.tif 000044
【図３７】
2010122674.tif 000045
【図３８】
2010122674.tif 000046
【図３９】
2010122674.tif 000047
【図４０】
2010122674.tif 000048
【図４１】
2010122674.tif 000049
【図４２】
2010122674.tif 000050
【図４３】
2010122674.tif 000051
【図４４】
2010122674.tif 000052
【国際調査報告】
2010122674.tif 000053
2010122674.tif 000054
2010122674.tif 000055
2010122674.tif 000056
2010122674.tif 000057
2010122674.tif 000058
2010122674.tif 000059