(57)【特許請求の範囲】
【請求項１】
外部ストレージ装置とホスト計算機に接続されたストレージ装置であって、
複数の物理記憶デバイスと、
前記複数の物理記憶デバイス、前記外部ストレージ装置及び前記ホスト計算機に接続されたコントローラと
を有し、
前記コントローラは、前記複数の物理記憶デバイスに基づく１又は複数の論理ボリュームのうちの１以上をプールボリュームとして含んだプールを管理しており、
各プールボリュームは、２以上の実領域に分割されており、
前記コントローラは、
（Ａ）データが格納されており、かつ、前記外部ストレージ装置が提供する論理ボリュームである外部ボリュームを論理ボリュームにマッピングし、前記外部ボリュームがマッピングされた論理ボリュームである第１の論理ボリュームを、前記プールに含め、且つ、前記第１の論理ボリュームを２以上の第１実領域に分割し、
（Ｂ）２以上の仮想領域に分割された仮想的な論理ボリュームである第２の論理ボリュームの前記２以上の仮想領域に、前記第１の論理ボリュームの前記２以上の第１実領域をそれぞれ割り当て、
（Ｃ）前記第２の論理ボリュームを、前記ホスト計算機に提供し、
（Ｄ）各第１実領域又は各仮想領域の性能を監視し、その監視結果である性能情報を記憶し、前記性能情報に基づき、前記第１論理ボリュームに格納されるデータの移動先となる前記第１論理ボリューム以外のプールボリュームにおける移動先実領域を決定し、
（Ｅ）前記第１の論理ボリュームにマッピングされている前記外部ボリュームに格納された全てのデータを、前記第１の論理ボリューム以外の前記１以上のプールボリュームに移動するデータ移動処理を行い、前記データ移動処理において、前記外部ボリュームにおけるデータの移動元実領域に対応した第１実領域の割当先の仮想領域に、前記第１実領域に代えて、前記移動先実領域を割り当てる、
ストレージ装置。
【請求項２】
請求項１記載のストレージ装置であって、
前記性能情報は、前記第１実領域のＩ／Ｏ（Input or Output）頻度である、
ストレージ装置。
【請求項３】
請求項１記載のストレージ装置であって、
前記性能情報は、前記第１実領域の単位時間当たりのデータ転送量である、
ストレージ装置。
【請求項４】
請求項１乃至３のいずれか１項に記載のストレージ装置であって、
前記（Ｄ）は、前記データ移動処理の一部として、又は、前記データ移動処理とは独立して行われる、
ストレージ装置。
【請求項５】
請求項１乃至４のいずれか１項に記載のストレージ装置であって、
前記第１の論理ボリュームは、フォーマット禁止対象であり、
前記コントローラは、前記プールに論理ボリュームを含める際に、その論理ボリュームがフォーマット禁止対象でなければ、フォーマットした上でその論理ボリュームを前記プールに含めるが、前記第１の論理ボリュームは、フォーマット禁止対象であるため、前記（Ａ）において、前記第１の論理ボリュームをフォーマットすることなくその第１の論理ボリュームを前記プールに含める、
ストレージ装置。
【請求項６】
請求項５記載のストレージ装置であって、
前記コントローラは、前記第２の論理ボリュームに割り当てられるプールボリュームが、フォーマット禁止対象とされた前記第１の論理ボリュームであることを特定した場合に、前記（Ｂ）を行う、
ストレージ装置。
【請求項７】
請求項１記載のストレージ装置であって、
前記コントローラは、複数の仮想的な論理ボリュームを前記プールに関連づけて管理し、
前記複数の仮想的な論理ボリュームは、２以上の仮想領域に分割されており、
前記複数の仮想的な論理ボリュームは、前記第２の論理ボリュームを含む、
ストレージ装置。
【請求項８】
請求項１又は７記載のストレージ装置であって、
前記コントローラは、前記（Ｅ）において、前記第１の論理ボリュームにおいて、無効なデータのみが格納されている実領域については、その実領域を移動元としない、
ストレージ装置。
【請求項９】
請求項１記載のストレージ装置であって、
前記コントローラは、２以上の仮想領域に分割された第３の論理ボリュームを管理しており、且つ、前記第３の論理ボリュームにおける未割当ての仮想領域に対するライトに応じて、その仮想領域に未割当ての実領域を前記プールから割り当てるようになっており、
前記コントローラは、
（ｑ）前記第３の論理ボリュームにおける未割当ての仮想領域に対するライトでは、前記第１の論理ボリューム以外のプールボリュームから未割当ての実領域を割り当てる、
ストレージ装置。
【請求項１０】
請求項１記載のストレージ装置であって、
前記データ移動処理において、前記移動先の実領域に基づく物理記憶デバイスは、その物理記憶デバイスの位置に関する情報及び導入日時のうちの少なくとも１つが所定の条件に適合する物理記憶デバイスである、
ストレージ装置。
【請求項１１】
（Ａ）複数の物理記憶デバイスに基づく１又は複数の論理ボリュームのうちの１以上をプールボリュームとして含んだプールに、データが格納されており、かつ、外部ストレージ装置が提供する論理ボリュームである外部ボリュームを論理ボリュームにマッピングし、前記外部ボリュームがマッピングされた論理ボリュームである第１の論理ボリュームを含め、且つ、前記第１の論理ボリュームを２以上の第１実領域に分割し、
（Ｂ）２以上の仮想領域に分割された仮想的な論理ボリュームである第２の論理ボリュームの前記２以上の仮想領域に、前記第１の論理ボリュームの前記２以上の第１実領域をそれぞれ割り当て、
（Ｃ）各第１実領域の性能を監視し、その監視結果である性能情報を記憶し、前記性能情報に基づき、前記第１論理ボリュームに格納されるデータの移動先となる前記第１論理ボリューム以外のプールボリュームにおける移動先実領域を決定し、
（Ｄ）前記第１の論理ボリュームにマッピングされている前記外部ボリュームに格納された全てのデータを、前記第１の論理ボリューム以外の前記１以上のプールボリュームに移動するデータ移動処理を行い、前記データ移動処理において、前記外部ボリュームにおけるデータの移動元実領域に対応した第１実領域の割当先の仮想領域に、前記第１実領域に代えて、前記移動先実領域を割り当てる、
データ移動方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シンプロビジョニングが適用された記憶制御に関する。
【背景技術】
【０００２】
ホスト計算機が、第１のストレージ装置内の論理ボリュームを認識していて、その論理ボリュームにデータを書き込むようになっているケースにおいて、ホスト計算機からのデータの書込み先として、第１のストレージ装置の代わりに第２のストレージ装置が使用されることになったとする。この場合、第１のストレージ装置から第２のストレージ装置にデータを移動する必要がある。
【０００３】
また、シンプロビジョニング（ダイナミックプロビジョニングとも呼ばれる）が適用されたストレージ装置が知られている（特許文献１）。この種のストレージ装置は、一般に、複数の仮想ページ（仮想的な記憶領域）で構成された仮想的な論理ボリューム（以下、仮想ＶＯＬ）と、複数のプールＶＯＬで構成されたプールとを有する。プールＶＯＬは、プールのメンバとされた論理ボリュームであり、２以上の実ページ（実体的な記憶領域）で構成されている。ストレージ装置は、仮想ページに対するデータの書込みの際に、書込み先の仮想ページが未割当ての仮想ページであれば、その仮想ページに実ページをプールから割り当て、割り当てた実ページに書込み対象のデータを書き込む。
【０００４】
第１のストレージ装置から第２のストレージ装置へのデータ移動では、例えば、第１のストレージ装置内の論理ボリュームから第２のストレージ装置内の仮想ＶＯＬにデータを移動することが考えられる。さらに、データをページ単位で他の記憶媒体へ移動する技術も開示されている（特許文献２）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−２３４８２０号公報
【特許文献２】特開２００５−３０１６２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、第１のストレージ装置内の論理ボリューム（以下、外部ＶＯＬ）から第２のストレージ装置内の仮想ＶＯＬにデータを移動すると、下記の問題が生じ得る。
（＊）外部ＶＯＬの記憶容量が大きいと、外部ＶＯＬから仮想ＶＯＬへのデータ移動に長い時間がかかる。
【０００７】
この種の問題は、第２のストレージ装置の外部にあるＶＯＬ（外部ＶＯＬ）から第２のストレージ装置内の仮想ＶＯＬにデータを移動することに限らず、第２のストレージ装置内の論理ボリュームから第２のストレージ装置内の仮想ＶＯＬにデータを移動することについてもあり得る。
【０００８】
従って、本発明の目的は、論理ボリュームからシンプロビジョニングに従う仮想ボリュームへのデータ移動にかかる時間を抑えることにある。
【０００９】
本発明の更なる目的は、後述の説明から明らかになるであろう。
【課題を解決するための手段】
【００１０】
記憶制御装置が、複数の物理記憶デバイスに基づく１又は複数の論理ボリュームのうちの１以上をプールボリュームとして含んだプールに、データが格納されている第１の論理ボリュームを含め、且つ、第１の論理ボリュームを２以上の実領域に分割する。記憶制御装置は、２以上の仮想領域に分割された仮想的な論理ボリュームである第２の論理ボリュームに、第１の論理ボリュームを割り当てる。記憶制御装置は、第１の論理ボリュームにおける全てのデータを第１の論理ボリューム以外の１以上のプールボリュームに移動する第１のデータ移動処理を行い、その第１のデータ移動処理において、データの移動元の実領域の割当先の仮想領域に、その実領域に代えて、データの移動先の実領域を割り当てる。
【００１１】
少なくとも１つの物理記憶デバイスは、記憶制御装置の外部のストレージ装置であっても良い。また、少なくとも１つの物理記憶デバイスは、物理記憶メディア、例えば、ＨＤＤ（Hard  Disk  Drive）又はＳＳＤ（Solid  State  Drive）であっても良い。ＨＤＤは、ＦＣ（Fibre  Channel）、ＳＡＳ（Serial  Attached  SCSI）、及びＳＡＴＡ（Serial  Advanced  Technology  Attachment）のいずれに従うＨＤＤであっても良い。
【００１２】
また、この記憶制御装置は、２以上の物理記憶メディアを有したストレージ装置であっても良いし、ストレージ装置に搭載されるコントローラ部であっても良いし、ストレージ装置とホストの間に介在するインテリジェントなスイッチ装置であっても良い。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態の概要を示す。
【図２】本発明の一実施形態に係るストレージシステムの構成例を示す。
【図３】メモリ２２、ＳＭ３７及びＳＭ４７に記憶されているプログラム及びテーブルの一例を示す。
【図４】内部ＶＯＬテーブル４００の構成例を示す。
【図５】外部ＶＯＬテーブル５００の構成例を示す。
【図６】ストレージ装置管理テーブル６００の構成例を示す。
【図７】仮想マッピングテーブル７００の構成例を示す。
【図８】プールテーブル８００の構成例を示す。
【図９】性能管理テーブル９００の構成例を示す。
【図１０】追い出し進捗テーブル１０００の構成例を示す。
【図１１】再配置対象テーブル１１００の構成例を示す。
【図１２】本発明の一実施形態で行われる処理の全体の流れの一例を示すフローチャートである。
【図１３】マッピング処理の流れを示すフローチャートである。
【図１４】プール作成処理の流れを示すフローチャートである。
【図１５】プールＶＯＬ登録処理の流れを示すフローチャートである。
【図１６】仮想ＶＯＬ登録処理の流れを示すフローチャートである。
【図１７】図１７Ａは、モニタリング有効化処理の流れを示すフローチャートである。図１７Ｂは、モニタリング無効化処理の流れを示すフローチャートである。
【図１８】ストレージ装置単位の追い出し処理の流れを示すフローチャートである。
【図１９】ＶＯＬ単位の追い出し処理の流れを示すフローチャートである。
【図２０】第１種のケースに従う再配置先決定処理の流れの一例を示すフローチャートの一部である。
【図２１】第１種のケースに従う再配置先決定処理の流れの一例を示すフローチャートの残りである。
【図２２】第２種のケースに従う再配置先決定処理の流れの一例を示すフローチャートの一部である。
【図２３】第２種のケースに従う再配置先決定処理の流れの一例を示すフローチャートの残りである。
【図２４】第３種のケースに従う再配置先決定処理の流れの一例を示すフローチャートの一部である。
【図２５】第３種のケースに従う再配置先決定処理の流れの一例を示すフローチャートの残りである。
【図２６】追い出し対象解除処理の流れの一例を示すフローチャートである。
【図２７】図２７Ａは、追い出しフラグ８０４の機能の一例を示す。図２７Ｂは、フォーマット禁止フラグ８０３の機能の一例を示す。
【発明を実施するための形態】
【００１４】
以下、図面を参照して、本発明の一実施形態を説明する。
【００１５】
なお、以下の説明では「ｘｘｘテーブル」の表現にて各種情報を説明することがあるが、各種情報は、テーブル以外のデータ構造で表現されていてもよい。データ構造に依存しないことを示すために「ｘｘｘテーブル」を「ｘｘｘ情報」と呼ぶことができる。
【００１６】
また、以下の説明では、記憶制御装置として、ストレージ装置を例に取る。
【００１７】
また、以下の説明では、要素を特定するためにＩＤ（識別子）或いは番号が使用されるが、識別情報として、他種の情報（例えば名前）が使用されて良い。
【００１８】
また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ（例えばＣＰＵ（Central  Processing  Unit））によって実行されることで、定められた処理を、適宜に記憶資源（例えばメモリ）及び／又は通信インタフェース装置（例えば通信ポート）を用いながら行うため、処理の主語がプロセッサとされてもよい。プログラムを主語として説明された処理は、ストレージ装置、ストレージ装置が有するコントローラ、或いは管理計算機が行う処理としても良い。また、プロセッサは、プロセッサが行う処理の一部又は全部を行うハードウェア回路を含んでも良い。コンピュータプログラムは、プログラムソースから各計算機にインストールされても良い。プログラムソースは、例えば、プログラム配布サーバ又は記憶メディアであっても良い。
【００１９】
また、以下の説明では、「日時」という言葉を用いるが、日時は日時といった情報も指し示しても良く、当然ながら時、分、秒（小数点以下の秒を含んでも良い）を指し示しても良い。
【００２０】
図１は、本発明の一実施形態の概要を示す。なお、以下の説明では、「ボリューム」を「ＶＯＬ」と略すことがある。
【００２１】
シンプロビジョニングに従うストレージ装置３０がある。ストレージ装置３０は、プール７０を有する。プール７０は、１以上のプールＶＯＬで構成されている。プールＶＯＬは、ストレージ装置３０が有する１以上の論理ボリューム（以下、内部ＶＯＬ）のうちの、プール７０に含まれた論理ボリュームである。プールＶＯＬは、通常ＶＯＬであっても良いし、マップドＶＯＬであっても良い。通常ＶＯＬは、ストレージ装置３０が有する１以上の物理記憶メディア（例えばＲＡＩＤ（Redundant  Array  of  Independent  (or  Inexpensive)  Disks）グループ）に基づく論理ボリュームである。マップドＶＯＬは、ストレージ装置３０の外部にある別のストレージ装置（以下、外部ストレージ装置）４０が有する論理ボリューム（以下、外部ＶＯＬ）５０がマッピングされた仮想的な論理ボリュームである。
【００２２】
プールＶＯＬは、２以上の実ページ（物理的な記憶領域である物理領域）で構成されている。ストレージ装置４０は、仮想ＶＯＬ（シンプロビジョニングに従う仮想的な論理ボリューム）を構成する２以上の仮想ページのうちのいずれか未割当ての仮想ページに属するアドレスを指定したライトコマンドを受信した場合、その仮想ページに、プール７０内のいずれかの未割当ての実ページを割り当て、その実ページに、ライトコマンドに付随するデータを書き込む。
【００２３】
外部ストレージ装置は複数あっても良く、同様に、外部ＶＯＬも複数であっても良い。それら複数の外部ＶＯＬは、１つの外部ストレージ装置が有していても良いし、複数の外部ストレージ装置が有していても良い。プール７０には、複数のマップドＶＯＬが含まれても良い。
【００２４】
以下、説明を分かり易くするため、外部ストレージ装置は１つであるとし、且つ、１つの外部ＶＯＬ内のデータを移動することを例に取る。
【００２５】
ホスト計算機１０が、外部ＶＯＬ５０を認識しており、外部ＶＯＬ５０を指定したＩ／Ｏ（Input/Output）コマンドを外部ストレージ装置４０に送信するようになっているとする。この場合、ホスト計算機１０が使用するデータは、外部ＶＯＬ５０に格納されている。外部ＶＯＬ５０に格納されているデータは、例えば、図１に示す通り、データＡ及びデータＢであるとする。データＡ及びデータＢは、それぞれ、実ページの容量以下であるとする。
【００２６】
或る理由により、外部ストレージ装置４０が撤去されることになったとする。「或る理由」は、例えば、外部ストレージ装置４０が初めて稼働した日（以下、導入日時）から一定の期間が過ぎた、或いは、外部ストレージ装置４０でエラーが発生する頻度が所定値より高くなったである。
【００２７】
この場合、外部ＶＯＬ５０内のデータをストレージ装置３０に移動する必要がある。
【００２８】
しかし、外部ＶＯＬ５０から仮想ＶＯＬにデータを移動すると、外部ＶＯＬ５０の容量が大きいと、データ移動に長い時間がかかることになる。
【００２９】
そこで、本実施形態では、下記の手順で、外部ＶＯＬ５０からストレージ装置３０へのデータ移動が完了する。なお、図中のＳとはステップの略である。
【００３０】
（Ｓ１）ストレージ装置４０が、内部ＶＯＬに外部ＶＯＬ５０をマッピングし、外部ＶＯＬ５０がマッピングされたマップドＶＯＬをプール７０に含め、マップドＶＯＬ（プールＶＯＬ３）を２以上の実ページに分割する。なお、ここでは、第１の実ページにデータＡが含まれており、第２の実ページにデータＢが含まれているとする。
【００３１】
（Ｓ２）ストレージ装置４０が、プールＶＯＬ３を仮想ＶＯＬ８０に割り当てる。具体的には、例えば、プールＶＯＬ３と同じ記憶容量の仮想ＶＯＬ８０が用意され、ストレージ装置４０は、仮想ＶＯＬ８０を構成する全ての仮想ページに、プールＶＯＬ３を構成する全ての実ページをそれぞれ割り当てる。
【００３２】
ストレージ装置４０が、ホスト計算機１０に仮想ＶＯＬ８０を提供する。ホスト計算機１０が、外部ＶＯＬ５０に代えて仮想ＶＯＬ８０を認識する。ホスト計算機１０は、外部ＶＯＬ５０のイメージと同じイメージを認識することになる。具体的には、ホスト計算機１０は、仮想ＶＯＬ８０内にデータＡ及びＢが存在することを認識する。仮想ＶＯＬ８０はプールＶＯＬ３を通じて外部ＶＯＬ５０に対応付けられているからである。但し、データＡ及びＢは、実際には、ストレージ装置３０には無く、外部ＶＯＬ５０に存在している。なお、この段落で説明した処理では、例えば、ストレージ装置３０は、外部ＶＯＬ５０の識別情報（例えばＬＵＮ（Logical  Unit  Number））を引き継ぎ、その識別情報を仮想ＶＯＬ８０に割り当てることができる。この場合、ホスト計算機１０は、外部ＶＯＬ５０に対するＩ／ＯのためのＩ／Ｏコマンドで指定したＩ／Ｏ先情報と同じＩ／Ｏ先情報を指定したＩ／Ｏコマンドを送信することで、仮想ＶＯＬ８０に対するＩ／Ｏを行うことができる。Ｉ／Ｏ先情報は、仮想ＶＯＬ８０の識別情報（例えばＬＵＮ）と、仮想ＶＯＬ８０におけるアドレス（例えばＬＢＡ（Logical  Block  Address）とを含む。
【００３３】
なお、（Ｓ２）では、プールＶＯＬ３のうち、有効なデータ（ホスト計算機１０が使用するデータ）が格納されている実ページのみが、その実ページのアドレスに対応するアドレスに属する仮想ページ（仮想ＶＯＬ８０における仮想ページ）に割り当てられても良い。
【００３４】
ホスト計算機１０は、適宜に、仮想ＶＯＬ８０における任意のアドレスを含んだＩ／Ｏ先情報を指定したＩ／Ｏコマンドを送信する。そのＩ／Ｏコマンドを、ストレージ装置３０が受信する。ストレージ装置３０は、そのＩ／Ｏコマンドに従い、仮想ＶＯＬ８０に対するＩ／Ｏを行う。具体的には、例えば、ストレージ装置３０は、以下の処理、
（＊）Ｉ／Ｏコマンドで指定されているＩ／Ｏ先情報が含むアドレスに属する仮想ページ（仮想ＶＯＬ８０における仮想ページ）を特定する、
（＊）特定した仮想ページが未割当ての仮想ページであるか否かを判断する、
（＊）その判断の結果が肯定的であれば、特定した仮想ページに割り当てられている実ページに対するＩ／Ｏを行う（上記（Ｓ２）において、全ての仮想ページにそれぞれ実ページが割り当てられている場合、上記判断の結果が常に肯定的となる）、
（＊）その判断の結果が否定的であり、且つ、Ｉ／Ｏコマンドがライトコマンドであれば、特定した仮想ページに未割当ての実ページを割り当て、割り当てた実ページにデータを書き込む、
（＊）その判断の結果が否定的であり、且つ、Ｉ／Ｏコマンドがリードコマンドであれば、所定のデータ（例えば、全ビットの値がゼロで構成されたデータであるゼロデータ）をホスト計算機１０に送信する、
を行う。
【００３５】
（Ｓ３）ストレージ装置３０は、各実ページの性能（例えば、Ｉ／Ｏ頻度（単位は例えばＩＯＰＳ（I/O  Per  Second））、単位時間当りのデータ転送量、最終Ｉ／Ｏ日時など）を監視する。これにより、仮想ＶＯＬ８０に割り当てられている実ページ毎に、性能がわかる。
【００３６】
（Ｓ４）ストレージ装置３０は、プールＶＯＬ３における割当て済み実ページ毎に、再配置先の実ページを決定する。再配置先の実ページは、プールＶＯＬ３以外のプールＶＯＬ内の実ページである。再配置先は、例えば、割当て済み実ページ（移動元実ページ）の性能に基づいて決定される。
【００３７】
（Ｓ５）ストレージ装置３０は、プールＶＯＬ３における割当て済み実ページ毎に、その割当て済み実ページ内のデータを、決定した再配置先の実ページへと移動させる。図１の例によれば、ストレージ装置３０は、データＡを、外部ＶＯＬ５０から読み出し、そのデータＡを、プールＶＯＬ２内の実ページに移動する。同様に、ストレージ装置３０は、データＢを、外部ＶＯＬ５０から読み出し、そのデータＢを、プールＶＯＬ１内の実ページに移動する。
【００３８】
以上の一連の処理により、外部ＶＯＬ５０に格納されている全てのデータが、プールＶＯＬ３以外の１以上のプールＶＯＬに追い出される。
【００３９】
その後、外部ストレージ装置４０が撤去される。
【００４０】
なお、本実施形態において、撤去の対象は、外部ストレージ装置４０に代えて、ストレージ装置３０内の１以上の物理記憶メディア（例えばＲＡＩＤグループ）であっても良い。この場合、例えば、図１に点線で示すように、ストレージ装置３０が、撤去対象の１以上の物理記憶メディアに基づく通常ＶＯＬ６０を、プール７０に含め、その通常ＶＯＬ６０を仮想ＶＯＬ８０に割り当てても良い。このケースでは、前述した説明のうち、「外部ストレージ装置４０」を「ストレージ装置３０が有する１以上の物理記憶メディア」と読み替え、「外部ＶＯＬ５０」と「プールＶＯＬ３」との組合せを「通常ＶＯＬ６０」と読み替えることができる。
【００４１】
また、本実施形態では、ストレージ装置３０は、以下の処理、
（ａ）物理記憶デバイス（例えば、外部ストレージ装置４０、又は、１以上の物理記憶メディア）を外すことを意味するイベントを検出する、
（ｂ）そのイベントを検出したときに、そのイベントに対応する物理記憶デバイスに基づく論理ボリューム（例えば、外部ＶＯＬ、或いは、通常ＶＯＬ）について、Ｓ１〜Ｓ５を行う、
を行っても良い。イベントは、例えば、下記のうちの少なくとも１つ、
（ｘ）ストレージ装置３０が、外される物理記憶デバイスの識別情報を例えば管理計算機から受信する、
（ｙ）ストレージ装置３０が、物理記憶デバイス毎に、物理記憶デバイスの寿命に関する状況を定期的にチェックしていて、そのチェックの結果として、或る物理記憶デバイスの寿命が近いことを判断する、
で良い。（ｙ）のケースでは、「或る物理記憶デバイス」が、「外される物理記憶デバイス」である。なお、「寿命が近い」とは、例えば、物理記憶デバイスの導入時期から一定期間が経過した、或いは、物理記憶デバイスでエラーの発生頻度が所定頻度より高い、で良い。
【００４２】
また、本実施形態において、プール７０に含められる論理ボリュームの基になる１以上の物理記憶メディア、又は、その論理ボリュームにマッピングされる外部ＶＯＬを有する外部ストレージ装置は、必ずしも、外される対象でなくても良い。例えば、単に、例えば管理計算機から指定された１以上の物理記憶メディア、或いは、外部ストレージ装置であっても良い。
【００４３】
以下、本実施形態を詳細に説明する。なお、以下の説明では、物理記憶メディアとして、メディアドライブ（以下、ドライブ）を例に取る。
【００４４】
図２は、本発明の一実施形態に係るストレージシステムの構成例を示す。
【００４５】
ストレージシステムは、ホスト計算機１０と、管理計算機２０と、ストレージ装置３０と、外部ストレージ装置４０とを有する。
【００４６】
ホスト計算機１０は、データを読み書きするためのＩ／Ｏコマンドを発行する機能を有する計算機である。ホスト計算機１０は、ストレージ装置３０に接続される。また、ホスト計算機１０は、ホストインタフェース４１を介して外部ストレージ装置４０に接続される。ホスト計算機１０が発行したＩ／Ｏコマンドは、外部ストレージ装置４０又はストレージ装置３０が受信する。
【００４７】
管理計算機２０は、ストレージ装置３０及び外部ストレージ装置４０を管理する機能を有する計算機である。管理計算機２０は、例えば、入力装置（例えばキーボード及びマウス）２１と、記憶資源（例えばメモリ）２２と、出力装置（例えば表示装置）２３と、それらに接続されたプロセッサ（例えばＣＰＵ（Central Processing Unit））２４とを有する。
【００４８】
ストレージ装置３０は、通信インタフェース装置と、複数のドライブ３９と、それらに接続されたコントローラとを有する。
【００４９】
通信インタフェース装置として、例えば、ホスト計算機１０に接続されるホストインタフェース３１と、管理計算機２０に接続される管理インタフェース３２と、外部ストレージ装置４０に接続される外部ストレージインタフェース３３とがある。
【００５０】
複数種類のドライブ３９がある。具体的には、例えば、ＳＳＤと、ＳＡＳに従うＨＤＤ（以下、ＳＡＳ）と、ＳＡＴＡに従うＨＤＤ（以下、ＳＡＴＡ）とがある。１以上の同種のドライブ３９でＲＡＩＤグループが構成されて良い。そのＲＡＩＤグループを基に、論理ボリューム（通常ＶＯＬ）が形成されて良い。論理ボリュームの種類及びＩ／Ｏ性能は、ＲＡＩＤグループを構成するドライブ３９の種類及びＩ／Ｏ性能に依存して良い。
【００５１】
コントローラは、例えば、記憶資源（例えば、キャッシュメモリ（ＣＭ）３６と、共有メモリ（ＳＭ）３７）と、ドライブインタフェース３８と、スイッチ（ＳＷ）３４を通じてそれらに接続されたプロセッサ３５とを有する。
【００５２】
ＳＷ３４に、複数の要素３１、３２、３３、３５、３６、３７及び３８が接続されている。ＳＷ３４は、ＳＷ３４に接続されている要素間の接続を切り替える。なお、ＳＷ３４に代えて、内部バス等、他種の接続部が採用されても良い。
【００５３】
ＣＭ３６は、ドライブ３９に入出力されるデータを一時的に記憶する。
【００５４】
ＳＭ３７は、後述する種々のプログラム及びテーブルを記憶する。
【００５５】
ドライブインタフェース３８には、複数のドライブ３９が接続される。ドライブインタフェース３８を通じて、ＣＭ３６からドライブ３９へのデータの書き込み、及び、ドライブ３９からＣＭ３６へのデータの読み出しが行われる。
【００５６】
外部ストレージ装置４０の構成の説明は、ストレージ装置３０とほぼ同じで良い。すなわち、外部ストレージ装置４０も、通信インタフェース装置と、複数のドライブ３９と、それらに接続されたコントローラとを有して良い。通信インタフェース装置として、例えば、ホスト計算機１０に接続されるホストインタフェース４１と、ストレージ装置３０に接続されるストレージインタフェース４３とがあって良い。また、コントローラは、記憶資源（例えば、ＣＭ４６と、ＳＭ４７）と、ドライブインタフェース４８と、ＳＷ４４を通じてそれらに接続されたプロセッサ４５とを有して良い。
【００５７】
図３は、メモリ２２、ＳＭ３７及びＳＭ４７に記憶されているプログラム及びテーブルの一例を示す。
【００５８】
管理計算機２０のメモリ２２には、ユーザ指示プログラム２２１が記憶される。ユーザ指示プログラム２２１は、入力装置２１を介して入力された、ユーザからの指示を、ストレージ装置３０に送信する。
【００５９】
ストレージ装置３０のＳＭ３７には、テーブルとして、例えば、内部ＶＯＬテーブル４００、外部ＶＯＬテーブル５００、ストレージ装置管理テーブル６００、仮想マッピング管理テーブル７００、プールテーブル８００、性能管理テーブル９００、追い出し進捗テーブル１０００、及び、再配置対象テーブル１１００がある。また、ＳＭ３７には、コンピュータプログラムとして、例えば、モニタリングプログラム３７１１、再配置プログラム３７２１、ＶＯＬ管理プログラム３７１３、仮想管理プログラム３７１４、外部ストレージ装置プログラム３７１５、及び、追い出しプログラム３７１６がある。これらのプログラムは、ストレージ装置３０内のプロセッサ３５で実行される。
【００６０】
モニタリングプログラム３７１１は、モニタリング対象のプールＶＯＬの各実ページの性能をモニタリングする。本実施形態では、実ページの性能は、Ｉ／Ｏ頻度（単位はＩＯＰＳ（Input Output per Second））である。なお、実ページの性能としては、Ｉ／Ｏ頻度に代えて又は加えて、単位時間当りのデータ転送量など、他種の性能を採用することができる。
【００６１】
再配置プログラム３７２１は、プールＶＯＬ内の実ページ内のデータを他のプールＶＯＬ内の実ページに再配置する（移動する）。
【００６２】
ボリューム管理プログラム３７１３は、ストレージ装置３０が有する複数の内部ボリュームを管理する。
【００６３】
仮想管理プログラム３７１４は、仮想マッピングテーブル７００を基に、実ページと仮想ページとの対応付けを管理する。
【００６４】
外部ストレージ装置プログラム３７１５は、外部ＶＯＬテーブル５００を基に、外部ストレージ装置４０及び外部ＶＯＬを管理する。
【００６５】
追い出しプログラム３７１６は、追い出し進捗テーブル１０００及び再配置対象テーブル１１００を基に、データ追い出し処理を実行する。
【００６６】
外部ストレージ装置４０のＳＭ４７は、ストレージ装置管理プログラム４７１を記憶する。ストレージ装置管理プログラム４７１は、ストレージ装置３０を管理するためのプログラムである。
【００６７】
図４は、内部ＶＯＬテーブル４００の構成例を示す。
【００６８】
内部ＶＯＬテーブル４００は、ストレージ装置３０が有する全ての内部ＶＯＬに関する情報を有する。具体的には、例えば、内部ＶＯＬテーブル４００は、内部ＶＯＬ毎に、論理ＶＯＬ  ＩＤ４０１と、ＶＯＬ種別４０２と、ＲＡＩＤグループＩＤ４０３と、プールＩＤ４０４と、ドライブ種別４０５と、回転数４０６と、階層順位４０７と、外部ＶＯＬフラグ４０８と、ストレージＩＤ４０９とを有する。
【００６９】
論理ＶＯＬ  ＩＤ４０１は、内部ＶＯＬのＩＤである。
【００７０】
ＶＯＬ種別４０２は、内部ＶＯＬの種別を示す情報である。内部ＶＯＬの種別としては、前述したように、通常ＶＯＬ、仮想ＶＯＬ（シンプロビジョニングに従う仮想的な論理ＶＯＬ）、及びプールＶＯＬの３種類がある。ＶＯＬ種別「１」は、通常ＶＯＬを意味し、ＶＯＬ種別「２」は、仮想ＶＯＬを意味し、ＶＯＬ種別「３」は、プールＶＯＬを意味する。なお、プールＶＯＬとしては、プールのメンバとしての通常ＶＯＬがあっても良いし、マップドＶＯＬ（外部ＶＯＬがマッピングされた仮想的な論理ＶＯＬ）があっても良い。また、内部ＶＯＬの種類として、プールに含まれていないマップドＶＯＬがあっても良い。
【００７１】
ＲＡＩＤグループＩＤ４０３は、内部ＶＯＬの基になっているＲＡＩＤグループのＩＤである。
【００７２】
プールＩＤ４０４は、仮想ＶＯＬとしての内部ＶＯＬが関連付けられているプールのＩＤ、或いは、プールＶＯＬとしての内部ＶＯＬを含んでいるプールのＩＤである。
【００７３】
ドライブ種別４０５は、内部ＶＯＬの基となっているドライブ３９の種類を示す情報である。
【００７４】
回転数４０６は、内部ＶＯＬの基となっているドライブの回転数を示す情報である。
【００７５】
階層順位４０７は、内部ＶＯＬを含んだ階層の順位を示す情報である。階層順位が「１」の内部ＶＯＬは、一番高い階層に含まれている内部ＶＯＬである。本実施形態では、階層順が上位である階層ほど、Ｉ／Ｏ性能の高い階層である。階層には、その階層の階層順位（換言すれば、Ｉ／Ｏ性能の範囲）に適合する内部ＶＯＬが含まれる。
【００７６】
外部ＶＯＬフラグ４０８は、内部ＶＯＬがマップドＶＯＬ（外部ＶＯＬがマッピングされた論理ＶＯＬ）かどうかを示す。外部ＶＯＬフラグ「Ｏｎ」は、論理ＶＯＬがマップドＶＯＬであることを意味し、外部ＶＯＬフラグ「Ｏｆｆ」は、論理ＶＯＬがマップドＶＯＬでは無いことを意味する。
【００７７】
ストレージＩＤ４０９は、内部ＶＯＬを有するストレージ装置のＩＤ（例えばシリアル番号）である。内部ＶＯＬがマップドＶＯＬであれば、ストレージＩＤ４０９は、マップドＶＯＬにマッピングされている外部ＶＯＬを有する外部ストレージ装置のＩＤである。
【００７８】
図５は、外部ＶＯＬテーブル５００の構成例を示す。
【００７９】
外部ＶＯＬテーブル５００は、外部ＶＯＬに関する情報を有するテーブルである。具体的には、例えば、外部ＶＯＬ管理テーブル５００は、外部ＶＯＬ毎に、外部ストレージＩＤ５０１と、外部ＶＯＬＩＤ５０２と、外部ストレージグループ５０３と、論理ＶＯＬＩＤ５０４と、ドライブ種別５０５と、回転数５０６とを有する。
【００８０】
外部ストレージＩＤ５０１は、外部ＶＯＬを有する外部ストレージ装置４０のＩＤ（例えばシリアル番号）である。
【００８１】
外部ＶＯＬＩＤ５０２は、外部ＶＯＬのＩＤである。
【００８２】
外部ストレージグループＩＤ５０３は、外部ＶＯＬの基になっているＲＡＩＤグループのＩＤである。
【００８３】
論理ＶＯＬ  ＩＤ５０４は、外部ＶＯＬがマッピングされているマップドＶＯＬのＩＤである。
【００８４】
ドライブ種別５０５は、外部ＶＯＬの基になっているドライブ４９の種別を示す情報である。
【００８５】
回転数５０６は、外部ＶＯＬの基になっているドライブ４９の回転数を示す情報である。
【００８６】
図６は、ストレージ装置管理テーブル６００の構成例を示す。
【００８７】
ストレージ装置管理テーブル６００は、ストレージ装置３０及び外部ストレージ装置４０に関する情報を有する。具体的には、例えば、ストレージ装置管理テーブル６００は、ストレージ装置毎に、ストレージＩＤ６０１と、ロケーション６０２と、データセンタ６０３と、機種６０４と、メーカ６０５と、導入日時６０６とを有する。
【００８８】
ストレージＩＤ６０１は、ストレージ装置３０又は外部ストレージ装置４０のＩＤである。なお、ストレージＩＤ６０１の欄における所定のマーク「◎」は、ストレージ装置がストレージ装置３０であることを意味する。ストレージＩＤ６０１の欄に所定のマーク「◎」が付与されていないストレージ装置は、外部ストレージ装置４０である。
【００８９】
ロケーション６０２は、ストレージ装置が設置されている場所を示す情報である。なお、ロケーション６０２に代えて、ストレージ装置３０からの距離を表す情報が採用されても良い。
【００９０】
データセンタ６０３は、ストレージ装置を有するデータセンタの識別情報である。
【００９１】
機種６０４は、ストレージ装置の機種を示す情報である。
【００９２】
メーカ６０５は、ストレージ装置のメーカの識別情報（例えば記号）である。
【００９３】
導入日時６０６は、ストレージ装置が導入された日時を示す情報である。
【００９４】
図７は、仮想マッピングテーブル７００の構成例を示す。
【００９５】
仮想マッピングテーブル７００は、実ページと仮想ページとの対応関係を示す。仮想マッピングテーブル７００は、プールＶＯＬ毎に存在する。
【００９６】
仮想マッピングテーブル７００は、例えば、実ページ毎に、実ページＩＤ７０１と、仮想ページＩＤ７０２とを有する。
【００９７】
実ページＩＤ７０１は、実ページのＩＤである。
【００９８】
仮想ページＩＤ７０２は、実ページに割り当てられている仮想ページのＩＤである。仮想ページのＩＤは、その仮想ページを有する仮想ＶＯＬのＩＤを含んで良い。それにより、どの仮想ＶＯＬのどの仮想ページに実ページが割当てられているかがわかる。
【００９９】
図８は、プールテーブル８００の構成例を示す。
【０１００】
プールテーブル８００は、各プールＶＯＬに関する情報を有する。具体的には、例えば、プールテーブル８００は、プールＶＯＬ毎に、プールＩＤ８０１と、プールＶＯＬ  ＩＤ８０２と、フォーマット禁止フラグ８０３と、追い出しフラグ８０４と、モニタリングフラグ８０５とを有する。
【０１０１】
プールＩＤ８０１は、プールＶＯＬを含んだプールのＩＤである。
【０１０２】
プールＶＯＬ  ＩＤ８０２は、プールＶＯＬのＩＤである。
【０１０３】
フォーマット禁止フラグ８０３は、プールＶＯＬがフォーマット禁止対象であるか否かを示すフラグである。フォーマット禁止フラグ８０３「Ｏｎ」は、プールＶＯＬがフォーマット禁止対象であること、及び、再配置処理においてプールＶＯＬから他のプールＶＯＬにデータが移動されないことを意味する。論理ＶＯＬがフォーマット禁止対象の場合、その論理ＶＯＬがプールに含まれても、その論理ＶＯＬはフォーマットされない。このため、その論理ＶＯＬがプールに含まれる前から有しているデータは、そのまま残る。故に、例えば、フォーマット禁止対象のマップドＶＯＬがプールに含められて仮想ＶＯＬ８０に割り当てられた場合（すなわち、図１に示した（Ｓ１）及び（Ｓ２）が行われた場合）、ホスト計算機１０は、仮想ＶＯＬ８０を指定したリードコマンドを送信することで、プールに含まれたマップドＶＯＬ内のデータ（マップドＶＯＬにマッピングされている外部ＶＯＬ内のデータ）を読み出すことができる。また、再配置処理では、フォーマット禁止フラグ８０３「Ｏｎ」のプールＶＯＬ内の実ページが、移動元の実ページの条件に適合しても、フォーマット禁止フラグ８０３「Ｏｎ」のプールＶＯＬ内の実ページが移動元の実ページとして決定されることは無い。
【０１０４】
追い出しフラグ８０４は、プールＶＯＬが追い出し対象であるか否かを示すフラグである。追い出しフラグ８０４「Ｏｎ」は、プールＶＯＬが追い出し対象であることを意味する。追い出しフラグ８０４「Ｏｎ」のプールＶＯＬ内の実ページには、再配置処理において、他のプールＶＯＬ内の実ページからデータが移動されない。すなわち、追い出しフラグ「Ｏｎ」のプールＶＯＬ内の実ページは、再配置処理においてデータの再配置先とされることがない。
【０１０５】
モニタリングフラグ８０５は、プールＶＯＬがモニタリング対象か否かを示すフラグである。モニタリングフラグ８０５「Ｏｎ」は、プールＶＯＬがモニタリング対象であることを意味する。
【０１０６】
フォーマット禁止対象か否か、追い出し対象か否か、及び、モニタリング対象であるか否かを示す情報は、上述のようにフラグに限らず、他種の情報でも良い。
【０１０７】
図９は、性能管理テーブル９００の構成例を示す。
【０１０８】
性能管理テーブル９００は、モニタリングフラグ８０５「Ｏｎ」のプールＶＯＬについてのモニタリングの結果を表す情報を有する。性能管理テーブル９００は、モニタリングフラグ８０５「Ｏｎ」のプールＶＯＬ毎に存在する。
【０１０９】
性能情報テーブル９００は、例えば、実ページ毎に、実ページＩＤ９０１と、日時９０２と、性能９０３とを有する。
【０１１０】
実ページＩＤ９０１は、実ページのＩＤである。
【０１１１】
日時９０２は、実ページをモニタリングした最近の日時を示す情報である。
【０１１２】
性能９０３は、実ページの性能を示す情報である。性能は、例えば、前述したようにＩ／Ｏ頻度（単位はＩＯＰＳ）であっても良いし、Ｉ／Ｏ頻度に代えて又は加えて、単位時間当りのデータ転送量及びレスポンスタイムのうちの少なくとも１つが採用されても良い。
【０１１３】
なお、性能は、実ページ毎にモニタリングされることに代えて、仮想ページ毎にモニタリングされても良い。すなわち、性能を示す情報は、仮想ページ毎に記録されても良い。
【０１１４】
図１０は、追い出し進捗テーブル１０００の構成例を示す。
【０１１５】
追い出し進捗テーブル１０００は、追い出しフラグ８０４「Ｏｎ」のプールＶＯＬ毎に存在する。
【０１１６】
追い出し進捗テーブル１０００は、例えば、実ページ毎に、実ページＩＤ１００１と、再配置先実ページＩＤ１００２と、追い出し完了フラグ１００３とを有する。
【０１１７】
実ページＩＤ１００１は、実ページのＩＤである。
【０１１８】
再配置先実ページＩＤ１００２は、実ページに格納されているデータの移動先（再配置先）となる実ページのＩＤである。典型的には、移動先の実ページは、移動元の実ページを有するプールＶＯＬとは異なるプールＶＯＬ内の実ページである。具体的には、例えば、移動先の実ページは、移動元の実ページを有するプールＶＯＬを含んだ階層とは異なる階層に含まれるプールＶＯＬ内の実ページである。
【０１１９】
追い出し完了フラグ１００３は、実ページ内のデータの移動（追い出し）が完了したか否かを示すフラグである。追い出し完了フラグ１００３「Ｏｎ」は、データの移動が完了していることを意味し、追い出し完了フラグ１００３「Ｏｆｆ」は、データの移動が完了していないことを意味する。
【０１２０】
図１１は、再配置対象テーブル１１００の構成例を示す。
【０１２１】
再配置対象テーブル１１００は、モニタリング対象のプールＶＯＬを含んだプールにおける各実ページの優先順位を示す。再配置対象テーブル１１０００は、モニタリングフラグ８０５「Ｏｎ」のプールＶＯＬを含んだプール毎に存在する。
【０１２２】
再配置対象テーブル１１０００は、例えば、実ページＩＤ１１０１と、優先順位１１０２とを有する。
【０１２３】
実ページＩＤ１１０１は、実ページのＩＤである。
【０１２４】
優先順位１１０２は、実ページの優先順位を表す情報である。実ページの優先順位は、その実ページを含んだプール内の実ページ毎の性能（モニタリング結果）に基づいて付与される。実ページの優先順位は、例えば、その実ページに対応する性能９０４（性能管理テーブル９００（図９参照）における情報）が表す性能が優れているほど、高い優先順位となる。優先順位が高いほど小さい値が付与される。
【０１２５】
以下、本実施形態で行われる処理を説明する。
【０１２６】
図１２は、本実施形態で行われる処理の全体の流れの一例を示すフローチャートである。
【０１２７】
ストレージ装置３０は、外部ＶＯＬを内部ＶＯＬにマッピングする（Ｓ１２０１）。
【０１２８】
また、ストレージ装置３０は、プールを作成する（Ｓ１２０２）。
【０１２９】
そして、ストレージ装置３０は、外部ＶＯＬがマッピングされた内部ＶＯＬ（マップドＶＯＬ）を、プールに含める（Ｓ１２０３）。プールに含められたマップドＶＯＬは、フォーマット禁止対象であり、追い出し対象であり、且つモニタリング対象である。
【０１３０】
ストレージ装置３０は、仮想ＶＯＬを作成し、その仮想ＶＯＬにプール内のマップドＶＯＬを割り当てる（Ｓ１２０４）。
【０１３１】
ストレージ装置３０は、仮想ＶＯＬに割り当てられたマップドＶＯＬ（プールＶＯＬ）の各実ページの性能をモニタリングする（Ｓ１２０５）。
【０１３２】
ストレージ装置３０は、管理計算機２０から追い出し指示を受信する（Ｓ１２０６）。追い出し指示は、例えば、ストレージ装置のＩＤ、仮想ＶＯＬ及び／又はプールＶＯＬのＩＤ、及び、ポリシー情報を含む。ストレージＩＤと、仮想ＶＯＬ及び／又はプールＶＯＬのＩＤから、追い出し対象とするプールＶＯＬが特定される。また、ポリシー情報を基に、追い出し対象のプールＶＯＬ内の実ページ（有効なデータを有する実ページ）毎に、移動先の実ページが決定される。ここで、「ポリシー情報」とは、移動先の実ページの決定に関するポリシーを表す情報である。ポリシー情報は、例えば、下記の情報、
（＊）移動先の実ページの決定の際に参酌する実ページ属性（例えば、実ページの性能、実ページを有するストレージ装置のデータセンタ、ロケーション、或いは導入日時）
（＊）移動先の実ページの属性の条件（例えば、データセンタのＩＤ、ロケーションを表す情報、或いは、ストレージ装置３０内の物理記憶メディアに基づく実ページを移動先の実ページとして良いか否か）、
（＊）ゼロデータを破棄するか否か、
のうちの少なくとも１つを含む。
【０１３３】
ストレージ装置３０は、ポリシー情報に従って、追い出し対象のプールＶＯＬ内の各実ページについて、データの移動先（再配置先）を決定する（Ｓ１２０７）。なお、ポリシー情報が、ゼロデータを破棄することを意味する情報を含んでいる場合、追い出し対象プールＶＯＬにおける、ゼロデータのみが格納されている実ページについては、その実ページ内のゼロデータが破棄され（その実ページは、移動元とされることなく、未割当ての実ページとして管理され）、移動先の実ページは決定されない。
【０１３４】
ストレージ装置３０は、追い出し対象のプールＶＯＬ内の各移動元実ページから、その実ページについて決定した移動先の実ページに、データを移動（再配置）する（Ｓ１２０８）。追い出し対象のプールＶＯＬがマップドＶＯＬの場合、外部ＶＯＬにおける、移動元実ページに対応した領域から、移動先の実ページに、データが移動する。
【０１３５】
追い出し対象のプールＶＯＬから全ての有効なデータが追い出された後（各移動元実ページについてデータの移動が完了した後）、追い出し対象のプールＶＯＬにマッピングされている外部ＶＯＬを有する外部ストレージ装置４０が撤去される（Ｓ１２０９）。なお、追い出し対象のプールＶＯＬが、ストレージ装置３０が有する１以上のドライブ３９に基づくＶＯＬであれば、その１以上のドライブ３９が撤去される。
【０１３６】
図１３は、マッピング処理の流れを示すフローチャートである。マッピング処理は、前述のＳ１２０１で行われる処理である。
【０１３７】
ユーザ指示プログラム２２１は、外部ストレージ装置管理プログラム３７１５に、外部ストレージ装置４０を認識する指示（以下、外部ストレージ認識指示）を送信する（Ｓ１３０１）。
【０１３８】
外部ストレージ装置管理プログラム３７１５は、外部ストレージ認識指示を受信し、その指示に従い、ストレージ装置３０に接続されている全ての外部ストレージ装置を特定するよう、外部ストレージ検索処理を行う（Ｓ１３０２）。外部ストレージ装置管理プログラム３７１５は、その検索処理では、所定の問合せを発行する。
【０１３９】
その発行を受けた装置が外部ストレージ装置であれば、その外部ストレージ装置におけるストレージ装置管理プログラム４７１が、問合せの発行元のストレージ装置３０に応答を返す（Ｓ１３０３）。その応答は、その応答を返す外部ストレージ装置４０に関する情報（例えば、外部ストレージ装置４０の識別情報、及び、外部ストレージ装置４０が有する外部ＶＯＬの識別情報）を含んで良い。
【０１４０】
応答を受けたストレージ装置３０内の外部ストレージ装置管理プログラム３７１５は、ユーザ指示プログラム２２１に、外部ストレージ認識指示に対する応答を返す（Ｓ１３０４）。その応答は、外部ストレージ装置４０が返した応答が有する情報の全て又は一部（例えば、応答を返した各外部ストレージ装置４０の識別情報、及び、その外部ストレージ装置４０が有する外部ＶＯＬの識別情報）を含んで良い。
【０１４１】
ユーザ指示プログラム２２１は、応答を受信することにより、外部ストレージ装置４０を認識する。ユーザ指示プログラム２２１は、外部ストレージ装置管理プログラム３７１５に対して、外部ＶＯＬをマッピングする指示（以下、マッピング指示）を出す（Ｓ１３０５）。マッピング指示は、撤去対象の外部ストレージ装置４０の識別情報を含んで良い。
【０１４２】
外部ストレージ装置管理プログラム３７１５は、マッピング指示を受信し、その指示に従い、その指示から特定される外部ストレージ装置４０の全ての外部ＶＯＬ（或いは、その指示から特定された外部ＶＯＬ）を、内部ＶＯＬにマッピングする（Ｓ１３０６）。このＳ１３０６で、例えば、外部ストレージ装置管理プログラム３７１５は、下記の処理、
（＊）外部ＶＯＬテーブル５００（図５参照）に、新たにレコードを追加し、マッピングされた外部ＶＯＬに関する情報を、その追加したレコードに登録する、
（＊）内部ＶＯＬテーブル４００に、新たにレコードを追加し、マップドＶＯＬに関する情報を、その追加したレコードに登録する、
（＊）外部ＶＯＬがマッピングされた内部ＶＯＬに対応する外部ＶＯＬフラグ４０６（内部ＶＯＬテーブル４００（図４）におけるフラグ４０６）を「Ｏｎ」に更新する、
を行う。
【０１４３】
図１４は、プール作成処理の流れを示すフローチャートである。プール作成処理は、前述のＳ１２０２で行われる処理である。
【０１４４】
ユーザ指示プログラム２２１は、仮想管理プログラム３７１４に対してプールを作成する指示（以下、プール作成指示）を送信する（Ｓ１４０１）。
【０１４５】
仮想管理プログラム３７１４は、プール作成指示を受信し、その指示に従い、プールテーブル８００（図８参照）を更新する（Ｓ１４０２）。具体的には、例えば、仮想管理プログラム３７１４は、新たなプールに対応するレコードをプールテーブル８００に追加する。なお、追加されたレコードは、プールＶＯＬが追加されていなければブランクで良い。
【０１４６】
図１５は、プールＶＯＬ登録処理の流れを示すフローチャートである。プールＶＯＬ登録処理は、前述のＳ１２０２で行われて良い。
【０１４７】
ユーザ指示プログラム２２１は、仮想管理プログラム３７１４に、プールにＶＯＬを追加する指示（以下、プールＶＯＬ登録指示）を送信する（Ｓ１５０１）。この指示は、プールに含まれていないＶＯＬをプールに追加する指示である。この時、プールＶＯＬ登録指示は、１以上の追加対象のＶＯＬ（図１５の説明において「追加ＶＯＬ」）に関する情報を含んで良い。追加ＶＯＬが、通常ＶＯＬであるかマップドＶＯＬであるかを問わず、フォーマット禁止フラグ８０３を「Ｏｎ」に設定したい追加ＶＯＬがあれば、少なくとも１つの追加ＶＯＬについて、フォーマット禁止フラグ８０３を「Ｏｎ」とすることを意味する情報（例えば、仮想ＶＯＬとしてホストに提供することが指定された追加ＶＯＬであることを表す情報）がプールＶＯＬ登録指示に含まれて良い。また、プールＶＯＬ登録指示は、各追加ＶＯＬについて、モニタリングフラグ８０５を「Ｏｎ」とするか「Ｏｆｆ」とするかを表す情報を含んで良い。
【０１４８】
仮想管理プログラム３７１４は、プールＶＯＬ登録指示を受信し、その指示に従い、プールテーブル８００（図８参照）を更新する（Ｓ１５０２）。この段階では、プールＶＯＬ登録指示に従う各追加ＶＯＬのレコードがプールテーブル８００に追加され、各レコードに、そのレコードに対応する追加ＶＯＬの情報（プールＶＯＬ登録指示に従う情報）が登録される。これにより、追加ＶＯＬがプールＶＯＬとなる。なお、追加ＶＯＬは２以上の実ページに分割される。また、フォーマット禁止フラグ８０３を「Ｏｎ」が指定されているＶＯＬについては、フォーマット禁止フラグ８０３として「Ｏｎ」が登録される。なお、この段階では、プールＶＯＬ登録指示に従う全てのＶＯＬについて、追い出しフラグ８０４は「Ｏｆｆ」で良い。後述の追い出し処理が始まった場合に、追い出し対象のプールＶＯＬ（例えば、マップドＶＯＬでありフォーマット禁止対象であるＶＯＬ）について、追い出しフラグ８０４が「Ｏｎ」にされる。また、マップドＶＯＬに相当するＶＯＬの追加であれば、仮想管理プログラム３７１４は、そのＶＯＬについて、プールＶＯＬ登録指示でフォーマット禁止フラグ８０３を「Ｏｎ」とすることが指定されていなくても、フォーマット禁止フラグ８０３を「Ｏｎ」としても良い。
【０１４９】
仮想管理プログラム３７１４は、追加されたプールＶＯＬについて、フォーマット禁止フラグ８０３が「Ｏｎ」に設定されているかをチェックする（Ｓ１５０３）。フォーマット禁止フラグ８０３が「Ｏｎ」に設定されているプールＶＯＬについて（Ｓ１５０３：Ｙｅｓ）、処理が終了する。
【０１５０】
フォーマット禁止フラグ８０３が「Ｏｆｆ」に設定されているプールＶＯＬについて（Ｓ１５０３：Ｎｏ）、仮想管理プログラム３７１４は、そのプールＶＯＬをフォーマットする指示をボリューム管理プログラム４７１に送信し、そのプログラム４７１が、その指示を受信し、その指示に従い、そのプールＶＯＬをフォーマットする（Ｓ１５０４）。
【０１５１】
図１６は、仮想ＶＯＬ登録処理の流れを示すフローチャートである。仮想ＶＯＬ登録処理は、前述のＳ１２０４で行われて良い。
【０１５２】
ユーザ指示プログラム２２１は、仮想管理プログラム３７１４に対し、仮想ＶＯＬを登録する指示（以下、仮想ＶＯＬ登録指示）を送信する（Ｓ１６０１）。
【０１５３】
仮想管理プログラム３７１４は、仮想ＶＯＬ登録指示を受信し、その指示が、フォーマット禁止フラグ８０３が「Ｏｎ」のプールＶＯＬを割り当てることを意味する情報を含んでいるかを判断する（Ｓ１６０２）。
【０１５４】
Ｓ１６０２の判断の結果が肯定的の場合（Ｓ１６０２：Ｙｅｓ）、仮想管理プログラム３７１４は、プールＶＯＬのＩＤの問合せをユーザ指示プログラム２２１に送信する（Ｓ１６０３）。
【０１５５】
ユーザ指示プログラム２２１は、問合せを受信し、その問合せに対して、フォーマット禁止フラグ８０３が「Ｏｎ」に設定されているプールＶＯＬのＩＤを含んだ応答を仮想管理プログラム３７１４に送信する（Ｓ１６０４）。そのＩＤは、例えば、ユーザから指定されたＩＤである。
【０１５６】
仮想管理プログラム３７１４は、応答を受信し、仮想ＶＯＬ登録指示に従う仮想ＶＯＬの全ての仮想ページに、受信した応答から特定されるプールＶＯＬを構成する全ての実ページをそれぞれ割り当てる（Ｓ１６０６）。その際、仮想管理プログラム３７１４は、仮想マッピングテーブル７００（図７参照）を更新する。
【０１５７】
一方、Ｓ１６０２の判断の結果が否定的の場合（Ｓ１６０２：Ｎｏ）処理が終了する。この結果、データが格納されていない仮想ＶＯＬが作成されたことになる。
【０１５８】
なお、この処理において、例えば、仮想ＶＯＬ登録指示が、仮想ＶＯＬに割り当てるプールＶＯＬのＩＤを含んでいて良い。この場合、仮想管理プログラム３７１４は、Ｓ１６０２〜Ｓ１６０４を行うことなく、Ｓ１６０５を行って良い。
【０１５９】
図１７Ａは、モニタリング有効化処理の流れを示すフローチャートである。
【０１６０】
ユーザ指示プログラム２１１が、モニタリングを有効化する指示（以下、有効化指示）を仮想管理プログラム３７１４に送信する（Ｓ１７０１）。その指示は、モニタリング対象のＶＯＬのＩＤを含んで良い。
【０１６１】
仮想管理プログラム３７１４は、有効化指示を受信し、この指示に従い、この指示から特定されるプールＶＯＬのモニタリングフラグ８０５を「Ｏｎ」に設定する（Ｓ１７０２）。
【０１６２】
モニタリングプログラム３７１１は、モニタリングフラグ８０５が「Ｏｎ」のプールＶＯＬをプールテーブル８００から特定し、そのプールＶＯＬを構成する実ページ毎の性能のモニタリングを開始する（Ｓ１７０３）。
【０１６３】
モニタリングプログラム３７１１は、モニタリング結果に基づき、性能テーブル９００（図９参照）の性能９０３を更新する。
【０１６４】
図１７Ｂは、モニタリング無効化処理の流れを示すフローチャートである。
【０１６５】
ユーザ指示プログラム２１１が、モニタリングを無効化する指示（以下、無効化指示）を仮想管理プログラム３７１４に送信する（Ｓ１７１１）。その指示は、モニタリングの非対象とするＶＯＬのＩＤを含む。
【０１６６】
仮想管理プログラム３７１４は、無効化指示を受信し、この指示に従い、この指示から特定されるプールＶＯＬのモニタリングフラグ８０５を「Ｏｆｆ」に設定する（Ｓ１７１２）。
【０１６７】
モニタリングプログラム３７１１は、モニタリングフラグ８０５が「Ｏｆｆ」のプールＶＯＬについてモニタリングを終了する（Ｓ１７１３）。
【０１６８】
図１８は、ストレージ装置単位の追い出し処理の流れを示すフローチャートである。この追い出し処理は、前述のＳ１２０６〜Ｓ１２０８に含まれる。
【０１６９】
ユーザ指示プログラム２２１は、追い出し指示を追い出しプログラム３７１６に送信する（Ｓ１８０１）。この指示は、追い出し対象（データの追い出し元（移動元））となるストレージ装置のＩＤ（例えばシリアル番号）と、再配置のポリシーに関する情報（ポリシー情報）とを含んで良い。ポリシー情報は、移動先の実ページに関する属性の条件と、移動元の実ページがゼロデータのみを格納していればその移動元の実ページについてはデータ追い出しを非実行としてゼロデータ破棄を行うかどうかとのうちの少なくとも一方を含んで良い。移動先の実ページに関する属性の条件は、例えば、下記の少なくとも１つ、
（＊）移動先の実ページを、移動元の実ページの性能（ＩＯＰＳ）に属する実ページとするか否か（つまり、性能に基づいた再配置処理（実ページ間のデータ移動）を行うか否か）、
（＊）移動先の実ページを含んだストレージ装置のメーカ、データセンタ、ロケーション、ＩＤ（例えばシリアル番号）、機種及び導入日時のうちの少なくとも１つに関する条件、
（＊）移動先の実ページの基になっているドライブの種類及び／又は回転数に関する条件、
（＊）ストレージ装置３０を移動先とするか否か、
を表す情報を含んで良い。なお、これは、ＶＯＬ単位の追い出し処理（後の図１９参照）でも同様である。
【０１７０】
追い出しプログラム３７１６は、追い出し指示を受信し、その指示に従い、外部ＶＯＬテーブル５００（図５参照）から、追い出し対象のストレージ装置が有する全ての外部ＶＯＬを特定する（Ｓ１８０２）。
【０１７１】
追い出しプログラム３７１６は、特定した外部ＶＯＬに対応するプールＶＯＬの追い出しフラグ８０４を「Ｏｎ」に設定する（Ｓ１８０３）。以下、追い出しフラグ８０４の「Ｏｎ」のプールＶＯＬを「追い出し対象のプールＶＯＬ」と言う。
【０１７２】
追い出しプログラム３７１６は、ポリシー情報に従う再配置指示を再配置プログラム３７１２に送信する（Ｓ１８０４）。
【０１７３】
再配置プログラム３７１２は、再配置指示を受信し、その指示に従い、再配置決定処理を行う（Ｓ１８０５）。具体的には、再配置プログラム３７１２は、追い出し対象のプールＶＯＬの実ページ毎に、再配置先の実ページ（移動先の実ページ）を決定する。
【０１７４】
そして、再配置プログラム３７１２は、再配置処理を行う（１８０６）。再配置処理では、追い出し対象のプールＶＯＬの実ページ毎に、決定された再配置先の実ページにデータが移動される。なお、ポリシー情報が、「移動元の実ページがゼロデータのみを格納していればその移動元の実ページについてはデータ追い出しを非実行としてゼロデータ破棄を行う」ことを意味する情報を含んでいれば、移動元の実ページがゼロデータのみを格納している場合、その実ページについてデータ移動は行われない。その実ページは、データ移動が行われることなく、未割当ての実ページとして管理される。これは、追い出し対象のプールＶＯＬがマップドＶＯＬである場合に特に有効であると考えられる。なぜなら、仮想ＶＯＬの全ての仮想ページにそれぞれマップドＶＯＬの実ページが割り当てられる際に、ゼロデータのみが格納されている実ページが仮想ページに割り当てられることがあり得るからである。ちなみに、仮想ＶＯＬの全ての仮想ページにそれぞれマップドＶＯＬの実ページが割り当てられると、無駄に未割当ての実ページが消費されることになるが、次のようなメリットがあると考えられる。すなわち、プールに複数の仮想ＶＯＬが関連付けられており、他の仮想ＶＯＬに動的に実ページが割り当てられる際に、マップドＶＯＬ内の実ページが他の仮想ＶＯＬに割り当てられることを防ぐことができると考えられる。
【０１７５】
再配置プログラム３７１２は、適宜に（例えば、１つの移動元実ページから１つの移動先実ページへのデータ移動が完了する都度に）、進捗情報（例えばどの移動元実ページからどの移動先実ページへのデータ移動が完了したかを表す情報）を、追い出しプログラム３７１６に送信する。追い出しプログラム３７１６は、進捗情報を受信し、その情報を基に、追い出し完了フラグ１００３が「Ｏｆｆ」の実ページについてデータ移動が完了していれば、追い出し完了フラグ１００３を「Ｏｎ」に変更する（Ｓ１８０７）。
【０１７６】
また、追い出しプログラム３７１６は、データ移動が完了した移動元の実ページに割り当てられている仮想ページに、移動元の実ページに代えて移動先の実ページを割り当てるよう、仮想マッピング管理テーブル７００（図７参照）を更新する（Ｓ１８０８）。
【０１７７】
再配置プログラム３７１２は、再配置処理が終了した場合、終了を表す終了情報を追い出しプログラム３７１６に送信する。
【０１７８】
追い出しプログラム３７１６は、終了情報を受信した場合、追い出し完了通知をユーザ指示プログラム２２１に送信する（Ｓ１８０９）。
【０１７９】
ユーザ指示プログラム２２１は、追い出しプログラム３７１６から追い出し完了通知を受信する（Ｓ１８１０）。
【０１８０】
図１９は、ＶＯＬ単位の追い出し処理の流れを示すフローチャートである。この追い出し処理も、前述のＳ１２０６〜Ｓ１２０８に含まれる。
【０１８１】
ＶＯＬ単位の追い出し処理は、ストレージ装置単位の追い出し処理と基本的には同じである。具体的には、ストレージ装置単位の追い出し処理では、ストレージ装置が有する外部ＶＯＬを探す処理（Ｓ１８０２）があるが、ＶＯＬ単位の追い出し処理では、追い出し指示が、追い出し元のプールＶＯＬのＩＤを含み、そのため、Ｓ１８０２に相当する処理は実質不要である。従って、図１９のＳ１９０１〜Ｓ１９０９は、図１８のＳ１８０１、及びＳ１８０３〜Ｓ１８１０にそれぞれ対応する。
【０１８２】
次に、再配置先決定処理（Ｓ１８０５、Ｓ１９０４）の流れを説明する。再配置先決定処理の流れは、ポリシー情報によって異なる。再配置先決定処理の流れは、大まかに、下記の３種類のケースにそれぞれ対応した３種類の流れ、
（１）ポリシー情報が、性能に基づいた再配置処理（実ページ間のデータ移動）を行うことを表す情報を含んでいるケース（第１種のケース）、
（２）ポリシー情報が、移動先の実ページを含んだストレージ装置のメーカ、データセンタ、ロケーション、ＩＤ（例えばシリアル番号）、機種及び導入日時のうちの少なくとも１つに関する条件を含んでいるケース（第２種のケース）、
（３）ポリシー情報が、移動先の実ページの基になっているドライブの種類及び／又は回転数に関する条件を含んでいるケース（第３種のケース）、
がある。
【０１８３】
図２０及び図２１は、第１種のケースに従う再配置先処理の流れの一例を示すフローチャートである。以下の説明において、説明を簡単にするため、追い出し対象のプールＶＯＬを含んだプールのＩＤをＸ（Ｘは１以上の整数）、階層順位４０７をα（αは１以上の整数）、実ページの優先順位１１０２をＺ（Ｚは１以上の整数）とする。また、以下の処理におけるＸ、α、Ｚの初期値は「１」である。本実施形態では、プールＩＤの値は、１を始めとした連番となっている。
【０１８４】
再配置プログラム３７１２は、プールテーブル８００を基に、プールＩＤ＝Ｘのプールにおける、追い出しフラグ８０４が「Ｏｎ」のプールＶＯＬを探し、見つかった追い出し対象プールＶＯＬ毎に、追い出し進捗テーブル１０００を作成する（Ｓ２００２）。この時、ポリシー情報が、「移動元の実ページがゼロデータのみを格納していればその移動元の実ページについてはデータ追い出しを非実行としてゼロデータ破棄を行う」ことを意味する情報を含んでおり、且つ、プールＶＯＬが、ゼロデータのみを格納している実ページのみで構成されたプールＶＯＬであれば、そのプールＶＯＬについてテーブル１０００は作成されない。
【０１８５】
再配置プログラム３７２１は、Ｓ２００２で作成した各テーブル１０００に、そのテーブル１０００に対応するプールＶＯＬを構成する各実ページに関する情報を登録する（Ｓ２００３）。この時、ポリシー情報が、「移動元の実ページがゼロデータのみを格納していればその移動元の実ページについてはデータ追い出しを非実行としてゼロデータ破棄を行う」ことを意味する情報を含んでいれば、ゼロデータのみを格納している実ページに関する情報は、テーブル１０００に登録されない。
【０１８６】
再配置プログラム３７２１は、プールＩＤ＝Ｘのプールに対応する追い出し対象テーブル１１００を作成し、そのテーブル１１００に、テーブル１０００に登録された実ページＩＤ毎に、レコードを追加する。再配置プログラム３７２１は、テーブル１１００に実ページＩＤが登録された各実ページの性能９０３を特定し、性能９０３の値が高い実ページほど（Ｉ／Ｏ頻度が高いほど）、優先順位１１０２として小さい値（高い優先順位を表す値）を登録する（Ｓ２００４）。
【０１８７】
再配置プログラム３７２１は、Ｓ２００２で見つかった１以上の追い出し対象ＶＯＬから任意に１つのＶＯＬを選択し、選択したプールＶＯＬ（以下、選択プールＶＯＬ）について、優先順位＝Ｚの実ページを、再配置先決定対象とする（Ｓ２００５）。
【０１８８】
再配置プログラム３７２１は、プールＩＤ＝Ｘのプールに含まれ階層順位４０７＝αの階層に含まれるＶＯＬであって、追い出しフラグ８０４が「Ｏｎ」のプールＶＯＬでないプールＶＯＬを検索する（Ｓ２００６）。
【０１８９】
再配置プログラム３７２１は、プールＩＤ＝Ｘに対応する仮想マッピングテーブル７００を基に、Ｓ２００６で見つかった１以上のプールＶＯＬに未割当ての実ページ（空きの実ページ）があるか否かを判断する（Ｓ２００７）。
【０１９０】
Ｓ２００７の判断の結果が否定的の場合（Ｓ２００７：Ｎｏ）、再配置プログラム３７２１は、階層順位４０７＝αを、α＝α＋１とし（Ｓ２００９）、Ｓ２００６を実行する。
【０１９１】
Ｓ２００７の判断の結果が肯定的の場合（Ｓ２００７：Ｙｅｓ）、再配置プログラム３７２１は、Ｓ２００７で見つかった実ページを、Ｓ２００５で対象とされた実ページ（移動元の実ページ）の移動先として決定する（Ｓ２０１０）。その際、再配置プログラム３７２１は、選択プールＶＯＬに対応する追い出し進捗テーブル１０００に、移動元実ページに対応した再配置先実ページＩＤ１００２として、決定された移動先の実ページのＩＤを登録し、その移動元実ページに対応したフラグ１００３として、「Ｏｆｆ」を登録する。
【０１９２】
再配置プログラム３７２１は、選択プールＶＯＬ内で、再配置先を決めていない実ページがあるかどうかを判断する（Ｓ２０１１）。
【０１９３】
Ｓ２０１１の判断の結果が肯定的の場合（Ｓ２０１１：Ｙｅｓ）、再配置プログラム３７２１は、優先順位＝Ｚを、Ｚ＝Ｚ＋１として（Ｓ２００８）、Ｓ２００６を行う。
【０１９４】
Ｓ２０１１の判断の結果が否定的の場合（Ｓ２０１１：Ｎｏ）、再配置プログラム３７２１は、Ｓ２００２で見つかった１以上の追い出し対象ＶＯＬに未選択のプールＶＯＬがあるか否かを判断する（Ｓ２０１２）。
【０１９５】
Ｓ２０１２の判断の結果が肯定的の場合（Ｓ２０１２：Ｙｅｓ）、再配置プログラム３７２１は、Ｓ２００１で見つかった１以上の追い出し対象ＶＯＬから、任意の未選択のプールＶＯＬを選択し、その選択プールＶＯＬについて、優先順位Ｚ＝１として（Ｓ２０１３）、Ｓ２００６を行う。
【０１９６】
Ｓ２０１２の判断の結果が否定的の場合（Ｓ２０１２：Ｎｏ）、再配置プログラム３７２１は、プールＩＤ＝Ｘを、Ｘ＝Ｘ＋１とする（Ｓ２０１４）。
【０１９７】
そして、プールＩＤ＝Ｘのプールがあれば（Ｓ２０１５：Ｙｅｓ）、再配置プログラム３７２１は、そのプールについて、Ｓ２００１を行う。
【０１９８】
図２０及び２１によれば、Ｉ／Ｏ頻度の高い移動元の実ページについて、階層順位の高い階層内の実ページが、優先的に、移動先の実ページとして決定される。
【０１９９】
図２２及び図２３は、第２種のケースに従う再配置先決定処理の流れの一例を示すフローチャートである。なお、本説明においても、説明を簡単にするため、プールＩＤ＝Ｘとする（Ｘの初期値は「１」である）。
【０２００】
再配置プログラム３７１２は、Ｓ２００２と同様の処理を行う（Ｓ２２０１）。
【０２０１】
再配置プログラム３７２１は、ストレージ装置管理テーブル６００を参照し（Ｓ２２０２）、ポリシー情報に合致するストレージ装置を検索する（Ｓ２２０３）。
【０２０２】
再配置プログラム３７２１は、内部ＶＯＬテーブル４００を参照し（Ｓ２２０４）、Ｓ２２０３で見つかったストレージ装置内のＶＯＬにマッピングされたＶＯＬであり、追い出しフラグ８０４が「Ｏｎ」ではないＶＯＬを見つける（Ｓ２２０５）。また、このＳ２２０５で、再配置プログラム３７２１は、Ｓ２２０１で見つかった１以上の追い出し対象ＶＯＬから、任意の未選択のプールＶＯＬを選択する（ここで選択されたプールＶＯＬを、以下、「選択プールＶＯＬ」と言う）。
【０２０３】
再配置プログラム３７２１は、Ｓ２２０５で見つかった外部ＶＯＬが、プールＶＯＬにマッピングされたＶＯＬであり、且つ、そのプールＶＯＬを含んだプールのＩＤがＩＤ＝Ｘか否かを判断する（Ｓ２２０６）。
【０２０４】
Ｓ２２０６の判断の結果が否定的の場合（Ｓ２２０６：Ｎｏ）、再配置プログラム３７２１は、再度Ｓ２２０５を行う。
【０２０５】
Ｓ２２０６の判断の結果が肯定的の場合（Ｓ２２０６：Ｙｅｓ）、再配置プログラム３７２１は、プールＩＤ＝Ｘに対応した仮想マッピングテーブル７００を基に、Ｓ２２０５で見つかった外部ＶＯＬがマッピングされたプールＶＯＬ（マップドＶＯＬ）に、未割当ての実ページがあるか否かを判断する（Ｓ２２０７）。
【０２０６】
Ｓ２２０７の判断の結果が否定的の場合（Ｓ２２０７：Ｎｏ）、再配置プログラム３７２１は、再度Ｓ２２０５を行う。
【０２０７】
Ｓ２２０７の判断の結果が肯定的の場合（Ｓ２２０７：Ｙｅｓ）、再配置プログラム３７２１は、Ｓ２２０７で見つかった実ページを、選択プールＶＯＬ内の１つの実ページ（移動元の実ページ）の移動先として決定する（Ｓ２２０９）。その際、再配置プログラム３７２１は、選択プールＶＯＬに対応する追い出し進捗テーブル１０００に、移動元実ページに対応した再配置先実ページＩＤ１００２として、決定された移動先の実ページのＩＤを登録し、その移動元実ページに対応したフラグ１００３として、「Ｏｆｆ」を登録する。
【０２０８】
再配置プログラム３７２１は、選択プールＶＯＬ内で、再配置先を決めていない実ページがあるかどうかを判断する（Ｓ２２１０）。
【０２０９】
Ｓ２２１０の判断の結果が肯定的の場合（Ｓ２２１０：Ｙｅｓ）、再配置プログラム３７２１は、選択プールＶＯＬにおいて、移動先が未決定の実ページについて、Ｓ２２０５を行う。
【０２１０】
Ｓ２２１０の判断の結果が否定的の場合（Ｓ２２１０：Ｎｏ）、Ｓ２０１２〜Ｓ２０１５（図２１参照）と同様の処理が行われる（Ｓ２２１１〜Ｓ２２１４）。
【０２１１】
図２４及び図２５は、第３種のケースに従う再配置先決定処理の流れの一例を示すフローチャートである。本説明においても、説明を簡単にするため、プールＩＤ＝Ｘ（Ｘは１以上の整数）、とする（Ｘの初期値は「１」である）。
【０２１２】
再配置プログラム３７１２は、Ｓ２２０１と同様の処理を行う（Ｓ２４０１）。
【０２１３】
再配置プログラム３７２１は、内部ＶＯＬテーブル４００を参照し（Ｓ２４０２）、ポリシー情報に合致するドライブの基になっているＶＯＬであり、追い出しフラグ８０４が「Ｏｎ」ではないＶＯＬを見つける（Ｓ２４０３）。また、このＳ２４０３で、再配置プログラム３７２１は、Ｓ２４０１で見つかった１以上の追い出し対象ＶＯＬから、任意の未選択のプールＶＯＬを選択する（ここで選択されたプールＶＯＬを、以下、「選択プールＶＯＬ」と言う）。
【０２１４】
再配置プログラム３７２１は、Ｓ２４０２で見つかったＶＯＬがプールＶＯＬであり、且つ、そのプールＶＯＬを含んだプールのＩＤがＩＤ＝Ｘか否かを判断する（Ｓ２４０４）。
【０２１５】
Ｓ２４０４の判断の結果が否定的の場合（Ｓ２４０４：Ｎｏ）、再配置プログラム３７２１は、再度Ｓ２４０３を行う。
【０２１６】
Ｓ２４０４の判断の結果が肯定的の場合（Ｓ２４０４：Ｙｅｓ）、Ｓ２２０７〜Ｓ２２１４（図２２及び図２３参照）と同様の処理が行われる（Ｓ２４０５〜Ｓ２４１２）。
【０２１７】
前述した第１種のケース〜第３種のケースに従う再配置決定処理は、追い出し処理の一部として行われる再配置決定処理（第１の再配置決定処理）に限らず、追い出し処理とは独立して行われる再配置決定処理（第２の再配置決定処理）に適用されても良い。第２の再配置決定処理でも、移動先の実ページとして、追い出しフラグ８０４が「Ｏｎ」のプールＶＯＬ内の実ページは除外される（図２７Ａ参照）。また、第２の再配置決定処理では、移動元の実ページとして、フォーマット禁止フラグ８０３が「Ｏｎ」のプールＶＯＬ内の実ページは除外される（図２７Ｂ参照）。
【０２１８】
図２６は、追い出し対象解除処理の流れの一例を示すフローチャートである。
【０２１９】
ユーザ指示プログラム２２１は、追い出し解除フラグを解除する指示（以下、解除指示）を仮想管理プログラム３７１４に送信する（Ｓ２６０１）。解除指示は、プールＶＯＬのＩＤを含む。
【０２２０】
仮想管理プログラム３７１４は、解除指示を受信し、その指示に従い、その指示から特定されるプールＶＯＬ（以下、解除対象プールＶＯＬ）について、追い出しフラグ８０４を「Ｏｆｆ」に、それだけなく、フォーマット禁止フラグ８０３も「Ｏｆｆ」に設定する（Ｓ２６０２）。
【０２２１】
ＶＯＬ管理プログラム３７１３は、フォーマット禁止フラグ８０３が「Ｏｆｆ」に変更されたプールＶＯＬ（解除対象プールＶＯＬ）をフォーマットする（Ｓ２６０３）。
【０２２２】
ＶＯＬ管理プログラム３７１３は、解除対象プールＶＯＬをフォーマットしたことを仮想管理プログラム３７１４に通知する。
【０２２３】
追い出し対象解除処理によれば、追い出しフラグ８０４に加えてフォーマット禁止フラグ８０３も「Ｏｆｆ」とされ、解除対象プールＶＯＬがフォーマットされる。これにより、そのプールＶＯＬ内の実ページが未割当てページとなり割当て可能な状態となる。
【０２２４】
以上、本発明の一実施形態を説明したが、これは、本発明の説明のための例示であって、本発明の範囲をこれらの実施形態のみに限定する趣旨ではない。すなわち、本発明は、他の種々の形態でも実施する事が可能である。
【符号の説明】
【０２２５】
１０…ホスト計算機、２０…管理計算機、３０…ストレージ装置、４０…外部ストレージ装置
【図１】
0005523292.tif 000002
【図２】
0005523292.tif 000003
【図３】
0005523292.tif 000004
【図４】
0005523292.tif 000005
【図５】
0005523292.tif 000006
【図６】
0005523292.tif 000007
【図７】
0005523292.tif 000008
【図８】
0005523292.tif 000009
【図９】
0005523292.tif 000010
【図１０】
0005523292.tif 000011
【図１１】
0005523292.tif 000012
【図１２】
0005523292.tif 000013
【図１３】
0005523292.tif 000014
【図１４】
0005523292.tif 000015
【図１５】
0005523292.tif 000016
【図１６】
0005523292.tif 000017
【図１７】
0005523292.tif 000018
【図１８】
0005523292.tif 000019
【図１９】
0005523292.tif 000020
【図２０】
0005523292.tif 000021
【図２１】
0005523292.tif 000022
【図２２】
0005523292.tif 000023
【図２３】
0005523292.tif 000024
【図２４】
0005523292.tif 000025
【図２５】
0005523292.tif 000026
【図２６】
0005523292.tif 000027
【図２７】
0005523292.tif 000028